VBA SetForegroundWindow

时间:2018-06-17 09:14:14

标签: excel vba setforegroundwindow

我正在尝试编写定期放置/确保程序在所有其他程序之前的代码。为了测试这个,我使用了记事本。 如果我在记事本面前打开一个新程序,这个代码似乎才有用 - 而不是我打开一个程序;然后开始执行我的代码;然后把另一个已打开的程序放在记事本面前。在这种情况下,记事本仅在任务栏中闪烁橙色。 有人可以帮我吗?

Sub test()
    Dim vPID As Variant
    vPID = Shell("notepad.exe", vbMaximizedFocus)
    AppActivate vPID

    'Notepad opens, I put another program in front of it
    Application.Wait (Now + TimeValue("00:00:05"))

    'I want Notepad back in front again:
    Dim HWND As Long
    Dim SetFocus As Long
    HWND = FindWindow("Notepad", vbNullString)
    SetFocus = SetForegroundWindow(HWND)

    Application.Wait (Now + TimeValue("00:00:05"))

    'Close Notepad
    Call Shell("TaskKill /F /PID " & CStr(vPID), vbHide)
End Sub

0 个答案:

没有答案