PINTO1927 Posted June 16, 2016 Posted June 16, 2016 Hi guys, through a script, a button refers me content in a txt file. You can have a MsgBox if this file is modified the content?
Moderators Melba23 Posted June 16, 2016 Moderators Posted June 16, 2016 PINTO1927, Do you mean you are reading the content of the file and wish to see if it has changed, or do you want to find out if the file has changed without reading its content? If the former, then a simple comparison to a stored version of the content should suffice. If the latter, then I have found seangriffin's FileSystemMonitor UDF to work well. M23 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
PINTO1927 Posted June 17, 2016 Author Posted June 17, 2016 I developed a simple program. This program is present in a shared and is used by various people. They open it in the form of shortcut on your desktop. Through a button that reads the txt files, leave notes that each one can read in the form of MsgBox. In the case in which the txt file is changed I would need that the program writing a MsgBox to update any user.
water Posted June 17, 2016 Posted June 17, 2016 On startup of the script I would read the modification date/time of the file and store it in a variable. Use AdlibRegister to register a function that is called every x seconds or minutes. This function would read the modification date/time of the file and if different to the original date/time popup the MsgBox. But the solution you are looking for depends on how fast the users need to be informed about a change. PINTO1927 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
PINTO1927 Posted June 17, 2016 Author Posted June 17, 2016 thanks, you can provide a simple example of AdlibRegister .. The need to inform users should be instant
water Posted June 17, 2016 Posted June 17, 2016 (edited) This example takes no longer than 1/4 second to inform you when the file has changed. #include <Array.au3> Global $sFileToCheck = "C:\temp\test.txt" Global $bFileChanged = False Global $sFileDateTime = _ArrayToString(FileGetTime($sFileToCheck)) AdlibRegister("_CheckFile", 250) While 1 Sleep(10) If $bFileChanged Then MsgBox(0, "Info", "File has changed") $sFileDateTime = _ArrayToString(FileGetTime($sFileToCheck)) $bFileChanged = False EndIf WEnd Func _CheckFile() If $sFileDateTime <> _ArrayToString(FileGetTime($sFileToCheck)) Then $bFileChanged = True EndFunc ;==>_CheckFile Edited June 17, 2016 by water PINTO1927 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
water Posted June 17, 2016 Posted June 17, 2016 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
PINTO1927 Posted June 17, 2016 Author Posted June 17, 2016 how could I put this script in my program? It is structured in this way .. GUISetState(@SW_SHOW, $Form) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case... Case... Case... EndSwitch Wend
water Posted June 17, 2016 Posted June 17, 2016 (edited) Something like this: #include <Array.au3> Global $sFileToCheck = "C:\temp\test.txt" Global $bFileChanged = False Global $sFileDateTime = _ArrayToString(FileGetTime($sFileToCheck)) AdlibRegister("_CheckFile", 250) ; GUI creation etc goes here GUISetState(@SW_SHOW, $Form) While 1 If $bFileChanged Then MsgBox(0, "Info", "File has changed") $sFileDateTime = _ArrayToString(FileGetTime($sFileToCheck)) $bFileChanged = False EndIf $nMsg = GUIGetMsg() Switch $nMsg Case... Case... Case... EndSwitch WEnd Func _CheckFile() If $sFileDateTime <> _ArrayToString(FileGetTime($sFileToCheck)) Then $bFileChanged = True EndFunc ;==>_CheckFile Edited June 17, 2016 by water Homeseer666 1 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now