P
Probiers mal damit bei uns funktionierts:
Es lohnt sich dazu die MSDN zu lesen
/***********************************************************************.FA*
.FUNCTION [ spawning to an external Programm ]
--------------------------------------------------------------------------
.GROUP [ tool funktions ]
.AUTHOR [ PAD ]
--------------------------------------------------------------------------
.DESCRIPTION
Aufrufen eines externen eigenständigen Programms ohne dass eine
DosBox erscheint
--------------------------------------------------------------------------
.PARAMETER
IN
char *Appname Name des programms welches gestartet werden soll
char *Cmdline Übergabeparameter des Programms
OUT
CHANGED
--------------------------------------------------------------------------
.RETURNVALUE
dwexitcode Exit code des Processes
--------------------------------------------------------------------------
.LOCAL_VARIABLES
--------------------------------------------------------------------------
.GLOBAL_VARIABLES
--------------------------------------------------------------------------
.FUNCTION_REFERENCES
--------------------------------------------------------------------------
.HISTORY
Date Author Comment
11.12.00 PAD /DDT Definition
**********************************************************************.HE**/
#define LONGSTRINGLEN 512 + 1
unsigned long int SpawnWaitNoWindow(char *AppName,char *CmdLine)
{
TCHAR szCmdLine[LONGSTRINGLEN];
PROCESS_INFORMATION pi;
STARTUPINFO si={sizeof(si)}; // da der erste Parameter gefüllt wird werden zumindest ab Visual C 5.0 alle anderen genullt
unsigned long int dwExitCode;
BOOL fSucess;
// APPLTraceB(APPLV3,"SpawnWaitNoWindow") nur eine DebbuggingAusgabe
sprintf(szCmdLine,"%s %s",AppName,CmdLine);
fSucess=CreateProcess(AppName,szCmdLine,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si ,&pi);
if (fSucess)
{
CloseHandle(pi.hThread);
WaitForSingleObject(pi.hProcess,INFINITE);
GetExitCodeProcess(pi.hProcess,&dwExitCode);
CloseHandle(pi.hProcess);
}
else
{
dwExitCode=0xFFFFFFFFL;
}
// APPLTraceEr(APPLV3,"SpawnWaitNoWindow",dwExitCode) nur eine DebbuggingAusgabe
return dwExitCode;
}