Willkommen und viel Spaß hier
Beiträge von Orion
-
-
Hi,
Du musst den Pfad in Anführungszeichen setzen.
$files = _FileListToArray("C:\Users\Pascal\Music")
LG
-
Viel spass hier
-
Schande über uns, das es keiner gemerkt hat
[size=8]Ich habe den Thread ja erst jetzt gesehen
-
Viel spass bei uns Nadine
-
Das freut mich.
Wenn sonst alles klar ist, kannst du den Thread auf gelöst setzen.
Aber auf jeden Fall musst du mal das Thema ändern.... "Geschrieben abfragen" hört sich ja grausig an :wacko:
-
Sodala
Jetzt geht es. Du musst dann halt noch schauen, wie du es weiter benutzen kannst. Weiss nicht, wie sich meine Lösung mit deinen weiteren Absichten verträgt
Doch zumindest geht es jetzt. Es gäbe sicher noch andere Lösungen, aber die hier Funktioniert auchUnd ApirinJunkie
Cooles Ding.Vlt. brauche ich das auch mal irgendwann.
#include <WinAPI.au3>
Global Const $s_Path = FileGetLongName("C:\") ; hier den zu prüfenden Pfad eintragen
If Not FileExists($s_Path) Then Exit MsgBox(48, "Fehler", "Pfad " & $s_Path & " existiert nicht!")Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)Global Const $SHCNE_RENAMEITEM = 0x0001 ; Änderung von Dateinamen
Global Const $SHCNE_CREATE = 0x0002 ; Erstellung von Dateien
Global Const $SHCNE_DELETE = 0x0004 ; Löschen von Dateien
Global Const $SHCNE_MKDIR = 0x0008 ; Erstellung von Ordnern
Global Const $SHCNE_RMDIR = 0x0010 ; Löschen von Ordnern
Global Const $SHCNE_UPDATEDIR = 0x1000 ; Änderungen in einem Pfad
Global Const $SHCNE_UPDATEITEM = 0x2000 ; Änderungen in einer Datei
Global Const $SHCNE_UPDATEIMAGE = 0x8000
Global Const $SHCNE_RENAMEFOLDER = 0x20000
Global Const $SHCNE_ALLEVENTS = 0x7FFFFFFF ; weitere siehe http://msdn.microsoft.com/en-u…op/bb762118(v=vs.85).aspxGlobal $h_Shell32DLL = DllOpen("shell32.dll")
; Registriert ein FileSystemEvent mit einer AutoIt-Callback-Funktion
Global $SHRegister = RegisterFSEvent($s_Path, $SHCNE_CREATE, "EvaluateEvents", True); Erstelle ein Tray-Menü fürs Beenden
OnAutoItExitRegister("Raus")
TrayCreateItem("Beenden")
TrayItemSetOnEvent(-1, "Beenden"); Endlosschleife damit AutoIt die meiste Zeit über pausiert ist (Beenden über das Tray-Icon möglich)
Do
Sleep(500)
Until 0; Funktion die aufgerufen wird wenn ein Event auftritt:
Func EvaluateEvents(Const $hWndGUI, Const $MsgID, Const $wParam, Const $lParam)
Local $h_pidl = DllStructCreate("PTR; PTR", $wParam)
Local $a_Ret = DllCall($h_Shell32DLL, "BOOLEAN", "SHGetPathFromIDListW", "ptr", DllStructGetData($h_pidl, 1), "wstr", "")
Local $s_Path = $a_Ret[2]Switch $lParam ; Welche Art von Event ist aufgetreten?
Case $SHCNE_CREATE ; Wenn ein Element nur vom Inhalt her geändert wurde
$verboteneDatenendungen = FileRead("endungverboten.txt")
$verboteneDatenendungensplitt = StringSplit($verboteneDatenendungen, '|', 0)
For $i = 1 To $verboteneDatenendungensplitt[0]
If StringInStr($s_Path, $verboteneDatenendungensplitt[$i]) Then
MsgBox(0, "Datei lassen", "Nicht da es auf der Liste ist :)") ;<------- Wenn auf Liste (Danach mit Return Funktion verlassen); Hier auch anderer Code möglich, Achtung auf das Return!!
Return ;<----------------------------------------------------------------------------------------------------------------------------------------------------- Solltest du Werte zurückgeben wollen.
EndIf
Next
MsgBox(0, "Datei erstellt", "Folgender Date wurde erstellt: " & $s_Path) ;<---- Wenn nicht ; Hier auch anderer Code möglich
EndSwitch
EndFunc ;==>EvaluateEvents; registriert ein FileSystemEvent eines Pfades mit einer Funktion
Func RegisterFSEvent(Const $s_Path, Const $d_Events, Const $s_CallBackFunc, Const $bRecursive = True)
Local $h_MyWinMsg = _WinAPI_RegisterWindowMessage("irgendwas")
Local $h_GUI = GUICreate("")
GUIRegisterMsg($h_MyWinMsg, $s_CallBackFunc)Local $h_PIDLIST = DllCall($h_Shell32DLL, "PTR", "ILCreateFromPathW", "WSTR", $s_Path)
Local $strct_SHChangeNotifyEntry = DllStructCreate("PTR pidl; BOOLEAN fRecursive")
DllStructSetData($strct_SHChangeNotifyEntry, 1, $h_PIDLIST[0])
DllStructSetData($strct_SHChangeNotifyEntry, 2, $bRecursive)Local $SHRegister = DllCall($h_Shell32DLL, "int", "SHChangeNotifyRegister", _
"HWND", $h_GUI, _
"INT", 0x0003, _
"LONG", $d_Events, _
"UINT", $h_MyWinMsg, _
"INT", 1, _
"ptr", DllStructGetPtr($strct_SHChangeNotifyEntry))
DllCall("ole32.dll", "none", "CoTaskMemFree", "ptr", $h_PIDLIST[0])
Return $SHRegister
EndFunc ;==>RegisterFSEventFunc Beenden()
Exit
EndFunc ;==>BeendenFunc Raus()
DllCall($h_Shell32DLL, "BOOLEAN", "SHChangeNotifyDeregister", "ULONG", $SHRegister[0])
DllClose($h_Shell32DLL)
EndFunc ;==>Raus -
Das ist nicht mein Problem
Ich habe dir den Teil gegeben und ApirinJunkie den anderen, meiner klappt und ich denke der von AspirinJunkie auch, wenn du ihn richtig verwendest...
-
Was klappt nicht?
Den Teil den ich dir gegeben habe muss klappen O.o Oder habe ich was übersehen?
Vom Rest weiss ich nicht, ob er geht oder was du gemacht hast. -
-
Mach doch was du willst... Kein Bock mehr
//Edit: ja, nenne es ruhig um, sollen aber aber alle wissen was da vorher stand!
GUICtrlCreatePic("", 0, 180, "width=height=0")
sowas z.B.
Lass mich hier doch nicht blöd anmachen, nur weil du zu doof bist.
-
Zitat von i2c
Doch noch was zu lachen heute....
Hehe Bitte doch.
Zitat von waterSoweit ich das überblicke, wird "Sally" nur in der Schweiz verwendet.
Das stimmt, und ich lebe an der Schweizer grenze
Zitat von XorianatorHallo wissensdurstiger Orion.
Da du anscheinend - völlig - lernresistent bist, und meinen Link, den ich dir vor etwa 2 Monaten mal in der SB postete, gekonnt ignorierst, hier nochmal:
http://de.wikipedia.org/wiki/Gru%C3%9Ffo…ache)#Beispiele
Dort bitte runterscrollen zu "Fremdsprachlich", da wirst du sehen, dass du es völlig falsch schreibst. Das habe ich dir schon 100 Mal eingetrichtert, aber das kapierst, oder willst du, nicht kapieren.Hach ja, warum war das so klar, dass du hierzu einen Kommentar abgibst?:P
Du wirst das sowieso nie blicken... Kannst dich nur auf Fakten im Internet stützen, aber du wohnst weder hier noch sonst was, also sei ruhig....Und Ich schreibe das so, wie ich es denke und es will
Macht es nicht gerade dieser Umstand so interessant?
-
Sally,
So, nun erstelle ich mal diesen Thread, für alle die mich in der SB immer nach dem Wort "Sally" fragen.
Zumal hatten ein paar die Idee, das ich es machen soll. Nun, hier ist erNun, ich verwende das als eine Art Begrüßung, das Wort Sally komm aus meinem Dialekt. Dem Alemannischen Dialekt.
manche behaupten auch man schreibe dies anders, z.B. "Salli" oderZitat von Andyjetzt weiss ich auch, an was mich das erinnert, "salü" (frz. salut)
Da ich selber nicht weiß, wie man es schreibt
Schreibe ich es halt so, weil es für mich so am schlüssigsten erscheint
Ich verwende diese Begrüßung eig. so gut wie immer wenn ich ins Forum komme (Außer am Morgen oder Abend) und wenn jemand anderes hereinkommt.
Nach einer Idee von James nur wenn sich jmd. mit dem Wort "Moin" oder Abwandlungen davon meldet.
Sollte jetzt aber jeder auf die Idee kommen auf eine alternative Begrüßung auszuweichen, sehe ich mich gezwungen diese Regel zu brechenNun ja, jetzt kommen hoffentlich keine fragen mehr in der SB zu dem ominösen Wort/Begrüßung "Sally"
Wie immer mit lieben Grüßen,
euer,
Orion -
Kein Plan, was du vorhast...
Es Antwort wahrscheinlich niemand, da an deinem Skript so gut wie alles falsch ist.Auch fehlt offensichtlich der so einiges.
-
Kann es grad nicht testen, aber du musst doch nur alle inputs und variablen wieder leeren?
Und ne neue Zufallszahl berechnen lassen.Oder liege ich da falsch?
//Edit: Jo genau
-
Kein Plan, was du machen willst o. O
Aber das was du machst ist falsch.
Hilfe zu IniRead und den allgemeinen Aufbau einer INI anschauen. -
Nun ja, kein Plan was du vorhast noch warum.
Aber wenn das für dich so funktioniert ist ja gut -
So z.B.
Switch $lParam ; Welche Art von Event ist aufgetreten?
Case $SHCNE_CREATE ; Wenn ein Element nur vom Inhalt her geändert wurde
$verboteneDatenendungen = FileRead("endungverboten.txt")
$verboteneDatenendungensplitt = StringSplit($verboteneDatenendungen, '|', 0)
For $i = 1 To $verboteneDatenendungensplitt[0]
If StringInStr($verboteneDatenendungensplitt[$i], $s_Path) Then
MsgBox(0, "Datei lassen", "Nicht da es auf der Liste ist :)")
Else
MsgBox(0, "Datei erstellt", "Folgender Date wurde erstellt: " & $s_Path)
EndIf
Next
EndSwitchWas du weiter machen willst, weiß ich nicht.
-
Pfu...
StringSplit liefert ein Array zurück.
Also musst du dann die einzelnen Elemente durchgehen und mit dem path vergleichen -
Ja, vielleicht solltest du dir mal die Hilfe zu StringSplit ansehen.
Außerdem hat du noch nicht das mit der Datei öffnen berücksichtigt.
Zitat von Meiner WenigkeitDu musst die Datei nicht zum einmaligen lesen öffnen. Wenn doch, dann auch wieder schlissen.