#AutoIt3Wrapper_Outfile=P-2k10.exe
#AutoIt3Wrapper_Icon=0.ico
#AutoIt3Wrapper_Compression=n
#AutoIt3Wrapper_UseUpx=n
; #AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Comment=
#AutoIt3Wrapper_Res_Description=P-2k10.exe
#AutoIt3Wrapper_Res_Fileversion=0.2.0.0
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=n
#AutoIt3Wrapper_Res_LegalCopyright=AZJIO
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Run_Au3check=n
#AutoIt3Wrapper_Res_Icon_Add=1.ico
#AutoIt3Wrapper_Res_Icon_Add=2.ico
; #AutoIt3Wrapper_Res_Icon_Add=3.ico
; #AutoIt3Wrapper_Res_Icon_Add=4.ico
; #AutoIt3Wrapper_Res_Icon_Add=5.ico
#AutoIt3Wrapper_Run_After=%autoitdir%\SciTE\upx\upx.exe -7 --compress-icons=0 "%out%"
ShellExecute(FileGetShortName(@ScriptDir&'\P2start.cmd'), 'Update', @ScriptDir, '', @SW_HIDE)
Opt("TrayIconHide", 1)
$Ini = @ScriptDir & '\P-2k10.ini'
; If $CmdLine[0]>0 Then
; $IniType=IniRead($Ini, 'exclude', 'Type', 'CDROM;FIXED')
; $IniLabel=IniRead($Ini, 'exclude', 'Label', '')
; $IniPath=IniRead($Ini, 'exclude', 'Path', '')
; $IniDisk=IniRead($Ini, 'exclude', 'Disk', '')
; EndIf
; http://www.autoitscript.com/forum/topic/79460-usbmon/page__view__findpost__p__572867
;============# Запрет на повторный запуск #====================================
$hMutex = DllCall("kernel32.dll", "hwnd", "OpenMutex", "int", 0x1F0001, "int", False, "str", "USB459345")
If $hMutex[0] Then
$hWnd = WinGetHandle("USB459345")
WinSetState($hWnd, "", @SW_RESTORE)
DllCall("user32.dll", "int", "SetForegroundWindow", "hwnd", $hWnd)
Exit
EndIf
$hMutex = DllCall("kernel32.dll", "hwnd", "CreateMutex", "int", 0, "int", False, "str", "USB459345")
;============================================================================
Opt("TrayIconHide", 0)
Opt("TrayMenuMode", 7)
Opt("TrayOnEventMode", 1)
Global $TpOff = 0, $curico=0, $Dr=0, $CurDrives[1]
Global Const $DBT_DEVICEARRIVAL = 0x8000 ; Найдено новое устройство
Global Const $DBT_DEVICEREMOVECOMPLETE = 0x8004 ; отключенное устройство
Global Const $DBT_DEVTYP_VOLUME = 0x00000002 ; Логический диск
If @compiled Then
$AutoItExe=@AutoItExe
Else
$AutoItExe=@ScriptDir&'\P-2k10.dll'
EndIf
; $autorun=IniRead($Ini, 'Set', 'autorun', '')
; $arg=IniRead($Ini, 'Set', 'arg', '')
; $OutProcessClose=IniRead($Ini, 'Set', 'OutProcessClose', '')
TraySetToolTip('Программы 2k10')
$update = TrayCreateItem('Обновить')
TrayItemSetOnEvent(-1, "_update")
$nExit = TrayCreateItem('Выход')
TrayItemSetOnEvent(-1, "_Quit")
TraySetIcon($AutoItExe, $curico)
TraySetState()
$Gui = GUICreate("USB1", 370, 140)
GUISetState(@SW_HIDE, $Gui)
GUISetState(@SW_DISABLE, $Gui)
GUIRegisterMsg(0x0219, "WM_DEVICECHANGE")
While 1
Sleep(1000)
WEnd
; http://www.autoitscript.com/forum/topic/79460-usbmon/page__view__findpost__p__572867
Func WM_DEVICECHANGE($hWnd, $Msg, $wParam, $lParam)
If ($wParam = $DBT_DEVICEARRIVAL) Or ($wParam = $DBT_DEVICEREMOVECOMPLETE) Then
Local $DEV_BROADCAST_VOLUME = DllStructCreate("int dbcvsize;int dbcvdevicetype;int dbcvreserved;int dbcvunitmask;" & _
"ushort dbcvflags", $lParam)
Local $iDriveType = DllStructGetData($DEV_BROADCAST_VOLUME, "dbcvdevicetype")
Else
Return 'GUI_RUNDEFMSG'
EndIf
If $iDriveType <> $DBT_DEVTYP_VOLUME Then Return 'GUI_RUNDEFMSG'
Local $iMask = DllStructGetData($DEV_BROADCAST_VOLUME, "dbcvunitmask")
$iMask = Log($iMask) / Log(2)
Local $iDrive = Chr(65 + $iMask) & ":"
Switch $wParam
Case $DBT_DEVICEARRIVAL ; обнаружение флешки
TraySetIcon($AutoItExe, 201)
ShellExecute(FileGetShortName(@ScriptDir&'\P2start.cmd'), 'Start', @ScriptDir, '', @SW_HIDE)
Case $DBT_DEVICEREMOVECOMPLETE ; отключение флешки
TraySetIcon($AutoItExe, 202)
ShellExecute(FileGetShortName(@ScriptDir&'\P2start.cmd'), 'Update', @ScriptDir, '', @SW_HIDE)
EndSwitch
GUIRegisterMsg(0x0113, "WM_TIMER")
DllCall("User32.dll", "int", "SetTimer", "hwnd", $Gui, "int", 50, "int", 2000, "int", 0)
Return 'GUI_RUNDEFMSG'
EndFunc
Func WM_TIMER()
TraySetIcon($AutoItExe, $curico)
GUIRegisterMsg(0x0113, '')
DllCall("user32.dll", "int", "KillTimer", "hwnd", $Gui, "int*", 50)
EndFunc
Func _Quit()
TraySetState(2)
ShellExecute(FileGetShortName(@ScriptDir&'\P2start.cmd'), 'Exit', @ScriptDir, '', @SW_HIDE)
Exit
EndFunc
Func _update()
TraySetState(2)
ShellExecute(FileGetShortName(@ScriptDir&'\P2start.cmd'), 'Update', @ScriptDir, '', @SW_HIDE)
EndFunc