Показать сообщение отдельно
  #2  
Старый 13.09.2012, 03:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вариант:

Код:
program console;

{$APPTYPE CONSOLE}

uses
  Windows, SysUtils;

function GetConsoleWindow : HWND; stdcall; external 'Kernel32.dll';

var
  SI  : TStartupInfo;
  PI  : TProcessInformation;
  St  : String;
  Wnd : HWND;

begin
  Wnd := GetConsoleWindow;

  FillChar(SI, SizeOf(TStartUpInfo), 0);
  SI.cb          := SizeOf(TStartUpInfo);
  SI.dwFlags     := STARTF_USESHOWWINDOW;
  SI.wShowWindow := SW_SHOWNORMAL;

  WriteLn('Введите команду');
  WriteLn;
  
  while True do
  begin
    ReadLn(St);
    St := AnsiUpperCase(St);
    if (St = 'E') or (St = 'EXIT') then
      Break;
    if (St = 'SG') or (St = 'SHOWGUI') then
    begin
      if CreateProcess(NIL, 'notepad.exe', NIL, NIL, False, NORMAL_PRIORITY_CLASS, NIL, NIL, SI, PI) then
      begin
        ShowWindow(Wnd, SW_HIDE);
        if WaitForSingleObject(PI.hProcess, INFINITE) = WAIT_OBJECT_0 then
          CloseHandle(PI.hProcess);
        CloseHandle(PI.hThread);
        ShowWindow(Wnd, SW_SHOW);
      end;
    end;
  end;
end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием