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

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

sunyun
Сообщения: 5
Зарегистрирован: 24 мар 2009, 10:37

Всем добрый день
Подскажите, можно ли реализовать програму или сервис которая будет изменять имя любого активного окна наприер на Macrosoft Word - Doc1.doc.
Может кто такое уже делал, поделитесь.
Спасибо
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Должна сидеть в памяти и периодически искать окно с заданным именем (FindWindow), при нахождении такого используем SetWindowText для найденного окна, вот и все
It's a long way to the top if you wanna rock'n'roll
sunyun
Сообщения: 5
Зарегистрирован: 24 мар 2009, 10:37

somewhere писал(а):Должна сидеть в памяти и периодически искать окно с заданным именем (FindWindow), при нахождении такого используем SetWindowText для найденного окна, вот и все
А если я хочу изменять активыне окна любхх приложений?, будь то word или exel или Outlook или Explorer?
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

В каком смысле изменять, что именно? заголовок всех окон?
Если так, то тоже самое, используя EnumWindows + еще GetWindowText для проверки что заголовок окна уже содержит изменения
It's a long way to the top if you wanna rock'n'roll
sunyun
Сообщения: 5
Зарегистрирован: 24 мар 2009, 10:37

есть программа, которая видит по сети деятельность сотрудников, считывая их активное окно в данный момент.
Хочу сделать программку, которая будет изменять любое активно окно на то которая я запрограммирую.
это реально сделать? и на каком языке лучше?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

:) А с чего вы взяли, что Ваша (точнее Вашего руководства) программа смотрит именно на заголовок окна?
&quot писал(а):и на каком языке лучше?
Рекомендованные Вам функции WinAPI можно вызвать из чего угодно. Можно использовать C, Delphi, VB... Лишь бы была возможность вызвать функцию из DLL.
Это можно сделать даже из макроса в том же Word-е.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

опять же - как именно изменять окно? сделать реально почти все, язык - это уже ваш выбор, на чем вам проще на том и пишите... WinAPI к конкретному языку не привязан
It's a long way to the top if you wanna rock'n'roll
sunyun
Сообщения: 5
Зарегистрирован: 24 мар 2009, 10:37

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



Рекомендованные Вам функции WinAPI можно вызвать из чего угодно. Можно использовать C, Delphi, VB... Лишь бы была возможность вызвать функцию из DLL.
Это можно сделать даже из макроса в том же Word-е.
я имею ввиду программу Network Assistant, она показывает зоголовок активного окна юзеров. можно канено эту функцию отключить в программе, но за это будет штраф! :) поэтому решено написать программу которая будет сама изменять имена активных окон, ну например я сижу в интернете а программа должна изменить имя окна интернет эксплорера на имя например - Microsoft Word - отчет.doc :D
и так любое активное окно, любого приложения.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Да все равно почти тоже самое, только с проверкой на активность
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Для активного окна GetForegroundWindow, она вернет хэндл активного окна, при этом даже не зная того, какой заголовок у него (не важно).

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

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

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