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