 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
grossermanituo Gast
|
Verfasst am: Fr Jun 22, 2007 1:46 pm Titel: activaid leo tooltip erweitern |
|
|
ich bin ein rießen fan von activaid. besonders der leo tooltip funktion. (ich makiere ein word das ich überstezten möchte und per shortcut wid auf basis von leo.org mir ein menu mit möglichen übersetzungen angezeigt)
über dieses menu kann ich mir die jeweilige übersetzung direkt anzeigen lassen.
was ich gerne machen möchte ist, dass wenn ich meine passende übersetzung gefunden habe und ich diese ausgewählt habe, mir vokabeln und überstzung in eine txt datei kopiert wird.
somit kann ich wöchentlich auf einfache weise noch vokabeln pauken.
basics in sachen ahk habe ich drauf, dieser code übersteigt aber mein ahk-wissen. für hilfe wäre ich sehr dankbar
anbei der aktuelle code von leo-erweiterung (version 1.181)
| Code: |
; -----------------------------------------------------------------------------
; #############################################################################
; -----------------------------------------------------------------------------
; Name: LeoToolTip
; -----------------------------------------------------------------------------
; Prefix: leo_
; Version: 0.8
; Date: 2007-06-07
; Author: Wolfgang Reszel
; Copyright: 2007 Heise Zeitschriften Verlag GmbH & Co. KG
; -----------------------------------------------------------------------------
; -----------------------------------------------------------------------------
; === Initialisation ==========================================================
; -----------------------------------------------------------------------------
; Initialisierungsroutine, welche beim Start von ac'tivAid aufgerufen wird.
init_LeoToolTip:
Prefix = leo
%Prefix%_ScriptName = LeoToolTip
%Prefix%_ScriptVersion = 0.8
%Prefix%_Author = Wolfgang Reszel
RequireExtensions =
CustomHotkey_LeoToolTip = 0 ; automatisches benutzerdefinierbares Tastaturkürzel? (1 = ja)
Hotkey_LeoToolTip = ; Standard-Hotkey
HotkeyPrefix_LeoToolTip = ; Präfix, welches vor immer vor dem Tastaturkürzel gesetzt wird
; Sprachabhängige Variablen
If Lng = 07 ; = Deutsch (0407, 0807, 0c07 ...)
{
MenuName = %leo_ScriptName% - markiertes Wort übersetzen
Description = Übersetzt mittels dict.leo.org das markierte Wort und zeigt das Ergebnis als Tooltip an.
lng_leo_NothingFound = Suchbegriff nicht gefunden
lng_leo_Error = Fehler beim Zugriff auf LEO.`nVermutlich wurden zu viele Abfragen in Folge an den Server geschickt.`nLEO sperrt in diesem Fall ihre IP-Adresse für 2 Minuten.`n`nKlicken Sie mit der rechten Maustaste auf diese Meldung,`num die Fehlerseite aufzurufen.
lng_leo_LeoOnMbutton = Suche automatisch ausführen, wenn ein Wort mit der mittleren Maustaste markiert wird. (MouseClip)
lng_leo_Searching = Verbinde mit
lng_leo_Server = Server
lng_leo_ServerTip = pda.leo.org ist schneller, aber bei vielen Anfragen in kurzer Zeit gibt es eine 2-Minuten-Sperrung.
lng_leo_ToolTipTimeout = Sekunden, nach denen der Tooltip automatisch verschwindet
lng_leo_UseMenu = Menü statt eines Tooltips einblenden, womit die ausgewählte Übersetzung direkt eingefügt werden kann
lng_leo_GotoURL = Suchergebnisse mit dict.leo.org im Browser anzeigen
lng_leo_GotoURLCompact = im Browser anzeigen
lng_leo_AutoCorrect = Verwende ähnlichen Suchbegriff
lng_leo_Lang1 = Deutsch-Englisch
lng_leo_Lang2 = Deutsch-Französisch
lng_leo_Lang3 = Deutsch-Spanisch
lng_leo_SearchFor = Bitte Suchbegriff eingeben
lng_leo_CheckProxy = Bitte prüfen Sie auch Ihre Proxy-Einstellungen im Internet Explorer.`nLeoToolTip funktioniert nicht bei Proxies mit manueller Anmeldung.`nEvtl. hilft die Aktivierung von "HTTP 1.1 über Proxy-Verbindungen verwenden" in den Internetoptionen unter Erweitert.`nUnter Umständen könnte auch der Server nicht erreichbar sein.
lng_leo_Browser = Browser für Rechtsklick auf ToolTip
lng_leo_BrowserError = Der Browser kann evtl. nicht gestartet werden, Windows meldet:`n
lng_leo_SelectBrowser = Auswählen ...
lng_leo_FileTypeEXE = Programme (*.exe)
lng_leo_TranslationToClipboard= Ausgewählte Übersetzung wird nicht eingefügt, sondern in die Zwischenablage gelegt
lng_leo_CompactMenu = Kompakteres Menü
}
else ; = Alternativ-Sprache (wenn nicht Deutsch und keine language.ini vorhanden)
{
MenuName = %leo_ScriptName% - translate selected word
Description = Translates the selected word with dict.leo.org and shows the result as a tooltip.
lng_leo_NothingFound = search item not found
lng_leo_Error = Error while accessing LEO.`nMaybe you've sent to many queries in a short time.`nIn that case, LEO locks your IP-address for 2 minutes.
lng_leo_LeoOnMbutton = Search automatically when selecting a word with the middle mouse-button. (MouseClip)
lng_leo_Searching = Connecting to
lng_leo_Server = Server
lng_leo_ServerTip = pda.leo.org is faster, but you will be locked for 2 minutes for to many queries in a short time.
lng_leo_ToolTipTimeout = Seconds, when the tooltip automatically disappears
lng_leo_UseMenu = Show a menu instead of a tooltip to make it possible to directly paste a translation
lng_leo_GotoURL = Show results with dict.leo.org in browser
lng_leo_GotoURLCompact = Show in browser
lng_leo_AutoCorrect = Using similar search item
lng_leo_Lang1 = German-English
lng_leo_Lang2 = German-French
lng_leo_Lang3 = German-Spanish
lng_leo_SearchFor = Please enter search item
lng_leo_CheckProxy = Please check also your proxy settings in Internet Explorer,`nLeoToolTip does not work at proxies with manual authentification.`nAlso the Leo-server could be down at the moment.
lng_leo_Browser = Browser for right-click on tooltip
lng_leo_BrowserError = Maybe the browser can't be launched, windows returns:`n
lng_leo_SelectBrowser = Choose...
lng_leo_FileTypeEXE = Programs (*.exe)
lng_leo_TranslationToClipboard= Selected translation will be stored in the clipboard instead of pasting it
lng_leo_CompactMenu = More compact menu
}
func_HotkeyRead( "leo_Hotkey1", ConfigFile , leo_ScriptName, "Hotkey_LeoToolTip", "leo_sub_Hotkey1", "^+l", "$" )
func_HotkeyRead( "leo_Hotkey2", ConfigFile , leo_ScriptName, "Hotkey2_LeoToolTip", "leo_sub_Hotkey2", "", "$" )
func_HotkeyRead( "leo_Hotkey3", ConfigFile , leo_ScriptName, "Hotkey3_LeoToolTip", "leo_sub_Hotkey3", "", "$" )
RegisterAdditionalSetting( "leo", "CompactMenu", 0 )
IniRead, leo_UseMenu , %ConfigFile%, LeoToolTip, UseMenu, 0
IniRead, leo_NumOfResults, %ConfigFile%, LeoToolTip, NumOfResults, 5
IniRead, leo_EnableMButton, %ConfigFile%, LeoToolTip, LeoOnMButton, 0
IniRead, leo_TranslationToClipboard, %ConfigFile%, LeoToolTip, TranslationToClipboard, 0
IniRead, leo_Server, %ConfigFile%, LeoToolTip, LeoServerURL, pda.leo.org
IniRead, leo_ToolTipTimeout, %ConfigFile%, LeoToolTip, ToolTipTimeout, 10
IniRead, leo_Browser, %ConfigFile%, LeoToolTip, Browser, %A_Space%
IniRead, leo_HistoryFile, %ConfigFile%, LeoToolTip, HistoryFile, %A_Space%
; Liste der Texte, die aus dem Ergebnis entfernt werden sollen. (Regulärer Ausdruck)
leo_RemoveBeforeReplace := "i)\.{3}|j[mnd]{3}\.(/| |$)|etw\. |s(b|o)\.(/| |$)|sth\.(/| |$)|^to |^it |^the |^d(er|ie|as) | ad(j|v)\.| pl\.| also: .*| rarely: .*| auch: .*| selten: .*"
leo_WebBrowsers = OpWindow,MozillaUIWindowClass,IEFrame
leo_AlphaNums := "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
leo_CleanChars = `%|&\$|\$&|\$#|#|\$|&|\(|\)|\[|\]|\{|\}|^ +| +$|@
Return
SettingsGui_LeoToolTip:
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang1, "leo_Hotkey1", "xs+10 y+6 w180" )
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang2, "leo_Hotkey2", "xs+10 y+6 w180" )
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang3, "leo_Hotkey3", "xs+10 y+6 w180" )
If Enable_MouseClip = 1
Gui, Add, Checkbox, -Wrap xs+10 y+10 gleo_sub_MouseClip vleo_EnableMButton Checked%leo_EnableMButton%, %lng_leo_LeoOnMbutton%
Gui, Add, Checkbox, -Wrap xs+10 y+5 gsub_CheckIfSettingsChanged vleo_UseMenu Checked%leo_UseMenu%, %lng_leo_UseMenu%
Gui, Add, Checkbox, -Wrap xs+20 y+5 gsub_CheckIfSettingsChanged vleo_TranslationToClipboard Checked%leo_TranslationToClipboard%, %lng_leo_TranslationToClipboard%
Gui, Add, Text, xs+10 y+20, %lng_leo_Server%:
leo_Servers = dict.leo.org|pda.leo.org
Gui, Add, DropDownList, x+5 yp-4 gsub_CheckIfSettingsChanged vleo_Server, %leo_Servers%
GuiControl,Choose,leo_Server,%leo_Server%
Gui, Add, Text, xs+10 y+3, %lng_leo_ServerTip%
Gui, Add, Text, xs+10 y+11, %lng_leo_ToolTipTimeout%:
Gui, Add, Edit, x+5 yp-3 -Wrap r1 Number w40 gsub_CheckIfSettingsChanged vleo_ToolTipTimeout, %leo_ToolTipTimeout%
Gui, Add, UpDown, Range1-99, %leo_ToolTipTimeout%
Gui, Add, Text, xs+10 y+20, %lng_leo_Browser%:
Gui, Add, Edit, x+5 yp-3 R1 -Wrap w290 gsub_CheckIfSettingsChanged vleo_Browser, %leo_Browser%
Gui, Add, Button, x+5 -Wrap w80 h21 gleo_sub_SelectBrowser, %lng_leo_SelectBrowser%
Return
leo_sub_SelectBrowser:
Gui, +OwnDialogs
leo_Suspended = %A_IsSuspended%
If leo_Suspended = 0
Suspend, On
FileSelectFile, leo_Browser_tmp,, %A_Programfiles%, %lng_leo_Browser%, %lng_leo_FileTypeEXE%
If ErrorLevel = 0
GuiControl,, leo_Browser, %leo_Browser_tmp%
If leo_Suspended = 0
Suspend, Off
Return
leo_sub_MouseClip:
Gosub, sub_CheckIfSettingsChanged
GuiControlGet, leo_EnableMButton_tmp,,leo_EnableMButton
If (leo_EnableMButton_tmp = 1 AND Enable_ThesauroToolTip <> "")
GuiControl,,ttt_EnableMButton,0
Return
SaveSettings_LeoToolTip:
IniWrite, %leo_UseMenu%, %ConfigFile%, LeoToolTip, UseMenu
IniWrite, %leo_EnableMButton%, %ConfigFile%, LeoToolTip, LeoOnMButton
IniWrite, %leo_Server%, %ConfigFile%, LeoToolTip, LeoServerURL
IniWrite, %leo_ToolTipTimeout%, %ConfigFile%, LeoToolTip, ToolTipTimeout
IniWrite, %leo_Browser%, %ConfigFile%, LeoToolTip, Browser
IniWrite, %leo_TranslationToClipboard%, %ConfigFile%, LeoToolTip, TranslationToClipboard
func_HotkeyWrite( "leo_Hotkey1", ConfigFile , leo_ScriptName, "Hotkey_LeoToolTip" )
func_HotkeyWrite( "leo_Hotkey2", ConfigFile , leo_ScriptName, "Hotkey2_LeoToolTip" )
func_HotkeyWrite( "leo_Hotkey3", ConfigFile , leo_ScriptName, "Hotkey3_LeoToolTip" )
Return
AddSettings_LeoToolTip:
Return
CancelSettings_LeoToolTip:
Return
DoEnable_LeoToolTip:
If leo_EnableMButton
RegisterHook( Extend_MButton, "LeoToolTip" )
EnableMButton_LeoToolTip = %leo_EnableMButton%
func_HotkeyEnable("leo_Hotkey1")
func_HotkeyEnable("leo_Hotkey2")
func_HotkeyEnable("leo_Hotkey3")
Return
DoDisable_LeoToolTip:
If leo_EnableMButton
UnRegisterHook( Extend_MButton, "LeoToolTip" )
EnableMButton_LeoToolTip = %leo_EnableMButton%
func_HotkeyDisable("leo_Hotkey1")
func_HotkeyDisable("leo_Hotkey2")
func_HotkeyDisable("leo_Hotkey3")
Return
DefaultSettings_LeoToolTip:
Return
OnExitAndReload_LeoToolTip:
Return
; -----------------------------------------------------------------------------
; === Hotkeys =================================================================
; -----------------------------------------------------------------------------
leo_sub_Hotkey1:
leo_LangStr = ende
Gosub, sub_Hotkey_LeoToolTip
Return
leo_sub_Hotkey2:
leo_LangStr = frde
Gosub, sub_Hotkey_LeoToolTip
Return
leo_sub_Hotkey3:
leo_LangStr = esde
Gosub, sub_Hotkey_LeoToolTip
Return
; Unterroutine für das automatische Tastaturkürzel
sub_Hotkey_LeoToolTip:
WinGetClass, leo_WinClass, A
Coordmode, Caret, Screen
If leo_WinClass Contains %leo_WebBrowsers%
{
leo_ttX =
leo_ttY =
}
Else
{
leo_ttX := A_CaretX+10
leo_ttY := A_CaretY+10
}
gosub, leo_sub_Search
If ErrorLevel = 1
Return
SetTimer, leo_tim_ToolTipOff, % leo_ToolTipTimeout * 1000
If ( leo_UseMenu <> 1 OR InStr(leo_FinalResult,lng_leo_NothingFound) )
{
Gosub, DoDisable_LeoToolTip
Input, leo_SingleKey, L1 I V, {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}{CtrlBreak}%InputEscapeKeys%
StringReplace, leo_SingleKey, ErrorLevel, Endkey:,,A
Gosub, DoEnable_LeoToolTip
}
Gosub, leo_tim_ToolTipOff
If ( leo_UseMenu <> 1 OR InStr(leo_FinalResult,lng_leo_NothingFound) )
{
If leo_SingleKey = %Hotkey_leo_Hotkey1%
Gosub, leo_sub_Hotkey1
If leo_SingleKey = %Hotkey_leo_Hotkey2%
Gosub, leo_sub_Hotkey2
If leo_SingleKey = %Hotkey_leo_Hotkey3%
Gosub, leo_sub_Hotkey3
}
Return
MButton_LeoToolTip:
If (leo_EnableMButton = 1 AND Enable_MouseClip = 1)
{
mc_NoPaste = yes
leo_ttX =
leo_ttY =
leo_LangStr = ende
gosub, leo_sub_Search
MButton_send =
}
Return
; -----------------------------------------------------------------------------
; === Subroutines =============================================================
; -----------------------------------------------------------------------------
leo_sub_Search:
AutoTrim, On
Coordmode, ToolTip, Screen
Coordmode, Menu, Screen
If leo_NotFound =
{
func_GetSelection()
leo_searchOrig := Selection
}
Else
leo_NotFound++
If leo_searchOrig =
{
StringUpper, leo_Text, leo_LangStr
leo_Text := lng_leo_SearchFor " (" SubStr(leo_Text,1,2) " <-> " SubStr(leo_Text,3,2) "):"
InputBox, leo_searchOrig, %leo_ScriptName% (%ScriptTitle%), %leo_Text%,,,115,,,,,%leo_LastSearchOrig%
If ErrorLevel = 1
Return
}
; Zeilenumbrüche entfernen
leo_searchOrig := RegExReplace(leo_searchOrig, "\r\n|\r|\n"," ")
; Variablenzeichen und Klammern entfernen (Aufgabe)
leo_searchClean := RegExReplace(leo_searchOrig,leo_CleanChars,"")
leo_searchFor := leo_func_URLEncode(leo_searchClean)
If ( ( leo_LangStr leo_searchFor <> leo_LastLangStr leo_lastSearch AND leo_searchFor <> "" ) OR (leo_lastSearch = "" AND leo_searchFor ="") )
{
If leo_NotFound =
tooltip, %lng_leo_Searching% %leo_Server% ..., %leo_ttX%, %leo_ttY%, 7
Else
tooltip, %lng_leo_AutoCorrect% %leo_searchOrig% ..., %leo_ttX%, %leo_ttY%, 7
URLDownloadToFile, http://%leo_Server%/?lp=%leo_langStr%&relink=off§Hdr=off&spellToler=on&search=%leo_searchFor%, %A_Temp%\leoahk.tmp
;FileCopy, %A_Temp%\leoahk.tmp, %A_Desktop%\LeoToolTip-DebugDatei.txt
FileRead, leo_Query, %A_Temp%\leoahk.tmp
FileDelete, %A_Temp%\leoahk.tmp
StringGetPos, leo_tmp, leo_Query, <td class="td1" valign="middle" width="4
StringTrimLeft, leo_Result, leo_Query, %leo_tmp%
; erst alle " entfernen, da sie nicht benötigt werden
StringReplace, leo_Result, leo_Result, ",, A
; verschiedene Tags entfernen
leo_Result := RegExReplace(leo_Result,"i)<->.|<img.*?>|<td class=td1 nowrap width=.`%>||</td>|<small>|</small>|<font size=-1>|</font>|`t", "")
; LineBreaks einfügen
leo_Result := RegExReplace(leo_Result, "i)<!--`n|<td class=td1 valign=middle width=..`%>", "`n")
; bestimmte Tags zu Klammern umwandeln
leo_Result := RegExReplace(leo_Result,"i)<sup>(.*?)</sup>|<sub>(.*?)</sub>", " ($1)")
; bestimmte Tags zu geschweiften Klammern umwandeln
leo_Result := RegExReplace(leo_Result,"i)<I>(.*?)</I>", "{$1}")
; zwei Klammern zu einer machen, z.B.: { [..]}
leo_Result := RegExReplace(leo_Result,"\{ ?(\(|\[)(.*?)(\]|\))\}", "$1$2$3")
leo_Result := RegExReplace(leo_Result,"\[ ?(\{|\(|\[)(.*?)(\]|\)|\})\]", "[$2]")
; Sonderzeichen mit Ampersand ersetzen (z.B. whiteout)
leo_Result := RegExReplace(leo_Result,"®", "®")
leo_Result := RegExReplace(leo_Result,"©", "©")
;alle anderen Ampersand-Semikolon Teile löschen
leo_Result := RegExReplace(leo_Result,"&.*?;", "")
; Ende des Eintragens der Übersetzung bestimmen |
leo_Result := RegExReplace(leo_Result,"<br>", "|")
; mehrfach und HTML Leerzeichen zu einem Leerzeichen machen
leo_Result := RegExReplace(leo_Result,"i) |\t| {2,}", " ")
leo_FinalResult =
leo_Line = 0
Loop, Parse, leo_Result, `n
{
If (A_Index/2 > leo_NumOfResults+1)
break
IfInstring, A_LoopField, Sie haben Ihr Zugriffslimit überschritten
{
leo_FinalResult = %lng_leo_Error%!
leo_SearchFor =
Break
}
If leo_Line = 1
{
leo_Line = 2
StringGetPos, leo_tmp, A_LoopField, <a
StringLeft, leo_FromLang, A_LoopField, %leo_tmp%
If leo_tmp < 1
leo_FromLang = %A_LoopField%
IfInstring, A_LoopField, </tr>
Break
IfInstring, A_LoopField, <html>
{
If leo_NotFound = 1
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!
Else
leo_NotFound = 1
Break
}
If A_LoopField =
Break
IfInstring, A_LoopField, <head>
{
leo_FinalResult = %lng_leo_Error%!
leo_SearchFor =
Break
}
StringGetPos, leo_tmp, A_LoopField, <img border="0" alt
StringLeft, leo_FromLang, A_LoopField, %leo_tmp%
If leo_tmp < 1
leo_FromLang = %A_LoopField%
}
Else If leo_Line = 2
{
leo_Line = 1
StringGetPos, leo_tmp, A_LoopField, <td
StringLeft, leo_ToLang, A_LoopField, %leo_tmp%
leo_FinalResult = %leo_FinalResult%%leo_FromLang%%A_Tab%%leo_ToLang%`r`n
IfInstring, A_LoopField, </table>
Break
}
Else
{
leo_Line = 1
}
}
StringTrimRight, leo_FinalResult, leo_FinalResult, 2
If leo_Query =
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!`r`n%lng_leo_CheckProxy%
}
Else
leo_searchFor = %leo_lastSearch%
If leo_NotFound = 1
{
IfInstring, leo_Query, <b>Orthographisch ähnliche Wörter &ndash
{
StringGetPos, leo_tmp, leo_Query, <b>Orthographisch ähnliche Wörter &ndash
StringTrimLeft, leo_Result, leo_Query, %leo_tmp%
StringGetPos, leo_tmp, leo_Result, ">
StringTrimLeft, leo_Result, leo_Result, % leo_tmp+2
StringGetPos, leo_tmp, leo_Result, </A>
StringLeft, leo_searchOrig, leo_Result, %leo_tmp%
leo_lastSearch =
leo_lastLangStr =
Gosub leo_sub_Search
Return
}
}
If leo_NotFound = 1
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!
leo_FinalResultTip := RegExReplace(leo_FinalResult,"i)<B>|</B>", "")
StringReplace, leo_FinalResultTip, leo_FinalResultTip, %A_Tab%, % " = ", All
leo_NotFound =
leo_lastSearch = %leo_searchFor%
leo_lastSearchOrig = %leo_searchOrig%
leo_LastLangStr = %leo_LangStr%
MouseGetPos, leo_startX, leo_startY
StringLeft, leo_Lang1, leo_LangStr, 2
StringRight, leo_Lang2, leo_LangStr, 2
StringUpper, leo_Lang1, leo_Lang1
StringUpper, leo_Lang2, leo_Lang2
If (leo_UseMenu = 1 AND !InStr(leo_FinalResult, lng_leo_NothingFound ": " leo_searchOrig))
{
leo_Index = 0
Loop, Parse, leo_FinalResult, `n, `r
{
leo_Split = %A_LoopField%
StringSplit, leo_Split, leo_Split, %A_Tab%
IfInString, leo_Split1, <b>
{
leo_Index++
leo_MenuString = %leo_Split2%
leo_MenuStringB = %leo_Split1%
If leo_CompactMenu = 0
leo_MenuStringB = «%leo_Lang2%-%leo_Lang1%» %leo_MenuStringB%
StringMid, leo_Key, leo_AlphaNums, leo_Index, 1
leo_MenuString := RegExReplace(leo_MenuString,"i)<B>|</B>", "")
leo_MenuStringB := RegExReplace(leo_MenuStringB,"i)<B>|</B>", "")
leo_MenuItem[%leo_Index%] = %leo_MenuString%
If (StrLen(leo_MenuString) > 85)
leo_MenuString := func_StrLeft(leo_MenuString, 85) "..."
If (StrLen(leo_MenuStringB) > 85)
leo_MenuStringB := func_StrLeft(leo_MenuStringB, 85) "..."
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &%leo_Key% - %leo_MenuString%%A_Tab%%leo_MenuStringB%, leo_sub_MenuCall
Else
Menu, LeoToolTip, Add, %leo_MenuString% = %leo_MenuStringB%, leo_sub_MenuCall
}
IfInString, leo_Split2, <b>
{
leo_Index++
leo_MenuString = %leo_Split1%
leo_MenuStringB =%leo_Split2%
leo_MenuString = %leo_MenuString%
If leo_CompactMenu = 0
leo_MenuStringB = «%leo_Lang1%-%leo_Lang2%» %leo_MenuStringB%
StringMid, leo_Key, leo_AlphaNums, leo_Index, 1
leo_MenuString := RegExReplace(leo_MenuString,"i)<B>|</B>", "")
leo_MenuStringB := RegExReplace(leo_MenuStringB,"i)<B>|</B>", "")
leo_MenuItem[%leo_Index%] = %leo_MenuString%
If (StrLen(leo_MenuString) > 85)
leo_MenuString := func_StrLeft(leo_MenuString, 85) "..."
If (StrLen(leo_MenuStringB) > 85)
leo_MenuStringB := func_StrLeft(leo_MenuStringB, 85) "..."
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &%leo_Key% - %leo_MenuString%%A_Tab%%leo_MenuStringB%, leo_sub_MenuCall
Else
Menu, LeoToolTip, Add, %leo_MenuString% = %leo_MenuStringB%, leo_sub_MenuCall
}
}
Gosub, leo_tim_ToolTipOff
Menu, LeoToolTip, Add
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &# - %lng_leo_GotoURL%, leo_sub_GotoURL
Else
Menu, LeoToolTip, Add, %lng_leo_GotoURLCompact%, leo_sub_GotoURL
If leo_HistoryFile <>
FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile%
Menu, LeoToolTip, Show, %leo_ttX%, %leo_ttY%
Menu, LeoToolTip, DeleteAll
Return
}
Else
{
tooltip, %leo_FinalResultTip%, %leo_ttX%, %leo_ttY%, 7
;Clipboard = %leo_FinalResult%
SetTimer, leo_tim_WatchToolTip, 20
If (leo_HistoryFile <> "" AND !InStr(leo_FinalResult, lng_leo_NothingFound))
FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile%
}
Return
leo_sub_MenuCall:
leo_MenuString := leo_MenuItem[%A_ThisMenuItemPos%]
; geschützte Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, " ", "")
; Eckige und runde Klammern mit Inhalt entfernen
leo_MenuString := RegExReplace(leo_MenuString, "(\(|\[).*?(\)|\])", "")
; Nach Minus, geschweifter Klammer, senkrechtem Strich oder Tabulator schneiden
leo_MenuString := RegExReplace(leo_MenuString, "^(.*?)(- |\{|\||,|\t).*", "$1")
; Sonderwörter entfernen
leo_MenuString := RegExReplace(leo_MenuString, leo_RemoveBeforeReplace, "")
; überflüssige Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, "\s+", " ")
leo_MenuString := RegExReplace(leo_MenuString, "^\s*", "")
leo_MenuString := RegExReplace(leo_MenuString, "\s*$", "")
; Variablenzeichen und Klammern wieder hinzufügen
leo_MenuString := RegExReplace(leo_searchOrig, "^(" leo_CleanChars ")?.*?(" leo_CleanChars ")?$", "$1" leo_MenuString "$2")
If leo_TranslationToClipboard = 1
Clipboard = %leo_MenuString%
Else
SendRaw, %leo_MenuString%
Return
leo_func_URLEncode( leo_url ) {
SetFormat, integer, hex
StringReplace, leo_url, leo_url, %A_Space%, `%20
Loop, 127
{
leo_HexCode := A_Index+127
Transform, leo_HighChar, Chr, %leo_HexCode%
StringReplace, leo_HexCode, leo_HexCode, 0x,`%
StringReplace, leo_url, leo_url, %leo_HighChar%, %leo_HexCode%
}
SetFormat, integer, dec
Return %leo_url%
}
leo_tim_ToolTipOff:
RButton_tip =
leo_BreakLoop = 1
SetTimer, leo_tim_ToolTipOff, Off
tooltip,,,,7
SetTimer, leo_tim_WatchToolTip, Off
Return
leo_sub_GotoURL:
If leo_Browser =
Run, http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
Else
Run, %leo_Browser% http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
If ErrorLevel = ERROR
func_GetErrorMessage( A_LastError, leo_ScriptName, lng_leo_BrowserError )
Return
leo_tim_WatchToolTip:
MouseGetPos, leo_X, leo_Y, leo_WinID
If leo_startX <>
{
If (leo_X > leo_StartX+4 OR leo_Y > leo_StartY+4 OR leo_X < leo_StartX-4 OR leo_Y < leo_StartY-4)
{
leo_startX =
SetTimer, leo_tim_ToolTipOff, 2000
}
}
WinGetTitle, leo_TipText, ahk_id %leo_WinID%
If leo_TipText = %leo_FinalResultTip%
{
GetKeyState, leo_LButton, LButton
GetKeyState, leo_RButton, RButton
If leo_LButton = D
Gosub, leo_tim_ToolTipOff
Else If (leo_RButton = "D" OR RButton_tip = "yes")
{
If leo_Browser =
Run, http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
Else
Run, %leo_Browser% http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
If ErrorLevel = ERROR
func_GetErrorMessage( A_LastError, leo_ScriptName, lng_leo_BrowserError )
Gosub, leo_tim_ToolTipOff
}
Else
{
SetTimer, leo_tim_ToolTipOff, 1000
}
}
GetKeyState, leo_ESC, ESC
If leo_ESC = D
SetTimer, leo_tim_ToolTipOff, 1
Return
|
|
|
| Nach oben |
|
 |
Leo_ToolTip Gast
|
Verfasst am: So Jun 24, 2007 6:11 am Titel: |
|
|
Hallo,
ich hab's mir mal angesehen. Nettes Skript!
Ich glaube, Deine Datei schon gibt es schon:
| Code: | | IniRead, leo_HistoryFile, %ConfigFile%, LeoToolTip, HistoryFile, %A_Space% |
Diese Datei sollte bei den Einstellungen für Leo ToolTip vorzugeben sein, und wenn sie vorgegeben ist, werden alle Treffer dort hineingeschrieben:
| Code: | If leo_HistoryFile <>
FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile%
...
...
If (leo_HistoryFile <> "" AND !InStr(leo_FinalResult, lng_leo_NothingFound))
FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile% |
Probier doch einfach mal! |
|
| Nach oben |
|
 |
grossermanitou Gast
|
|
| Nach oben |
|
 |
Leo_Tooltip Gast
|
Verfasst am: Sa Jul 07, 2007 6:32 am Titel: |
|
|
So, das hat etwas gedauert.
In der ac'tivAid.ini im Ordner Settings gibt es eine Section [LeoToolTip]. Wenn nicht, musst Du die Einstellungen für LeoTooltip einmal speichern lassen.
Dort must Du händisch einen Eintrag wie z.B. | Code: | | HistoryFile =D:\AHK\ActivAid\LeoHistory.txt | einfügen, der den Pfad der von Dir gewünschten Datei enthält. In dieser Datei werden dann alle Ergebnisse protokolliert.
Wenn dort auch noch der ursprüngliche Suchbegriff protokolliert werden soll, kannst Du die FileAppend Anweisungen wie folgt ergänzen: | Code: | | FileAppend, %leo_searchOrig%`r`n%leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile% |
Ich habe gesprochen! |
|
| Nach oben |
|
 |
grossermanituo Gast
|
Verfasst am: Mo Jul 09, 2007 8:09 am Titel: Super |
|
|
| Also das klappt schonmal einwandfrei. Vielen Dank. Gibt es eine Möglichkeit in meine txt datei nur das reinzuschreiben was ich auch tatsächlich im Menu ausgewählt habe? |
|
| Nach oben |
|
 |
Leo_Tooltip Gast
|
Verfasst am: Mo Jul 09, 2007 11:11 am Titel: |
|
|
Du kannst ja mal versuchen, die beiden vorhandenen FileAppends auszukommentieren und das Skript wie folgt zu ergänzen: | Code: | leo_sub_MenuCall:
leo_MenuString := leo_MenuItem[%A_ThisMenuItemPos%]
; geschützte Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, " ", "")
; Eckige und runde Klammern mit Inhalt entfernen
leo_MenuString := RegExReplace(leo_MenuString, "(\(|\[).*?(\)|\])", "")
; Nach Minus, geschweifter Klammer, senkrechtem Strich oder Tabulator schneiden
leo_MenuString := RegExReplace(leo_MenuString, "^(.*?)(- |\{|\||,|\t).*", "$1")
; Sonderwörter entfernen
leo_MenuString := RegExReplace(leo_MenuString, leo_RemoveBeforeReplace, "")
; überflüssige Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, "\s+", " ")
leo_MenuString := RegExReplace(leo_MenuString, "^\s*", "")
leo_MenuString := RegExReplace(leo_MenuString, "\s*$", "")
; Variablenzeichen und Klammern wieder hinzufügen
leo_MenuString := RegExReplace(leo_searchOrig, "^(" leo_CleanChars ")?.*?(" leo_CleanChars ")?$", "$1" leo_MenuString "$2")
If leo_TranslationToClipboard = 1
Clipboard = %leo_MenuString%
Else
SendRaw, %leo_MenuString%
If leo_HistoryFile <>
FileAppend, %leo_searchOrig%`r`n%leo_MenuString%`r`n`r`n, %leo_HistoryFile%
Return |
(*ungetestet*) |
|
| Nach oben |
|
 |
grossermanitou Gast
|
Verfasst am: Mo Jul 09, 2007 1:29 pm Titel: |
|
|
alos ich habe deine anweisungen befolgt und den code eingefügt
| Code: |
; -----------------------------------------------------------------------------
; #############################################################################
; -----------------------------------------------------------------------------
; Name: LeoToolTip
; -----------------------------------------------------------------------------
; Prefix: leo_
; Version: 0.8
; Date: 2007-06-07
; Author: Wolfgang Reszel
; Copyright: 2007 Heise Zeitschriften Verlag GmbH & Co. KG
; -----------------------------------------------------------------------------
; -----------------------------------------------------------------------------
; === Initialisation ==========================================================
; -----------------------------------------------------------------------------
; Initialisierungsroutine, welche beim Start von ac'tivAid aufgerufen wird.
init_LeoToolTip:
Prefix = leo
%Prefix%_ScriptName = LeoToolTip
%Prefix%_ScriptVersion = 0.8
%Prefix%_Author = Wolfgang Reszel
RequireExtensions =
CustomHotkey_LeoToolTip = 0 ; automatisches benutzerdefinierbares Tastaturkürzel? (1 = ja)
Hotkey_LeoToolTip = ; Standard-Hotkey
HotkeyPrefix_LeoToolTip = ; Präfix, welches vor immer vor dem Tastaturkürzel gesetzt wird
; Sprachabhängige Variablen
If Lng = 07 ; = Deutsch (0407, 0807, 0c07 ...)
{
MenuName = %leo_ScriptName% - markiertes Wort übersetzen
Description = Übersetzt mittels dict.leo.org das markierte Wort und zeigt das Ergebnis als Tooltip an.
lng_leo_NothingFound = Suchbegriff nicht gefunden
lng_leo_Error = Fehler beim Zugriff auf LEO.`nVermutlich wurden zu viele Abfragen in Folge an den Server geschickt.`nLEO sperrt in diesem Fall ihre IP-Adresse für 2 Minuten.`n`nKlicken Sie mit der rechten Maustaste auf diese Meldung,`num die Fehlerseite aufzurufen.
lng_leo_LeoOnMbutton = Suche automatisch ausführen, wenn ein Wort mit der mittleren Maustaste markiert wird. (MouseClip)
lng_leo_Searching = Verbinde mit
lng_leo_Server = Server
lng_leo_ServerTip = pda.leo.org ist schneller, aber bei vielen Anfragen in kurzer Zeit gibt es eine 2-Minuten-Sperrung.
lng_leo_ToolTipTimeout = Sekunden, nach denen der Tooltip automatisch verschwindet
lng_leo_UseMenu = Menü statt eines Tooltips einblenden, womit die ausgewählte Übersetzung direkt eingefügt werden kann
lng_leo_GotoURL = Suchergebnisse mit dict.leo.org im Browser anzeigen
lng_leo_GotoURLCompact = im Browser anzeigen
lng_leo_AutoCorrect = Verwende ähnlichen Suchbegriff
lng_leo_Lang1 = Deutsch-Englisch
lng_leo_Lang2 = Deutsch-Französisch
lng_leo_Lang3 = Deutsch-Spanisch
lng_leo_SearchFor = Bitte Suchbegriff eingeben
lng_leo_CheckProxy = Bitte prüfen Sie auch Ihre Proxy-Einstellungen im Internet Explorer.`nLeoToolTip funktioniert nicht bei Proxies mit manueller Anmeldung.`nEvtl. hilft die Aktivierung von "HTTP 1.1 über Proxy-Verbindungen verwenden" in den Internetoptionen unter Erweitert.`nUnter Umständen könnte auch der Server nicht erreichbar sein.
lng_leo_Browser = Browser für Rechtsklick auf ToolTip
lng_leo_BrowserError = Der Browser kann evtl. nicht gestartet werden, Windows meldet:`n
lng_leo_SelectBrowser = Auswählen ...
lng_leo_FileTypeEXE = Programme (*.exe)
lng_leo_TranslationToClipboard= Ausgewählte Übersetzung wird nicht eingefügt, sondern in die Zwischenablage gelegt
lng_leo_CompactMenu = Kompakteres Menü
}
else ; = Alternativ-Sprache (wenn nicht Deutsch und keine language.ini vorhanden)
{
MenuName = %leo_ScriptName% - translate selected word
Description = Translates the selected word with dict.leo.org and shows the result as a tooltip.
lng_leo_NothingFound = search item not found
lng_leo_Error = Error while accessing LEO.`nMaybe you've sent to many queries in a short time.`nIn that case, LEO locks your IP-address for 2 minutes.
lng_leo_LeoOnMbutton = Search automatically when selecting a word with the middle mouse-button. (MouseClip)
lng_leo_Searching = Connecting to
lng_leo_Server = Server
lng_leo_ServerTip = pda.leo.org is faster, but you will be locked for 2 minutes for to many queries in a short time.
lng_leo_ToolTipTimeout = Seconds, when the tooltip automatically disappears
lng_leo_UseMenu = Show a menu instead of a tooltip to make it possible to directly paste a translation
lng_leo_GotoURL = Show results with dict.leo.org in browser
lng_leo_GotoURLCompact = Show in browser
lng_leo_AutoCorrect = Using similar search item
lng_leo_Lang1 = German-English
lng_leo_Lang2 = German-French
lng_leo_Lang3 = German-Spanish
lng_leo_SearchFor = Please enter search item
lng_leo_CheckProxy = Please check also your proxy settings in Internet Explorer,`nLeoToolTip does not work at proxies with manual authentification.`nAlso the Leo-server could be down at the moment.
lng_leo_Browser = Browser for right-click on tooltip
lng_leo_BrowserError = Maybe the browser can't be launched, windows returns:`n
lng_leo_SelectBrowser = Choose...
lng_leo_FileTypeEXE = Programs (*.exe)
lng_leo_TranslationToClipboard= Selected translation will be stored in the clipboard instead of pasting it
lng_leo_CompactMenu = More compact menu
}
func_HotkeyRead( "leo_Hotkey1", ConfigFile , leo_ScriptName, "Hotkey_LeoToolTip", "leo_sub_Hotkey1", "^+l", "$" )
func_HotkeyRead( "leo_Hotkey2", ConfigFile , leo_ScriptName, "Hotkey2_LeoToolTip", "leo_sub_Hotkey2", "", "$" )
func_HotkeyRead( "leo_Hotkey3", ConfigFile , leo_ScriptName, "Hotkey3_LeoToolTip", "leo_sub_Hotkey3", "", "$" )
RegisterAdditionalSetting( "leo", "CompactMenu", 0 )
IniRead, leo_UseMenu , %ConfigFile%, LeoToolTip, UseMenu, 0
IniRead, leo_NumOfResults, %ConfigFile%, LeoToolTip, NumOfResults, 5
IniRead, leo_EnableMButton, %ConfigFile%, LeoToolTip, LeoOnMButton, 0
IniRead, leo_TranslationToClipboard, %ConfigFile%, LeoToolTip, TranslationToClipboard, 0
IniRead, leo_Server, %ConfigFile%, LeoToolTip, LeoServerURL, pda.leo.org
IniRead, leo_ToolTipTimeout, %ConfigFile%, LeoToolTip, ToolTipTimeout, 10
IniRead, leo_Browser, %ConfigFile%, LeoToolTip, Browser, %A_Space%
IniRead, leo_HistoryFile, %ConfigFile%, LeoToolTip, HistoryFile, %A_Space%
; Liste der Texte, die aus dem Ergebnis entfernt werden sollen. (Regulärer Ausdruck)
leo_RemoveBeforeReplace := "i)\.{3}|j[mnd]{3}\.(/| |$)|etw\. |s(b|o)\.(/| |$)|sth\.(/| |$)|^to |^it |^the |^d(er|ie|as) | ad(j|v)\.| pl\.| also: .*| rarely: .*| auch: .*| selten: .*"
leo_WebBrowsers = OpWindow,MozillaUIWindowClass,IEFrame
leo_AlphaNums := "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
leo_CleanChars = `%|&\$|\$&|\$#|#|\$|&|\(|\)|\[|\]|\{|\}|^ +| +$|@
Return
SettingsGui_LeoToolTip:
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang1, "leo_Hotkey1", "xs+10 y+6 w180" )
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang2, "leo_Hotkey2", "xs+10 y+6 w180" )
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang3, "leo_Hotkey3", "xs+10 y+6 w180" )
If Enable_MouseClip = 1
Gui, Add, Checkbox, -Wrap xs+10 y+10 gleo_sub_MouseClip vleo_EnableMButton Checked%leo_EnableMButton%, %lng_leo_LeoOnMbutton%
Gui, Add, Checkbox, -Wrap xs+10 y+5 gsub_CheckIfSettingsChanged vleo_UseMenu Checked%leo_UseMenu%, %lng_leo_UseMenu%
Gui, Add, Checkbox, -Wrap xs+20 y+5 gsub_CheckIfSettingsChanged vleo_TranslationToClipboard Checked%leo_TranslationToClipboard%, %lng_leo_TranslationToClipboard%
Gui, Add, Text, xs+10 y+20, %lng_leo_Server%:
leo_Servers = dict.leo.org|pda.leo.org
Gui, Add, DropDownList, x+5 yp-4 gsub_CheckIfSettingsChanged vleo_Server, %leo_Servers%
GuiControl,Choose,leo_Server,%leo_Server%
Gui, Add, Text, xs+10 y+3, %lng_leo_ServerTip%
Gui, Add, Text, xs+10 y+11, %lng_leo_ToolTipTimeout%:
Gui, Add, Edit, x+5 yp-3 -Wrap r1 Number w40 gsub_CheckIfSettingsChanged vleo_ToolTipTimeout, %leo_ToolTipTimeout%
Gui, Add, UpDown, Range1-99, %leo_ToolTipTimeout%
Gui, Add, Text, xs+10 y+20, %lng_leo_Browser%:
Gui, Add, Edit, x+5 yp-3 R1 -Wrap w290 gsub_CheckIfSettingsChanged vleo_Browser, %leo_Browser%
Gui, Add, Button, x+5 -Wrap w80 h21 gleo_sub_SelectBrowser, %lng_leo_SelectBrowser%
Return
leo_sub_SelectBrowser:
Gui, +OwnDialogs
leo_Suspended = %A_IsSuspended%
If leo_Suspended = 0
Suspend, On
FileSelectFile, leo_Browser_tmp,, %A_Programfiles%, %lng_leo_Browser%, %lng_leo_FileTypeEXE%
If ErrorLevel = 0
GuiControl,, leo_Browser, %leo_Browser_tmp%
If leo_Suspended = 0
Suspend, Off
Return
leo_sub_MouseClip:
Gosub, sub_CheckIfSettingsChanged
GuiControlGet, leo_EnableMButton_tmp,,leo_EnableMButton
If (leo_EnableMButton_tmp = 1 AND Enable_ThesauroToolTip <> "")
GuiControl,,ttt_EnableMButton,0
Return
SaveSettings_LeoToolTip:
IniWrite, %leo_UseMenu%, %ConfigFile%, LeoToolTip, UseMenu
IniWrite, %leo_EnableMButton%, %ConfigFile%, LeoToolTip, LeoOnMButton
IniWrite, %leo_Server%, %ConfigFile%, LeoToolTip, LeoServerURL
IniWrite, %leo_ToolTipTimeout%, %ConfigFile%, LeoToolTip, ToolTipTimeout
IniWrite, %leo_Browser%, %ConfigFile%, LeoToolTip, Browser
IniWrite, %leo_TranslationToClipboard%, %ConfigFile%, LeoToolTip, TranslationToClipboard
func_HotkeyWrite( "leo_Hotkey1", ConfigFile , leo_ScriptName, "Hotkey_LeoToolTip" )
func_HotkeyWrite( "leo_Hotkey2", ConfigFile , leo_ScriptName, "Hotkey2_LeoToolTip" )
func_HotkeyWrite( "leo_Hotkey3", ConfigFile , leo_ScriptName, "Hotkey3_LeoToolTip" )
Return
AddSettings_LeoToolTip:
Return
CancelSettings_LeoToolTip:
Return
DoEnable_LeoToolTip:
If leo_EnableMButton
RegisterHook( Extend_MButton, "LeoToolTip" )
EnableMButton_LeoToolTip = %leo_EnableMButton%
func_HotkeyEnable("leo_Hotkey1")
func_HotkeyEnable("leo_Hotkey2")
func_HotkeyEnable("leo_Hotkey3")
Return
DoDisable_LeoToolTip:
If leo_EnableMButton
UnRegisterHook( Extend_MButton, "LeoToolTip" )
EnableMButton_LeoToolTip = %leo_EnableMButton%
func_HotkeyDisable("leo_Hotkey1")
func_HotkeyDisable("leo_Hotkey2")
func_HotkeyDisable("leo_Hotkey3")
Return
DefaultSettings_LeoToolTip:
Return
OnExitAndReload_LeoToolTip:
Return
; -----------------------------------------------------------------------------
; === Hotkeys =================================================================
; -----------------------------------------------------------------------------
leo_sub_Hotkey1:
leo_LangStr = ende
Gosub, sub_Hotkey_LeoToolTip
Return
leo_sub_Hotkey2:
leo_LangStr = frde
Gosub, sub_Hotkey_LeoToolTip
Return
leo_sub_Hotkey3:
leo_LangStr = esde
Gosub, sub_Hotkey_LeoToolTip
Return
; Unterroutine für das automatische Tastaturkürzel
sub_Hotkey_LeoToolTip:
WinGetClass, leo_WinClass, A
Coordmode, Caret, Screen
If leo_WinClass Contains %leo_WebBrowsers%
{
leo_ttX =
leo_ttY =
}
Else
{
leo_ttX := A_CaretX+10
leo_ttY := A_CaretY+10
}
gosub, leo_sub_Search
If ErrorLevel = 1
Return
SetTimer, leo_tim_ToolTipOff, % leo_ToolTipTimeout * 1000
If ( leo_UseMenu <> 1 OR InStr(leo_FinalResult,lng_leo_NothingFound) )
{
Gosub, DoDisable_LeoToolTip
Input, leo_SingleKey, L1 I V, {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}{CtrlBreak}%InputEscapeKeys%
StringReplace, leo_SingleKey, ErrorLevel, Endkey:,,A
Gosub, DoEnable_LeoToolTip
}
Gosub, leo_tim_ToolTipOff
If ( leo_UseMenu <> 1 OR InStr(leo_FinalResult,lng_leo_NothingFound) )
{
If leo_SingleKey = %Hotkey_leo_Hotkey1%
Gosub, leo_sub_Hotkey1
If leo_SingleKey = %Hotkey_leo_Hotkey2%
Gosub, leo_sub_Hotkey2
If leo_SingleKey = %Hotkey_leo_Hotkey3%
Gosub, leo_sub_Hotkey3
}
Return
MButton_LeoToolTip:
If (leo_EnableMButton = 1 AND Enable_MouseClip = 1)
{
mc_NoPaste = yes
leo_ttX =
leo_ttY =
leo_LangStr = ende
gosub, leo_sub_Search
MButton_send =
}
Return
; -----------------------------------------------------------------------------
; === Subroutines =============================================================
; -----------------------------------------------------------------------------
leo_sub_Search:
AutoTrim, On
Coordmode, ToolTip, Screen
Coordmode, Menu, Screen
If leo_NotFound =
{
func_GetSelection()
leo_searchOrig := Selection
}
Else
leo_NotFound++
If leo_searchOrig =
{
StringUpper, leo_Text, leo_LangStr
leo_Text := lng_leo_SearchFor " (" SubStr(leo_Text,1,2) " <-> " SubStr(leo_Text,3,2) "):"
InputBox, leo_searchOrig, %leo_ScriptName% (%ScriptTitle%), %leo_Text%,,,115,,,,,%leo_LastSearchOrig%
If ErrorLevel = 1
Return
}
; Zeilenumbrüche entfernen
leo_searchOrig := RegExReplace(leo_searchOrig, "\r\n|\r|\n"," ")
; Variablenzeichen und Klammern entfernen (Aufgabe)
leo_searchClean := RegExReplace(leo_searchOrig,leo_CleanChars,"")
leo_searchFor := leo_func_URLEncode(leo_searchClean)
If ( ( leo_LangStr leo_searchFor <> leo_LastLangStr leo_lastSearch AND leo_searchFor <> "" ) OR (leo_lastSearch = "" AND leo_searchFor ="") )
{
If leo_NotFound =
tooltip, %lng_leo_Searching% %leo_Server% ..., %leo_ttX%, %leo_ttY%, 7
Else
tooltip, %lng_leo_AutoCorrect% %leo_searchOrig% ..., %leo_ttX%, %leo_ttY%, 7
URLDownloadToFile, http://%leo_Server%/?lp=%leo_langStr%&relink=off§Hdr=off&spellToler=on&search=%leo_searchFor%, %A_Temp%\leoahk.tmp
;FileCopy, %A_Temp%\leoahk.tmp, %A_Desktop%\LeoToolTip-DebugDatei.txt
FileRead, leo_Query, %A_Temp%\leoahk.tmp
FileDelete, %A_Temp%\leoahk.tmp
StringGetPos, leo_tmp, leo_Query, <td class="td1" valign="middle" width="4
StringTrimLeft, leo_Result, leo_Query, %leo_tmp%
; erst alle " entfernen, da sie nicht benötigt werden
StringReplace, leo_Result, leo_Result, ",, A
; verschiedene Tags entfernen
leo_Result := RegExReplace(leo_Result,"i)<->.|<img.*?>|<td class=td1 nowrap width=.`%>||</td>|<small>|</small>|<font size=-1>|</font>|`t", "")
; LineBreaks einfügen
leo_Result := RegExReplace(leo_Result, "i)<!--`n|<td class=td1 valign=middle width=..`%>", "`n")
; bestimmte Tags zu Klammern umwandeln
leo_Result := RegExReplace(leo_Result,"i)<sup>(.*?)</sup>|<sub>(.*?)</sub>", " ($1)")
; bestimmte Tags zu geschweiften Klammern umwandeln
leo_Result := RegExReplace(leo_Result,"i)<I>(.*?)</I>", "{$1}")
; zwei Klammern zu einer machen, z.B.: { [..]}
leo_Result := RegExReplace(leo_Result,"\{ ?(\(|\[)(.*?)(\]|\))\}", "$1$2$3")
leo_Result := RegExReplace(leo_Result,"\[ ?(\{|\(|\[)(.*?)(\]|\)|\})\]", "[$2]")
; Sonderzeichen mit Ampersand ersetzen (z.B. whiteout)
leo_Result := RegExReplace(leo_Result,"®", "®")
leo_Result := RegExReplace(leo_Result,"©", "©")
;alle anderen Ampersand-Semikolon Teile löschen
leo_Result := RegExReplace(leo_Result,"&.*?;", "")
; Ende des Eintragens der Übersetzung bestimmen |
leo_Result := RegExReplace(leo_Result,"<br>", "|")
; mehrfach und HTML Leerzeichen zu einem Leerzeichen machen
leo_Result := RegExReplace(leo_Result,"i) |\t| {2,}", " ")
leo_FinalResult =
leo_Line = 0
Loop, Parse, leo_Result, `n
{
If (A_Index/2 > leo_NumOfResults+1)
break
IfInstring, A_LoopField, Sie haben Ihr Zugriffslimit überschritten
{
leo_FinalResult = %lng_leo_Error%!
leo_SearchFor =
Break
}
If leo_Line = 1
{
leo_Line = 2
StringGetPos, leo_tmp, A_LoopField, <a
StringLeft, leo_FromLang, A_LoopField, %leo_tmp%
If leo_tmp < 1
leo_FromLang = %A_LoopField%
IfInstring, A_LoopField, </tr>
Break
IfInstring, A_LoopField, <html>
{
If leo_NotFound = 1
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!
Else
leo_NotFound = 1
Break
}
If A_LoopField =
Break
IfInstring, A_LoopField, <head>
{
leo_FinalResult = %lng_leo_Error%!
leo_SearchFor =
Break
}
StringGetPos, leo_tmp, A_LoopField, <img border="0" alt
StringLeft, leo_FromLang, A_LoopField, %leo_tmp%
If leo_tmp < 1
leo_FromLang = %A_LoopField%
}
Else If leo_Line = 2
{
leo_Line = 1
StringGetPos, leo_tmp, A_LoopField, <td
StringLeft, leo_ToLang, A_LoopField, %leo_tmp%
leo_FinalResult = %leo_FinalResult%%leo_FromLang%%A_Tab%%leo_ToLang%`r`n
IfInstring, A_LoopField, </table>
Break
}
Else
{
leo_Line = 1
}
}
StringTrimRight, leo_FinalResult, leo_FinalResult, 2
If leo_Query =
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!`r`n%lng_leo_CheckProxy%
}
Else
leo_searchFor = %leo_lastSearch%
If leo_NotFound = 1
{
IfInstring, leo_Query, <b>Orthographisch ähnliche Wörter &ndash
{
StringGetPos, leo_tmp, leo_Query, <b>Orthographisch ähnliche Wörter &ndash
StringTrimLeft, leo_Result, leo_Query, %leo_tmp%
StringGetPos, leo_tmp, leo_Result, ">
StringTrimLeft, leo_Result, leo_Result, % leo_tmp+2
StringGetPos, leo_tmp, leo_Result, </A>
StringLeft, leo_searchOrig, leo_Result, %leo_tmp%
leo_lastSearch =
leo_lastLangStr =
Gosub leo_sub_Search
Return
}
}
If leo_NotFound = 1
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!
leo_FinalResultTip := RegExReplace(leo_FinalResult,"i)<B>|</B>", "")
StringReplace, leo_FinalResultTip, leo_FinalResultTip, %A_Tab%, % " = ", All
leo_NotFound =
leo_lastSearch = %leo_searchFor%
leo_lastSearchOrig = %leo_searchOrig%
leo_LastLangStr = %leo_LangStr%
MouseGetPos, leo_startX, leo_startY
StringLeft, leo_Lang1, leo_LangStr, 2
StringRight, leo_Lang2, leo_LangStr, 2
StringUpper, leo_Lang1, leo_Lang1
StringUpper, leo_Lang2, leo_Lang2
If (leo_UseMenu = 1 AND !InStr(leo_FinalResult, lng_leo_NothingFound ": " leo_searchOrig))
{
leo_Index = 0
Loop, Parse, leo_FinalResult, `n, `r
{
leo_Split = %A_LoopField%
StringSplit, leo_Split, leo_Split, %A_Tab%
IfInString, leo_Split1, <b>
{
leo_Index++
leo_MenuString = %leo_Split2%
leo_MenuStringB = %leo_Split1%
If leo_CompactMenu = 0
leo_MenuStringB = «%leo_Lang2%-%leo_Lang1%» %leo_MenuStringB%
StringMid, leo_Key, leo_AlphaNums, leo_Index, 1
leo_MenuString := RegExReplace(leo_MenuString,"i)<B>|</B>", "")
leo_MenuStringB := RegExReplace(leo_MenuStringB,"i)<B>|</B>", "")
leo_MenuItem[%leo_Index%] = %leo_MenuString%
If (StrLen(leo_MenuString) > 85)
leo_MenuString := func_StrLeft(leo_MenuString, 85) "..."
If (StrLen(leo_MenuStringB) > 85)
leo_MenuStringB := func_StrLeft(leo_MenuStringB, 85) "..."
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &%leo_Key% - %leo_MenuString%%A_Tab%%leo_MenuStringB%, leo_sub_MenuCall
Else
Menu, LeoToolTip, Add, %leo_MenuString% = %leo_MenuStringB%, leo_sub_MenuCall
}
IfInString, leo_Split2, <b>
{
leo_Index++
leo_MenuString = %leo_Split1%
leo_MenuStringB =%leo_Split2%
leo_MenuString = %leo_MenuString%
If leo_CompactMenu = 0
leo_MenuStringB = «%leo_Lang1%-%leo_Lang2%» %leo_MenuStringB%
StringMid, leo_Key, leo_AlphaNums, leo_Index, 1
leo_MenuString := RegExReplace(leo_MenuString,"i)<B>|</B>", "")
leo_MenuStringB := RegExReplace(leo_MenuStringB,"i)<B>|</B>", "")
leo_MenuItem[%leo_Index%] = %leo_MenuString%
If (StrLen(leo_MenuString) > 85)
leo_MenuString := func_StrLeft(leo_MenuString, 85) "..."
If (StrLen(leo_MenuStringB) > 85)
leo_MenuStringB := func_StrLeft(leo_MenuStringB, 85) "..."
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &%leo_Key% - %leo_MenuString%%A_Tab%%leo_MenuStringB%, leo_sub_MenuCall
Else
Menu, LeoToolTip, Add, %leo_MenuString% = %leo_MenuStringB%, leo_sub_MenuCall
}
}
Gosub, leo_tim_ToolTipOff
Menu, LeoToolTip, Add
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &# - %lng_leo_GotoURL%, leo_sub_GotoURL
Else
Menu, LeoToolTip, Add, %lng_leo_GotoURLCompact%, leo_sub_GotoURL
If leo_HistoryFile <>
FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile%
Menu, LeoToolTip, Show, %leo_ttX%, %leo_ttY%
Menu, LeoToolTip, DeleteAll
Return
}
Else
{
tooltip, %leo_FinalResultTip%, %leo_ttX%, %leo_ttY%, 7
;Clipboard = %leo_FinalResult%
SetTimer, leo_tim_WatchToolTip, 20
If (leo_HistoryFile <> "" AND !InStr(leo_FinalResult, lng_leo_NothingFound))
FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile%
}
Return
leo_sub_MenuCall:
leo_MenuString := leo_MenuItem[%A_ThisMenuItemPos%]
; geschützte Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, " ", "")
; Eckige und runde Klammern mit Inhalt entfernen
leo_MenuString := RegExReplace(leo_MenuString, "(\(|\[).*?(\)|\])", "")
; Nach Minus, geschweifter Klammer, senkrechtem Strich oder Tabulator schneiden
leo_MenuString := RegExReplace(leo_MenuString, "^(.*?)(- |\{|\||,|\t).*", "$1")
; Sonderwörter entfernen
leo_MenuString := RegExReplace(leo_MenuString, leo_RemoveBeforeReplace, "")
; überflüssige Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, "\s+", " ")
leo_MenuString := RegExReplace(leo_MenuString, "^\s*", "")
leo_MenuString := RegExReplace(leo_MenuString, "\s*$", "")
; Variablenzeichen und Klammern wieder hinzufügen
leo_MenuString := RegExReplace(leo_searchOrig, "^(" leo_CleanChars ")?.*?(" leo_CleanChars ")?$", "$1" leo_MenuString "$2")
If leo_TranslationToClipboard = 1
Clipboard = %leo_MenuString%
Else
SendRaw, %leo_MenuString%
If leo_HistoryFile <>
FileAppend, %leo_searchOrig%`r`n%leo_MenuString%`r`n`r`n, %leo_HistoryFile%
Return
leo_func_URLEncode( leo_url ) {
SetFormat, integer, hex
StringReplace, leo_url, leo_url, %A_Space%, `%20
Loop, 127
{
leo_HexCode := A_Index+127
Transform, leo_HighChar, Chr, %leo_HexCode%
StringReplace, leo_HexCode, leo_HexCode, 0x,`%
StringReplace, leo_url, leo_url, %leo_HighChar%, %leo_HexCode%
}
SetFormat, integer, dec
Return %leo_url%
}
leo_tim_ToolTipOff:
RButton_tip =
leo_BreakLoop = 1
SetTimer, leo_tim_ToolTipOff, Off
tooltip,,,,7
SetTimer, leo_tim_WatchToolTip, Off
Return
leo_sub_GotoURL:
If leo_Browser =
Run, http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
Else
Run, %leo_Browser% http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
If ErrorLevel = ERROR
func_GetErrorMessage( A_LastError, leo_ScriptName, lng_leo_BrowserError )
Return
leo_tim_WatchToolTip:
MouseGetPos, leo_X, leo_Y, leo_WinID
If leo_startX <>
{
If (leo_X > leo_StartX+4 OR leo_Y > leo_StartY+4 OR leo_X < leo_StartX-4 OR leo_Y < leo_StartY-4)
{
leo_startX =
SetTimer, leo_tim_ToolTipOff, 2000
}
}
WinGetTitle, leo_TipText, ahk_id %leo_WinID%
If leo_TipText = %leo_FinalResultTip%
{
GetKeyState, leo_LButton, LButton
GetKeyState, leo_RButton, RButton
If leo_LButton = D
Gosub, leo_tim_ToolTipOff
Else If (leo_RButton = "D" OR RButton_tip = "yes")
{
If leo_Browser =
Run, http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
Else
Run, %leo_Browser% http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
If ErrorLevel = ERROR
func_GetErrorMessage( A_LastError, leo_ScriptName, lng_leo_BrowserError )
Gosub, leo_tim_ToolTipOff
}
Else
{
SetTimer, leo_tim_ToolTipOff, 1000
}
}
GetKeyState, leo_ESC, ESC
If leo_ESC = D
SetTimer, leo_tim_ToolTipOff, 1
Return
|
so sieht das ganze jetzt in meiner txt aus:
to lope = laufen | lief, gelaufen |
to run | ran, run | = laufen
to walk = laufen
to be in force = laufen
to pace around = hin und her laufen
laufen
walk
vollkommen glücklich wäre ich wenn es so assehen würde
laufen=walk |
|
| Nach oben |
|
 |
Leo_ToolTip Gast
|
Verfasst am: Mo Jul 09, 2007 2:02 pm Titel: |
|
|
| Zitat: | | Du kannst ja mal versuchen, die beiden vorhandenen FileAppends auszukommentieren und das Skript wie folgt zu ergänzen: |
Hast Du nicht getan!
Wenns "laufen=walk" sein soll, musst Du das neu eingefügte FileAppend ändern:
| Code: | | FileAppend, %leo_searchOrig%=%leo_MenuString%`r`n`r`n, %leo_HistoryFile% |
|
|
| Nach oben |
|
 |
grossermanitou Gast
|
Verfasst am: Di Jul 10, 2007 10:20 am Titel: |
|
|
klasse!ich hatte mir schon gedacht das es damit zutun hatte. was du aber mit ausklammern gemeint hattest war mir nicht ganz klar.
wie auch immer. es funktioniert. einfach nur top! danke |
|
| Nach oben |
|
 |
Fisch Gast
|
Verfasst am: Fr Nov 23, 2007 2:43 am Titel: funktioniert teilweise |
|
|
hm ich habe gerade das gleiche befolgt. soweit funktiniert alles. leider wird mir nicht der eintrag in meine txt-datei eingefügt den ich auswähle, sondern immer nur der letzte Beitrag.
Bsp. ich lasse "messy" übersetzten. ich entscheide mich für durcheinander und wähle dies im Menu aus. in meine txt datei wird aber der letzte eintrag ( "verschmutzt") eingefügt. |
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1955 Wohnort: Berlin
|
Verfasst am: Fr Nov 23, 2007 5:35 am Titel: |
|
|
Moin,
stell doch bitte mal Deine komplette Subroutine leo_sub_MenuCall: ein. Vielleicht hat der Autor ja etwas geändert. _________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
fisch Gast
|
Verfasst am: Fr Nov 23, 2007 7:45 am Titel: |
|
|
ich nehme an du meinst die leotooltip.ahk
| Code: |
; -----------------------------------------------------------------------------
; #############################################################################
; -----------------------------------------------------------------------------
; Name: LeoToolTip
; -----------------------------------------------------------------------------
; Prefix: leo_
; Version: 0.8
; Date: 2007-06-07
; Author: Wolfgang Reszel
; Copyright: 2007 Heise Zeitschriften Verlag GmbH & Co. KG
; -----------------------------------------------------------------------------
; -----------------------------------------------------------------------------
; === Initialisation ==========================================================
; -----------------------------------------------------------------------------
; Initialisierungsroutine, welche beim Start von ac'tivAid aufgerufen wird.
init_LeoToolTip:
Prefix = leo
%Prefix%_ScriptName = LeoToolTip
%Prefix%_ScriptVersion = 0.8
%Prefix%_Author = Wolfgang Reszel
RequireExtensions =
CustomHotkey_LeoToolTip = 0 ; automatisches benutzerdefinierbares Tastaturkürzel? (1 = ja)
Hotkey_LeoToolTip = ; Standard-Hotkey
HotkeyPrefix_LeoToolTip = ; Präfix, welches vor immer vor dem Tastaturkürzel gesetzt wird
; Sprachabhängige Variablen
If Lng = 07 ; = Deutsch (0407, 0807, 0c07 ...)
{
MenuName = %leo_ScriptName% - markiertes Wort übersetzen
Description = Übersetzt mittels dict.leo.org das markierte Wort und zeigt das Ergebnis als Tooltip an.
lng_leo_NothingFound = Suchbegriff nicht gefunden
lng_leo_Error = Fehler beim Zugriff auf LEO.`nVermutlich wurden zu viele Abfragen in Folge an den Server geschickt.`nLEO sperrt in diesem Fall ihre IP-Adresse für 2 Minuten.`n`nKlicken Sie mit der rechten Maustaste auf diese Meldung,`num die Fehlerseite aufzurufen.
lng_leo_LeoOnMbutton = Suche automatisch ausführen, wenn ein Wort mit der mittleren Maustaste markiert wird. (MouseClip)
lng_leo_Searching = Verbinde mit
lng_leo_Server = Server
lng_leo_ServerTip = pda.leo.org ist schneller, aber bei vielen Anfragen in kurzer Zeit gibt es eine 2-Minuten-Sperrung.
lng_leo_ToolTipTimeout = Sekunden, nach denen der Tooltip automatisch verschwindet
lng_leo_UseMenu = Menü statt eines Tooltips einblenden, womit die ausgewählte Übersetzung direkt eingefügt werden kann
lng_leo_GotoURL = Suchergebnisse mit dict.leo.org im Browser anzeigen
lng_leo_GotoURLCompact = im Browser anzeigen
lng_leo_AutoCorrect = Verwende ähnlichen Suchbegriff
lng_leo_Lang1 = Deutsch-Englisch
lng_leo_Lang2 = Deutsch-Französisch
lng_leo_Lang3 = Deutsch-Spanisch
lng_leo_SearchFor = Bitte Suchbegriff eingeben
lng_leo_CheckProxy = Bitte prüfen Sie auch Ihre Proxy-Einstellungen im Internet Explorer.`nLeoToolTip funktioniert nicht bei Proxies mit manueller Anmeldung.`nEvtl. hilft die Aktivierung von "HTTP 1.1 über Proxy-Verbindungen verwenden" in den Internetoptionen unter Erweitert.`nUnter Umständen könnte auch der Server nicht erreichbar sein.
lng_leo_Browser = Browser für Rechtsklick auf ToolTip
lng_leo_BrowserError = Der Browser kann evtl. nicht gestartet werden, Windows meldet:`n
lng_leo_SelectBrowser = Auswählen ...
lng_leo_FileTypeEXE = Programme (*.exe)
lng_leo_TranslationToClipboard= Ausgewählte Übersetzung wird nicht eingefügt, sondern in die Zwischenablage gelegt
lng_leo_CompactMenu = Kompakteres Menü
}
else ; = Alternativ-Sprache (wenn nicht Deutsch und keine language.ini vorhanden)
{
MenuName = %leo_ScriptName% - translate selected word
Description = Translates the selected word with dict.leo.org and shows the result as a tooltip.
lng_leo_NothingFound = search item not found
lng_leo_Error = Error while accessing LEO.`nMaybe you've sent to many queries in a short time.`nIn that case, LEO locks your IP-address for 2 minutes.
lng_leo_LeoOnMbutton = Search automatically when selecting a word with the middle mouse-button. (MouseClip)
lng_leo_Searching = Connecting to
lng_leo_Server = Server
lng_leo_ServerTip = pda.leo.org is faster, but you will be locked for 2 minutes for to many queries in a short time.
lng_leo_ToolTipTimeout = Seconds, when the tooltip automatically disappears
lng_leo_UseMenu = Show a menu instead of a tooltip to make it possible to directly paste a translation
lng_leo_GotoURL = Show results with dict.leo.org in browser
lng_leo_GotoURLCompact = Show in browser
lng_leo_AutoCorrect = Using similar search item
lng_leo_Lang1 = German-English
lng_leo_Lang2 = German-French
lng_leo_Lang3 = German-Spanish
lng_leo_SearchFor = Please enter search item
lng_leo_CheckProxy = Please check also your proxy settings in Internet Explorer,`nLeoToolTip does not work at proxies with manual authentification.`nAlso the Leo-server could be down at the moment.
lng_leo_Browser = Browser for right-click on tooltip
lng_leo_BrowserError = Maybe the browser can't be launched, windows returns:`n
lng_leo_SelectBrowser = Choose...
lng_leo_FileTypeEXE = Programs (*.exe)
lng_leo_TranslationToClipboard= Selected translation will be stored in the clipboard instead of pasting it
lng_leo_CompactMenu = More compact menu
}
func_HotkeyRead( "leo_Hotkey1", ConfigFile , leo_ScriptName, "Hotkey_LeoToolTip", "leo_sub_Hotkey1", "^+l", "$" )
func_HotkeyRead( "leo_Hotkey2", ConfigFile , leo_ScriptName, "Hotkey2_LeoToolTip", "leo_sub_Hotkey2", "", "$" )
func_HotkeyRead( "leo_Hotkey3", ConfigFile , leo_ScriptName, "Hotkey3_LeoToolTip", "leo_sub_Hotkey3", "", "$" )
RegisterAdditionalSetting( "leo", "CompactMenu", 0 )
IniRead, leo_UseMenu , %ConfigFile%, LeoToolTip, UseMenu, 0
IniRead, leo_NumOfResults, %ConfigFile%, LeoToolTip, NumOfResults, 5
IniRead, leo_EnableMButton, %ConfigFile%, LeoToolTip, LeoOnMButton, 0
IniRead, leo_TranslationToClipboard, %ConfigFile%, LeoToolTip, TranslationToClipboard, 0
IniRead, leo_Server, %ConfigFile%, LeoToolTip, LeoServerURL, pda.leo.org
IniRead, leo_ToolTipTimeout, %ConfigFile%, LeoToolTip, ToolTipTimeout, 10
IniRead, leo_Browser, %ConfigFile%, LeoToolTip, Browser, %A_Space%
IniRead, leo_HistoryFile, %ConfigFile%, LeoToolTip, HistoryFile, %A_Space%
; Liste der Texte, die aus dem Ergebnis entfernt werden sollen. (Regulärer Ausdruck)
leo_RemoveBeforeReplace := "i)\.{3}|j[mnd]{3}\.(/| |$)|etw\. |s(b|o)\.(/| |$)|sth\.(/| |$)|^to |^it |^the |^d(er|ie|as) | ad(j|v)\.| pl\.| also: .*| rarely: .*| auch: .*| selten: .*"
leo_WebBrowsers = OpWindow,MozillaUIWindowClass,IEFrame
leo_AlphaNums := "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
leo_CleanChars = `%|&\$|\$&|\$#|#|\$|&|\(|\)|\[|\]|\{|\}|^ +| +$|@
leo_SearchCache = |
Return
SettingsGui_LeoToolTip:
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang1, "leo_Hotkey1", "xs+10 y+6 w180" )
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang2, "leo_Hotkey2", "xs+10 y+6 w180" )
func_HotkeyAddGuiControl( lng_Hotkey " " lng_leo_Lang3, "leo_Hotkey3", "xs+10 y+6 w180" )
If Enable_MouseClip = 1
Gui, Add, Checkbox, -Wrap xs+10 y+10 gleo_sub_MouseClip vleo_EnableMButton Checked%leo_EnableMButton%, %lng_leo_LeoOnMbutton%
Gui, Add, Checkbox, -Wrap xs+10 y+5 gsub_CheckIfSettingsChanged vleo_UseMenu Checked%leo_UseMenu%, %lng_leo_UseMenu%
Gui, Add, Checkbox, -Wrap xs+20 y+5 gsub_CheckIfSettingsChanged vleo_TranslationToClipboard Checked%leo_TranslationToClipboard%, %lng_leo_TranslationToClipboard%
Gui, Add, Text, xs+10 y+20, %lng_leo_Server%:
leo_Servers = dict.leo.org|pda.leo.org
Gui, Add, DropDownList, x+5 yp-4 gsub_CheckIfSettingsChanged vleo_Server, %leo_Servers%
GuiControl,Choose,leo_Server,%leo_Server%
Gui, Add, Text, xs+10 y+3, %lng_leo_ServerTip%
Gui, Add, Text, xs+10 y+11, %lng_leo_ToolTipTimeout%:
Gui, Add, Edit, x+5 yp-3 -Wrap r1 Number w40 gsub_CheckIfSettingsChanged vleo_ToolTipTimeout, %leo_ToolTipTimeout%
Gui, Add, UpDown, Range1-99, %leo_ToolTipTimeout%
Gui, Add, Text, xs+10 y+20, %lng_leo_Browser%:
Gui, Add, Edit, x+5 yp-3 R1 -Wrap w290 gsub_CheckIfSettingsChanged vleo_Browser, %leo_Browser%
Gui, Add, Button, x+5 -Wrap w80 h21 gleo_sub_SelectBrowser, %lng_leo_SelectBrowser%
Return
leo_sub_SelectBrowser:
Gui, +OwnDialogs
leo_Suspended = %A_IsSuspended%
If leo_Suspended = 0
Suspend, On
FileSelectFile, leo_Browser_tmp,, %A_Programfiles%, %lng_leo_Browser%, %lng_leo_FileTypeEXE%
If ErrorLevel = 0
GuiControl,, leo_Browser, %leo_Browser_tmp%
If leo_Suspended = 0
Suspend, Off
Return
leo_sub_MouseClip:
Gosub, sub_CheckIfSettingsChanged
GuiControlGet, leo_EnableMButton_tmp,,leo_EnableMButton
If (leo_EnableMButton_tmp = 1 AND Enable_ThesauroToolTip <> "")
GuiControl,,ttt_EnableMButton,0
Return
SaveSettings_LeoToolTip:
IniWrite, %leo_UseMenu%, %ConfigFile%, LeoToolTip, UseMenu
IniWrite, %leo_EnableMButton%, %ConfigFile%, LeoToolTip, LeoOnMButton
IniWrite, %leo_Server%, %ConfigFile%, LeoToolTip, LeoServerURL
IniWrite, %leo_ToolTipTimeout%, %ConfigFile%, LeoToolTip, ToolTipTimeout
IniWrite, %leo_Browser%, %ConfigFile%, LeoToolTip, Browser
IniWrite, %leo_TranslationToClipboard%, %ConfigFile%, LeoToolTip, TranslationToClipboard
IniWrite, %leo_HistoryFile%, %ConfigFile%, LeoToolTip, HistoryFile
func_HotkeyWrite( "leo_Hotkey1", ConfigFile , leo_ScriptName, "Hotkey_LeoToolTip" )
func_HotkeyWrite( "leo_Hotkey2", ConfigFile , leo_ScriptName, "Hotkey2_LeoToolTip" )
func_HotkeyWrite( "leo_Hotkey3", ConfigFile , leo_ScriptName, "Hotkey3_LeoToolTip" )
Return
AddSettings_LeoToolTip:
Return
CancelSettings_LeoToolTip:
Return
DoEnable_LeoToolTip:
If leo_EnableMButton
RegisterHook( Extend_MButton, "LeoToolTip" )
EnableMButton_LeoToolTip = %leo_EnableMButton%
func_HotkeyEnable("leo_Hotkey1")
func_HotkeyEnable("leo_Hotkey2")
func_HotkeyEnable("leo_Hotkey3")
Return
DoDisable_LeoToolTip:
If leo_EnableMButton
UnRegisterHook( Extend_MButton, "LeoToolTip" )
EnableMButton_LeoToolTip = %leo_EnableMButton%
func_HotkeyDisable("leo_Hotkey1")
func_HotkeyDisable("leo_Hotkey2")
func_HotkeyDisable("leo_Hotkey3")
Return
DefaultSettings_LeoToolTip:
Return
OnExitAndReload_LeoToolTip:
Return
; -----------------------------------------------------------------------------
; === Hotkeys =================================================================
; -----------------------------------------------------------------------------
leo_sub_Hotkey1:
leo_LangStr = ende
Gosub, sub_Hotkey_LeoToolTip
Return
leo_sub_Hotkey2:
leo_LangStr = frde
Gosub, sub_Hotkey_LeoToolTip
Return
leo_sub_Hotkey3:
leo_LangStr = esde
Gosub, sub_Hotkey_LeoToolTip
Return
; Unterroutine für das automatische Tastaturkürzel
sub_Hotkey_LeoToolTip:
WinGetClass, leo_WinClass, A
Coordmode, Caret, Screen
If leo_WinClass Contains %leo_WebBrowsers%
{
leo_ttX =
leo_ttY =
}
Else
{
leo_ttX := A_CaretX+10
leo_ttY := A_CaretY+10
}
gosub, leo_sub_Search
If ErrorLevel = 1
Return
SetTimer, leo_tim_ToolTipOff, % leo_ToolTipTimeout * 1000
If ( leo_UseMenu <> 1 OR InStr(leo_FinalResult,lng_leo_NothingFound) )
{
Gosub, DoDisable_LeoToolTip
Input, leo_SingleKey, L1 I V, {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}{CtrlBreak}%InputEscapeKeys%
StringReplace, leo_SingleKey, ErrorLevel, Endkey:,,A
Gosub, DoEnable_LeoToolTip
}
Gosub, leo_tim_ToolTipOff
If ( leo_UseMenu <> 1 OR InStr(leo_FinalResult,lng_leo_NothingFound) )
{
If leo_SingleKey = %Hotkey_leo_Hotkey1%
Gosub, leo_sub_Hotkey1
If leo_SingleKey = %Hotkey_leo_Hotkey2%
Gosub, leo_sub_Hotkey2
If leo_SingleKey = %Hotkey_leo_Hotkey3%
Gosub, leo_sub_Hotkey3
}
Return
MButton_LeoToolTip:
If (leo_EnableMButton = 1 AND Enable_MouseClip = 1)
{
mc_NoPaste = yes
leo_ttX =
leo_ttY =
leo_LangStr = ende
gosub, leo_sub_Search
MButton_send =
}
Return
; -----------------------------------------------------------------------------
; === Subroutines =============================================================
; -----------------------------------------------------------------------------
leo_sub_Search:
AutoTrim, On
Coordmode, ToolTip, Screen
Coordmode, Menu, Screen
If leo_NotFound =
{
func_GetSelection()
leo_searchOrig := Selection
}
Else
leo_NotFound++
If leo_searchOrig =
{
StringUpper, leo_Text, leo_LangStr
leo_Text := lng_leo_SearchFor " (" SubStr(leo_Text,1,2) " <-> " SubStr(leo_Text,3,2) "):"
InputBox, leo_searchOrig, %leo_ScriptName% (%ScriptTitle%), %leo_Text%,,,115,,,,,%leo_LastSearchOrig%
If ErrorLevel = 1
Return
}
leo_ServerOrg = %leo_Server%
If leo_RetryWithServer <>
{
leo_Server = %leo_RetryWithServer%
leo_RetryWithServer =
}
; Zeilenumbrüche entfernen
leo_searchOrig := RegExReplace(leo_searchOrig, "\r\n|\r|\n"," ")
; Variablenzeichen und Klammern entfernen (Aufgabe)
leo_searchClean := RegExReplace(leo_searchOrig,leo_CleanChars,"")
leo_searchFor := leo_func_URLEncode(leo_searchClean)
leo_Temp := InStr(leo_SearchCache, "|" leo_LangStr " " leo_searchFor "|")
If leo_Temp
{
leo_LastLangStr = %leo_LangStr%
leo_lastSearch = %leo_searchFor%
leo_FinalResult := leo_ResultCache[%leo_Temp%]
}
If ( ( leo_LangStr leo_searchFor <> leo_LastLangStr leo_lastSearch AND leo_searchFor <> "" ) OR (leo_lastSearch = "" AND leo_searchFor ="") )
{
If leo_NotFound =
tooltip, %lng_leo_Searching% %leo_Server% ..., %leo_ttX%, %leo_ttY%, 7
Else
tooltip, %lng_leo_AutoCorrect% %leo_searchOrig% ..., %leo_ttX%, %leo_ttY%, 7
URLDownloadToFile, http://%leo_Server%/?lp=%leo_langStr%&relink=off§Hdr=off&spellToler=on&search=%leo_searchFor%, %A_Temp%\leoahk.tmp
;FileCopy, %A_Temp%\leoahk.tmp, %A_Desktop%\LeoToolTip-DebugDatei.txt
FileRead, leo_Query, %A_Temp%\leoahk.tmp
FileDelete, %A_Temp%\leoahk.tmp
StringGetPos, leo_tmp, leo_Query, <td class="td1" valign="middle" width="4
StringTrimLeft, leo_Result, leo_Query, %leo_tmp%
; erst alle " entfernen, da sie nicht benötigt werden
StringReplace, leo_Result, leo_Result, ",, A
; verschiedene Tags entfernen
leo_Result := RegExReplace(leo_Result,"i)<->.|<img.*?>|<td class=td1 nowrap width=.`%>||</td>|<small>|</small>|<font size=-1>|</font>|`t", "")
; LineBreaks einfügen
leo_Result := RegExReplace(leo_Result, "i)<!--`n|<td class=td1 valign=middle width=..`%>", "`n")
; bestimmte Tags zu Klammern umwandeln
leo_Result := RegExReplace(leo_Result,"i)<sup>(.*?)</sup>|<sub>(.*?)</sub>", " ($1)")
; bestimmte Tags zu geschweiften Klammern umwandeln
leo_Result := RegExReplace(leo_Result,"i)<I>(.*?)</I>", "{$1}")
; zwei Klammern zu einer machen, z.B.: { [..]}
leo_Result := RegExReplace(leo_Result,"\{ ?(\(|\[)(.*?)(\]|\))\}", "$1$2$3")
leo_Result := RegExReplace(leo_Result,"\[ ?(\{|\(|\[)(.*?)(\]|\)|\})\]", "[$2]")
; Sonderzeichen mit Ampersand ersetzen (z.B. whiteout)
leo_Result := RegExReplace(leo_Result,"®", "®")
leo_Result := RegExReplace(leo_Result,"©", "©")
;alle anderen Ampersand-Semikolon Teile löschen
leo_Result := RegExReplace(leo_Result,"&.*?;", "")
; Ende des Eintragens der Übersetzung bestimmen |
leo_Result := RegExReplace(leo_Result,"<br>", "|")
; mehrfach und HTML Leerzeichen zu einem Leerzeichen machen
leo_Result := RegExReplace(leo_Result,"i) |\t| {2,}", " ")
leo_FinalResult =
leo_Line = 0
Loop, Parse, leo_Result, `n
{
If (A_Index/2 > leo_NumOfResults+1)
break
IfInstring, A_LoopField, Sie haben Ihr Zugriffslimit überschritten
{
leo_FinalResult = %lng_leo_Error%!
leo_SearchFor =
If leo_Server <> dict.leo.org
leo_RetryWithServer = dict.leo.org
Break
}
If leo_Line = 1
{
leo_Line = 2
StringGetPos, leo_tmp, A_LoopField, <a
StringLeft, leo_FromLang, A_LoopField, %leo_tmp%
If leo_tmp < 1
leo_FromLang = %A_LoopField%
IfInstring, A_LoopField, </tr>
Break
IfInstring, A_LoopField, <html>
{
If leo_NotFound = 1
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!
Else
leo_NotFound = 1
Break
}
If A_LoopField =
Break
IfInstring, A_LoopField, <head>
{
leo_FinalResult = %lng_leo_Error%!
leo_SearchFor =
If leo_Server <> dict.leo.org
leo_RetryWithServer = dict.leo.org
Break
}
StringGetPos, leo_tmp, A_LoopField, <img border="0" alt
StringLeft, leo_FromLang, A_LoopField, %leo_tmp%
If leo_tmp < 1
leo_FromLang = %A_LoopField%
}
Else If leo_Line = 2
{
leo_Line = 1
StringGetPos, leo_tmp, A_LoopField, <td
StringLeft, leo_ToLang, A_LoopField, %leo_tmp%
leo_FinalResult = %leo_FinalResult%%leo_FromLang%%A_Tab%%leo_ToLang%`r`n
IfInstring, A_LoopField, </table>
Break
}
Else
{
leo_Line = 1
}
}
StringTrimRight, leo_FinalResult, leo_FinalResult, 2
If leo_Query =
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!`r`n%lng_leo_CheckProxy%
}
Else
leo_searchFor = %leo_lastSearch%
leo_Server = %leo_ServerOrg%
If leo_NotFound = 1
{
IfInstring, leo_Query, <b>Orthographisch ähnliche Wörter &ndash
{
StringGetPos, leo_tmp, leo_Query, <b>Orthographisch ähnliche Wörter &ndash
StringTrimLeft, leo_Result, leo_Query, %leo_tmp%
StringGetPos, leo_tmp, leo_Result, ">
StringTrimLeft, leo_Result, leo_Result, % leo_tmp+2
StringGetPos, leo_tmp, leo_Result, </A>
StringLeft, leo_searchOrig, leo_Result, %leo_tmp%
leo_lastSearch =
leo_lastLangStr =
Gosub leo_sub_Search
Return
}
leo_FinalResult = %lng_leo_NothingFound%: %leo_searchOrig%!
}
If leo_RetryWithServer <>
{
Gosub, leo_sub_Search
Return
}
leo_Temp := StrLen(leo_SearchCache)
leo_SearchCache = %leo_SearchCache%%leo_LangStr% %leo_searchFor%|
leo_ResultCache[%leo_Temp%] = %leo_FinalResult%
leo_FinalResultTip := RegExReplace(leo_FinalResult,"i)<B>|</B>", "")
StringReplace, leo_FinalResultTip, leo_FinalResultTip, %A_Tab%, % " = ", All
leo_NotFound =
leo_lastSearch = %leo_searchFor%
leo_lastSearchOrig = %leo_searchOrig%
leo_LastLangStr = %leo_LangStr%
MouseGetPos, leo_startX, leo_startY
StringLeft, leo_Lang1, leo_LangStr, 2
StringRight, leo_Lang2, leo_LangStr, 2
StringUpper, leo_Lang1, leo_Lang1
StringUpper, leo_Lang2, leo_Lang2
If (leo_UseMenu = 1 AND !InStr(leo_FinalResult, lng_leo_NothingFound ": " leo_searchOrig))
{
leo_Index = 0
Loop, Parse, leo_FinalResult, `n, `r
{
leo_Split = %A_LoopField%
StringSplit, leo_Split, leo_Split, %A_Tab%
IfInString, leo_Split1, <b>
{
leo_Index++
leo_MenuString = %leo_Split2%
leo_MenuStringB = %leo_Split1%
If leo_CompactMenu = 0
leo_MenuStringB = «%leo_Lang2%-%leo_Lang1%» %leo_MenuStringB%
StringMid, leo_Key, leo_AlphaNums, leo_Index, 1
leo_MenuString := RegExReplace(leo_MenuString,"i)<B>|</B>", "")
leo_MenuStringB := RegExReplace(leo_MenuStringB,"i)<B>|</B>", "")
leo_MenuItem[%leo_Index%] = %leo_MenuString%
If (StrLen(leo_MenuString) > 85)
leo_MenuString := func_StrLeft(leo_MenuString, 85) "..."
If (StrLen(leo_MenuStringB) > 85)
leo_MenuStringB := func_StrLeft(leo_MenuStringB, 85) "..."
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &%leo_Key% - %leo_MenuString%%A_Tab%%leo_MenuStringB%, leo_sub_MenuCall
Else
Menu, LeoToolTip, Add, %leo_MenuString% = %leo_MenuStringB%, leo_sub_MenuCall
}
IfInString, leo_Split2, <b>
{
leo_Index++
leo_MenuString = %leo_Split1%
leo_MenuStringB =%leo_Split2%
leo_MenuString = %leo_MenuString%
If leo_CompactMenu = 0
leo_MenuStringB = «%leo_Lang1%-%leo_Lang2%» %leo_MenuStringB%
StringMid, leo_Key, leo_AlphaNums, leo_Index, 1
leo_MenuString := RegExReplace(leo_MenuString,"i)<B>|</B>", "")
leo_MenuStringB := RegExReplace(leo_MenuStringB,"i)<B>|</B>", "")
leo_MenuItem[%leo_Index%] = %leo_MenuString%
If (StrLen(leo_MenuString) > 85)
leo_MenuString := func_StrLeft(leo_MenuString, 85) "..."
If (StrLen(leo_MenuStringB) > 85)
leo_MenuStringB := func_StrLeft(leo_MenuStringB, 85) "..."
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &%leo_Key% - %leo_MenuString%%A_Tab%%leo_MenuStringB%, leo_sub_MenuCall
Else
Menu, LeoToolTip, Add, %leo_MenuString% = %leo_MenuStringB%, leo_sub_MenuCall
}
}
Gosub, leo_tim_ToolTipOff
Menu, LeoToolTip, Add
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &# - %lng_leo_GotoURL%, leo_sub_GotoURL
Else
Menu, LeoToolTip, Add, %lng_leo_GotoURLCompact%, leo_sub_GotoURL
If leo_HistoryFile <>
FileAppend, %leo_searchOrig%=%leo_MenuString%`r`n`r`n, %leo_HistoryFile%
Menu, LeoToolTip, Show, %leo_ttX%, %leo_ttY%
Menu, LeoToolTip, DeleteAll
Return
}
Else
{
tooltip, %leo_FinalResultTip%, %leo_ttX%, %leo_ttY%, 7
;Clipboard = %leo_FinalResult%
SetTimer, leo_tim_WatchToolTip, 20
If (leo_HistoryFile <> "" AND !InStr(leo_FinalResult, lng_leo_NothingFound))
FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile%
}
Return
leo_sub_MenuCall:
leo_MenuString := leo_MenuItem[%A_ThisMenuItemPos%]
; geschützte Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, " ", "")
; Eckige und runde Klammern mit Inhalt entfernen
leo_MenuString := RegExReplace(leo_MenuString, "(\(|\[).*?(\)|\])", "")
; Nach Minus, geschweifter Klammer, senkrechtem Strich oder Tabulator schneiden
leo_MenuString := RegExReplace(leo_MenuString, "^(.*?)(- |\{|\||,|\t).*", "$1")
; Sonderwörter entfernen
leo_MenuString := RegExReplace(leo_MenuString, leo_RemoveBeforeReplace, "")
; überflüssige Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, "\s+", " ")
leo_MenuString := RegExReplace(leo_MenuString, "^\s*", "")
leo_MenuString := RegExReplace(leo_MenuString, "\s*$", "")
; Variablenzeichen und Klammern wieder hinzufügen
leo_MenuString := RegExReplace(leo_searchOrig, "^(" leo_CleanChars ")?.*?(" leo_CleanChars ")?$", "$1" leo_MenuString "$2")
If leo_TranslationToClipboard = 1
Clipboard = %leo_MenuString%
Else
SendRaw, %leo_MenuString%
Return
leo_func_URLEncode( leo_url ) {
SetFormat, integer, hex
StringReplace, leo_url, leo_url, %A_Space%, `%20
Loop, 127
{
leo_HexCode := A_Index+127
Transform, leo_HighChar, Chr, %leo_HexCode%
StringReplace, leo_HexCode, leo_HexCode, 0x,`%
StringReplace, leo_url, leo_url, %leo_HighChar%, %leo_HexCode%
}
SetFormat, integer, dec
Return %leo_url%
}
leo_tim_ToolTipOff:
RButton_tip =
leo_BreakLoop = 1
SetTimer, leo_tim_ToolTipOff, Off
tooltip,,,,7
SetTimer, leo_tim_WatchToolTip, Off
Return
leo_sub_GotoURL:
If leo_Browser =
Run, http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
Else
Run, %leo_Browser% http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
If ErrorLevel = ERROR
func_GetErrorMessage( A_LastError, leo_ScriptName, lng_leo_BrowserError )
Return
leo_tim_WatchToolTip:
MouseGetPos, leo_X, leo_Y, leo_WinID
If leo_startX <>
{
If (leo_X > leo_StartX+4 OR leo_Y > leo_StartY+4 OR leo_X < leo_StartX-4 OR leo_Y < leo_StartY-4)
{
leo_startX =
SetTimer, leo_tim_ToolTipOff, 2000
}
}
WinGetTitle, leo_TipText, ahk_id %leo_WinID%
If leo_TipText = %leo_FinalResultTip%
{
GetKeyState, leo_LButton, LButton
GetKeyState, leo_RButton, RButton
If leo_LButton = D
Gosub, leo_tim_ToolTipOff
Else If (leo_RButton = "D" OR RButton_tip = "yes")
{
If leo_Browser =
Run, http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
Else
Run, %leo_Browser% http://dict.leo.org/?lp=%leo_langStr%&relink=on§Hdr=off&spellToler=on&search=%leo_searchFor%,, UseErrorLevel
If ErrorLevel = ERROR
func_GetErrorMessage( A_LastError, leo_ScriptName, lng_leo_BrowserError )
Gosub, leo_tim_ToolTipOff
}
Else
{
SetTimer, leo_tim_ToolTipOff, 1000
}
}
GetKeyState, leo_ESC, ESC
If leo_ESC = D
SetTimer, leo_tim_ToolTipOff, 1
Return
|
|
|
| Nach oben |
|
 |
denick (n-l-i) Gast
|
Verfasst am: Fr Nov 23, 2007 9:15 am Titel: |
|
|
Moin,
Du hast es nicht ganz so gemacht. Ab Zeile 528 sollte das Skript so aussehen:
| Code: | Gosub, leo_tim_ToolTipOff
Menu, LeoToolTip, Add
If leo_CompactMenu = 0
Menu, LeoToolTip, Add, &# - %lng_leo_GotoURL%, leo_sub_GotoURL
Else
Menu, LeoToolTip, Add, %lng_leo_GotoURLCompact%, leo_sub_GotoURL
; If leo_HistoryFile <>
; FileAppend, %leo_searchOrig%=%leo_MenuString%`r`n`r`n, %leo_HistoryFile%
Menu, LeoToolTip, Show, %leo_ttX%, %leo_ttY%
Menu, LeoToolTip, DeleteAll
Return
}
Else
{
tooltip, %leo_FinalResultTip%, %leo_ttX%, %leo_ttY%, 7
;Clipboard = %leo_FinalResult%
SetTimer, leo_tim_WatchToolTip, 20
; If (leo_HistoryFile <> "" AND !InStr(leo_FinalResult, lng_leo_NothingFound))
; FileAppend, %leo_FinalResultTip%`r`n`r`n, %leo_HistoryFile%
}
Return
leo_sub_MenuCall:
leo_MenuString := leo_MenuItem[%A_ThisMenuItemPos%]
; geschützte Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, " ", "")
; Eckige und runde Klammern mit Inhalt entfernen
leo_MenuString := RegExReplace(leo_MenuString, "(\(|\[).*?(\)|\])", "")
; Nach Minus, geschweifter Klammer, senkrechtem Strich oder Tabulator schneiden
leo_MenuString := RegExReplace(leo_MenuString, "^(.*?)(- |\{|\||,|\t).*", "$1")
; Sonderwörter entfernen
leo_MenuString := RegExReplace(leo_MenuString, leo_RemoveBeforeReplace, "")
; überflüssige Leerzeichen entfernen
leo_MenuString := RegExReplace(leo_MenuString, "\s+", " ")
leo_MenuString := RegExReplace(leo_MenuString, "^\s*", "")
leo_MenuString := RegExReplace(leo_MenuString, "\s*$", "")
; Variablenzeichen und Klammern wieder hinzufügen
leo_MenuString := RegExReplace(leo_searchOrig, "^(" leo_CleanChars ")?.*?(" leo_CleanChars ")?$", "$1" leo_MenuString "$2")
If leo_TranslationToClipboard = 1
Clipboard = %leo_MenuString%
Else
SendRaw, %leo_MenuString%
If leo_HistoryFile <>
FileAppend, %leo_searchOrig%=%leo_MenuString%`r`n`r`n, %leo_HistoryFile%
Return |
|
|
| Nach oben |
|
 |
fisch Gast
|
Verfasst am: Fr Nov 23, 2007 10:24 am Titel: |
|
|
Vielen Dank. Das funktiniert schon besser.
Wenn ich jetzt aber bspw. mir "weder" übersetzten lassen.
und den eintrag "weder … noch", dann trägt mit ahk folgendes in meine txt datei ein:
weder=neithernor
die leerzeichen werden verschluckt und es wird die vokabel eingefügt nach der ich gesucht, aber nicht die ich ausgewählt habe.
hoffe ich habe nicht schonn wieder was übersehen |
|
| Nach oben |
|
 |
Gast
|
Verfasst am: Fr Nov 23, 2007 10:25 am Titel: |
|
|
da gehört natürlich ein auswählen hin:
und den eintrag "weder … noch" auswähle, dann trägt mit ahk folgendes in meine txt datei ein: |
|
| 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
|