Wieso ungeeignet? Aufgrund des vorangehenden 'IP-Adresse...........:'? Das lässt sich doch ohne weiteres wegschneiden und die Ausgabe kann man auch in ein Array umwandeln.
Beiträge von funkey
-
-
Hab zwar nur einen Netzwerk-Adapter, aber hast du den Vorschlag von Andy schon probiert, mittels ipconfig an die Daten zu kommen?
[autoit]#include <Constants.au3>
[/autoit][autoit][/autoit][autoit]Local $PID = Run(@ComSpec & ' /c ipconfig /all|find "IP-Adresse"', "", @SW_HIDE, $STDOUT_CHILD)
[/autoit][autoit][/autoit][autoit]
Local $line
While 1
$line &= StdoutRead($PID)
If @error Then ExitLoop
WendMsgBox(0, "IP-Adressen:", $line)
[/autoit] -
Die PID ist immer variabel, aber den Titel des aktuellen Fensters erhälst du mit
[autoit]$Title = WinGetTitle("")
[/autoit]Die PID dazu erhälst du mittels
[autoit]$Pid = WinGetProcess($Title)
[/autoit] -
Freu mich auch schon auf die nächste Version!
Tolles Projekt
-
Sieht eigentlich ganz OK aus!?
-
Ganz meine Meinung!!
Herzlich willkommen im Club!
-
_FileListToArray gibt die Dateinamen zurück ohne den Pfad! Deswegen musst du bei FileGetTime auch den Pfad angeben!
Hättest du beim ersten Post gleich die Fehlermeldung mitgepostet, wäre es mir gleich aufgefallen

Spoiler anzeigen
[autoit]#Include <File.au3>
[/autoit]
#Include <Array.au3>
$logup = @scriptdir&"\logup.ini"
$array=_FileListToArray(@ScriptDir&"\logs\")
for $i = 1 to $array[0]
$t = FileGetTime(@ScriptDir&"\logs\" & $array[$i], 0)
$yyyymdhms = $t[0] & $t[1] & $t[2] & $t[3] & $t[4] & $t[5]
IniWrite($logup, $array[$i], "time", $yyyymdhms)
Next -
-
Entweder es gibt den Ordner nicht (1), oder er ist leer (4)!
Spoiler anzeigen
[autoit]#Include <File.au3>
[/autoit]
#Include <Array.au3>
$logup = @scriptdir&"\logup.ini"
$array=_FileListToArray(@ScriptDir&"\logs\")
If @error Then Exit MsgBox(16, "Fehler", @error)
for $i = 1 to $array[0]
$t = FileGetTime($array[$i], 0)
$yyyymdhms = $t[0] & $t[1] & $t[2] & $t[3] & $t[4] & $t[5]
IniWrite($logup, $array[$i], "time", $yyyymdhms)
Next -
Keine Ahnung ob ich dich richtig verstehe. Willst du Autoit-Skripts ausführen?
[autoit]ShellExecute("C:\Irgendein_Pfad\Irgendein_Skript.au3")
[/autoit] -
Run sollte funktionieren, wenn du den korrekten Pfad angibst. Probieren kannst du es aber auch mit ShellExecute.
-
PrideRage: Gutes Skript würde ich jetzt nicht unbedingt sagen. Hab mir einfach schnell ein paar Teile aus der Hilfe zusammengestöpselt.
Ich glaub ich kenne und skripte Autoit seit ca. 2 Jahren. Hab das Basiswissen alles aus der Hilfe und bin dann erst auf dieses hervorragende Forum gestoßen. -
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>GUICreate("slider", 220, 100, 100, 200)
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")$slider1 = GUICtrlCreateSlider(10, 10, 200, 20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlSetLimit(-1, 200, 0) ; change min/max value
$label = GUICtrlCreateLabel("", 10, 50, 50, 20)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($slider1, 45) ; set cursorDo
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSEFunc WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
[/autoit]
$nNotifyCode = BitShift($wParam, 16)
$nID = BitAND($wParam, 0x0000FFFF)
$Pos = GUICtrlRead($nID)
If $nID = $slider1 Then GUICtrlSetData($label, $Pos & "%")
EndFunc -
Wieso wetest du nicht die Error-Variable von _ArrayToString aus?! Dann weißt du was schief geht. Wahrscheinlich ist das Array 2-dimensional.
-
Wo ist TraySetState?
-
Probier es mal mit dieser Funktion. Hab sie für meien VNC-Logger geschrieben.
Spoiler anzeigen
[autoit]#include <Constants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <Array.au3>$aIP = _GetConnectionFromPort(443)
[/autoit] [autoit][/autoit] [autoit]_ArrayDisplay($aIP)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _GetConnectionFromPort($sPort = '5900')
[/autoit]
; funkey 17.06.2009
; gibt IP oder Namen eines verbundenen PC's abhängig vom Port zurück
; Standard-Port ist 5900 für VNC, 3389 wäre für Remotedesktop ('mstsc.exe')
Local $sErgebnis, $aPort
Local $pid = Run(@ComSpec & " /c " & 'netstat -np TCP |findstr ":'&$sPort&'"', "", @SW_HIDE, $STDOUT_CHILD)
Do
$sErgebnis &= StdoutRead($pid)
Until @error
$aPort = StringSplit($sErgebnis, @CRLF, 3)
For $i = UBound($aPort) - 1 To 0 Step -1
If StringInStr($aPort[$i], 'HERGESTELLT') Then
$aPort[$i] = StringRegExpReplace($aPort[$i], '(\s+)(\S+)(\s+)(\S+)(\s+)(\S+):(\S+)(\s+)(\S+)', '$6')
Else
_ArrayDelete($aPort, $i)
EndIf
Next
If Not IsArray($aPort) Then Return SetError(1, 0, "")
Return $aPort
EndFunc -
PrideRage: Natürlich ist das nützlich. Ich habe das schon öfters gebraucht. Habe dann immer die Version, die Bugfix gepostet hat hergenommen, aber die Variante mit GUIRegisterMsg($WM_CONTEXTMENU..) gefällt mir besser (obwohl es im Pronzip eh ziemlich gleich ist).
BugFix : Danke dass du eine andere Variante gepostet hast, somit kann unter diesem Thread mehr als eine Möglichkeit gefunden werden eine Rechtsklick-Auswertung einzubauen und jeder kann dann wählen was ihm lieber ist.
-
Hab heute eine einfache Möglichkeit entdeckt, wie man einfach Rechtsklicks auf verschiedene Controls auswerten kann.
Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit]Global $LV_FirstClick = 0
[/autoit] [autoit][/autoit] [autoit]Global $hGUI = GUICreate("Test Rechtsklick", 210, 300)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent(-3, '_Exit')
GUIRegisterMsg($WM_CONTEXTMENU, "WM_RECHTSKLICK")Global $Btn1 = GUICtrlCreateButton('Testbutton 1', 20,40)
[/autoit] [autoit][/autoit] [autoit]
Global $Btn2 = GUICtrlCreateButton('Testbutton 2', 120,40)
Global $Lbl1 = GUICtrlCreateLabel('Testlabel 1', 20,140)
Global $Lbl2 = GUICtrlCreateLabel('Testlabel 2', 120,140)Global $LV = GUICtrlCreateList('Zeile1', 20, 180, 170, 80)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData(-1, "Zeile2")
GUICtrlSetData(-1, "Zeile3")GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100000)
WEndFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc WM_RECHTSKLICK($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
Local $IDCtrl = _WinAPI_GetDlgCtrlID($iwParam)
Local $x = BitAND($ilParam, 0x0000FFFF), $y = BitShift($ilParam, 16)
Switch $IDCtrl
Case $Btn1, $Btn2, $Lbl1, $Lbl2
MsgBox(64, GUICtrlRead($IDCtrl), "Klickposition: " & $x & " / " & $y)
Case $LV
If Not $LV_FirstClick Then
MouseClick('left', $x, $y, 1, 0)
$LV_FirstClick = 1
MouseClick('right', $x, $y, 1, 0)
Else
$LV_FirstClick = 0
MsgBox(64, GUICtrlRead($IDCtrl), "Klickposition: " & $x & " / " & $y)
EndIf
EndSwitch
EndFunc ;==>WM_CONTEXTMENU -
Ich weiß grad nicht genau, was du erreichen willst.
Meine Vermutung: Eine neue Variable erzeugen, mit dem Windows-Verzeichnis als Basis.
Spoiler anzeigen
[autoit]MsgBox(0,"@WindowsDir", @WindowsDir)
[/autoit]
Global $WinDir = @WindowsDir & "\Fonts"
MsgBox(0,"$WinDir", $WinDir) -
Du hast doch bereits einen solchen Thread aufgemacht!!
Keine Doppelposts!!