 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
halweg
Anmeldedatum: 05.01.2006 Beiträge: 782 Wohnort: Dresden
|
Verfasst am: Mo Jan 23, 2006 3:17 pm Titel: |
|
|
| AGU hat Folgendes geschrieben: | | Wie man sowas in das Kontextmenü eines Browsers integriert ist mir übrigens nicht bekannt. Das würde wahrscheinlich Modifikationen an der Windows Registrierung erfordern. |
Genau das würde es. Aber soweit ich das überblicke ist das Modifizieren des Kontextmenüs per Registry ein im englischen Forum viel diskutiertes Thema. Wär jedenfalls schön, weil meine 3 zusätzlichen Maustasten schon stark belegt sind und die rechte Maustaste für solche Übungen schön intuitiv wäre.
Hier übrigens der Registry-Schlüssel für das IE-Kontextmenü | Code: | | HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt |
| AGU hat Folgendes geschrieben: | Was meinst du eigentlich mit der Einbindung in ein anderes Skript? Das könnte ein bisschen Arbeit nach sich ziehen. Überprüfen ob Variablen nicht doppel belegt sind, Gui Nummerierung anpassen, falls in deinem Skript ebenfalls Guis existieren, ...
|
Im Prinzip reicht für eine Einbindung eine Bereitstellung des Quelltextes und eine saubere Programmierung. Der Initialisierungsteil müsste fein säuberlich vom Hotkey-Teil getrennt werden, Verzeichnissnamen und andere volatile Teile (z. B. das Anlegen von Registry-Einträgen) müssten schön am Anfang stehen und gekennzeichnet sein, Funktionen und Unterprogramme müssten ihre Funktion durch einen kurzen Kommentar preisgeben, damit man sie ohne spätere Verständnisprbleme zur Reihe der eigenen Funktionen dazunehmen könnte. |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1867 Wohnort: Österreich
|
Verfasst am: Mo Jan 23, 2006 3:26 pm Titel: |
|
|
Wie man Dinge in ein Context-Menü added ist irgendwo im englischen Forum auffindbar. Geht in jedem Fall über eine Manipulation der Registry.
Eine Einbindung in ein anderes Script schafft meiner Erfahrung nach keine Übersicht. Ich unterteile meine Scripts teilweise sogar in Komponenten, die ich mit "#Include" einfüge.
Falls es einigermaßen fertig ist werde ich es mir auch einmal ansehen.
Sind sicherlich einige interessante Dinge vorhanden...
Thalon
Edit: Kaum muss man während des schreibens kurz weg hats schon wer andrer schöner gepostet ^^ _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
halweg
Anmeldedatum: 05.01.2006 Beiträge: 782 Wohnort: Dresden
|
Verfasst am: Mo Jan 23, 2006 3:29 pm Titel: |
|
|
| Was den Namen angeht, wäre mein Vorschlag: Notes Saver |
|
| Nach oben |
|
 |
AGermanUser
Anmeldedatum: 25.10.2005 Beiträge: 167
|
Verfasst am: Do Jan 26, 2006 5:50 pm Titel: |
|
|
Nach dem Motto "Versuch macht kluch" hier also wie versprochen die nächste Version.
Puh, hat doch länger gedauert als ich angenommen habe. Ständig musste ich an der einen oder anderen Ecke nachfeilen, Fehlbenutzungen abfangen, dann auf einmal wieder beim Testen irgend ein komisches Verhalten, das durch einen Sonderfall ausgelöst wurde, ...
So ging das ewig weiter. Hab schon gedacht ich werd überhaupt nicht mehr fertig.
Dadurch sind jetzt wieder viele Zeilen Code dazugekommen, die höchstwahrscheinlich sowohl verbessert werden, als auch den einen oder anderen Fehler produzieren könnten (Was ich dennoch nicht hoffe).
Also, wenn ihr lustig seid, schaut es euch doch mal an, und meldet etwaige Fehler.
Alles weitere übrigens im aktualisierten Posting.
Mich interessiert vor allem, ob die Icons im Kontextmenü richtig angezeigt werden.
Ach ja, bin natürlich weiter offen für weitere Verbesserungsvorschläge, nachdem meine ToDo Liste jetzt wieder einigermaßen leer ist.
Um die Einbindung in das Kontextmenü habe ich mich noch nicht gekümmert. Das muss ich erst durchdenken. Wollte erstmal die Sachen auf meiner ToDo Liste abarbeiten.
Aber vielleicht habt ihr ja eine gute Idee dazu? _________________ Gruß
AGermanUser a.k.a. AGU
Moderator |
|
| Nach oben |
|
 |
toralf as guest Gast
|
Verfasst am: Do Jan 26, 2006 8:31 pm Titel: |
|
|
Ok, some code comments
a) this | Code: | If ShrtCtGui not contains #
{
; Uncheck 'Use WIN key' checkbox
; Disable 'Win +' text control
GuiControl, 2:, Button10, 0
GuiControl, 2:Disable, Static11
; Assign Hotkey to hotkey control
GuiControl, 2:, HotkeyGui, %ShrtCtGui%
}
Else
{
; Check 'Use WIN key' checkbox
GuiControl, 2:, Button10, 1
; Remove 'WIN key' from ShrtCtGui
; But leave ShrtCtGui untouched for later Hotkey disabling
CleanGuiShrtCt = %ShrtCtGui%
StringReplace, CleanGuiShrtCt, CleanGuiShrtCt, #
GuiControl, 2:, HotkeyGui, %CleanGuiShrtCt%
}
| could be | Code: | If ShrtCtGui not contains #
{
; Uncheck 'Use WIN key' checkbox
; Disable 'Win +' text control
GuiControl, 2:, Button10, 0
GuiControl, 2:Disable, Static11
}
Else
{
; Check 'Use WIN key' checkbox
GuiControl, 2:, Button10, 1
; Remove 'WIN key' from ShrtCtGui
; But leave ShrtCtGui untouched for later Hotkey disabling
StringReplace, ShrtCtGui, ShrtCtGui, #
}
; Assign Hotkey to hotkey control
GuiControl, 2:, HotkeyGui, %ShrtCtGui%
|
b) this | Code: | If ChkCopyWinKey = 0
{
GuiControl, 2:Disable, Static10
}
Else If ChkCopyWinKey = 1
{
GuiControl, 2:Enable, Static10
}
| could be | Code: | | GuiControl, 2:Enable%ChkCopyWinKey%, Static10 |
c) this | Code: | ; Read previous Gui dimensions and position
IniRead, PosX, config.ini, GuiPosition, X_Pos, x150
IniRead, PosY, config.ini, GuiPosition, Y_Pos, y150
IniRead, GuiW, config.ini, GuiDimension, W_Gui, w681
IniRead, GuiH, config.ini, GuiDimension, H_Gui, h401
; Show Gui
Gui, 1:Show, x%PosX% y%PosY% w%GuiW% h%GuiH%, %ScriptName%
IniWrite, %PosX%, config.ini, GuiPosition, X_Pos
IniWrite, %PosY%, config.ini, GuiPosition, Y_Pos
IniWrite, %GuiW%, config.ini, GuiDimension, W_Gui
IniWrite, %GuiH%, config.ini, GuiDimension, H_Gui
| could be | Code: | ; Read previous Gui dimensions and position
IniRead, Gui1_Pos, config.ini, GuiPosition, Gui1_Pos, x150 y150 w681 h401
; Show Gui
Gui, 1:Show, %Gui1_Pos%, %ScriptName%
IniWrite, x%PosX% y%PosY% w%GuiW% h%GuiH%, config.ini, GuiPosition, Gui1_Pos |
d) I believe you could handle the INI settings for the browser more elegant. But since I didn't understand yet, what you did, I can't tell you how. It just looks to complicated to me.
Thats it for tonight.
.... Und ich bin schon wieder ins Englische verfallen. Gott, ich verbringe zuviel Zeit im englischen Forum.
Bis denne
toralf |
|
| Nach oben |
|
 |
AGU Gast
|
Verfasst am: Fr Jan 27, 2006 2:10 pm Titel: |
|
|
@toralf
zu a)
| Code: | Else
{
; Check 'Use WIN key' checkbox
GuiControl, 2:, Button10, 1
; Remove 'WIN key' from ShrtCtGui
; But leave ShrtCtGui untouched for later Hotkey disabling
CleanGuiShrtCt = %ShrtCtGui%
StringReplace, CleanGuiShrtCt, CleanGuiShrtCt, #
GuiControl, 2:, HotkeyGui, %CleanGuiShrtCt%
} |
Habe das eigentlich absichtlich im zweiten Fall mit einer temporären Variable gelöst, da ich später, wenn der neue Hotkey gesetzt wird, den alten erst mit Hotkey, ShrtCtGui, Off deaktivieren muss. Aus diesem Grund, sollte der aktuelle Wert in "ShrtCtGui" nicht verändert werden.
Im zweiten Fall muss ich allerdings die Windowstaste aus dem Hotkey nehmen, da ich das Hotkeycontrol ja vorbelege, aber es leider nichts mit der Windows Taste anfangen kann.
zu b)
Ist gekauft
zu c)
Schau ich mir auch mal an. Du speicherts alles in einer Variablen, ich in vier Einzelvariablen. Mal überlegen, ob ich da bei meiner Lösung bleibe. Ist zwar ein bisschen länger, aber dafür in der config.ini besser lesbar.
Außerdem ließe sich die config.ini besser manuell bearbeiten. Aber mal sehen.
zu d)
wär natürlich toll, wenn du das was findest.
Gruß
AGU
P.S. Nicht vergessen beim nächsten Mal, du bist hier im deutschen Forum. Vielleicht brauchen wir wirklich die schonmal von BoBo vorgeschlagenen Landesflaggen im Logo. Der Platz links im blauen Balken des Logos schreit förmlich nach einer Flagge. |
|
| Nach oben |
|
 |
halweg
Anmeldedatum: 05.01.2006 Beiträge: 782 Wohnort: Dresden
|
Verfasst am: Fr Jan 27, 2006 3:30 pm Titel: |
|
|
| AGU hat Folgendes geschrieben: | Nicht vergessen beim nächsten Mal, du bist hier im deutschen Forum. Vielleicht brauchen wir wirklich die schonmal von BoBo vorgeschlagenen Landesflaggen im Logo. Der Platz links im blauen Balken des Logos schreit förmlich nach einer Flagge. |
Also ich find es wichtiger, dass ich selbst hier bequem deutsch schreiben kann (geht bei mir ben viel schneller als englisch).
Wie die anderen schreiben ist mir fast egal, gern auch französisch oder russisch
@AGU: ähhh Explorerkontextmenü ähhh [wegduck] |
|
| Nach oben |
|
 |
AGU Gast
|
Verfasst am: Sa Jan 28, 2006 12:23 am Titel: |
|
|
| Zitat: | | @AGU: ähhh Explorerkontextmenü ähhh [wegduck] |
*AGU wartet, bis halweg sich wieder hochduckt, und wirft ihm dann einen schweren Steingutaschenbecher an den Kopf*
Nun ja, mal meine ersten Gedanken zur Integration in das Kontextmenü:
Zu allererst mal folgendes. Wenn man im Internet Explorer Text markiert und dann das Kontextmenü aufruft, wird ein anderes Menü eingeblendet als das, das normal bei einem Rechtsklick eingeblendet wird. Man müsste also erstmal abklären, wie man ausgerechnet in das erste der beiden erwähnten Kontextmenüs den Eintrag integriert.
Dann müsste man noch abklären, wie man evtl. auch in anderen Browsern den Eintrag in das Kontextmenü integriert.
Dann habe ich mir gedacht, man bewerkstelligt das als zusätzliches Skript, das einfach zusammen mit CopyPassage ausgeliefert wird. Wenn man dieses Feature möchte, kann man es so einfach nach Bedarf durch Doppelklicken installieren.
So, das war zwar nicht viel, aber meine ersten *Gehirnfürze* zu dem Thema. Da ich in dieser Thematik nicht so bewandert bin, wäre ich natürlich für jede Hilfe dankbar. Ansonsten müsste ich selbst erstmal nachforschen, wie man die Registrierung richtig verändert. Und selbst da wüßte ich im Moment nicht, wo ich am geschicktesten nach den Informationen suche.
Gruß
AGU |
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Sa Jan 28, 2006 9:08 am Titel: |
|
|
| Zitat: | | Wenn man im Internet Explorer Text markiert und dann das Kontextmenü aufruft, wird ein anderes Menü eingeblendet als das, das normal bei einem Rechtsklick eingeblendet wird | Du meinst damit den Standard - heisst hier das ein Anwendungsbezogenes Kontextmenü eingeblendet wird? (Anyway. Ich hab den kompleten Thread nicht intus) Sollte die Herausforderung darin bestehen, ein alternatives Kontextmenü zu coden welches neben dem Standardmenü triggerbar ist, sollte doch kiu's script im US/UK Forum ---> [hier] ein Einstieg sein.
Falls ich Quark rede, einfach ignorieren ...  |
|
| Nach oben |
|
 |
halweg
Anmeldedatum: 05.01.2006 Beiträge: 782 Wohnort: Dresden
|
Verfasst am: Sa Jan 28, 2006 11:29 am Titel: |
|
|
[immer noch weggeduckt]
Also unter | Code: | | HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt | gibt es zu jedem Unterschlüssel einen Binärwert Contexts. Ich nehme, das das Flags sind, die bestimmen, ob der entsprechende Eintrag bei markiertem Text oder ohne Marktierung im Kontextmenü erscheint.
Bei mir hat zum Beispiel der Unterschlüssel &ins Deutsche übersetzen, der nur bei markiertem Text erscheint, die Zeichenfolge "(Standard)" mit
res://c:\programme\google\GoogleToolbar1.dll/cmsimilar.html
und den Binärwert "Contexts" mit
21 00 00 00. |
|
| Nach oben |
|
 |
AGU Gast
|
Verfasst am: Sa Jan 28, 2006 2:15 pm Titel: |
|
|
OK, damit wären wir schonmal ein Stück weiter. Hab das hier gefunden:
http://msdn.microsoft.com/workshop/browser/ext/tutorials/context.asp
Danach sollte 0x10 der contexts Hex-Wert sein, mit dem der Eintrag ins Kontextmenü bei markiertem Text geschrieben wird.
Also bisher hab ich es soweit:
- Hier einen Schlüssel "Save Notes" erstellt.
| Code: | | HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt |
eine DWord Eintrag "Contexts" mit dem Wert 0x10 erstellt.
Was jetzt fehlt ist die Anweisung für den "Standard"wert unter dem Schlüssel Save Notes. Weiß erstens nicht, was er aufrufen soll, und zweitens, wie er das aufrufen soll. Vorschläge?
Das folgende Code sollte schon mal den richtigen Schlüssel anlegen. Allersdings fehlt noch die Zuweisung an den (Standard)wert.
| Code: | | RegWrite, REG_DWORD, HKCU, Software\Microsoft\Internet Explorer\MenuExt\Save Notes , Contexts, 0x10 |
Gruß
AGU |
|
| Nach oben |
|
 |
AGU Gast
|
Verfasst am: Sa Jan 28, 2006 2:16 pm Titel: |
|
|
| Zitat: | | [immer noch weggeduckt] | Irgendwann musst du dich wieder hochducken, und dann fliegt der Aschenbecher.
Gruß
AGU |
|
| Nach oben |
|
 |
AGermanUser
Anmeldedatum: 25.10.2005 Beiträge: 167
|
Verfasst am: Sa Jan 28, 2006 2:41 pm Titel: |
|
|
Wieder ein kleiner Fortschritt. Eine mögliche Aktion für den (Standard)wert wäre das file protocol. Also sowas wie file://C:\Ordner\test.ahk
Sofern die .ahk Verknüpfung richtig registriert ist, sollte der IE gleich das Skript ausführen. Das ist aber keine Allgemeinlösung für alle Browser. Der Firefox z.B. zeigt stattdessen bei Aufruf einer AHK Datei nur den Textinhalt an.
Ich bin also immer noch auf der Suche nach einer allgemeingültigen Methode.
Evtl. funktioniert vielleicht der Aufruf der Autohotkey.exe mit dem Skript als Parameter. Muss ich mal ausprobieren. Setzt aber leider auch wieder voraus, das auf allen Systemen Autohotkey im selben Verzeichnis installiert ist.
Irgendwie dreh ich mich im Kreis.
Das erinnert mich an den FrogBender in der Stufe 3
http://joecartoon.atomfilms.com/pages/frogbender/ _________________ Gruß
AGermanUser a.k.a. AGU
Moderator |
|
| Nach oben |
|
 |
halweg
Anmeldedatum: 05.01.2006 Beiträge: 782 Wohnort: Dresden
|
Verfasst am: Sa Jan 28, 2006 7:22 pm Titel: |
|
|
| AGermanUser hat Folgendes geschrieben: | Das erinnert mich an den FrogBender in der Stufe 3  |
[Vorsichtig aus der Deckung schauend]Da seh ich mit Aschenbecher am Kopf sicher noch gut dagegen aus.
Zur Sache: Das klingt als ob die Lösung schon da ist. Zumindest für mich. Wenn man das Skript per Kontextmenü irgendwie über ein RUN gestartet bekommt, wird das alles sehr einfach:
Alles was ich bräuchte wäre der korrekte Registryeintrag für den IE (z. B., als modifizierbares AHK-Skript) und die AHK-Datei zum "in die Textdatei kopieren" (mit EXITAPP am Ende).
Auf die GUI-Features könnte ich vielleicht verzichten. Auf jeden Fall wäre es günstig, wenn das Skript nicht im Speicher bliebe und ich über einen RUN-Befehl aus meinem eigenen Skript die GUI starten könnte. So würde ich dann wohl auch das Tray-Icon einsparen (Aktion "sauberer Tray-Bereich").
Ich hoffe, du hast nichts dagegen, wenn ich dein Skript derart vergewaltige. [/Vorsichtig aus der Deckung schauend] |
|
| Nach oben |
|
 |
AGU Gast
|
Verfasst am: Sa Jan 28, 2006 11:08 pm Titel: |
|
|
war echt der Meinung so müsste das funktionieren:
| Code: | RegWrite, REG_SZ , HKCU, Software\Microsoft\Internet Explorer\MenuExt\Save Notes ,, file://C:\Test.ahk
RegWrite, REG_DWORD, HKCU, Software\Microsoft\Internet Explorer\MenuExt\Save Notes , Contexts, 0x10 |
Aber irgendwie will das doch nicht klappen. Wenn man den file:// URI händisch in die Adresszeile eintippt, wird sie anstandslos ausgeführt.
Klickt man allerdings auf den Eintrag im Kontextmenü, passiert gar nichts.
Weiß im Moment echt nicht, was ich noch anstellen soll. Nachdem ich noch ein bisschen recherchiert habe, und gesehen habe, das es für die anderen Browser auch nicht gerade leichter wird, bin echt schon am überlegen, ob ich das mit dem Kontextmenü nicht doch lieber fallen lasse.
Was die anderen Sachen angeht, bist du natürlich völlig frei. Nimm aus dem Skript was du brauchst. In deinem Fall wahrscheinlich eher die "CopyPassage" Subroutine. Du hast ja gesagt, du möchtest auf das GUI Feature verzichten.
Du könntest natürlich auch versuchen, den IE noch so hinzubekommen, das er tatsächlich ein Skript ausführt, wenn du den Kontextmenüeintrag anklickst.
Dann öffnest du einfach eine kleine Skriptdatei, mit der du den Hotkey Win+C bzw. den von dir vergebenen Hotkey sendest. Damit könntest du auch das GUI Feature nutzen.
Und was das TrayIcon angeht:
Einfach oben in das Skript eintragen, und weg ist das TrayIcon.
Gruß
AGU |
|
| Nach oben |
|
 |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|