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