1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

script/programm das eine tast drückt

Discussion in 'Programmieren' started by wolf-imst, Apr 21, 2007.

Thread Status:
Not open for further replies.
  1. wolf-imst

    wolf-imst ROM

    hallo!

    ich suche ein programm/script das zu einer bestimmten zeit eine taste betätigt.

    ich habe z.b. den moviemaker im hintergund rennen, und bereits so eingestellt, dass der "Aufnahmebutton" maskiert ist. jetzt muss nur noch das programm/script gestertet werden, welches diese taste dann drückt (einfach ein enter)

    hat jemand einen vorschlag wie man das realiesieren kann?

    danke mfg fips
     
  2. RealC++

    RealC++ Kbyte

    Grundsätzlich würd's schon gehen. Du kannst mit gewissen Funktionen der WinAPI durchaus eine bestimmte Taste betätigen.
    Das Problem ist nur, dass die Information das eine Taste gedrückt wurde im Normalfall nur an das soeben aktive Fenster geschickt wird.
    Ich glaube also, das schaffst du nicht.
     
  3. gerald_b

    gerald_b Kbyte

    das kann man hinbekommen...

    Ausgangspunkt ist der Windows-Taskplaner. Hier sollte die entsprechende Aktivität eingetragen werden

    a) im einfachsten Fall gibt es einen Komandozeilenparameter für das zu startende Programm (in diesem Fall, dass eine aufnahme gestartet wird) -> mal danach suchen und den Taskplaneraufruf entsprechend ergänzen

    b) mit dem Taskplaner ein VB- bzw. WindowsSkriptHost-Skript starten (Aufruf: wscript.exe xxx.wsf wobei xxx für den Dateinamen steht), welches das entsprechende Program startet und auch Tastendrücke senden kann (Skriptbefehle EXEC, AppActivate und SendKeys), siehe folgenden Beispielcode (Dateiendung .wsf):

    Code:
    <job id = "Testskript">
    <script language = "VBScript">
    
    Option Explicit
    
    Dim myShell, dialog, dialogid
    
    set myShell = WScript.CreateObject("WScript.Shell")
    
    ' beispielsweise Windows-Taschenrechner starten
    set dialog = myShell.Exec("C:\windows\system32\calc.exe")
    dialogid = dialog.ProcessId
    
    ' 5 Sekunden Wartezeit für Programmstart, ggf. dauert dieser länger
    WScript.Sleep 5000
    
    ' Programm in Vordergrund holen, 2 Sekunden darauf warten
    myshell.AppActivate(dialogid)
    WScript.Sleep 2000
    
    
    ' Zahlenkombination 123456789+987654321 und ENTER-Taste an Programm schicken (mit kleinen Pausen)
    myShell.SendKeys "123456789", true
    WScript.Sleep 250
    myshell.SendKeys "{+}", true
    WScript.Sleep 250
    myShell.SendKeys "987654321", true
    WScript.Sleep 250
    myShell.SendKeys "{ENTER}", true
    
    
    msgbox "ENDE"
    
    </script>
    </job>
    

    Einen Schönheitsfehler hat das Skript noch: wenn das Programm zu lange zum starten braucht oder nicht mehr existiert werden die Tastendrücke an das gerade aktive Fenster gesendet.


    Links zur Doku von Microsoft:

    EXEC: http://msdn2.microsoft.com/en-us/library/ateytk4a.aspx
    AppActivate: http://msdn2.microsoft.com/en-us/library/wzcddbek.aspx
    Sleep: http://msdn2.microsoft.com/en-us/library/6t81adfd.aspx
    SendKeys: http://msdn2.microsoft.com/en-us/library/8c6yea83.aspx
     
Thread Status:
Not open for further replies.

Share This Page