![]() |
окно поверх остальних окон
Всем доброго времени суток.
На работе визвалса сам решить задачу,так как простенькие задачи делал,а тут не все так просто Есть задача переключаться между двома приложенниями Internet explorer и другая программа спецефическая, используется на производствах. Запускается только в полноЭкранном режиме. Думал на ahk сделать две кнопки на экране и просто нажатием на нужную переключать,но... Эта программа имеет класс окон с маской afx...И когда работаеш в программе оно меняет єтот клас окна как то по маске. Сделал одну клавишу,симуляцию ALT+TAB,работает,но когда работаеш в етой программе,она пропадает иногда.(на некоторых компах быстрей пропадает на других реже)помогите может можна что сделать на autoit. Єто сделал на ahk Скрытый текст
; Generated by SmartGUI Creater
Winset, AlwaysOnTop Gui, +AlwaysOnTop -Caption +ToolWindow -Border Gui, Color, 0B6300 GUI, font,, Verdana GUI, font, bold GUI, font, q5 GUI, font, c207EC4 GUI, font, s18 Gui, Add, Button, x16 y7 w140 h50, D-Check Gui, Show, x190 y08 h60 w180, Generated using SmartGUI Creator Return ButtonD-Check: send !{Tab} Loop, 1 ;Провірка чи запущенний брайзер { IfWinNotExist, ahk_exe iexplore.exe { Run, iexplore.exe, , UseErrorLevel if ErrorLevel { MsgBox, Скопируйте программу в корень рабочей папки и перезапустите приложение. ExitApp } WinWait, ahk_exe iexplore.exe } Else { Continue } } Loop, 1 ;Проверка на ошибки { IfWinExist, ahk_group Errors WinClose, ahk_group Errors else continue } } Return GuiClose: ExitApp Вот что то с примера с рисовал.Ну много надо доделать... Скрытый текст
#include <GUIConstantsEx.au3>
Example() Func Example() ; Create a GUI with various controls. Local $hGUI = GUICreate("Example", 300, 200) ; Create a button control. Local $idButton_Notepad = GUICtrlCreateButton("Dcheck", 10, 10, 150, 150) ;Local $idButton_Close = GUICtrlCreateButton("Close", 210, 170, 85, 25) ; Display the GUI. GUISetState(@SW_SHOW, $hGUI) Local $iPID = 0 ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ;$idButton_Notepad ExitLoop ;$iPID = Send("#r") Case $idButton_Notepad ; Run Notepad with the window maximized. ; Run Notepad with the window maximized. ;$$iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED) $iPID = Send("{LALT}{tab}") EndSwitch WEnd ; Delete the previous GUI and all controls. GUIDelete($hGUI) ; Close the Notepad process using the PID returned by Run. If $iPID Then ProcessClose($iPID) EndFunc ;==>Example 1)Не могу с ємулировать нажатие ALT+TAB переключение между окнами. 2)Как сделать поверх все окон всегда его |
Нашел скрипт очень подходящий
Скрытый текст
#include <WindowsConstants.au3>
$GUI = GUICreate("", 50, 30, 50, 50, $WS_POPUP, $WS_EX_TOOLWINDOW) $Btn = GUICtrlCreateButton("Button", 0, 0, 50, 30) GUISetState() While 1 $Pos = WinGetPos("[class:Notepad]") If @error Then GUISetState(@SW_HIDE) Else GUISetState(@SW_SHOW) WinMove($GUI, "", $Pos[0] + 150, $Pos[1] + 150) WinSetOnTop($GUI, "", WinActive("[class:Notepad]") ? 1 : 0) EndIf If GUIGetMsg() = $Btn Then ControlSend("[class:Notepad]", "", "Edit1", "Click ") WEnd но как сделать чтоб он работал с классом окна типа afx.... |
Время: 15:13. |
Время: 15:13.
© OSzone.net 2001-