tasm
28-10-2018, 21:43
Всем доброго времени суток.
На работе визвалса сам решить задачу,так как простенькие задачи делал,а тут не все так просто
Есть задача переключаться между двома приложенниями 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)Как сделать поверх все окон всегда его
На работе визвалса сам решить задачу,так как простенькие задачи делал,а тут не все так просто
Есть задача переключаться между двома приложенниями 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)Как сделать поверх все окон всегда его