гиперссылка электронной почты показывает mailto на странице лицензий установщика, созданного с помощью NSIS - PullRequest
0 голосов
/ 30 апреля 2020

Я очень новичок в скриптах Null-soft. У нас есть существующий скрипт, который я использую для создания установщика. Там я обнаружил, что на странице лицензии отображается идентификатор электронной почты с дополнительным < mailto:email id > текстом.

Я пытаюсь сделать идентификатор электронной почты кликабельным и скрыть < mailto:email id >.

Пожалуйста, обратитесь к изображению ниже :

Reference Image

1 Ответ

0 голосов
/ 09 мая 2020

Лицензия отображается с помощью элемента управления RichEdit, и он добавляет этот дополнительный текст, поскольку в вашем источнике RTF, вероятно, есть поля fldinst HYPERLINK и fldrslt. Мне несколько непонятно, какой точный синтаксис для ссылки должен быть в RTF.

Если допустимо использование "mailto:test@example.com" с префиксом mailto, вы можете просто вставить это как простой текст, и пусть обработчик URL-адреса автоматического c справится с этим:

{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard Hello mailto:test@example.com World}

Если это недопустимо, необходимо изменить NSIS для использования другой версии элемента управления RichEdit.

Если вы можете скомпилировать NSIS, вы можете изменить Source \ exehead \ resource.r c:

Изменить RichEdit20W и RichEdit20A на RichEdit50W

, и если вы не можете сделать это, вы можете использовать Resource Hacker и изменить заглушки в NSIS \ Stubs. Измените в Dialog 102 RichEdit20A / RichEdit20W на RichEdit50W.

В любом случае вам также необходимо добавить

Function .onInit
System::Call 'KERNEL32::LoadLibrary(t "msftedit")'
FunctionEnd

в файл .NSI.

Если вы выполните все эти шаги правильно, тогда он будет использовать более новый элемент управления RichEdit, который существует только на Windows XP и более поздних версиях, и он должен правильно отображать ссылку без дополнительного суффикса.

...