Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458

[B] Access is denied [/B] Python + Excel VBA

02.03.2018, 10:26. Показов 2186. Ответов 17

Студворк — интернет-сервис помощи студентам
Всем привет! бьюсь над задачей:
для документа эксель с поддержкой макросов пытаюсь программно в питоне 2.7 (import os - не поддерживает (по крайней мере у меня не получается подгрузить эту библиотеку)) :

Предоставить доступ к объектной модели VBA
(поставить галочку - на картинке)

нашел что можно предоставить доступ через реестр в этой теме:

Работа с реестром

однако у меня вылазит ошибка Access is denied (видимо нет прав администратора)

Отсюда вопрос как в питоне прописать чтобы этот момент исполнялся от имени администратора..

p.s. возможно есть еще другие решения основной задачи?

Оч жду ...
Миниатюры
[B] Access is denied [/B] Python + Excel VBA  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2018, 10:26
Ответы с готовыми решениями:

Windows service на Python: access denied
ПРЕДИСЛОВИЕ. Начну со ссылки на вопрос на stackoverflow, но там пока ничего не посоветовали. Может, кому-то будет понятнее суть вопроса. ...

Pyodbc Python + Access функции VBA на Python
Добрый вечерок! Такая вот задачка: есть БД Access, в которой некоторые запросы используют самописные (на VBA) функции, и мне, как...

Не работает virtualhost Permission denied: access to / denied
имею сентос, там установлено пхп, майскул ну и все остальное, создал виртуалхост: ServerName **********.ua <VirtualHost...

17
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 10:27  [ТС]
конкретно из указанного поста использую этот код

Python
1
2
3
4
5
6
from _winreg import *
import sys
import _winreg
 
regpath = "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
root = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE, regpath,  0,   _winreg.KEY_ALL_ACCESS)
Миниатюры
[B] Access is denied [/B] Python + Excel VBA  
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
02.03.2018, 11:03
А если сделать .reg-файл и запустить его или bat?
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 11:04  [ТС]
а как это сделать ? я вообще не в курсе
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
02.03.2018, 11:14
Создаешь нужный параметр в реестре, экспортируешь его, получается reg-файл
а затем запускаешь из своей программы вроде regedit -s -i -q "file.reg"
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 11:16  [ТС]
Но я не могу программно (кодом в питоне) получить доступ к реестру
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
02.03.2018, 11:31
Лучший ответ Сообщение было отмечено rar как решение

Решение

Цитата Сообщение от ТабуретY Посмотреть сообщение
Создаешь нужный параметр в реестре, экспортируешь его, получается reg-файл
Вот это делается руками через regedit, этот reg-файл ложишь в папку с программой, а потом из своей программы запускаешь как-нибудь regedit -s -i -q "file.reg"

Добавлено через 7 минут
Reg файл выглядит так

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wi ndows\CurrentVersion\App Paths]
"AccessVBOM"=dword:00000001
Запустить можно через https://ironpython-test.readth... ocess.html
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 12:20  [ТС]
Спасибо за ответ, буду сейчас пробовать !

Добавлено через 42 минуты
Как для реестра верно прописать путь , если часть пути неизвестна?

конкретно

[HKEY_USERS\xxx\Software\Microsoft\Office\15.0\Excel\Se curity]


где xxx - произвольное количество символов (заранее неизвестных)
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
02.03.2018, 12:29
Если все так сложно, может выдавать сообщение вроде - запустите программу от имени администратора?
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 12:43  [ТС]
1.) Сделал рег файл с содержимым

Python
1
2
3
4
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths]
"AccessVBOM"=dword:00000001
Запустил - пишет данные успешно внесены в реестр , однако ничего не изменилолсь

2.) Нашел поиском в реестре файл AccessVBOM выгрузил - сделал рег файл поменяв значение - запустил - работает

Но этот файл имеет вид [HKEY_USERS\xxx\Software\Microsoft\Office\15.0\Excel\Se curity]

Но когда вставляю его же в питон код - пишет файл такой не найден...

Добавлено через 1 минуту
ххх - как понимаю, это текущий процесс, файл эксель (всего лишь мои догадки) который будет изменяться.

Добавлено через 3 минуты
Просто были мысли может реестр понимает запись вида \ .. \ , \ ** \ (часть произвольного пути)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.03.2018, 12:58
Лучший ответ Сообщение было отмечено rar как решение

Решение

Цитата Сообщение от rar Посмотреть сообщение
HKEY_USERS\xxx\
xxx это Well Known SID.
А также SID'ы остальных пользователей.
В раздел HKEY_USERS вообще не надо ничего писать - нужно использовать раздел текущего загруженного юзера HKEY_CURRENT_USER. Или машинный раздел HKEY_LOCAL_MACHINE.
---------------------------------------------------------
Цитата Сообщение от rar Посмотреть сообщение
Просто были мысли может реестр понимает запись вида \ .. \ , \ ** \ (часть произвольного пути)
Нет - реестр понимает только точный путь.

Добавлено через 6 минут
P.S. После внесения изменений в реестре, как правило, требуется перезагрузить систему, чтобы увидеть применение этих изменений.
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 13:00  [ТС]
Garry Galler - вы абсолютно правы!

вручную запущенный ниже рег файл работает! :

Python
1
2
3
4
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security]
"AccessVBOM"=dword:00000001
Почему этот путь не находить питон:

Python
1
2
regpath='HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security'
root = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, regpath, 0, _winreg.KEY_ALL_ACCESS)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.03.2018, 13:08
Цитата Сообщение от rar Посмотреть сообщение
Почему этот путь не находить питон:
Потому что вы указали неверный путь.
Цитата Сообщение от rar Посмотреть сообщение
regpath='HKEY_CURRENT_USER\Software\Micr osoft\Office\15.0\Excel\Security'
Здесь указывается только путь - без основного ключа\раздела HKEY_CURRENT_USER\HKEY_LOCAL_MACHINE и т.д.
Вам бы нужно почитать про структуру реестра.
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 13:17  [ТС]
Да, вроде как видит:
regpath='Software\\Microsoft\\Office\\15 .0\\Excel\\Security'
root = _winreg.OpenKey(_winreg.HKEY_CURRENT_USE R, regpath
, 0, _winreg.KEY_ALL_ACCESS)


Остался вопрос как прописать в этой части (если значения меняется там)

root = _winreg.OpenKey(_winreg.HKEY_CURRENT_USE R, regpath, 0, _winreg.KEY_ALL_ACCESS)

значение "AccessVBOM"=dword:00000001
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.03.2018, 13:41
Лучший ответ Сообщение было отмечено rar как решение

Решение

Python
1
_winreg.SetValueEx(key, 'AccessVBOM', 0, _winreg.REG_DWORD,1)
key это ваш root.
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 14:03  [ТС]
Garry Galler - благодарю!

Заметил одну вещь,
если выполнять вручную рег файл ,то значение в реестре визуально поменяется сразу

если выполнять питоном - значение визуально не изменится, но если зайти в изменить параметр - то значение будет изменено !

Так что все работает

Еще раз всем больше спасибо !
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.03.2018, 14:07
Цитата Сообщение от rar Посмотреть сообщение
Заметил, при выполнении вручную рег - файла значение в реестре меняется сразу, а вот питоном значение визуально не меняется
А как вы смотрите? При открытом реестре?
F5 нажмите - экран реестра обновится.
Разницы между этими двумя способами записи в реестр никакой нет, кроме используемых инструментов.
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
02.03.2018, 14:10  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
А как вы смотрите? При открытом реестре?
F5 нажмите - экран реестра обновится.
Разницы между этими двумя способами записи в реестр никакой нет, кроме используемых инструментов.
Действительно !

Garry Galler с юбилейным двухтысячным сообщением )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2018, 14:10
Помогаю со студенческими работами здесь

Access 2010 вызов Excel файла, долго работает VBA Excel
Добрый день! В Access 2010. по кнопке для формирования отчета загружается файл Excel - Opg01.xls. Файл содержит 5 листов. В...

Разработка программ и баз данных (Delphi + Access, MS SQL Server, MySQL; VBA + Access, Excel)
Разрабатываю программы и базы данных. Среды и языки разработки: Delphi, VBA. Базы данных: Access, MS SQL Server, MySQL. ...

VBA ACCESS & EXCEL
Kak ja mogu iz ACCESS s pomoshju coda perenesti dannie iz EXCEL faila v tablizu ACCESS?

Excel+Access с использование VBA
Доброе день, уважаемые форумчане! Задачка: Есть база данных на Access, там же создан запрос. Нужно выгрузить данные полученные в...

Доступ к книге Excel из VBA Access
Моя задача. Создать БД в Access, там же написать макрос что бы заполнить её данными из Excel`евских файлов. Создал структуру БД,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru