Advertisement
Guest User

Restart appself after code finish.

a guest
Jan 9th, 2015
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.12 KB | None | 0 0
  1. program test;
  2.  
  3. {$APPTYPE GUI}
  4.  
  5. uses
  6.   Windows;
  7.  
  8. const
  9.   App_Title = 'Always use brain and google before ask!';
  10.  
  11. function GetEnvVarValue(const VarName : string) : string;
  12. var
  13.   BufSize : integer;
  14. begin
  15.   BufSize := GetEnvironmentVariable(PChar(VarName), nil, 0);
  16.   if BufSize > 0 then
  17.   begin
  18.     SetLength(Result, BufSize - 1);
  19.     GetEnvironmentVariable(PChar(VarName), PChar(Result), BufSize);
  20.   end
  21.   else
  22.   begin
  23.     Result := '';
  24.   end;
  25. end;
  26.  
  27. var
  28.   SI : TStartupInfo;
  29.   PI : TProcessInformation;
  30.   AppFullPath, SzCmd : string;
  31.   SzModuleName : array[0..MAX_PATH - 1] of Char;
  32. begin
  33.   MessageBox(GetActiveWindow, 'Program just started.', PChar(App_Title), MB_OK);
  34.   GetModuleFileName(0, SzModuleName, MAX_PATH);
  35.   MessageBox(GetActiveWindow, 'Click OK to run this program again.', PChar(App_Title), MB_OK);
  36.   ZeroMemory(@SI, SizeOf(SI));
  37.   SI.cb := SizeOf(SI);
  38.   SzCmd := GetEnvVarValue('COMSPEC') + ' /C choice /N /C:YN /T:Y,1 & "' + SzModuleName + '"';
  39.   CreateProcess(nil, PChar(SzCmd), nil, nil, False, CREATE_NO_WINDOW, nil, nil, SI, PI);
  40.   CloseHandle(PI.hThread);
  41.   CloseHandle(PI.hProcess);
  42. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement