返回列表 上一主題 發帖

如何停止屏幕閃動

如何停止屏幕閃動

致大大們,

請問嫗下代碼要如何才可以停止屏幕閃動.
  1. Sub zz()
  2. Debug.Print CreateObject("WScript.Shell").exec("%comspec% /c " & """VOL c:""").StdOut.ReadAll
  3. End Sub
複製代碼

回復 1# ikboy


    不清楚您的代碼的用途
但一般來說EXCEL停止螢幕轉動都是使用
Application.ScreenUpdating = False'停止
Application.ScreenUpdating = True'恢復
PKKO

TOP

多謝PKKO, 這方法不適用於此.
此代碼衹是隨便引用一些DOS的查詢, 把傳回的 DEBUG PRINT 出來。

TOP

回復 1# ikboy
如果是要取得磁碟標籤名稱和磁碟序號,可試試不同方法
  1. Sub Test()
  2.     Dim oFS As Object, oDrive As Object
  3.     Set oFS = CreateObject("Scripting.FileSystemObject")
  4.     Set oDrive = oFS.drives("D")
  5.    
  6.     Debug.Print "標籤: " & oDrive.VolumeName
  7.     Debug.Print "序號: " & Hex(oDrive.SerialNumber)
  8. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

stillfish00你好,

想來是我舉例問題不好, 以 dir 來做例子, fso 是很好的解決屏幕閃動, 但我是想於shell 中用DOS 查詢, 而能控制屏幕閃動, 例如要查詢 xcop /?, fso 便不能做到, 以下代碼便能做到, 但有屏幕閃動。

Sub zz()
Debug.Print CreateObject("WScript.Shell").exec("%comspec% /c xcopy /?").StdOut.ReadAll
End Sub

TOP

本帖最後由 jackyq 於 2016-7-19 23:43 編輯

回復 5# ikboy

exec 好像不能隱藏 window

可以用    CreateObject("WScript.Shell").Run   cmd , 0   , true

https://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.84%29.aspx

輸出結果可以用管道寫到 txt 檔

再讀出來

TOP

jackyq,
........,0,1 > .txt 是可以, 我一向都是這樣做, 但我就是想一次過放入數組, 我曾配合過 clip 指令放入剪貼簿, 已成功, 但.........stdout 似乎更快捷及簡單。 目前就是如何另 CreateObject("WScript.Shell").Exec 如 CreateObject("WScript.Shell").Run 般,做到有窗口隱蔽功能。

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題