Ich tüftel gerade an einer Batchdatei mit der ich einen bestimmten Ablauf automatisieren möchte. Es soll ein bestimmtes Programm aufgerufen werden(erledigt). Da sollen "EM"+Enter und PM+Enter im aktiven Fenster übergeben werden. Gibt es einen Batch Befehl für so etwas?
Such mal nach Autohotkey. Das kann noch sehr viel mehr. Mit freundlichen Grüßen Thorsten Ostermann
Mit Batch (also dem DOS-Urgestein von 1800irgendwas) schaut das schlecht aus, aber Power-Shell müsste gehen. In etwa (Nur als Anregung zum Dokumentation-Lesen und weitersuchen)
1 | $notepad = Start-Process notepad.exe -PassThru |
2 | # Wait .. |
3 | Start-Sleep -Seconds 2 |
4 | |
5 | Add-Type -AssemblyName UIAutomationClient |
6 | $ws = New-Object -ComObject wscript.shell |
7 | $ws.AppActivate($notepad.Id) |
8 | |
9 | $ws.SendKeys("Hello, world!{ENTER}") |
Wenn der Ablauf mit Dateien zu tun hat, bietet es sich an, das Script in den SENDTO: - Ordner zu packen. Damit kommen auch Laien eher klar als mit Tastenkombinationen.
Öhm..hat sich erledigt..von den 3 Beiträgen habe ich nicht einen verstanden. Bin halt zu alt. Dann weiter Oldschool mit tasten drücken. Schade
Tim G. schrieb: > Öhm..hat sich erledigt..von den 3 Beiträgen habe ich nicht einen > verstanden. > Bin halt zu alt. Guck Dir einfach AutoHotkey an, damit solltest Du das relativ einfach gelöst bekommen. Wikipedia hat sogar ein Beispiel, das nah an dem ist, was Du vorhast: https://de.wikipedia.org/wiki/AutoHotkey#AutoHotkey-Programmbeispiele
Hat Windows seit vielen Jahren an Bord. Nennt sich "Aufgabenplanung" Man kann zwar (mache ich heute noch) mit Batch einiges machen und die Powershell würde noch mehr bringen, aber man kann das auch aufzeichnen und abspielen.
Frank O. schrieb: > Hat Windows seit vielen Jahren an Bord. Nennt sich "Aufgabenplanung" Wie lässt Du die Bedienelemente in einer Programmoberfläche bedienen?
Harald K. schrieb: > Wie lässt Du die Bedienelemente in einer Programmoberfläche bedienen? Das habe ich schon lange nicht mehr gemacht. Früher hat das alles aufgezeichnet und man konnte das zu bestimmten Zeiten ablaufen lassen.
Frank O. schrieb: > Harald K. schrieb: >> Wie lässt Du die Bedienelemente in einer Programmoberfläche bedienen? > > Das habe ich schon lange nicht mehr gemacht. Früher hat das alles > aufgezeichnet und man konnte das zu bestimmten Zeiten ablaufen lassen. wie hast du sichergestellt daß das richtige Fenster den Focus bekam?
Joachim B. schrieb: > wie hast du sichergestellt daß das richtige Fenster den Focus bekam? Geeignete Software orientiert sich am Fensterklassennamen*, aber mir wäre wirklich neu, daß der Taskplaner auch nur irgendwas davon weiß. *) den kann man z.B. mit Spy++ rausfinden: https://learn.microsoft.com/de-de/visualstudio/debugger/introducing-spy-increment?view=vs-2022
Joachim B. schrieb: > wie hast du sichergestellt daß das richtige Fenster den Focus bekam? Das was DU siehst ist nur ein Bruchteil von dem was dahinter steckt. Jedes Fenster / Programm hat eine eindeutige und wiederholende ID, danach richtet sich Windows, nicht nach dem sichtbaren "Fenster".
Rene K. schrieb: > Jedes Fenster / Programm hat eine eindeutige und wiederholende ID, > danach richtet sich Windows, nicht nach dem sichtbaren "Fenster". mir war aber nie klar wie man aus der dos shell diese ID bekommt und welches Fenster gerade aktiv ist.
Hmmm schrieb: > Guck Dir einfach AutoHotkey an, damit solltest Du das relativ einfach > gelöst bekommen. Ich bin Freund von AutoIT: https://www.autoitscript.com/site/autoit/ Damit kann man sogar komplette Programme mit Grafikoberfläche bauen. Joachim B. schrieb: > Frank O. schrieb: >> Harald K. schrieb: >>> Wie lässt Du die Bedienelemente in einer Programmoberfläche bedienen? >> Das habe ich schon lange nicht mehr gemacht. Früher hat das alles >> aufgezeichnet und man konnte das zu bestimmten Zeiten ablaufen lassen. Die Windows-Aufgabenplanung konnte noch nie Eingaben aufzeichnen. Das geht mit einem Tool von AutoIT, wobei man dessen Ergebnis auch nacharbeiten muß. > wie hast du sichergestellt daß das richtige Fenster den Focus bekam? Das ist lustig, wenn die Maus über den Bildschirm läuft und irgendwas anklickt, was gerade im Vordergrund ist. Mit AutoIT frage ich "Winactive" ab bzw. hole die Anwendung nach oben. Automatisierte Programmbedienung ist nett, aber, es zuverlässig zu machen, bereitet Aufwand.
Joachim B. schrieb: > mir war aber nie klar wie man aus der dos shell diese ID bekommt und > welches Fenster gerade aktiv ist. Jedes Windows-Programm darf Win32-API-Funktionen aufrufen, und beispielsweise alle Fensterklassennamen laufender Prozesse mit Fenstern auflisten lassen. Zusätzlich lassen sich Fensterhandles bestimmen, und an die können Nachrichten versendet werden. Aus dem, was Du "dos shell" nennst, heraus geht das jedoch nicht mit Bordmitteln. Programme wie "AutoIt" aber machen genau das. Das von mir vorhin erst verlinkte Spy++ kann einem diese Informationen anzeigen, wenn man sich dafür interessiert. Bei derartigen Aufgaben besonders widerspenstig sind Programme, die ihren eigene GUI-Renderer verwenden und nicht auf dem Windows-Fensterunterbau aufbauen. Diese rendern ihre GUI in eine große Bitmap und lassen Windows diese anzeigen. Da gibt es dann für Bedienelemente innerhalb der Anwendung keinerlei Informationen mehr, während ein herkömmliches Windows-Programm sich auf jeden einzelnen Button, jedes Icon und jede Textzeile hin sezieren und gezielt ansteuern lässt.
Harald K. schrieb: > Bei derartigen Aufgaben besonders widerspenstig sind Programme, die > ihren eigene GUI-Renderer verwenden und nicht auf dem > Windows-Fensterunterbau aufbauen. Diese rendern ihre GUI in eine große > Bitmap und lassen Windows diese anzeigen. Da gibt es dann für > Bedienelemente innerhalb der Anwendung keinerlei Informationen mehr, ich denke das ist mir auch bei einigen DOS Spielen begegnet! Manfred P. schrieb: > Das ist lustig, wenn die Maus über den Bildschirm läuft und irgendwas > anklickt, was gerade im Vordergrund ist. eben drum meine Frage nach welches Fenster ist vorne Rene K. schrieb: > Das was DU siehst ist nur ein Bruchteil von dem was dahinter steckt. ach [/Loriot]
Joachim B. schrieb: > wie hast du sichergestellt daß das richtige Fenster den Focus bekam? Ich habe mir das gerade angeschaut. Das ist wohl deutlich verändert. Früher konnte man die Aufgaben einfach aufzeichnen, in dem man auf "Aufnahme" drückte, dann alle Aktionen ausführte und am Ende auf Stopp drückte und das ganze speicherte. Dann konnte man das zu beliebigen Zeiten ausführen. Gibt es in dieser Form wohl nicht mehr. Aber ich denke, wenn man sich mit beschäftigen würde, geht das sicher auch noch. Trotzdem würde ich das auch lieber über eine Batch-Datei oder über einen Skript machen, denn das ist dann auch erstmal mit einer Einarbeitungszeit verbunden.
Frank O. schrieb: > Früher konnte man die Aufgaben einfach aufzeichnen Wäre mir neu. Du verwechselst das vermutlich mit irgendwelcher Fremdsoftware.
:
Bearbeitet durch User
Frank O. schrieb: > War bestimmt Windows 95. Da hiess das "System Agent", war Bestandteil des optionalen Plus-Pakets und hat mehr oder weniger dasselbe getan wie heute der Task Scheduler. Siehe z.B. https://slideplayer.com/slide/6241091/ (Seite 62)
Mag sein, dass das im Plus-Paket war. Es hatte auf jeden Fall funktioniert. Ich selbst hatte keine Verwendung dafür und hatte es nur aus Interesse ausprobiert.
Frank O. schrieb: > Mag sein, dass das im Plus-Paket war. Wie gesagt, der System Agent konnte sowas auch nicht. Aber wahrscheinlich warst Du noch weiter in der Vergangenheit, Windows 3.1 hatte nämlich so ein Feature, das bloss mit dem Task Scheduler nichts zu tun hatte, nannte sich "Macro Recorder": https://www.mjtnet.com/blog/2014/07/03/remember-the-macro-recorder-in-windows-3-1/
Mag sein. Als mein Sohn starb, da hatte ich einen Gedächtnisverlust. Das Meiste ist wieder gekommen, nur das Zeitgefühl nicht mehr so richtig.
Also bei Win3.1 war der Makrorekorder noch so dabei. Ich meine mich erinnern zu können, dass wir damals wilde Mauszeigerfahrten aufgenommen haben und dann irgendeinen Hotkey zum Abspielen festgelegt haben, um andere Benutzer zu verwirren. Wenn es ein Kommandozeilenprogramm ist sollte auch
1 | echo EM | "C:\Program Files\hurz.exe" |
funktionieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.