Hallo Autoit-Professionals,
ich habe immer wieder in meinen Scripten beim Kompilieren weitere Ressourcen-Felder eingefügt wie z.B. Made by = HaSc.
Warum werden diese im Explorer unter Details nicht angezeigt, bzw. wie richte ich es ein, dass sie angezeigt werden?
Danke für die Tipps...
Beiträge von hipfzwirgel
-
-
Hallo Alpines, hallo Conrad,
danke für die Infos,
Das Programm bietet mir One-Klick-Lösungen zu verschiedenen immer wiederkehrenden Tätigkeiten an meinem Rechner und auf von mir benutzte Testrechnern. Z.B.
Öffnen von Ordnern oder ausführen von Windows-Tools. Auch das Einloggen in verschiedene Datenbanken/Systeme die ich mehrmals täglich benötige gehört
dazu und das ist auch der Grund warum es für andere nicht nutzbar sein soll. Für Test-Scenarien habe ich das Proggi nämlich auf einem Share liegen, damit ich auch auf den Testrechnern
darauf Zugriff habe. Deswegen auch kein "Schnickschnack" wie mehrere Versuche oder so. Wenn das Login nicht passt ist Schluss und Exit. Eine Verteilung an andere ist ohnedies
nicht vorgesehen, da es sehr personalisiert erstellt ist. Andere Kollegen haben ja andere Tätigkeiten und andere Schwerpunkte So gesehen ist das Proggi nicht wirklich wertvoll für andere.
Vielleicht könnte man ja mal AutoIt so designen oder eine Möglichkeit einbauen, das es nicht disassemblierbar und es keine Möglichkeit mehr gibt aus einer EXE
wieder Programmcode heraus zu bekommen. Wäre echt cool. -
Hallo Alpines,
dann würde also eine kompilierte Exe-Datei durch einen Disassembler wieder zu lesbarem Quellcode führen?
Wenn ja, wie würde man das verhindern können? -
Hallo Zusammen,
zunächst vielen lieben Dank für eure Antworten. Dazu habe ich noch eine Verständnisfrage: Ich hatte mal im Forum und im Netz recherchiert und ging davon aus, dass es mit den
neuen Versionen von Autoit keine Möglichkeit des Decompilierens usw. mehr gibt. so war zumindest der Tenor. Sollte das nicht Stimmen? -
Hallo Autoit-Gemeinde,
ich glaub ich stehe total im Wald und sehe den Wald vor lauter Bäumen nicht
Könnte mir jemand auf die Sprünge helfen, wie ich einem beliebigen Script/Programm ein Login hinzufüge? Also das Autoit-Proggi(zur exe kompiliert) soll beim Starten erst mal ein Login-fenster anzeigen.
User gibt die Daten ein > Programm startet weiter bzw. ist erst jetzt benutzbar.
Ich habe eine Gui mit Inputs für PWD und User entworfen, eine IF-Abfrage geschrieben die das PWD und den Username auf Richtigkeit prüft . Bei True sollte das Proggi weiter laufen bei False beendet werden.Code
Alles anzeigen#Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 615, 437, 192, 124) $User = GUICtrlCreateInput(" ", 48, 56, 249, 21) $Label1 = GUICtrlCreateLabel("User:", 56, 32, 75, 17) $Label2 = GUICtrlCreateLabel("PWD-Eingabe:", 56, 120, 75, 17) $pwd = GUICtrlCreateInput("Laberbla", 48, 144, 249, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD)) $Los = GUICtrlCreateButton("Los", 80, 216, 153, 41) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### $sPasswort = "Qwertzu7" $sBeschmutzer = "Username" While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Los Pfunkzion() EndSwitch WEnd Func Pfunkzion() $kennw = GUICtrlRead($pwd) $benutz = GUICtrlRead($user) If $kennw == $sPasswort And $benutz == $sBeschmutzer Then MsgBox(0, "Meldung PWD", "das PWD stimmt!!") GUICtrlSetData($pwd, "") GUICtrlSetData($user, "") ????? Wie komme ich von hier ins Programm????? Else MsgBox(0, "Meldung PWD", "Shocking: das PWD oder der Beschmutzer stimmt NICHT!!" & @CRLF & @CRLF & "Das Proggi wird beendet!!!", 5) Exit EndIf EndFunc MsgBox(0, "Weitergehts", "jetzt soll hier das Proggi weitergehen")
Das Login ist für ein Proggi gedacht, dass nur ich selbst benutze und es unbenutzbar machen soll, für den Fall, dass sich jemand am Bürorechner zu schaffen macht.
-
Hallo Water,
sehr cool. Vielen Dank dafür. Nur komisch das meine Google Suche gestern das nicht angezeigt hat.
Fazit: Du bist besser als Google -
Hallo Water,
da ich nicht wusste ob es überhaupt und in welcher Form geht, hatte ich mir noch keine Gedanken gemacht. Ich denke aber das setzen eines Kommentares wird wohl
elegant sein oder hast du eine bessere Idee? -
Hallo AutoIt-Profis,
gibt es die Möglichkeit das das Programm, nachdem die Bilder eingefügt sind, das Word-Dokument (unsichtbar) so markiert, dass die Bilder mit dem Programm eingefügt wurden? Z.B. durch Setzen eines Kommentars in den Dateieigenschaften oder durch einen Eintrag in weißer Schrift, etc.? -
Hallo Oscar,
geschafft das Proggi läuft. Ich starte es mit einer kleinen Größe(1280 x 1024) lasse die Aüflösung und oder Skalierung ändern und setze es dann hoch mit WinSetState($Form1, "", @SW_MAXIMIZE)
vielen Dank für deine und eure Hilfe -
Hallo Bitnugger,
habs getestet. Funzt super...
Vielen lieben dank auch. -
Hallo Oscar,
ich will erreichen, das das Script wartet bis der user die Displayskalierung eingestellt hat um dann sich selbst neu zu starten, damit alles richtig angezeigt wird. Hintergrund:
Es soll ein Testprogramm werden mit dem die Akkulaufzeit von Laptops getestet werden soll indem ein Video im Dauerdurchlauf bis zum Erreichen des low batterylevel
erreicht wird und das Lappi dann herunterfährt. Dabei wird der Ladezustand und die Zeit protokolliert. Bisher mit Batchdateien und Drittprogrammen realisiert was aber sehr unzuverlässig ist.
die zu testenden Lappis haben verschiedene OS(Deutsch, bevorzugt aber Englisch) und leider verschiedene Auflösungen und Skalierungen. Und das ist das Problem.
Die Gui wird bei 1920*1080 und 100% richtig dargestellt wobei die Auflösung nicht das Problem ist, sondern die Skalierung. Starte ich das Programm mit anderer Skalierung und lass den User diese ändern,
dann muss die Gui/das Programm auch neu gestartet werden, damit sich die Änderung auswirkt.
@ Bitnugger:Vielen dank für den Vorschlag. ich teste es direkt einmal...
-
Hallo Oscar,
danke für den Tipp aber der bedingt, dass das OS in deutsch läuft. Hier läuft das OS aber überwiegend in English.
Ich konnte herausfinden das im Taskmanager eine Systemsettings.exe gestartet wird. Mit dieser geht Shellexecutewait oder Prozesswaitclose auch nicht.
Vielleicht kennt jemand den dazugehörigen Prozess -
Hallo Profis,
es geht um folgende Frage:Code
Alles anzeigen$iDpi = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "AppliedDPI") Msgbox(0, "DPI", $iDpi & " #" & @DesktopWidth & " #" & @DesktopHeight) If $iDpi = 96 Then $var = MsgBox(4100, "Message", "The Display Scale must be 100%. You have to change it..") Switch $var Case "6" ShellExecuteWait("C:\Windows\System32\control.exe", "desk.cpl") $iPfad = @ScriptFullPath $iPid = Processexists("BatteryLifeTest.exe") $Datei = FileWrite("U:\StartBatt.bat", "Start" & $iPfad) Run("U:\StartBatt.bat") ProcessClose($iPid) EndSwitch EndIf
Warum wird das Script nicht pausiert bei Aufruf der ShellExecuteWait? Runwait funzt ebenso wenig. die CPL wird geöffnet und das Script startet sofort die Batch-Datei. Es sollen aber erst die Dispalyskalierung geändert werden bevor das Script weiter geht...
-
habs getestet. Warum geht das jetzt auf einmal
Ok, damit ist das Thema erledigt und der Tag gerettet
-
Hallo Bugfix,
jetzt bin ich verwirrt. als ich nur ein Pipe hatte war die Ausgabe der MsgBox leer. Mit zweien gefüllt mit der ganzen Liste -
Hallo mal wieder,
ich gebe folgenden Befehl in einer CMD ein :
WMIC /NameSpace:'\\root\WMI' Path BatteryStatus Get Charging,Poweronline,Discharging /Format:list | FIND "=TRUE"
Rückgabe: PowerOnline=True
Soweit alles gut.
Mache ich das gleiche in Autoit:CodeLocal $sData = Run(@ComSpec & " /c WMIC /NameSpace:'\\root\WMI' Path BatteryStatus Get Charging,Poweronline,Discharging /Format:list || FIND ""=TRUE"" ", "", @SW_HIDE, $STDOUT_CHILD) ProcessWaitClose($sData) $sOutput = StdoutRead($sData) MsgBox(0, "Output", $sOutput)
Dann ist die Rückgabe die ganze Liste. offensichtlich wird die Sequenz | Find "=True" ignoriert.
Hätte jemand eine Idee warum
-
@ Oscar: Also jetzt ist mir das wirklich sehr peinlich. Ich habe die Angabe der Makros wegen Änderungen an der KODA-Region in die normalen Werte zurück geändert.
Kein Wunder also das die Form sich nicht an die andere Auflösung anpasste. Thread ist also gelöst. Für den Fall der Skalierung baue ich eine Abfrage des Wertes ein, gekoppelt mit einer Aufforderung an den User diese manuell zu ändern wenn sie nicht 100% ist.
Bitte entschuldigt meine Dämlichkeit -
Ich danke für eure Antworten.
@ Oscar: Wie du an meinem Code sehen kannst habe ich die Makros für die Größe der Form verwendet. Trotzdem wird diese wie beschrieben bei anderer Auflösung(z.B. 1600 x 900 statt 1920 x 1080)
"abgeschnitten" Vielleicht liegt das ja auch an den Elementen in der Form.Ich glaube ich muss meinen Ansatz noch mal überdenken. Ich wollte, dass das Proggi die Labels und das Video in einer Oberfläche anzeigt aber wenn das nur aufwendigst zu realisieren ist, mal sehen...
Vielleicht hat jemand noch eine Idee... -
Hallo Musashi,
vielen lieben Dank für den Tipp. Aber ich bin mir nicht so sicher ob mir das hilft, denn das Proggi soll wie gesagt auf verschiedenen Rechnern eingesetzt werden. Wenn die Display-Skalierung oder sogar die Auflösung(vom Standard 1920x1080) abweicht, dann wird die GUI am rechten und unteren Monitorrand abgeschnitten. Das Ändern der Schriftgröße wird das wohl nicht verhindern oder? -
Hallo Profis,
ich habe per KODA eine GUi erstellt die die gesamte Displaygröße einnimmt. Das Proggi will ich auf verschiedenen Rechnern einsetzen. Wenn nun die Displayskalierung nicht 100% ist, sondern größer, wird die Form abgeschnitten. Gibt es eine Möglichkeit dies zu verhindern. Hier der Code für die Gui:Code
Alles anzeigen#Region ### START Koda GUI section ### $Form1 = GUICreate("Name der Gui", @DesktopWidth, @DesktopHeight, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_MAXIMIZE,$WS_TABSTOP)) GUICtrlSetResizing(-1, $GUI_DOCKAUTO) GUISetBkColor(0xFFFFFF) $Startbutton = GUICtrlCreateButton("Start", 232, 952, 153, 33) GUICtrlSetFont(-1, 12, 800, 0, "Arial") GUICtrlSetResizing(-1, $GUI_DOCKAUTO) $Preparations = GUICtrlCreateEdit("", 10, 8, 600, 450, BitOR($ES_READONLY,$WS_BORDER), $WS_EX_STATICEDGE) GUICtrlSetData(-1, StringFormat(" Preperations:\r\n\r\n * Power supply connected\r\n * Battery load is = 100%\r\n * Only WiFi connection established\r\n\r\n ToDo:\r\n\r\n * Remove power supply\r\n * Benchmark starts automatically\r\n * Wait for "&Chr(34)&"end of benchmark"&Chr(34)&" (empty battery)\r\n * Connect power supply\r\n * Write battery life time on a paper\r\n * Reload battery to 100% and start a 2nd measurement (from point 1)\r\n * Write the average value of 1st and 2nd measurement in the\r\n device description\r\n\r\n\r\n\r\n\r\n DO NOT USE THE DEVICE WHILE THE TEST IS RUNNING!!!!")) GUICtrlSetFont(-1, 12, 800, 0, "Arial") GUICtrlSetColor(-1, 0x000000) GUICtrlSetBkColor(-1, 0xFFFBF0) GUICtrlSetResizing(-1, $GUI_DOCKAUTO) GUICtrlSetState(-1, $GUI_DISABLE) $Messages = GUICtrlCreateEdit("", 10, 472, 600, 450, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER,$WS_CLIPSIBLINGS), $WS_EX_TRANSPARENT) GUICtrlSetFont(-1, 12, 400, 0, "Arial") GUICtrlSetResizing(-1, $GUI_DOCKAUTO) $oWMP = ObjCreate("WMPLayer.ocx") ;mediaplayer-objekt erstellen -> für die Einstellungen: new-object -comobject Wmplayer.ocx | get-member in Powershell ausführen GUICtrlCreateObj($oWMP, 630, 8, 1280, 784) ;objekt ins gui setzen und grösse angeben GUICtrlSetResizing(-1, $GUI_DOCKAUTO) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###