Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2017 14:13:30

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

Помогите как добавить в реетр запись..
в моем случая нужно добавить:

 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"RecycleBinDrives"=dword:ffffffff
зарание спасибо !

Отредактировано OzMod (Март 9, 2017 14:15:30)

Офлайн

#2 Март 9, 2017 14:46:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

ну есть _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… Ищите то что вам нужно



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Март 10, 2017 10:16:45

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

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)
После компиляции запускаю, под правами Администратора все работает нормально!
Собственно вопрос: КАК ПОДКЛЮЧИТЬ МАНИФЕСТ “АДМИНИСТРАТОРА” ПО УМОЛЧАНИЮ, ДЛЯ ВЫПОЛНЕНИЯ СКРИПТА!?

Офлайн

#4 Март 10, 2017 11:56:44

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

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, без этого не будет показано предложение пользователю.




==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 10, 2017 12:01:41)

Офлайн

#5 Март 10, 2017 12:11:45

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

PEHDOM
Я компилирую когда в PyInstaller и иногда cx-freeze

Офлайн

#6 Март 10, 2017 12:32:02

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

OzMod
Я компилирую когда в PyInstaller и иногда cx-freeze
тогда ИМХО вам стоит присмотреться к “ходу конем” он универсальный и независит от того чем вы компилируете



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 10, 2017 12:32:31)

Офлайн

#7 Март 10, 2017 12:41:43

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

PEHDOM
Спасибо это помогло:

 import win32api
procID = win32api.ShellExecute(0,"runas", "RegOK.exe", "/admin", None, 1)
Ты супер, Спасибо за помощощь!!!
————————————————————————————————–

Офлайн

#8 Март 12, 2017 10:50:13

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

PEHDOM
Помогите пожалуйста как проверить
1) Существование ключа в реескре
и
2) как проверит значение в ключа в реестре

Офлайн

#9 Март 12, 2017 11:01:09

wi34rd
Зарегистрирован: 2016-10-08
Сообщения: 89
Репутация: +  2  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

1) Если ключ не открывается, значит его не существует
2) winreg.QueryValue для значений ключа по-умолчанию, для именованных значений ключа

Офлайн

#10 Март 12, 2017 14:13:21

OzMod
Зарегистрирован: 2017-01-11
Сообщения: 38
Репутация: +  1  -
Профиль   Отправить e-mail  

Python 3 работа с реестром Windows

wi34rd
Спасибо понял.
по второму вопросу помогло QueryValueEx !

Отредактировано OzMod (Март 12, 2017 14:15:23)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version