Worin liegt das Problem am Enter? Ein Enter auf der Console ist bei unixoiden Systemen das Zeichen @LF. Einfach das senden und gut ist.
(das LF ist auch der einzige Unterschied zwischen _Say und _SayPlus)
Strg+C wäre das Zeichen Chr(03). Sollte genauso funktionieren
Beiträge von Schnitzel
-
-
Hilft es dir mit _GUICtrlEdit_BeginUpdate() und _GUICtrlEdit_EndUpdate() zu arbeiten und das Edit nur immer wieder mal zu aktualisieren?
-
Das funktioniert generell schon.
Poste doch bitte mal dein ganzes Script damit man sieht wo dein Fehler liegt. -
Was für Vorlieben man da pflegt ist doch wohl jedem selbst überlassen.
Und Rechtsklick>Run Script gibts genauso -
Skerg, das ist nicht mal notwendig, man kann ShellExecute direkt auf die .au3 anwenden - sofern - die Dateiendung mit AutoIt3.exe verknüpft ist.
Wäre das in Ilse's Fall so dann würde der Thread garnicht existieren
Ilse hat au3 Dateien mit dem Scite Editor verknüpft... -
Ups ok da hab ich mich verwirren lassen
in $Active_Menu steht natürlich das zuvor aktive Control. Die Frage ist nur warum du überhaupt Execute verwendest@GUI_CTRLID würde dir den Vorteil bringen dass du all diese _showx() Funktionen zu einer konsolidieren kannst.
Sofern du die _Content() Funktionen etwas anpasst. Z.B. mit einem Parameter oder wie bereits erwähnt mit Guictrlsetdata und nem Array in dem die jeweiligen Daten stehen. -
Achtung hier hat wiedermal ein Forenbug zugeschlagen. XovoxKingdom: Ja der ist schon bekannt
In Zeile 23 und 27 muss ein Backslash in die alleinstehenden Anführungszeichen
Die ersten kannst du dir allerdings auch sparen wenn du $path gleich mit abschließenden Backslash initialisierst -
Mit FileFindFirstFile/FileFindNextFile oder _FileListToArray kannst du dir die unterordner raussuchen lassen
Dann kannst du es so machen wie Shadow667 beschrieben hat -
Herzlich Willkommen im Forum Sebastian
Kennst du die Plink UDF? http://www.autoitscript.com/forum/topic/128310-plink-wrapper/
Damit tust du dich vermutlich viel leichterProblem bei deinem Script ist dass du ständig den Inhalt des Controls überschreibst, auch wenn sich garnichts ändert.
[autoit]
Hier mal Zeile 30 bis 35 so angepasst das es nicht mehr blinken dürfte:Local $out, $last
[/autoit]
While 1
$out &= StdoutRead($stream)
If @error Then ExitLoop
if $out <> $last then
GUICtrlSetData($ed_stdOut,$out)
$last = $out
endif
Wend -
Blubkuh:
Ja ist ne funktionierende Lösung aber zwei Dinge sind doch eher unschön.
1. Controls immer wieder zur Laufzeit erstellen und löschen ist unnötig. Einfach den Wert mit GuiCtrlSetData setzen spart Zeit und Schreibaufwand
2. Execute($Active_Menu) ist auch unschön. Lieber @GUI_CtrlID verwendenPS: mit nem Schönen Array für die Controls spart man sich sicher 2/3tel des Codes
-
Zitat
Am einfachsten wäre es wahrscheinlich den rename Befehl in cmd zu benutzen.
Was wäre daran leichter als FileMove zu nutzen?Das ganze Script würde mit Variablen-Deklaration und include 6 Zeilen benötigen.
Mit Rename wird das sicher nicht leichter/besser. -
Du liest ganz einfach die Dateien mit ein z.B. mit _FileListToArray oder mit Filefindfirstfile/Filefindnextfile
Und dann verschiebst du jede Datei mit Filemove von eingelesenerDateiname nach "Präfix_" & eingelesenerDateiname -
Du hast noch nicht oft was mit arrays gemacht oder?
Aber kein Problem. Probiers mal soSpoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Word.au3>$sPath = "C:\Temp\unzip"
[/autoit] [autoit][/autoit] [autoit]
$aSearch = _FileListToArray($sPath); Check if the search was successful
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox(0, "Error", "No images found")
Exit
EndIf$oWordApp = _WordCreate ()
[/autoit] [autoit][/autoit] [autoit]
$oDoc = _WordDocGetCollection ($oWordApp, 0)For $i = $aSearch[0] To 1 Step -1
[/autoit]
$oShape = _WordDocAddPicture ($oDoc, $sPath & $aSearch[$i], 0, 1)
If Not @error Then $oShape.Range.InsertAfter (@CRLF)
WEnd -
Warum gehst du den umweg über eine Textdatei?
Es wird immer das gleiche eingefügt weil du immer $testdir einfügst und das ändert sich ja innerhalb der Schleife nicht
auch die Zeile 25 macht für mich keinen sinn... -
Ist ja auch nicht bös gemeint. Wir helfen ja gerne.
Nur weis man oft nicht wo man helfen muss -
Mit Scite Parameters lassen sich Parameter setzen die beim ausführen mit Scite (also z.B. per F5) an dein Script übergeben werden.
Die Parameter die du dann mit $CMDLINE bekommst.
Das ist was ganz anderes als dass was du willst.Ein automatisches Kompilieren von Scripten geht wie gesagt mit der Aut2exe.exe die im Autoitinstallationsverzeichnis im Unterordner Aut2Exe liegt.
Parameter hast du selbst schon genannt.Warum willst du denn überhaupt automatisch Exe Dateien erzeugen?
bzw was genau meinst du damit:Zitatwie kann man die Command Line Befehle in einem Script starten.
Ich hab das Gefühl man sucht hier wieder ne Lösung für etwas das du garnicht willst...
Deine notdürftige Beschreibung sagt zumindest ganz was anderes als dein "aut2exe Zitat" mit den Parametern. -
Zitat
Aber mein Problem sind die unterschiedlichen Coordinaten(234,432)
D.h. dann muß ich doch viel tippen, oder?
Du könntest deine Beiträge ruhig mal genauer schreiben damit man nicht immer mehrfach nachfragen muss...
Genauere Beschreibung = Bessere + schnellere Hilfe
Und wir sparen uns die nervige Raterei.
Wenn du nicht irgendwelche sehr speziellen Fragen stellen würdest sondern das Problem genauer beschreiben dann finden sich oft auch viel bessere Lösungen.Wenn du die Koordinaten nicht brauchst dann gib sie auch nicht an.
Aber mal angenommen du brauchst die Koordinaten, dann muss dein Programm diese auch irgendwo herbekommen.
Ob du sie nun in einer ini speicherst, oder nem Array oder sonst irgendwo. Du wirst sie tippen müssen.
Wenn es immer wieder die gleichen Koordinaten sind, dann kannst du dir z.B. mit einem zweidimensionalen Array die Tipparbeit sparen wenn du deine Funktion so umbaust dass du nur den Index des Arrays mitgibst
Wenn du die Koordinaten irgendwoher automatisiert bekommen kannst, dann kannst du dir das tippen sparen.Was ist das für eine Software die du steuerst?
Warum brauchst du die Koordinaten überhaupt? -
Ups. Dann gleich nochmal sorry. Mein Fehler
[autoit]
Dafür hier ein lösungsansatz
Du musst den alten wert nur nochmal in einer Extra variable speichern, und jedes mal nach dem Auslesen die Werte vergleichen
In etwa so:Local $readcuser, $anderevariable, $readcuserold = 0
[/autoit][autoit][/autoit][autoit]For $i = 1 To 10
[/autoit]
$twitchapi = "https://api.twitch.tv/kraken/channels/manvsgame/follows"
$readviewer = InetRead ($twitchapi)
$read = BinaryToString($readviewer)
$readcuser = StringSplit($read, ":,")
If $readcuser[2] <> $readcuserold Then
MsgBox(0,'','Wert hat sich verändert')
$anderevariable = $readcuser[2] - $readcuserold
$readcuserold = $readcuser[2]
Else
MsgBox(0,'','Wert hat sich nicht verändert')
EndIf
Sleep(10000)
Next -
-
Ja es ist möglich.
Die Frage ist nur was du bis jetzt Falsch machst weil an Send("{c}") noch nicht (viel) falsch ist.
Poste mal dein Script damit wir genau sehen was du machst.Andernfalls gibts da als Verbesserungsvorschlag noch ControlSend() oder water's Methode, die, wenn IrfanView das zur Verfügung stellt, wohl die beste ist