Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как получить имя сфокусированого окна в desktop


Автор: 56illusion 19.5.2010, 19:07
Всем привет!
Наверно по имени темы плохо понятно в чём мне требуется помощь.
Пишу программу , одна метода должна узнавать аппликацию\окно  сфокусированное в дынный момент.
например запускаю я свою программку а потом продолжаю работать, программка  должна записывать в тхт файл имя окна на котором фокус

Пол дня искать в мсдн и  по гуглу искал... пробовал искать в классе process.. типо получить имя сфокусированного процеса...
помогите программисты smile 

Автор: 56illusion 19.5.2010, 21:44
люди помогите плиз, нужно узнать какая программи\ приложение в фокусе, тоесть чем пользуеться пользователь.. (icq,msn,nero,gta......)

Автор: 56illusion 19.5.2010, 22:31
нарыл в гугле что нужно получить handle активного окна другого приложения.
а потом воспользоваться методом GetWindowText().
как имеено ето написать?

Автор: jonie 20.5.2010, 01:16
GetForegroundWindow  (http://msdn.microsoft.com/en-us/library/ms633505%28VS.85%29.aspx) вестимо надо использовать .. она даст вам HWND окна, которое держит фокус в текущий момент... затем вам надо найти окно ввода используя EnumWindows (http://msdn.microsoft.com/en-us/library/ms633497%28VS.85%29.aspx) GetWindow  http://msdn.microsoft.com/en-us/library/ms633515%28VS.85%29.aspx ну и далее что вы описали...
TODO: 1) почитать PInvoke.net насчет втягивания в C# этих функций
2) прочитать в MSDN про безопасность (я дословно не помню но возможно только в вашем процессе можно такие вещи делать, тогда надо искать замены в виде менее враждебных к этому параметру функций в msdn).
3) profit)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)