Зарегистрируйте Windows-программу в mailto протоколе программно

Попробуйте поместить document.getElementById в setTimeout()

Например.

setTimeout(function(){
    console.log(document.getElementById('whatever'));
}, 100);

Если это сработает, тогда это просто проблема синхронизации.

37
задан Jack Bashford 17 February 2019 в 22:23
поделиться

3 ответа

@Dillie-O: Ваш ответ указал мне дорогу (я должен был ожидать, что он просто будет изменением реестра), и я получил эту работу. Но я собираюсь отметить это как ответ, потому что я собираюсь поместить некоторую дополнительную информацию, которую я нашел при работе над этим.

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

Наконец, вот ответ:

  • Для соединения программы с mailto протоколом для [1 118] все пользователи на компьютере измените Значение по умолчанию HKEY_CLASSES_ROOT\mailto\shell\open\command на:
    " исполняемый файл Вашей программы " "%1"
  • К связывают программу с mailto протоколом для текущий пользователь , изменяют Значение по умолчанию HKEY_CURRENT_USER\Software\Classes\mailto\shell\open\command на:
    " исполняемый файл Вашей программы " "%1"

Эти %1 будут заменены всем mailto URL. Например, учитывая ссылку:

<a href="mailto:user@example.com">Email me</a>

следующее будет выполняться:
" исполняемый файл Вашей программы " "mailto:user@example.com"

Обновление (с помощью комментария shellscape):
С Windows 8, этот метод больше не работает как ожидалось. Win8 осуществляет следующий ключ: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associati‌†"ons\URLAssociations\‌вЂ" MAILTO\UserChoice, для которого ProgID выбранного приложения хешируется и не может быть создан. Это - королевский ЛАВАШ

18
ответ дан Tim Pohlmann 27 November 2019 в 05:01
поделиться

Из того, что я видел, существует несколько ключей реестра, которые устанавливают почтовый клиент по умолчанию. Один из них быть:

Системный Ключ: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Имя Значения: (Default)

Тип данных: REG_SZ (Строковое Значение)

Данные Значения: Mail program command-line.

я не familar с Delphi 7, но я уверен, что существуют [приблизительно 115] библиотеки редактирования реестра там, что Вы могли использовать для изменения этого значения.

Некоторые места перечисляют больше, чем этот ключ , другие просто этот ключ, таким образом, Вы, возможно, должны протестировать немного для нахождения надлежащего (s).

12
ответ дан Sandesh 27 November 2019 в 05:01
поделиться

Вот официальное решение Microsoft, чтобы программно изменить почтовый клиент по умолчанию. Это - Visual Basic, но я надеюсь, что понятие ясно из этого:

http://support.microsoft.com/kb/299853

4
ответ дан Community 27 November 2019 в 05:01
поделиться
Другие вопросы по тегам:

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