Wer kennt das nicht? Eine neue UDF gefunden und man möchte was damit basteln.
Aber wie denn bitte, wenn man jeden Befehl noch 20 mal nachschlagen muss?
Hier also ein kurzes Script, welches die CallTips für ein Script ausliest, und in die au3.user.calltips.api schreibt.
SciTE muss danach neu gestartet werden.
/Edit 28.08.2014: Das Script muss unter Umständen als Administrator gestartet werden!
[Blockierte Grafik: http://i51.tinypic.com/14o0pl3.png]
Hier gibt es noch eine angepasste Version von Fabian:
Spoiler anzeigen
;SEuBo - 2010
;modified by Fabian 07.2010
Local $sCallTipPath, $sAu3Path, $aFunc, $sFileRead, $aFuncDesc
; au3.user.calltips.api
If Not @Compiled Then
If @OSArch = "x86" Then
$sCallTipPath = StringReplace(@AutoItExe, "autoit3.exe", "SciTE\api\au3.user.calltips.api")
Else
$sCallTipPath = StringReplace(@AutoItExe, "autoit3_x64.exe", "SciTE\api\au3.user.calltips.api")
EndIf
Else
If @OSArch = "x86" Then
$sCallTipPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt", "InstallDir") & "\SciTE\api\au3.user.calltips.api"
Else
$sCallTipPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AutoIt v3\AutoIt", "InstallDir") & "\SciTE\api\au3.user.calltips.api"
EndIf
EndIf
_ConsoleWrite(@CRLF)
_ConsoleWrite("-> Vermute au3.user.calltips.api in " & $sCallTipPath & @CRLF)
If Not FileExists($sCallTipPath) Then
_ConsoleWrite("!> au3.user.calltips.api wurde nicht gefunden." & @CRLF)
MsgBox(64, "", "au3.user.calltips.api wurde nicht gefunden.")
$sCallTipPath = FileOpenDialog("Calltips Öffnen", @ProgramFilesDir, "AutoIt Calltips (*.api)", Default, "au3.user.calltips.api")
If @error Then
_ConsoleWrite("!> Abbruch durch Benutzer." & @CRLF)
MsgBox(16, "", "Abbruch durch Benutzer.")
Exit
EndIf
EndIf
_ConsoleWrite("+> au3.user.calltips.api in " & $sCallTipPath & " lokalisiert." & @CRLF)
; the script to extract calltips from
If $CmdLine[0] > 0 Then
$sAu3Path = $CmdLine[1]
_ConsoleWrite("-> Zieldatei per $CmdLine übergeben!" & @CRLF)
Else
$sAu3Path = FileOpenDialog("Datei auswählen.", "", "AutoIt Script (*.au3)")
If @error Then
_ConsoleWrite("!> Abbruch durch Benutzer." & @CRLF)
MsgBox(16, "", "Abbruch durch Benutzer.")
Exit
EndIf
_ConsoleWrite("-> Zieldatei per FileOpenDialog übergeben!" & @CRLF)
EndIf
_ConsoleWrite("+> " & $sAu3Path & " ist die Zieldatei" & @CRLF)
; Gather functions
$sFileRead = FileRead($sAu3Path)
$aFunc = StringRegExp($sFileRead, "Func ((\w+)\([^)]*\))", 3)
If @error Then
_ConsoleWrite("!> Keine Funktionen in " & $sAu3Path & " gefunden!" & @CRLF)
MsgBox(16, "", "Keine Funktionen in " & $sAu3Path & " gefunden!")
Exit
EndIf
Local $iFuncCnt = UBound($aFunc), $aTmp, $sRet
For $i = 0 To $iFuncCnt - 1 Step 2
$sRet &= @CRLF & $aFunc[$i]
$aTmp = StringRegExp($sFileRead, "(?i)(?>\b\Q" & $aFunc[$i + 1] & "\E\b[^:]+(?>description|beschreibung)[^:]+:\S*)([^\v]+)\v", 3)
If Not @error Then $sRet &= $aTmp[0]
Next
_ConsoleWrite("Folgende Funktionen wurden hinzugefügt: " & @CRLF & $sRet & @CRLF)
FileWrite($sCallTipPath, $sRet)
MsgBox(64, "", "Fertig")
Func _ConsoleWrite($sText)
If Not @Compiled Then Return ConsoleWrite($sText)
If @Compiled Then Return FileWrite(@ScriptDir & "\_Calltips_Debug.txt", $sText)
EndFunc ;==>_ConsoleWrite