Jump to content

New SciTE4AutoIt3 with SciTE v1.69


Jos
 Share

Recommended Posts

  • Developers

This is better but not best :D

F1 is working, but in menu Tools it is still missing

Don't understand your question.... F1 is shown under Help/Help F1 in SciTE... Never under Tools... Only Beta Help is shown under tools... Edited by JdeB

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

I corrected files from JDEB for support Aut in Scite:

SciTe_zedna.zip

1) in aut.properties I set

autoit2dir=C:\Program Files\AutoIt

which is default instal directory for AutoIt 2.64

2) I added following keywords:

note that some of them are macros, preprocesor which should be in other group (maybe in future)

A_OSTYPE

A_OSVERSION

A_SCRIPTNAME

A_SCRIPTDIR

A_SCRIPTFULLPATH

A_WORKINGDIR

A_NUMBATCHLINES

A_SEC

A_MIN

A_HOUR

A_MDAY

A_MON

A_YEAR

A_WDAY

A_YDAY

CLIPBOARD

ERRORLEVEL

#include

ADLIB

EnvDiv

EnvMult

FileCopy

FileCreateDir

FileDelete

FileInstall

FileRemoveDir

FileSelectFile

HideAutoItDebug

SetCapslockState

SetBatchLines

SetStoreCapslockMode

StringGetPos

WinGetActiveStats

I will work on AutoItHelp.au3 (exe) ...

EDIT:

- added also ERRORLEVEL

- note that sendkeys should be also added

EDIT2:

here is also REG file for setting Scite as default Edit action for Aut extension

- note that directories are the default ones!

aut_scite_reg.zip

Edited by Zedna
Link to comment
Share on other sites

Here is my first attempt for AutoItHelp, but it's not working.

Immediatelly after opening HelpFile it invokes Acces violation.

If somebody know reason, please tell me.

Or if somebody know how to open CHM file at specified topic based on its internal HTML adress like "AutoIt.chm::/Files/Script_Commands.htm#Exit" tell me too :D

#NoTrayIcon 
; ----------------------------------------------------------------------------
; Script Function:
;   Open Helpfile on the correct keyword
; ----------------------------------------------------------------------------
#Compiler_Icon = filetype1.ico
#Compiler_Res_Description = AutoIt Help.

Const $HH_DISPLAY_TOPIC = 0
Const $HH_DISPLAY_TOC = 1
Const $HH_DISPLAY_INDEX = 2
Const $HH_DISPLAY_SEARCH = 3
Const $HH_KEYWORD_LOOKUP = 0xD
Const $HH_HELP_CONTEXT = 0xF
Const $HH_ALINK_LOOKUP = 0x13
Const $HH_INITIALIZE = 0x1C 
Const $HH_UNINITIALIZE = 0x1D

$FuncName = $CmdLineRaw

If $CmdLineRaw <> '' Then
    Switch $FuncName
        Case 'AdlibOff'
            $FuncName = 'AdlibOn'
        Case 'EnvSub', 'EnvMult', 'EnvDiv'
            $FuncName = 'EnvAdd'
        Case 'Return'
            $FuncName = 'Gosub'
        Case 'IfNotInString'
            $FuncName = 'IfInString'
        Case 'IfWinNotExist', 'IfWinActive', 'IfWinNotActive'
            $FuncName = 'IfWinExist'
        Case 'IfNotEqual'
            $FuncName = 'IfEqual'
        Case 'IfGreaterOrEqual', 'IfLess', 'IfLessOrEqual'
            $FuncName = 'IfGreater'
        Case 'IfNotExist'
            $FuncName = 'IfExist'
        Case 'IniWrite', 'IniDelete'
            $FuncName = 'IniRead'
        Case 'RightClick'
            $FuncName = 'LeftClick'
        Case 'RightClickDrag'
            $FuncName = 'LeftClickDrag'
        Case 'EndRepeat'
            $FuncName = 'Repeat'
        Case 'StringRight'
            $FuncName = 'StringLeft'
        Case 'StringTrimRight'
            $FuncName = 'StringTrimLeft'
        Case 'WinShow', 'WinRestore', 'WinMinimize', 'WinMaximize', 'WinActivate', 'WinClose'
            $FuncName = 'WinHide'
        Case 'WinMinimizeAllUndo'
            $FuncName = 'WinMinimizeAll'
    EndSwitch
EndIf

$result = DllCall("hhctrl.ocx","hwnd","HtmlHelpA","hwnd",0,"str","","int",$HH_INITIALIZE,"long",0)
$cookie = $result[4]

$result = DllCall("hhctrl.ocx","hwnd","HtmlHelpA","hwnd",0,"str","Autoit.chm::/Files/Script_Commands.htm#" & $FuncName,"int",$HH_DISPLAY_TOC,"long",0)

Sleep(3000)

$result = DllCall("hhctrl.ocx","hwnd","HtmlHelpA","hwnd",0,"str","","int",$HH_UNINITIALIZE,"long",$cookie)
oÝ÷ Ø*+z+-+ºw-ÜjYZºÚ"µÍÌÍÜÝ[HØ[
    ][ÝÚÝØÞ    ][ÝË  ][ÝÚÛ    ][ÝË  ][ÝÒ[[I][ÝË ][ÝÚÛ    ][ÝË  ][ÝÜÝ][ÝË  ][ÝÐ]]Ú]ÚNÑ[ËÔØÜÐÛÛ[X[ËHÉ][ÝÈ   [È ÌÍÑ[Ó[YK    ][ÝÚ[ ][ÝË  ÌÍÒÑTÔVWÕÐË ][ÝÛÛÉ][ÝË
B

Here are some definitions for this function from web:

HWND WINAPI HtmlHelpA(
    HWND hwndCaller,
    LPCSTR pszFile,
    UINT uCommand,
    DWORD_PTR dwData
);

function HtmlHelp(hwndCaller: THandle; pszFile: PChar;
    uCommand: cardinal; dwData: longint): THandle; stdcall;
    external 'hhctrl.ocx' name 'HtmlHelpA'; {external API call}
    
Private Declare Function HTMLHelp_BaseCall Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hWnd As Integer, _ 
ByVal lpHelpFile As String, _ 
ByVal wCommand As Long, _ 
ByVal dwData As Long) As Long

Here are some usefull adresses about HtmlHelp API:

Link to comment
Share on other sites

I get it :D

Here is working AutoItHelp.au3:

solution is to use Run & hh.exe instead of API & DllCall & hhctrl.ocx

Run('HH.exe Autoit.chm::/Files/Script_Commands.htm#' & $FuncName, @ScriptDir, @SW_MAXIMIZE) 
oÝ÷ Ù«­¢+Ø(9½QÉå%½¸(ì´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´(ì(ìÕѽ%ÐYÉÍ¥½¸è̸ĸÀ(ì1¹Õè¹±¥Í (ìA±Ñ½É´è]¥¸åà¼9P(ìÕÑ¡½Èèi¹(ì(ìMÉ¥ÁÐչѥ½¸è(ì%=Á¸!±Á¥±½¸Ñ¡½ÉÉЭåݽÉ(ì´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´´(
½µÁ¥±É}%½¸ô¥±ÑåÁĹ¥¼(
½µÁ¥±É}}
½µµ¹ÐôÕѽ%Ð!±À(
½µÁ¥±É}}ÍÉ¥ÁÑ¥½¸ôÕѽ%Ð!±À¸(
½µÁ¥±É}}¥±ÙÉÍ¥½¸ôĸÀ¸À(
½µÁ¥±É}}1±
½ÁåÉ¥¡Ðô(
½µÁ¥±É}}¥±Å9µô5   ä(
½µÁ¥±É}}¥±ÅY±Õôi¹(
½µÁ¥±É}IÕ¹}TÍ
¡¬ôä(
½µÁ¥±É}IÕ¹}ÑÈô½ÁäÅÕ½Ð쥸ÅÕ½ÐìÅÕ½ÐíèÀäÈíÁɽɴ¥±ÌÀäÈíÕѽ¥ÐÅÕ½Ðì(
½µÁ¥±É}IÕ¹}ÑÈô½ÁäÅÕ½Ðì½ÕÐÅÕ½ÐìÅÕ½ÐíèÀäÈíÁɽɴ¥±ÌÀäÈíÕѽ¥ÐÅÕ½Ðì((ÀÌØíÕ¹9µôÀÌØí
µ1¥¹IÜ()%ÀÌØí
µ1¥¹IܱÐìÐìÌäìÌäìQ¡¸(%MÝ¥Ñ ÀÌØíÕ¹9µ($%
ÍÌäí±¥=Ìäì($$$ÀÌØíÕ¹9µôÌäí±¥=¸Ìäì($%
ÍÌäí¹ÙMÕÌäì°Ìäí¹Ù5Õ±ÐÌäì°Ìäí¹Ù¥ØÌäì($$$ÀÌØíÕ¹9µôÌäí¹ÙÌäì($%
ÍÌäíIÑÕɸÌäì($$$ÀÌØíÕ¹9µôÌäí½ÍÕÌäì($%
ÍÌäí%9½Ñ%¹MÑÉ¥¹Ìäì($$$ÀÌØíÕ¹9µôÌäí%%¹MÑÉ¥¹Ìäì($%
ÍÌäí%]¥¹9½Ñá¥ÍÐÌäì°Ìäí%]¥¹Ñ¥ÙÌäì°Ìäí%]¥¹9½ÑÑ¥ÙÌäì($$$ÀÌØíÕ¹9µôÌäí%]¥¹á¥ÍÐÌäì($%
ÍÌäí%9½ÑÅÕ°Ìäì($$$ÀÌØíÕ¹9µôÌäí%ÅÕ°Ìäì($%
ÍÌäí%ÉÑÉ=ÉÅÕ°Ìäì°Ìäí%1ÍÌÌäì°Ìäí%1ÍÍ=ÉÅÕ°Ìäì($$$ÀÌØíÕ¹9µôÌäí%ÉÑÈÌäì($%
ÍÌäí%9½Ñá¥ÍÐÌäì($$$ÀÌØíÕ¹9µôÌäí%á¥ÍÐÌäì($%
ÍÌäí%¹¥]É¥ÑÌäì°Ìäí%¹¥±ÑÌäì($$$ÀÌØíÕ¹9µôÌäí%¹¥IÌäì($%
ÍÌäíI¥¡Ñ
±¥¬Ìäì($$$ÀÌØíÕ¹9µôÌäí1Ñ
±¥¬Ìäì($%
ÍÌäíI¥¡Ñ
±¥­ÉÌäì($$$ÀÌØíÕ¹9µôÌäí1Ñ
±¥­ÉÌäì($%
ÍÌäí¹IÁÐÌäì($$$ÀÌØíÕ¹9µôÌäíIÁÐÌäì($%
ÍÌäíMÑÉ¥¹I¥¡ÐÌäì($$$ÀÌØíÕ¹9µôÌäíMÑÉ¥¹1ÐÌäì($%
ÍÌäíMÑÉ¥¹QÉ¥µI¥¡ÐÌäì($$$ÀÌØíÕ¹9µôÌäíMÑÉ¥¹QÉ¥µ1ÐÌäì($%
ÍÌäí]¥¹M¡½ÜÌäì°Ìäí]¥¹IÍѽÉÌäì°Ìäí]¥¹5¥¹¥µ¥éÌäì°Ìäí]¥¹5᥵¥éÌäì°Ìäí]¥¹Ñ¥ÙÑÌäì°Ìäí]¥¹
±½ÍÌäì($$$ÀÌØíÕ¹9µôÌäí]¥¹!¥Ìäì($%
ÍÌäí]¥¹5¥¹¥µ¥é±±U¹¼Ìäì($$$ÀÌØíÕ¹9µôÌäí]¥¹5¥¹¥µ¥é±°Ìäì(%¹MÝ¥Ñ )¹%()IÕ¸ Ìäí! ¹áÕѽ¥Ð¹¡´èè½¥±Ì½MÉ¥ÁÑ}
½µµ¹Ì¹¡Ñ´ÌäìµÀìÀÌØíÕ¹9µ°MÉ¥ÁѥȰM]}5a%5%i¤

EDIT:

When you change in aut.properties:

command.help.$(file.patterns.aut)="$(autoit2dir)\AutoIt.chm"
by:

command.help.$(file.patterns.aut)="$(autoit2dir)\AutoitHelp.exe" $(CurrentWord)

then after F1 in Scite is opened HelpFile at topic for current word :D

Edited by Zedna
Link to comment
Share on other sites

here is one way with dllcall...

Const $HH_DISPLAY_TOPIC  = 0x0    ; select last opened tab, [display a specified topic]
Const $HH_DISPLAY_TOC  = 0x1      ; select contents tab, [display a specified topic]
Const $HH_DISPLAY_INDEX  = 0x2    ; select index tab and searches for a keyword
Const $HH_DISPLAY_SEARCH  = 0x3   ; select search tab and perform a search
Const $HH_HELP_CONTEXT  = 0xF     ; display mapped numeric value in dwData
;~ HWND WINAPI HtmlHelpA(
;~     HWND hwndCaller,
;~     LPCSTR pszFile,
;~     UINT uCommand,
;~     DWORD_PTR dwData
;~ );
$sfunc = "_StringEncrypt"
$hwndHelp = DllCall("hhctrl.ocx","hwnd","HtmlHelpA","hwnd",0,"str","Autoit.chm","int",$HH_DISPLAY_INDEX,"str",$sfunc)
if WinWaitActive($hwndHelp[0],"",5) Then Send("{ENTER}")
While WinExists($hwndHelp[0])
    Sleep(250)
WEnd

hope its not to late :D

CoProc Multi Process Helper libraryTrashBin.nfshost.com store your AutoIt related files here!AutoIt User Map
Link to comment
Share on other sites

here is one way with dllcall...

$sfunc = "_StringEncrypt"
$hwndHelp = DllCall("hhctrl.ocx","hwnd","HtmlHelpA","hwnd",0,"str","Autoit.chm","int",$HH_DISPLAY_INDEX,"str",$sfunc)
if WinWaitActive($hwndHelp[0],"",5) Then Send("{ENTER}")
While WinExists($hwndHelp[0])
    Sleep(250)
WEnd

hope its not to late :D

Your code is not working:

- access violation is there like in my first attempt with dllcall

- in Helpfile for AutoIt version 2.64 is not index, so it couldn't work in principle

My last code with Run() & HH.EXE is working fine, so it's too late from you :D

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...