У меня такая проблема. Я не могу определить. Является ли браузер Opera активным окном ( в данный момент активным, то есть с которым я в данный момент работаю) или нет. У меня возникла проблема с классом его окна. WinSpy говорит что класс ( OpWindow ). Я и см определял класс, с помощью функций ( GetForegroundWindow и GetClassName ). Да всё верно. Но что то не так. вот код: invoke FindWindow,addr IEClass,NULL ; класс IEFrame mov hIE,eax invoke FindWindow,addr MFClass,NULL ; кдасс MozillaUIWindowClass mov hMF,eax invoke FindWindow,addr OPClass,NULL ; класс OpWindow mov hOP,eax invoke GetForegroundWindow .IF EAX==hIE invoke MessageBox,NULL,addr IEBrowser,NULL,MB_OK .ELSEIF EAX==hMF invoke MessageBox,NULL,addr MFBrowser,NULL,MB_OK .ELSEIF EAX==hOP invoke MessageBox,NULL,addr OPBrowser,NULL,MB_OK .ENDIF Люди что не так. Помогите найти верное решение. Если возможно определить какой браузер запущен в данный момент и является ли он активным. напишите способ. Возможно ли получить имя активного приложения ( типа - opera.exe ) какой нибудь функцией? Заранее спасибо.
Вот код внимательно посмотри, а то ты какую-то белеберду написал: Код (Text): .data IEClass db"IEFrame",0 MFClass db"MozillaUIWindowClass",0 OPClass db"OpWindow",0 IE db "InternetExplorer loaded",0 OP db "Opera loaded",0 MA db "Mozila loaded",0 error db "Áðàóçåð íå çàãðóæåí",0 .code start: invoke FindWindow,addr IEClass,NULL ; êëàññ IEFrame lea ebx,dword ptr IE .if eax==0 invoke FindWindow,addr MFClass,NULL ; êäàññ MozillaUIWindowClass lea ebx,dword ptr OP .if eax==0 invoke FindWindow,addr OPClass,NULL ; êëàññ OpWindow lea ebx,dword ptr MA .if eax==0 invoke MessageBox,NULL,addr error,NULL,MB_OK invoke ExitProcess,0 .endif .endif .endif invoke MessageBox,NULL,ebx,NULL,MB_OK invoke ExitProcess,0 end start
Слушай Denis__ ты меня не понял. Мой вопрос в том почему мой код ( как и твой не может определить что Opera - активна ). Твой код тоже этого не делает! Дак почему же?????
Код рабочий просто ты неправильно определил Class окна, а я взял твой определения. 1.Operа у меня нету ). 2.У меня браузер Mozilla Firefox. Методика определения класса окна: открываем прогу в отладчике, ставим брекпоинт на CreateWindowExA, смотрим в соответствующем поле название класса окна, Все. У меня для Mozilla Firefox класс окна "FirefoxMessageWindow" Код, в предыдущем маленькая ошибка была: Код (Text): .data IEClass db"IEFrame",0 MFClass db"FirefoxMessageWindow",0 OPClass db"OpWindow",0 IE db "InternetExplorer loaded",0 OP db "Opera loaded",0 MA db "Mozila loaded",0 error db "Áðàóçåð íå çàãðóæåí",0 .code start: invoke FindWindow,addr IEClass,NULL ; êëàññ IEFrame lea ebx,dword ptr IE .if eax!=0 call Message .endif invoke FindWindow,addr MFClass,NULL ; êëàññ FirefoxMessageWindow lea ebx,dword ptr MA .if eax!=0 call Message .endif invoke FindWindow,addr OPClass,NULL ; êëàññ OpWindow lea ebx,dword ptr OP .if eax!=0 call Message invoke ExitProcess,0 ret .endif invoke ExitProcess,0 ret Message proc invoke MessageBox,NULL,ebx,NULL,MB_OK ret Message Endp end start А код у тебя все таки кривой )