Hallo,
leider konnte mir keiner so richtig weiterhelfen.
Ich habe mir also Mühe gegeben und das ist rausgekommen:
Übersetzungstool welches "LEO.ORG" abfragt ohne den Browser zu öffnen.
Anschließened wird ein Editfenster geöffnet wo mann ggf. ein Wort kopieren kann.
Das Fenster kann man mit "ESC" verlassen und sofort weitersuchen.
Zweimal "ESC" beendet das Tool vollständig.
Viel Spaß damit
Spoiler anzeigen
#include <GUIConstants.au3>
#include <process.au3>
#include <INet.au3>
#include <String.au3>
#include <misc.au3>
Opt ("TrayIconDebug", 1)
dim $Form2, $Edit1 , $suche , $file2, $merker=0
$ziel = @TempDir & "\leotest.html"
$ziel2 = @TempDir & "\leotest.txt"
$ziel3 = @TempDir & "\leotest2.txt"
FileInstall("C:\html2txt\html2txt.exe", @TempDir & "\"); Quelle: http://www.u32.de/download/html2t32.zip
[/autoit] [autoit][/autoit] [autoit];GUI
$Form1 = GUICreate("Übersetzungs Tool", 402, 34, 10, 10)
$Input1 = GUICtrlCreateInput("Wort zum Übersetzen?", 8, 8, 305, 21)
$Button1 = GUICtrlCreateButton("Übersetze", 320, 8, 75, 25, 0)
GUISetState(@SW_SHOW)
;Programm
While 1
; HotKeys
If WinActive("Übersetzungs Tool") Then
HotKeySet("{ESC}","EXITFUNC")
if _IsPressed("0D") Then uebersetze(); Übersetzen - einfach Eingabe mit Enter abschließen
Else
HotKeySet("{ESC}"); Hotkey deaktivieren
EndIf
If WinActive("Übersetzungs Tool - Ergebnis") Then
HotKeySet("{ESC}","EXITFORM2")
Else
HotKeySet("{ESC}"); Hotkey deaktivieren
EndIf
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button1
uebersetze()
EndSwitch
WEnd
Func uebersetze()
$merker=0
$Form2 = GUICreate("Übersetzungs Tool - Ergebnis", 402,750, 10, 45)
$Edit1 = GUICtrlCreateEdit("", 8, 10, 385, 700)
$suche = GUICtrlRead($Input1)
GUISetState(@SW_SHOW)
$quelle = "http://pda.leo.org/ende?search=" & $suche
InetGet($quelle, $ziel)
$befehl=@TempDir & "\html2txt.exe -w " & $ziel & " " & $ziel2; HTML Code entfernen
_RunDOS($befehl)
$file = FileOpen($ziel2, 0)
$file2 = Fileopen($ziel3, 2) ;File löschen und neu erstellen
While 1
$line = FileReadLine($file);Ergebnisfile bearbeiten
If @error = -1 Then ExitLoop ;EOF
if StringInStr($line, "Suchrichtung") Then $merker=1;überflüssige vorangestellte Infos entfernen
if StringInStr($line, "Link zu") Then ExitLoop ;überflüssige nachfolgende Infos entfernen
$line = StringStripWS($line,4); Leerzeichen entfernen
if $merker = "1" Then FileWriteLine($ziel3,$line );File erst schreiben wenn "Suchrichtung" im String auftaucht
Wend
$ergebnis=FileRead($ziel3, 10000)
GUICtrlSetData($Edit1, $ergebnis)
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func exitfunc()
FileDelete(@TempDir & "\html2txt.exe")
Exit 0
EndFunc
Func EXITFORM2()
GUIDelete($Form2)
ControlFocus("","",$Button1);ok Button selektieren falls vorher mit Enter abgeschlossen wurde
send("+{TAB}"); springt zum Eingabefeld zurück und markiert dies (erspart das löschen des Feldes)
EndFunc
[/autoit]Wass ich nicht lösen konnte:
Wort unter dem Cursor mit Hotkey (Shift + Mittl. Maustaste) kopieren und sofort Übersetzen.
Wenn da jemand Anregungen hat bitte informiert mich.