Projects/Snorenotify/Windows-Toast-Notification: Difference between revisions
TheOneRing (talk | contribs) Fix import from github. |
TheOneRing (talk | contribs) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 16: | Line 16: | ||
= Nsis scirpt = | = Nsis scirpt = | ||
Create a file called "SnoreNotify.nsh" with the following content. | |||
<syntaxhighlight lang="nsis"> | <syntaxhighlight lang="nsis"> | ||
!include LogicLib.nsh | |||
!include WordFunc.nsh | |||
Function SnoreWinVer | |||
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion | |||
${VersionCompare} "6.2" $R0 $R0 | |||
${If} $R0 == 1 | |||
Push "NotWin8" | |||
${Else} | |||
Push "AtLeastWin8" | |||
${EndIf} | |||
FunctionEnd | |||
!macro SnoreShortcut path exe appID | |||
Call SnoreWinVer | |||
Pop $0 | |||
${If} $0 == "AtLeastWin8" | |||
nsExec::ExecToLog '"${SnoreToastExe}" -install "${path}" "${exe}" "${appID}"' | |||
${Else} | |||
CreateShortCut "${path}" "${exe}" | |||
${EndIf} | |||
!macroend | |||
</syntaxhighlight> | |||
Use it as in the following example. | |||
<syntaxhighlight lang="nsis"> | |||
!include SnoreNotify.nsh | |||
!define SnoreToastExe "$INSTDIR\SnoreToast.exe" | |||
!insertmacro SnoreShortcut "$SMPROGRAMS\$StartMenuFolder\Quassel.lnk" "$INSTDIR\quassel.exe" "QasselProject.QuasselIRC" | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 11:02, 3 September 2015
For this backend we ship a our command line application SnoreToast, which is used to display the notification. The reason for using a command line application is, that applications enabled for notifications on Windows must be compiled exclusively for Windows 8 or later and written in a way that is not yet supported by Qt.
Screenshot
Windows 10
Usage
Basic Usage
Without any use of special settings this backend will create and register a special schortcut in the Windows startmenu pointing to your application, located at "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\SnoreNotify\\" + qApp->applicationName().
Advanced usage
To prevent that you have to set the application hint "windows-app-id" a documentation for the app Id can be found here. Now in order to make the notifications work you need to install the shortcut yourself, during the installation process of the application. If you are using a nsis based installer we recommend to use the script provided on this page, see the section Nsis scirpt, for msis or other installer toolkits you will find additional information at the MSDN page.
Nsis scirpt
Create a file called "SnoreNotify.nsh" with the following content.
!include LogicLib.nsh
!include WordFunc.nsh
Function SnoreWinVer
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
${VersionCompare} "6.2" $R0 $R0
${If} $R0 == 1
Push "NotWin8"
${Else}
Push "AtLeastWin8"
${EndIf}
FunctionEnd
!macro SnoreShortcut path exe appID
Call SnoreWinVer
Pop $0
${If} $0 == "AtLeastWin8"
nsExec::ExecToLog '"${SnoreToastExe}" -install "${path}" "${exe}" "${appID}"'
${Else}
CreateShortCut "${path}" "${exe}"
${EndIf}
!macroend
Use it as in the following example.
!include SnoreNotify.nsh
!define SnoreToastExe "$INSTDIR\SnoreToast.exe"
!insertmacro SnoreShortcut "$SMPROGRAMS\$StartMenuFolder\Quassel.lnk" "$INSTDIR\quassel.exe" "QasselProject.QuasselIRC"