Was ist das Problem an #include?
[autoit]#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
Edit: Omg letzter von 3. Das ist mir auch noch nie passiert
Was ist das Problem an #include?
[autoit]#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
Edit: Omg letzter von 3. Das ist mir auch noch nie passiert
ich hab nur die frage nach einem "sich selbst neu startendem script" beantwortet
Ist ja auch richtig
Ich hinterfrage die Frage, weil es wahrscheinlich mehr Aufwand ist das Script neuzustarten
Ist aber abhängig vom Script...
Ich würde mir eine Funktion basteln die für alle Controls die richtigen Sprache setzt Iniread + Guictrlsetdata etc...
Und für Texte die "just in time" benötigt werden (z.b. msgbox und so weiter) kannst du:
1. entweder eine Variable setzten ($sprache = "englisch" ) und damit die Daten aus der aus der ini laden
2. oder beim Ändern der Spracheinstellung ein Array befüllen das die Texte in richtiger Sprache enthält.
Ich seh keinen Grund für den Neustart deines Scriptes
Kein Problem
Falls für dich gelöst bitte den Thread noch auf gelöst setzen
(Ersten Post bearbeiten und Präfix gelöst wählen)
Und warum hast du dafür eigene exe-Dateien erstellt?
Ich würde an deiner Stelle die hier Verwenden:
[autoit]
_ExcelRowInsert
_ExcelReadCell
_ExcelWriteCell
; oder evtl noch besser:
_ExcelReadArray
_ExcelWriteArray
Mit Send's ist das immer so ne unsichere Sache...
Mit den Befehlen kannst du Exceldateien bearbeiten ohne dass Excel im Vordergrund geöffnet werden muss.
Prinzipjell so:
[autoit]
for $i = 1 to $value
run ;....
next
Aber warum startest du ein anderes Programm?
Was genau macht das Programm denn?
Es gibt ne gute Excel UDF mit der du vmtl. alles machen kannst was du brauchst...
Wenn du es manuell machst kannst du doch auch nicht gleich auf den Button klicken.
Erst die Checkbox anhaken und dann klicken
Und "Button1" bzw. "[Class:Button;Instance:1]" verwenden
Einiges an dem Script ist stark verbesserungswürdig...
Da das offensichtlich aber ein Bot werden soll ("oder schon ist") darfst du hier keinen Support erwarten
Zunächst Herzlich Willkommen im Forum
Was genau willst du denn pausieren und warum?
Anhand deines Code's lässt sich nur sagen dass die Pause ziemlich lang dauern wird
Ohne abbruchbedingung in der While schleife macht das keinen Sinn.
(Am besten ganzen Code posten und Autoit Tag benutzen)
Falls alles beantwortet ist bitte den Thread auf gelöst setzen.
Das geht indem du den ersten Post bearbeitest und das Präfix auf gelöst setzt
Danke fuer den Hinweis. Hab den link angepasst
Wie beschreibst du das Textfeld denn?
Ich vermute mal mit Send oder sowas oder?
Klicks kann man besser automatisieren als mit Mouseclick
Mit den Control-... Befehlen sollte das egtl alles ganz gut gehen
Controlclick
Controlsettext
;...
Poste am besten immer dein Script damit wir sehen was du machst.
Und am besten beim naechsten mal ein neues Thema aufmachen wenn es um etwas anderes geht
Hilfe Datei lesen
[autoit]_ExcelReadCell()
[/autoit]Es scheitert wohl eher an Dateien die nicht so sind wie von der UDF erwartet.
Im Detail hab ich es mir nicht angesehen aber ich würde mal in Zeile 1132 der UDF ein paar Variablen ausgeben lassen
(Am besten in ne Datei oder per Consolewrite())
Es scheitert daran dass eine der beiden if's nie True ist (Zeile 1124 und 1125):
If BinaryMid($ID3v2_RawDataBinary,$ibyte,1) == Binary("0xFF") Then
If BinaryMid($ID3v2_RawDataBinary,$ibyte+1,1) == Binary("0x00") Then
Intressant wären vmtl.
$aIndex[0]
$ibyte
$ID3v2_RawDataBinary
In der textdatei oder Console siehst du ja dann bei was genau er scheitert.
Deine Funktion wird z.B. alle 250 ms aufgerufen und während die aufgerufene Funktion läuft wird dein Script "pausiert"
In den 250 ms kannst du aber machen was du willst
Herzlich Willkommen im Forum BUM
Ich hab zwar nur den Text gelesen aber ich denke du suchst
AdlibRegister()
[/autoit]PS: für längere Scripte bitte Spoiler nutzen
Eigentlich ist es ganz einfach.
Dein Return passt so wie er ist.
Return $iDPI
[/autoit]Was du aber in deinem Hauptscript machen musst ist den Return Wert auch in eine Variable speichern:
[autoit]Func MeineGUI()
Local $iDPI
$DPI = _CheckDPI(); Funktion wird aus der MyUDF.au3 aufgerufen
;......
EndFunc
Variablen innerhalb einer Funktion würde ich immer als Local definieren.
Als Variablennamen auserhalb der Funktion kannst du auch einen ganz anderen verwenden als in deiner Funktion.
Durch Return wird nur der Wert übergeben
Ja es ist technisch möglich aber unsinnig.
Du solltest lieber lernen wie man mit Array's umgeht
Dann hat wohl $counter einen anderen Wert als $FileCounter.
Lass dir die beiden doch mal ausgeben und vergleich sie.
du kannst dir auch die Arrays mit _ArrayDisplay ausgeben lassen. (Falls du nicht weißt wo was steht...)
Ps: wenn du den Ganzen dateipfad hast dann bekommst du den Dateinamen auch sehr schnell so:
[autoit]StringTrimLeft($FileArray[$FileCounter], StringInStr($FileArray[$FileCounter], '\', Default, -1))
[/autoit]
Ich würde an deiner Stelle nicht mit 2 Array's rumbasteln
Herzlichen Glückwunsch zum Geburtstag an alle
Zumindest denjenigen die aktiv sind.
Jemand der sich vor 6 Jahren registriert hat und dann nur für 3 stunden aktiv war wird es kaum intressieren