gipperpank
Новичок
- Сообщения
- 10
- Репутация
- 0
В общем прога должна запускаться при старте и сверять дату установки виндовс с текущей датой при этом выводя на экран в низу с права сообщение
приведённый код рабочий вариант, проблема в том что программа ест 12 метров оперативы что на мой взгляд очень много для программы которая ничего не делает.
просьба тех кто уровнем выше посмотрите код и скажите как можно уменьшить потребление оперативки и за счёт чего
не реализована задача - программа должна висеть на рабочем столе а не поверх открытых окон
приведённый код рабочий вариант, проблема в том что программа ест 12 метров оперативы что на мой взгляд очень много для программы которая ничего не делает.
просьба тех кто уровнем выше посмотрите код и скажите как можно уменьшить потребление оперативки и за счёт чего
не реализована задача - программа должна висеть на рабочем столе а не поверх открытых окон
Код:
#Include <WinAPIEx.au3>
#Include <Date.au3>
#Include <WinAPIEx.au3>
#Include <WindowsConstants.au3>
#Include <GUIConstants.au3>
#AutoIt3Wrapper_Run_Au3Stripper=Y
;Прячем картинку в трэе
#NoTrayIcon
;переменные
$Width = _WinAPI_GetWindowWidth(_WinAPI_GetDesktopWindow()) ;Ширина монитора
$Height = _WinAPI_GetWindowHeight(_WinAPI_GetDesktopWindow()) ;Высота Монитора
Local $sInstallDate = _Win32_OperatingSystem_InstallDate()
If @error Then Exit ConsoleWrite("!>_Win32_OperatingSystem_InstallDate @error: " & @error & @CRLF)
;Запускаем условие
If _DateDiff("M", $sInstallDate, _NowCalcDate()) >36 Then
;*************************Окно красного цвета*************************************************
$hForm = GUICreate('alert', 200, 100, $Width-200, $Height-100, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW))
GUISetBkColor(0xABABAB) ; задний фон (прозрачный)
$Label1 = GUICtrlCreateLabel("Внимание Требуется профилактика компьютера, обратитесь в БТП Тел.: 50-50", 1, 10, 200, 200)
GUICtrlSetFont(-1, 12, 400, 0, "System") ; шрифт
GUICtrlSetColor(-1, 0xff0000) ; цвет текста (зелёный)
GUISetState()
_WinAPI_SetLayeredWindowAttributes($hForm, 0xABABAB, 255, BitOR($LWA_COLORKEY, $LWA_ALPHA))
Do
Sleep(100)
Until GUIGetMsg() = -3
Else
;*************************Окно зелёного цвета*************************************************
$hForm = GUICreate('ok', 200, 100, $Width-200, $Height-100, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOOLWINDOW))
GUISetBkColor(0xABABAB) ; задний фон (прозрачный)
$Label1 = GUICtrlCreateLabel("Плановая профилактика компьютера не требуется", 1, 10, 200, 200)
GUICtrlSetFont(-1, 12, 400, 0, "System") ; шрифт
GUICtrlSetColor(-1, 0x002A00) ; цвет текста (зелёный)
GUISetState()
_WinAPI_SetLayeredWindowAttributes($hForm, 0xABABAB, 255, BitOR($LWA_COLORKEY, $LWA_ALPHA))
Do
Sleep(100)
Until GUIGetMsg() = -3
EndIf
;Функция для получения даты установки
Func _Win32_OperatingSystem_InstallDate()
Local $oWMI, $oItems
$oWMI = ObjGet("winmgmts:\\.\root\CIMV2")
If Not IsObj($oWMI) Then Return SetError(1, 0, 0)
$oItems = $oWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem")
If Not IsObj($oItems) Then Return SetError(2, 0, 0)
For $oIt In $oItems
Return StringRegExpReplace($oIt.InstallDate, "\A(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(?:.*)", "$1/$2/$3 $4:$5:$6")
Next
Return SetError(3, 0, 0)
EndFunc
;конец