Programme nach Zeit beenden und starten

DOS-Konfiguration, Anwendungen, Treiber und TSRs
drzeissler
DOS-Gott
Beiträge: 3124
Registriert: Mo 8. Feb 2010, 16:59

Programme nach Zeit beenden und starten

Beitragvon drzeissler » Do 3. Mai 2018, 13:34

Hi,
ich habe 5 Programme (einzelne ausführbare Dateien) die jede für sich einmal gestartet so lange laufen bis ein key (bspw. esc) gedrückt wird.
Könnte ich das automatisieren, dass ich eine Batch nehme und da mitteile, starte Programm ein, drücke ESC nach 1 Minute, starte dann Programm2 etc.?

Wie geht sowas.

Danke
Doc
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
Benutzeravatar
Solarstorm
LAN Manager
Beiträge: 233
Registriert: So 4. Mai 2014, 14:24
Wohnort: Heidelberg
Kontaktdaten:

Re: Programme nach Zeit beenden und starten

Beitragvon Solarstorm » Do 3. Mai 2018, 19:53

Unter Windows würde mir spontan AutoIT oder AutoHotKey einfallen.
drzeissler
DOS-Gott
Beiträge: 3124
Registriert: Mo 8. Feb 2010, 16:59

Re: Programme nach Zeit beenden und starten

Beitragvon drzeissler » Do 3. Mai 2018, 22:27

Danke, ich brauch das unter Dos.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
DOSferatu
DOS-Übermensch
Beiträge: 1109
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Programme nach Zeit beenden und starten

Beitragvon DOSferatu » Sa 5. Mai 2018, 06:03

Ich könnte so etwas programmieren.
Es kommt eigentlich nur darauf an, wie die Tasten abgefragt werden.
Wenn es "normal" passiert (mit "Getkey"-artiger Abfrage aus dem Tastaturpuffer) ist es relativ simpel, einen Tastendruck zu simulieren und sich in den Ticker-Int einzuklinken sollte auch kein Problem darstellen.
Wie gesagt, es käme darauf an, wie komplex und systemnah die Programme programmiert sind.
drzeissler
DOS-Gott
Beiträge: 3124
Registriert: Mo 8. Feb 2010, 16:59

Re: Programme nach Zeit beenden und starten

Beitragvon drzeissler » Sa 5. Mai 2018, 09:31

Es sind cracktrs/intros die in der Regel mit esc abgebrochen werden können.
Da die sehr klein sind, gehen davon zig auf eine Diskette.
Man könnte daher eine
286er
386er
486er
pentium

compilation auf eine Diskette machen und dann per Menu eine auswählen, die dann einfach läuft.

Sowas würde sich für eine Retro-Messe anbieten.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
DOSferatu
DOS-Übermensch
Beiträge: 1109
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Re: Programme nach Zeit beenden und starten

Beitragvon DOSferatu » Mo 7. Mai 2018, 07:02

drzeissler hat geschrieben:Es sind cracktrs/intros die in der Regel mit esc abgebrochen werden können.

Oh, DEMOS... Naja.
Bekanntlich sind Demo-Coder, die, was Platzverbrauch UND Rechenpowerverbrauch angeht, bekanntlich die effizientesten. Die coden normalerweise "hart am limit" - vor allem bei DOS-Maschinen, wo alles über eine SingleCore-CPU geht (und keine 3D-Grafikkarten, keine GPU...) - d.h. WENN etwas extrem hardwarenah gebaut sind, sind es Treiber und Demos.

Wenn es Demos sind, die den Ticker extrem hoch setzen (das sind vor allem solche, die SoundAusgabe per PC-Speaker machen) müßte man da vorsichtig sein. (Obwohl man hier auch den zweiten Ticker benutzen könnte, den kaum einer benutzt, weil er etwas schwieriger anzusteuern und die Ticks nur in 2er Potenzen einstellbar sind.)

Desweiteren geht es natürlich um den Abbruch per ESC. Bei Demos gehe ich davon aus, daß meist NICHT der Tastaturpuffer abgefragt wird, um nach gedrückter ESC zu testen - sondern direkt Port $60. Das kann man so leider nicht simulieren.

Natürlich gäbe es noch eine andere Möglichkeit: In den Ticker einklinken, dann, wenn das Demo läuft, testen, ob INT8-Rücksprungadresse sich geändert hat - falls ja, dann wieder zurück tauschen - d.h. so, daß die eigene ISR für INT8 VOR der des Demos aufgerufen wird.

Außerdem herausfinden, auf welche Frequenz der Ticker gestellt wurde, damit man die richtige Laufzeit einstellen kann. Der Ticker erhält einen Timeout entsprechend der Zeit. Nach Ablauf des Timeouts wird die Rücksprungadresse und die FLAGS vom Stack geholt und der DOS-Int zum Beenden eines Programms aufgerufen (INT $21, Funktion $4C soweit ich mich erinnere).

ABER: Hier müssen noch 2 Dinge berücksichtigt werden:
1. Das Demo könnte nicht im RealMode/V86 Mode, sondern im ProtectedMode laufen - entsprechender Code muß dann eingebaut werden.
2. Der Systemzustand müßte dann selbstöndig wiederhergestellt werden (Grafiklkarte, Soundkarte usw. "zurücksetzen"), weil das Demo ja dann quasi nicht normal beendet ("heruntergefahren") wurde, sondern abgewürgt.

Prinzipiell, um so etwas zu bauen, braucht man quasi etwas ähnliches wie einen einfachen Taskmanager.
Wären es einfache alte Tools gewesen, die nicht so nah an der Hardware gebaut sind, da kann man sich normalerweise darauf verlassen, daß die ganzen "Außenherum-Spielereien" problemlos gehen, weil diese Tools meist nur die Standard-BIOS-Funktionen benutzen und das könnte man eher leicht umgehen.
drzeissler
DOS-Gott
Beiträge: 3124
Registriert: Mo 8. Feb 2010, 16:59

Re: Programme nach Zeit beenden und starten

Beitragvon drzeissler » Mo 7. Mai 2018, 07:06

Ist nicht schlimm, kann ja selber esc drücken um das nächste Intro laufen zu lassen,
dann mache ich halt "nur" ne Batch und gut.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
Martin75
617K-Frei-Haber
Beiträge: 347
Registriert: Mo 6. Jul 2015, 21:46

Re: Programme nach Zeit beenden und starten

Beitragvon Martin75 » Mo 7. Mai 2018, 09:27

Falls sich der Aufwand zum basteln lohnt:

Mit einem Raspi oder ähnlichen die Esc taste drücken lassen (Kontakt parallel an echter Tastatur anschließen)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast