Needed a way to store global temporary & permanent information and came up with this.
This is inspired by NodeJS's store and store2 packages, as well as W3 specs' localStorage and sessionStorage, offering multiple ways of usage.
This is not related to any browser's storage, nor will allow you to access or modify browsers storage - although this is possible and not a hard task, this is not what this UDF is intended to do.
This UDF offers functions for temporary storage (that gets cleaned up once the application is shutdown) that is kept on memory using ScriptingDictionary, as well as for permanent storage, that is saved on the harddisk as an encrypted file.
sessionStorage (temporary storage)
It's useful to keep application state and temporary settings accessible by any part of your script (although it could also be done with a global variable, I still prefer this method).
You have multiple ways, at your choice, to:
; add or modify a key sessionStorage("foo", "bar") store("foo", "bar") sessionStorage_set("foo", "bar") sessionStorage_setItem("foo", "bar") ; read a key (returns false if key does not exist) $read = sessionStorage("foo") $read = store("foo") $read = sessionStorage_get("foo") $read = sessionStorage_getItem("foo") ; delete a key sessionStorage_remove("foo") ; delete all keys sessionStorage_clear() sessionStorage_clearAll() localStorage (permanent storage)
It's useful to store user-defined settings.
; initialize ; this is optional, but allows you to control ; how things are going to be saved localStorage_startup([file where you want the settings to be saved], [crypt password]) ; by default, if not supplied, if supplied the "Default" keyword (or if you dont initialize), ; the file will be a random-named file (based on @ScriptFullPath) at user's %APPDATA% ; and the password will also be based on @ScriptFullPath ; you can set only the crypt password if you want: ; localStorage_startup(Default, "mypassword") ; the usage is the same as sessionStorage ; add or modify a key localStorage("foo", "bar") store2("foo", "bar") ; notice the '2' localStorage_set("foo", "bar") localStorage_setItem("foo", "bar") ; read a key (returns false if key does not exist) $read = localStorage("foo") $read = store2("foo") $read = localStorage_get("foo") $read = localStorage_getItem("foo") ; delete a key localStorage_remove("foo") ; delete all keys localStorage_clear() localStorage_clearAll() Download
The software automatically helps you turn off annoying IDM Fake Serial notifications. If you have searched for many other solutions as still not feasible then this software is for you. It does not interfere with the system, only act on your behalf !
Full detail and download here (EXE & AU3 format) <snip>
Is there any way to change chrome settings from Auto-it. I would like to change back and forth, between "Allow Site to show POP-ups" and "Do not Allow Site to show POP-up"?
I'm trying to automate the process of configuring the three McAfee settings seen in the image I've attached (Host IPS, Network IPS and Firewall). Clicking one of them toggles the setting and closes the menu. I want them all OFF. This script will be used on different computers so the settings might be have different initial setups.
This is my first time using AutoIt and I have very limited coding experience--mostly MATLAB. Please excuse any lack of knowledge or terminology.
So far my code is able to
1. Find the visible McAfee icon in the system tray.
2. Click the icon.
3. Send "Q" to open up the Quick Settings menu.
4. Toggle settings blindly using keystrokes.
The problem I'm having is I don't know how to "read" the status of the setting before toggling it. This means I might be switching it from Off to On by mistake,
when I should really just leave it alone.
I'm wondering a couple of things.
1. Is there an easy way to "read" the status of the setting? This would solve the problem. Part of the challenge with this overall assignment is that there doesn't
seem to be any sort of "control" built into these menus. In other words, the only thing that changes in Au3Info when you hover over different options is the
coordinates of the mouse--there aren't any unique control IDs or texts to my knowledge that differentiate between different settings or menus. I don't know how to search for text in a menu and get an index or anything like that. I've attached my code at the bottom and commented-out two ideas I had for reading the status and acting accordingly after "Send (Q)". Neither of which were fruitful.
2. Is there an alternative to the overall method I've chosen that is simpler and more robust? It seems like there must be an alternative path to these settings besides the system tray, but I don't know of any such paths. The final script is going to be used on a number of computers which may have the McAfee icon either hidden or visible in the system tray, but currently my script only works if it is visible. I haven't figured out how to access hidden icons with mouse clicks yet.
I should also mention that most of my code for step 1 (find the McAfee icon) comes from something I found online. I've stared at it for a while, and I think I know how it works, but I wouldn't have known those GUI commands existed and wouldn't have been able to write that bit of code on my own. I don't want you to overestimate my understanding of AutoIt. Sorry for the long post, just wanted to provide all the relevant info.
Any advice you can offer would be greatly appreciated! Thanks in advance.
#cs AutoIt McAfee disable #ce #Include <GuiToolBar.au3> #Include <GUIConstants.au3> Local $Array For $Element In $Array Global $hSysTray_Handle, $iSystray_ButtonNumber Global $sToolTipTitle = "McAfee status: OK" ; <<<<<<<<<<<<<<<< Enter some tooltip text for the icon you want here $iSystray_ButtonNumber = Get_Systray_Index($sToolTipTitle) If $iSystray_ButtonNumber = 0 Then MsgBox(16, "Error", "Icon not found in system tray") Exit Else Sleep(500) _GUICtrlToolbar_ClickButton($hSysTray_Handle, $iSystray_ButtonNumber, "right") EndIf Send( "Q" ) ;$DropDownHandle = Controlgethandle( "", "Host IPS - on", "") ;$text = ControlGetText( "", "Host IPS - on", "") ;If "Host IPS - on" = 1 Then ; Send( $Element ) ;EndIf Next Exit ;........ Func Get_Systray_Index($sToolTipTitle) ; Find systray handle $hSysTray_Handle = ControlGetHandle('[Class:Shell_TrayWnd]', '', '[Class:ToolbarWindow32;Instance:1]') If @error Then MsgBox(16, "Error", "System tray not found") Exit EndIf ; Get systray item count Local $iSystray_ButCount = _GUICtrlToolbar_ButtonCount($hSysTray_Handle) If $iSystray_ButCount = 0 Then MsgBox(16, "Error", "No items found in system tray") Exit EndIf ; Look for wanted tooltip For $iSystray_ButtonNumber = 0 To $iSystray_ButCount - 1 If StringInStr(_GUICtrlToolbar_GetButtonText($hSysTray_Handle, $iSystray_ButtonNumber), $sToolTipTitle) = 1 Then ExitLoop Next If $iSystray_ButtonNumber = $iSystray_ButCount Then Return 0 ; Not found Else Return $iSystray_ButtonNumber ; Found EndIf EndFunc
I have searched and searched but cannot find where these are stored. I have scripts to install printers and can even set on as a default. I have it running silent as well. What I need to be able to do is to set the printer to not print out 2 sided and when it is a color printer have it set to print black and white by default.
Currently I have tried rewriting the driver with manufacture utilities but this causes the driver to no longer be signed. Also, it is acting up in the 32bit OSs. If I can just use the standard drivers from the manufacturer and set the defaults as noted above I would be set.
Anyone know where these settings are in the registry/file/limbo/morodoor? If not, anyone know what is needed to make it happen in the background?
With time I am sure I can bring up the dialog box, count the tabs and spaces and make it a series of steps that show but I want no user interaction.