Board logo

標題: 如何停止屏幕閃動 [打印本頁]

作者: ikboy    時間: 2016-7-19 15:00     標題: 如何停止屏幕閃動

致大大們,

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

作者: PKKO    時間: 2016-7-19 16:04

回復 1# ikboy


    不清楚您的代碼的用途
但一般來說EXCEL停止螢幕轉動都是使用
Application.ScreenUpdating = False'停止
Application.ScreenUpdating = True'恢復
作者: ikboy    時間: 2016-7-19 16:46

多謝PKKO, 這方法不適用於此.
此代碼衹是隨便引用一些DOS的查詢, 把傳回的 DEBUG PRINT 出來。
作者: stillfish00    時間: 2016-7-19 17:07

回復 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
複製代碼

作者: ikboy    時間: 2016-7-19 22:50

stillfish00你好,

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

Sub zz()
Debug.Print CreateObject("WScript.Shell").exec("%comspec% /c xcopy /?").StdOut.ReadAll
End Sub
作者: jackyq    時間: 2016-7-19 23:37

本帖最後由 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 檔

再讀出來
作者: ikboy    時間: 2016-7-20 08:08

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




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)