2016-08-02 23 views
-1

-Update 05.08.16 - 00.08 Uhr: Hier ist ein Video von mir versucht, diese Arbeit zu bekommen: https://youtu.be/h9gAirlUGyIAutoHotKey - Wie sende ich einen einzelnen Tastendruck automatisch?

Also, ich versuche einmal eine Taste gedrückt beim Programmstart zu haben. Das ist, was ich habe, ich bin ein noob so mit mir bitte gebärt

{ 
    Send, {F11} 
} 

Nun, wenn ich das Programm starte es nicht den Schlüssel senden. Hilfe?

Vielen Dank für jede Hilfe, die Sie

  • Ian
+0

Veröffentlichen Sie ein minimales Beispiel, das den Fehler bitte reproduziert. – 2501

+0

@IanB Was genau willst du? Geben Sie einen Schlüssel ein, wenn das Programm FIRST startet, oder JEDES Mal, wenn es aktiv wird, oder was? Was macht 'F11' in diesem Zusammenhang? Ist es eine einmalige Sache? Zum Beispiel haben einige Programme einen Nag-Bildschirm, den Sie ablehnen müssen (normalerweise mit 'enter'). Dann besteht die typische Lösung darin, eine Stapelverarbeitungsdatei (oder sogar ein AHK-Skript) zu verwenden, um das Programm zu starten, und dann den Schlüssel zu senden. Die folgenden Antworten sind Skripte, die ausgeführt werden müssen, um zu funktionieren - sie funktionieren nicht automatisch. Otoh, wenn das Skript als Teil der Batch- oder ahk-Startsequenz ausgeführt wird, sind Sie im Geschäft. Lmk, – PGilm

+0

OKAY, @IanB, einige meiner Fragen werden in Ihrem anderen Beitrag beantwortet. Ich habe dort einen Kommentar, und eine Antwort unten zeigt, wie. – PGilm

Antwort

1
flag = 0 
processName := "xenia.exe" 

Loop 
{ 
    If ProcessExist(processName) 
    { 
     WinGetTitle, title, ahk_exe %processName% 
     IfWinActive, %title% 
     { 
      if flag = 0 
      { 
       Send, {F11} 
       flag = 1 
      } 
     } 
     else 
     { 
      flag = 0 
     } 
    } 
    Sleep, 1000 
} 

ProcessExist(Name) 
{ 
    Process,Exist,%Name% 
    return Errorlevel 
} 
+0

Das schien es nicht für mich zu tun, ich habe ein bisschen mehr in Sachen gesucht und ich bin jetzt mit diesem Code gelandet: http://pastebin.com/R2Etkkc9 Es funktioniert und alles, wenn die Das Fenster wird minimiert und es wird F11 gesendet, wenn ich Numpad 0 drücke. Aber das ist nicht das, was ich will, und ich finde ehrlich gesagt keinen Weg, Dinge beim Start zu erreichen. Ich habe Loop versucht, was beim Start nichts bringt und ein paar andere Dinge. Ich bin hier wirklich verwirrt. – IanB

+0

überprüfe meine bearbeitete Antwort, das sendet F11 nur, wenn das Fenster im maximierten Zustand ist –

+0

Aber es beginnt windowed, was du jetzt sagst ist, dass ich es maximieren muss, bevor F11 zum Programm geschickt wird, ich könnte einfach ganz gescannt haben das Programm selbst dann, wenn ich auf die Symbolleiste gehen muss, um es zu maximieren. – IanB

0

Per Ihrer anderen Frage und meinen Kommentar dort zur Verfügung stellen können:

; This code both launches and fullscreens XENIA . . . 
#Persistent 
#SingleInstance, Force 

Run, xenia.exe 
Sleep, 500 
GoSub, DoIt 
return 

numpad0:: 
GoSub, DoIt 
return 

DoIt: 
IfWinExist, ahk_class XeniaWindowClass ahk_exe xenia.exe 
{ 
    WinActivate, ahk_class XeniaWindowClass 
    #IfWinActive, ahk_class XeniaWindowClass 
    { 
     Send, {F11} 
    } 
} 
return 

Nun, wenn die Frage ist, Wirklich zum Starten von Xenia mit einer Datei, auf die Sie geklickt haben, z. B. mit einer Explorer-Erweiterung Es gibt Möglichkeiten, es zum Laufen zu bringen (indem man das Skript der Registrierung hinzufügt und/oder den Dateinamen und den Pfad in die Befehlszeile eingibt). Bitte geben Sie uns noch einmal Einzelheiten darüber, was Sie wollen!

+0

Bitte schauen Sie sich das Video an, das ich mit meiner Frage im ursprünglichen Post verlinkt habe, hoffentlich hilft das bei dem, was ich versuche zu tun – IanB