Sign in to follow this  
Followers 0
nitekram

Right click control and get submenu

17 posts in this topic

#1 ·  Posted (edited)

Hello, once again. I found this script trying to do the same thing in my script - to find the issue put a number in the input/edit box and then right click in the same box and press common - once that is done press save and you will see what happens to the input/edit box. Any help fixing this issue or another solution would be great

This code was found here

EDIT - forgot to tell you what i was trying to do - when right clicking a ctrl you get a popup that says copy, paste, ect - i want to replace that with my own. this script works until you try to remove the data in the ctrl by using GuiCtrlSetData($var, '')

#include <DllCallBack.au3>
#include <EditConstants.au3>


Global Const $WM_CONTEXTMENU = 0x007B

$Gui_main = GUICreate("Disable Context Menu Demo")

$Editjunk = GUICtrlCreateInput("", 120, 120, 30, 30, $ES_NUMBER)

$test = GUICtrlCreateButton('save', 150, 150)

$DummyMenu = GUICtrlCreateDummy()
$ContextMenu = GUICtrlCreateContextMenu($DummyMenu)
$CommonMenuItem = GUICtrlCreateMenuItem("Common", $ContextMenu)


$WindowProcCallBack = _DllCallBack("_WindowProc", "hwnd;uint;long;ptr", 4)
$OriginalWindowProc = _WinSubclass(GUICtrlGetHandle($Editjunk), $WindowProcCallBack)

GUISetState()

While 1
    $Msg = GUIGetMsg()
    Select
        Case $Msg = -3
            _DllCallBack_Free($OriginalWindowProc)
            Exit
        Case $Msg = $CommonMenuItem
            MsgBox('', 'common pressed', '')
            $common = 1
            
        Case $Msg = $test
            IniWrite('test.ini', 'test', 'common', $common)
            GUICtrlSetData($Editjunk, '')
            
    EndSelect
WEnd

; Show a menu in a given GUI window which belongs to a given GUI ctrl
Func ShowMenu($hWnd, $nContextID)
    Local $hMenu = GUICtrlGetHandle($nContextID)

    $arPos = MouseGetPos()

    Local $x = $arPos[0]
    Local $y = $arPos[1]

    DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
EndFunc   ;==>ShowMenu

Func _WindowProc($hWnd, $uiMsg, $wParam, $lParam)
    ; Disable the context menu and show your own menu
    If $uiMsg = $WM_CONTEXTMENU Then
        ;MsgBox('','','')
        ShowMenu($Gui_main, $ContextMenu)
        Return 0
    EndIf

    ; Returning a Pointer to the original WindowProc means: We did not process this message.
    ; Do not call CallWindowProc() api yourself, the stub will do that for you!
    Return $OriginalWindowProc
EndFunc   ;==>_WindowProc

Func _WinSubclass($hWnd, $lpNewWindowProc)
    ;#define GWL_WNDPROC (-4)
    Local $aTmp = DllCall("user32.dll", "ptr", "SetWindowLong", "hwnd", $hWnd, "int", -4, "ptr", $lpNewWindowProc)
    If @error Then Return SetError(1, 0, 0)
    If $aTmp[0] = 0 Then Return SetError(1, 0, 0)
    Return $aTmp[0]
EndFunc   ;==>_WinSubclass
Edited by nitekram

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites



Bump?

Another thought for those intereseted in helping me.

Once the right click button on mouse is pressed the popup comes up and you pick your choice - I will need to know which input/edit control was pressed.

Also the script above never pulls the right data when I use GuiCtrlRead() - i.e. after pressing the dropdown if I were to put a 12 in the input/edit box the only data it pulls is a number 1?

Please let me know if you need anything else, cause I am stuck. Have tried changing things around and different types of context menu with no luck.


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

bump?

anyone have any ideas on how to make this work?


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

bump?

anyone have any ideas on how to make this work?

The code you found is outdated. Search for "subclass" by Melba23 because he has done some nice examples, but so have others.


Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

The code you found is outdated.

Thanks for the help - in searching for this for about a day, I stumbled on this: I think it will work, but someone has to help me fix it - please. Everything seems to work except when the application closes - it never closes? I have to end autoit process in task manager. Any help to keep me going would be great.

Thanks again...

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiMenu.au3>
#include <WinAPI.au3>

Opt('MustDeclareVars', 1)

Global $ContextMenu, $CommonMenuItem, $FileMenuItem, $ExitMenuItem
Global $hGui, $cInput, $wProcOld

_Main()

Func _Main()
    Local $cInput2, $wProcNew, $DummyMenu

    $hGui = GUICreate("Type or paste some stuff", 400, 200, -1, -1, $WS_THICKFRAME, -1)
    $cInput = GUICtrlCreateInput("", 20, 20, 360, 20)
    $cInput2 = GUICtrlCreateInput("", 20, 50, 360, 20)

    GUICtrlCreateLabel("abcd", 1, 1, 30, 18)
    GUICtrlSetCursor(-1, 9)

    $wProcNew = DllCallbackRegister("_MyWindowProc", "ptr", "hwnd;uint;long;ptr")
    $wProcOld = _WinAPI_SetWindowLong(GUICtrlGetHandle($cInput), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    _WinAPI_SetWindowLong(GUICtrlGetHandle($cInput2), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    ;_WinAPI_SetWindowLong(GUICtrlGetHandle($cInput3), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew)) and so on

    $DummyMenu = GUICtrlCreateDummy()
    $ContextMenu = GUICtrlCreateContextMenu($DummyMenu)
    $CommonMenuItem = GUICtrlCreateMenuItem("Common", $ContextMenu)
    $FileMenuItem = GUICtrlCreateMenuItem("File", $ContextMenu)
    GUICtrlCreateMenuItem("", $ContextMenu)
    $ExitMenuItem = GUICtrlCreateMenuItem("Exit", $ContextMenu)


    GUISetState(@SW_SHOW)
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
    WEnd
    

EndFunc   ;==>_Main


Func do_clever_stuff_with_clipboard($hWnd)
    Local $sData
    $sData = ClipGet()
    If @error Then Return 0;clip data is not text or clip empty
    ;do whatever
    $sData = StringUpper($sData)
    ;set text
    GUICtrlSetData(_WinAPI_GetDlgCtrlID($hWnd), $sData);or _GUICtrlEdit_SetText($hWnd, $sData)
    Return 1
EndFunc   ;==>do_clever_stuff_with_clipboard

; Show a menu in a given GUI window which belongs to a given GUI ctrl
Func ShowMenu($hWnd, $nContextID)
    Local $iSelected = _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($nContextID), $hWnd, -1, -1, -1, -1, 2)
    Switch $iSelected
        Case $CommonMenuItem
            ConsoleWrite(Guictrlread($cInput) & @CRLF)
        Case $FileMenuItem
            ConsoleWrite("File" & @CRLF)
        Case $ExitMenuItem
            ConsoleWrite("Exit" & @CRLF)
    EndSwitch
EndFunc   ;==>ShowMenu

Func _MyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
    Switch $uiMsg
        Case $WM_PASTE
            Return do_clever_stuff_with_clipboard($hWnd)
        Case $WM_CONTEXTMENU
            If $hWnd = GUICtrlGetHandle($cInput) Then
                ShowMenu($hGui, $ContextMenu)
                Return 0
            EndIf
        Case $WM_SETCURSOR
            GUICtrlSetCursor(_WinAPI_GetDlgCtrlID($hWnd), 5);;set Ibeam cursor
            Return 1;;and don't let default windowproc mess things up
    EndSwitch

    ;pass the unhandled messages to default WindowProc
    Return _WinAPI_CallWindowProc($wProcOld, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc   ;==>_MyWindowProc

By the way - this code is coming straight from the help file under, _WinAPI_CallWindowProc

EDIT:

Found the fix - thanks to @melba23's code

added this before exiting main gui while loop:

GUIDelete($hGUI)

DllCallbackFree($wProcNew)

Edited by nitekram

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

I again spoke/wrote to fast...does anyone know how to make the context menu display for all inputs and to know which input it came from? In the example it just mentions to call _WinAPI_SetWindowLong() for every input, but I have tried that along with other simple tries and either the code runs and never displays the gui or the second input box gets the normal - select all, copy, paste...

Any ideas?


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

I again spoke/wrote to fast...does anyone know how to make the context menu display for all inputs and to know which input it came from? In the example it just mentions to call _WinAPI_SetWindowLong() for every input, but I have tried that along with other simple tries and either the code runs and never displays the gui or the second input box gets the normal - select all, copy, paste...

Any ideas?

The handle is passed to _MyWindowProc so you can do something there.

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiMenu.au3>
#include <WinAPI.au3>

Opt('MustDeclareVars', 1)

Global $ContextMenu, $CommonMenuItem, $FileMenuItem, $ExitMenuItem
Global $hGui, $cInput, $cInput2, $wProcOld

_Main()

Func _Main()
    Local $wProcNew, $DummyMenu

    $hGui = GUICreate("Type or paste some stuff", 400, 200, -1, -1, $WS_THICKFRAME, -1)
    $cInput = GUICtrlCreateInput("", 20, 20, 360, 20)
    $cInput2 = GUICtrlCreateInput("", 20, 50, 360, 20)

    GUICtrlCreateLabel("abcd", 1, 1, 30, 18)
    GUICtrlSetCursor(-1, 9)

    $wProcNew = DllCallbackRegister("_MyWindowProc", "ptr", "hwnd;uint;long;ptr")
    $wProcOld = _WinAPI_SetWindowLong(GUICtrlGetHandle($cInput), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    _WinAPI_SetWindowLong(GUICtrlGetHandle($cInput2), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    ;_WinAPI_SetWindowLong(GUICtrlGetHandle($cInput3), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew)) and so on

    $DummyMenu = GUICtrlCreateDummy()
    $ContextMenu = GUICtrlCreateContextMenu($DummyMenu)
    $CommonMenuItem = GUICtrlCreateMenuItem("Common", $ContextMenu)
    $FileMenuItem = GUICtrlCreateMenuItem("File", $ContextMenu)
    GUICtrlCreateMenuItem("", $ContextMenu)
    $ExitMenuItem = GUICtrlCreateMenuItem("Exit", $ContextMenu)


    GUISetState(@SW_SHOW)
    While 1
    Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                GUIDelete($hGUI)
    DllCallbackFree($wProcNew) 
    ExitLoop
    EndSwitch
    WEnd
    

EndFunc ;==>_Main


Func do_clever_stuff_with_clipboard($hWnd)
    Local $sData
    $sData = ClipGet()
    If @error Then Return 0;clip data is not text or clip empty
    ;do whatever
    $sData = StringUpper($sData)
    ;set text
    GUICtrlSetData(_WinAPI_GetDlgCtrlID($hWnd), $sData);or _GUICtrlEdit_SetText($hWnd, $sData)
    Return 1
EndFunc ;==>do_clever_stuff_with_clipboard

; Show a menu in a given GUI window which belongs to a given GUI ctrl
Func ShowMenu($hWnd, $nContextID,$it1)
    GUICtrlSetData( $CommonMenuItem,"Common - " & $it1)
    Local $iSelected = _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($nContextID), $hWnd, -1, -1, -1, -1, 2)
    Switch $iSelected
    Case $CommonMenuItem
    ConsoleWrite(Guictrlread($cInput) & @CRLF)
    Case $FileMenuItem
    ConsoleWrite("File" & @CRLF)
    Case $ExitMenuItem
    ConsoleWrite("Exit" & @CRLF)
    EndSwitch
EndFunc ;==>ShowMenu

Func _MyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
    Switch $uiMsg
    Case $WM_PASTE
    Return do_clever_stuff_with_clipboard($hWnd)
    Case $WM_CONTEXTMENU
    If $hWnd = GUICtrlGetHandle($cInput) Then
    ShowMenu($hGui, $ContextMenu,"cInput")
    Return 0
    EndIf
            If $hWnd = GUICtrlGetHandle($cInput2) Then
                ConsoleWrite("gfcgfc" & @CRLF)
    ShowMenu($hGui, $ContextMenu,"cInput2")
    Return 0
    EndIf
    Case $WM_SETCURSOR
    GUICtrlSetCursor(_WinAPI_GetDlgCtrlID($hWnd), 5);;set Ibeam cursor
    Return 1;;and don't let default windowproc mess things up
    EndSwitch

    ;pass the unhandled messages to default WindowProc
    Return _WinAPI_CallWindowProc($wProcOld, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc ;==>_MyWindowProc

Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

I thought I had tried that, but I must have missed the "If $hWnd = GUICtrlGetHandle($cInput2) Then" - I do not know - will have to look at my code when I get home. Thanks for the help again...


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Got another issue - cannot reproduce on a smaller scale. I have 50 100 inputs that I need to receive the popup context menu on and if I do not pick from the popup (meaning that I just randomly right click a half dozen input controls) and then try to close the application it takes about 6-10 seconds to close. Any ideas on how to make it close faster?

EDIT:

Changed the number of inputs

Edited by nitekram

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

Got another issue - cannot reproduce on a smaller scale. I have 50 inputs that I need to receive the popup context menu on and if I do not pick from the popup (meaning that I just randomly right click a half dozen input controls) and then try to close the application it takes about 6-10 seconds to close. Any ideas on how to make it close faster?

Do you delete the gui and then call DllCallbackFree($wProcNew)?


Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

Do you delete the gui and then call DllCallbackFree($wProcNew)?

Yes - if i pick from the drop down and then close the gui it works fine, it is only when I do not pick something that it does not close. Also I have noticed that if I click more than 6 input controls it takes even longer - like it is looking for some 'INPUT', if you will (per se).

I have tried to make my Switch/EndSwitch RETURN if nothing is selected, but no matter what number I use 0,1,-1 or just Return it does the same thing.

The problem I have determined (meaning I guessed) is in the funtion: But do not know how to cleanly return from function if nothing was picked?

; Show a menu in a given GUI window which belongs to a given GUI ctrl
Func ShowMenu($hWnd, $nContextID, $itype)
    GUICtrlSetData($CommonMenuItem, "Common - " & $itype)
    Local $iSelected = _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($nContextID), $hWnd, -1, -1, -1, -1, 2)
    
    Switch $iSelected
        Case $EightONMenuItem
            If $itype = '$GameHome1P1' Or $itype = '$GameHome2P1' Or $itype = '$GameHome3P1' Or $itype = '$GameHome4P1' Or $itype = '$GameHome5P1' Then EightOnBreak(GUICtrlRead($IDhomeP1))
            If $itype = '$GameHome1P2' Or $itype = '$GameHome2P2' Or $itype = '$GameHome3P2' Or $itype = '$GameHome4P2' Or $itype = '$GameHome5P2' Then EightOnBreak(GUICtrlRead($IDhomeP2))
            If $itype = '$GameHome1P3' Or $itype = '$GameHome2P3' Or $itype = '$GameHome3P3' Or $itype = '$GameHome4P3' Or $itype = '$GameHome5P3' Then EightOnBreak(GUICtrlRead($IDhomeP3))
            If $itype = '$GameHome1P4' Or $itype = '$GameHome2P4' Or $itype = '$GameHome3P4' Or $itype = '$GameHome4P4' Or $itype = '$GameHome5P4' Then EightOnBreak(GUICtrlRead($IDhomeP4))
            If $itype = '$GameHome1P5' Or $itype = '$GameHome2P5' Or $itype = '$GameHome3P5' Or $itype = '$GameHome4P5' Or $itype = '$GameHome5P5' Then EightOnBreak(GUICtrlRead($IDhomeP5))

            If $itype = '$GameHome1S1' Or $itype = '$GameHome2S1' Or $itype = '$GameHome3S1' Or $itype = '$GameHome4S1' Or $itype = '$GameHome5S1' Then EightOnBreak(GUICtrlRead($IDhomeS1))
            If $itype = '$GameHome1S2' Or $itype = '$GameHome2S2' Or $itype = '$GameHome3S2' Or $itype = '$GameHome4S2' Or $itype = '$GameHome5S2' Then EightOnBreak(GUICtrlRead($IDhomeS2))
            If $itype = '$GameHome1S3' Or $itype = '$GameHome2S3' Or $itype = '$GameHome3S3' Or $itype = '$GameHome4S3' Or $itype = '$GameHome5S3' Then EightOnBreak(GUICtrlRead($IDhomeS3))
            If $itype = '$GameHome1S4' Or $itype = '$GameHome2S4' Or $itype = '$GameHome3S4' Or $itype = '$GameHome4S4' Or $itype = '$GameHome5S4' Then EightOnBreak(GUICtrlRead($IDhomeS4))
            If $itype = '$GameHome1S5' Or $itype = '$GameHome2S5' Or $itype = '$GameHome3S5' Or $itype = '$GameHome4S5' Or $itype = '$GameHome5S5' Then EightOnBreak(GUICtrlRead($IDhomeS5))

            If $itype = '$GameAway1P1' Or $itype = '$GameAway2P1' Or $itype = '$GameAway3P1' Or $itype = '$GameAway4P1' Or $itype = '$GameAway5P1' Then EightOnBreak(GUICtrlRead($IDAwayP1))
            If $itype = '$GameAway1P2' Or $itype = '$GameAway2P2' Or $itype = '$GameAway3P2' Or $itype = '$GameAway4P2' Or $itype = '$GameAway5P2' Then EightOnBreak(GUICtrlRead($IDAwayP2))
            If $itype = '$GameAway1P3' Or $itype = '$GameAway2P3' Or $itype = '$GameAway3P3' Or $itype = '$GameAway4P3' Or $itype = '$GameAway5P3' Then EightOnBreak(GUICtrlRead($IDAwayP3))
            If $itype = '$GameAway1P4' Or $itype = '$GameAway2P4' Or $itype = '$GameAway3P4' Or $itype = '$GameAway4P4' Or $itype = '$GameAway5P4' Then EightOnBreak(GUICtrlRead($IDAwayP4))
            If $itype = '$GameAway1P5' Or $itype = '$GameAway2P5' Or $itype = '$GameAway3P5' Or $itype = '$GameAway4P5' Or $itype = '$GameAway5P5' Then EightOnBreak(GUICtrlRead($IDAwayP5))

            If $itype = '$GameAway1S1' Or $itype = '$GameAway2S1' Or $itype = '$GameAway3S1' Or $itype = '$GameAway4S1' Or $itype = '$GameAway5S1' Then EightOnBreak(GUICtrlRead($IDAwayS1))
            If $itype = '$GameAway1S2' Or $itype = '$GameAway2S2' Or $itype = '$GameAway3S2' Or $itype = '$GameAway4S2' Or $itype = '$GameAway5S2' Then EightOnBreak(GUICtrlRead($IDAwayS2))
            If $itype = '$GameAway1S3' Or $itype = '$GameAway2S3' Or $itype = '$GameAway3S3' Or $itype = '$GameAway4S3' Or $itype = '$GameAway5S3' Then EightOnBreak(GUICtrlRead($IDAwayS3))
            If $itype = '$GameAway1S4' Or $itype = '$GameAway2S4' Or $itype = '$GameAway3S4' Or $itype = '$GameAway4S4' Or $itype = '$GameAway5S4' Then EightOnBreak(GUICtrlRead($IDAwayS4))
            If $itype = '$GameAway1S5' Or $itype = '$GameAway2S5' Or $itype = '$GameAway3S5' Or $itype = '$GameAway4S5' Or $itype = '$GameAway5S5' Then EightOnBreak(GUICtrlRead($IDAwayS5))
        Case Else
            Return
            
        EndSwitch
        
EndFunc   ;==>ShowMenu

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

I don't see that problem in this example.

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiMenu.au3>
#include <WinAPI.au3>

Opt('MustDeclareVars', 1)

Global $ContextMenu, $CommonMenuItem, $FileMenuItem, $ExitMenuItem
Global $hGui, $cInput, $cInput2, $wProcOld
Global $maxip = 12-1
Global $ip[$maxip+1]
_Main()

Func _Main()
    Local $wProcNew, $DummyMenu

    $hGui = GUICreate("Type or paste some stuff", 400, 600, -1, -1, $WS_THICKFRAME, -1)

    For $n = 0 To $maxip
    $ip[$n] = GUICtrlCreateInput("", 20, 20 + 25 * $n, 360, 20)
    Next

    GUICtrlCreateLabel("abcd", 1, 1, 30, 18)
    GUICtrlSetCursor(-1, 9)

    $wProcNew = DllCallbackRegister("_MyWindowProc", "ptr", "hwnd;uint;long;ptr")
    $wProcOld = _WinAPI_SetWindowLong(GUICtrlGetHandle($ip[0]), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    For $n = 1 To $maxip
    _WinAPI_SetWindowLong(GUICtrlGetHandle($ip[$n]), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    Next
    ;_WinAPI_SetWindowLong(GUICtrlGetHandle($cInput3), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew)) and so on

    $DummyMenu = GUICtrlCreateDummy()
    $ContextMenu = GUICtrlCreateContextMenu($DummyMenu)
    $CommonMenuItem = GUICtrlCreateMenuItem("Common", $ContextMenu)
    $FileMenuItem = GUICtrlCreateMenuItem("File", $ContextMenu)
    GUICtrlCreateMenuItem("", $ContextMenu)
    $ExitMenuItem = GUICtrlCreateMenuItem("Exit", $ContextMenu)


    GUISetState(@SW_SHOW)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    GUIDelete($hGui)
    DllCallbackFree($wProcNew)

    ExitLoop
    EndSwitch
    WEnd


EndFunc ;==>_Main


Func do_clever_stuff_with_clipboard($hWnd)
    Local $sData
    $sData = ClipGet()
    If @error Then Return 0;clip data is not text or clip empty
    ;do whatever
    $sData = StringUpper($sData)
    ;set text
    GUICtrlSetData(_WinAPI_GetDlgCtrlID($hWnd), $sData);or _GUICtrlEdit_SetText($hWnd, $sData)
    Return 1
EndFunc ;==>do_clever_stuff_with_clipboard

; Show a menu in a given GUI window which belongs to a given GUI ctrl
Func ShowMenu($hWnd, $nContextID, $it1)
    GUICtrlSetData($CommonMenuItem, "Common - " & $it1)
    Local $iSelected = _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($nContextID), $hWnd, -1, -1, -1, -1, 2)
    Switch $iSelected
    Case $CommonMenuItem
    ConsoleWrite(GUICtrlRead($cInput) & @CRLF)
    Case $FileMenuItem
    ConsoleWrite("File" & @CRLF)
    Case $ExitMenuItem
    ConsoleWrite("Exit" & @CRLF)
    EndSwitch
EndFunc ;==>ShowMenu

Func _MyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
    Switch $uiMsg
    Case $WM_PASTE
    Return do_clever_stuff_with_clipboard($hWnd)
    Case $WM_CONTEXTMENU
    For $n = 0 To $maxip
    If $hWnd = GUICtrlGetHandle($ip[$n]) Then
    ShowMenu($hGui, $ContextMenu, "cInput-" & $n + 1)
    Return 0
    EndIf


    Next
    Case $WM_SETCURSOR
    GUICtrlSetCursor(_WinAPI_GetDlgCtrlID($hWnd), 5);;set Ibeam cursor
    Return 1;;and don't let default windowproc mess things up
    EndSwitch

    ;pass the unhandled messages to default WindowProc
    Return _WinAPI_CallWindowProc($wProcOld, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc ;==>_MyWindowProc

Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

I don't see that problem in this example...

I played with it (your code) and could not break it. Then I moved my co over and then out of the script all together and still had the issue. The more times I right clicked the more time it took for the script to close. It looks like I was doing to many updates by reading INI files. I made some conditions and the script stopped reading as much and it fix my issue.

WOW - with out this code I might have never found that bug. Thanks for all your effort and time on this issue.


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

I played with it (your code) and could not break it. Then I moved my co over and then out of the script all together and still had the issue. The more times I right clicked the more time it took for the script to close. It looks like I was doing to many updates by reading INI files. I made some conditions and the script stopped reading as much and it fix my issue.

WOW - with out this code I might have never found that bug. Thanks for all your effort and time on this issue.

I'm glad you fixed it.

I expect you were doing too much in the message handler. If all the code hadn't been executed before the message handler is called again then you get all sorts of problems.

In some situations I set a global variable in the message handler function and return as soon as possible, then respond to the variable in my main idle loop.


Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

I'm glad you fixed it.

I expect you were doing too much in the message handler. If all the code hadn't been executed before the message handler is called again then you get all sorts of problems.

In some situations I set a global variable in the message handler function and return as soon as possible, then respond to the variable in my main idle loop.

I understand most of what you said. But have yet to grasp the global variable idea. Could you take some more time and show me a breif example of what/how you use that?

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

I understand most of what you said. But have yet to grasp the global variable idea. Could you take some more time and show me a breif example of what/how you use that?

Not the best example but it shows the idea.

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiMenu.au3>
#include <WinAPI.au3>

Opt('MustDeclareVars', 1)

Global $ContextMenu, $CommonMenuItem, $FileMenuItem, $ExitMenuItem
Global $hGui, $cInput, $cInput2, $wProcOld
Global $maxip = 12 - 1
Global $ip[$maxip + 1]

Global $ShowMenu = 0
_Main()

Func _Main()
    Local $wProcNew, $DummyMenu

    $hGui = GUICreate("Type or paste some stuff", 400, 600, -1, -1, $WS_THICKFRAME, -1)

    For $n = 0 To $maxip
    $ip[$n] = GUICtrlCreateInput("", 20, 20 + 25 * $n, 360, 20)
    Next

    GUICtrlCreateLabel("abcd", 1, 1, 30, 18)
    GUICtrlSetCursor(-1, 9)

    $wProcNew = DllCallbackRegister("_MyWindowProc", "ptr", "hwnd;uint;long;ptr")
    $wProcOld = _WinAPI_SetWindowLong(GUICtrlGetHandle($ip[0]), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    For $n = 1 To $maxip
    _WinAPI_SetWindowLong(GUICtrlGetHandle($ip[$n]), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
    Next
    ;_WinAPI_SetWindowLong(GUICtrlGetHandle($cInput3), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew)) and so on

    $DummyMenu = GUICtrlCreateDummy()
    $ContextMenu = GUICtrlCreateContextMenu($DummyMenu)
    $CommonMenuItem = GUICtrlCreateMenuItem("Common", $ContextMenu)
    $FileMenuItem = GUICtrlCreateMenuItem("File", $ContextMenu)
    GUICtrlCreateMenuItem("", $ContextMenu)
    $ExitMenuItem = GUICtrlCreateMenuItem("Exit", $ContextMenu)


    GUISetState(@SW_SHOW)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    GUIDelete($hGui)
    DllCallbackFree($wProcNew)

    ExitLoop
    EndSwitch

    If $ShowMenu <> 0 Then
    ShowMenu($hGui,$ContextMenu,$ShowMenu)
    $ShowMenu = 0
    EndIf

    WEnd


EndFunc ;==>_Main


Func do_clever_stuff_with_clipboard($hWnd)
    Local $sData
    $sData = ClipGet()
    If @error Then Return 0;clip data is not text or clip empty
    ;do whatever
    $sData = StringUpper($sData)
    ;set text
    GUICtrlSetData(_WinAPI_GetDlgCtrlID($hWnd), $sData);or _GUICtrlEdit_SetText($hWnd, $sData)
    Return 1
EndFunc ;==>do_clever_stuff_with_clipboard

; Show a menu in a given GUI window which belongs to a given GUI ctrl
Func ShowMenu($hWnd, $nContextID, $it1)
    GUICtrlSetData($CommonMenuItem, "Common - " & $it1)
    Local $iSelected = _GUICtrlMenu_TrackPopupMenu(GUICtrlGetHandle($nContextID), $hWnd, -1, -1, -1, -1, 2)
    Switch $iSelected
    Case $CommonMenuItem
    ConsoleWrite(GUICtrlRead($cInput) & @CRLF)
    Case $FileMenuItem

    ConsoleWrite("File" & @CRLF)
    Case $ExitMenuItem
    ConsoleWrite("Exit" & @CRLF)
    EndSwitch
EndFunc ;==>ShowMenu

Func _MyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
    Switch $uiMsg
    Case $WM_PASTE
    Return do_clever_stuff_with_clipboard($hWnd)
    Case $WM_CONTEXTMENU
    For $n = 0 To $maxip
    If $hWnd = GUICtrlGetHandle($ip[$n]) Then
    $ShowMenu = $n + 1
                    ConsoleWrite("leaving _MyWindowProc" & @CRLF);shows we are not waiting for response to context menu
    Return 0
    EndIf

    Next
    Case $WM_SETCURSOR
    GUICtrlSetCursor(_WinAPI_GetDlgCtrlID($hWnd), 5);;set Ibeam cursor
    Return 1;;and don't let default windowproc mess things up
    EndSwitch

    ;pass the unhandled messages to default WindowProc
    Return _WinAPI_CallWindowProc($wProcOld, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc ;==>_MyWindowProc

Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

Share this post


Link to post
Share on other sites

Martin - thanks for all your help with this topic - issue is resolved, and I was able to look at your example and understand.

Thanks again


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
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
Sign in to follow this  
Followers 0