Доброго здоровья всем!
Задача - информер у часов в трее, отображающий доступность рабочих станций. Раскрутить решил через банальные пинги и гуи-прямоугольники у часов. Код набросал и он работает.
Проблема номер раз - как сделать чтобы эта вся петрушка не делалась активной (будет мешать, например, при наборе текста). Можно захватывать текущее активное окно и отдавать ему активити, или есть что-то менее костыльное?
Проблема номер два - Как оставить не все окна, а только последние отрисованные. Как не пробовал GUIDelete(), не разобрался.
Проблема номер три - при стабильном пинге через 'cmd->ping -t х.х.х.х' у меня высвечивается что один из пяти адресов недоступен. Это проблема второстепенная, но если кто подскажет чего умное - моя благоден будет. Пробовал давать задержку между пингами, не спасло.
Задача - информер у часов в трее, отображающий доступность рабочих станций. Раскрутить решил через банальные пинги и гуи-прямоугольники у часов. Код набросал и он работает.
Проблема номер раз - как сделать чтобы эта вся петрушка не делалась активной (будет мешать, например, при наборе текста). Можно захватывать текущее активное окно и отдавать ему активити, или есть что-то менее костыльное?
Проблема номер два - Как оставить не все окна, а только последние отрисованные. Как не пробовал GUIDelete(), не разобрался.
Проблема номер три - при стабильном пинге через 'cmd->ping -t х.х.х.х' у меня высвечивается что один из пяти адресов недоступен. Это проблема второстепенная, но если кто подскажет чего умное - моя благоден будет. Пробовал давать задержку между пингами, не спасло.
OffTopic:
Писака я подпольный, мало что спрашиваю и курю мануалы, в этот раз самому разобраться не удается. не бейте за косорукость. Пинки в правильном направлении приветствуются. Допилю - выложу готовый вариант.
.Писака я подпольный, мало что спрашиваю и курю мануалы, в этот раз самому разобраться не удается. не бейте за косорукость. Пинки в правильном направлении приветствуются. Допилю - выложу готовый вариант.
Код:
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
$1ip = "8.8.8.8"
$2ip = "8.8.8.8"
$3ip = "8.8.8.8"
$4ip = "8.8.8.8"
$5ip = "8.8.8.8"
$var = Ping($1Ip)
$x=1470
$green="0x00FF00"
$red="0xFF0000"
HotKeySet("{ESC}", "_Terminate")
WorkFunc()
Func WorkFunc()
While 1
Local $i = 0
While $i <= 4
$i = $i + 1
if $i=1 then
$var = Ping($1Ip, 500)
If $var Then
$color1 = $green
Else
$color1 = $red
EndIf
ElseIf $i=2 then
$var = Ping($2Ip, 500)
If $var Then
$color2 = $green
Else
$color2 = $red
EndIf
ElseIf $i=3 then
$var = Ping($3Ip, 500)
If $var Then
$color3 = $green
Else
$color3 = $red
EndIf
ElseIf $i=4 then
$var = Ping($4Ip, 500)
If $var Then
$color4 = $green
Else
$color4 = $red
EndIf
ElseIf $i=5 then
$var = Ping($5Ip, 500)
If $var Then
$color5 = $green
Else
$color5 = $red
EndIf
Else
MsgBox($MB_SYSTEMMODAL, "Error", "" & $i)
EndIf
WEnd
Local $i = 0
While $i <= 4
$i = $i + 1
if $i=1 then
GUICreate('', 22, 20, $x, 10, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor ($color1)
GUISetState()
ElseIf $i=2 then
GUICreate('', 22, 20, $x+44, 10, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor($color2)
GUISetState()
ElseIf $i=3 then
GUICreate('', 22, 20, $x+88, 10, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor($color3)
GUISetState()
ElseIf $i=4 then
GUICreate('', 22, 20, $x+132, 10, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor($color4)
GUISetState()
ElseIf $i=5 then
GUICreate('', 22, 20, $x+176, 10, $WS_POPUP, $WS_EX_TOPMOST)
GUISetBkColor($color5)
GUISetState()
sleep(750)
Else
MsgBox($MB_SYSTEMMODAL, "Error", "" & $i)
EndIf
WEnd
Sleep (10000)
WEnd
EndFunc
Func _Terminate()
Exit
EndFunc