vielleich auf die schnelle kann mir jemand helfen,
Die WinExec Funktion erlaubt ein Programm aufzurufen.
Welche Möglichkeiten gibt es um den gleichen Programmm zu schließen?
vielen dank im Voraus
Lech
vielleich auf die schnelle kann mir jemand helfen,
Die WinExec Funktion erlaubt ein Programm aufzurufen.
Welche Möglichkeiten gibt es um den gleichen Programmm zu schließen?
vielen dank im Voraus
Lech
Hi Lech,
mir fällt auf die schnelle nichts ein, aber schau Dir mal die Funktionen CreateProcess() und TerminateProcess() an.
Gruß Patrick
danke Patrick,
das ist schon ein Anfang
(Falls interessant: Man könnte auch verwenden glelich ausführbare Aufruf:
ShellExecute(NULL, „open“, „C:\Programme\Fremdprog.exe“,NULL, NULL, SW_SHOW);
wo jedoch andere Optionen wie SW_ HIDE nicht wirken.
Die Funktion hat nur Drei Operationen „open“, „print“, „explore“ und keine „exit“)
Zu Deine Antwort: mit dem Handle komme nicht zu Recht,
BOOL TerminateProcess(
HANDLE hProcess, // handle to the process
UINT uExitCode // exit code for the process
);
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Lech!
Dieser Handler, den du meinst, bekommst du durch die Funktion
HANDLE OpenProcess(
DWORD dwDesiredAccess, // access flag
BOOL bInheritHandle, // handle inheritance flag
DWORD dwProcessId // process identifier
);
In der MSDN sind ja eh alle Parameter beschreiben. Nur eins der Parameter dwProcessId ist die ID dieses besagten Prozesses. Diesen bekommst du, indem du dir einmal die HWND dieses Fensters holst, und zwar mit
HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name //kann NULL sein
);
Mit diesem HWND kannst du nun die Funktion
DWORD GetWindowThreadProcessId(
HWND hWnd, // handle to window
LPDWORD lpdwProcessId // address of variable for process identifier
);
aufrufen. So erhältst du nun die Prozess-ID. Diese setzt du nun in OpenProcess ein - und fertig!
hWnd = FindWindow („MeineApp“, NULL);
threadID = GetWindowThreadProcessID (hWnd, &processID);
hProcess = OpenProcess (PROCESS_ALL_ACCESS, TRUE, processID);
TerminateProcess (hProcess, 0);
Es müsste eigentlich funktionieren!
Viel Spass,
KoRn!
Hallo Lech!
Dieser Handler, den du meinst, bekommst du durch die Funktion
KoRn!
Danke, danke, danke, wirklich hast Du dir Mühe gegeben
ich probiere sofort aus
Lech