0
我們剛剛獲得了一臺新的7 64電腦,一個非常舊的程序在啓動時無法正確顯示 - 直到我更改其窗口大小後才完全自行繪製。我想編寫一個啓動舊程序的小腳本程序,然後改變其大小(例如,最小化然後恢復或最大化然後恢復其窗口),否則強制程序重繪本身。強制屏幕重繪
用這種方式用戶可以點擊程序圖標,它會閃爍一下並正確顯示。
我想:
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("""c:\Program Files (x86)\VideoLan\VLC\vlc.exe""")
objShell.SendKeys "% x"
objShell.SendKeys "% r"
Set objShell = Nothing
基於How can I maximize, restore, or minimize a window with a vb script?那合作推出VLC(測試程序,而不是問題的程序),但並沒有改變其大小。
編輯:運行後添加一個輕微的延遲(wscript.sleep(200))修復了這個問題。我仍然想知道是否有更好的方法。
我想要走的路是: 1)獲取窗口的窗口句柄(你應該能夠通過從windows API獲取剛剛創建的進程,然後獲得主要句柄窗口) 2)發送WM_PAINT消息到窗口。 我可以問你是否使用英文版的windows? – Emiswelt 2013-02-23 09:53:09
請詳細說明如何操作。我正在運行英文版的windows – foosion 2013-02-23 10:01:22