WildByDesign Posted Saturday at 02:41 PM Posted Saturday at 02:41 PM ACL Viewer (WildByDesign/ACLViewer: ACL Viewer for Windows) This would not have been possible without the amazing support from this forum. I received so much great help and I am thankful. I wanted to give back to the community by sharing what I have come up with. I overcame a lot of challenges. So I am hoping that this (or parts of this) may benefit others. I have other AutoIt-created programs on my GitHub also which I will likely share here in the forum when I have more time to get all the information together. Screenshot: Features: automatic dark mode / light mode depending on system theme settings treeview for selecting files/folders for viewing ACLs listview for displaying parsed ACEs custom ACCESS_MASK parser listviews for displaying permissions with checkboxes Includes: TreeListExplorer by @Kanashius DarkMode UDF originally by @NoNameCode, updated by @argumentum GUIFrame UDF by @Melba23 ACL Permissions UDF originally by @FredAI, updated by @AdamUL There are other functions within the code that I received incredible help on from the forum and I added credits and links within the code. argumentum and Kanashius 2
Nine Posted Saturday at 05:03 PM Posted Saturday at 05:03 PM Got this error in GUIFrame : WildByDesign 1 “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Debug Messages Monitor UDF Screen Scraping Multi-Threading Made Easy
argumentum Posted Saturday at 05:30 PM Posted Saturday at 05:30 PM ... #include <Misc.au3> Global $isDarkMode = False Global $sRet, $aRet, $newItem, $oldItem, $isFolder, $aUniques, $TV_Icons #include "include\GUIFrame.au3" ... would solve that. But also: ;~ isDarkMode() ;~ Func isDarkMode() ;~ Global $isDarkMode = _WinAPI_ShouldAppsUseDarkMode() ;~ EndFunc ;==>isDarkModeisDarkMode() ;------------------------------------------------------------- ;~ Global $isDarkMode = isDarkMode() ;~ Func isDarkMode() ;~ Return _WinAPI_ShouldAppsUseDarkMode() ;~ EndFunc ;==>isDarkMode ;------------------------------------------------------------- Global $isDarkMode = _WinAPI_ShouldAppsUseDarkMode() ;------------------------------------------------------------- this could be simplified. Using #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7 would force you to confront these things. At one year old ( you joined less than a year ago ), your script is better than I ever did at 1 year old. Thanks for sharing @WildByDesign WildByDesign 1 Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
WildByDesign Posted Saturday at 09:11 PM Author Posted Saturday at 09:11 PM 4 hours ago, Nine said: Got this error in GUIFrame : Thank you for mentioning this. I will have it fixed in the next build. 3 hours ago, argumentum said: ... #include <Misc.au3> Global $isDarkMode = False Global $sRet, $aRet, $newItem, $oldItem, $isFolder, $aUniques, $TV_Icons #include "include\GUIFrame.au3" ... would solve that. This is really neat. I am still very new to AutoIt, so I had never thought of adding some Global variables before specific includes. It works great, thank you. It changed my way of thinking as well since being a script, it goes in order line by line. That way it is declared before the other include is loaded. This seems so simple, yet I did not know. So I appreciate it. Also thank you for the simplification of the dark mode function, that is incredible. This makes me excited to learn more about AutoIt and improve my abilities. argumentum 1
Nine Posted Saturday at 10:47 PM Posted Saturday at 10:47 PM (edited) Personally I dislike declaring variables between includes. It should be declared inside the included file. All UDF should be auto-sufficient. No offense. edit : if you need to share a global variable between UDF, the source UDF should provide a function to retrieve that variable instead of relying on the knowledge of a variable name... Edited Saturday at 10:53 PM by Nine WildByDesign 1 “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Debug Messages Monitor UDF Screen Scraping Multi-Threading Made Easy
argumentum Posted Sunday at 12:13 AM Posted Sunday at 12:13 AM 1 hour ago, Nine said: Personally I dislike declaring variables between includes. 2 hours ago, WildByDesign said: I am still very new to AutoIt ... today I was telling a neighbor about a project her husband was doing and told her about material aging and fatigue but that I don't correct people that much anymore because with time they end up learning and doing, one failure at the time The WiKi as this "Best coding practices" and is a good read. The way that I lean a lot is reading and messing with the UDFs that come with AutoIt. Still I read old code of mine and ask myself "why ?, why this way !" because with time I learned to better structure code. The kind of thing that people like @Nine say. Your current version is functional and that is good. If you code it as if it was to be a UDF that you later add a GUI to, better WildByDesign 1 Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
WildByDesign Posted Sunday at 12:55 AM Author Posted Sunday at 12:55 AM 40 minutes ago, argumentum said: with time they end up learning and doing, one failure at the time I agree 100%. And that is probably the way that I have learned the most at every aspect of life. Taking things apart, breaking things and figuring it out later. I will definitely read that Best coding practices tonight. Cheers! argumentum 1
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