Henrik skrev:
> Hej NG.
>
> Jeg vil 'terminere' en exe fil (som kører i egen process) via min
> application (Visual Studio 6.0). Jeg kender kun navnet på exe filen
> (Test.exe) og ved at den kører. Det skal fungere under NT, XP, 2000.
>
> Har i nogle ideer ?.
>
> Tak.
>
> Henrik.
>
Jeg ved ikke hvordan man finder en process ud fra navnet på exe-filen,
men hvis programmet du ønsker at terminere har et vindue, kan du finde
dette ud fra texten på vinduet (normalt den text der står i det blå felt
øverst i vinduet) du kan herefter sende WM_CLOSE til dette vindue's
handle:
#include <stdio.h>
#include <windows.h>
BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lParam)
{
char text[1024] = "";
GetWindowText(hwnd, text, 1024);
printf("Window Text: %s\n", text);
if(strstr(text, "Program Name"))
{
SendMessage(hwnd, WM_CLOSE, 0, 0);
}
return TRUE;
}
int main(void)
{
EnumWindows(MyEnumWindowsProc, 0);
return 0;
}
Dette lille program lister alle vinduer's titler,
og hvis det finder et vindue hvor "Program Name"
indgår, vil det forsøge at lukke dette.
Håber at dette hjælper, ellers kan du se på
EnumProcesses() og/eller GetModuleFileNameEx()
i MSDN.
/b
--
Bertel Brander, author of Wain, a free text editor for programmers:
http://home20.inet.tele.dk/midgaard/program.htm