IDE: VS Code The main purposes of the code:
- be able to edit file in the directory with the main.py;
- be able to edit register by adding keys, giving them a description and deleting them
import shutil
import os
import argparse
import winreg as wrg
def directory(dir_name):
if (dir_name == 'HKEY_CLASSES_ROOT'):
location = wrg.HKEY_CLASSES_ROOT
elif (dir_name == 'HKEY_CURRENT_USER'):
location = wrg.HKEY_CURRENT_USER
elif (dir_name == 'HKEY_LOCAL_MACHINE'):
location = wrg.HKEY_LOCAL_MACHINE
elif (dir_name == 'HKEY_USERS'):
location = wrg.HKEY_USERS
elif (dir_name == 'HKEY_CURRENT_CONFIG'):
location = wrg.HKEY_CURRENT_CONFIG
return location
def printf(args):
file = open(file_name, "w+")
file.write(text)
file.close()
def read(args):
file = open(file_name, "r+")
print(file.read())
file.close()
def copy(args):
shutil.move(file_name, text)
def remove(args):
os.remove(file_name)
def create_key(args):
open = wrg.OpenKeyEx(directory(register_folder),
inner_reg_folder)
key = wrg.CreateKey(open, file_name)
if key:
wrg.CloseKey(key)
def print_key(args):
open = wrg.OpenKeyEx(directory(register_folder), inner_reg_folder) # inner_reg_folder)
key = wrg.CreateKey(open, file_name)
wrg.SetValueEx(key, text, 0, wrg.REG_SZ, register_folder)
if key:
wrg.CloseKey(key)
#print(directory(register_folder))
#print(inner_reg_folder)
def del_key(args):
open = wrg.OpenKeyEx(directory(register_folder), inner_reg_folder)
key = wrg.CreateKey(open, file_name)
del_key = wrg.DeleteKey(key, "")
if key:
wrg.CloseKey(key)
parser = argparse.ArgumentParser()
parser.add_argument('command')
parser.add_argument('file_name')
parser.add_argument("--text")
parser.add_argument("--register_folder")
parser.add_argument("--inner_reg_folder")
args = parser.parse_args()
command = args.command
file_name = args.file_name
text = args.text
register_folder = args.register_folder
inner_reg_folder = args.inner_reg_folder
commands = {
'print': printf,
'read': read,
'copy': copy,
'remove': remove,
'create_key': create_key,
'print_key': print_key,
'delete_key': del_key
}
result = commands[command]
result(args)
Code works almost fine, but if I try to use other folder than HKEY_LOCAL_MACHINE, my code does not work anymore. An example: If I write the Command like like this, everything works fine:
python3 main.py print_key MyKey1 --text please_work --register_folder HKEY_LOCAL_MACHINE --inner_reg_folder SOFTWARE
But i try any other HKER folder, such as:
python3 main.py print_key MyKey1 --text please_work --register_folder HKEY_CURRENT_USER --inner_reg_folder Software
Nothing works at all