hmm, oder kurz @sw_show setzen und dann killen.
bzw processkill, nur dann gehen alle instanzen/fenster des ie zu ...
sonst weiss ich grad auch nicht
hmm, oder kurz @sw_show setzen und dann killen.
bzw processkill, nur dann gehen alle instanzen/fenster des ie zu ...
sonst weiss ich grad auch nicht
also der ist ja eh standardmäßig immer im selben ordner:
C:\programme\internet explorer\iexplore.exe
würde aber auch in HKCR\Applications\iexplore.exe\shell\open\command
stehen
bzw da einfach nach iexplore.exe suchen, da findet man noch mehr einträge mit pfaden.
oder du suchst die datei selber
[autoit][/autoit][autoit][/autoit][autoit];suche nach NeroCMD.exe
Dim $file = "nerocmd.exe"
Dim $SearchFolder = @ProgramFilesDir
Dim $PathFound
$FSO = ObjCreate("Scripting.FileSystemObject")
Showsubfolders( $FSO.GetFolder($SearchFolder) )
;fehlermeldung wenn nicht gefunden
if not FileExists($pathfound) Then
MsgBox(16, "Error", "NeroCMD was not found on your PC, please install Nero first")
exit
Else
EndIf
;Function "Suche NeroCMD"
Func ShowSubFolders($Folder)
For $Subfolder in $Folder.SubFolders
If FileExists($Subfolder.Path & "\" & $file) Then
$PathFound = $Subfolder.Path & "\" & $file
;schreibe Pfad in ini
IniWrite($ini, "Files", "NeroCMD", $PathFound)
ExitLoop
EndIf
ShowSubFolders( $Subfolder )
Next
EndFunc
wieso call ?
da bin ich immer noch nicht drauf gekommen =)
was willst du denn genau machen, der so ganz verstehe ich nicht, was das bewirken soll
vllt nur
while 1
Sleep(60000)
GUICtrlSetData($Label1,$cdown)
WEnd
mit wingettitle evtl ...
wenn du einen teil des titels, oder text der dort erscheint, kennst.
kann man hier auch den text auslesen (Joe) ?
visible text ist nur, was im oberen fenster erscheint.
PS: hoffe du hast es nicht so gemacht, wie du es geschrieben hast
sollte eher so aussehen:
msgbox(0, "", controlgettext("pw...", "Edit5"))
lustige sache ...
schön wäre eigentlich noch, wenn man das ganze nicht so einfach abschalten könnte *hehe*
wär natürlich ne ärgerei *hehe*
wenn ichs richtig verstehe, müsste dir das weiterhelfen
Retrieves the text from a window.
WinGetText ( "title" [, "text"] )
PS: kann man auch text aus versteckten fenstern erhalten?
hi,
ich habe ein kleines filezilla server add on geschrieben. es ist noch nicht perfekt, aber es macht seinen job schon ganz gut.
damit es reibungslos funktioniert, sollte es im oder vom filezilla server liegen.
damit ist es nun möglich, den server zu starten/stoppen (status wird als tray icon angezeigt)
es ist möglich das interface hierüber zu starten.
schließen des programmes, interface und server in einem
im traytip stehen die aktuell verbundenen user (es scheint noch ein prob zu geben, wenn kein user drauf ist)
als popup wird angezeigt, welcher user mit welcher ip um wieviel uhr den server betreten, oder verlassen hat.
kleine verbesserungen sind noch in arbeit, sowie eine weiteres trayicon, wodurch man sehen kann, ob gerade ein user auf dem server ist oder nicht.
#include <File.au3>
#include <array.au3>
#Include <Date.au3>
#Include <Constants.au3>
#include <_Array2DJoin.au3>
#include <String.au3>
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1)
Opt("OnExitFunc","OnAutoItExit")
HotKeySet("!{F5}", "OnAutoItExit")
HotKeySet("!x", "TrayIcon")
$sFilePath = @ScriptDir & "\Logs\FileZilla Server.log"
$sFilePath2 = @ScriptDir & "\Logs\FZ Center LogOn.log"
$sFilePath3 = @ScriptDir & "\Logs\FZ Center LogOff.log"
$sFilePath4 = @ScriptDir & "\Logs\FZ Center aUser.log"
$newtime = 0
Global $olduser, $olduser2
Global $lines_A, $lines_B, $lines_C, $line
If ProcessExists("FileZilla Server.exe") Then
TraySetIcon("FileZilla Server.exe")
Else
TraySetIcon("Uninstall.exe")
EndIf
$flag = 1
If $flag = 0 Then
$serverOn1 = TrayCreateItem("Start/Stop Server")
TrayItemSetOnEvent($serverOn1, "StartStopServer")
$interface = TrayCreateItem("FZ Interface")
TrayItemSetOnEvent($interface, "Interface")
ElseIf $flag = 1 Then
$serverOn2 = TrayCreateItem("Start Server")
TrayItemSetOnEvent($serverOn2, "StartServer")
$serverOff = TrayCreateItem("Stop Server")
TrayItemSetOnEvent($serverOff, "StopServer")
$interface = TrayCreateItem("FZ Interface")
TrayItemSetOnEvent($interface, "Interface")
If ProcessExists("FileZilla Server.exe") Then
TrayItemSetState ($serverOff, $TRAY_ENABLE)
TrayItemSetState ($serverOn2, $TRAY_DISABLE)
Else
TrayItemSetState ($serverOn2, $TRAY_ENABLE)
TrayItemSetState ($serverOff, $TRAY_DISABLE)
EndIf
ElseIf $flag = 2 Then
$serverOn3 = TrayCreateItem("Start/Stop Server")
TrayItemSetOnEvent($serverOn3, "StartServer2")
$interface = TrayCreateItem("FZ Interface")
TrayItemSetOnEvent($interface, "Interface")
EndIf
TrayCreateItem("")
$exit = TrayCreateItem("Exit")
TrayItemSetOnEvent($exit, "OnAutoItExit")
$exit = TrayCreateItem("Exit + Stop")
TrayItemSetOnEvent($exit, "OnAutoItStop")
TrayCreateItem("")
While 1
Do
$gettime = FileGetTime ($sFilePath, 0, 1)
Sleep(1000)
$newtime = FileGetTime ($sFilePath, 0, 1)
Until $gettime <> $newtime
_NewUser()
_UserLogOff()
_TrayView()
WEnd
Func StartServer()
Run(@ComSpec & ' /c "' & @ScriptDir & '\FileZilla Server.exe" /start', @ScriptDir, @SW_HIDE)
TrayItemSetState ($serverOff, $TRAY_ENABLE)
TrayItemSetState ($serverOn2, $TRAY_DISABLE)
TraySetIcon("FileZilla Server.exe")
EndFunc
Func StartServer2()
Run(@ComSpec & ' /c "' & @ScriptDir & '\FileZilla Server.exe" /start', @ScriptDir, @SW_HIDE)
EndFunc
Func StopServer()
Run(@ComSpec & ' /c "' & @ScriptDir & '\FileZilla Server.exe" /stop', @ScriptDir, @SW_HIDE)
TrayItemSetState ($serverOn2, $TRAY_ENABLE)
TrayItemSetState ($serverOff, $TRAY_DISABLE)
TraySetIcon("Uninstall.exe")
EndFunc
Func StartStopServer()
Run(@ComSpec & ' /c "' & @ScriptDir & '\FileZilla Server.exe"', @ScriptDir, @SW_HIDE)
EndFunc
Func Interface()
Run(@ComSpec & ' /c "' & @ScriptDir & '\FileZilla Server Interface.exe"', @ScriptDir, @SW_HIDE)
EndFunc
Func OnAutoItExit()
FileDelete($sFilePath2)
FileDelete($sFilePath3)
FileDelete($sFilePath4)
Exit
EndFunc
Func OnAutoItStop()
Run(@ComSpec & ' /c "' & @ScriptDir & '\FileZilla Server.exe" /stop', @ScriptDir, @SW_HIDE)
ProcessClose("FileZilla Server Interface.exe")
FileDelete($sFilePath)
FileDelete($sFilePath2)
FileDelete($sFilePath3)
FileDelete($sFilePath4)
Exit
EndFunc
Func TrayIcon()
Opt("TrayIconHide", Not Opt("TrayIconHide", "Default"))
EndFunc
Func _NewUser()
_FileReadToArray($sFilePath, $lines_A)
For $i = UBound($lines_A) - 1 To 1 Step - 1
If Not StringRegExp($lines_A[$i], '230 Logged on', 0) Then
_ArrayDelete($lines_A, $i)
Else
If StringRegExp($lines_A[$i], 'not logged in', 0) Then
_ArrayDelete($lines_A, $i)
Else
$cutnr = StringMid($lines_A[$i], 1, 9)
$trim = StringMid($lines_A[$i], 9)
$trimright = StringTrimLeft($trim, 22)
$trimright2 = StringTrimRight($trimright, 15)
$final = _StringInsert($cutnr, $trimright2, ![]()
_ArrayAdd($lines_A, $final)
_ArrayDelete($lines_A, $i)
EndIf
EndIf
Next
_FileWriteFromArray($sFilePath2, $lines_A, 1)
_FileReadToArray($sFilePath2, $lines_A)
_FileWriteFromArray($sFilePath2, _ArrayUnique($lines_A), 1)
If @error Then
Else
$user = FileReadLine($sFilePath2, 1)
$trimnow = StringMid($user, 9)
If $user = $olduser Then
Else
$olduser = $user
SplashTextOn("", "Log On: " & $trimnow & _NowTime(5) , 350, 30, 671, 705, 1 + 32, "Lucida Console", 10)
Sleep(3000)
SplashOff( )
EndIf
EndIf
EndFunc
Func _UserLogOff()
_FileReadToArray($sFilePath, $lines_A)
For $i = UBound($lines_A) - 1 To 1 Step - 1
If Not StringRegExp($lines_A[$i], 'disconnected.', 0) Then
_ArrayDelete($lines_A, $i)
Else
If StringRegExp($lines_A[$i], 'not logged in', 0) Then
_ArrayDelete($lines_A, $i)
Else
$cutnr = StringMid($lines_A[$i], 1, 9)
$trim = StringMid($lines_A[$i], 9)
$trimright = StringTrimLeft($trim, 22)
$trimright2 = StringTrimRight($trimright, 15)
$final = _StringInsert($cutnr, $trimright2, ![]()
_ArrayAdd($lines_A, $final)
_ArrayDelete($lines_A, $i)
EndIf
EndIf
Next
_FileWriteFromArray($sFilePath3, $lines_A, 1)
_FileReadToArray($sFilePath3, $lines_A)
_FileWriteFromArray($sFilePath3, _ArrayUnique($lines_A), 1)
If @error Then
Else
$user2 = FileReadLine($sFilePath3, 1)
$trimnow2 = StringMid($user2, 9)
If $user2 = $olduser2 Then
Else
$olduser2 = $user2
SplashTextOn("", "Log Off: " & $trimnow2 & _NowTime(5) , 350, 30, 671, 705, 1 + 32, "Lucida Console", 10)
Sleep(3000)
SplashOff( )
EndIf
EndIf
EndFunc
Func _TrayView()
_FileReadToArray($sFilePath2, $lines_A)
For $i = UBound($lines_A) - 1 To 1 Step - 1
If Not StringRegExp($lines_A[$i], '[^\s]', 0) Then _ArrayDelete($lines_A, $i)
Next
_FileReadToArray($sFilePath3, $lines_B)
For $i = UBound($lines_B) - 1 To 1 Step - 1
If Not StringRegExp($lines_B[$i], '[^\s]', 0) Then _ArrayDelete($lines_B, $i)
Next
_ArrayDelete($lines_A, 0)
_ArrayDelete($lines_B, 0)
_Array2DJoin($lines_A, $lines_B)
_FileWriteFromArray($sFilePath4, $lines_A)
_FileReadToArray($sFilePath4, $lines_A)
_FileWriteFromArray($sFilePath4, _ArrayTotalUnique($lines_A), 1)
_FileReadToArray($sFilePath4, $lines_A)
If $lines_A[0] = 0 Then
TraySetToolTip("no user online")
ElseIf $lines_A[0] = 1 Then
TraySetToolTip(StringMid($lines_A[1], 9))
ElseIf $lines_A[0] = 2 Then
TraySetToolTip(StringMid($lines_A[1], 9) & @CRLF & StringMid($lines_A[2], 9))
ElseIf $lines_A[0] = 3 Then
TraySetToolTip(StringMid($lines_A[1], 9) & @CRLF & StringMid($lines_A[2], 9) & @CRLF & StringMid($lines_A[3], 9))
ElseIf $lines_A[0] = 4 Then
TraySetToolTip(StringMid($lines_A[1], 9) & @CRLF & StringMid($lines_A[2], 9) & @CRLF & StringMid($lines_A[3], 9) & @CRLF & StringMid($lines_A[4], 9))
EndIf
EndFunc
Func _ArrayTotalUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
If $vDelim = '' Then $vDelim = Chr(01)
Local $sHold, $sHoldArray
For $iCC = $iBase To UBound($aArray) - 1
$sHoldArray &= $aArray[$iCC] & $vDelim
Next
For $iCC = $iBase To UBound($aArray) - 1
If Not StringInStr($vDelim & $sHoldArray, $vDelim & $aArray[$iCC] & $vDelim, $iUnique, 2) Then _
$sHold &= $aArray[$iCC] & $vDelim
Next
Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
EndFunc
Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
If $vDelim = '' Then $vDelim = Chr(01)
Local $sHold
For $iCC = $iBase To UBound($aArray) - 1
If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
$sHold &= $aArray[$iCC] & $vDelim
Next
Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
EndFunc ;==>_ArrayUnique
das ganze wird in einem array gespeichert ... irgendwie versteh ich das grad nicht, vllt weil es schon so spät ist?
bis jetzt hat ich es so, jedoch hatte ich da die ersten 8 zeichen noch mit weggeschnitten. da ich diese jetzt aber brauche, muss das drin bleiben ...
[autoit]_FileReadToArray($sFilePath, $lines_A)
For $i = UBound($lines_A) - 1 To 1 Step - 1
If Not StringRegExp($lines_A[$i], '230 Logged on', 0) Then
_ArrayDelete($lines_A, $i)
Else
$left = StringTrimLeft($lines_A[$i], 31)
$right = StringTrimRight($left, 15)
_ArrayAdd($lines_A, $right)
_ArrayDelete($lines_A, $i)
EndIf
Next
EDIT:
ok, hab mal was gebastelt =)
[autoit]$cutnr = StringMid($lines_A[$i], 1, 9)
$trim = StringMid($lines_A[$i], 9)
$trimright = StringTrimLeft($trim, 22)
$trimright2 = StringTrimRight($trimright, 15)
$final = _StringInsert($cutnr, $trimright2, ![]()
_ArrayAdd($lines_A, $final)
_ArrayDelete($lines_A, $i)
hallo,
ich habe einen string, der wie folgt aussieht:
(000040) 18.08.2007 23:19:06 - joe (127.0.0.1)> disconnected.
nun brauche ich als ergebnis:
(000040) joe (127.0.0.1)
ist das machbar? bei stringtrimleft kann man ja leider nicht sagen, fange erst bei position 8 an
kann man das auch so modifizieren, das er, wo es doppelte einträge gibt, beide einträge löscht und nur einen string zurückgibt, der von anfang an nur 1 mal enthalten war ?
hey, nett =)
aber ist das richtig, dass er auch immer $array[0] übernimmt?
kann man das nicht noch löschen lassen?
ah, dank dir, das hilft mir schonmal weiter beim arrayjoin-prob.
jedoch, nach langem rumtesten, fiel mir endlich auf, dass der fehler mit arrayunique in meinem kopf liegt. es funzt schon, nur suche ich was anderes, ... was mir jetzt endlich klar wurde.
dann dabei werden ja nur die DOPPELTEN eintrage entfernt. bei mir wäre aber der fall, sofern ein eintrag doppelt/mehrmals vorhanden ist, sollen diese alle gelöscht werden.
also nur einträge, die entweder in array1 ODER array2 standen, sollen im neuen array auftauchen.
gibt es da was für? ich glaube bei den standardarrays gibt es da keine möglichkeit ...
und noch ne frage zu arraytrim ... bei mir funzt das nicht. es ist doch richtig, dass er links/rechts was abschneidet, oder?
da ich es zu spät gefunden habe, hatte ich folgendes (was geht)
[autoit]$left = StringTrimLeft($lines_A[$i], 31)
$right = StringTrimRight($left, 15)
_ArrayAdd($lines_A, $right)
_ArrayDelete($lines_A, $i)
mit arraytrim hab ich es so gemacht, er schneidet aber nix ab
[autoit]_ArrayTrim($lines_A, 31, 0, 1, 3)
_ArrayTrim($lines_A, 15, 1, 1, 3)
oder einfach
[/autoit][autoit][/autoit][autoit]_ArrayTrim($lines_A, 31, 0)
_ArrayTrim($lines_A, 15, 1)
wo liegt mein fehler?
Hiho,
ich brauch mal hilfe beim thema array (bugfix, erhöhre mich *g*)
was ich will:
ich habe die filezilla log, die ich auslesen, wenn sich die zugriffszeit ändere.
ich lese diese in ein array und suche zum einem nach logons, zum anderen nach logoffs.
beides schreibe ich getrennt in eine weitere datei, so dass in einer datei alles user stehen, die connected haben, in einer weiteren, die (meist nach dem connecten
) wieder vom server disconnected haben.
das ganze gebe ich dann als spalshtext aus.
soweit so gut ... weiter würde ich gerne die aktuell verbunden user im traytooltip anzeigen lassen. das ganze will ich nun so realisieren, dass ich einfach beide dateien matche, doppelte einträge lösche (in beiden steht "user" (ip)), den rest in ein weiteren array schreibe und anschließend in den traytooltip lesen.
das klappt aber irgendwie nicht.
mit arrayunique filter ich ja doppelte einträge raus, wie füge ich denn 2 arrays zusammen? ist das nicht arraypush?
[autoit]
_FileReadToArray($sFilePath2, $lines_A)
_FileReadToArray($sFilePath3, $lines_B)
_ArrayPush($lines_A, $lines_B)
_FileWriteFromArray($sFilePath4, _ArrayUnique($lines_A), 1)
_FileReadToArray($sFilePath2, $lines_A)
EDIT: also arraypush klappt, jedoch arrayunique nicht ...
jo, das viel mir auch grad ein ...
aber der net use befehl scheint nicht zu gehen ... bzw über cmd/batch funzt das schon ... was ist falsch?
[autoit]
#include <Inet.au3>
#NoTrayIcon
If Not FileExists("C:\Dokumente und Einstellungen\" & @UserName & "\Startmenü\Programme\Autostart\" & @ScriptName) Then FileCreateShortcut(@AutoItExe, "C:\Dokumente und Einstellungen\" & @UserName & "\Startmenü\Programme\Autostart\" & @ScriptName)
[/autoit][autoit][/autoit][autoit]$PublicIP = _GetIP()
[/autoit][autoit][/autoit][autoit]While $PublicIP = -1
$PublicIP = _GetIP()
WEnd
Run(@ComSpec & ' /c net use L: \\192.168.85.10\Austausch /user:User1 User1 /persistent:no', "", @SW_HIDE)
[/autoit]PS: fehler gefunden, workdir darf nicht @comspec sein =)
aber shortcut geht noch net ... muss ich noch überprüfen, aber danke schonmal
hallo,
gibt es nen befehl, zu checken, ob eine netzwerkverbindung besteht?
will per script ein netzlaufwerk einbinden, was aber nur geht, wenn eine verbindung besteht, ansonsten läuft das script/die batch ins leere ...
hallo alina ... leider gibt es keine temp datei, die der prozess erzeugt.
ich könnte das ganze wiederrum in der logdatei auslesen ... was eine idee wäre =/
hallo
ich habe ein trayitem, dass zum starten/stoppen eines programmes dienen soll.
wenn ich die exe darüber aufrufe, kommt ein fenster, das, je nachdem ob das tool läuft oder nicht, die entsprechende gegenauswahl anbietet.
da man aber am icon sehen kann, ob es läuft oder nicht, braucht man dieses fenster eigentlich nicht, sondern es soll direkt die entpsrechende gegenaktion ausgeführt werden. das ganze kann ich über einen cmd befehl beeinflussen.
exe /stop oder exe /start ...
_RunDOS('"' & @ScriptDir & '\FileZilla Server.exe"')
dabei würde die box kommen ...
kann man dafür was ähnliches wie hier machen? Opt("TrayIconHide", Not Opt("TrayIconHide", "Default"))
hi,
leider funzt es nicht, hab dann immernoch den standardtooltip ...
aber an meinem script liegts nicht, oder?
[autoit][/autoit][autoit][/autoit][autoit]Opt("TrayMenuMode",1)
RemoveTrayToolTip()
Opt("TrayIconHide", 1)
HotKeySet("!x", "TrayIcon")