Как я совместно использую Базовое Хранилище данных между использованием процессов NSDistributedNotifications?

Кажется, что нет никакого способа поднять полномочия приложения некоторое время для Вас для выполнения конкретной задачи. Windows должен знать в начале программы, требует ли приложение определенных полномочий и попросит, чтобы пользователь подтвердил, когда приложение выполняет любые задачи что потребность те полномочия. Существует два способа сделать это:

  1. Запись файл манифеста, который говорит Windows приложение, мог бы потребовать некоторых полномочий
  2. Запущенный приложение с поднятыми полномочиями из другой программы

Это два , статьи объясняют в намного большем количестве деталей, как это работает.

то, Что я сделал бы, если Вы не хотите писать противную ctypes обертку для CreateElevatedProcess API, является использованием прием ShellExecuteEx, объясненный в статье Code Project (Pywin32 идет с оберткой для ShellExecute). Как? Что-то вроде этого:

, Когда Ваша программа запускается, она проверяет, имеет ли она Права администратора, если она не делает этого, выполняет себя с помощью приема ShellExecute и сразу выходит, если она делает, она выполняет задачу под рукой.

, Поскольку Вы описываете свою программу как "сценарий", я предполагаю, что это достаточно для Ваших потребностей.

Аплодисменты.

8
задан Community 23 May 2017 в 11:52
поделиться

3 ответа

Вы ищете - (void) refreshObject: (NSManagedObject *) объект mergeChanges: (BOOL) флаг, я полагаю.

Это обновит объект с информацией в постоянном хранилище , объединяя изменения, если хотите.

1
ответ дан 5 December 2019 в 22:19
поделиться

Я бы согласился с предложением Майка и просто посмотрел файл магазина на предмет изменений.

Хотя он может быть не самым эффективным, я успешно использовал - [NSManagedObjectContext reset] из второго процесса при изменении хранилища. В моем случае код довольно линейный - все, что я делаю, это запускаю запрос на выборку некоторых данных после сброса. Я не знаю, как это будет работать с привязками и сложным пользовательским интерфейсом, но вы можете опубликовать уведомление, чтобы обновить данные вручную, если это не обрабатывается автоматически.

1
ответ дан 5 December 2019 в 22:19
поделиться

У меня была точно такая же проблема с приложением для iPhone, над которым я работал. В моем случае решение заключалось в установке контекста stalenessInterval на что-то достаточно бесконечно малое (например, 0,5 секунды).

1
ответ дан 5 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: