Показать сообщение отдельно
  #6  
Старый 21.09.2010, 08:57
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
function EnumThreadWndProc(hwnd: THandle; lParam: LPARAM): Boolean; stdcall;
var
  len: Integer;
  classname: array [0..$ff] of Char;
begin
  Result:=True;
  // если окно видимое, то
  if IsWindowVisible(hwnd) then
  begin
    // получаем его класс
    len:=GetClassName(hwnd, @classname, SizeOf(classname));
    if len>0 then
      // и заголовок меняем на класс
      SetWindowText(hwnd, PChar(Copy(classname, 1, len)));
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  startupinfoa: _STARTUPINFOA;
  processinformation: _PROCESS_INFORMATION;
begin
  // инициализируемся
  ZeroMemory(@startupinfoa, SizeOf(_STARTUPINFOA));
  startupinfoa.cb:=SizeOf(_STARTUPINFOA);
  startupinfoa.wShowWindow:=SW_SHOWNORMAL;
  // создаем процесс mshearts.exe
  CreateProcess(nil, PChar('mshearts.exe'), nil, nil, False, 0, nil, nil, startupinfoa, processinformation);
  // ждем максимум 10 сек пока не создадутся окна
  WaitForInputIdle(processinformation.hProcess, 10000);
  // найдем все окна нашего процесса
  EnumThreadWindows(processinformation.dwThreadId, @EnumThreadWndProc, 0);
end;
Ответить с цитированием