![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Доброго времени суток! 
		
	
		
		
		
		
			
		
		
		
		
		
			Тип приложения: консольное. Как скрыть себя, т.е. консоль? Например, пользователь вводит команду "showgui" и появляется форма с кнопочками и всякими другими контролами, консоль исчезает. Пользователь закрывает окно - консоль опять появляется. Известен метод через FindWindow и ShowWindow, но не подходит. Заранее спасибо. Последний раз редактировалось Amgsys HQ, 13.09.2012 в 00:47.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Вариант: 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	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. | 
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
 
Amgsys HQ (13.09.2012)
  | ||