Найти - Пользователи
Полная версия: Python 3 работа с реестром Windows
Начало » Python для новичков » Python 3 работа с реестром Windows
1
OzMod
Помогите как добавить в реетр запись..
в моем случая нужно добавить:
 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"RecycleBinDrives"=dword:ffffffff
зарание спасибо !
PEHDOM
ну есть _winreg для второй и winreg для 3-й ветки,
https://docs.python.org/2/library/_winreg.html
https://docs.python.org/3.1/library/winreg.html
в нем примерно так
 keyVal = r'Software\Microsoft\Internet Explorer\Main'
try:
    key = OpenKey(HKEY_CURRENT_USER, keyVal, 0, KEY_ALL_ACCESS)
except:
    key = CreateKey(HKEY_CURRENT_USER, keyVal)
SetValueEx(key, "Start Page", 0, REG_SZ, "http://http://python.su/")
CloseKey(key)

есть win32api: http://docs.activestate.com/activepython/2.4/pywin32/win32api.html
там куча фукций начинающихся нв Reg… Ищите то что вам нужно
OzMod
PEHDOM
У меня Windows 10
Вот код при выполнении выдаёт ошибку доступа..
 from winreg import *
keyVal = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer"
try:
    key = OpenKey(HKEY_CURRENT_USER, keyVal, 0, KEY_ALL_ACCESS)
except:
    key = CreateKey(HKEY_CURRENT_USER, keyVal)
SetValueEx(key, "RecycleBinDrives", 0, REG_DWORD, 4294967295)
CloseKey(key)
После компиляции запускаю, под правами Администратора все работает нормально!
Собственно вопрос: КАК ПОДКЛЮЧИТЬ МАНИФЕСТ “АДМИНИСТРАТОРА” ПО УМОЛЧАНИЮ, ДЛЯ ВЫПОЛНЕНИЯ СКРИПТА!?
PEHDOM
OzMod
После компиляции запускаю,
Вы компилируете cx-freeze-ом или py2exe ?
Если нужно что бы py2exe собрал exe файл требующий запуск с правами администратора, добавить uac_info:
...

windows=[{
"script":"myfile.py",
"uac_info": "requireAdministrator"
}],
про cx-freeze не скажу.

OzMod
Собственно вопрос: КАК ПОДКЛЮЧИТЬ МАНИФЕСТ “АДМИНИСТРАТОРА” ПО УМОЛЧАНИЮ, ДЛЯ ВЫПОЛНЕНИЯ СКРИПТА!?
так у вас скрипт или скомпилированый бинарник?
Если вы сздаете свой модуль ака “built distribution” тогда вам сюда.
https://docs.python.org/3/distutils/builtdist.html
Starting with Python 2.6, bdist_wininst supports a –user-access-control option. The default is ‘none’ (meaning no UAC handling is done), and other valid values are ‘auto’ (meaning prompt for UAC elevation if Python was installed for all users) and ‘force’ (meaning always prompt for elevation).

А вообще можно сделать “ход конем” если вам не нужно чтобы вся программа запускалась as Administrator. Можно огранизовать запуск еще одного экземпляра основного приложения с параметрами с повышением привилегий. Допустим, у вас есть пару-тройку простых действий, которые нужно выполнять с правами администратора. Забейте для них параметры командной строки вашего же приложения и на запуске проверяйте их наличие. Получив какой-либо из этих параметров, выполните соответствующее действие и завершите работу. Код остается в рамках одного приложения, да и реализуется все просто.
как запустить екзешник или сам себя(если у вас .py) с повышение прав можно прочитать тутт http://python.su/forum/post/175753/
можно также использовать subprocess для езешника
  import subprocess
retcode = subprocess.call(["myfile.exe"], shell=True)
Главное указать shell=True, без этого не будет показано предложение пользователю.


OzMod
PEHDOM
Я компилирую когда в PyInstaller и иногда cx-freeze
PEHDOM
OzMod
Я компилирую когда в PyInstaller и иногда cx-freeze
тогда ИМХО вам стоит присмотреться к “ходу конем” он универсальный и независит от того чем вы компилируете
OzMod
PEHDOM
Спасибо это помогло:
 import win32api
procID = win32api.ShellExecute(0,"runas", "RegOK.exe", "/admin", None, 1)
Ты супер, Спасибо за помощощь!!!
————————————————————————————————–
OzMod
PEHDOM
Помогите пожалуйста как проверить
1) Существование ключа в реескре
и
2) как проверит значение в ключа в реестре
wi34rd
1) Если ключ не открывается, значит его не существует
2) winreg.QueryValue для значений ключа по-умолчанию, для именованных значений ключа
OzMod
wi34rd
Спасибо понял.
по второму вопросу помогло QueryValueEx !
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB