Beiträge von Schnuffel
-
-
mal eine gewagte Theorie...
nachdem in der 2. Zeile als vorletztes Byte ein "0x" steht.....
0x wäre für mich ja der Beginn des Strings.
Also sehe ich zwei Verschiebungen.
1. Die jeweils ungeraden Zeilen wurden mit der darauffolgenden geraden Zeile vertauscht
2. die Zeile an sich wurde "gespiegelt" von vorn nach hinten. Soll heißen die Zeile ist jeweils "rückwärts" zu lesen.
Wenn man daraus einen String baut "könnte" da was bei raus kommen ...
ach ja, jeweils 2 Byte wurden auch noch vertauscht
Soll heißen, die Position und die Umkehr des "0x" gibt eigentlich alles an ...
-
ich fürchte für eine Einschätzung fehlen (zumindest mir) noch ein paar Informationen.
Ich habe im Internet die Software Stream Deck von Elgato gefunden.
Die hat aber nach meinem ersten Eindruck nichts mit CAD Systemen zu tun.
Ich vermute, dass deshalb auch das Feedback sehr überschaubar bleibt.Stell uns doch unter Vorlage von Screenshot's und oder detailierter Beschreibung vor,
was du womit erreichen möchtest.
Ich bin mir sicher, dass unter uns welche sind, die dir weiter helfen können.

-
Hallo,
ich denke dein Aufruf ist nicht ganz korrekt.

bitte ersetze das mal durch:
AutoIt$iPID = Run("powershell.exe" & ' -ExecutionPolicy ByPass -File "d:\Wilfried\Desktop\mod.ps1"', "", @SW_Maximize, 0x2) ProcessWaitClose($iPID) ConsoleWrite(StdoutRead($iPID) & @CRLF)ich denke die "0" die du immer zurückbekommst sagt lediglich aus, dass dein Powershell Skript an sich ohne Fehler beendet wurde.
Durch den Stream "0x2" = Stdout wird das Return des Skriptes selbst weitergeleitet.
Dieses kann durch StdoutRead ausgelesen werden. (in der autoit Hilfe kannst du das unter "StdOutRead" nachlesen)
Wenn Du nur mit 0 / 1 arbeitest, kann autoit dass auch als False / True verarbeiten.
Achtung, autoit macht es genau andersrum wie alle anderen^^
0 = nicht erfolgreich
1 = erfolgreich

Einzig: zwischen dem Aufruf deines PS-Skript's und dem auslesen des Stdout darf kein anderer Befehl dazwischen laufen.
Ansonsten ist der Stream verworfen und leer.
vergleiche:
AutoIt$iPID = Run("powershell.exe" & ' -ExecutionPolicy ByPass -File "C:\Users\Oliver\Desktop\PS.ps1"', "", @SW_HIDE, 0x2) ProcessWaitClose($iPID) ConsoleWrite(StdoutRead($iPID) & @CRLF) If StdoutRead($iPID) = True Then MsgBox(0, "", "juhu")und
-
ist aber wohl aus unerfindlichen Gründen so.
Auf meinem System lese ich folgende Strings aus:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion = Windows 10 Pro
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion = Windows 10 Enterprise
Warum das so ist muß man M$ fragen

Auf meinem PC läuft ein Windows 11 Pro

-
es gibt bei der Installation von autoit eine Abfrage, ob Scripte im x86 oder x64 Mode gestartet werden sollen.
Entsprechend werden bestimmte Variablen gesetzt. Dies betrifft auch die Zweige der Registry.
Ich vermute mal du startest deine Scripte in Scite im x86 Mode und compilierst sie dann im x64 Mode.
Zumindest ist das die Einzige Erklärung die mir spontan einfällt.
-
Hallo,
die Reihenfolge der Bootmedien wird im BIOS festgelegt.
Wenn du einen Markenrechner vor dir hast, kannst du diese Einstellung mit einem Tool des jeweiligen Herstellers anpassen.
Andernfalls sehe ich da keine Möglichkeit
-
... off Topic
< Sarkasmus an ...>
persönliche Glaubensfrage ...
ich denke es heißt offiziell "autoit" als URL-Schreibweise von "automate it".
Durch die Herkunft aus dem engl. wird aus meiner Sicht alles klein geschrieben.
Ob man die beiden Worte trennt oder zusammenschreibt würde ich offen lassen.
Nachdem der Begriff inzwischen zu einem eigenständigen Begriff in der IT wurde,
kann man durchaus "autoit" so stehen lassen.

Da aber heutzutage sich kaum noch jemand die Mühe macht Groß- und Kleinschreibung zu verwenden
ist der zu erwartende Benefit eher als gering anzusehen...
< Sarkasmus aus ...>
-
ich war anfänglich auch wieder an µ-iterinnert.

Ich konnte mich aber mangels Zeit leicht zurückhalten daran teilzunehmen.
Ich würde mich freuen, wenn mal wieder so ein Event in mehreren Stufen gestartet werden würde.
PS: Andy ist leicht unterschätzt, aber hier einer der Cracks.
... und für mich auch der Guru in Assembler in autoit.

-
Nachtrag in autoit:
Spoiler anzeigen
#include <AutoItConstants.au3>
$iPID = Run(@ComSpec & " /c " & "cscript %windir%\system32\slmgr.vbs /dlv", "", @SW_HIDE, $STDOUT_CHILD)
$sOutput = ""
While 1
$sOutput &= StdoutRead($iPID)
If @error Then ExitLoop
WEnd
MsgBox(0, "Licencing Information", $sOutput)
Aus dem Output kannste dir ja dann die benötigte Info ziehen.
original Post: https://www.autoitscript.com/forum/topic/14…comment=1420964
hier als Array mit Ausgabe des Status:
Spoiler anzeigen
#include <AutoItConstants.au3>
#include <Array.au3>
$iPID = Run(@ComSpec & " /c " & "cscript %windir%\system32\slmgr.vbs /dlv", "", @SW_HIDE, $STDOUT_CHILD)
$sOutput = ""
While 1
$sOutput &= StdoutRead($iPID)
If @error Then ExitLoop
WEnd
Local $aOutput = StringSplit($sOutput,@CR)
;_ArrayDisplay($aOutput)
Local $sLicenseInfo = StringSplit($aOutput[16],": ",1)
MsgBox(0, "Licencing Information", $sLicenseInfo[2])
-
sorry, dass du das in autoit haben möchtest habe ich irgendwie überlesen ...
-
-
ich würde für die Prüfung einfach den Aufrufpfad des Scriptes prüfen.
ConsoleWrite(@ScriptFullPath & @CRLF)
-
-
-
mein Ansatz quick & dirty...
Code
Alles anzeigenLocal $Error, $k, $aUserData, $sUninstallString Local $Regx64 = "" If @OSArch = "X64" Then $Regx64 = "64" Local $sKeyBase = "HKLM" & $Regx64 & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData" Local $sKey2 = "Products" Local $sKey3 = "InstallProperties" Local $sDisplayName = "WinAppDeploy" Local $sSearchKey = "DisplayName" Local $sFindString = "UninstallString" $aUserData = RegEnumKey($sKeyBase, 1) While $Error = 0 $k += 1 $Return = RegEnumKey($sKeyBase & "\" & $aUserData & "\" & $sKey2, $k) If @error Then $Error = 1 If RegRead($sKeyBase & "\" & $aUserData & "\" & $sKey2 & "\" & $Return & "\" & $sKey3, $sSearchKey) = $sDisplayName Then $sUninstallString = RegRead($sKeyBase & "\" & $aUserData & "\" & $sKey2 & "\" & $Return & "\" & $sKey3, $sFindString) ExitLoop EndIf WEnd MsgBox(0,"UninstallString für " & $sDisplayName, $sUninstallString) -
ich denke das Problem liegt schon in den Aufurfparametern für Robocopy...
an dieser Stelle
ist doch die Geschichte für Robocopy zu Ende und der Rest ist irrelevant.

Man sollte erstmal erforschen, was der Threadersteller mit dem Robocopy Befehl überhaupt kopieren will.
Ansonsten ist Oscar's Vorschlag genau das was du suchst.
-
Also...
normalerweise wird hier ein Problem geschildert das man selber nicht lösen kann.
Du hast zu Beginn deines Posts den Fehler aller Fehler gemacht. Du hast dir selbst eine Lösung ausgedacht und suchst nach einer Umsetzung dafür.
ABER

Deine Lösung ist einfach nicht gut. Daher sind auch die Lösungsansätze die wir liefern nicht sonderlich gut.
Ich unterstelle jetzt mal was du erreichen möchtest:
- Download von WhatsAppSetup.exe
- Start der Installation von WhatsApp Setup.exe
- Nach Installation --> "aufräumen"
Den Doanload hast du ja schon hinbekommen, sehr gut

Mit der Installation ist das so eine Sache. I.d.R. haben diese Installer-Programme je nachdem mit welchem Installer diese erstellt wurden, verschiedene "Switches" mit denen die Installation gesteuert werden kann. Unter anderem auch ein Schalter für die "leise" Installation. Diese installiert das Programm mit den "default" Einstallungen ohne Anzeige einer GUI und ohne Usereingaben.
In diesem Fall würde der Schalter vermutlich folgendermaßen aussehen: "/S"
Als Codezeile:
Wenn du die Parametrierung eines Befehls in autoit sehen willst, dann markieren den gesamten Befehl und drücke F1:
Function ShellExecuteWait
ShellExecuteWait ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )Mit dieser Codezeile wird das Installationsprogramm gestartet, angewiesen die Installation bis zum Ende ohne Usereingaben auszuführen (/S)und zu warten, bis dieses Programm fertig ist (Process beendet)Was du danch mit den "Überresten" machst ist dann ein eigenes Thema

-
-
ich krieg das nicht mehr hin. War wohl meiner Unwissenheit bezüglich DlLCalls und Owner Drawn geschuldet irgendwas zusammengschustert zu haben dass zumindest einer Trennlinie den grünen Anstrich gab.
Ich würde mal im engl. Forum fragen, da haben sich melba und Co schon mehrfach mit dem Thema befasst