Die deutsche AutoIt-Hilfe wird als Archiv zum Download angeboten. In dem Archiv befinden sich drei Dateien.
- AutoIt.chm
- AutoIt3.chm
- UDFs3.chm
Wenn du ausschließlich die deutsche Hilfe nutzen willst:
- Benenne die originale AutoIt.chm um in z. B. AutoIt_EN.chm.
- Entpacke die deutsche AutoIt-Hilfe ins AutoIt-Programmverzeichnis.
- Nun entfernst du die "alternativen Datenströme", wie @chip weiter oben schon aufgezeigt hat, via Eigenschaften und den Button "zulassen", oder du besorgst dir das Tool "Streams" von Sysinternals, mit dem du auch komplette Verzeichnisse samt Inhalt in einem Rutsch davon befreien kannst. So machst du es mit Streams: Streams -d <Datei> oder Streams -d <Verzeichnis>.
- Falls du auch die Beta-Version von AutoIt nutzen willst, musst du die Dateien auch nach .\AutoIt3\Beta\... kopieren.
Die deutsche AutoIt-Hilfe kommt zwar mit drei Dateien daher, die auch alle im selben Verzeichnis sein müssen, weil die AutoIt3.chm und die UDFs3.chm von der AutoIt.chm als #Include nachgeladen werden, insofern sie denn gefunden wurden. Die AutoIt3.chm und die UDFs3.chm kann man aber natürlich auch separat starten. Die AutoIt3Help.exe kennt allerdings nur die AutoIt.chm.
Schön... das war's... die deutsche Hilfe sollte nun verfügbar sein.
Wenn du die englische UND deutsche Hilfe nutzen willst:
Da die Autoit3Help.exe leider fix auf die AutoIt.chm eingestellt ist, müssen wir zuerst eine Kopie davon erstellen und darin den zwei mal vorhandenen String "AutoIt.chm" abändern, damit diese geänderte Version die deutsche Hilfe öffnet. Die geänderten Strings dürfen aber auf keinen Fall länger werden... ich habe sie in Au3Hde.chm umgeändert... und analog dazu muss dann natürlich auch die deutsche AutoIt.chm in Au3Hde.chm umbenannt werden.
Die gepatchte Kopie der Autoit3Help.exe habe ich umbenannt in Autoit3HelpDE.exe. Diese Kopie und die drei CHM-Dateien für die deutsche Hilfe müssen dann ins AutoIt-Programmverzeichnis KOPIERT werden... denn für alle Fälle ARCHIVIEREN wir unsere Arbeit an sicherer Stelle.
Hier ein kleines Script, dass einem das Patchen abnimmt... (nicht getestet!)
AutoIt3Help_Patcher
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;-- TIME_STAMP 2016-11-19 06:26:20
#include <File.au3>
#include <WinAPIShPath.au3>
_Patch()
Func _Patch()
Local $sAutoIt3HelpEN = 'c:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Help.exe'
Local $sAutoIt3HelpDE = _WinAPI_PathRemoveExtension($sAutoIt3HelpEN) & 'DE.exe'
; Ist die Datei auch da?
If FileExists($sAutoIt3HelpEN) = 0 Then Exit MsgBox(262208, @ScriptName, 'AutoIt3Help.exe nicht gefunden!' & @CRLF & '--> ' & $sAutoIt3HelpEN) + 1
If FileExists($sAutoIt3HelpDE) = 1 Then Exit MsgBox(262208, @ScriptName, 'Es existiert bereits eine gepatchte Version von AutoIt3Help.exe...!' & @CRLF & '--> ' & $sAutoIt3HelpDE) + 2
; Eine Kopie davon erstellen, die wir dann für die deutsche Hilfe entsprechend patchen...
If FileCopy($sAutoIt3HelpEN, $sAutoIt3HelpDE, $FC_NOOVERWRITE) = 0 Then Exit MsgBox(262208, @ScriptName, 'Es konnte keine Kopie von der AutoIt3Help.exe erstellt werden!' & @CRLF & '--> ' & $sAutoIt3HelpEN) + 3
Local $hFile = FileOpen($sAutoIt3HelpDE, BitOR($FO_OVERWRITE, $FO_BINARY))
If $hFile = -1 Then Exit MsgBox(262208, @ScriptName, 'Die Datei ' & $sAutoIt3HelpDE & ' konnte nicht geöffnet werden!' & @CRLF & '--> ' & $sAutoIt3HelpDE) + 4
Local $sFile = FileRead($hFile)
If $sFile = '' Then Exit MsgBox(262208, @ScriptName, 'Die Datei ' & $sAutoIt3HelpDE & ' konnte nicht eingelesen werden!' & @CRLF & '--> ' & $sAutoIt3HelpDE) + 5
; Ist das bereits eine gepatchte Version?
If StringInStr($sFile, 'AutoIt3.chm') = 0 Then Exit MsgBox(262208, @ScriptName, 'Patchen ist nicht möglich, weil ich in dieser Datei den String "AutoIt3.chm" nicht finden konnte!') + 3
; Strings ändern...
$sFile = StringReplace($sFile, 'AutoIt3.chm', 'Au3Hde.chm')
; Es müssen genau zwei Strings ersetzt werden - nicht mehr, nicht weniger.
If @extended <> 2 Then Exit MsgBox(262208, @ScriptName, 'Hier stimmt was nicht... es sollten genau zwei Strings ersetzt worden sein...' & @CRLF & ' Anzahl der ersetzten Strings --> ' & @extended) + FileClose($hFile) + 4
; Ok, dann speichern und fertig!
FileWrite($hFile, $sFile)
FileClose($hFile)
MsgBox(262208, @ScriptName, 'Die Datei AutoIt3Help.exe wurde geklont und erfolgreich gepatcht...' & @CRLF & '--> ' & $sAutoIt3HelpDE)
EndFunc
Alles anzeigen
Die rot markierten Dateien müssen sich nun im AutoIt-Programmverzeichnis befinden...
au3hde.png
Damit die deusche Hilfe nun auch per Shorcut verfügbar wird, müssen wir dafür ein paar Zeilen in die SciTEUser.properties einfügen.
# 36 (falls bereits belegt, eben eine andere freie Nummer wählen)
command.name.36.*=AutoIt Deutsche Hilfe
command.36.*.au3=$(autoit3dir)\AutoIt3HelpDE.exe "$(CurrentWord)" "$(autoit3dir)\Au3Hde.chm"
command.shortcut.36.*.au3=Ctrl+Alt+T
command.subsystem.36.*=window
Alles anzeigen
Als Tastenkombination habe ich hier Ctrl+Alt+T gewählt, aber dass kann man ja ändern... wenn eine Tastenkombination nicht funktioniert, dann ist sie schon anderweitig (von SciTE) belegt.
Schön... das war's... die Hilfe sollte nun in zwei Sprachen verfügbar sein.
Weil ich aber keine Befehls-Nummer mehr in SciTE frei habe und die deutsche Hilfe auch selten bis nie brauche, erledige ich dass mit dem SciTE-AddOn: OwnHotKeys von @BugFix.
Damit kannst du dann die deutsche Hilfe auf eine fast beliebige Tastenkombination legen. Mit F1 öffnet du dann weiterhin die englische Hilfe, und mit Strg+Win, Strg+H dann die deutsche Hilfe.
Strg+Win, Strg+H - damit ist gemeint, Strg+Win drücken, Win loslassen, und nun bei noch gedrückter Strg-Taste H drücken... ist aber auch alles gut beschrieben auf der Seite von BugFix...
Der Eintrag in der ownhotkeys.properties sähe dann etwa so aus:
#~ Ctrl+Win, Ctrl+H
own.mode.cmd.72=OHK.SciTEHelpDE("%ProgramFiles(x86)%\\AutoIt3\\Autoit3HelpDE.exe", "%ProgramFiles(x86)%\\AutoIt3\\Au3Hde.chm")
own.mode.descript.72=Ctrl+$(own.mode.indicator.descript), Ctrl+H|Open AutoIt German Help
Nun als letzte Übung noch meine kleine Lua-Funktion ans Ende der OHKfuncs.lua anfügen:
--[[ OHK.SciTEHelpDE( path_help, _chm)
]]
-------------------------------------------------------------------------
OHK.SciTEHelpDE = function(_path_help, _chm)
local caret = editor.CurrentPos
local iPos = editor.SelectionStart
local iStart = editor:WordStartPosition(iPos)
local iEnd = editor:WordEndPosition(iPos)
editor:SetSel(iStart, iEnd)
local word = editor:GetSelText()
editor:SetSel(caret, caret)
local sCmd = '"'.._path_help..'" "'..word..'" "'.._chm..'"'
shell.exec(sCmd)
end --> SciTEHelpDE
-------------------------------------------------------------------------
Alles anzeigen
Schön... das war's... die Hilfe sollte nun in zwei Sprachen verfügbar sein.
Fertig!