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

5 Antworten

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 }




domi47 
Beitragsersteller
 09.11.2016, 13:44

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

valvaris  09.11.2016, 13:48
@domi47

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.

domi47 
Beitragsersteller
 09.11.2016, 13:53
@valvaris

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

valvaris  09.11.2016, 13:55
@domi47

Dann mach das Startmenü auf und gib mal powershell ein

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

valvaris  09.11.2016, 13:59
@domi47

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

domi47 
Beitragsersteller
 09.11.2016, 14:02
@valvaris

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

domi47 
Beitragsersteller
 09.11.2016, 14:14
@valvaris

hab es jetzt zum laufen gebracht aber ingame tut sich nichts

valvaris  09.11.2016, 14:28
@domi47
[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 ?

init:

#NoEnv

#SingleInstance, Force

#Persistent

#InstallKeybdHook

#UseHook

#KeyHistory, 0

#HotKeyInterval 1

#MaxHotkeysPerInterval 127

Menu:

version = 0.1

Menu, tray, NoStandard

Menu, tray, Add

Menu, tray, Add, Simple script version %version%

Menu, tray, Add, start script , start

Menu, tray, Add, exit script , exit

start:

sleep, 50000

send {1}

if (!GetKeyState("NumPad5","P"))

   goto init

else

   goto start

exit:

exitapp   

script stop beim drücken der numpad 5 taste sonst lauft er weiter

menu ist mit dabei

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.

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?


valvaris  09.11.2016, 13:41

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.

offeltoffel  09.11.2016, 14:03
@valvaris

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

domi47 
Beitragsersteller
 09.11.2016, 13:34

in einem spiel soll die 1 gedrückt werden

hey, hab das gerade durch zufall gefunden.

ist es möglich das er den command an eine bestimmte anwendung schickt so das wenn ich in einer anderen anwendung gerade etwas mache er die aktion dennoch dort ausführt wo er soll?