Recht vielen Dank euch beiden.
Ich werde mich für die Lösung von argumentum entscheiden, weil sie meinen Gedankengängen am ähnlichsten ist. Ich hatte die Wirkungsweise von Eval nicht richtig kapiert.
Nochmals danke!
Recht vielen Dank euch beiden.
Ich werde mich für die Lösung von argumentum entscheiden, weil sie meinen Gedankengängen am ähnlichsten ist. Ich hatte die Wirkungsweise von Eval nicht richtig kapiert.
Nochmals danke!
Ich möchte in der Funktion der Reihe nach alle im Aufruf angegebenen Parameter auslesen.
Soo geht es nicht:
Funktion("Text0", "Text1","Text2")
Func Funktion($w0="",$w1="",$w2="",$w3="",$w4="",$w5="",$w6="",$w7="",$w8="",$w9="")
For $i=0 To 9
Assign("ii", $i)
$xx="$w"&Eval("ii")
Protokoll("$xx::"&$xx)
MsgBox(0,"",$xx)
If $xx="" Then Exitloop
Next
EndFunc
Vielen Dank Argumentum: Wo würde man die ISO finen?
Vielen Dank Kanashius: Um das Script zumLaufen zu bringen, müsste man die "TreeListExplorer.au3" haben.
Ich habe mir aber einen noch günstigeren Weg überlegt:
Ich werde mir eine GUI schreiben, die zunächst eine Auswahl der vorhandenen Laufwerksnamen anbietet. Dadurch wird der Benutzer gar nicht erst mit den durch Windows PE verfälschten Laufwerksbuchstben konfrontiert. Wenn er dann seine Wahl getroffen hat, kann er anschließend über FileSelectFolder() den Ordner aussuchen.
Nochmals herzlichen Dank euch beiden für eure Mühe mit mir.
Vielen Dank euch beiden. Das werde ich jetzt erst einmal verdauen:)
Zu deiner Frage Schnuffel:
Hat dein letzter Beitrag und die Antwort von AspirinJunkie nicht weitergeholfen?
Am Ende hatte sich doch heraugestellt, dass es nicht an fehlenden DLLs lag. Sonder mein Programm haatte ich nicht im x64-Modus kompiliert.
Vielen Dank Schnuffel und argumentum für eure Antworten.
Inzwischen habe ich mir überlegt, dass man den Befehl aus der Hilfe
in dieser Form 'FileSelectFolder($sMessage, "")' so nicht anwenden kann, da es ja unter WinPE keinen Desktop gibt.
Meine Volume-Liste sieht so aus:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 J DVD-ROM 0 B No Media
Volume 1 C Backup NTFS Partition 465 GB Healthy
Volume 2 D Boot NTFS Partition 84 GB Healthy
Volume 3 E Privat NTFS Partition 80 GB Healthy
Volume 4 FAT32 Partition 99 MB Healthy Hidden
Volume 5 F Data NTFS Partition 906 GB Healthy
Volume 6 G Recover NTFS Partition 24 GB Healthy
Volume 7 H GARTEN FAT32 Partition 238 GB Healthy
Volume 8 I MICROSD2 FAT32 Removable 14 GB Healthy
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Ich habe den Befehlnun nun so angesetzt:
FileSelectFolder($sMessage, "D:") .
Jetzt wird mir zwar ein Auswahlfenster angezeigt. Es lässt aber nur eine Auswahl innerhalb des Laufwerks D: (entspricht C: unter Windows) zu. Ich möchte dem Benutzer aber freistellen, mit welchem Laufwerk bzw. Ordner er arbeiten will. Eine Möglichkeit wie "Dieser PC" wird nicht angeboten.
Was nun?
Warum wird die Funktion FileSelectFolder() in der WinPE-Umgebung nicht ausgefüht? Gibt es einen Ersatz dafür?
x64, das war der entscheidende Tipp.
Vielen Dank Racer!!!!!!
Mit anderen Worten: WinPE ist doch nicht so "mager" ausgestattet. Die DLLs sind alle mit an Bord. So jetzt werde ich mir noch ein Programm ausdenken, das den Prozess der Erstellung eines bootfähigen Datentägers weitgehend - ohne erhebliche Eingriffe - automatisiert.
Vielen Dank euch dreien - Aspirinjunkie, UEZ und Racer.
Ach deshalb! Verstehe! Also kann man hoffen, wenn man größere Programme schreibt, dann kommt nicht mehr so viel dazu. Schön wäre es, wenn man das Ergebnis von PE-bear irgendwie als Textdatei ausgeben könnte, um die Zusammenstellung der benötigten DLLs mittels eines Programms zu automatisieren.
Tatsächlich!
Ich hätte nicht gedacht, dass mein mickriges Testprogramm mit 18 DLLs arbeitet.
Ich werde nun weiterexperimentieren und hoffe, dass die fehlenden DLLs die einzige Ursache für den Fehler unter Windows PE sind. Wenn es dich interessiert würde ich dir dann berichten.
Nochmals vielen Dank!
In PE-Bear finde ich keine exe (z.B. PE-Bear.exe), mit welcher ich dann mein Programm öffnen könnte.
Vielen Dank, dass du dir mit mir so viel Mühe gibst.
Entschuldige, dass ich mich etwas dümmlich anstelle:
1. Dependencies > heruntergeladen und extrahiert.
Dependencies.exe -apisets Autonom.exe
bringt - so wie ich es sehe - eine Liste aller möglichen DLLs. Wie würde ich eine Liste aller von meinem Programm Autonom.exe verwendeten DLLs bekommen?
1. PE-Bear > heruntergeladen und extrahiert.
Aber wie nun weiter? Es gibt keine exe-Datei.
Die genaue Fehleraussage ist so:
The Application has failedo start because its side-by-side configuration is incorrect. Please dee the application event log or usethe command-line sxstrace.exe tool for more detail.
Ich glaube, dass es kein Programm gibt, welches eine .exe darauf untersuchen kann, ob sie eine DLL verwendet. Ich habe dann auch noch das Programm ListDLLs gefunden und das sagt:
No matching processes were found.
Mein Programm, mit welchem ich das Problem testen möchte hat zwar nur die eine Befehlszeile
MsgBox(0,"Autonom","Hallo Welt")
Aber trotzdem glaube ich, dass es auf jeden Fall DLLs benutzt.
Meine Frage: Gibt es eine Möglichkeit ein Autoit-Programm so zu kompilieren, dass es die verwendeten DLLs mit einbindet? Sodass man es auf diese Weise auch in einer anderen Umgebung als windows 10 benutzen kann. Das wäre die einfachste Lösung.
Ich möchte mein Autoit-Programm von einem bootfähigen USB-Stick aufrufen lassen. Über die Datei WinPeshl.ini lasse ich das Programm aufrufen. Aber es bringt einen Fehler, weil in der minimalen WindowsPE-Umgebung keine DLLs zur Verfügung stehen. Ich müsste also die von meinem Programm benötigten DLLs mit einbinden. Aber wie kann ich ermitteln, welche DLLs mein Programm während seiner Arbeit benötigt?
Recht vielen Dank Kanashius für deine Antwort.
Ich habe mehrer Programm, in welchen ich mit Bitmaps in dieser Stringform arbeite. Ich möchte lediglich die entsprechenden Befehle austauschen und sozusagen nicht jeweils das ganze Programm "umkrempeln". Wahrscheilch gibt es wohl keine Möglichkeit an den String heranzukommen.
Ich möchte eine Pixelgruppe eines Fensters auslesen.
Bisher habe ich es so gelöst:
Das Ergebnis der Funktion Gruppe() ist ein String folgender Form:
0x424D5A0000000000000036000000280000000400000003000000010018000000000000000000C40E0000C40E00000000000000000000900000900000900000900000900000900000900000900000F9CB81F9F4F0F9F4F0F9F4F0
Es gefällt mir nicht, dass diese Lösung über eine Hilfsdatei erfolgt.
Die Funktion _ScreenCapture_Capture() bietet schließlich die Möglichkeit, dass statt $datei ein Leerstring eingesetzt wird. Dann wird als Ergebnis ein HBITMAP-Handle zu einem Bitmap –Bild zurückgegeben. Aber wie komme ich über das Handle an den String heran?
Zusammengefasst: wie müsste die Funktion Gruppe() aussehen, damit sie das gleiche Ergebnis bringt, jedoch ohne Hilfsdatei auskommt.
Vielen Dank schon einmal im Voraus!
Recht recht herzlichen Dank für deine ausführliche Erklärung.
Habe viel dazugelernt.
Gruß DOheim
Hallo Andy,
das Programm „Farben zählen“ hat ja nun auch die schwarzen Pixel erkannt.
Ich wunderte mich, dass es aber bei manchen Bitmapdateien abgebrochen ist und habe herausgefunden, dass die Bitmapdatei mindestens ein schwarzes Pixel besitzen muss.
Ich habe hinter der Sprungmarke
@count_colors:
die beiden Befehle eingefügt:
sub edx,0
jz @end
Nun ist alles in Butter.
Eine Frage habe ich noch:
Im Debugger-Fenster werden bei mir die übergebene Parameter um eine Position verschoben angezeigt. Z.B. die Werte von width und height stehen eigentlich in [esp+8] und [esp+12] werden aber im Debugger-Fenster unter [esp+12] und [esp+16] angezeigt.
Habe ich etwas falsch gemacht?
Das hatte ich bisher nicht bemerkt, dass im Kopf die Zeielnnummer steht. Vielen dank für de Hinweis.