Mbee

Melba23: Can I get your help with FileSystemMonitor UDF?

23 posts in this topic

Dear Master @Melba23 ,

I'm trying to use your mods to @seangriffin 's FileSystemMonitor UDF (I found your mods here: FileSystemMonitor UDF partially broken in x64 environment), to try to monitor changes to a specific folder (not Shell modifications, but rather just new file creations by a different process into a single directory).

One requirement of using that UDF is that the user provide a function to handle notification of such changes named "_FileSysMonActionEvent()". The problem I'm having is that this function is never being invoked no matter what new files are created in the directory in question!

The UDF includes a function named "_FileSysMonDirEventHandler()" which is a front end to the user-provided function _FileSysMonActionEvent(). Here's a code snippet from FileSysMonDirEventHandler()...

Func _FileSysMonDirEventHandler()

    Local $aRet, $iOffset, $nReadLen, $tStr, $iNext, $ff

    $aRet = DllCall("User32.dll", "dword", "MsgWaitForMultipleObjectsEx", "dword", 1, "ptr", $pFSM_DirEvents, "dword", 100, "dword", 0x4FF, "dword", 0x6)

    If $aRet[0] = 0 Then
;       misc code...
        _FileSysMonActionEvent(0, DllStructGetData($tFSM_FNI, "Action"), $sFSM_Filename) ; User function called
;       more code...
    Else
        ;; IT ALWAYS GETS HERE ONLY!
    EndIf

    Return True

EndFunc   ;==>_FileSysMonDirEventHandler

I'm too stupid to understand quite what that DllCall is supposed to do, but it's clear that the zero'th element of the return array is never 0, so the user-provided handler function is never called.  Do you have any idea why that's (not) happening?

I realize that you weren't the original or main developer of that UDF, so if you'd prefer that I try to PM or otherwise try to contact @seangriffin instead, please just let me know and that's what I'll try. I'm asking you in this OP because you're amazingly generous to us noobs, and you're here on the forum a lot, and because you're awesome!!

Thanks!

Share this post


Link to post
Share on other sites



Mbee,

Flattery always helps!!!!!

Please post the code you are using so that I can take a look at it. In the meantime I will try and get refamiliarized with the UDF as it is sometime since I last used it.

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

Share this post


Link to post
Share on other sites
Just now, Melba23 said:

Mbee,

Flattery always helps!!!!!

Please post the code you are using so that I can take a look at it. In the meantime I will try and get refamiliarized with the UDF as it is sometime since I last used it.

M23

WOW, and fast response too!

For now, I'm just using your own example GUI for your modifications to that UDF, with a tiny few changes to eliminate the code for Shell monitoring and thus using directory monitoring only.  Here's that code:

#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListviewConstants.au3>
#Include <GuiListView.au3>
#include <WindowsConstants.au3>
#include "FileSystemMonitor_Mod.au3"

dim $msg


; GUI Setup

$main_gui = GUICreate("Shell Notification Monitor (Press ESC to close)", 800, 320, -1, -1, -1, $WS_EX_TOPMOST)
$path_input = GUICtrlCreateInput("Y:\Test Caps\", 10, 10, 320)
$use_path_button = GUICtrlCreateButton("Use Path", 350, 10)
$listview = GUICtrlCreateListView("", 10, 40, 780, 250, $LVS_REPORT)
_GUICtrlListView_SetUnicodeFormat($listview, False)
_GUICtrlListView_InsertColumn($listview, 0, "Type", 200)
_GUICtrlListView_InsertColumn($listview, 1, "Name (Hex)", 200)
_GUICtrlListView_InsertColumn($listview, 2, "Value", 200)
_GUICtrlListView_InsertColumn($listview, 3, "Time", 100)
GUISetState(@SW_SHOW)

; Setup File System Monitoring
_FileSysMonSetup(1, "Y:\Test Caps\")
_FileSysMonSetDirMonPath("Y:\Test Caps\")
; Main Loop

While 1

    ; Handle Directory related events
    _FileSysMonDirEventHandler()

    If $msg = $use_path_button then

        _FileSysMonSetDirMonPath(GUICtrlRead($path_input))
;~         _FileSysMonSetShellMonPath(GUICtrlRead($path_input)) ; Don't monitor shell changes
    EndIf

    If $msg = $GUI_EVENT_CLOSE then

        ExitLoop
    EndIf

    $msg = GUIGetMsg()
WEnd

Exit

Func _FileSysMonActionEvent($event_type, $event_id, $event_value)

    ConsoleWrite($event_type & " - " & $event_id & " - " & $event_value & @CRLF)

    Local $event_type_name
    Local $fs_event = ObjCreate("Scripting.Dictionary")

    Switch $event_type

        Case 0

            $fs_event.item(Hex(0x00000001)) = "file added to the directory|FILE_ACTION_ADDED"
            $fs_event.item(Hex(0x00000002)) = "file removed from the directory|FILE_ACTION_REMOVED"
            $fs_event.item(Hex(0x00000003)) = "file was modified|FILE_ACTION_MODIFIED"
            $fs_event.item(Hex(0x00000004)) = "file was renamed old name|FILE_ACTION_RENAMED_OLD_NAME"
            $fs_event.item(Hex(0x00000005)) = "file was renamed new name|FILE_ACTION_RENAMED_NEW_NAME"

        Case 1

            $fs_event.item(Hex(0x00000001)) = "Non-folder item name changed|SHCNE_RENAMEITEM"
            $fs_event.item(Hex(0x00000002)) = "Non-folder item created|SHCNE_CREATE"
            $fs_event.item(Hex(0x00000004)) = "Non-folder item deleted|SHCNE_DELETE"
            $fs_event.item(Hex(0x00000008)) = "Folder created|SHCNE_MKDIR"
            $fs_event.item(Hex(0x00000010)) = "Folder removed|SHCNE_RMDIR"
            $fs_event.item(Hex(0x00000020)) = "Storage media inserted into a drive|SHCNE_MEDIAINSERTED"
            $fs_event.item(Hex(0x00000040)) = "Storage media removed from a drive|SHCNE_MEDIAREMOVED"
            $fs_event.item(Hex(0x00000080)) = "Drive removed|SHCNE_DRIVEREMOVED"
            $fs_event.item(Hex(0x00000100)) = "Drive added|SHCNE_DRIVEADD"
            $fs_event.item(Hex(0x00000200)) = "Local computer folder shared via the network|SHCNE_NETSHARE"
            $fs_event.item(Hex(0x00000400)) = "Local computer folder not shared via the network|SHCNE_NETUNSHARE"
            $fs_event.item(Hex(0x00000800)) = "Item or folder attributes have changed|SHCNE_ATTRIBUTES"
            $fs_event.item(Hex(0x00001000)) = "Folder content has changed|SHCNE_UPDATEDIR"
            $fs_event.item(Hex(0x00002000)) = "Folder or non-folder has changed|SHCNE_UPDATEITEM"
            $fs_event.item(Hex(0x00004000)) = "Computer disconnected from server|SHCNE_SERVERDISCONNECT"
            $fs_event.item(Hex(0x00008000)) = "System image list image has changed|SHCNE_UPDATEIMAGE"
            $fs_event.item(Hex(0x00010000)) = "Not used|SHCNE_DRIVEADDGUI"
            $fs_event.item(Hex(0x00020000)) = "Folder name has changed|SHCNE_RENAMEFOLDER"
            $fs_event.item(Hex(0x00040000)) = "Drive free space has changed|SHCNE_FREESPACE"
            $fs_event.item(Hex(0x0002381F)) = "SHCNE_DISKEVENTS"
            $fs_event.item(Hex(0x0C0581E0)) = "SHCNE_GLOBALEVENTS"
            $fs_event.item(Hex(0x7FFFFFFF)) = "SHCNE_ALLEVENTS"
            $fs_event.item(Hex(0x80000000)) = "SHCNE_INTERRUPT"
    EndSwitch

    if StringLen($fs_event.item(Hex(Int($event_id)))) > 0 Then

        $event_type_name = StringSplit($fs_event.item(Hex(Int($event_id))), "|")
        $event_type_name[2] = $event_type_name[2] & "(" & $event_id & ")"

        _GUICtrlListView_InsertItem($listview, $event_type_name[1], 0)
        _GUICtrlListView_SetItemText($listview, 0, $event_type_name[2], 1)
        _GUICtrlListView_SetItemText($listview, 0, $event_value, 2)
        _GUICtrlListView_SetItemText($listview, 0, @HOUR & ":" & @MIN & ":" & @SEC, 3)
    EndIf
EndFunc

It's virtually identical to your own example code...

 

Share this post


Link to post
Share on other sites

Mbee,

Using that code pointed at one of my own folders produces the expected messages in the SciTE console when I add/delete/rename the files within it.  Did you change anything in the UDF itself?

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

Share this post


Link to post
Share on other sites

No, I made no changes to the modified UDF you posted. But not only do I never get any messages to the console, I never see anything in the example GUI either.

Hmmm....

I'm currently running 64-bit Win 7 Pro with 64-bit AutoIt (latest official release). I'm afraid I don't have any computers running 32-bit Windows, but I can try it under 64-bit Win 10 Pro. What do you think?

 

Share this post


Link to post
Share on other sites

Are you sure you disabled Shell monitoring, as I did in the example code I posted above?  When I had Shell monitoring enabled, I saw all those changes. But with directory monitoring only, I see nothing...

 

Share this post


Link to post
Share on other sites

(I have to take off for a while, so I might not be able to respond for a time...)

 

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

Mbee,

Quote

Are you sure you disabled Shell monitoring

Yes - and that is why you get nothing in the GUI as that displays the "shell" events while the "directory" changes appear in the console. I am running 32-bit Windows so it might well be your 64-bit setup which is causing the problem - although I thought that was sorted in the thread to which you linked.

Let me know when you return and are In a position to resume the thread.

M23

Edit: Corrected erroneous statement above. I am working on new Switch structure to see if it gets around the 32/64 problem.

Edited by Melba23

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

Share this post


Link to post
Share on other sites

#10 ·  Posted

Hi, Melba23!

Sorry for the delay in responding.  Part of it was that I absolutely had to watch the Cubs win the world series for the first time since 1908! :drool:  Talk about being gobsmacked!!

 

Anyway, I've modified the example code to import and use a modified version of a UDF that let's me simultaneously display and log status messages so that I don't have to rely on the console to see what's going on. I've attached a zip file with the source files and the output log file. Before running the result, I uninstalled AutoIt and then re-installed it for 32-bit usage only.  (Installing a new copy of 32-bit Windows was far too troublesome a task to try to that as well).

What the log tells me is this: Although the directory monitoring detects something going on when a new file is created in the test directory, the information returned is extremely minimal and so is quite useless for my needs.  I at least need to know the filename(s) of any new files created.  This noob's barely-educated opinion is that even the modified UDF just isn't what it's cracked up to be, but revising it to usefully monitor file creation events even in a single directory is beyond my abilities...

 

 

ExampleCode.zip

Share this post


Link to post
Share on other sites

#11 ·  Posted

Mbee,

Glad you enjoyed the baseball.

I get lots of information returned from the original UDF - here is an example of what I get in the GUI and console:

file was modified - FILE_ACTION_MODIFIED(3) - test.fil - 17:33:30
file was renamed old name - FILE_ACTION_RENAMED_OLD_NAME(4) - test.fil - 17:33:43
file was renamed new name - FILE_ACTION_RENAMED_NEW_NAME(5) - new_test.fil - 17:33:43
file was modified - FILE_ACTION_MODIFIED(3) - new_test.fil - 17:33:44
file removed from the directory - FILE_ACTION_REMOVED(2) - new_test.fil - 17:33:54

That little lot resulted from renaming an existing file, renaming it again, and then finally deleting it. Seems pretty comprehensive to me.

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

Share this post


Link to post
Share on other sites

#12 ·  Posted

Interesting!  I'm gonna try using the original UDF now, and will report back..

 

Share this post


Link to post
Share on other sites

#13 ·  Posted

Mbee,

Try using this modified Switch structure to read the UDF return values:

#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListviewConstants.au3>
#Include <GuiListView.au3>
#include <WindowsConstants.au3>
#include "fred4.au3"

dim $msg


; GUI Setup

$main_gui = GUICreate("Shell Notification Monitor (Press ESC to close)", 800, 320, -1, -1, -1, $WS_EX_TOPMOST)
$path_input = GUICtrlCreateInput("", 10, 10, 320)
$use_path_button = GUICtrlCreateButton("Use Path", 350, 10)
$listview = GUICtrlCreateListView("", 10, 40, 780, 250, $LVS_REPORT)
_GUICtrlListView_SetUnicodeFormat($listview, False)
_GUICtrlListView_InsertColumn($listview, 0, "Type", 200)
_GUICtrlListView_InsertColumn($listview, 1, "Name (Hex)", 200)
_GUICtrlListView_InsertColumn($listview, 2, "Value", 200)
_GUICtrlListView_InsertColumn($listview, 3, "Time", 100)
GUISetState(@SW_SHOW)

; Setup File System Monitoring
;_FileSysMonSetup(3, "M:\Program\Au3 Scripts", "M:\")
_FileSysMonSetup(1, "M:\Program\Au3 Scripts")

; Main Loop

While 1

    ; Handle Directory related events
    _FileSysMonDirEventHandler()

    If $msg = $use_path_button then

        _FileSysMonSetDirMonPath(GUICtrlRead($path_input))
;~         _FileSysMonSetShellMonPath(GUICtrlRead($path_input)) ; Don't monitor shell changes
    EndIf

    If $msg = $GUI_EVENT_CLOSE then

        ExitLoop
    EndIf

    $msg = GUIGetMsg()
WEnd

Exit

Func _FileSysMonActionEvent($event_type, $event_id, $event_value)

    ConsoleWrite($event_type & " - " & $event_id & " - " & $event_value & @CRLF)

    Local $sEvent = ""

    Switch $event_type

        Case 0 ; Directory event

            Switch $event_id
                Case 1
                    $sEvent = "file added to the directory|FILE_ACTION_ADDED"
                Case 2
                    $sEvent = "file removed from the directory|FILE_ACTION_REMOVED"
                Case 3
                    $sEvent = "file was modified|FILE_ACTION_MODIFIED"
                Case 4
                    $sEvent = "file was renamed old name|FILE_ACTION_RENAMED_OLD_NAME"
                Case 5
                    $sEvent = "file was renamed new name|FILE_ACTION_RENAMED_NEW_NAME"
            EndSwitch

        Case 1 ; Shell event

            Switch $event_id
                Case 0x00000001
                    $sEvent = "Non-folder item name changed|SHCNE_RENAMEITEM"
                Case 0x00000002
                    $sEvent = "Non-folder item created|SHCNE_CREATE"
                Case 0x00000004
                    $sEvent = "Non-folder item deleted|SHCNE_DELETE"
                Case 0x00000008
                    $sEvent = "Folder created|SHCNE_MKDIR"
                Case 0x00000010
                    $sEvent = "Folder removed|SHCNE_RMDIR"
                Case 0x00000020
                    $sEvent = "Storage media inserted into a drive|SHCNE_MEDIAINSERTED"
                Case 0x00000040
                    $sEvent = "Storage media removed from a drive|SHCNE_MEDIAREMOVED"
                Case 0x00000080
                    $sEvent = "Drive removed|SHCNE_DRIVEREMOVED"
                Case 0x00000100
                    $sEvent = "Drive added|SHCNE_DRIVEADD"
                Case 0x00000200
                    $sEvent = "Local computer folder shared via the network|SHCNE_NETSHARE"
                Case 0x00000400
                    $sEvent = "Local computer folder not shared via the network|SHCNE_NETUNSHARE"
                Case 0x00000800
                    $sEvent = "Item or folder attributes have changed|SHCNE_ATTRIBUTES"
                Case 0x00001000
                    $sEvent = "Folder content has changed|SHCNE_UPDATEDIR"
                Case 0x00002000
                    $sEvent = "Folder or non-folder has changed|SHCNE_UPDATEITEM"
                Case 0x00004000
                    $sEvent = "Computer disconnected from server|SHCNE_SERVERDISCONNECT"
                Case 0x00008000
                    $sEvent = "System image list image has changed|SHCNE_UPDATEIMAGE"
                Case 0x00010000
                    $sEvent = "Not used|SHCNE_DRIVEADDGUI"
                Case 0x00020000
                    $sEvent = "Folder name has changed|SHCNE_RENAMEFOLDER"
                Case 0x00040000
                    $sEvent = "Drive free space has changed|SHCNE_FREESPACE"
                Case 0x0002381F
                    $sEvent = "SHCNE_DISKEVENTS"
                Case 0x0C0581E0
                    $sEvent = "SHCNE_GLOBALEVENTS"
                Case 0x7FFFFFFF
                    $sEvent = "SHCNE_ALLEVENTS"
                Case 0x80000000
                    $sEvent = "SHCNE_INTERRUPT"
            EndSwitch
    EndSwitch

    if $sEvent Then

        $event_type_name = StringSplit($sEvent, "|")
        $event_type_name[2] = $event_type_name[2] & "(" & $event_id & ")"

        _GUICtrlListView_InsertItem($listview, $event_type_name[1], 0)
        _GUICtrlListView_SetItemText($listview, 0, $event_type_name[2], 1)
        _GUICtrlListView_SetItemText($listview, 0, $event_value, 2)
        _GUICtrlListView_SetItemText($listview, 0, @HOUR & ":" & @MIN & ":" & @SEC, 3)

        ConsoleWrite($event_type_name[1] & " - " & $event_type_name[2] & " - " & $event_value & " - " & @HOUR & ":" & @MIN & ":" & @SEC & @CRLF)

    EndIf
EndFunc

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

Share this post


Link to post
Share on other sites

#14 ·  Posted

Well, I see no difference in the results between the original UDF by @seangriffin and the version you modified.  I'm still getting no useful information, and the log files are identical (if you ignore the time stamps).

I wonder if the difference really is 32 versus 64 bits or if there's some other difference in our systems...

Share this post


Link to post
Share on other sites

#15 ·  Posted

Mbee,

Add ConsoleWrite($event_id & @CRLF) just after the Case 0 ; Directory event line and see if you actually get a return value - or even arrive at that point in the script.

M23

 


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

Share this post


Link to post
Share on other sites

#16 ·  Posted (edited)

Let's ignore my Post # 14, and get back in sync. With your new code, I *am* getting more info!  Hooray!!

I haven't seen filenames yet, however -- But please gimme a moment to check things out better...

ETA: I have indeed seen filenames, but bear with me a while longer...

 

 

Edited by Mbee

Share this post


Link to post
Share on other sites

#17 ·  Posted

You've made a big improvement, Melba, thanks!  In 32-bit mode, I saw two "File Added" events with the same filename even though only a single file was created (saved there from a text editor).  That should be easy to deal with, however: I'll just code my stuff such that it ignores File Added with identical filenames. 

But unfortunately, when I compiled and executed the .exe with ...

#AutoIt3Wrapper_UseX64=Y

... it went back to showing nothing again. :'(

 

Share this post


Link to post
Share on other sites

#18 ·  Posted

Mbee,

have you added the line I suggested in post #15 above? What are you seeing in the console?

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

Share this post


Link to post
Share on other sites

#19 ·  Posted

Sorry for the wait...

I think I may have failed to communicate the results in my previous post sufficiently well. Here's the actual status after I incorporated your new code:

 If I compile the code and run the resulting exe such that the first line reads:

#AutoIt3Wrapper_UseX64=N

Then everything works great!  Everything.  I'm getting all the necessary info - including the additional line of code from Post #15 (although I changed it from "ConsoleWrite" to a write to a log file instead so I could more easily review the results).

But if the first line reads:

#AutoIt3Wrapper_UseX64=Y

Then I get nothing except the titles.  No other display or output anywhere -- not even from the extra ConsoleWrite (actually a Write  to log file) line.  Bummerville.

Now, that might have something to do with the fact that I re-installed AutoIt and specified 32-bit only.  So I'm about to uninstall AutoIt and re-install it for 64-bit mode again, then I'll report back...

Share this post


Link to post
Share on other sites

#20 ·  Posted (edited)

Unsurprisingly, it didn't make any difference that I re-installed AutoIt with 64-bit defaults.  The #AutoIt3Wrapper directive must over-ride the defaults.  I still get nothing but titles and headers if I set UseX64=Y.

ETA: It also doesn't matter whether I use the original UDF or your modified UDF...

Edited by Mbee

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