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. svart

Beiträge von svart

  • FileUpload

    • svart
    • 26. Juli 2017 um 15:08

    So klappt das bei mir:

    AutoIt
    ShellExecute("explorer.exe","ftp://juergen6:password@ftp.f.emeuv.de/")

    Ersetze "password" mit deinem Passwort ;)

  • Prozessliste mit Namen erstellen

    • svart
    • 26. Juli 2017 um 14:54

    Meinst du sowas z.B.: ?


    AutoIt
    #include <Array.au3>
    
    
    $aWin = processlist()
    $c = 0
    Dim $aList[0][3]
    
    
    for $i = 0 to ubound($aWin)-1
    	$sWin = _Process2Win($aWin[$i][1])
    	if $sWin <> -1 then
    		$c = $c + 1
    		ReDim $aList[$c][3]
    		$aList[$c-1][0] = $aWin[$i][0]
    		$aList[$c-1][1] = $aWin[$i][1]
    		$aList[$c-1][2] = $sWin
    	EndIf
    Next
    
    
    _Arraydisplay($aList)
    
    
    Func _Process2Win($pid)
        If IsString($pid) Then $pid = ProcessExists($pid)
        If $pid = 0 Then Return -1
        Local $list = WinList(), $wpid
        For $i = 1 To $list[0][0]
            If $list[$i][0] <> "" AND BitAnd(WinGetState($list[$i][1]),2) Then
                $wpid = WinGetProcess($list[$i][0])
                If $wpid = $pid Then Return $list[$i][0]
            EndIf
        Next
        Return -1
    EndFunc  ;==> Quelle: https://autoit.de/index.php/Thread/85367-Schleife-bis-R%C3%BCckgabewert-passt/?postID=683725&highlight=_Process2Win%2528%2524pid%2529
    Alles anzeigen
  • GUICTRLSetOnEvent welcher Menübutton wurde gedrückt?

    • svart
    • 9. Mai 2017 um 09:31

    Vielen Dank.

    Jetzt wo du es sagst (oder schreibst)..@GUI_CtrlId hatte ich schon einmal vor 1-2 Jahren bei einem ähnlichen Problem benutzt, bin aber nicht mehr darauf gekommen :D

  • GUICTRLSetOnEvent welcher Menübutton wurde gedrückt?

    • svart
    • 9. Mai 2017 um 07:31

    Hallo,


    ich hoffe ihr kennt einen einen Workaround für mein Problem :)


    Ich möchte gerne in meine GUI Tools (*.exe) ausführen und diese per INI-Datei anpassen, so dass Sie automatisch in der Menübar unter "Tools" angezeigt werden.
    Nur leider habe ich keine Ahnung wie ich jetzt herrausfinde, welcher Menübutton gedrückt worden ist..

    Das ganze sollte mit Opt("GUIOnEventMode", 1) laufen.


    Hier mal ein Beispiel:

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    Opt("GUIOnEventMode", 1)
    
    
    $GUI = GUICreate("TEST", 300,300)
    $Menu_Tools = GUICtrlCreateMenu("Tools")
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_EXIT")
    
    
    Local $aTools[4][3]
    for $i = 1 to ubound($aTools)-1
    	$aTools[$i][0] = "Tool " & $i
     	$aTools[$i][1] = "Pfad zur Exe"
    	$aTools[$i][2] =  GUICtrlCreateMenuItem($aTools[$i][0], $Menu_Tools)
    	GUICTRLSetOnEvent(-1,"_Test")
    Next
    
    
    While 1
    	sleep(50)
    WEnd
    
    
    Func _exit()
    	Exit
    EndFunc
    
    
    func _Test()
    	msgbox(0,"","WELCHER BUTTON?")
    endfunc
    Alles anzeigen
  • Label-Text ausgeben -> Kontextmenü

    • svart
    • 2. November 2015 um 07:52

    Vielen Dank, das löst mein Problem.

  • Label-Text ausgeben -> Kontextmenü

    • svart
    • 30. Oktober 2015 um 07:31
    Zitat von Oscar

    GuiCtrlSetOnEvent(-1, "LabelKlick") jedem Label zuweisen und in der Funktion "LabelKlick" dann mit GuiCtrlRead(@GUI_CtrlID) den Text des Labels auslesen.

    -> das ist mir bewusst, wie in meinem Beispiel zu sehen ist möchte ich das aber nicht.

    Zitat von Oscar

    Du schreibst, dass Du den Text des Label haben willst, auf das Du klickst. Wozu dann ein ContextMenü?

    -> weil ich möchte, dass ein Kontextmenü erscheint wenn ich mit der rechten Maustaste auf ein Label klicke, in den Funktionen die ich dann per Kontextmenü (mehrere Punkte) aufrufe, benötige ich dann den Labeltext.

    Ich hoffe es ist jetzt verständlicher.

  • Label-Text ausgeben -> Kontextmenü

    • svart
    • 29. Oktober 2015 um 09:26
    Zitat von Oscar

    Man kann nicht den OnEventMode und den MsgLoopMode gleichzeitig benutzen!
    Es geht zwar wechselweise, aber nicht gleichzeitig!

    Das weiß ich, hatte nur mit Koda ein GUI erstellt und vergessen den Part zu löschen, aber darum gings ja in dem Beispiel nicht.

    Zitat von Oscar

    Du kannst natürlich auch nur ein ContextMenu für die ganze Gui erstellen, und benutzt dann in der EventFunktion @GUI_CtrlID für die Auswahl.
    Aber woher sollen wir wissen, was Du vorhast? :huh:

    Mit @GUI_CtrlID würde ich doch dann die ID vom Kontextmenü-Punkt "TEST" erhalten?


    Also wie bereits geschrieben möchte ich gerne den Text des Labels auf das ich klicke in der Funktion als variable haben.

  • Label-Text ausgeben -> Kontextmenü

    • svart
    • 28. Oktober 2015 um 15:36

    Hallo,

    wie kann ich den Label-Text ausgeben, wenn ich per Kontext-Menü auf "TEST" klicke? (siehe Beispiel:)

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    $MainGUI = GUICreate("", 250, 250)
    $Button  = GUICTRLCreateButton("TEST",20,220,100,20)
    GUISetState(@SW_SHOW)
    
    
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    
    
    $arLabels=_CreateLabel()
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $button
    
    
    	EndSwitch
    WEnd
    
    
    Func _CreateLabel()
    	local $Array[10]
    	for $i = 0 to UBound($Array)-1 step 1
    		$Array[$i]=GUICTRLCreateLabel("Test" & $i, 20,20*$i,200,15)
    			GUICtrlSetBkColor(-1,0x0B610B)
    			$context 	= GUICtrlCreateContextMenu($Array[$i])
    			$context_test 	= GUICtrlCreateMenuItem("TEST",$context)
    					  GUICtrlSetOnEvent(-1, "_TEST")
    	Next
    	return $Array
    EndFunc
    
    
    func _Exit()
    	Exit
    EndFunc
    
    
    func _Test()
    	msgbox(0,"","TEXT?!")
    EndFunc
    Alles anzeigen
  • Mehrere Labels erstellen

    • svart
    • 27. Oktober 2015 um 09:08

    Danke, daran hab ich gar nicht gedacht.

  • Mehrere Labels erstellen

    • svart
    • 26. Oktober 2015 um 14:49

    Hallo,

    ich möchte im nachhinein die einzelnen Labels anpassen können. (siehe Beispiel unten)

    Beim Klick z.B. GUICtrlSetBkColor($LABEL,0x0101DF)

    Leider scheiterts, da ich die Labels in der Schleife erstellen möchte... also $label & $i = GUICTRLcreateLabel funktioniert leider nicht.
    Gibs da ein Workaround für?


    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    $MainGUI = GUICreate("", 250, 250)
    $Button  = GUICTRLCreateButton("TEST",20,220,100,20)
    GUISetState(@SW_SHOW)
    
    
    _CreateLabel()
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $button
    
    
    	EndSwitch
    WEnd
    
    
    func _CreateLabel()
    	for $i = 1 to 10
    		GUICTRLCreateLabel("Test" & $i, 20,20*$i,200,15)
    		GUICtrlSetBkColor(-1,0x0B610B)
    	Next
    EndFunc
    Alles anzeigen
  • Werte aus HTML-Tabelle lesen

    • svart
    • 16. Oktober 2015 um 12:01

    Vielen Dank euch Beiden, jetzt klappt alles so wie ich es will :D

  • Werte aus HTML-Tabelle lesen

    • svart
    • 15. Oktober 2015 um 12:52

    Ich danke dir.


    Leider funktioniert der RegEx nicht wenn mehrere Spalten in einer Zeile stehen.

    z.B.

    Spoiler anzeigen
    Code
    <form name="monObjects" method="POST" action="/MONOBJLIST">
    <input name="cmd" value="" type="HIDDEN">
    <table width="100%">
    <tbody><tr>
    </tr></tbody><thead bgcolor="#46648C">
    <tr><th>   </th>
    <th>Lfd. Nr.</th>
    <th>Status</th>
    <th>Name</th>
    <th>Meldung</th>
    </tr>
    </thead><tbody bgcolor="#CAD5E3">
    <tr><td><input name="marker" value="MonObj65" type="checkbox"></td><td><a name="1">1</a></td><td align="center"><img src="StateGreen.jpg" name="StateGreen.jpg" "="" align="absmiddle"></td><td><a href="http://192.168.0.1:5588/State?ID=MonObj65">SRVTEST01 - DATEN - FOLDER</a></td><td>Es befinden sich mindestens "0" Dateien in dem Verzeichnis "\\srvtest01\daten\folder" mit der Maske "*.*".Folgende Optionen wurden berücksichtigt: Zeitstempel; [Dauer = 0 ms]</td></tr><tr><td><input name="marker" value="MonObj10" type="checkbox"></td><td><a name="2">2</a></td><td align="center"><img src="StateGreen.jpg" name="StateGreen.jpg" "="" align="absmiddle"></td><td><a href="http://192.168.0.1:5588/State?ID=MonObj10">SRV02TEST - Prozess Test</a></td><td>process count:[26] cpu use:[0%] run</td></tr>
    <tr><td><input name="marker" value="MonObj72" type="checkbox"></td><td><a name="3">3</a></td><td align="center"><img src="StateRed_002.jpg" name="StateRed.jpg" "="" align="absmiddle"></td><td><a href="http://192.168.0.1:5588/State?ID=MonObj72">SRV02TEST - Service Test</a></td><td>Keine Antwort "Test" auf "SRV02TEST.domain.de" seit mehr als 120 Sekunden. [Dauer = 0 ms]</td></tr>
    </tbody>
    </table>
    </form>
    </body>
    </html>
    Alles anzeigen


    Bei deinem Beispiel mittels "HTMLParser" funktioniert das, aber wie bekomme ich alle Tabellen ausgelesen?

    Leider lässt sich die "3" in der Zeile bzw. Funktion _CssSelectFromString:
    $a_Tds = _CssSelectFromString($s_String, "tr:nth-of-type(3) td")

    nicht über eine Variable ausführen:

    $i = 3
    $a_Tds = _CssSelectFromString($s_String, "tr:nth-of-type(" & $i & ") td")

    ?

  • Werte aus HTML-Tabelle lesen

    • svart
    • 15. Oktober 2015 um 09:40

    Hallo,

    ich würde gerne Werte aus einer HTML Tabelle auslesen. Leider komme ich mit RegEx überhaupt nicht klar - auch nach dem Lesen eines Tutorials... (PS: kennt jemand noch ein gutes Tutorial???)


    Hier mal eine Beispiel Tabelle:

    Spoiler anzeigen
    Code
    <form name="monObjects" method="POST" action="/MONOBJLIST">
    <input name="cmd" value="" type="HIDDEN">
    <table width="100%">
    <tbody><tr>
    </tr></tbody><thead bgcolor="#46648C">
    <tr><th>   </th>
    <th>Lfd. Nr.</th>
    <th>Status</th>
    <th>Name</th>
    <th>Meldung</th>
    </tr>
    </thead><tbody bgcolor="#CAD5E3">
    <tr><td><input name="marker" value="MonObj65" type="checkbox"></td><td><a name="1">1</a></td><td align="center"><img src="StateGreen.jpg" name="StateGreen.jpg" "="" align="absmiddle"></td><td><a href="http://192.168.0.1:5588/State?ID=MonObj65">SRVTEST01 - DATEN - FOLDER</a></td><td>Es
     befinden sich mindestens "0" Dateien in dem Verzeichnis 
    "\\srvtest01\daten\folder" mit der Maske "*.*".Folgende Optionen 
    wurden berücksichtigt: Zeitstempel; [Dauer = 0 ms]</td></tr><tr><td><input name="marker" value="MonObj10" type="checkbox"></td><td><a name="2">2</a></td><td align="center"><img src="StateGreen.jpg" name="StateGreen.jpg" "="" align="absmiddle"></td><td><a href="http://192.168.0.1:5588/State?ID=MonObj10">SRV02TEST - Prozess Test</a></td><td>process count:[26] cpu use:[0%] run</td></tr>
    <tr><td><input name="marker" value="MonObj72" type="checkbox"></td><td><a name="3">3</a></td><td align="center"><img src="StateRed_002.jpg" name="StateRed.jpg" "="" align="absmiddle"></td><td><a href="http://192.168.0.1:5588/State?ID=MonObj72">SRV02TEST - Service Test</a></td><td>Keine Antwort "Test" auf "SRV02TEST.domain.de" seit mehr als 120 Sekunden. [Dauer = 0 ms]</td></tr>
    </tbody>
    </table>
    </form>
    </body>
    </html>
    Alles anzeigen

    Ich würde gerne alle Zeilen/Spalten als Array haben, ich hatte es bereits mit _IETableWriteToArray probiert - aber da wird mir nichts in der Spalte "Status" (StateGreen / StateRed) angezeigt.

    Also aus der Zeile:
    <tr><td><input name="marker" value="MonObj10" type="checkbox"></td><td><a name="2">2</a></td><td align="center"><img src="StateGreen.jpg" name="StateGreen.jpg" "="" align="absmiddle"></td><td><a href="http://192.168.0.1:5588/State?ID=MonObj10">SRV02TEST - Prozess Test</a></td><td>process count:[26] cpu use:[0%] run</td></tr>

    Sollte dann z.B. : "MonObj10|StateGreen|SRV02TEST - Prozess Test|process count:[26] cpu use:[0%] run" werden.


    Wäre nett wenn mir jemand ein passendes RegEx-Pattern geben könnte, eine Erklärung dazu wäre natürlich noch am Besten. :D

    Vielen Dank schon mal.

  • SNMP-Traps empfangen / Problem mit String

    • svart
    • 6. Oktober 2015 um 14:54

    Hi,

    danke für die Antwort, leider haut das nicht hin, weil vor und nach dem String den ich benötige völlig unterschiedliche Sachen stehen, einige wurden beim Einfügen hier nicht übernommen (Sonderzeichen)
    - ich denke das wird sicher auch mit RegEx schwierig.
    Ich habe jetzt aber einen Workaround gefunden... ich weiß welche Werte gesendet werden, also "SRVTest - Verzeichnis" müsste dann nur noch aus dem SNMP-Trap auslesen ob Fehler oder OK...

  • SNMP-Traps empfangen / Problem mit String

    • svart
    • 6. Oktober 2015 um 11:57

    Hallo,

    ich habe mir ein Script gebaut, dass SNMP-Traps, welche von einem Server gesendet werden liest.
    Das funktioniert auch, nur es werden Binarys übergeben, die ich dann mittels BinaryToString umwandle.

    Das Resultat ist zB.:

    0‰ public¤| +‚‰P @ C 0`0 TESTSERVER - PING0 Fehler / Rot03 .TESTSERVER.domain.de [192.168.2.5]
    0‰ public¤| +‚‰P @ C 0`0 TESTSERVER - PING0 Fehler / Rot03 .TESTSERVER.domain.de [192.168.2.5]
    0† public¤y +‚‰P @ C 0]0 TESTSERVER2 - SQL0 OK / Grün03 .TESTSERVER2.domain.de [192.168.2.7]
    0‰ public¤| +‚‰P @ C 0`0 TESTSERVER2 - SQL+‚ Fehler / Rot03 .TESTSERVER2.domain.de [192.168.2.7]
    0† public¤y +‚‰P @ C 0]0 SRVTEST - VERZEICHNIS¤| OK / Grün03 .SRVTEST.domain.de [192.168.2.3]
    0‰ public¤| +‚‰P @ C 0`0 SRVTEST - VERZEICHNIS0 Fehler / Rot03 .SRVTEST.domain.de [192.168.2.3]


    Ich tu mich leider etwas schwer die Daten, die ich benötige rauszufiltern.

    Die Tabelle sollte dann wie folgt aussehen:

    TESTSERVER - PING | Fehler
    TESTSERVER - PING | Fehler
    TESTSERVER2 - SQL | OK
    TESTSERVER2 - SQL | Fehler
    SRVTEST - VERZEICHNIS | OK
    SRVTEST - VERZEICHNIS | Fehler

  • Überprüfen ob GUICTRL aktiv ist

    • svart
    • 22. September 2015 um 15:54

    Hat sich erledigt,

    ich stand auf dem Schlauch :D

  • Überprüfen ob GUICTRL aktiv ist

    • svart
    • 22. September 2015 um 15:48

    Hallo,

    ich würde gerne eine Funktion ausführen, wenn ENTER gedrückt wird und ein Inputfeld aktiv ist.

    Beispiel: Wenn ENTER gedrückt wurde und Input1 aktiv ist - soll eine Funktion ausgeführt werden.

    C
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    
    
    HotKeySet("{ENTER}","_test")
    $Form1 = GUICreate("TESTFENSTER", 234, 100, 237, 163)
    $Input1 = GUICtrlCreateInput("", 40, 24, 161, 21)
    $Input2 = GUICtrlCreateInput("", 40, 64, 161, 21)
    GUISetState(@SW_SHOW)
    
    
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    
    	EndSwitch
    WEnd
    
    
    func _test()
    	msgbox(0,"","TEST")
    EndFunc
    Alles anzeigen
  • ListView - gleiche Sortierung nach Refresh

    • svart
    • 1. September 2015 um 14:07

    Es bleibt nichts genauso wie vorher, die Werte ändern sich bzw. werden aktualisiert.
    Das Problem ist, wenn man etwas in der ListView sucht und die Liste sich aktualisiert ist die Sortierung falsch und man ist wieder am Anfang der Liste.

    Ich möchte die RDP-Sessions mehrerer Server auslesen und die Benutzer in einer ListView packen und z.B. alle 5 Sekunden aktualisieren.
    Im Prinzip ein Nachbau des Remotedesktopdienste-Manager.

  • ListView - gleiche Sortierung nach Refresh

    • svart
    • 1. September 2015 um 12:00

    Hallo,

    ich würde gerne eine Listview refreshen, die Sortierung soll nach dem Refresh genauso sein wie zuvor und auch die Position der Scrollbar soll gleich bleiben.

    Habt ihr eine Idee?

    Danke schon mal im Vorraus.


    Hier mal ein Beispiel:

    C
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GuiListView.au3>
    
    
    Opt("GUIOnEventMode", 1)
    
    
    local 	$aNames[8][2]
    		$aNames[0][0] = "Mustermann"
    		$aNames[0][1] = "Frank"
    		$aNames[1][0] = "Arndt"
    		$aNames[1][1] = "Stephanie"
    		$aNames[2][0] = "Zeppelin"
    		$aNames[2][1] = "Konrad"
    		$aNames[3][0] = "Musterfrau"
    		$aNames[3][1] = "Paula"
    		$aNames[4][0] = "Berndt"
    		$aNames[4][1] = "Sigmund"
    		$aNames[5][0] = "Alonso"
    		$aNames[5][1] = "Stephan"
    		$aNames[6][0] = "Henning"
    		$aNames[6][1] = "Marc"
    		$aNames[7][0] = "Kaufmann"
    		$aNames[7][1] = "Olaf"
    
    
    
    
    $Form1 		= 	GUICreate("", 376, 200, 192, 124)
    $ListView1 	= 	GUICtrlCreateListView("", 140, 40, 230, 100)
    				_GUICTRLListView_AddColumn($ListView1,"Name","100")
    				_GUICTRLListView_AddColumn($ListView1,"Vorname","100")
    _fillList()
    $Button1 	= 	GUICtrlCreateButton("Button1", 10, 40, 113, 33)
    GUICtrlSetOnEvent		(-1, "_refresh")
    
    
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($ListView1)]
    
    
    While 1
    	sleep(50)
    WEnd
    
    
    
    
    func _refresh()
    	$selected = _GUICtrlListView_GetSelectedIndices($ListView1)
    	_GUICTRLListView_DeleteAllItems($ListView1)
    	_fillList()
    	_GUICTRLListView_Setitemselected(GUICtrlGetHandle($ListView1),$selected,True,True)
    endfunc
    
    
    func _filllist()
    	for $i = 1 to 8
    		GUICtrlCreateListViewItem($aNames[random(1,8)][0] & "|" & $aNames[random(1,8)][1],$ListView1)
    	next
    EndFunc
    
    
    func _exit()
    	Exit
    endfunc
    
    
    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $iMsg, $iwParam
        Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
        $hWndListView = $listview1
    
    
        If Not IsHWnd($listview1) Then $hWndListView = GUICtrlGetHandle($listview1)
    
    
        $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
        $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
        $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
        $iCode = DllStructGetData($tNMHDR, "Code")
    
    
        If ($hWndFrom = $hWndListView) And ($iCode = $LVN_COLUMNCLICK) Then
            _GUICtrlListView_SimpleSort($hWndListView, $B_DESCENDING, DllStructGetData($tInfo, "SubItem"))
        EndIf
    
    
    EndFunc
    Alles anzeigen
  • RDP Sessions ausgeben

    • svart
    • 1. September 2015 um 08:10

    Falls jemand das selbe Problem hat:

    ich habe es statt WMI jetzt per Befehl: "quser" gelöst, geht deutlich schneller.

    Alternativ wäre es auch per Powershell mit dem Befehl "Get-TSSession" möglich.

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™