Hallo Schnuffel,
Hallo Gemeinde,
Der Datenfluss ist folgendermaßen: Ich muss öfter ein sog. 0-Serientest machen. Dafür gibt es eine PDF-Checkliste (eben ein Formular) wo die Kopfdaten des zu testenden Computers und
verschiedene technische Daten wie z.B. Bios-Version, SDD, etc. ebenfalls in die Checkliste einzutragen sind. Danach ist ein Screenshot via HWiNFO zu erstellen und ein BIOS-Dump (Textdatei).
Alles zusammen muss dann zu einer Test-Protokoll-PDF gemerged werden, damit dieses auch weitergegeben werden kann. Bedingt durch vorgegebene Layoutanpassungen(z. B. Kopfzeile auf jeder Seite),
bessere Abbildung des Screenshots, etc. muss ich eben ein Rework der Protokolldatei machen.
Ich habe mir jetzt damit beholfen, das ich die Seite mit dem Screenshot (DinA4 quer), und das mehrseitige BIOS-Dump als Exceldateien angelegt habe. So kann ich zunächst die Kopfdaten per Autoit befüllen, den Screenshot einfügen und den Inhalt des BIOS-Dump auch in die notwendigen Seiten samt Kopfdaten mit Autoit einfügen und alles zu einer Datei mergen.
Excel war für mich die bessere Wahl, da dort a) die Zellen leichter zu adressieren sind und b) die Textboxen der Kopfzeile ebenfalls relativ easy zu beschreiben sind und
ich die BIOS-Angaben wie Bios-Option in die erste Spalte schreiben kann und den dazugehörigen Wert in eine weitere Spalte. Im Original sind dieses werte mittels Tabs formatiert, was in Word nicht wirklich schön ausgesehen hat... Vielen ieben Dank an dieser Stelle für all eure Ideen und Einlassungen. Sie haben mir sehr geholfen.
Beiträge von hipfzwirgel
-
-
Hallo Schnuffel,
aber gerade da stößt die UDF ja an ihre Grenzen. Das Testprotokoll soll wie im Template ersichtlich, jetzt auf jeder Seite
die Kopfzeile haben. Wie du selber gesagt hast, ist es nicht möglich mit der UDF das Template als Basis zu nehmen.
Ich habe versucht die Grafik (Screenshot von HWiNFO64) in das PDF-Template einzufügen, sodass die Kopfzeile nicht überlagert wird aber das habe ich bis jetzt nicht hinbekommen.
Auch Chatgpt hat mir keine praktikable Lösung geben können.Bisher füllt mein Autoit-Programm auf der ersten Seite (Checkliste als PDF-Formular) die Kopfdaten und verschiedene technische Parameter des
zu prüfenden Computers aus. Dann wurde der notwendige HWiNFO64-Screenshot per UDF in ein PDF(leeres Blatt ohne Kopfzeile) konvertiert - das mit der Ausrichtung und Größe haben wir ja jetzt
hinbekommen - aber eben nicht die (ausfüllbare) Kopfzeile. Im letzten Schritt erzeugt mein Proggi aus einem Textfile (Bios-Dump) eine weitere PDF (leider auch ohne die Kopfzeile). Alle 3 PDF-Dateien werden dann via pdftk.exe von meinem Proggi gemergt zu einem Testprotokoll.
Fazit: Mein Proggi machte bisher alles was notwendig war. Nur leider muss ich eben jetzt überall die Kopfzeile einfügen...
Daher der Gedanke die Seiten 2 mit dem Screenshot und die Seiten mit dem Bios-Dump als Excel zuerstellen, die notwendigen Angaben für die Kopfzeile und die Textdaten des Bios-Dump
lassen sich via Autoit dort in die Zellen eintragen und die Grafik hoffentlich wie in Word einfügen. Das ganze dann als PDf speichern wird ja hoffentlich auch i-wie gehen... -
Hallo gmmg,
das ist richtig und zwar wegen der Möglichkeit dort, dass Word-Dokument als PDF-Formular(befüllbare Textfelder) zu exportieren.
Geht aber nur wenn das Wordfile im Kompatibilitätsmodus gespeichert ist und die Textfelder auch "alter Art sind".
@ Schnuffel:
ich denke ich werde die Seite mit der Grafik, sowie die Seite mit dem Textfile in Excel nachbauen.
Dort kann ich ja die Zellen dann beschreiben, eine Grafik einfügen und das Textfile via z. B. FileReadArray eben falls in ein Excel Template eintragen.
Könnte man die Excel-Files dann via Autoit als PDF speichern, so das ich sie dann mergen kann? -
Hallo Musashi,
das ist traurig. Da wird dann wohl keine Antwort kommen -
Hallo Schnuffel,
ich habe heute morgen im Autoitscript.com eine Nachricht an taietel gesendet mit der Frage nach einem Howto.
Dort bekam ich den Hinweis eingeblendet, er sei aktiv. Was auch immer das heissen mag... Schauen wir mal ob ich eine Antwort bekomme.
Wenn ja werde ich sie hier posten. Mein Template ist im Anhang. Es handelt sich um ein PDF-Formular. Die ausfüllbaren Felder sollten erhalten bleiben,
wenn i-wie möglich.
Im Vorfeld schon jetzt meinen aller herzlichsten Dank für deine Mühen... -
Hallo Schnuffel,
hallo Gemeinde,
gibt es eigentlich so etwas wie ein Howto für die UDF?
Ich konnte im Originalbeitrag leider nur die Examples finden aber
eben keine "Bedienungsanleitung". ich würde gerne ein von mir entworfenes template als Basis-PDF nutzen...
konnte aber weder in der Func initpdf noch sonst eine Möglichkeit finden dies umzusetzen... -
Hallo Schnuffel,
meinen allerherzlichsten Dank an dich für deine Einlassung. Diese hat mir geholfen zu erkennen warum die Änderungen der Parameter
bei meiner Funktion(die ich höchstwahrscheinlich aus dem o.g. OriginalThread zur UDF oder aus der Hilfe zu meiner von Musashi erwähnten Anfrage heraus generierte),
keine, bzw. nicht die Auswirkungen hatten, die sie hätten haben sollen. Ich habe es nicht ganz zu Ende analysiert aber die Originalfassung "meiner" Funktion
hat eine Routine die nicht nur das Öffnen einer Grafikdatei behandelt, sondern auch das Öffnen mehrerer Dateien (was ich aber nicht benötige!).AutoIt
Alles anzeigenFunc _SelectImages() Local $sImg = FileOpenDialog("Select images", "\\Pfad zur Grafikdatei", "Images (*.jpg;*png)", 4) If @error Then MsgBox(4096, "", "No File(s) choosen") Else Local $aImgs = StringSplit($sImg, "|", 3) ;set the properties for the pdf _SetTitle($sNameImg & "Img2PDF.pdf") _SetSubject("Convert image(s) to pdf") _SetKeywords("pdf, AutoIt") ;_OpenAfter(True) ;open after generation _SetUnit($PDF_UNIT_PT) ;_SetPaperSize("a4") _SetPaperSize("CUSTOM", 1057, 548) _SetZoomMode($PDF_ZOOM_CUSTOM, 90) _SetOrientation($PDF_ORIENTATION_LANDSCAPE) _SetLayoutMode($PDF_LAYOUT_CONTINOUS) ;initialize the pdf _InitPDF(@AppDataDir & "\HaSc\" & $sNameImg & "Img2PDF.pdf") If UBound($aImgs) <> 1 Then ;=== load resources used in pdf === For $i = 1 To UBound($aImgs) - 1 _LoadResImage("img" & $i, $aImgs[0] & "\" & $aImgs[$i]) Next ;load each image on it's own page For $i = 1 To UBound($aImgs) - 1 _BeginPage() ;scale image to paper size! _InsertImage("img" & $i, 2, 9, 17, 15) ; Diese Werte hatte ich angepasst, ohne das es eine Auswirkung auf die Grafik hatte _EndPage() Next Else _LoadResImage("taietel", $aImgs[0]) _BeginPage() ;scale image to paper size! _InsertImage("taietel", 2, 9, 17, 15) ; Diese Werte hatte ich angepasst, ohne das es eine Auswirkung auf die Grafik hatte _EndPage() EndIf ;then, finally, write the buffer to disk _ClosePDFFile() ResetPDFSettings() Sleep(300) GUICtrlSetData($EditSysNot, "HW-Summary-file is converted to pdf..." & @CRLF & @CRLF, 1) EndIf EndFunc ;==>_SelectImages
Ich glaube, dass das Zusammenspiel der UDF mit der in der Funktion verwendeten Array-Techniken schuld sind (genauer die Indizes als Pfadangaben).
Der Rest des Codes ist, soweit ich das erkennen konnte gleich. Lasse mich aber gerne korrigieren
Ich kann jetzt durch die neue Func die Grafik-Datei in die ausgewählte Größe 1057 x 548 skalieren und es wird ein ebenso großes PDF erzeugt. ERGO: Fall zunächst gelöst.
So habe ich die Funktion jetzt angepasst:AutoIt
Alles anzeigenFunc _SelectImages() Local $sImg = FileOpenDialog("Select images", "Pfad zur Datei", "Images (*.jpg;*png)", 4) If @error Then MsgBox(4096, "", "No File(s) choosen") Else ; PDF Properties _SetTitle($sNameImg & "Img2PDF.pdf") ; Titel _SetSubject("Convert image(s) to pdf") ; Thema _SetKeywords("pdf, AutoIt") ; Stichwörter _OpenAfter(True) ; nach Erstellung im Anzeigeprogramm öffnen _SetUnit($PDF_UNIT_PT) ; Maßeinheit zur Positionierung setzen ;_SetPaperSize("A4") ; Papierformat angeben _SetPaperSize("CUSTOM", 1057, 548) ; 548 = H, 1057 = W _SetZoomMode($PDF_ZOOM_CUSTOM, 80) ; Ausgabezoomfaktor angeben _SetOrientation($PDF_ORIENTATION_LANDSCAPE) ; Orientierung Hoch- Querformat ($PDF_ORIENTATION_PORTRAIT / $PDF_ORIENTATION_LANDSCAPE) _SetLayoutMode($PDF_LAYOUT_CONTINOUS) ; Seiten anhängen ; Init und Fonts laden _InitPDF(@AppDataDir & "\HaSc\" & $sNameImg & "Img2PDF.pdf") _LoadFontTT("_ARIAL", $PDF_FONT_STD_ARIAL) _LoadFontTT("_ARIALB", $PDF_FONT_STD_ARIAL, $PDF_FONT_BOLD) ; _LoadResImage( $sImgAlias , $sImage ) _LoadResImage('ImgFile', $sImg) _BeginPage() ; Image einfügen _InsertImage('ImgFile', 1, 1, 1057, 548) _EndPage() _ClosePDFFile() ResetPDFSettings() Sleep(300) GUICtrlSetData($EditSysNot, "HW-Summary-file is converted to pdf..." & @CRLF & @CRLF, 1) EndIf EndFunc ;==>_SelectImages
Nochmals: Aller herzlichsten DANK an Alle und explizit an Schnuffel.
-
Hallo Gemeinde,
vielen lieben herzlichen Dank an euch alle. ich werde mir die Woche die Vorschläge, bzw. Denkanstöße anschauen.
Und Ja, es handelt sich um die MPDF-UDF von taietel
@ Musahi: Ja ich habe damals das Thema insofern angefragt, als das ich eben eine Möglichkeit gesucht habe, überhaupt erst mal
mit Autoit PDF Dateien zu erzeugen.
Jetzt geht es mir eben darum, dass ich das Layout der PDF-Datei anpassen muss. Ich versuche im ersten Schritt dein Vorschlag mit _SetPaperSize.
Mal sehen ob ich das dann so hinbekomme... -
Hallo Gemeinde,
bisher wandle ich png-Dateien in PDF um, mithilfe der MPDF_UDF.au3 von Mihai Iancu. Das Problem ist für mich nun, dass die UDF die Grafik-Datei
leider in ein DIN A4-PDF quasi einfügt und somit die Grafik zentriert rein skaliert. Sieht furchtbar aus
Ich habe versucht die PNG-Datei wenigstens als Landscape einzufügen, war aber nicht erfolgreich.
Die Option $PDF_ORIENTATION_LANDSCAPE hat keine Auswirkung und ob oder was ich da sonst noch einstellen muss konnte ich nicht heraus finden.
Ich brauche eine Möglichkeit die Grafik-Datei direkt wie sie ist, in eine PDF umzuwandeln. Hat jemand eine Idee ob das mit der UDF auch geht oder
könnte ich das per Autoit i-wie anders durchführen?
Auf Drittanbietertools würde ich gerne verzichten... -
Hallo Kanashius und Aspirinjunkie,
vielen lieben Dank für eure Erklärungen. Damit ist mir klar warum das nicht funktioniert. Aber es ist schon sehr seltsam, dass das eben seither funktionierte und dann auf einmal
und das nach Monaten oder Jahren nicht mehr.
Im Übrigen, der Code von Moombas mit dem Stringsplit funktioniert. Ich habe jedoch den Pfad zur XMl-Datei angepasst (sprich: die Datei nach C:\Daten kopiert) wegen des Freizeichens im Ordnername "Event Viewer". Das spart eine Menge Anführungszeichen und der Code für die Parameter muss nicht angepasst werden.
Das ist jetzt die Ausgabe von _DebugArraydisplay:
Row|Col 0
# 0|"eventvwr.exe"
# 1|"/v:C:\daten\Views\View_0.xml"
Auch für Euch ein gutes und vor allen dingen gesundes neues Jahr 2025 und nochmals vielen herzlichen Dank für die Erklärung -
Hallo alle Miteinander,
zunächst möchte ich allen ein gutes aber vor allem ein gesundes neues Jahr 2025 wünschen und mich für die Beiträge bedanken.
Leider ist aufgrund der Diskussion der Kern der Frage ins Abseits gerückt:
Worin besteht der Unterschied im Aufruf von Shellexecute, dass dieser funktioniert wenn ich
ShellExecute("eventvwr.exe", "/v:""C:\ProgramData\Microsoft\Event Viewer\Views\View_1.xml""")
direkt aufrufe und der Aufruf von
Shellexecute($aArray[9]) -wobei der Inhalt des Indexes 9 exakt der Zeichenfolge des manuellen Aufrufes entspricht., nicht funktioniert und er die Datei nicht findet...
Die Debugausgabe von ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : ShellExecute(' & $aArray[9] & ') - '& @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
gibt folgendes Ergebnis zurück:
@@ Debug(14) : ShellExecute("eventvwr.exe", "/v:""C:\ProgramData\Microsoft\Event Viewer\Views\View_1.xml""")
Das zeigt, dass der Shellexecutebefehl exakt gleich ist, also sollte dieser doch auch funktionieren
Der Vorschlag von Moombas mit Stringsplit macht ja im Grunde nichts anderes als den String des Indexes in 2 Teile zu zerlegen und diese dann zum gleichen Shellexecutebefehl wie oben zusammenzusetzen... -
Hallo Gemeinde,
VERZWEIFLUNG PUR
ich habe bereits in 2019 ein AutostartProgramm erstellt, das bisher perfekt funktionierte. Seit Mitte letzter Woche aber lässt sich der Eventviewer nicht mehr starten...
Ich habe alles was ich nach dem Rechnerstart geöffnet haben möchte in einer Textdatei stehen.
Auszug:
E:\Downloads\KeePass-2.57\KeePass.exe
"C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE"
.
.
.
.
.
.
"eventvwr.exe", "/v:""C:\ProgramData\Microsoft\Event Viewer\Views\View_1.xml"""Rufe ich die Letzte Zeile mit ShellExecute("eventvwr.exe", "/v:""C:\ProgramData\Microsoft\Event Viewer\Views\View_1.xml""") auf, funktioniert der Aufruf und die Benutzerdefinierte Ansicht wird geöffnet.
Rufe ich hingegen den Aufruf mittels vorher ausgelesener Text-Datei auf (FileReadToArray) bekomme ich den Fehler: "Datei nicht gefunden..."
Code
Alles anzeigen#include <AutoItConstants.au3> #include <WindowsConstants.au3> #include <Debug.au3> ShellExecute("eventvwr.exe", "/v:""C:\ProgramData\Microsoft\Event Viewer\Views\View_1.xml""") "eventvwr.exe", "/v:""C:\ProgramData\Microsoft\Event Viewer\Views\View_1.xml""" ; Inhalt aus $aArray[9] $sPfad = "E:\Arbeit\Autostart.txt" Local $aArray = FileReadToArray($sPfad) _DebugArrayDisplay($aArray) ShellExecute($aArray[9]) ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aArray[9] = ' & $aArray[9] & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
Der Aufruf aus Zeile 5 funktioniert. In Zeile 6 habe ich den Inhalt des Indexes aufgeführt.
Hat jemand eine Idee warum die Zeile 13 dennoch nicht funktioniert?
und warum hat das seit Mitte 2019 funktioniert und seit letzter Woche nicht mehr?????
-
Hallo Gemeinde,
dank des Schwester-Forums autoitscript.com ist die Lösung gefunden:AutoIt
Alles anzeigen_WinAPI_AttachConsole() Local $hConsoleOut = _WinAPI_GetStdHandle(1) Local $sMessage = "Enter [y] for deactivating MinimalLength-Option or [n] for cancel:" & @CRLF & @CRLF _WinAPI_WriteConsole($hConsoleOut, $sMessage) Local $hKBProc = DllCallbackRegister(KeyProc, "long", "int;wparam;lparam") $hKBHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hKBProc), _WinAPI_GetModuleHandle(0)) While Sleep(100) Switch $iResp Case 1 ; Userinput n = no _WinAPI_WriteConsole($hConsoleOut, "Deactivating the Minimal-Length-Option was denied." & @CRLF & @CRLF & "Program is exiting in 3 seconds") Sleep(3000) Send("{ENTER}") Exit Case 2 ; Userinput y = Yes _WinAPI_WriteConsole($hConsoleOut, "Deactivating the Minimal-Length-Option is started") EraseMinlen() ; Ruft die Funktion EraseMinLen auf ExitLoop Case 3 ExitLoop EndSwitch WEnd _WinAPI_UnhookWindowsHookEx($hKBHook) DllCallbackFree($hKBProc) ;### zusätzlich wird die KeyProc func benötigt... #### Func KeyProc($nCode, $wParam, $lParam) If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hKBHook, $nCode, $wParam, $lParam) Local $tKeyHook = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam) If $wParam = $WM_KEYDOWN Then Switch $tKeyHook.vkCode Case 0x59, 0x4E ; y / n $iResp = $tKeyHook.vkCode = 0x4E ? 1 : 2 Return 1 Case 0x0D $iResp = 3 Case Else Return 1 EndSwitch EndIf Return _WinAPI_CallNextHookEx($hKBHook, $nCode, $wParam, $lParam) EndFunc ;==>KeyProc
Damit lässt sich mit der Console wunderbar interagieren
auch von hier aus noch ein herzliches Dankeschön
an Nine von https://www.autoitscript.com/forum/topic/21…exe-with-a-cmd/ -
Hallo Kanashius,
vielen lieben Dank für dienen Hinweis. Er funktioniert perfekt.
Bitte entschuldige die späte Rückmeldung. Kam erst heute dazu zum testen. -
Hallo Gemeinde,
mit der Zeile $HandleHW = WinActivate("[REGEXPTITLE:(?i)(.*Pro Report.*|.*Mozilla Firefox.*)]") ermittle ich das Handle eines Firefoxtabs(der
Name des Tabs ändert sich leider immer wieder, daher RegExpTitle!) und mit WinClose($HandleHW) schliesse ich ihn. Allerdings wird der Firefox
dadurch komplett geschlossen und nicht nur der Tab.
Kann man überhaupt nur einen einzelnen Tab schliessen? -
Hallole,
danke für eure Eingaben.
@ Moombas: das ich daran nicht selbst gedacht habe...
@ water: eigentlich ja. Was uns ja wieder zur Idee von Moombas zurückführt -
Hallo Schnuffel,
das Proggi muss im Windows OS funktionieren, in Windows PE und eben als ConsolenProgramm um vollautomatisiertes Ändern oder Löschen
des BIOS-Passwortes(wir reden hier u.U. von mehreren hundert Rechnern...) zu ermöglichen. Die Möglichkeit das Proggi
mit Commandline-Parametern zu starten wurde bereits in einige unserer IT-Prozesse integriert.
Die genannte BIOS-Option verhindert das Löschen des BIOS-Passwortes. Also ist die Interaktion mit demjenigen der das Proggi ausführt notwendig.
Das Seltsame ist ja, das die Interaktion grundsätzlich funktioniert. Nur finde ich keine Lösung die "Einmischung" der Console zu verhindern...
Im Übrigen kam die Hilfe WinAPi zu benutzen hier aus dem Forum, da ConsoleWrite/Read in diesem Falle ja nicht funktioniert, weil das Proggi ja ein GUI-Programm ist.
Ich werde nun die Idee von Solvesmart verfolgen und einen weiteren Parameter dafür nutzen.
Evtl. weiss ja doch noch jemand eine Lösung? -
Hallo Solve-Smart,
da das Proggi ja in einer CMD-Console läuft, finde ich sieht es einfach komisch aus, wenn dann eine Inputbox
aufpoppt. Noch dazu, dass diese warum auch immer, nicht wie in der Hilfe steht default zentriert auf ging, sondern
i-wo auf dem Desktop...
hm, das mit dem Parameter wäre eine Möglichkeit. Danke für die Idee.
Vielleicht hat jemand trotzdem eine Idee wie ich die Benutzereingabe "umleiten" kann... -
hallo zusammen,
dann will ich nochmal das Problem beschreiben:
Mein Programm ist als exe kompiliert und kann sowohl per GUI-Version als auch in einer CMD-Konsole mit Commandline-Parametern
gestartet werden.
Nun ist es so, das eine Bios-Option (Minimal lenght) das Löschen des Biospasswortes verhindert. Der User soll also auf Consolenebene
bestätigen können, dass das Proggi diese Option deaktivieren soll um dann einen Reboot des Rechners durch zu führen.
Der Stand meines Codings ist, dass nach der Benutzereingabe auf o.a. WinApi-Frage, der Fehler kommt,
y' is not recognized as an internal or external command, operable program or batch file.
Mir ist klar warum. Die Eingabe interagiert mit der Console und nicht mit dem ausgeführten Programm. Leider finde ich
genau hierfür aber keine Lösung. Eine Inputbox habe ich schon getestet, sieht aber echt schlecht aus...AutoIt
Alles anzeigen_WinAPI_WriteConsole($hConsole, @CRLF & " MinimalLength-Option is set, which prevents the bios lock from being deleted!!! " & @CRLF & " Should the option be deactivated (restarting the computer is then mandatory)?") _WinAPI_WriteConsole($hConsole, @CRLF & " Enter [y] for deactivating ML-option or [n] for cancel: " & @CRLF) ; $hConsole ist das Handle der CMD-Session ; Benutzereingabe lesen ; Buffer erstellen, um die Eingabe zu speichern Local $tBuffer = DllStructCreate("wchar[256]") ; Buffer für 256 Zeichen Local $dwCharsRead = DllStructCreate("dword") ; Anzahl der gelesenen Zeichen ; Benutzereingabe über die WinAPI-Funktion ReadConsole lesen DllCall("Kernel32.dll", "bool", "ReadConsoleW", "handle", $hConsoleinput, "ptr", DllStructGetPtr($tBuffer), "dword", 256, "ptr", dllStructGetPtr($dwCharsRead), "ptr", 0) ; $hConsoleinput ist das Inputhandle der CMD-Session (Const $STD_INPUT_HANDLE = -10 _ $hConsoleinput = _WinAPI_GetStdHandle(0) ; Standard-Input) ; Anzahl der gelesenen Zeichen abrufen Local $iCharsRead = DllStructGetData($dwCharsRead, 1) ; String aus dem Buffer extrahieren und abschneiden Local $sInput = DllStructGetData($tBuffer, 1) $sInput = StringLeft($sInput, $iCharsRead - 2) ; Entferne das abschließende CRLF MsgBox(0, "ausgabe Input", $sInput) ; hier kommt kein Inhalt, da die Eingabe eben mit der CMD-Console interagiert.
-
Hallo Gemeinde,
eines meiner Programme kann man sowohl mit GUI starten, als auch mit commandline parametern.
Wird es mit Commandline Parametern gestartet, gebe ich Meldungen des Proggis mit _WinAPI_WriteConsole aus.
Ich müsste jetzt nachträglich den Benutzer fragen ob er eine Aktion starten möchte oder nicht. Etwa so:
Code_WinAPI_WriteConsole($hConsole, @CRLF & " MinimalLength-Option is set, which prevents the Passwort from being deleted!!! " & @CRLF & " Should the option be deactivated (restarting the computer is then mandatory)?" & @CRLF & "enter y or n:")
Gibt es eine Möglichkeit via _WinAPI, die Benutzereingabe auszulesen und zu verarbeiten?
Ich konnte zwar in der MSDN-Bibliothek etwas über ReadConsole finden(https://learn.microsoft.com/en-us/windows/console/readconsole) aber nichts dazu in AutoIt
p.s.: ConsoleWrite und -read gehen hier nicht, da das Proggi NICHT als Consolen-Anwendung kompiliert ist!