![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как зная хендл окна прочитать его заголовок и заменить своим [D5, NT4, Win2k, WinXP]
igornov © (2003-10-07 18:20:00)
Здравствуйте уважаемые мастера!!!
Необходимо в заголовок некоторого терминального приложения включить индикатор раскладки клавиатуры. Как читать текущую раскладку знаю. Могу прочитать также и заголовок. Но как туда
запихнуть то же + свой текст (в данном случае значение раскладки)
Интересует именно по хендлу, поскольку заголовок приложения при работе постоянно меняется.
Заранее благодарен.
Игорь Шевченко (2003-10-08 13:48:00) [1]
igornov (08.10.03 12:48)
Да, прошу пардону, для конкретного потока тоже можно. Ошибся я :)
В пределах нужного окна - GetWindowRect
blackman (2003-10-08 13:11:00) [2]
XP - чужое окно = чужая раскладка
igornov (2003-10-08 12:48:00) [3]
ну почему? ниже приведённый код это делает
function GetActiveKLayout: string;
var
hWindow,idProcess : THandle;
begin
hWindow := GetForegroundWindow;//получаем handle активного окна чужой программы
idProcess := GetWindowThreadProcessId(hWindow,nil);//Получаем идентификатор чужого процесса
case (GetKeyboardLayout(idProcess) shr $10) of //Получаем текущую раскладку в чужой программе
1033 : result := "EN";
1058 : result := "UK";
1049 : result := "RU";
end;
end;
остаётся только вывести например прозрачную плавающую форму с значением раскладки в пределах нужного терминального приложения.
Только вот как эти пределы вычислить для чужого окна?
Игорь Шевченко (2003-10-08 10:07:00) [4]
> Как читать текущую раскладку знаю.
Для своего приложения. Но не для чужого. И не факт, что раскладки будут совпадать.
igornov (2003-10-08 09:12:00) [5]
А сам индикатор тот который выводится в трей internat.exe как-то
связать или поместить в заголовок главного окна чужого приложения можно?
clickmaker (2003-10-07 18:38:00) [6]
WM_SETTEXT, SetWindowText