Das inkludieren der Konstanten hat funktioniert. Vielen Dank an alle
Beiträge von CreatorX
-
-
Alternativ kannst du auch eine *.au3 File nutzen und dort die Variablen definieren. Diese brauchst du dann später nur in jedem Skript inkludieren.
Und wie geht das? Hättest du dazu ein kurzes Beispiel? -
Naja das "Ziel" ist einfach, dass ich gerade ein größerse Projekt habe, das aus mehreren Skripten besteht. Diese Skripte greifen teilweise auf die gleichen Dateien zu. Aber wenn sich jetzt der Pfad zu einer Datei ändert, möchte ich nicht in jedem Skript einzeln den Pfad anpassen. Also gehts nur über die Auslagerung z.B. in eine .ini?
-
Hallo, ich wollte nur kurz wissen, ob es möglich ist Variablen aus einem anderen Skript zu nutzen. Also beispielsweise steht in Skript 1 die Variable $Pfadangabe = "C:/testdir"
und in Skript 2 möchte ich die Variable dann auch nutzen etwa $Pfadangabe_aus_Skript1 oder so. Geht das? -
Ausführbare Dateien und DLLs können mehrere Icons enthalten, .ico Dateien meines Wissens nach nicht.
Das sollte erstmal grundsätzlich geklärt werden. Soweit ich weiß eben doch. Du kannst ja unter Windows ein Icon-Datei anklicken und, zumindest wenn sich der System eigene Bild-Viewer öffnet, die verschiedenen Icons die eine .icon-Datei enthält, durchschalten. Lässt sich ganz einfach testen, im Programmverzeichnis von AutoIT gibt es nen Icons-Verzeichnis (C:\Program Files (x86)\AutoIt3\Icons)
Da mal auf eins der Icons draufklicken und dann lassen sich die verschiedenen Icons innerhalb der Datei durchklicken. -
Bei GUISetIcon kannst Du als zweiten Parameter die Icon-ID angeben. Damit wählst Du (bei mehreren Icons) das entsprechende Icon aus.
[autoit]
Hm, irgendwas mache ich da falsch.
Ich hab mir mal das Bespiel der Onlinehilfe zu dem Befehl genommen und versucht die Icon-ID zu wechseln, aber da tut sich nix:#include <GUIConstantsEx.au3>
[/autoit][autoit][/autoit][autoit]Example()
[/autoit][autoit][/autoit][autoit]Func Example()
[/autoit][autoit][/autoit][autoit]
Local $sFile = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\icons\au3script_v9.ico"
Local $msgGUICreate("Meine GUI mit neuem Icon") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird
[/autoit][autoit][/autoit][autoit]GUISetIcon($sFile,9) ; Ändert das Symbol (Icon)
[/autoit][autoit][/autoit][autoit]GUISetState() ; Zeigt ein leeres Dialogfenster an
[/autoit][autoit][/autoit][autoit]; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
[/autoit][autoit][/autoit][autoit]
While 1
$msg = GUIGetMsg()If $msg = $GUI_EVENT_CLOSE Then ExitLoop
[/autoit]
WEnd
EndFunc ;==>Example
Außerdem scheint sich das, wenn überhaupt ja nur auf dieses GUI-Fenster zu beziehen, dass ich ja gar nicht verwende, beim Kompilieren erhält die Exe dadurch ja kein Icon. Oder ich stelle mich gerade ziemlich doof an -
Hallo, ich komme mit meinem "Projekt" gut voran, bin im Prinzip schon fertig
Jetzt hätte ich nur nochmal eine kurze Frage:
Ich habe festgestellt, dass Icon-Dateien mehrere Icons (beispielsweise in verschiedener Auflösung) enthalten können. Gib es die Möglichkeit sich aus mehreren Icons einer Datei das Icon auszusuchen, welches die Exe dann letztendlich haben soll? -
Ja genau sowas habe ich gesucht. Danke! Das reicht mir erstmal, soll ja hauptsächlich zum debuggen gedacht sein. Gibts noch andere Möglichleiten?
-
Super, vielen Dank für den Nachtrag. Alle Fragen dazu sind beantwortet
-
Hallo, in anderen Programmiersprachen gibt es ja oft den Befehl Print um Texte in einem Fenster auszugeben. In AutoIt habe ich bisher nur die MSGBox gefunden. Gibts noch einen anderen Weg um einen Text auszugeben ohne a) dabei das gesammte Script/Programm anzuhalten und b) alle Textausgaben in nur einem Fenster untereinander und nicht, wie in den Boxen, in jedem Fenster separat zu haben?
-
Ich habs jetzt via If-Abfrage gelöst:
[autoit]
[/autoit][autoit][/autoit][autoit]
;Datei einlesen
$file = FileOpen(@ScriptDir & "\settings.txt")for $t=1 to 400
[/autoit][autoit][/autoit][autoit]
$line = FileReadLine($file,$t); Zeile, in der der String steht, wird ermittelt
[/autoit][autoit][/autoit][autoit]
$str = StringMid($line,1)
If StringInStr($str, "Teeeeeeeeest!!!!") Then;String wird ausgelesen
[/autoit][autoit][/autoit][autoit]
$Str2 = StringRight( $str, 16 );String wird angezeigt
[/autoit][autoit][/autoit][autoit]
msgbox (0,"String:",$Str2 );Schleife wird geschlossen
[/autoit][autoit][/autoit][autoit]
ExitLoop
EndIf
Next;FileHandle schließen
[/autoit][autoit][/autoit][autoit]
FileClose($file);~ String wurde gefunden--------------
[/autoit]Ich werd noch einbauen, dass ausgelesen wird, wieviele Zeilen die Datei hat, aber im Prinzip sollte das ja so immer funktionieren oder?
-
Oha, da muss ich mich erstmal durcharbeiten. Danke schonmal für den Tipp!
-
Super, das hilft mir schonmal weiter. Ja ich hatte bisher nur autoit-v3-setup installiert. Hab jetzt nochmal Scite4Autoit3 hinzugefügt und damit klappt alles
Ja ok, ich werde .ini-Dateien verwenden, scheint mir das Beste. Dennoch komme ich nicht drum rum, bei bestehenden Dateien anderer Programme Text- oder XML-Dateien auszulesen und sie nach bestimmten Wörtern zu durchsuchen. Wie geht das?
-
-
Hallo, ich bin neu hier und habe mich jetzt kurz in AutoIt eingearbeitet.
Was ich wissen müsste: im selben Ordner in dem sich die Script-Datei befindet, befindet sich auch eine Textdatei. Ich nenne sie jetzt mal "einstellungen.txt" (welches Dateiformat würdet ihr empfehlen?). Und in dieser Textdatei steht irgendwo eine Pfadangabe (pfad1="c:/test"). Da sich diese Pfadangabe nicht immer an der selben Stelle befindet, müsste das Script also diese Zeile suchen und als Variable speichern. Wie geht das?
Achja nochwas: Ich habe gelesen, wenn ich auf Compile (Strg+F5) klicke, kann ich ein Icon für die Datei auswählen. Bei mir kommt da aber kein Menü, es passiert also das Selbe als würde ich einfach nur auf Build (F5) klicken. Wie kann ich das ändern?