Hallo,
meinst du nicht es reicht einmal GUICtrlRead ![]()
_RunDOS("start " & $pfad & GUICtrlRead($List_Folder))
[/autoit]eddy_erpel
Hallo,
meinst du nicht es reicht einmal GUICtrlRead ![]()
_RunDOS("start " & $pfad & GUICtrlRead($List_Folder))
[/autoit]eddy_erpel
Hi,
das kannst du so einbauen:
runwait("msiexec.exe /package " & @ScriptDir & "\PDFCreator\PDFCreator.msi")
[/autoit]
eddy_erpel
Hallo,
bei mir kommt diese Fehlermeldung nicht (Benutze V3.2.0.1 & Beta V3.2.1.5)
Warum kopierst du denn die Datei nicht mit der Funktion FileCopy() ???
ProgressBar ist zwar cool, aber will der User wirklich den ganzen CopyJob mitverfolgen? (Vielleicht um jeweils bei 99% Abbrechen zu drücken
)
eddy_erpel
Hi,
die Befehle heissen ja nicht wirklich anderst in AutoIt als in deinem Bsp... Aber wollen wir mal nicht so sein:
dim $pool[37]=["","a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
dim $output
For $i=0 to UBound($pool)-1
For $j=0 to UBound($pool)-1
For $k=0 to UBound($pool)-1
if ($i=0 and $j=0 and $k<>0) Or ($i<>0 and $j <>0) then
ConsoleWrite($pool[$i] & $pool[$j]&$pool[$k] & @CRLF)
EndIf
Next
Next
Next
eddy_erpel
Hi,
das Problem ist, dass Du $Input bereits vor der Schlaufe gesetzt hast und somit bei einer Eingabe in das Feld $Input nicht neu gesetzt wird ![]()
eddy_erpel
Hallo,
die Seite kann man mit InetGet() lokal herunterladen und danach per FileOpen() durchsuchen. (Vielleicht gibt es ja auch eine elegantere Methode ?()
eddy_erpel
@huggy
Mit der MsgBox hast du natürlich recht. Hatte ich nur rasch zum Test eingefügt.
Was an meiner Version besser ist? Ganz einfach: Das erste Programm läuft während diesen 5 Min mehr als einmal ab. Da sehe ich mit sleep ziemich schwarz. Falls das erste Programm auch nur einmal laufen müsste, würde es auch mit sleep gehen wobei dann die Laufzeit des Skriptes berechnet werden müsste um möglichst genau an 5 min heranzukommen
(Bsp. Laufzeit erstes Prog. 2Min + 5Min sleep= Run 2. Prog. nur alle 7 Min)
eddy_erpel
Hallo,
dazu fällt mir im Moment nur TimerInit(), bzw. TimerDiff() ein.
$Timer = TimerInit()
HotKeySet("+{ESC}","Terminate") ;Setze HotKey für Programbeendung (Shift + Esc)
While 1
;Hier kommt das Bisherige Program hin
If TimerDiff($Timer)>300000 Then
;Hier kommt das nach 5 Min auszuführen ist hin
$Timer = TimerInit()
EndIf
WEnd
func Terminate()
Exit
EndFunc
eddy_erpel
Hallo,
hast du denn mehr als eine Section definiert im INI-File. Denn Arrays beginnen bei 0. Für $array[1] musst du also "dim $array[2]" definiert haben.
$result = IniReadSectionNames ("targets.ini")
$c = $result[0]
Dim $tasks[$c][$c]
for $i=1 to $result[0]
$data = IniReadSection ("targets.ini",$result[$i])
MsgBox(0,"",$result[$i])
$tasks[1][1]=123
MsgBox(0,$result[$i],$tasks[0][0])
Next
eddy_erpel
Hallo,
Die Zeile ConsoleWrite ist überflüssig und bei FileClose sollte immer das FileHandle geschlossen werden, welches mit FileOpen geöffnet wurde, also FileClose($remote_ak) bzw. FileClose($remote_de).
ZitatSteht Aktivieren als letzte wird alles unter Aktivieren erstellt und unter Deaktivieren nur "_de.cmd". Umgedreht genauso...
Soll das bedeuten, dass das zweite nur die Datei ohne Inhalt erstellt oder wie soll ich das verstehen?
eddy_erpel
Hallo,
ich habe mir die ganze Sache nochmals angeschaut.
Ich verwende dieses Skript:
;#NoTrayIcon
; Hier kann ein Hotkey zum Beenden des Programms festgelegt werden
; in Anführungszeichen vorm Komma, z. Z. ALT+SHIFT+Q
HotKeySet("+!q", "Quit")
;Ist der Ordner C:\Temp\Workflow vorhanden?
If FileExists("C:\Temp\Workflow") Then
; Alle Dateien/Ordner wo schon vorhanden sind werden vorher gelöscht
FileDelete("C:\Temp\Workflow")
DirRemove("C:\Temp\Workflow\gedruckt", 1)
Else
; Erstellen des Workflows Ordners, nachdem festgestellt wurde, das der Ordner fehlt
DirCreate("C:\Temp\Workflow")
; !Testschreiben! Schreibe in die INI, das der Ordner erstellt wurde
;IniWrite("C:\Programme\FreePDF_XP\Workflow-Druck.ini", "Ordner erstellt", "Ordner", "1")
EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];Pfad zu Gsview
$program = "c:\Programme\Ghostgum\gsview"
; Pfad der auf neue Dateien überwacht werden soll
$source = "C:\Temp\Workflow\"
; Pfad, in den die Dateien nach dem Drucken verschoben werden sollen
;$dest = "C:\Temp\Workflow\gedruckt"
; Dauer des Prüfintervalls in Millisekungen (10 Sek = 10000)
$interval = 1000
While 1
Sleep($interval)
$file=FileFindFirstFile ($source & "*.pdf")
$pdffile=FileFindNextFile($file)
if $pdffile<>"" Then
RunWait('"' & $program & '\gsprint.exe" "' & $source & $pdffile & '"')
FileClose($file)
FileDelete($source & $pdffile)
EndIf
Wend
Func Quit()
Exit
EndFunc
Exit
Ich verwende Win XP, Autoit-Version 3.2.0.1, Ghostscript 8.53 & GSview 4.8.
Habe es nun mehrfach getestet mit allen möglichen Konstellationen und es nicht aus den Bahnen werfen können.
Ich hoffe, dass der Fehler lokalisierbar ist, sonst weiss ich langsam nicht mehr weiter ![]()
eddy_erpel
Hallo,
/EDIT Woher dieser Fehler kommt, sehe ich gerade nicht...
Wie lange sollte denn die Schleife laufen, bzw, was ist die Abbruchbedingung?
eddy_erpel
Hi,
habe auch gerade keine zündende Idee. Vielleicht stellt er ja irgend ein anderes Zeichen als ° dar. Probier mal alle durch:
For $i = 0 to 255
filewrite($port, $i & ":" & chr($i))
Next
eddy_erpel
Hallo,
ja das hat schon seine Richtigkeit. Das erste Element beinhaltet die Anzahl Elemente des Arrays. Steht aber alles in der Hilfe unter _FileReadToArray.
Vielleicht hilf dir dieses Beispielt weiter:
#include<file.au3>
dim $array
_FileReadToArray("C:\TEST.TXT",$array) ;Alles in ein Array einlesen
for $i=1 to $array[0]
$file=FileOpen("C:\" & $array[$i],2) ;Für jede enthaltenes Element im Array ein File erzeugen mit desen Namen
ConsoleWrite($file)
FileWriteLine($file,"copy xy.txt " & $array[$i] & " \xy.txt")
FileClose($file)
Next
eddy_erpel
Hallo,
vielleicht hilft dir das weiter:
#include <File.au3>
$InputFilePath="C:\TEST.TXT"
$OutputFilePath="C:\Result.txt"
$PST_SubPath="\Outlook"
$PST_Name="\Outlook.pst"
dim $aArray, $Output
_FileReadToArray($InputFilePath, $aArray)
For $i=1 To $aArray[0]
$Output=$Output & @CRLF & $aArray[$i] & " = " & $PST_Name & " = " & round(FileGetSize($aArray[$i] & $PST_SubPath & $PST_Name)/1024 ,3)
Next
$file=FileOpen($OutputFilePath,2)
FileWrite($file,$Output)
FileClose($file)
Wenn du die Netzlast reduzieren willst, musst du wohl das Skript auf den jeweiligen Servern direkt aufrufen, oder zu einer Zeit laufen lassen wo sowieso nichts los ist im NW.
eddy_erpel
Hallo,
Zitatden Fehler habe ich verbessert, sorry habe ich vergessen zu sagen.
Aber es geht immer noch nicht...leider...
Was genau geht denn nicht??? (Eine etwas präzisere Aussage wäre sehr hilfreich)
Bei mir läuft das Skript einwandfrei!
ZitatNe die Schleife machte er trotzdem.
Ist ja logisch: While - Wend ist immer eine Schleife ![]()
eddy_erpel
Hi,
Ich sehen den Fehler schon:
$source = "C:\Temp\Workflow|"
[/autoit]
aber es müsste natürlich
$source = "C:\Temp\Workflow\"
[/autoit]heissen. Sorry!
Aber läuft es nun oder hast du immer noch Probleme damit?
eddy_erpel
Hallo,
etwa so:
func ArrayCompare($array1,$array2)
_ArraySort($array1,0,0,UBound($array1),2)
_ArraySort($array2,0,0,UBound($array2),2)
for $i=0 to UBound($array1)-1
if $array1[$i][0]<>$array2[$i][0] and $array1[$i][1]<>$array2[$i][1] Then
Return($array2[$i][0] & ":" & $array2[$i][1])
ExitLoop
ElseIf $i=ubound($array1)-1 then
Return($array2[$i+1][0] & ":" & $array2[$i+1][1])
ExitLoop
EndIf
Next
EndFunc
eddy_erpel
Hallo,
geht es so auch nicht:
$MDB = '"' & @ScriptDir & '\MS OFF\Access\test.mdb"'
eddy_erpel