von dosbastler » Do 12. Mär 2020, 10:12
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?
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?