Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Проблема с треем (иконка и менюшка) (http://forum.oszone.net/showthread.php?t=168686)

sashadeg 27-02-2010 11:10 1357200

Проблема с треем (иконка и менюшка)
 
Я никак не могу понять, как можно сделать чтобы в скрипте шел какой-нибудь процесс и в то же время можно было работать с треем и иконками в трее?

Например у меня имеется вот такой скрипт:
(записывает в лог-файл все изменения ip адреса)
Код:

#include <Inet.au3>
While 1
$1=FileExists("iplog.txt")
If $1 = 0 Then
    FileWrite(@ScriptDir & "\iplog.txt", "  Время        Дата        Ip-адресс")
EndIf
$PublicIP = _GetIP()
$line  = FileReadLine('iplog.txt', -1)
$line2 = StringTrimLeft($line,24)
If $PublicIP <> -1 Then
    If
$PublicIP <> $line2 Then
FileWrite(@ScriptDir & "\iplog.txt", @CRLF & @HOUR & ":" & @MIN & ":" & @SEC & "  "&@MDAY&"."&@MON&"."&@YEAR&"  " & $PublicIP)
TrayTip ("IpLog",$PublicIP,"", 1)
EndIf
EndIf

Sleep(1000*20)
WEnd

Я хочу, чтобы при отсутствии интернета (отсутствии ip адресса), в трее иконка процесса была одна, а при наличии интернета другая.
Как мне в мой скрипт встроить вот такой код:
Код:

#Include <Constants.au3>
#NoTrayIcon

Opt("TrayMenuMode",1)

$exititem      = TrayCreateItem("Exit")

TraySetState()

$start = 0
While 1
    $msg = TrayGetMsg()
    If $msg = $exititem Then ExitLoop
        TraySetIcon("Shell32.dll")
WEnd

Exit


madmasles 27-02-2010 11:29 1357217

sashadeg,
Есть интернет - одна иконка, нет - другая:
Код:

#include <WinAPIEx.au3>

Opt("TrayMenuMode",1)

While 1
    $inet = _WinAPI_IsNetworkAlive()
    If $inet = 0 Then
        TraySetIcon("Shell32.dll", 10)
    Else
        TraySetIcon("Shell32.dll", 20)
    EndIf
    Sleep(1000)
WEnd

WinAPIEx

sashadeg 27-02-2010 12:48 1357280

madmasles, ты наверно не увидел:

Цитата:

Цитата sashadeg
Как мне в мой скрипт встроить вот такой код: »


Creat0R 27-02-2010 13:45 1357328

Цитата:

Цитата sashadeg
Как мне в мой скрипт встроить вот такой код »

Код:

#NoTrayIcon
#include
<Inet.au3>
#Include <Constants.au3>

Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)

$nExitItem = TrayCreateItem("Exit")
TrayItemSetOnEvent($nExitItem, "_Exit_Proc")
TraySetIcon("Shell32.dll", 9)
TraySetState()

While 1
    If Not FileExists("iplog.txt") Then
        FileWrite(@ScriptDir & "\iplog.txt", "  Время        Дата        Ip-адресс")
    EndIf

    $PublicIP = _GetIP()

    If $PublicIP <> -1 Then
        TraySetIcon("Shell32.dll", 9) ;Одна иконка

        $sLine  = StringTrimLeft(FileReadLine('iplog.txt', -1), 24)

        If $PublicIP <> $sLine Then
            FileWrite(@ScriptDir & "\iplog.txt", @CRLF & @HOUR & ":" & @MIN & ":" & @SEC & "  " & @MDAY&"."&@MON&"."&@YEAR & "  " & $PublicIP)
            TrayTip("IpLog", $PublicIP, "", 1)
        EndIf
    Else
        TraySetIcon("Shell32.dll", 10) ;Другая иконка
    EndIf

    Sleep(1000*20)
WEnd

Func _Exit_Proc()
    Exit
EndFunc


sashadeg 27-02-2010 14:34 1357379

Цитата:

Цитата Creat0R
If Not FileExists("iplog.txt") Then »

зачем нужно NOT ? Что он делает?

madmasles 27-02-2010 14:58 1357400

Цитата:

Цитата sashadeg
зачем нужно NOT ? Что он делает? »

Если нет файла iplog.txt, то он создается следующей строкой кода.

sashadeg 27-02-2010 15:01 1357402

Спасибо. В общем то тоже самое что и у меня =) Чтото не въехал сразу... =\


Время: 16:28.

Время: 16:28.
© OSzone.net 2001-