Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux

Модерирует : gyra, Maz

Widok (09-10-2007 14:48): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

mimir

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[/color]  строка 1
Код:
static int l_CreateProcess(lua_State *L){
  static const MAX_CMD = 1024;
  BOOL RetCode = 0;
  int DoWait = 0;
  int top = lua_gettop(L);
  char *CmdLine = 0;
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
  DWORD exit_code = 0;//Код завершения процесса

  if(top == 0){
    lua_pushnil(L);
    lua_pushstring(L,"No parameters!");
    return 2;
  }
 
  if( !lua_isstring(L,1) ){
    lua_pushnil(L);
    lua_pushstring(L,"First param must be a string!");
    return 2;
  }
  if( top > 1 ){
    if( !lua_isboolean(L,2) ){
      lua_pushnil(L);
      lua_pushstring(L,"Second param must be a boolean!");
      return 2;
    }
    DoWait = lua_toboolean(L, 2);
  }
 
  CmdLine = malloc(MAX_CMD * sizeof(char));
  ZeroMemory( CmdLine , sizeof(MAX_CMD * sizeof(char)) );
  strncpy(CmdLine,luaL_checkstring(L,1),MAX_CMD-1);
     
  ZeroMemory( &si, sizeof(si) );
  si.cb = sizeof(si);
  ZeroMemory( &pi, sizeof(pi) );
 
  // Start the child process.  
 RetCode = CreateProcess(  
    NULL,           // No module name (use command line)
   CmdLine,        // Command line
   NULL,           // Process handle not inheritable
   NULL,           // Thread handle not inheritable
   FALSE,          // Set handle inheritance to FALSE
   0,              // No creation flags
   NULL,           // Use parent's environment block
   NULL,           // Use parent's starting directory  
   &si,            // Pointer to STARTUPINFO structure
   &pi             // Pointer to PROCESS_INFORMATION structure
 );
 
  if( ! RetCode ){
    lua_pushnil(L);
    push_lasterr(L,"\"CreateProcess\"");
    free(CmdLine);
    return 2;
  }
  CloseHandle( pi.hThread );
  if(DoWait){
     // Wait until child process exits.
   WaitForSingleObject( pi.hProcess, INFINITE );
  }
  free(CmdLine);
 
  GetExitCodeProcess(pi.hProcess,&exit_code);
  // Close process and thread handles.  
 CloseHandle( pi.hProcess );
 
  lua_pushnumber( L, exit_code );
  return 1;
}
 
[color=Gray]Данный код внедрен в форум с помощью скрипта vladvro

Всего записей: 77 | Зарегистр. 14-01-2006 | Отправлено: 17:43 27-03-2007
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » SciTE - Open Source Text Editor for Windows & Linux
Widok (09-10-2007 14:48): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru