![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Сабж в названии темы=) Как это реализовать?
|
#2
|
||||
|
||||
![]() Без доп. софта - никак. Пиши сервер.
Кнопка "+" - весы в правом верхнем углу сообщения... |
#3
|
|||
|
|||
![]() зачем доп. софт?
Процесс создаётся через creteprocess а то что создано CreateProcess возваращает мне хендл программы.. как зная хендл программы узнать его видимое на экране окно и изменить заголовок? |
#4
|
||||
|
||||
![]() Тьфу, *ля. Смотрел тему "** по сети" потом переключился на твою, вот и показалось "Изменить заголовок по сети бла бля бла".
А так помоему есть ф-я API - какому процессу принадлежит окно. Смотри все окна, если найдешь нужное меняй. Кнопка "+" - весы в правом верхнем углу сообщения... |
#5
|
||||
|
||||
![]() если я правильно вас понял...
![]() Код:
procedure TForm1.FormShow(Sender: TObject); var h:HWND; begin h:=FindWindow(nil, 'Form1'); SetWindowText((h),'Delphi World FOREVER!!!'); end; |
#6
|
||||
|
||||
![]() Код:
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; |