强制屏幕重绘

时间:2013-02-23 09:32:11

标签: vbscript wsh

我们刚刚获得了一台新的胜利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 个答案:

答案 0 :(得分:0)

不确定这是否有效,但您可以尝试一下:

CreateObject("Shell.Application").Namespace(0).Self.InvokeVerb "R&efresh"

以上调用桌面的“刷新”,也可能会更新您的应用程序窗口。