Beiträge von BugFix

    Zitat von Bitnugger

    _WinAPI_AssocQueryString liest lediglich den zu dem Query korrespondierenden Registry-Schlüssel aus.

    Über den Parameter der Funktion kann ich den Rückgabewert festlegen. Ich kann also statt der Kommandozeile, die Exe abfragen. Klappt aber in meinem Bsp. (mit .profile als systemeigenem Eintrag!) auch nicht. Hab noch nicht nachgeschaut, aber vllt. wird intern _WinAPI_PathRemoveArgs aufgerufen. :whistling:

    Theoretisch ist das kein Bug, da der Pfad ja abgeschlossen sein muss. Wenn man Leerzeichen haben will muss man eben Gänsefüßchen setzen

    Und das ist das Problem bei Windows - man macht sich durch Inkonsistenzen unendlich viele Probleme. Wie sinnvoll ist denn die Abfrage des Command Strings, wenn die Registry (aus der die Werte gelesen werden) mal Einträge mit und mal ohne Gänsefüßchen hat?!

    Das Problem liegt aber m.M. nach hauptsächlich in den Hilfebeispielen für _WinAPI_PathGetArgs und _WinAPI_PathRemoveArgs, die sich ihre Werte unglücklicherweise aus _WinAPI_AssocQueryString holen, die eben auch nicht verwertbare Werte ausgibt. Da wäre ein String mit Pfad sinnvoller.

    Falls ihr _WinAPI_Path.. Funktionen verwendet, bitte sehr misstrauisch sein. Die folgenden beiden Funktionen funktionieren definitiv nicht. ***

    Dort wird ausschließlich nach Leerzeichen im Pfad gesucht und anhand dessen in Pfad und Argumente gesplittet :Face:.


    EDIT:

    ***: Wie sich herausgestellt hat, sind die _WinAPI_Path Funktionen eigentlich unschuldig. Sie erwarten einen Leerzeichen behafteten Pfad in Gänsefüßchen eingefasst. Das Hilfebsp. verwendet ungünstigerweise die Funktion _WinAPI_AssocQueryString, die Werte aus der Registry verwendet und diese sind mal mit, mal ohne Gänsefüßchen. Somit ist der Rückgabewert in der Form des Hilfebsp. nicht für die _WinAPI_Path Funktionen verwertbar.


    Lösungsvariante:

    Der Fehler entsteht hier:

    If ((y1 - py2)*(px2 - px1) == (py2 - py1)*(x1 - px2)) Then ;prüft ob Linear

    Du hast vergessen vor die Variablen das $ zu setzen. ;)

    Wie richte ich das User-Kontext-Menü ein?


    Für sehr Maus-affine User ist das Kontextmenü unabdingbar, weil man u. A. alle Funktionen, die im Menü Extras liegen, auf dieses Menü umleiten kann.

    Speicherung und Syntax sind analog zu den User-Shortcuts (Anzeigename=Kommando).


    user.context.menu=\

    ||\

    Next File|IDM_NEXTFILE|\

    Prev File|IDM_PREVFILE|


    Möchte man auf die Kommandos der au3.properties und SciTEUser.properties zugreifen, verwendet man

    als KommandoNummer die "11"

    & die Nummer von: command.24.*.au3=.

    So kann man z.B. Lua-Befehle auf ein Kommando legen und dieses als Kontextmenü Eintrag verfügbar machen:


    command.name.24.*=Delete Current Line

    command.mode.24.*=subsystem:lua,savebefore:no

    command.24.*=dostring scite.SendEditor(SCI_LINEDELETE)


    user.context.menu=\

    ||\

    Delete Current Line|1124|

    Wie kann ein Button der SciTE-Toolbar En/Disabled werden?


    sorry sollte BugFix heissen..

    :D kein Problem.


    Da hast du ja wirklich viel Arbeit reingesteckt. :thumbup:

    Wie vermutet, kann man das alles auf AutoIt übertragen. Ich habe gerade etwas wenig Zeit, vielleicht findet sich ja schon mal jemand, der mit dir den Anfang macht.

    Du verwendest eigene Wörterbücher? Recht aufwändig, sollte eigentlich auch online verfügbare lizenzfreie Wörterbücher geben. Könnte man da mit einbinden.

    Aktuell bastle ich in Excel an einer kleinen Lernhilfe für meine Kinder.

    Ich habe ein USERFORM in der unter anderem ein Webbrowser enthalten ist.

    Excel programmierst du mit VBA. Das lässt sich sehr gut nach AutoIt portieren, was ich empfehlen würde. Dann sparst du dir das Mixen zweier Programme.

    Poste doch deinen VBA-Code, wir können dir sicher helfen, das in AutoIt umzusetzen.

    Wie kann man das aktuelle Datum an der Cursor-Position einfügen?


    Python
    1. command.name.19.*=Insert Date
    2. command.19.*=dostring editor:AddText(os.date('%d.%m.%Y'))
    3. command.mode.19.*=subsystem:lua,savebefore:no
    4. command.shortcut.19.*=Shift+Alt+F11


    "19" mit einer nicht belegten Kommando-Nr. ersetzen, für "Shift+Alt+F11" setzt ihr den gewünschten HotKey.

    Der Vorteil des Properties wird hier sichtbar: Das Subsystem ist "lua" - das bedeutet Lua-Code soll ausgeführt werden. Somit kann ich hier auch komplexe Lua-Skripte direkt einsetzen ohne extra Dateien aufzurufen.


    Wo finde ich freie Kommando-Nummern?

    Man sucht in der au3.properties nach der letzten belegten Kommandonummer - bei mir ist das z.B. :

    # 34 Generate UDF header ...

    command.name.34.$(au3)=Make UDF Header
    ...


    (in dieser Datei bitte nichts ändern !)


    Die Nummern bis 49 können dann individuell genutzt werden.

    Wenn man in der SciTE-Konfiguration einige der AutoIt-Tools abgewählt hat, werden automatisch die frei gewordenen Kommando-Nr. in die SciTEUser.properties übertragen und können auch verwendet werden. Bei mir sieht das z.B. so aus:

    command.name.16.*=

    command.name.15.*=

    command.name.4.$(au3)=

    command.name.2.$(au3)=

    command.name.1.$(au3)=

    command.name.0.$(au3)=

    Welcome too,

    you're our 2nd danish member. The other one is Alina . But she isn't logged in often.

    He, I love danish licorice - the salten one. Every time, I must work on Fehmarn, I also go to the danish Fleggard Shop in Burg and buy something of this. ;)

    Wie stellt man die SciTE-Oberfläche auf Deutsch ein?


    Dazu einfach die Datei locale.txt aus dem Anhang als locale.properties in das Installationsverzeichnis von SciTE kopieren.

    Dateien

    • locale.txt

      (11,37 kB, 15 Mal heruntergeladen, zuletzt: )

    Hoffe die Beschreibung ist klar und deutlich zu verstehen.

    wenn nicht einfach nachfragen.

    Nö. :P


    - um welches Programm geht es (optimaler Weise mit Link zum Hersteller, damit man sich einen Eindruck verschaffen kann)

    - was ist die Ausgangssituation

    - was ist das Ziel

    - Screenshot ist auch hilfreich, evtl. mit Skizzen zur Problematik


    EDIT:

    Du hattest zeitgleich geschrieben.


    Wenn ihr selbst ein Spiel erstellt, dann WISST ihr doch was wann wo passiert!

    Falls ihr nur ein SPIELKONZEPT erstellt, ist die zu prüfende Situation ja nur theoretischer Natur, da noch gar kein Programm existiert.


    Sorry, aber ich denke, du willst uns hier ein X für ein U vormachen. :thumbdown::/

    Hallo BugFix. Das sind Hinweise auf genau die von mir ganz oben genannten Sachen, also schon bekannt. Dennoch danke für deine Antwort. Leider ist auch die au3.properties nicht hilfreich! Dort fehlt jegliche Dokumentation! Zudem sind die ganz oben genannten Shortcuts dort NICHT drin.

    Den Inhalt aus der Original Hilfe zu SciTE hatte ich bereits vor Jahren (in deutsch) gepostet: HotKeys in SciTE

    Und dort findest du auch die von dir benannten: "Ctrl+(Keypad)-", bzw. "Ctrl+(Keypad)+".


    Hotkeys sind in folgenden Gruppen zu sehen:

    - scintilla Original-Hotkeys (meine verlinkte Liste)

    - SciTE4AutoIt spezifische Hotkeys (diese können auch scintilla Original-Hotkeys überschreiben!) - sind in der au3.properties zu finden

    Um die Hotkeys auszulesen, kannst du natürlich AutoIt selbst verwenden. :whistling:

    - Hotkeys in der SciTEUser.properties, die man selbst definiert hat (auch mit vorigem Skript auslesbar, wenn man den Dateipfad anpasst).

    - user.shortcuts, hier mal ausgzulesen aus der Globalen Property:

    - In den Menüs definierte interne Hotkeys sind Bestandteil der Quelldateien von SciTE und können somit nur aus diesen Dateien ('SciTERes.rc', 'KeyMap.cxx') gelesen werden.

    (Evtl. werde ich das einmalig zusammenstellen). Für den NormalUser reicht aber der Blick ins SciTE-Menü. :P


    Edit:

    Ich habe mal quick & dirty ein Skript erstellt und die SciTERes.rc ausgelesen. Hier die Liste (Menü | Aktion | Shortcut)

    Und der Vollständigkeit halber nun auch die Daten aus der scintilla KeyMap.cxx


    Andere Hotkeys können noch in anderen sprachspezifischen Dateien definiert sein, ist aber nicht von Interesse, da diese bei geöffneter au3 von den au3.properties überschrieben werden.


    AutoIt spezifische Hotkeys sind auch hier aufgelistet: Keyboard Shortcuts