Здравствуйте, Starter, Вы писали:
S>Можно по подробнее, как использовать эту ShellExecuteEx
S>для моего примера
#include <windows.h>
#include <stdio.h>
#include <assert.h>
void main ( void )
{
SHELLEXECUTEINFO se;
DWORD rc, exitcode;
ZeroMemory ( &se, sizeof (se) );
se.cbSize = sizeof (se);
se.fMask = SEE_MASK_NOCLOSEPROCESS;
se.lpFile = "C:\\your_dir\\your_script.vbs";
se.nShow = SW_SHOWNORMAL;
if (!ShellExecuteEx (&se))
printf ( "Someting screwed up!\n" );
else
{
assert (se.hProcess);
// Мы можем установить максимальное время выполнения
rc = WaitForSingleObject ( se.hProcess, 5000 ); // Если тайм-аут не нужен, пишем INFINITE
switch (rc)
{
case WAIT_TIMEOUT:
TerminateProcess ( se.hProcess, 0 );
printf ("Killed due timeout\n");
break;
case WAIT_OBJECT_0:
GetExitCodeProcess ( se.hProcess, &exitcode );
printf ( "Normal exit, code=%d\n", exitcode );
break;
default:
printf ("Wait abandoned?\n");
}
CloseHandle (se.hProcess); // Для очистки совести
}
}
Посмотрите также
раздел Q&A.