Logitech SetPoint

Jak zmienić zachowanie niektórych klawiszy myszki w wybranych aplikacjach.Za przykład weźmy sobie program notepad.exe i zmienimy zachowanie klawisza numer 9.

  1. Zamykamy program SetPoint;
  2. Przechodzimy do folderu <Dysk z profilami><Katalog profili><nazwa użytkownika><Dane aplikacji><\Logitech\SetPoint\>
    W moim przypadku: “C:\Documents and Settings\Marek\Dane aplikacji\Logitech\SetPoint\”;
  3. Tworzymy kopię tgo pliku “User.xml”
  4. Uruchamiamy program Setpoint.exe
  5. W programi Setpoint ustawiamy dla klawisza 9 opcję “Przypisanie sekwencji klawiszy” i w polu wciskamy klawisz Backspace
  6. Wciskamy OK, i klikając na Tray’u prawym klawiszem myszy wybieramy z menu “Zakończ”
  7. Znowu tworzymy kopię pliku “user.xml” tym razem pod inna nazwą, a poprzednio zbackupowany plik wgrywamy na oryginalne miejsce.
  8. W notatniku otwieramy plik “user.xml”;
  9. Znajdujemy linijkę:<UserOption Name=”ApplicationSpecificSettings”>0</UserOption>
    zmieniamy cyfrę “0” na “1”;
  10. Szukamy sekcji “<Button Number=”9″ Name=”9″>”
  11. Następnie szukamy linijek: “</Handler>” i </TriggerState>
  12. Między tymi linijkami wstawiamy następujący tekst:
    <AppOverride App=”notepad.exe” HandlerSet=”KeystrokeAssignment”>
    <Handler Class=”KeystrokeAssignment”>
    <Param DisplayName=”Backspace” LParam=”917505″ Modifier=”0″ VirtualKey=”8″/>
    </Handler>
    </AppOverride>
  13. Linijkę: <Param DisplayName=”Backspace” LParam=”917505″ Modifier=”0″ VirtualKey=”8″/> pobieramy z wcześniejszego backupu pliku opisanego w pkt. 7 z sekcji dotyczącej odpowiedniego klawisza.
  14. Zapisujemy plik
  15. Uruchamiamy program SetPoint

Od tej pory po wciśnięciu klawisza numer “9”, służącego zwykle w przeglądarkach do powrotu na poprzednią stronę, w programie notepad skasujemy jeden znak przed kursorem. Czyli wciśniemy klawisz “Backspace”.

To był taki przykład.

Teraz mały opis wybranych słów kluczowych:

  1. <UserOption Name=”ApplicationSpecificSettings”>1</UserOption> – opcja ta powoduje przypisanie klawiszy myszki w zależności od uruchomionego procesu, który ma zostać obsłużony. Jeżeli w tej opcji będzie cyfra “0” to nawet po wpisaniu jakiejś aplikacji myszka będzie reagowała w sposób opisany w pierwszej sekcji “Param” danego klawisza.
  2. <Button Number=”9″ Name=”9″> – Number: numer klawisza w systemie, tylko on się liczy tak na prawdę. Name: to numer dla programu SetPoint
  3. <Trigger Class= – Prawdopodobnie służy do wyboru rodzaju przycisku, czy jest to zwykły klawisz, czy może rolka. Chociaż nie znalazłem w pliku opisu rolki.

Kilka rzeczy ominiemy!!!

  1. <AppOverride App=”notepad.exe” HandlerSet=”KeystrokeAssignment”> – AppOverride: Ustawiania dla konkretnej aplikacji (a raczej procesu), App: nazwa procesu, HandlerSet: zestaw przypisywanych akcji, w tym przypadku naciśnięcie klawiszy
  2. <Handler Class=”KeystrokeAssignment”>: obsługiwana klasa, w naszym przypadku też naciśnięcie klawiszy
  3. <Param DisplayName=”Backspace” LParam=”917505″ Modifier=”0″ VirtualKey=”8″/>: DisplayName: wyświetlana nazwa, LParam: nie wiem ale to chyba identyfikuje klawisz w sterownikach, Modifier: też nie wiem ale to chyba wciśnięcie klawiszyw stylu Ctrl, Alt, VirtualKey: też nie mam pojęcia.

Jeżeli ktoś ma jakieś informacje to będę bardzo wdzięczny za nie.

One thought on “Logitech SetPoint”

  1. Na stronach microsoftu (MSDN) można znaleźć więcej szczegółów na temat tych symulowanych klawiszy. Nie analizowałem tego dokładnie, ale:
    DisplayName to chyba tylko informacja o tym co ma wyświetlać SetPoint.
    Modifier mówi o tym, czy są “wciśnięte” klawisze stanu (modyfikujące), np. 1=shift, 2=control, 3=2+1=shift+control (nie sprawdzałem ale powinno być rozróżnienie na lewy ctrl i prawy ctrl i podobnie z innymi klawiszami stanu).
    LParam to parametr przekazywany do jakiejś funkcji. Obstawiam, że jest to jakaś funkcja WinAPI lub też procedura obsługi zdarzeń (znaczy się napisana przez logitecha ale zgodna z wymogami WinAPI). Ten LParam jest wpisany dziesiętnie – po konwersji na hexy otrzymamy przykładowo (klawisz(e), wartości):
    ctrl+R, 0130 0001
    ctrl+I, 0170 0001
    ctrl+W, 0011 0001
    ctrl+tab, 000f 0001
    ctrl+shift+tab, 000f 0001 (to wskazówka, że modyfikator nie wchodzi w LParam)
    6, 0007 0001
    5, 0006 0001
    4, 0005 0001
    3, 0004 0001
    backspace, 000e 0001
    Nie zastanawiałem się jeszcze dokładnie co przedstawiają te wartości – trzebaby przeanalizoważ scancode’y, virual-key code’y, character’y oraz translate message. Może kiedyś zajrzę do swoich starych źródeł aplikacji obsługi klawiatury albo MSDN i rozgryzę te LParam’y 🙂

Comments are closed.