Jak przełączyć proces między pulpitem domyślnym a pulpitem Winlogon?
Piszę aplikację na pulpicie zdalnym, taką jakTeamViewer w C ++ na Windows 7 (x64) i Windows 8 (x64).
1. Co mnie utknęło
Zaimplementowałem wejście myszy i wejście klawiatury za pomocą SendInput (). Odkryłem, że SendInput () działał idealnie, gdy proces był uruchamianywinsta0\desktop
. Ale gdy użytkownik zablokował komputer lub uruchomił wygaszacz ekranu, nie działał.
Jeśli uruchomię proces podwinsta0\winlogon
, SendInput()
nie działa podwinsta0\default
.
2. Co próbowałem
Próbowałem użyć SetThreadDesktop (), aby przełączyć proceswinsta0\desktop
dowinsta0\winlogon
, ale dostałem błąd 170: „Żądany zasób jest w użyciu” i utknąłem.
3. Co chcę wiedzieć
Zauważyłem, że TeamViewer ma nazwę procesuTeamViewer_Desktop.exe
które mogą sterować myszą i klawiaturą w Winlogon, Domyślne i Wygaszacz ekranu. Jak to robi?
Czy możesz podać kod, który pomoże mi zrozumieć, jak rozwiązać moje pytanie?
Chcę wiedzieć **, w jaki sposób mogę przełączać aplikację między pulpitem domyślnym a pulpitem Winlogon. Dzięki temu mogę sterować myszą i klawiaturą na zabezpieczonym pulpicie bez tworzenia kolejnego procesu działającego w tym trybiewinlogon.exe
.