fries3
Goto Top

Win+K Verbindung zu einem Gerät Wireless HDMI automatisieren

Hallo zusammen,

ich habe einen Win10 Laptop der mit einem Fernseher über Wireless HDMI gekoppelt ist.

Sobald der Laptop hochgefahren ist, muss man Win+K drücken und den Wireless HDMI Dongle auswählen.

Kann man das ganze irgendwie automatisieren? z.B über die Aufgabenplanung oder via Script?

Ich bedanke mich schonmal im Vorraus.

Beste Grüße!

Content-ID: 1441148762

Url: https://administrator.de/contentid/1441148762

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

chkdsk
chkdsk 28.10.2021 aktualisiert um 13:23:00 Uhr
Goto Top
vielleicht könnte man es via Powershell und SendKeys realisieren
KowaKowalski
KowaKowalski 28.10.2021 um 12:56:09 Uhr
Goto Top
Hi Fries,

mit Boardmitteln ist mir kein Weg bekannt.

Eventuell mit AutoIT und/oder seinen Verwandten.


mfg
kowa
Fries3
Fries3 28.10.2021 um 12:59:33 Uhr
Goto Top
Könnte man es evtl ein bisschen mehr ausdehnen/erklären? Bin ein ziemlicher Newbie, was solche Sachen angeht.
149569
149569 28.10.2021 aktualisiert um 13:49:10 Uhr
Goto Top
vielleicht könnte man es via Powershell und SendKeys realisieren
SendKeys kann keine Windows-Tasten simulieren da musst du in die Win32-Trickkiste greifen
Add-Type -MemberDefinition '[DllImport("user32.dll")] public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,UIntPtr dwExtraInfo);' -name t -namespace w32  
[w32.t]::keybd_event(0x5b,0,0,[UIntPtr]::Zero)
[w32.t]::keybd_event(0x4B,0,0,[UIntPtr]::Zero)
[w32.t]::keybd_event(0x4B,0,0x2,[UIntPtr]::Zero)
[w32.t]::keybd_event(0x5b,0,0x2,[UIntPtr]::Zero)
Fries3
Fries3 28.10.2021 um 14:12:10 Uhr
Goto Top
Zitat von @149569:

vielleicht könnte man es via Powershell und SendKeys realisieren
SendKeys kann keine Windows-Tasten simulieren da musst du in die Win32-Trickkiste greifen
> Add-Type -MemberDefinition '[DllImport("user32.dll")] public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,UIntPtr dwExtraInfo);' -name t -namespace w32  
> [w32.t]::keybd_event(0x5b,0,0,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x4B,0,0,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x4B,0,0x2,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x5b,0,0x2,[UIntPtr]::Zero)
> 

also diesen code als batch abspeichern und das script in die Aufgabenplanung einfügen? oder ist das zu leicht gedacht?
149569
149569 28.10.2021 aktualisiert um 14:19:33 Uhr
Goto Top
Zitat von @Fries3:
also diesen code als batch abspeichern und das script in die Aufgabenplanung einfügen?
Nö, das ist kein Batch das ist Powershell steht doch drüber, ließt hier denn keiner mehr was in den Beiträgen steht ...?!
oder ist das zu leicht gedacht?
Jepp...
Lesen und verstehen: Kapitel 1: Erste Schritte mit PowerShell
Fries3
Fries3 28.10.2021 um 14:23:25 Uhr
Goto Top
Zitat von @149569:

Zitat von @Fries3:
also diesen code als batch abspeichern und das script in die Aufgabenplanung einfügen?
Nö, das ist kein Batch das ist Powershell steht doch drüber, ließt hier denn keiner mehr was in den Beiträgen steht ...?!
oder ist das zu leicht gedacht?
Jepp...
Lesen und verstehen: Kapitel 1: Erste Schritte mit PowerShell

was bewirkt dieser Powershell-Code denn genau?
149569
149569 28.10.2021 aktualisiert um 14:27:35 Uhr
Goto Top
Zitat von @Fries3:

Zitat von @149569:
was bewirkt dieser Powershell-Code denn genau?
Na das was du oben willst: WIN+K drücken. Tasten müssen ja auch wieder losgelassen werden und das macht der Code ja ebenfalls face-wink, also insgesamt 4 Schritte. 2 Tasten jeweils drücken und wieder loslassen = 4.
Die Virtual Key Codes kannst du hier nachschlagen
https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-code ...
Fries3
Fries3 28.10.2021 um 14:29:35 Uhr
Goto Top
Ja sorry, bin noch ein totaler Anfänger...
wie kann ich dann powershell sagen, das er den Wireless HDMI Dongle vom TV selbständig auswählen soll?
Fries3
Fries3 28.10.2021 um 14:31:33 Uhr
Goto Top
Hier ein Screen:

unbenannt
149569
149569 28.10.2021 aktualisiert um 16:13:46 Uhr
Goto Top
wie kann ich dann powershell sagen, das er den Wireless HDMI Dongle vom TV selbständig auswählen soll?
Kann ich dir nicht sagen, da ich das hier mangels Hardware nicht testen kann. Probiere halt die Tastenkombinationen aus die du dafür brauchst und ergänze diese...
Fries3
Fries3 06.07.2022 um 09:43:10 Uhr
Goto Top
Also ich benötige nach WIN+K die TAB Taste und danach Enter..

Habe den Code mal erweitert - vielleicht schaut mal eben jemand drüber, ob das so richtig gedacht ist:

> Add-Type -MemberDefinition '[DllImport("user32.dll")] public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,UIntPtr dwExtraInfo);' -name t -namespace w32  
> [w32.t]::keybd_event(0x5b,0,0,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x4B,0,0,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x4B,0,0x2,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x5b,0,0x2,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x09,0,0,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x09,0,0x2,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x0D,0,0,[UIntPtr]::Zero)
> [w32.t]::keybd_event(0x0D,0,0x2,[UIntPtr]::Zero)
Fries3
Fries3 06.07.2022 aktualisiert um 11:22:03 Uhr
Goto Top
ich habe das Script nun als verbinden.ps1 abgespeichert. (PowerShell ISE)

Die ps1 Datei auf einen Stick gepackt und möchte diese jetzt auf den besagten Laptop nach jeder Benutzeranmeldung ausführen lassen - Wenn nach dem hochfahren quasi der Desktop bereit ist.

Habe das ganze in der Aufgabenplanung involviert und das ganze so konfiguriert:
unbenannt
bei jeder Benutzeranmeldung / 30sek. Verzögerung.

Dann öffnet sich auch Powershell und versucht wohl das script auszuführen, aber leider funktioniert es nicht, es kommt u.a folgende erste und rote Meldung:

> : The term '>' is not recognized as the name of a cmdlet, function, script file, or operable program- Check the
spelling of the name, or if a path was inluded, verify that path was correct and try again.
At c:\scripte\verbinden.ps1:3 char:1

back-to-top> [w32.t]::keybd-event(0x4B,0,0,[UIntPtr]::Zero)


+ CategoryInfo : ObjectNotFound: (>:String) , CommandNotFoundExecption
+FullzQualifiedErrorId: CommandNotFoundExeption



Achja, Powershell ExecutionPolicy ist unrestricted.