Du nutzt ShellExecute falsch, das hat ein Extrafeld für Parameter.
Run(@ComSpec & " /c ""pfad-zur-curl.exe"" ""https://upload......PallasJupiter.GIF"" >> ""pfad-zum-dumpem\test.gif""")
Clipboard mit Grafik-Kopie ausstatten
-
Tuxedo -
12. Juli 2017 um 19:30 -
Erledigt
-
-
So hab das jetzt etliche male getestet und da kommt einfach keine Datei an
CodeRun(@ComSpec & " /c ""E:\Autoit-Scripte\Eigenkreationen_Tuxedo\ClipMan\cURLBin\curl.exe"" ""https://autoit.de/wcf/images/avatars/9f/1244-9f9981b4e9abbb446b1b6a70a4ad23868bca9c29.gif"" >> ""E:\Autoit-Scripte\Eigenkreationen_Tuxedo\ClipMan\autoit-5.gif""")
Das ist exact dein Muster mit ausgefüllten Pfaden, damit müsste dann zumindest dein Avatar als autoit-5.gif
im Ordner Clipman erscheinen, aber da ist nix. -
Bei den tausend Anführungszeichen kommt man halt schnell durcheinander, so ists aber richtig:
Run(@ComSpec & " /c """ & @ScriptDir & "\curl.exe https://autoit.de/wcf/images/avatars/9f/1244-9f9981b4e9abbb446b1b6a70a4ad23868bca9c29.gif >> " & @ScriptDir & "\autoit-5.gif""")Die Angabe der Pfade kannst du dir sparen wenn du den Parameter WorkingDirectory verwendest, dann reichen auch nur die Dateinamen.
-
-
Danke Alpines, jetzt scheint es zu klappen, muss nur noch sehen wie ich es in mein Script einbauen kann.
Mal sehen ob das heute noch fehlerfrei zum laufen kommt und obs mir dann gefällt.Erst mal Dankeschön für deine Mühe.
Tuxedo -
Ja genau @alpines das Windows 7 ober wohl besser der Internet Core von Win 7 spielt da wohl nicht mit, dann sollte ich wohl beide Versionen getrennt einstellen eine für Windows 7 Nutzer und eine für die Leute die Windows 10 verwenden.
Windows 10 hat bei mir nix zu melden genauso wie Google, vorher werde ich Computer-Abstinent oder Linux-User.
Alpines lässt sich das aufpoppende Dos-Fenster irgendwie unterbinden oder muss man damit leben??
-
@autoiter wie setze oder besser wo setze ich @SW_HIDE ein normalerweise hat man ja eine GUI
aber ich hab nur eine Run Zeile wo muss das hin. -
aber ich hab nur eine Run Zeile wo muss das hin.
Bei Show-Flags trägst du einfach @SW_HIDE ein.
-
Na Endlich, es ist vollbracht.
Jetzt sollte das Tool auf allen Windows Varianten laufen und ist endlich vom Internetexplorer unabhängig.
Ist leider nicht das was ich mir wünschte, ich wollte es ohne Dateisystemzugriffe machen, aber so läuft es wenigstensproblemlos. Ein paar Timingprobleme gab es auch noch, aber bis jetzt tuts ganz ordentlich.
Wenn es so bleibt werde ich bald die Finale Version einstellen in 32+64 bit als Script und als Exe-Files,
dann haben alle etwas davon.
Soll ich das dann unter der Rubrik Scripte veröffentlichen oder einfach hier im ersten Post, was meint die Chefetage ???Schönen Restsonntag noch von Tuxedo
ps:Dank an autoiter+Alpines
-
Soll ich das dann unter der Rubrik Scripte veröffentlichen oder einfach hier im ersten Post, was meint die Chefetage ???
Da du sicherlich alles sauber präsentieren möchtest würde ich dir raten in der Skripte-Sektion einen neuen Thread aufzumachen mit einem passenden Titel und dem entsprechenden Inhalt.
Dann kannst du die benötigten Dateien anhängen und bekommst von uns Lob, Kritik bzw. generelles Feedback. -
Hallo @Tuxedo !
Du solltest Dir mal die Funktionsreferenz des Befehls 'Run' anschauen :
https://autoit.de/onlinehilfe/functions/Run.htm
Dort wird genau beschrieben, was @alpines bezüglich @SW_HIDE gemeint hat.Für Dich zur Info :
Funktionen haben häufig 'optionale Parameter' - erkennbar an den eckigen Klammern [] in der Referenz. Wird ein 'optionaler Parameter' nicht angegeben, dann verwendet die Funktion einen Defaultwert. Du möchtest das Fenster 'versteckt' aufrufen, in dem Fall musst Du @SW_HIDE explizit setzen.Bei den tausend Anführungszeichen kommt man halt schnell durcheinander, so ists aber richtig:
Run(@ComSpec & " /c """ & @ScriptDir & "\curl.exe https://autoit.de/wcf/images/ava…3868bca9c29.gif >> " & @ScriptDir & "\autoit-5.gif""")Im vorliegenden Fall, also :
...autoit-5.gif""")
ergänzen mit :
...autoit-5.gif""","", @SW_HIDE)Falls Du die Rückgabe des Run Befehls auswerten möchtest, dann :
AutoIt
Alles anzeigen#include <Constants.au3> Local $iPID = Run(@ComSpec & " /c """ & @ScriptDir & "\curl.exe https://autoit.de/wcf/images/avatars/9f/1244-9f9981b4e9abbb446b1b6a70a4ad23868bca9c29.gif >> " & @ScriptDir & "\autoit-5.gif""","", @SW_HIDE, BitOR($STDOUT_CHILD,$STDERR_CHILD)) Local $iReturn = ProcessWaitClose($iPID) ; Ergebniswerte sichern : Local $iError = @error Local $iExtended = @extended Local $sStdOutRead = StdoutRead($iPID) Local $sStdErrRead = StderrRead($iPID) ; Das Ergebnis kannst Du in die Konsole schreiben : ConsoleWrite("Return = " & $iReturn & @CRLF & _ "Error = " & $iError & @CRLF & _ "Extended = " & $iExtended & @CRLF & _ "OutRead = " & $sStdOutRead & @CRLF & _ "ErrRead = " & $sStdErrRead & @CRLF)
Damit wird in der Scite-Konsole das angezeigt, was das Programm in einem CMD-Fenster ausgeben würde.
Gruß Musashi
-
Danke @Musashi den ersten Teil deines Tipps hätte gestern etwa eine stunde vor deinem Post sehr gut brauchen können.
Es hat mich jede Menge Nerven gekostet die verfluchte Run Zeile mit verstecktem CMD-Fenster zum Laufen zu bewegen.
Erst wusste ich gar nicht wo das ShowFlag hingehört sagte ja keiner genauer, dann kam ich auf die Idee beim Run befehl
nachzusehen und fand den ShowFlag, aber habe dabei sicher ewig nur die Parameter im Auge gehabt aber dabei die Kommas übersehen. Dann wusste ich auch wo es hingehört, aber übersah dabei den vorigen Parameter den man dann ja auch noch braucht.
Und als dann alles endlich lief kam ich auf die Idee alles fertig zu machen und Script zu kompilieren und plötzlich
wars mit dem Bilder kopieren wieder vorbei, und wieder ewig Debugging betreiben bis es dann endlich lief.
Und zwischenzeitlich ärgerte mich auch noch der Run Befehl der dafür sorgte, daß etliche Bilder entweder
übersprungen wurden oder 5 mal hintereinander dasselbe Bild eingefügt obwohl verschiedene kopiert habe.Es war ein richtiger Schei.. Tag, und das an einem Sonntag. Aber jetzt ist fast alles fertig.
Nur noch ausgiebig testen und dann kommt es zu den Scripten und erfreut hoffentlich einige Benutzer.Schönen Wochenbeginn
Tuxedo -
Hallo @Tuxedo !
Danke @Musashi den ersten Teil deines Tipps hätte gestern etwa eine stunde vor deinem Post sehr gut brauchen können.
Ich bin leider nicht so schnell wie @alpines ("der Mann, der niemals schläft" ).
Daher sollte man immer zügig antworten, sonst war @alpines schon da.Dann wusste ich auch wo es hingehört, aber übersah dabei den vorigen Parameter den man dann ja auch noch braucht.
Das ist ein wichtiger Punkt bei Optionalparametern. Gibt es mehrere und Du verwendest z.B. den Zweiten, dann darfst Du den Ersten nicht einfach weglassen.
Beispiel :
(Abkürzungen)
PPn = Pflichtparameter (n für die Position, also 1, 2 usw.)
OPn = Optionalparameter (n für die Position, also 1, 2 usw.)
BEFEHL PP1 [OP1] [OP2]Bei Run ist der erste Optionalparameter das 'WorkingDir', der zweite das Flag @SW_HIDE. Wenn Du also @SW_HIDE setzt, dann muss auch das 'WorkingDir' gesetzt werden, selbst wenn es leer ist. Häufig kann man dafür auch DEFAULT eintragen.
Nebenbei :
Wenn Du Autoit.de+Befehlsname" in die Suchmaschine des Vertrauens einträgst, dann ist die deutsche Hilfe i.d.R. der erste Treffer.Gruß Musashi
-
Hallo @Tuxedo !
(Nachtrag zu meinem Beitrag 53)Du solltest Dir ggf. auch den 2. Teil meines Beitrages 51 mal ansehen, also das kleine Skript zur Anzeige in der Scite-Konsole. Wenn Du in einer Windows-CMD-Konsole einen Befehl aufrufst oder eine .exe-Datei startest, dann wird im CMD-Fenster i.d.R. eine Ergebnis- oder Fehlermeldung angezeigt. (Beim Befehl dir erscheinen z.B. alle Dateien des akt. Verzeichnisses)
Da Du die CMD aber versteckt aufrufst (@SW_HIDE), kannst Du diese Ausgabe natürlich nicht sehen. Mit dem obigen Skript wird die CMD-Ausgabe in Konsolenstreams gespeichert (StdoutRead, StderrRead). Diese kannst Du innerhalb von AutoIt auswerten, oder in der Scite-Konsole/einer Messagebox anzeigen lassen. Das ist bei der Fehleranalyse beizeiten recht hilfreich.
Wirf auch mal einen Blick auf den Befehl RunWait. Dieser wartet, anders als Run, bis die .exe fertig ist.
Dass mit den Konsolenstreams funktioniert dann aber nicht mehr (so ohne Weiteres), da RunWait einen Exitcode zurückgibt, und keine ProzessID wie Run.Gruß Musashi
-
Ja Musashi den Befehl RunWait habe ich glücklicherweise gestern nach langem Grübeln auch entdeckt, mit dem Run Befehl hatte ich
das Problem mit den entweder nicht kopierten Bildern oder gleich 5 mal hintereinander das gleiche Bild, das hing wohl mit dem Timng zusammen,
weil eben die Bilder nicht immer schnell genug geladen wurden. Mit extrem langen Slepps ging es dann einigermassen.Dadurch kam ich auf den RunWait Befehl der selbst entscheidet wie lange er braucht.
Das andere mit der Auswertung der CMD Ausgaben werde ich schon nocht austesten Danke für die Tipps.Das Tool ist ab Heute 20.Juli 2017 unter dem neuen Namen Smartclip in der Rubrik Scripte
verfügbar. -