1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Tupac

Beiträge von Tupac

  • Registry-Werte werden nicht an gewünschter Stelle gesetzt/geändert

    • Tupac
    • 3. August 2015 um 13:21

    Ja, habe die Hilfe nochmals durchgelesen und wenn man HKCU64 hinterlegt, wird der Wert auch mit der X86-Version korrekt geschrieben.

    Danke nochmals!!

  • Registry-Werte werden nicht an gewünschter Stelle gesetzt/geändert

    • Tupac
    • 3. August 2015 um 12:32

    Hey AspirinJunkie :)

    Diese Option habe ich nicht in Betracht gezogen, weil "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" mir nicht architekturspezifisch aussah...

    Die Änderung des oben genannten Wertes funktionierte nun über alle drei Methoden, nachdem ich diesen über die X64-Version des Programmes setzen habe lassen.


    Vielen herzlichen Dank für den Tip!!

  • Registry-Werte werden nicht an gewünschter Stelle gesetzt/geändert

    • Tupac
    • 3. August 2015 um 12:11

    Hallo Community,

    zuletzt konnte ich einige Fälle beobachten, in denen von AutoIT-Programmen angestoßene Registry-Änderungen effektiv nicht "dort geändert" werden, wo es an sich sein sollte.

    Auf die Thematik kam ich, da ich unter Windows 10 OneDrive im Explorer deaktivieren wollte.
    Dafür muss beispielsweise der Key "System.IsPinnedToNameSpaceTree" im Zweig "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" auf "0" gesetzt werden.

    An sich eine simple Geschichte, aber keine der von mir über AutoIt-Programme in die Wege geleiteten Änderungsversuche führte zum Erfolg:
    - direktes Ändern per "RegWrite"
    - Ausführen einer vorgefertigten Registry-Datei (regedit.exe /s)
    - Ändern des Wertes über den "REG ADD"-Befehl

    Über RegShot habe ich dann ermittelt, dass statt des oben genannten Keys die Werte von folgenden beiden Keys geändert werden:
    HKU\S-1-5-21-1378026724-2922080225-1258191866-500\SOFTWARE\Classes\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree: 0x00000000
    HKU\S-1-5-21-1378026724-2922080225-1258191866-500_Classes\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\System.IsPinnedToNameSpaceTree: 0x00000000

    Führe ich den Import über die im zweiten Fall beschriebene Registry-Datei aber manuell über einen simplen Doppelklick aus, so wird der Key korrekt gesetzt.
    Mir scheint es so, dass Windows hier das Setzen von Keys über Programme "anders" handhabt als es dieses bei einer direkten Benutzeraktion tut.

    Hat jemand eine Idee, wie man diesen Sachverhalt lösen kann?

    P.S.: Der auf dem Testsystem verwendete Benutzer war "Administrator", Berechtiungsprobleme sind somit nahezu auszuschließen.


    Grüße,
    Tupac

  • Ermitteln, aus welchem Pfad eine kompulierte AutoIT-EXE gestartet wird

    • Tupac
    • 24. Mai 2012 um 08:01

    Danke dir!
    Ca. 20 Sekunden nach dem Post stieß ich auch auf @ScriptFullPath...

  • Ermitteln, aus welchem Pfad eine kompulierte AutoIT-EXE gestartet wird

    • Tupac
    • 24. Mai 2012 um 07:55

    Hallo Leute,


    habe da eine hoffentlich kleine Anfrage: ich möchte den aktuellen Pfad, aus dem das komplilierte AutoIT-Script heraus gestartet, wird ermiteln. Gibt es dazu eine Funktion oder einen Befehl?


    Hintergrund: in meinem Fall muss ich unter gewissen Umständen (z.B. wenn Ordner xyz fehlt) ein zweites Script starten, damit dieses den fehlenden Ordner anlegt. Im Anschluss soll aber das erste Script wieder gestartet werden...dieses kann das zweite theoretisch problemlos machen, wenn es wüsste wo die entsprechende EXE liegt ;)


    Ich stelle mir folgenden Ablauf vor: Script 1 startet und stellt fest, dass z.B. Ordner c:\Temp fehlt. Es schreibt in eine Datei X seinen aktuellen Pfad, startet Script 2 und beendet sich. Script 2 startet, legt Ordner c:\Temp an, ermittelt aus der von Script 1 zuvor erstellten Datei den Pfad der EXE des 1. Scriptes und startet dieses...


    Mir ist klar, dass Script 1 den Ordner auch erstellen könnte bzw. definitiv kann.

    Ich habe aber das Problem, dass dabei eine der vom 1. Script eingesetzten Funktionen nicht richtig läuft...der Ordner wird erstellt, aber Teile externer Software laufen trotzdem nicht wirklich...so als ob der Ordner nicht wirklich existieren würde...dieses Problem konnte ich nur beheben, wenn ich den gewünschten Ordner zuvor über ein externes Script gestartet habe.


    Danke für jeden Tip!

  • MsgBox erst anzeigen, wenn zuvor x Sekunden lang keine Eingabe getätigt wurde

    • Tupac
    • 16. März 2012 um 09:16

    Hey UEZ,

    vielen herzlichen Dank für die schnelle Bereitstellung einer klasse Lösung.
    Genau danach hatte ich gefragt, perfekt!!

    Vielen Dank nochmal & Gruß

  • MsgBox erst anzeigen, wenn zuvor x Sekunden lang keine Eingabe getätigt wurde

    • Tupac
    • 15. März 2012 um 00:35

    Hallo Leute,


    stehe hier vor einem kleinen Problem: habe hier ein Script, welches eine MsgBox öffnet und dem Benutzer eine Meldung anzeigt. Nun kann es ja durchaus sein, dass der Benutzer z.B. mitten beim Verfassen einer Email ist und die hochkommende Meldung beim Eintippen versehentlich mit Enter oder Space beendet.


    Gibt es eine Möglichkeit über AutoIT einen Zeitraum X (z.B. 10 Sekunden) auf Eingaben zu überwachen und die nächste Aktion (MsgBox) erst dann auszuführen wenn die eingestellte Zeit keine Tasteneingaben getätigt wurden? Mausklicks wären egal, wichtig ist nur, dass der Benutzer nicht mitten in einer Texteingabe steckt.


    Noch eine zweite Frage: gäbe es eine Möglichkeit das MsgBox-Fenster eine definierte Zeit geöffnet zu lassen, obwohl in diesem bereits z.B. auf "OK" geklickt wurde? Einfach, um den Benutzer zu "zwingen" sich die Meldung genauer durchzulesen. ;)


    Danke & Gruß,

    Tupac

  • Arrayeinträge bearbeitbar in Gui darstellen

    • Tupac
    • 1. November 2011 um 23:12

    Hey BugFix,

    dein Script ist ja genau das was ich gesucht habe :)
    Super umgesetzt, arbeitet wie gedacht.
    Ist aber ne tolle Community hier, hätte ich gar nicht gedacht!! :thumbup:

    Grüße

  • Arrayeinträge bearbeitbar in Gui darstellen

    • Tupac
    • 31. Oktober 2011 um 15:58

    Danke schon mal für den Hinweis.
    Werde aber vermutlich erst heute Abend oder morgen im Laufe des Tages dazu kommen, mich im Detail einzulesen. Werde aber davon hier berichten :)

  • Arrayeinträge bearbeitbar in Gui darstellen

    • Tupac
    • 31. Oktober 2011 um 14:09

    Hallo zusammen!

    Soeben bin ich in meinem Programm an einen Punkt gestoßen, bei dem ich nicht sicher bin, wie man das Problem mit AutoIT am elegantesten lösen könnte.
    Und zwar habe ich ein mehrdimensionales Array, welches ich "bearbeitbar" machen möchte.

    Die Inhalte dieses Arrays sollen in einer Gui (ähnlich wie bei _ArrayDisplay, vielleicht noch mit spezieller Beschriftung der Spaltenüberschriften sowie regelbaren Spaltenbreiten) dargestellt werden.
    Der Benutzer soll dann eine Zeile anklicken können und über einen "Bearbeiten"-Button könnte die gesamte Maske bearbeitbar werden, so dass man Änderungen vornehmen kann.
    Über einen "Speichern"-Button könnten die Feldinhalte dann neu eingelesen und neu in das Array geschrieben werden.

    Sollte dieses so einfach nicht möglich sein, so wäre bei einem Klick auf den "Bearbeiten"-Button auch denkbar, dass die Einträge des angeklickten Arrays in eine neue Gui geladen werden und dieses Arrayelement separat abgehandelt wird.
    Gibt es da evtl. schon vorgefertigte Codeschnippsel? Es muss ja gar nicht groß optisch hergemacht werden, eine leicht aufpolierte _ArrayDisplay-Ansicht würde mir ja schon reichen. ;)

    Danke schon mal vorab.
    Grüße

  • String Kürzen, Wie?

    • Tupac
    • 26. Oktober 2011 um 21:27

    Bin mal über die "gute alte" Methode auf die Suche gegangen: die Probleme fangen nach "|Stone Brick Stairs" an...egal welchen Text man ab da dranhängt: der Fehler tritt im Anschluss gut reproduzierbar immer wieder auf!

    Also kein Syntaxfehler, sondern die Begrenzung ;)

  • Selektierten Text aus ComboBox per ENTER und/oder Button starten

    • Tupac
    • 26. Oktober 2011 um 21:05

    Danke euch beiden für die Lösungen bzw. den Ansatz ;)
    Bin kurz nach dem Post auf einen Hinweis gestoßen, der mein Problem auch auf relativ einfachem Weg löst. Leider war mein Beitrag in der "Prüfung durch einen Moderator", so dass ich ihn nicht mehr entfernen konnte.

    Auf jeden Fall die weitere Möglichkeit: so wie ich es verstanden habe, kann man über "GUICtrlSetState($Button1, $GUI_DEFBUTTON)" den Focus direkt auf den Button legen.

    Wenn man dann in der ComboBox etwas eingibt und "ENTER" betätigt, startet automatisch die gewünschte Anwendung als wenn man den Button anklicken würde.

    Klappt in der Praxis tatsächlich bisher problemlos.


    Danke auf jeden Fall uns bis bald :)
    Grüße

  • Selektierten Text aus ComboBox per ENTER und/oder Button starten

    • Tupac
    • 25. Oktober 2011 um 23:29

    Hallo zusammen!

    Bin bereits seit einer gewissen Zeit am scripten per AutoIT, nun aber mit einer kleinen Gui-Anwendung an meine Grenzen gestoßen.

    Und zwar habe ich eine ComboBox erstellt aus der der Benuzer entweder per Dropdown-Menü oder aber per Eingabe eines Buchstabens einen der Einträge auswählen kann. Hat er die Auswahl erledigt, so kann er über einen Klick auf den Button "Starten" die ausgewählte Datei starten.

    [Blockierte Grafik: http://imageshack.us/photo/my-images/828/combobox.jpg/]

    Er soll aber ebenso nach Auswahl eines Eintrages über die ENTER-Taste die Anwendung starten können. Und genau da hakt es: habe mich schon durch diverse Forenbeiträge gewälzt, IF-Abfragen bzgl. "_IsPressed" eingebaut, aber viel weiter komme ich nicht. Schalte ich eine IsPressed-Abfrage vor oder nach der GUIGetMsg() wird die Anwendung u.U. zwei- oder dreifach gestartet (wenn der Focus z.B. auf dem Button liegt).

    [autoit]

    While 1
    $msg = GUIGetMsg()

    [/autoit][autoit][/autoit][autoit]

    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $GUI_EVENT_MINIMIZE
    MsgBox(0, "", "Dialog minimized", 2)
    Case $msg = $GUI_EVENT_MAXIMIZE
    MsgBox(0, "", "Dialog restored", 2)

    [/autoit][autoit][/autoit][autoit]

    Case $msg = $Button1

    [/autoit][autoit][/autoit][autoit]

    ShellExecute ($starteAnwendung)

    [/autoit][autoit][/autoit][autoit]

    EndSelect

    [/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit]

    Habt ihr eine Idee wie ich dieses Problem lösen kann?


    Vielen Dank & Gruß

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™