win mit App als Parameter starten

Hier dürfen auch unregistrierte Besucher posten.
Antworten
dosbastler

win mit App als Parameter starten

Beitrag von dosbastler »

Hallo,


wie kann ich aus dem DOS Modus von Windows heraus eine Windows App starten, in dem ich

win <mein-Programm> aufrufe

Ich habe mir in Freepascal folgendes kleinens Programm geschrieben:
[quote]
{
Program CHKWIN.PAS
Check's if windows active or not.

ErrorCode = 0 WIndows not active
ErrorCode = 1 Windows is active
}
program chkwin;

uses go32,Dos;

var
ErrorCode: word;
Registr: Registers;

begin
Registr.AX := $1600;
Intr($2F,Registr);
ErrorCode := Registr.AX and $01;
Halt(ErrorCode);
end.[/quote]

Ist der Errorcode 0, ist Windows nicht aktiv, so zumindest meine Absicht. Ist der Errorcode 1 dann ist Windows gestartet und ich kann meine Windows App direkt aufrufen.

Folgende Batchdatei habe ich mir nun geschrieben:
Start.bat mit folgendem Inhalt:
[quote]
chkwin
IF ERRORLEVEL 1 GOTO START
win MeinWinProgramm
GOTO END
:START
MeinWinProgramm
:END
[/quote]

Statt MeinWinProgramm kann auch einfach ein Parameter %1 stehen, dann gebe ich mein Programm als Parameter für die Batch Datei mit:

Start MeinWinProgramm

Ziel der Akton ist, MeinWinProgram auch dann starten zu können, wenn Windows im DOS Modus läuft. Normalerweise erhate ich ja dann die Meldung "This program cannot run is DOS mode". Stattdessen aber soll dann Windows in den GUI Modus schalten und mein Programm starten.

Leider funktioniert das mit obigem Code nicht, wie beabsichtigt.

Wie also kann ich mein Ziel erreichen?
Benutzeravatar
His_Cifnes
Kommandozeilenfetischist
Beiträge: 169
Registriert: Mi 31. Jul 2019, 22:06

Re: win mit App als Parameter starten

Beitrag von His_Cifnes »

Das erinnert mich an unseren Info-Unterricht, wo wir dem Infolehrer Streiche spielten.
Einmal wurde Windows direkt wieder beendet, nachdem es gestartet war, ein andermal wurde automatisch Solitär gestartet, wenn Windows startete.. und auch NUR Solitär... wurde es beendet, fuhr der Rechner wieder herunter..

Trick dabei ist der SHELL=-Wert in der uff.. war es win.ini oder System.ini? Einer der beiden.
Standardwert bei Windows 3.1 war SHELL=progman.exe

Das startet als erstes den Programm-Manager, und wenn man ihn beendet, wird auch Windows beendet.
Das klappt auch mit jedem anderen Programm.. so auch der sol.exe. : ))

Eventuell hilft Dir das ja weiter! : )
Du könntest mittels Programm die win.ini/system.ini bearbeiten und dann win.com starten. Dann startet NUR die in SHELL= angegebene Anwendung. Schliesst Du sie, beendet sich Windows wieder.
Antworten