Frage von domi47, 71

Script erstellen welches alle paar Sekunden eine Taste drückt?

Hallo liebe Community,

ich habe folgendes Problem und zwar brauche ich ein Script welches alle 50 Sekunden die Taste 1 drückt. Also das heißt ich starte das script und es drückt alle 50 sekunden die 1 Taste ohne dass ich iwas machen muss. Ich benutze autohotkey. Wäre es auch möglich eine taste festzulegen zum starten und stoppen des scripts ?

danke im vorraus

Antwort
von merkurus, 22

Wäre es auch möglich eine Taste festzulegen
zum starten und stoppen des scripts ?

Ja, In AutoHotKey gibt es dafür den Befehl SUSPEND. z.B.

^!s::
Suspend
Return


Beim Drücken der Tasten Strg+Alt+S wird das Script gestopt.
Beim nochmaligen Drücken wieder gestartet usw.

Antwort
von valvaris, 46

Mit der Windows Powershell:

https://technet.microsoft.com/en-us/library/ff731008.aspx



[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")

while(1) {
[System.Windows.Forms.SendKeys]::SendWait("1") Start-Sleep -Seconds 50 }



Kommentar von domi47 ,

muss ich dieses powershell runterladen oder muss ich einfach eine text datei erstellen und die endung ändern und wenn ja in was ?

Kommentar von valvaris ,

Powershell is seit Windows 7 mit dabei.

Leg ne Textdatei an, schreib das da rein und speicher sie unter tasten.ps1

Dann kannst du das einfach auf machen und ausführen.

Kommentar von domi47 ,

hab ich aber wenn ich die ps1 datei öffne kommt nur die txt datei

Kommentar von valvaris ,

Dann mach das Startmenü auf und gib mal powershell ein

oder Start > Programme > Zubehör > Systemprogramme > Windows Powershell

Kommentar von domi47 ,

und dann ?

Kommentar von valvaris ,

Dann öffnest du dein Script damit und führst es aus.

Kommentar von domi47 ,

habe ich gemacht und habe es eingefügt aber es passiert nix

Kommentar von domi47 ,

hab es jetzt zum laufen gebracht aber ingame tut sich nichts

Kommentar von valvaris ,
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
[Microsoft.VisualBasic.Interaction]::AppActivate("hier dein Spiel eintragen")

[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")

while(1) {
[System.Windows.Forms.SendKeys]::SendWait("1")
Start-Sleep -Seconds 50
}

Vielleicht ?

Antwort
von offeltoffel, 51

Ich weiß nicht, ob es sowas gibt, das einen Tastatur-Input imitiert. Wenn ja, habe ich davon noch nicht gehört.

Normal ist es so, dass die Eingabe direkt in das ausgeführte Programm erfolgt, z.B. in Form eines Batch-Files, das dann aber auch ausgelesen werden muss.

In welche Software soll die "1" denn getippt werden?

Kommentar von domi47 ,

in einem spiel soll die 1 gedrückt werden

Kommentar von offeltoffel ,

Ok, das ist schlecht, weil du ja nicht auf den Code des Spiels zugreifen kannst und weil das Spiel auch keine Eingabe von extern (z.B. eben einem Batch-Script) erwartet.

Hier mal ein Google-Treffer:

http://www.chip.de/downloads/AutoIt\_21187168.html

Kommentar von valvaris ,

Da irrst du dich leider und es gibt mehrere Möglichkeiten:

Den Tastaturtreiber bzw. ein Zubehörprogramm, was drauf zugreift und den Tastendruck simuliert (Logitech hat sowas für Tastatur und Maus beispielsweise)

Die Windows-Api, welche vom Tastaturtreiber aufgerufen wird, wenn eine Taste gedrückt wird: Da wäre es die Funktion System.Windows.Forms.SendKey()

Dann kann man unter der Kommandozeile einem Programm mit < die Eingaben aus einer Datei zukommen lassen, diese werden genauso wie Tastenanschläge, allerdings ohne Pause betrachtet und behandelt.

Kommentar von offeltoffel ,

Ich habe deine Antwort gelesen und da schon festgestellt, dass ich Windows Powershell noch immer unterschätze. Vorsichtshalber habe ich auch nicht geschrieben "sowas gibt es nicht", sondern "von sowas habe ich noch nie gehört". Jetzt weiß ich es auf jeden Fall!

P.S.: ich stelle es mir witzig vor, ein Programm zu schreiben, dass alle 20 Sekunden einen zufälligen Buchstaben eintippt...damit kann man Kollegen sicher herrlich ärgern :D

Keine passende Antwort gefunden?

Fragen Sie die Community