2010-03-01 13 views
5

Próbuję wysłać naciśnięcia klawiszy do aplikacji VisualBoyAdvance przy użyciu AppleScript, ale nie mogę jej uruchomić.Aplikacja nie akceptuje naciśnięcia klawiszy

Mój kod, jak dotąd, jest to:

tell application "VisualBoyAdvance" 
    activate 

    tell application "System Events" 
     keystroke "k" 
    end tell 

end tell 

Kiedy mówię VisualBoyAdvance bezpośrednio, otrzymuję ten błąd:

error "VisualBoyAdvance got an error: Can’t get keystroke \"k\"." number -1728 from keystroke "k" 

próbowałem opowiadać VisualBoyAdvance bezpośrednio, a Próbowałem również używając key code 40, ale nadal nie mogę go uruchomić. O dziwo, to działa:

tell application "VisualBoyAdvance" 
    activate 

    tell application "System Events" 
     keystroke "d" using {command down} 
    end tell 

end tell 

Ale to jest skrót klawiaturowy, który pojawia się w pasku menu, więc myślę, że będzie to nieco inaczej.

Jak używać AppleScript do symulacji naciśnięcia klawisza i czy aplikacja odpowiada na nie? Jeśli nie mogę użyć AppleScript do tego, czego jeszcze mogę użyć?

+0

nie masz wsparcie wspomagające urządzenie jest włączone? – alesplin

+0

szczęście na tym? –

Odpowiedz

0

Deweloper ma wybór, aby aplikacja w pełni świadoma Applescript. Pozycje menu są alfabetyczne z punktu widzenia Findera, ale inne opcje interfejsu użytkownika mogą, ale nie muszą. Zobacz UIElementInspector, aby sprawdzić tę aplikację pod kątem elementów skryptowych.

+0

Czy istnieje inny sposób symulacji naciśnięć klawiszy w systemie? –

0

nic nie mogę, bo nie mają tej aplikacji, ale tutaj garuntee jest kilka rzeczy, aby spróbować

tell application "VisualBoyAdvance" 
    activate 
    tell application "System Events" 
     tell application process "VisualBoyAdvance" 
      try 
      keystroke "k" 
       on error 
        try 
        keystroke (ASCII character 75) 
        end try 
       end try 
     end tell 
    end tell 
end tell 
7

myślę, że jesteś prawie tam. Oto coś, czego użyłem w Safari; w tym przykładzie wysyłam klucz kodowy 48 (zakładka).

tell application "Safari" 
    activate 

    tell application "System Events" to tell process "Safari" to key code 48 
end tell 

AFAICS To powinno być w znacznym stopniu niezależne od wsparcia AppleScript w procesie docelowej pytasz Zdarzenia systemowe, aby zasymulować naciśnięcie klawisza za pośrednictwem powszechnego dostępu.

uzyskać pomoc kluczowych kodów, zobacz tę użyteczną aplikację: http://manytricks.com/keycodes/

+0

Także: "powiedz aplikacji" Zdarzenia systemowe ", aby powiedzieć procesowi" Safari ", aby nacisnąć klawisz" d "' – frnhr

+0

Nice @frnhr - to jeszcze jaśniejsze :) –

Powiązane problemy