1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Concara

Beiträge von Concara

  • automatisches rechnen

    • Concara
    • 17. September 2008 um 13:04

    Meinst du soetwas?

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 633, 451, 193, 115)
    $Input1 = GUICtrlCreateInput("5", 40, 32, 193, 21)
    $Input2 = GUICtrlCreateInput("2", 40, 64, 193, 21)
    $Input3 = GUICtrlCreateInput("Ergebnis", 40, 88, 193, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $nMsg = $Input1
    GUICtrlSetData($Input3, GUICtrlRead($Input1) * GUICtrlRead($Input2))
    EndSwitch
    WEnd

    [/autoit]

    Edit: Mist ihr 2 wart schneller :P

  • Script auf einem ENTFERNTEN Server ausführen

    • Concara
    • 17. September 2008 um 12:53

    Hallo!

    Falls du kein Problem damit hast Fremdtools zu verwenden, dann hol dir die PStools von Microsoft ehemals sysinternals.
    http://technet.microsoft.com/de-de/sysinternals/bb896649.aspx
    In diesen gibt es eine psexec.exe mit der kannst dann dein Script auf dem Fremdrechner starten, sofern du Zugriffsrechte auf diesem besitzt.

    [autoit]


    $commandline = @ComSpec & " /A /C " & @ScriptDir & "\pstools\psexec.exe \\" & $remotepcnameoderIP & " c:\programme\copyFromX.exe"
    RunWait($commandline, "")

    [/autoit]
  • StringSplit-Ausgabe zusammenfügen

    • Concara
    • 16. September 2008 um 17:21

    Hi!
    So etwa!?

    [autoit]


    For $i = 1 To $var[0] - 1
    $var1 = $var1 & $var[$i] & "\"
    Next
    MsgBox(0, 'Ergebnis ', $var1)

    [/autoit]
  • Öffnen mit... (mit meinem Programm öffnen)

    • Concara
    • 23. Juni 2008 um 11:44

    Hi !

    Ich habe deinen Code etwas erweitert. Mit dem Code aus dem Link den dir progandy gegeben hat.
    Die play() Funktion ist nicht zu 100 % ausgereift.
    Ist auch nur ein Ansatz wie man es machen kann.

    LG Concara

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <ButtonConstants.au3>
    #include <Sound.au3>
    #NoTrayIcon
    Global $opendialog, $sound, $o = 0, $p = 0, $length
    FileInstall("mediaplayerxxl.bmp", @TempDir & "\mediaplayerxxl.bmp", 1)
    FileInstall("play.bmp", @TempDir & "\play.bmp", 1)
    FileInstall("pause.bmp", @TempDir & "\pause.bmp", 1)
    FileInstall("stop.bmp", @TempDir & "\stop.bmp", 1)
    FileInstall("played.bmp", @TempDir & "\played.bmp", 1)
    FileInstall("paused.bmp", @TempDir & "\paused.bmp", 1)
    HotKeySet("^o", "open")
    HotKeySet("{F1}", "info")
    GUICreate("Media Player XXL", 500, 470)
    GUISetBkColor(0x000000)
    $menu = GUICtrlCreateMenu("Datei")
    $menu2 = GUICtrlCreateMenu("?")
    $itemopen = GUICtrlCreateMenuItem("Öffnen..." & @TAB & "Strg+O", $menu)
    GUICtrlCreateMenuItem("", $menu, -1)
    $itemexit = GUICtrlCreateMenuItem("Beenden", $menu)
    $iteminfo = GUICtrlCreateMenuItem("Info" & @TAB & "F1", $menu2)
    GUICtrlCreatePic(@TempDir & "\mediaplayerxxl.bmp", 5, 5, 489, 176)
    $play = GUICtrlCreateButton("", 15, 212, 50, 40, $BS_BITMAP)
    GUICtrlSetImage(-1, @TempDir & "\play.bmp")
    $pause = GUICtrlCreateButton("", 70, 212, 50, 40, $BS_BITMAP)
    GUICtrlSetImage(-1, @TempDir & "\pause.bmp")
    $stop = GUICtrlCreateButton("", 125, 212, 50, 40, $BS_BITMAP)
    GUICtrlSetImage(-1, @TempDir & "\stop.bmp")
    GUICtrlCreateGroup("Lautstärke", 190, 200, 140, 55)
    $slider = GUICtrlCreateSlider(200, 220, 120, 25)
    GUICtrlSetData(-1, 100)
    $file = GUICtrlCreateButton("Öffnen...", 360, 220, 100, 25)
    $list = GUICtrlCreateList("", 10, 280, 480, 140)
    $label = GUICtrlCreateLabel("00:00:00 / 00:00:00", 200, 425, 200, 25)
    GUICtrlSetColor(-1, 0xffffff)
    Dim $filename
    ;$cmdline[0] is the number of parameters passed
    If $cmdline[0] <> 0 Then
    $filename = $cmdline[1]
    ; Do something with the file here
    MsgBox(0, "UXYFixer", 'The file name passed to the command line is "' & $filename & '"')
    GUICtrlSetData($list, $filename)
    play()
    Else
    ; We did not get any command line parameters.
    ; If this is a command line only program, you would want to
    ; alert the user that the command line parameters were incorrect.
    ; If this is a GUI program (like a notepad program), you would
    ; want to simply continue from here without opening a file.
    MsgBox(0, "UXYFixer", 'Command line parameters incorrect.' & @CRLF & 'Command line usage: "' & @ScriptName & '" "file to process"')
    EndIf
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE, $itemexit
    FileDelete(@TempDir & "\mediaplayerxxl.bmp")
    FileDelete(@TempDir & "\play.bmp")
    FileDelete(@TempDir & "\pause.bmp")
    FileDelete(@TempDir & "\stop.bmp")
    FileDelete(@TempDir & "\played.bmp")
    FileDelete(@TempDir & "\paused.bmp")
    Exit
    Case $file
    open()
    Case $play
    play()
    Case $pause
    If $p = 0 Then
    _SoundPause($sound) ; Sound wird Pausiert
    GUICtrlSetImage($play, @TempDir & "\play.bmp")
    GUICtrlSetImage($pause, @TempDir & "\paused.bmp")
    $p = 1
    EndIf
    Case $stop
    _SoundClose($sound) ; Sound wird geschlossen
    GUICtrlSetImage($play, @TempDir & "\play.bmp")
    GUICtrlSetImage($pause, @TempDir & "\pause.bmp")
    AdlibDisable() ; Hier wird die Funktion pos deaktiviert
    $o = 0
    Case $slider
    SoundSetWaveVolume(GUICtrlRead($slider))
    Case $iteminfo
    info()
    EndSwitch
    WEnd
    Func play()
    If $filename = "" Then
    If $o = 0 Then
    $sound = _SoundOpen(GUICtrlRead($list))
    _SoundPlay($sound) ; Sound wird abgespielt
    GUICtrlSetImage($play, @TempDir & "\played.bmp")
    AdlibEnable("pos", 1000) ; Hier wird die Funktion pos aktiviert
    $o = 1
    EndIf
    Else
    $sound = $filename
    _SoundPlay($sound) ; Sound wird abgespielt
    GUICtrlSetImage($play, @TempDir & "\played.bmp")
    AdlibEnable("pos", 1000) ; Hier wird die Funktion pos aktiviert
    $o = 1
    $filename = ""
    EndIf
    If $p = 1 Then
    _SoundResume($sound) ; Sound wird Repausiert
    GUICtrlSetImage($play, @TempDir & "\played.bmp")
    GUICtrlSetImage($pause, @TempDir & "\pause.bmp")
    $p = 0
    EndIf
    EndFunc
    Func pos()
    $length = _SoundLength($sound, 1) ; Hier wird angegeben wie lang der Sound in Zeit ist
    $pos = _SoundPos($sound, 1) ; Hier wird die aktuelle Zeit angegeben
    GUICtrlSetData($label, $pos & " / " & $length)
    EndFunc
    Func open()
    $opendialog = FileOpenDialog("Öffnen...", "", "Medien (*.mp3; *.wav)", 4)
    GUICtrlSetData($list, $opendialog)
    EndFunc
    Func info()
    MsgBox(64, "Info", "Media Player XXL" & @CRLF & "Version 1.0.0.0" & @CRLF & "" & @CRLF & "Copyright © 2008, by M3HM3T")
    EndFunc

    [/autoit]
  • Script nacht Ausführen löschen lassen

    • Concara
    • 8. Januar 2008 um 15:47

    HI!

    Der Link funktioniert nicht mehr!

    Diese Meldung erhaltet man:

    Du hast einen ungültigen oder nicht mehr gültigen Verweis aufgerufen.
    Zurück zur vorherigen Seite

  • GUICtrlCreateListView an GUI anpassen

    • Concara
    • 8. Oktober 2007 um 16:06

    Ich führe einen "scann" durch der mir die listview mit Daten befüllt. Dazu klickt man auf den Start Button.
    Nach Abschluss des "scann" kann man wieder auf den Start Button klicken und es soll die listview wieder neu befüllen. (ohne das die alten Daten darin enthalten sind).
    Deshalb lösch ich die listview jedes Mal bevor sie wieder neu erstellt und befüllt wird.

  • GUICtrlCreateListView an GUI anpassen

    • Concara
    • 8. Oktober 2007 um 15:55

    OK ich habe eine Lösung gefunden.
    Mit ControlGetPos habe ich die Positon ausgelesen dann die listview gelöscht und neu erstellt mit den Positionsangaben vom "alten" listview.
    Das ist meine Lösung.
    Gibt es eine andere, "saubere" Lösung ?
    Kann man ein listview element auch ohne es zu löschen vom Inhalt befreien?
    Weil dann würde ich es nicht neu erstellten müssen und das Ändern der Fenstergröße wäre dann auch kein Problem.

    LG Florian

    Meine Lösung

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GuiConstants.au3>
    #include <GuiListView.au3>

    GuiCreate("Desktop Größe Test", 800, 600, -1, -1 , BitOR($WS_SIZEBOX , $WS_SYSMENU , $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX ) )

    [/autoit] [autoit][/autoit] [autoit]

    $Button_2 = GuiCtrlCreateButton("Start", 75, 10, 55, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $listview = GUICtrlCreateListView("Nr. |IP Adresse |PC Name |User |Office |Uptime |VNC |OS", 10, 100, 780, 450, -1, BitOR($LVS_EX_REGIONAL, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))

    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_2
    If $listview <> 0 Then
    $wsize = ControlGetPos ( "", "", $listview );WinGetClientSize("")
    GUICtrlDelete($listview)
    EndIf

    $listview = GUICtrlCreateListView("Nr. |IP Adresse |PC Name |User |Office |Uptime |VNC |OS", $wsize[0], $wsize[1], $wsize[2] , $wsize[3] , -1, BitOR($LVS_EX_REGIONAL, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    ;GUICtrlSetResizing ($listview,$GUI_DOCKBORDERS)
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • GUICtrlCreateListView an GUI anpassen

    • Concara
    • 8. Oktober 2007 um 14:37

    Leider bekomme ich das mit GUICtrlSetResizing auch nicht hin.
    Hat eigendlich keinen Effekt auf mein ListView.
    Aber danke

    Florian

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GuiConstants.au3>
    #include <GuiListView.au3>

    GuiCreate("Desktop Größe Test", 800, 600, -1, -1 , BitOR($WS_SIZEBOX , $WS_SYSMENU , $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX ) )

    [/autoit] [autoit][/autoit] [autoit]

    $Button_2 = GuiCtrlCreateButton("Start", 75, 10, 55, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $listview = GUICtrlCreateListView("Nr. |IP Adresse |PC Name |User |Office |Uptime |VNC |OS", 10, 100, 780, 450, -1, BitOR($LVS_EX_REGIONAL, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))

    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_2
    If $listview <> 0 Then
    GUICtrlDelete($listview)
    EndIf
    $listview = GUICtrlCreateListView("Nr. |IP Adresse |PC Name |User |Office |Uptime |VNC |OS", -1, -1, -1, -1, -1, BitOR($LVS_EX_REGIONAL, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    GUICtrlSetResizing ($listview,$GUI_DOCKAUTO)
    EndSelect
    WEnd

    [/autoit]
  • GUICtrlCreateListView an GUI anpassen

    • Concara
    • 8. Oktober 2007 um 12:51

    HI Leute!

    Mein Problem ist folgendes.
    Ich möchte das sich die GUICtrlCreateListView an die GUI anpasst egal wie groß diese ist.
    Es funktioniert auch beim "ersten" mal.
    Nur wird die listview im Programm auch gelöscht mit GUICtrlDelete($listview) und dann wieder neu erstellt.
    Und hier entsteht mein Problem das die Listview dann genau so groß ist wie ich sie beim GUICtrlCreate angebe.

    Danke
    Florian

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    #include <GuiListView.au3>

    GuiCreate("Desktop Größe Test", 800, 600, -1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS) )

    [/autoit] [autoit][/autoit] [autoit]

    $Button_2 = GuiCtrlCreateButton("Start", 75, 10, 55, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $listview = GUICtrlCreateListView("Nr. |IP Adresse |PC Name |User |Office |Uptime |VNC |OS", 10, 100, 780, 480, -1, BitOR($LVS_EX_REGIONAL, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))

    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Button_2
    If $listview <> 0 Then
    GUICtrlDelete($listview)
    EndIf
    $listview = GUICtrlCreateListView("Nr. |IP Adresse |PC Name |User |Office |Uptime |VNC |OS", 10, 100, 780, 480, -1, BitOR($LVS_EX_REGIONAL, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Datei mit verknüpfter Anwendung starten

    • Concara
    • 18. September 2007 um 13:22

    So schnell !!!
    So "einfach" !!!
    DANKE

    Warscheinlich schon 1000 mal gefragt.

  • Datei mit verknüpfter Anwendung starten

    • Concara
    • 18. September 2007 um 13:10

    Wie mein Thema schon sagt, suche ich einen Weg, wie man eine Datei mit dem jeweiligen Programm, das in Windows verknüpft, ist aus einem autoit Programm, zu starten.
    Beispiel: Jemand verwendet Irfanview als Bildbetrachter, ein anderer verwendet Paint, um seine Bilder anzuzeigen.

    Jetzt soll eben die Bilddatei auf dem einem PC mit irfanview aufgehen und beim anderen PC mit Paint.

    Habe im Forum unter den Begriffen die ich zur Suche verwendet habe nichts gefunden.

    Bitte helft mir

    Danke

  • TreeView auswerten

    • Concara
    • 13. Juni 2007 um 11:47

    Danke hat einwandfrei funktioniert!
    Das einzige was ist, das die CPU last etwas steigt.
    MFG
    Concara :D

  • Schnellerer Port Scann

    • Concara
    • 13. Juni 2007 um 11:29

    Hi!

    Nochmal Danke dafür das du mir das Script zur Verfügung stellst.
    Ich habe den Code so übernommen wie du es geschrieben hast.
    Bis auf die Auswertung im "Main Programm" die habe ich an meine Anforderungen angepasst. Ich hätte wegen dem VNC nicht fragen sollen.
    Jetzt bin ich etwas entmutigt mit meinem Programm weiter zu machen.
    Was ich ganz lustig finde ist das mein Programm Optisch ziemlich ähnlich dem VNCControl ist. Und eins haben die Programmier von dem Programm nicht deine RUNWAIT Funktion. Somit ist der automatische Scann nach VNC Clients ziemlich langsam.

    Concara

  • Schnellerer Port Scann

    • Concara
    • 12. Juni 2007 um 12:17

    Hi GTASpider!


    Sorry das ich mich erst jetzt melde aber ich hatte keine Zeit.

    Ist echt ein Hammer dein Script!!!!

    Darf ich es in meinem Programm verwenden?

    Damit ist der Port scann um einiges schneller!

    Noch eine Frage: Gibt es deines Wissen nach schon ein Programm mit dem man VNC verwalten kann!?(auf Autoit Basis oder kennst ein gutes was nicht mit Autoit gemacht worden ist)

    Ich kenne VNCon. Das ist aber was Gruppen anlegen anlangt sehr umständlich.

    Nochmals danke für die Antwort und gib mir bitte bescheid ob ich dein Script verwenden darf.

    Danke

  • Schnellerer Port Scann

    • Concara
    • 5. Juni 2007 um 12:47

    Hallo!

    Ich habe da eine Funktion damit ich herausfinden kann ob auf einem PC VNC läuft.

    Spoiler anzeigen
    [autoit]

    Func PortScan($port, $ip)
    TCPStartUp()
    Opt("TCPTimeout",50)
    $socket = TCPConnect($ip, $port)
    If $socket = -1 Then
    $c = "0x000000"
    $reg = ""
    Return $c
    Else
    TCPCloseSocket($socket)
    $c = "0x00bf00"
    Return $c
    EndIf
    TCPShutdown()
    EndFunc

    [/autoit]

    Es funktioniert auch, nur wenn man auf einen PC gelangt, der den Dienst nicht ausführt, braucht es ewig bis das Script zum nächsten PC weiter geht.
    Meine Frage lautet, wie kann ich das beschleunigen, bzw. gibt es eine andere (einfache) Lösung, um herauszufinden ob ein Dienst (VNC) auf einem PC im Netzwerk läuft?

    Danke im Vorhinein

  • TreeView auswerten

    • Concara
    • 26. April 2007 um 13:02

    OK ich weiß nicht mehr wie ich es genau erklären soll.
    Deshalb stell ich mal mein ganzes Programm hier ein.
    Was ich möchte: Ein Programm das per port scann nachsieht ob VNC auf einigen PC´s drauf läuft.
    Die Ergebnisse sollen in einer Treeview dargestellt werden.
    Das Programm soll per INI File die jeweiligen IP Bereiche zur Verfügung gestellt bekommen.
    Wenn man in der Treeview dann auf einen PC klickt soll dann ein VNC Viewer gestartet werden und eine Verbindung hergestellt werden.
    Wenn man einen Button anklickt dann sollte das gescannte exportiert werden.
    Die Orte die die IP Adressen angeben werden zu einem Ordner auf der Festplatte und die PC´s werden dann im jeweiligen Ordner zu Verknüpfungsdateien für den VNC Viewer (pc_xy.vnc)

    Und weil das Ganze so dynamisch ist verliere ich langsam den Plan.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <GuiTreeView.au3>

    [/autoit] [autoit][/autoit] [autoit]

    GuiCreate("VNC Control", 800, 600,-1, -1);+ $WS_SIZEBOX,$WS_MAXIMIZEBOX+$WS_MINIMIZEBOX

    [/autoit] [autoit][/autoit] [autoit]

    $Input_1 = GuiCtrlCreateInput("", 10, 10, 60, 20)
    $Input_2 = GuiCtrlCreateInput("", 10, 30, 60, 20)
    $Input_3 = GuiCtrlCreateInput("", 10, 50, 60, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $Button_1 = GuiCtrlCreateButton("Start", 75, 10, 55, 20)
    $Button_2 = GuiCtrlCreateButton("Alle", 75, 30, 55, 20)
    $Button_3 = GuiCtrlCreateButton("Liste", 130, 10, 55, 20)
    $statebutton = GUICtrlCreateButton("Col./Exp.", 75, 50, 55, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $combo = GUICtrlCreateCombo ("", 680, 10, 80, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $filemenu = GUICtrlCreateMenu ("&Datei")
    $fileitem = GUICtrlCreateMenuitem ("Öffnen",$filemenu)
    $fileitem2 = GUICtrlCreateMenuitem ("Speichern",$filemenu)
    $fileitem3 = GUICtrlCreateMenuitem ("Exit",$filemenu)
    $helpmenu = GUICtrlCreateMenu ("?")
    $infoitem = GUICtrlCreateMenuitem ("Info",$helpmenu)

    [/autoit] [autoit][/autoit] [autoit]

    $treeview = GUICtrlCreateTreeView(10, 80, 220, 400, BitOr($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)

    [/autoit] [autoit][/autoit] [autoit]

    $statusa = GUICtrlCreateLabel ("", 10, 480, 170, 20)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $itemtest[2]
    Dim $combodate, $c
    Dim $status
    Dim $x = 1
    Dim $data[1]
    Dim $nn

    [/autoit] [autoit][/autoit] [autoit]

    $nslookup = @WindowsDir & '\System32\nslookup.exe -retry=10'
    $filename = @TempDir & "\VNCMASTER.txt"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $var1 = IniReadSection(@ScriptDir & "\config.ini", "Standorte")
    $var2 = IniReadSection(@ScriptDir & "\config.ini", "IPStart")
    $var3 = IniReadSection(@ScriptDir & "\config.ini", "IPEnd")
    If @error Then
    MsgBox(4096, "", "Keine INI Datei vorhanden, es wird eine Beispiel INI erzeugt." & @CR & "Nach klick auf Ok wird das Programm neu gestartet.")
    IniWrite(@ScriptDir & "\config.ini", "Standorte", "testort", "10.80.0.")
    IniWrite(@ScriptDir & "\config.ini", "IPStart", "testort", "2")
    IniWrite(@ScriptDir & "\config.ini", "IPEnd", "testort", "10")
    If FileExists(@ScriptDir & "\config.ini") Then
    run(@ScriptDir & "\vncmaster.exe")
    Else
    MsgBox(4096, "", "Die INI Datei konnte nicht erstellt werden." & @CR & "Das Programm wird beendet.")
    EndIf
    Exit
    Else
    Global $generalitem[UBound($var1)]
    For $i = 1 To $var1[0][0]
    GUICtrlSetData($combo,$var1[$i][0],$var1[1][0])
    $generalitem[$i] = GUICtrlCreateTreeViewitem($var1[$i][0], $treeview)
    GUICtrlSetColor(-1, 0x0000C0)
    Next
    EndIf
    GUICtrlSetData($Input_1, $var1[1][1])
    GUICtrlSetData($Input_2, $var2[1][1])
    GUICtrlSetData($Input_3, $var3[1][1])

    [/autoit] [autoit][/autoit] [autoit]

    GuiSetState()
    While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $fileitem3
    ExitLoop
    Case $msg = $combo ; Ort aus Combo auswählen und die Inputfelder setzen
    For $i = 1 To $var1[0][0]
    If GUICtrlRead($combo) = $var1[$i][0] Then
    GUICtrlSetData($Input_1, $var1[$i][1])
    GUICtrlSetData($Input_2, $var2[$i][1])
    GUICtrlSetData($Input_3, $var3[$i][1])
    EndIf
    Next

    Case $msg = $infoitem
    Msgbox(0,"Info","VNC Control"&@cr&"Version 0.1 Beta"&@cr&"Copyright by Hornsteiner Florian 2007")

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Button_1 ; einzeln scannen
    $ip = GUICtrlRead($Input_1)
    $von = GUICtrlRead($Input_2)
    $bis = GUICtrlRead($Input_3)
    scann($ip, $von, $bis)

    [/autoit] [autoit][/autoit] [autoit]

    Case $msg = $Button_2 ; Alle scannen
    For $i = 1 To $var1[0][0]
    $ip = $var1[$i][1]
    $von = $var2[$i][1]
    $bis = $var3[$i][1]
    scann($ip, $von, $bis)
    Next


    Case $msg = $statebutton ; Col./Exp.
    If $x = 1 Then
    _GUICtrlTreeViewExpand($treeview)
    $x = 2
    ElseIf $x = 2 Then
    _GUICtrlTreeViewExpand($treeview, 0)
    $x = 1
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;Case $msg = $data[1]

    [/autoit] [autoit][/autoit] [autoit]


    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func scann($ip, $von, $bis)
    $status2 = $bis - $von + 1
    GUICtrlSetData ($Button_1, "Stop")
    For $i = $von to $bis
    $msg = GuiGetMsg()
    If $msg = $Button_1 Then
    ExitLoop
    Else
    $status = $status + 1
    GUICtrlSetData ($statusa, "Status " & $status & " von " & $status2 & " Einträge:" & _GUICtrlTreeViewGetCount ($treeview) - $var1[0][0] + 1)
    $var = Ping($ip & $i,100)
    If $var Then
    $commandline = @ComSpec & ' /A /C "' & $nslookup & '" ' & $ip & $i & ' > ' & $filename
    RunWait($commandline,"", @SW_HIDE)
    $file = FileOpen($filename, 0)
    $line2 = StringMid(FileReadLine($file, 4), 10)
    $line = StringReplace($line2, "." & @LogonDNSDomain, "")
    FileClose($file)
    ; damit es schneller läuft
    ;~ If $line <>"" Then
    ;~ $p = PortScan(5800, $ip & $i)
    ;~ EndIf
    For $ii = 1 To $var1[0][0]
    If $ip = $var1[$ii][1] And $line <>"" Then
    liste($line & " - " & $ip & $i, $generalitem[$ii])
    EndIf
    Next
    EndIf
    EndIf
    Next
    GUICtrlSetData ($Button_1, "Start")
    $status = ""
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func liste($a, $b)
    ReDim $data[UBound($data) + 1]
    $data[UBound($data) - 1] = GUICtrlCreateTreeViewitem($a, $b)
    GUICtrlSetColor(-1, $c)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func PortScan($port, $ip)
    TCPStartUp()
    Opt("TCPTimeout",50)
    $socket = TCPConnect($ip, $port)
    If $socket = -1 Then
    $c = "0x000000"
    Return $c
    Else
    TCPCloseSocket($socket)
    $c = "0x00bf00"
    Return $c
    EndIf
    TCPShutdown()
    EndFunc

    [/autoit]


    Könnt ihr mir sagen wie ich $data mit case dynamisch auswerten kann?
    Dem Array $data sind die item´s zugewiesen worden.
    Ich kann ja nicht im vorhinein schon alle Case fälle angeben weil ich ja nicht weiß wie viele item´s erstellt werden. Das hängt ja davon ab wie viele PC´s auf den Ping antworten.
    Ahh das Erklären ist einfach nicht so einfach.
    Ich hoff ihr wisst halbwegs was ich meine.

  • TreeView auswerten

    • Concara
    • 26. April 2007 um 09:19

    HI!

    Danke für die Antwort, habe schon gedacht das keiner drauf antwortet.
    Zu meinem Problem.

    Spoiler anzeigen
    [autoit]

    For $ii = 1 To $var1[0][0]
    If $ip = $var1[$ii][1] And $line <>"" Then
    liste($line & " - " & $ip & $i, $generalitem[$ii])
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Func liste($a, $b)
    ReDim $data[UBound($data) + 1]
    $data[UBound($data) - 1] = GUICtrlCreateTreeViewitem($a, $b)
    GUICtrlSetColor(-1, $c)
    EndFunc

    [/autoit]

    Das ist ein Auszug aus meinem Programm. ( wie bekomme ich den spoiler Bund und mit den Leerzeichen in meinem Code?)

    Edit BugFix
    Habs eingefügt: [ spoiler ][ autoit ] code [ /autoit ][ /spoiler ] (ohne Leerzeichen)

    Ich erstelle die treeviewitem mit einer For Schleife und lass das alles einem array zuweisen. Aber wenn ich jetzt eine z.B. Case $msg = $data[1] im Programm verwende dann kommt natürlich: Array variable has incorrect number of subscripts or subscript dimension range exceeded
    Also kann ich nicht das item auswerten.
    Hab keine Ahnung wie ich das sonst irgendwie lösen könnte.
    Froh um jede Hilfe

  • TreeView auswerten

    • Concara
    • 25. April 2007 um 11:33

    Hallo!

    Ich habe zu Treeview eine Frage.
    Wie kann man Einträge in ein Treeview vernünftig auswerten wenn man es zuvor mit einer For Schleife automatisch befüllt hat.

    Beispiel:

    eintrag1
    ______ itme1
    ______ itme2
    ______ item3
    eintrag2
    ______ irgendwas
    ______ nochwas

    Wie bekomme ich jetzt heraus wieviele Einträge in (eintrag1) sind und ebenso in (eintrag2)?
    Und wenn jetzt ein Eintrag ein bestimmtes Kriterium erfüllt wie kann ich das herausfiltern?

    Danke im Vorhinein

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™