AW: Windows und + Taste als vba code
09.08.2019 12:30:52
volti
Hallo Sören,
falls noch Bedarf besteht, hier auch noch mal ein Ansatz zum Ein- und Ausschalten der Bildschirmlupe über Win+/Win-:
Declare PtrSafe Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As Long
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long
Declare PtrSafe Function Sleep Lib "kernel32" (ByVal dwmilliseconds As Long) As Long
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060&
Const SC_MINIMIZE = &HF020&
Const SC_RESTORE = &HF120&
Const KEYPlus = &H6B
Const KEYMinus = &H6D
Const KEYUP = &H2
Const KEYWIN = &H5B
Sub ButtonClick()
Dim iZoom As Integer, hwnd As LongPtr, i As Integer
Select Case FindWindow("MagUIClass", "Bildschirmlupe")
Case 0
keybd_event KEYWIN, 0, 0, 0
keybd_event KEYPlus, 0, 0, 0
keybd_event KEYWIN, 0, KEYUP, 0
keybd_event KEYPlus, 0, KEYUP, 0
Do
Sleep 50
hwnd = FindWindow("MagUIClass", "Bildschirmlupe")
If hwnd <> 0 Then SendMessage hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0: Exit Do
i = i + 1: If i > 20 Then Exit Sub
Loop
Case Else
SendMessage FindWindow("MagUIClass", "Bildschirmlupe"), WM_SYSCOMMAND, SC_CLOSE, 0
End Select
End Sub
Habe auch die Bildschirmlupe unsichtbar geschaltet, damit sie nicht stört. Aber das kannst Du ja auch wieder abschalten.
Vielleicht kannst Du ja damit etwas anfangen.
PS: Im Übrigen heißt das zugehörige Programm "Magnify.exe" im "Windows\System2"-Ordner und könnte auch per Shell oder sonst wie gestartet werden.
viele Grüße
Karl-Heinz