Рубрики
Без рубрики

Python: изменение инициалов пользователей Microsoft Office

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Пару месяцев назад на работе мы получили отчет о том, что файл был заблокирован. Появилось диалог, показал инициалы пользователя, который даже не работал на нас. Таким образом, мы обнаружили раздражающую ошибку, которая может обрезать с офисом. В основном, пользователь запрошен Word или Excel для ввода их имени и инициалов во время первого запуска этого соответствующего приложения, и он будет сохранять эти данные, которые неважно, кто входит в машину позже. Это может привести к некоторой серьезной путанице, когда мы получаем сообщения об ошибках такого рода. Во всяком случае, давайте посмотрим, как сделать это сделать.

Мы будем использовать Python’s _winreg Модуль для этого взлома. Вы можете увидеть, как сказал сказал:

from _winreg import *

key = CreateKey(HKEY_CURRENT_USER,
                r'Software\Microsoft\Office\11.0\Common\UserInfo')
res = QueryValueEx(key, "UserInitials")
print repr (res) 

username = u"mldr\0"
SetValueEx(key, "UserInitials", 0, REG_BINARY, username)
CloseKey(key)

Здесь мы используем Createkey Метод на случай, если ключ уже не существует. Если ключ существует, то Createkey просто открою его. Первая половина сценария использовалась для проверки, чтобы увидеть, имел ли ключ правильное значение в нем. Последние три линии перезаписывают значение с моими инициалами. Я не могу вспомнить, почему мне пришлось сделать строку Unicode, но ребята на Pywin32 сказали мне, что это был способ сделать это. Я могу сказать вам, что я никогда не смог получить простую строку для работы. Как только значение установлено, мы убираем после себя, закрывая ключ.

Это оно! Легко, а? Веселитесь с Python!