#include #include #include #define MAXPARAMLENGTH 1024 int start(LPSTR filespec, LPSTR args) { HINSTANCE instance; SHELLEXECUTEINFO infoblock = { 0 }; infoblock.cbSize = sizeof(infoblock); infoblock.hwnd = NULL; infoblock.lpVerb = NULL; infoblock.lpFile = filespec; infoblock.lpParameters = args; infoblock.nShow = SW_SHOWDEFAULT; infoblock.hInstApp = instance; if (ShellExecuteEx(&infoblock) && instance > (HINSTANCE)32) return 0; else return 1; } int main(int argc, char **argv) { char buffer[MAXPARAMLENGTH]; int i; if (argc >= 2) { for (i = 2; i < argc; i++) { if (strlen(buffer) + strlen(argv[i]) > MAXPARAMLENGTH - 2) return 3; else { strcat(buffer, argv[i]); strcat(buffer, " "); } } return start(argv[1], argstring); } return 5; }