Danke Danke, jetzt sieht das Skript zwar schöen und aus
aaaaaaaber, ich wollte ja wissen was genau dazugekommen ist oder gegenagen ist, also wie der Datei oder Ordnername ist
Falls es dir reicht kann ichs verstehen dann bekomme ich das schon irgendwie selbst hin
aber trd danke danke
Beiträge von Darnas
-
-
das eine Skript siehst du ja schon oben
hier z.B. noch eins (an dem ich noch arbeite, aber der test hast schon nicht geklappt:/)Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <array.au3>
#include <MsgBoxConstants.au3>HotKeySet("+!d", "_CloseIt") ;mit ESC kann Skript verlassen werden
[/autoit] [autoit][/autoit] [autoit]Func _CloseIt()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc;============Variablen============;
[/autoit] [autoit][/autoit] [autoit]
Global $Files_a ;$Path_s = InputBox("Pfad angegeben:","Gib den Pfad für den Ordner/Verzeichnis an","C:\AutoIt")
GLobal $Path_s = "C:\users\mschulz\desktop\Scripte\"
;_refreshIni(1)
;_refreshIni(0);===========Die Funktionen==========;
[/autoit] [autoit][/autoit] [autoit]Func _searchFiles()
[/autoit] [autoit][/autoit] [autoit]
$Files_a = _FileListToArray($Path_s,"*",1)
If IsArray($Files_a) Then
;_ArrayDisplay($Files_a,"Dateien für die ini")
_ArrayToClip($Files_a)
For $i = 1 to $Files_a[0]
$Pfad_s = IniRead("$Path_s&Test.ini","Allgemein","Dateien","")
If @error or not FileExists("$Path_s&Test.ini") then
IniWrite("$Path_s&Test.ini","Allgemein","Dateien",ClipGet())
EndIf
Next
EndIf
EndFunc#cs ;=========Die .ini erneuern========;
[/autoit] [autoit][/autoit] [autoit]
Func _refreshIni($iFlag)
If $iFlag = 1 OR $iFlag = 0 Then
$Files_a = _FileListToArray($Path_s,"*",$iFlag)
If IsArray($Files_a) Then
$ClipGet = _ArrayToString($Files_a)
If IniRead("C:\AutoIt\Test.ini","Allgemein","Dateien","not found") <> $ClipGet Then
IniWrite("C:\AutoIt\Test.ini","Allgemein","Dateien",$ClipGet)
If $iFlag = 1 Then
MsgBox($MB_ICONINFORMATION,"Info!","Datei wurde hinzugefügt")
Else
MsgBox($MB_ICONINFORMATION,"Info!","Ordner wurde hinzugefügt")
EndIf
EndIf
EndIf
Else
MsgBox($MB_ICONERROR,"Error!","_refreshIni mit falschem Parameter aufgerufen (0 oder 1)!")
EndIf
EndFunc#ce
[/autoit] [autoit][/autoit] [autoit];=========Die .ini erneuern========;
[/autoit] [autoit][/autoit] [autoit]
Func _refreshIni()
$Files_a = _FileListToArray($Path_s,"*",1)
If IsArray($Files_a) Then
$ClipGet = _ArrayToString($Files_a)
If IniRead("$Path_s&Test.ini","Allgemein","Dateien","not found") <> $ClipGet Then
IniWrite("$Path_s&Test.ini","Allgemein","Dateien",$ClipGet)
MsgBox($MB_ICONINFORMATION,"Info!","Ini file wurde verändert")
EndIf
For $a = 1 to $Files_a[0]
Next
EndIf
EndFuncWhile 1
[/autoit] [autoit][/autoit] [autoit]
_searchFiles()
sleep(1000)
_refreshIni()
Sleep(1000)
WEnd;==========Programm in die Registry reinschrieben, damit es beim Autostart startet===============;
[/autoit] [autoit][/autoit] [autoit]
#cs
Func _Regwrite()RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKEY", "REG_SZ", "TESTTEST")
[/autoit] [autoit][/autoit] [autoit]
RegDelete("HKEY_CURRENT_USER\Software\Test")EndFunc
[/autoit] [autoit][/autoit] [autoit]
#ce#cs
[/autoit] [autoit][/autoit] [autoit]
#include <MsgBoxConstants.au3>
#include <File.au3>_refreshIni(1)
[/autoit] [autoit][/autoit] [autoit]
_refreshIni(0);=========Die .ini erneuern========;
[/autoit] [autoit][/autoit] [autoit][/autoit]
Func _refreshIni($iFlag)
If $iFlag = 1 OR $iFlag = 0 Then
$Files_a = _FileListToArray($Path_s,"*",$iFlag)
If IsArray($Files_a) Then
$ClipGet = _ArrayToString($Files_a)
If IniRead("C:\AutoIt\Test.ini","Allgemein","Dateien","not found") <> $ClipGet Then
IniWrite("C:\AutoIt\Test.ini","Allgemein","Dateien",$ClipGet)
If $iFlag = 1 Then
MsgBox($MB_ICONINFORMATION,"Info!","Datei wurde hinzugefügt")
Else
MsgBox($MB_ICONINFORMATION,"Info!","Ordner wurde hinzugefügt")
EndIf
EndIf
EndIf
Else
MsgBox($MB_ICONERROR,"Error!","_refreshIni mit falschem Parameter aufgerufen (0 oder 1)!")
EndIf
EndFunc
#cevllt siehst du ja einen fehler
-
Das klingt logisch ^^,
aber wenn ich das skript in Scite selber ausführen kann, wieso geht das dann als exe nicht? -
jetzt spuckt er diesen Fehler aus:
For $x = 1 To $Files_a[0]
For $x = 1 To $Files_a^ ERROR
>Exit code: 1 Time: 2.161Ich Finde mich in mienen eigenen Skript kaum noch zurecht
########und hab mein Original auch noch verloren :o schei** autosafe##############
Habs wiedergefunden in den kommentaren, ich schick mal mehr reinso wie es jetzt ist, kommt eine meldung das die ini datei beschrieben wurden - ohne die infos die ich haben will:
Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <array.au3>
#include <MsgBoxConstants.au3>HotKeySet("+!d", "_CloseIt") ;mit ESC kann Skript verlassen werden
[/autoit] [autoit][/autoit] [autoit]Func _CloseIt()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc;============Variablen============;
[/autoit] [autoit][/autoit] [autoit]
Global $Files_a ;$Path_s = InputBox("Pfad angegeben:","Gib den Pfad für den Ordner/Verzeichnis an","C:\AutoIt")
GLobal $Path_s = "C:\users\mschulz\desktop\Scripte\"
;_refreshIni(1)
;_refreshIni(0);===========Die Funktionen==========;
[/autoit] [autoit][/autoit] [autoit]Func _searchFiles()
[/autoit] [autoit][/autoit] [autoit]
$Files_a = _FileListToArray($Path_s,"*",1)
If IsArray($Files_a) Then
;_ArrayDisplay($Files_a,"Dateien für die ini")
_ArrayToClip($Files_a)
For $i = 1 to $Files_a[0]
$Pfad_s = IniRead("$Path_s&Test.ini","Allgemein","Dateien","")
If @error or not FileExists("$Path_s&Test.ini") then
IniWrite("$Path_s&Test.ini","Allgemein","Dateien",ClipGet())
EndIf
Next
EndIf
EndFunc#cs ;=========Die .ini erneuern========;
[/autoit] [autoit][/autoit] [autoit]
Func _refreshIni($iFlag)
If $iFlag = 1 OR $iFlag = 0 Then
$Files_a = _FileListToArray($Path_s,"*",$iFlag)
If IsArray($Files_a) Then
$ClipGet = _ArrayToString($Files_a)
If IniRead("C:\AutoIt\Test.ini","Allgemein","Dateien","not found") <> $ClipGet Then
IniWrite("C:\AutoIt\Test.ini","Allgemein","Dateien",$ClipGet)
If $iFlag = 1 Then
MsgBox($MB_ICONINFORMATION,"Info!","Datei wurde hinzugefügt")
Else
MsgBox($MB_ICONINFORMATION,"Info!","Ordner wurde hinzugefügt")
EndIf
EndIf
EndIf
Else
MsgBox($MB_ICONERROR,"Error!","_refreshIni mit falschem Parameter aufgerufen (0 oder 1)!")
EndIf
EndFunc#ce
[/autoit] [autoit][/autoit] [autoit];=========Die .ini erneuern========;
[/autoit] [autoit][/autoit] [autoit]
Func _refreshIni()
$Files_a = _FileListToArray($Path_s,"*",1)
If IsArray($Files_a) Then
$ClipGet = _ArrayToString($Files_a)
If IniRead("$Path_s&Test.ini","Allgemein","Dateien","not found") <> $ClipGet Then
IniWrite("$Path_s&Test.ini","Allgemein","Dateien",$ClipGet)
MsgBox($MB_ICONINFORMATION,"Info!","Ini file wurde verändert")
EndIf
For $a = 1 to $Files_a[0]
Next
EndIf
EndFuncWhile 1
[/autoit] [autoit][/autoit] [autoit]
_searchFiles()
sleep(1000)
_refreshIni()
Sleep(1000)
WEnd;==========Programm in die Registry reinschrieben, damit es beim Autostart startet===============;
[/autoit] [autoit][/autoit] [autoit]
#cs
Func _Regwrite()RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKEY", "REG_SZ", "TESTTEST")
[/autoit] [autoit][/autoit] [autoit]
RegDelete("HKEY_CURRENT_USER\Software\Test")EndFunc
[/autoit] [autoit][/autoit] [autoit]
#ce#cs
[/autoit] [autoit][/autoit] [autoit]
#include <MsgBoxConstants.au3>
#include <File.au3>_refreshIni(1)
[/autoit] [autoit][/autoit] [autoit]
_refreshIni(0);=========Die .ini erneuern========;
[/autoit] [autoit][/autoit] [autoit][/autoit]
Func _refreshIni($iFlag)
If $iFlag = 1 OR $iFlag = 0 Then
$Files_a = _FileListToArray($Path_s,"*",$iFlag)
If IsArray($Files_a) Then
$ClipGet = _ArrayToString($Files_a)
If IniRead("C:\AutoIt\Test.ini","Allgemein","Dateien","not found") <> $ClipGet Then
IniWrite("C:\AutoIt\Test.ini","Allgemein","Dateien",$ClipGet)
If $iFlag = 1 Then
MsgBox($MB_ICONINFORMATION,"Info!","Datei wurde hinzugefügt")
Else
MsgBox($MB_ICONINFORMATION,"Info!","Ordner wurde hinzugefügt")
EndIf
EndIf
EndIf
Else
MsgBox($MB_ICONERROR,"Error!","_refreshIni mit falschem Parameter aufgerufen (0 oder 1)!")
EndIf
EndFunc
#cenicht wundern hab relativ viele notitzen, muss das gleich nochmal sortieren - sieht unübersichtlich aus
-
Also wenn ich dich richtig verstanden habe, soll das skript in etwa so ausssehen:
[autoit]msgbox(16,"test","test")
[/autoit]
das skript soll ich dann kompilieren und starten, gesagt - getan.
Funktioniert - d.h. mein Source is puttputt? was genau ist mein Source
sourcecode des skriptes oder von autoit? hab nicht die größte ahnung als kleiner NOObie
trd ty -
Bei dem Skript passiert jetzt nichts mehr außer das, das skript startet sich beide msgboxen nach einnander öffnen und dannach das skript beendet wird. - exit code 1 Time: 3.212
_refreshini()
^ERROR, hier klappt das nicht -
So wie du das Skript da verbessert hast, funktioniert es nicht.
Davon abgsehen das du einmal "endif" vergessen hast geht es trd nicht
Von Außen sieht es gut aus, ich weiß auch nicht wirklich woran es liegen könnte, hat aber was mit variable $flag zu tun denke ich, da sie ja erst später definiert wird.
Die Console sagt: "_refreshini() ^Error
Also bin ich wohl richtig mit meiner Vermutung?
und die Variable $MB_ICONERROR wird auch ganicht deklariert?
naja das skript läuft leider nicht zu dem zeitpunkt, falls du noch ne idee hast zum thema getclip und array to clip - wenn das skript läuft kann man nichts mehr kopieren, da die zwischenablage im sekundentakt mit dem Array gefüllt wird - sag es mir ich hätte an eine Temp datei gedacht die als zwischenablage fungiert -
Das Problem besteht immernoch, hab das es auf verschiedenen PC's Probiert, geht alles nicht.
Hab das selbe Problem auch mit anderen skripten und kanns mir nicht erklären, hätte anfangs gedacht es liegt eventuell an der antivir-software die ich bei mir aufn arbeit habe, aber auch zuhause geht es nicht..
Vllt fällt euch noch etwas ein -
Danke,
ich bekomme zwar die msgbox das etwas verändert wurde in dem Verzeichnis, aber ich möchte ja wissen was genau passiert, dh, z.B. "ein(e) Ordner/Datei ist dazu gekommen" "ein(e) Ordner/Datei wurde entfernt"kann ich das mit einer normalen msgbox realisieren oder müsste man extra ein GUI machen?
-
Moin Moin,
Ich bin grade dabei in Skript zur überwachung von Verzeichnissen zu schreiben und habe die Idee, das wenn meine Ini geändert wird, eine msgbox aufploppt und mir sagt was passiert bzw was neu ist.
Eventuell steh ich einfach nur auf dem schlauch grade weil ich schon seit'n paar Stunden zugange bin oder ich bin einfach nur blödSpoiler anzeigen
[autoit];===========Die Funktionen==========;
[/autoit] [autoit][/autoit] [autoit]Func _searchFiles()
[/autoit] [autoit][/autoit] [autoit]
$Files_a = _FileListToArray($Path_s,"*",1)
If IsArray($Files_a) Then
;_ArrayDisplay($Files_a,"Dateien für die ini")
_ArrayToClip($Files_a)
For $i = 1 to $Files_a[0]
$Pfad_s = IniRead("C:\AutoIT\Test.ini","Allgemein","Dateien","")
If @error or not FileExists("C:\AutoIT\Test.ini") then
IniWrite("C:\AutoIT\Test.ini","Allgemein","Dateien",ClipGet())
EndIf
Next
EndIf
EndFunc;=========Die .ini erneuern========;
[/autoit] [autoit][/autoit] [autoit]
Local $Files_aFunc _refreshIni()
[/autoit]
;IF FileFindNextFile("*.*") Then
$Files_a = _FileListToArray($Path_s,"*",1)
If IsArray($Files_a) Then
_ArrayToClip($Files_a)
IniWrite("C:\AutoIt\Test.ini","Allgemein","Dateien",ClipGet())
For $a = 1 to $Files_a[0]
Next
EndIf
;EndIf
EndFuncMir ist klar das das mit dem array to clip gedröse noch schlecht gelößt is, ist mir aber grade zuviel aufwand alles umzutippen
naja vllt habt ihr ja ne Idee wo man da noch ne Msgbox einbauen kann die nicht instand aufploppt bei jeden "refresh" des Ordners durch das skript, sondern nur beim erneuten Eintragen in die Ini -
nichtmal die console öffnet sich, es kommt einfach eine msgbox mit der überschrift: "AutoIt Error" und den inhalt: "Unable to open the script file."
würde als script ca so aussehen:
[autoit]msgbox(16,"Autoit Error","Unable to open the script file.")
[/autoit] -
Version 3.3.12.0
also die selbe wie du ....
das problem ist trd noch vorhanden.. vllt mal ein reinstall? -
Moin Leute,
Ich habe das Problem, dass ich mir ein kleines Script für die arbeit erstellt habe ( aus langeweile, ein kleines "formular" halt), und dieses nach dem Compilieren immer die Fehlermeldung "Unable to open the Script file." kommt
Wenn ich im editor bin und mit f5 das script starte geht es aber woran liegt das?Hier das Script:
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <MsgBoxConstants.au3>$text0 = Inputbox("Name eingeben","Dein Name")
[/autoit] [autoit][/autoit] [autoit]
$text = InputBox ("Eingabe","Geraetenamen eingeben:")
$text2 = Inputbox("Ausleihdauer angeben","Von:")
$text3 = Inputbox("Ausleihdauer angeben", "Bis:")
$ort = FileSaveDialog("Speichern...","","Text Documents (*.txt)",1)
$Enter = Send(@CRLF)While 1
[/autoit] [autoit][/autoit] [autoit]Filewrite($ort,$text0)
[/autoit] [autoit][/autoit] [autoit]
FileWrite($ort,@CRLF)
FileWrite ($ort,$text)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,"Unterschrift:")
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,@CRLF)
Filewrite($ort,$text2)
Filewrite($ort," - " & $text3)Local $sFilePath = FileOpenDialog("Print File", "", "Text Documents (*.txt)", 1)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Exit
Local $iIsPrinted = _FilePrint($sFilePath)
If $iIsPrinted Then
MsgBox($MB_SYSTEMMODAL, "", "The file was printed.")
Else
MsgBox($MB_SYSTEMMODAL, "", "Error: " & @error & @CRLF & "The file was not printed.")
EndIfWEnd
[/autoit] [autoit][/autoit] [autoit][/autoit]