maciej24, dobierz sobie do tego projektu kolegę/koleżankę, bo taki problem można pięknie ustrukturalizować (
klik) rozbijając go na dwie, niezależne części:
- Odczytanie klawisza naciśniętego na pilocie
- Odpowiednia reakcja na to zdarzenie
Jeśli chodzi o część pierwszą, to
Nowszy już dał Ci dobre namiary na początek.
Jeśli chodzi o drugą, to podrzucę Ci pomysł taki: możesz wzorować się na programach do pilotów (od kart telewizyjnych) obsługujących skrypty.
Przykładowy fragment skryptu programu
bRemote:
Kod: Zaznacz cały
ActiveApp("Winamp v1.x")
{
"Power" : PressKey(VK_MENU, VK_F4)
"VolumeUp" : PressKey(VK_UP)
"VolumeDown" : PressKey(VK_DOWN)
}
Always()
{
"Power" "3" "Power" : Shutdown()
"Video" : ShellOpen("c:\Program Files\Bestplayer\Bestplayer.exe")
}
Cały skrypt jest zestawem bloków tworzonych wg wzorca
Kod: Zaznacz cały
Warunek()
{
"Klawisz1" : Akcja1()
"Klawisz2" : Akcja2()
...
}
Po naciśnięciu klawisza skrypt jest analizowany od góry do dołu, po kolei warunkami:
Jeśli spełniony jest określony warunek, to
jeśli naciśnięto dany klawisz, to
wykonaj daną akcję.
Przykładowe warunki:
- Foreground("Winamp v1.x") - prawda, jeśli okno Winampa jest na wierzchu
- Foreground("BESTplayer 2.105 (beta)") - prawda, jeśli okno Bestplayera jest na wierzchu
- Minimized(""Winamp v1.x") - prawda, jeśli okno Winampa jest zminimalizowane
- Always() - zawsze prawda
- Never() - zawsze fałsz
Przykładowe akcje:
- Exec("C:\Program Files\Winamp\winamp.exe") - włączenie Winampa
- PressKey(VK_ALT, VK_TAB) - symulacja naciśnięcia klawiszy Alt-Tab
- Shutdown() - wyłączenie komputera
Taka prosta logicznie struktura w bRemote pozwala na praktycznie dowolne sterowanie dowolnym programem. Oczywiście nie musisz robić żadnego parsera plików tekstowych - możesz od razu zdefiniować listę warunków w postaci stosownej tablicy.
Najlepsze jest to, że takie rozwiązanie jest pięknie skalowalne: każdy warunek i każdą akcję możesz zaimplementować w postaci osobnej funkcji i możesz zacząć od jednego warunku (pewnie Always) i od jednej (najpotrzebniejszej) akcji PressKey symulującej naciśnięcie klawisza (spokojnie, to bardzo proste).
Już na tej bazie możesz zrobić całkiem sensowne sterowanie komputerem, a potem pozostanie Ci rozwijanie programu (już nawet małego systemu) poprzez tworzenie tylko nowych warunków/akcji.
Przypuszczam, że może to brzmieć trochę przerażająco, jeśli jesteś w LV początkujący, ale nic nie bój. Na początku wszystko jest trudne.
Powodzenia i jak coś, pytaj śmiało