API для запуска синхронизации OneNote?

Я ищу способ программно запустить синхронизацию OneNote с OneDrive (например, VBA, Powershell и т. д.).

Дело в следующем: 1) Я сделал некоторые изменения на ноутбуке и хотел бы синхронизировать ноутбук на планшете. 2) Теперь мне нужно открыть OneNote и нажать кнопку синхронизации. Но я хотел бы просто запустить файл cmd/bat/ps1 для синхронизации ноутбука, не открывая приложение OneNote. (типа синхронизирую файлы через robocopy)

Это возможно? Если да - не могли бы вы подробно рассказать, как я могу это сделать? Я гуглил возможные API, но не нашел ничего подходящего :(

С уважением, Виталий


person Willy    schedule 24.03.2014    source источник


Ответы (2)


На вашем планшете установлена ​​полная версия OneNote? если да, то COM API , в частности, может помочь метод SyncHierarchy?

SyncHierarchy Method

Description

Forces OneNote to sync the specified object with the source file on disk.

Syntax
HRESULT SyncHierarchy ( 
    [in]BSTR bstrHierarchyID);
Parameters

bstrHierarchyID—The OneNote ID of the object to be synced.
person Darren Beale    schedule 24.03.2014
comment
Да. планшет Surface. И да, я видел этот метод раньше и думал, что он может помочь. Но насколько я понимаю это сейчас - речь идет о принудительном сохранении (или сбросе) изменений, выполненных программно в файле (например, добавление/обновление страниц в памяти объекта). Так что не помогает... - person Willy; 24.03.2014
comment
Это API, который вы ищете. Он синхронизирует запрошенный узел иерархии с сервером, который загрузит локальные ожидающие изменения и загрузит любые изменения на сервере. - person Omer Atay - MSFT; 26.03.2014

API службы OneNote позволяет только СОЗДАВАТЬ СТРАНИЦЫ в разделе "Быстрые заметки" записной книжки по умолчанию. Мы работаем над тем, чтобы API также мог ВЫЗОВАТЬ страницы.

Я не думаю, что это все равно удовлетворит вашу потребность выше. На шаге 1) выше, когда вы вносите «Изменения» на своем ноутбуке, вы все равно находитесь в каком-то клиенте OneNote, верно? Зачем вам нужно выходить из клиента и выполнять синхронизацию вне его? Клиенты довольно быстро синхронизируют содержимое с OneDrive.

person ArunSudhir-MSFT    schedule 24.03.2014
comment
Да, я думаю, вы правы - REST API этого не решает. Что касается вашего вопроса - на самом деле OneNote не всегда открыт на моем столе. Когда я внес некоторые изменения на ноутбуке, на планшете я должен: 1) открыть OneNote 2а) подождать некоторое время, пока он синхронизируется - 2б) запустить обновление вручную (сделать несколько кликов). Вместо этого я бы предпочел иметь ярлык для запуска файла cmd/ps1, который может сделать это без открытия OneNote. Особенно иногда оказывается, что OneNote не полностью синхронизировался и несколько важных страниц не были загружены :( - person Willy; 24.03.2014
comment
Вопрос: Почему бы не предоставить такие аргументы API/командной строки? т.е. для принудительной синхронизации данных OneNote - person Willy; 24.03.2014