Страница 1 из 2

програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 12:39
sunyun
Всем добрый день
Подскажите, можно ли реализовать програму или сервис которая будет изменять имя любого активного окна наприер на Macrosoft Word - Doc1.doc.
Может кто такое уже делал, поделитесь.
Спасибо

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 12:58
somewhere
Должна сидеть в памяти и периодически искать окно с заданным именем (FindWindow), при нахождении такого используем SetWindowText для найденного окна, вот и все

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 13:05
sunyun
somewhere писал(а):Должна сидеть в памяти и периодически искать окно с заданным именем (FindWindow), при нахождении такого используем SetWindowText для найденного окна, вот и все
А если я хочу изменять активыне окна любхх приложений?, будь то word или exel или Outlook или Explorer?

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 13:07
somewhere
В каком смысле изменять, что именно? заголовок всех окон?
Если так, то тоже самое, используя EnumWindows + еще GetWindowText для проверки что заголовок окна уже содержит изменения

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 13:17
sunyun
есть программа, которая видит по сети деятельность сотрудников, считывая их активное окно в данный момент.
Хочу сделать программку, которая будет изменять любое активно окно на то которая я запрограммирую.
это реально сделать? и на каком языке лучше?

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 13:37
Naeel Maqsudov
:) А с чего вы взяли, что Ваша (точнее Вашего руководства) программа смотрит именно на заголовок окна?
&quot писал(а):и на каком языке лучше?
Рекомендованные Вам функции WinAPI можно вызвать из чего угодно. Можно использовать C, Delphi, VB... Лишь бы была возможность вызвать функцию из DLL.
Это можно сделать даже из макроса в том же Word-е.

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 13:38
somewhere
опять же - как именно изменять окно? сделать реально почти все, язык - это уже ваш выбор, на чем вам проще на том и пишите... WinAPI к конкретному языку не привязан

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 13:53
sunyun
Naeel Maqsudov писал(а): :) А с чего вы взяли, что Ваша (точнее Вашего руководства) программа смотрит именно на заголовок окна?



Рекомендованные Вам функции WinAPI можно вызвать из чего угодно. Можно использовать C, Delphi, VB... Лишь бы была возможность вызвать функцию из DLL.
Это можно сделать даже из макроса в том же Word-е.
я имею ввиду программу Network Assistant, она показывает зоголовок активного окна юзеров. можно канено эту функцию отключить в программе, но за это будет штраф! :) поэтому решено написать программу которая будет сама изменять имена активных окон, ну например я сижу в интернете а программа должна изменить имя окна интернет эксплорера на имя например - Microsoft Word - отчет.doc :D
и так любое активное окно, любого приложения.

Re: програма(сервис) изменения имени активного окна

Добавлено: 24 мар 2009, 14:18
somewhere
Да все равно почти тоже самое, только с проверкой на активность

Re: програма(сервис) изменения имени активного окна

Добавлено: 03 апр 2009, 14:50
mc-black
Для активного окна GetForegroundWindow, она вернет хэндл активного окна, при этом даже не зная того, какой заголовок у него (не важно).

hWnd = GetForegroundWindow();
SetWindowText(hWnd, L"Microsoft Word - отчет.doc");

Действует это разово на разок, так что надо или тупо пихать переустановку имен окон по таймеру, или искать более красивый способ оповещения об активации нового окна. Пример для C++. Можно сделать хоть на VBA в том же Word, хоть на ассемблере. Представляю глаза твоего босса, когда он увидит, что ты сидишь в интернете из оена отчета Word )))

Про программу Network Assistant я ничего не знаю, но если она проверяет не только заголовки окон, но и пути к программам, или что-то еще кроме заголовков окон, то ты попался)))