主頁(yè) > 知識(shí)庫(kù) > 用vbs將輸出內(nèi)容寫(xiě)到屏幕以覆蓋當(dāng)前屏幕上的內(nèi)容的方法

用vbs將輸出內(nèi)容寫(xiě)到屏幕以覆蓋當(dāng)前屏幕上的內(nèi)容的方法

熱門(mén)標(biāo)簽:外呼線路中繼線是什么 外呼系統(tǒng)telrobot 合肥高德地圖標(biāo)注 拉薩外呼系統(tǒng)業(yè)務(wù) 怎么看地圖標(biāo)注 外呼系統(tǒng)免費(fèi)招代理 深圳外呼系統(tǒng)收費(fèi) 百度地圖標(biāo)注是什么意思 廣州ai電銷(xiāo)機(jī)器人一般多少錢(qián)
問(wèn):
您好,腳本專家!如何將輸出內(nèi)容寫(xiě)到屏幕以覆蓋當(dāng)前屏幕上的內(nèi)容?
-- KM
答:
您好,KM。如果您確實(shí)需要將輸出內(nèi)容寫(xiě)到命令窗口,那么,我們沒(méi)辦法給您提供答案:盡管我們多少已經(jīng)處理過(guò)一些問(wèn)題,但我們從未找到一種簡(jiǎn)單、直接的方法可覆蓋命令窗口中的信息。
不過(guò),如果您要將信息輸出到 Internet Explorer 窗口,那么我們還確實(shí)有解決辦法。而且馬上就可以給出答案:
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank"   
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width = 400
objExplorer.Height = 200 
objExplorer.Left = 0
objExplorer.Top = 0
Do While (objExplorer.Busy)
    Wscript.Sleep 200
Loop    
objExplorer.Document.Title = "Process Information"   
objExplorer.Visible = 1  
objExplorer.Document.Body.InnerHTML = "Retrieving process information." 
Wscript.Sleep 2000
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\"  strComputer  "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objItem in colItems
    objExplorer.Document.Body.InnerHTML = objItem.Name
    Wscript.Sleep 500
Next
objExplorer.Document.Body.InnerHTML = "Process information retrieved."
Wscript.Sleep 3000
objExplorer.Quit
看上去確實(shí)有點(diǎn)長(zhǎng),但其實(shí)非常簡(jiǎn)單,這一點(diǎn)您很快就會(huì)發(fā)現(xiàn)。例如,乍一看,這段代碼可能挺恐怖:
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank"   
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width = 400
objExplorer.Height = 200 
objExplorer.Left = 0
objExplorer.Top = 0
不過(guò),事實(shí)證明,我們所做的只是創(chuàng)建一個(gè) Internet Explorer 的空實(shí)例;而且,這是通過(guò)前兩行代碼完成的。其余代碼行只是配置 Internet Explorer 窗口的各種屬性而已:我們?cè)O(shè)置寬度為 400 像素,隱藏工具欄,然后將 Internet Explorer 窗口定位在屏幕的左上角。如果愿意使用 Internet Explorer 窗口的默認(rèn)配置,則可跳過(guò) 3 到 8 行。
設(shè)置完 Internet Explorer 窗口之后,我們使用下面的 Do While 循環(huán),在完全載入 Internet Explorer 后中止該腳本:
Do While (objExplorer.Busy)
    Wscript.Sleep 200
Loop
看到了嗎?還算不錯(cuò)。啟動(dòng)并運(yùn)行 Internet Explorer 后,接下來(lái)為 Internet Explorer 窗口指定一個(gè)標(biāo)題,并將 Visible 屬性設(shè)置為 True (1)。我們這么做的原因是,迄今為止,Internet Explorer 還在隱藏窗口中運(yùn)行,在屏幕上看不到。不過(guò)下面的代碼可解決這個(gè)小問(wèn)題:
objExplorer.Document.Title = "Process Information"   
objExplorer.Visible = 1
現(xiàn)在我們準(zhǔn)備在窗口中寫(xiě)點(diǎn)什么。對(duì)于此示例腳本,就像下面的代碼那樣簡(jiǎn)單:
objExplorer.Document.Body.InnerHTML = "Retrieving process information."
正如您所看到的那樣,我們只是賦給 Document.Body 對(duì)象的 InnerHTML 屬性一個(gè)值。這種情況下,我們僅為 InnerHTML 賦予一些文本:檢索進(jìn)程信息。不過(guò),我們可以很容易地添加一些 HTML 標(biāo)記并創(chuàng)建更為獨(dú)特的輸出。例如,此行代碼會(huì)將寫(xiě)到窗口中的文本加粗:
objExplorer.Document.Body.InnerHTML = "B>Retrieving process information./B>"
好吧,或許這與設(shè)想并不完全相符。但您已經(jīng)得到問(wèn)題的答案了。
在 Internet Explorer 窗口中顯示我們的文本字符串之后,我們便可將該腳本中止 2 秒(2000 毫秒)。沒(méi)有什么原因必須要這樣做,只是這樣您就能在覆蓋原來(lái)的文本之前看到它們。 
接下來(lái)是下面這段代碼:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\"  strComputer  "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objItem in colItems
    objExplorer.Document.Body.InnerHTML = objItem.Name
    Wscript.Sleep 500
Next
我們只需檢索本地計(jì)算機(jī)上運(yùn)行的進(jìn)程集合。這并不十分重要;我們只是需要通過(guò)運(yùn)行該腳本而得到一些有趣的結(jié)果。我們今天所關(guān)心的是在我們建立的用來(lái)遍歷該集合中所有項(xiàng)的 For Each 循環(huán)內(nèi)將會(huì)發(fā)生什么:
For Each objItem in colItems
    objExplorer.Document.Body.InnerHTML = objItem.Name
    Wscript.Sleep 500
Next
在多數(shù) WMI 腳本中,我們?cè)?nbsp;For Each 循環(huán)內(nèi)回顯屬性值(例如,Name)。不過(guò)在此,我們不使用 Wscript.Echo,而是將集合中第一個(gè)進(jìn)程的名稱分配給腳本主體的 InnerHTML 屬性:
objExplorer.Document.Body.InnerHTML = objItem.Name
這樣做會(huì)有什么結(jié)果呢?將使用集合中第一個(gè)進(jìn)程的名稱覆蓋 Internet Explorer 窗口的現(xiàn)有內(nèi)容。例如,我們要開(kāi)始循環(huán)時(shí),Internet Explorer 窗口中將含有以下文本:
檢索進(jìn)程信息。
當(dāng)我們啟動(dòng)循環(huán)后,這段文本將被替換為集合中第一個(gè)進(jìn)程的名稱。例如:
Winword.exe。
覆蓋窗口中的內(nèi)容后,我們將腳本中止半秒(500 毫秒)。再次強(qiáng)調(diào)一下,這并不是必須要做的事情;我們這樣做只是為了減緩腳本速度,以便您能看到顯示的第一個(gè)進(jìn)程的名稱。半秒后,進(jìn)入下一個(gè)循環(huán)并檢索關(guān)于集合中第二個(gè)進(jìn)程的信息。之后,該腳本將用第二個(gè)進(jìn)程的名稱替換 Internet Explorer 窗口中的現(xiàn)有內(nèi)容(從技術(shù)角度上講,是賦給 InnerHTML 屬性的值),然后以此類(lèi)推。
在遍歷整個(gè)集合后,我們指示該腳本已結(jié)束,中止 3 秒,然后關(guān)閉 Internet Explorer 窗口:
objExplorer.Document.Body.InnerHTML = "Process information retrieved."
Wscript.Sleep 3000
objExplorer.Quit
運(yùn)行效果很不錯(cuò),而且非常簡(jiǎn)單。因?yàn)樗褂?nbsp;HTML,這意味著您盡可以使輸出如您所愿;事實(shí)上,您甚至可以使 Internet Explorer 窗口的外觀像命令窗口一樣。如果這還不夠酷,那,我們也不知道怎樣才算酷了。(事實(shí)上,正如一個(gè)腳本專家兒子經(jīng)常提醒他的腳本專家父親的那樣,我們不知道什么是酷。)

標(biāo)簽:延安 廣安 六安 周口 臺(tái)灣 玉林 嘉興 漳州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用vbs將輸出內(nèi)容寫(xiě)到屏幕以覆蓋當(dāng)前屏幕上的內(nèi)容的方法》,本文關(guān)鍵詞  用,vbs,將,輸出,內(nèi)容,寫(xiě)到,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用vbs將輸出內(nèi)容寫(xiě)到屏幕以覆蓋當(dāng)前屏幕上的內(nèi)容的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于用vbs將輸出內(nèi)容寫(xiě)到屏幕以覆蓋當(dāng)前屏幕上的內(nèi)容的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章