wtorek, kwietnia 14, 2009

Proxy na program

#include <windows.h>
#include <process.h>

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{
char* argv[32];
for (int i=0; i < 32; i++)
argv[i] = 0;

int argp = 2;
char *args = lpszArgument;
while(*args!=0) {
if (*args==' ') {
argv[argp++] = ++args;
args[-1] = 0;
}
}
argv[0] = "AppToFilterArgs.exe";
argv[1] = args;
return execv("AppToFilterArgs", argv);
}

Można prościej z ShellExecute(0, "open", "AppToFilterArgs.exe", args, NULL, SW_SHOW); albo bardziej skomplikowanie z CreateProcess. Pierwszy kod jest pod Windowsem blokujący - proces główny czeka na zakończenie AppToFilterArgs.exe (podobno _execv w oryginalnym VisualStudio 2005+ jest polecane jako zgodne ze standardem POSIX, jak tak dalej pójdzie to nie będzie już można polegać na błędach w oprogramowaniu MS...).

0 komentarze: