Jump to content

Best practices when storing variables


 Share

Recommended Posts

Hi,

I wrote a series of scripts that write and read values to the registry.  This seems good until another user logs onto the computer and the values are no longer accesible since they are stored in the HKCU hive.  I didn't want to create the key in HKLM because I dont want to add #requireadmin.  I managed to write a work around, but its more of a bandaid.  I'm considering replacing all of the reg write and reads with INI write/read functions and storing the INI somewhere in C:UsersPublic.  The registry writes and reads occur at every login and computer unlock (called from a scheduled task) and I wasn't sure if wrinting to a INI file that frequently would cause any problems.

Basically, I'm asking what are best practices when storing varialbes for scripts that need to read /write values as well as being accessible for all users without full administrator rights.

Link to comment
Share on other sites

Interesting idea with the registry, I may play around with that.

I would guess you can just use a file(s) and if needed hide it away in C:Windows or something.

Also I did a lot of registry work recently and made up something that can copy HKCU entries to other users or to the default user (so all new profiles get the settings)

Mind sharing a few snippets of code on how you are assigning values to variables and then push/pulling them to registry?

Link to comment
Share on other sites

If it should be available to all users how about writing the Ini file to C:UsersAll Users?

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.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 (NEW 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

 

Link to comment
Share on other sites

I have 4 scripts.  Installation script, scipt that runs at startup or computer unlock, and two others. 

The installer creates a key in the registry and assignes a value poinitng to the installation source.

RegWrite($RegistryKey, "InstallationSource", "REG_SZ", $InstallationSource)

It also imports a xml schedule task to run officecheck.exe (just the name I gave my script) at each startup and unlock, then runs officecheck so it populates other vaues in the $RegistryKey location.  a few examples below.

RegWrite($RegistryKey, "External IP", "REG_SZ", $PublicIP)
RegWrite($RegistryKey, "Office", "REG_SZ", $arrReadOfficeList[$i])
RegWrite($RegistryKey, "IP 1", "REG_SZ", @IPAddress1)

 

Dim $InstallationSource = RegRead($RegistryKey, "InstallationSource") ;###Make sure this key is created by the installer

 

When another user logs in, the key created by the installer is no longer available.  I have error handling so the user gets notification that the key is missing and it attempts to re-install which works and all, but I dont like that method.  I rather the values to be availabe for all users and to not have potential different values for multiple users.

Link to comment
Share on other sites

Ini file is probably your best option at this point, keep the ini file in the folder with the script, or somewhere that everyone that logs on has access to, and read/write your values in there.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...