#NoTrayIcon #region: - Option Opt('GUIOnEventMode', 1) Opt('MustDeclareVars', 1) Opt('PixelCoordMode', 2) Opt('MouseCoordMode', 2) Opt('TrayIconDebug', 0) Opt('TrayIconHide', 1) Opt('TrayMenuMode', 1) Opt('TrayOnEventMode', 1) #endregion #region: - Include #include <GUIComboBox.au3> #include <GUIConstants.au3> #include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <UpDownConstants.au3> #include <WindowsConstants.au3> #endregion HotKeySet('!{ESC}', '_Pro_Exit') HotKeySet('!{F1}', '_Off_On') HotKeySet('!{F2}', '_Pro_Hide_Show') HotKeySet("{F9}", "Copy") #region: - Global: Название и версия программы, ProID Global $sProName, $sProVer, $sProNameVer, $sProIDText, $sProIDClass1, $sProIDClass2 $sProName = 'Цитатник' $sProVer = 'v0' $sProNameVer = $sProName & ' ' & $sProVer #endregion #region: - Global Global $hTrayOffOn Global $nBtn3, $Hotkey1, $Hotkey2, $Hotkey3, $Paused Global $hWinMain, $hWinMainWidth, $hWinMainHeight, $hWhatDo, $sWinMainState, $iProHotKeyState Global $hIcon, $hOffOn, $iOn, $iTimerTime, $hIndentLabel, $hIndent, $hWinId, $idTitle Global $hHour, $hHourUpDn, $hMin, $hMinUpDn, $hSec, $hSecUpDn, $hTimerLable $hWinMainWidth = 300 $hWinMainHeight = 230 $iOn = 0 $iTimerTime = 10.6 Global $sPixelSerchColor = 0xFFFFFF #endregion #region: Tray TraySetClick(8) TraySetOnEvent(-7, '_Off_On') $hTrayOffOn = TrayCreateItem('Запустить') TrayItemSetOnEvent(-1, '_Off_On') TrayCreateItem('Настройки') TrayItemSetOnEvent(-1, '_Pro_Show') TrayCreateItem('Закрыть') TrayItemSetOnEvent(-1, '_Pro_Exit') #endregion #region: Главное окно $hWinMain = GUICreate($sProNameVer, $hWinMainWidth, $hWinMainHeight, -1, -1, $WS_CAPTION+$WS_SYSMENU) GUISetIcon('shell32.dll', -138) GUISetBkColor(0xffffff) GUISetOnEvent($GUI_EVENT_CLOSE, '_Pro_Hide_Show') GUICtrlCreateLabel($sProIDText, 0, -100, 300, 20) GUICtrlSetState(-1, $GUI_HIDE) $hWhatDo = GUICtrlCreateLabel('', 0, -100, 300, 20) GUICtrlSetState(-1, $GUI_HIDE) $hOffOn = GUICtrlCreateButton('Запустить', 10, 15, 120, 23) GUICtrlSetState(-1, $GUI_FOCUS) GUICtrlSetFont(-1, 9, 700) GUICtrlSetTip(-1, 'ALT+F1 Остновить/Запустить') GUICtrlSetOnEvent(-1, '_Off_On') $hIcon = GUICtrlCreateIcon('shell32.dll', -138, 10+140+10, 20, 16, 16) ; иконка в настройках GUICtrlSetOnEvent(-1, '_Off_On') ;========================================================== GUICtrlCreateLabel("Горячие клавиши копирования:", 11, 23+35+1, 180, 18, -1, $GUI_WS_EX_PARENTDRAG) GUICtrlCreateLabel("Горячие клавиши выхода:", 11, 53+35+1, 180, 18, -1, $GUI_WS_EX_PARENTDRAG) GUICtrlCreateLabel("Горячие клавиши паузы:", 11, 83+35+1, 180, 18, -1, $GUI_WS_EX_PARENTDRAG) $nBtn3 = GUICtrlCreateButton ("Применить", 190, 241, 80, 28) $Hotkey1 = GUICtrlCreateCombo('', 192, 20+35, 65, 20, $CBS_DROPDOWNLIST) GUICtrlSetData(-1, "F9|F10|F11|F12", "F9") GUICtrlSetOnEvent(-1, '_Set_Reg') ; выполнение функции _Set_Reg при установке параметра $Hotkey2 = GUICtrlCreateCombo('', 192, 50+35, 65, 20, $CBS_DROPDOWNLIST) GUICtrlSetData(-1, "ESC|Alt+F4|Alt+ESC|Ctrl+ESC", "ESC") $Hotkey3 = GUICtrlCreateCombo('', 192, 80+35, 65, 20, $CBS_DROPDOWNLIST) GUICtrlSetData(-1, "Alt+P|Alt+W|Alt+Z", "Alt+P") ;========================================================== ;~ ;~ GUICtrlCreateButton('Свернуть', 10, 150+3*2+30, 90, 25) GUICtrlSetTip(-1, 'ALT+F2 Свернуть/Показать') GUICtrlSetOnEvent(-1, '_Pro_Hide') GUICtrlCreateButton('Выход из программы', 10+90+6, 150+3*2+30, 120, 25) GUICtrlSetTip(-1, 'ALT+ESC Закрыть') GUICtrlSetOnEvent(-1, '_Pro_Exit') #endregion #region: - После создания всех GUI GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST') GUIRegisterMsg($WM_HSCROLL, 'WM_HVSCROLL') _Pro_Show() ;~ _Pro_Hide() TraySetIcon('shell32.dll', -138) TraySetState(1) #endregion #region: - Sleep, Exit While 1 Sleep(10) _What_Do() _Pro_HotKey() WEnd Func _Pro_Exit() Exit EndFunc Func OnAutoItExit() HotKeySet('{Esc}') EndFunc Func _Pro_Hide() $sWinMainState = 'hide' GUISetState(@SW_HIDE, $hWinMain) EndFunc Func _Pro_Show() $sWinMainState = 'show' GUISetState(@SW_SHOW, $hWinMain) GUISetState(@SW_RESTORE, $hWinMain) EndFunc Func _Pro_Hide_Show() If WinActive($hWinMain) == 1 Then _Pro_Hide() Else _Pro_Show() EndIf EndFunc Func _Pro_Hide_Show_OneClick() If $sWinMainState == 'show' Then _Pro_Hide() Else _Pro_Show() EndIf EndFunc Func _Pro_HotKey() If WinActive($hWinMain) == 1 Then If $iProHotKeyState <> 1 Then $iProHotKeyState = 1 HotKeySet('{Esc}', '_Pro_Hide_Show') EndIf Else If $iProHotKeyState <> 0 Then $iProHotKeyState = 0 HotKeySet('!{Esc}') HotKeySet('{Esc}') EndIf EndIf EndFunc #endregion Func _What_Do() Switch GUICtrlRead($hWhatDo) Case 'show' GUICtrlSetData($hWhatDo, '') _Pro_Show() Case 'show tray tip already run' GUICtrlSetData($hWhatDo, '') TrayTip($sProName, 'Приложение запущено', 4, 1) EndSwitch EndFunc Func _Off_On() If $iOn == 0 Then $iOn = 1 AdlibDisable() TraySetIcon('shell32.dll', -138+28) TrayItemSetText($hTrayOffOn, 'Остановить') GUICtrlSetData($hOffOn, 'Остановить') GUICtrlSetImage($hIcon, 'shell32.dll', -138+28) Else $iOn = 0 AdlibDisable() GUICtrlSetData($hTimerLable, $iTimerTime) TraySetIcon('shell32.dll', -138) TrayItemSetText($hTrayOffOn, 'Запустить') GUICtrlSetData($hOffOn, 'Запустить') GUICtrlSetImage($hIcon, 'shell32.dll', -138) EndIf EndFunc Func _Serch_Pixel_And_Click() Local $aCoords Local $aMovPix = GUICtrlRead($hIndent) If WinExists('Название окна - ' & $idTitle, '') Then WinActivate('Название окна - ' & $idTitle, '') WinWaitActive('Название окна - ' & $idTitle, '', 180) $aCoords = PixelSearch( 291, 212, 983, 770, $sPixelSerchColor, 0 ) If Not @error Then MouseClick('left', $aCoords[0]+$aMovPix, $aCoords[1], 1) EndIf EndFunc Func _Set_Reg() $idTitle = GUICtrlRead($Hotkey1) ; прописываем внесение данных в реестра EndFunc Func WM_NCHITTEST($hWnd, $Msg, $wParam, $lParam) Local $iProc = DllCall('user32.dll', 'int', 'DefWindowProc', 'hwnd', $hWnd, 'int', $Msg, 'wparam', $wParam, 'lparam', $lParam) If $iProc[0] = $HTCLIENT Then Return $HTCAPTION Return $GUI_RUNDEFMSG EndFunc Func WM_HVSCROLL($hWndGUI, $MsgID, $WParam, $LParam) Switch $LParam Case GUICtrlGetHandle($hIndent) GUICtrlSetData($hIndentLabel, "Отступ от найденного пикселя: " & GUICtrlRead($hIndent)) EndSwitch EndFunc ; временно добавил Func Copy() sleep(100) Send("^{insert}") $byfer=ClipGet() FileWrite($file,$byfer&@CRLF&@CRLF) EndFunc |