Jump to content

#OnAutoItStartRegister


EmkioA
 Share

Recommended Posts

Hi,

i use the version 3.3.4.0 of autoit.

i use #OnAutoItStartRegister, when i lauch the application from the SciTE environnment, it work

when i compile the application, it dont work

Is there a way to have OnAutoItStart work again on a compiled application?

Thanx

Stéphane

Link to comment
Share on other sites

i use #OnAutoItStartRegister, when i lauch the application from the SciTE environnment, it work

when i compile the application, it dont work

I confirm this unexpected bahavior with the beta compile too, XP SP3 x86. Looks like a bug.

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Link to comment
Share on other sites

You didn't by any chance put parens around your function name, did you?

; Wrong: 
;  #OnAutoItStartRegister("MyTestFunc")
;
; Should be:
#OnAutoItStartRegister "MyTestFunc"

:D

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

  • Moderators

Hi,

Same result for me with 3.3.4.0 on Vista HP SP2:

Neither start function runs when compiled; both run from SciTE

Exit function runs without problem in both cases.

#OnAutoItStartRegister "_start_1"
#OnAutoItStartRegister "_start_2"
OnAutoItExitRegister("_end")

Func _start_1()
    MsgBox(0,"Test", "Starting 1")
EndFunc

Func _start_2()
    MsgBox(0,"Test", "Starting 2")
EndFunc

Func _end()
    MsgBox(0, "Test", "Ending")
EndFunc

I will wait until tomorrow before putting in a bug report just in case we are all missing something obvious. :D

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

You didn't by any chance put parens around your function name, did you?

Even the simple help file example is a nop.

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Link to comment
Share on other sites

Even the simple help file example is a nop.

It should be in BugTracker then, go ahead and create a ticket.

:D

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

This is now ticket #1448

BTW, I'm curious to learn what is allowable in an #OnAutoItStartRegister function. Search turned up nothing.

For instance, I would have expected this code to produce either Box1 or Box2 but no both, depending on it being

interpreted: it should produce Box1 since #OnAutoItStartRegister works

or

compiled: it should produce Box2 since #OnAutoItStartRegister doesn't work.

#OnAutoItStartRegister "MsgFunc"

If Not IsDeclared($flag) Then MsgBox(0, "Box2", "#OnAutoItStartRegister failed.")

Func MsgFunc()
    MsgBox(0, "Box1", "#OnAutoItStartRegister doing its job.")
    Global $flag = -1
EndFunc

Except if the feature is more deeply affected by #1448 bug, the script below tends to show that #OnAutoItStartRegister function:

  • may call other user functions
  • may declare and manipulate local variables
  • may declare and manipulate global variables, but they are treated as if they were declared local.
  • may not use any variable declared outside #OnAutoItStartRegister function since the execution point never got there.
  • may not use UDFs
Is that a correct characterization? Are there other limitations?

#OnAutoItStartRegister "MsgFunc"

If Not IsDeclared($str) Then MsgBox(0, "", "#OnAutoItStartRegister failed.")

Func MsgFunc()
    MsgBox(0, "", "#OnAutoItStartRegister doing its job.")
    Global $str = "AutoIt start part"
    $str &= " of this *** has been"
    $str = StringReplace($str, "***", "string") & " transformed"
    SuffixIt($str)
    ConsoleWrite($str & " hence it has had an existence in variable space." & @LF)
EndFunc

Func SuffixIt($s)
    If IsDeclared($str) Then
        MsgBox(0, "Still within AutoItStart", "Variable $str currently exists.")
    Else
        MsgBox(0, "User function called from AutoItStart", "Variable $str doesn't really exists.")
    EndIf
    Return(StringUpper($s) & ' ')
EndFunc

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Link to comment
Share on other sites

This is now ticket #1448

BTW, I'm curious to learn what is allowable in an #OnAutoItStartRegister function. Search turned up nothing.

For instance, I would have expected this code to produce either Box1 or Box2 but no both, depending on it being

interpreted: it should produce Box1 since #OnAutoItStartRegister works

or

compiled: it should produce Box2 since #OnAutoItStartRegister doesn't work.

#OnAutoItStartRegister "MsgFunc"

If Not IsDeclared($flag) Then MsgBox(0, "Box2", "#OnAutoItStartRegister failed.")

Func MsgFunc()
    MsgBox(0, "Box1", "#OnAutoItStartRegister doing its job.")
    Global $flag = -1
EndFunc

Except if the feature is more deeply affected by #1448 bug, the script below tends to show that #OnAutoItStartRegister function:

  • may call other user functions
  • may declare and manipulate local variables
  • may declare and manipulate global variables, but they are treated as if they were declared local.
  • may not use any variable declared outside #OnAutoItStartRegister function since the execution point never got there.
  • may not use UDFs
Is that a correct characterization? Are there other limitations?

#OnAutoItStartRegister "MsgFunc"

If Not IsDeclared($str) Then MsgBox(0, "", "#OnAutoItStartRegister failed.")

Func MsgFunc()
    MsgBox(0, "", "#OnAutoItStartRegister doing its job.")
    Global $str = "AutoIt start part"
    $str &= " of this *** has been"
    $str = StringReplace($str, "***", "string") & " transformed"
    SuffixIt($str)
    ConsoleWrite($str & " hence it has had an existence in variable space." & @LF)
EndFunc

Func SuffixIt($s)
    If IsDeclared($str) Then
        MsgBox(0, "Still within AutoItStart", "Variable $str currently exists.")
    Else
        MsgBox(0, "User function called from AutoItStart", "Variable $str doesn't really exists.")
    EndIf
    Return(StringUpper($s) & ' ')
EndFunc

not solving the problem but IsDeclared($str) must be IsDeclared("str")

:D

Link to comment
Share on other sites

not solving the problem but IsDeclared($str) must be IsDeclared("str")

Bordel de merde, quel con !

I must recognize it works considerably better once you use the right syntax.

I shouldn't be doing anything at 05:32 AM, certainly not posting here.

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Link to comment
Share on other sites

You didn't by any chance put parens around your function name, did you?

; Wrong: 
;  #OnAutoItStartRegister("MyTestFunc")
;
; Should be:
#OnAutoItStartRegister "MyTestFunc"

Posted Image

I use the #OnAutoItStartRegister "MyTestFunc" but i have an idea. The # is a pre-processor keyword its normal it work into the environement, you should try to transform it as a function as OnAutoItExitRegister( "ExitFuncName" ).

Thanx

Stéphane

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...