Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique vous montre comment créer un raccourci pour votre application, lui attribuer un AppUserModelID et l’installer dans l’écran d’accueil. Nous vous recommandons vivement de le faire dans Windows Installer plutôt que dans le code de votre application. Sans un raccourci valide installé dans l’écran d’accueil ou dans Tous les programmes, vous ne pouvez pas déclencher une notification toast à partir d’une application de bureau.
Notes
Les exemples de méthodes utilisées dans cette rubrique sont extraits de l’exemple toast desktop.
Bon à savoir
Technologies
- COM
Prérequis
- Bibliothèques
- C++: Runtime.object.lib
- C# : Windows.Winmd
- C# : Windows API Code Pack pour Microsoft .NET Framework
- Version de Microsoft Visual Studio qui prend en charge au moins Windows 8
Instructions
Étape 1 : Préparer le raccourci à créer
Cet exemple détermine d’abord le chemin d’accès du dossier de données d’application de l’utilisateur via la fonction GetEnvironmentVariable . Il compose ensuite le chemin d’accès complet au raccourci, détermine qu’un raccourci de ce nom n’existe pas déjà à cet emplacement et transmet ces informations à une autre méthode qui crée et installe le raccourci.
Notez que le raccourci peut être déployé par utilisateur ou par application.
HRESULT DesktopToastsApp::TryCreateShortcut()
{
wchar_t shortcutPath[MAX_PATH];
DWORD charWritten = GetEnvironmentVariable(L"APPDATA", shortcutPath, MAX_PATH);
HRESULT hr = charWritten > 0 ? S_OK : E_INVALIDARG;
if (SUCCEEDED(hr))
{
errno_t concatError = wcscat_s(shortcutPath, ARRAYSIZE(shortcutPath), L"\\Microsoft\\Windows\\Start Menu\\Programs\\Desktop Toasts App.lnk");
hr = concatError == 0 ? S_OK : E_INVALIDARG;
if (SUCCEEDED(hr))
{
DWORD attributes = GetFileAttributes(shortcutPath);
bool fileExists = attributes < 0xFFFFFFF;
if (!fileExists)
{
hr = InstallShortcut(shortcutPath); // See step 2.
}
else
{
hr = S_FALSE;
}
}
}
return hr;
}
Étape 2 : Créer le raccourci et l’installer dans l’écran d’accueil
Cet exemple récupère également le magasin de propriétés du raccourci et définit la propriété System.AppUserModel.ID requise à partir d’une variable précédemment définie, AppID.
HRESULT DesktopToastsApp::InstallShortcut(_In_z_ wchar_t *shortcutPath)
{
wchar_t exePath[MAX_PATH];
DWORD charWritten = GetModuleFileNameEx(GetCurrentProcess(), nullptr, exePath, ARRAYSIZE(exePath));
HRESULT hr = charWritten > 0 ? S_OK : E_FAIL;
if (SUCCEEDED(hr))
{
ComPtr<IShellLink> shellLink;
hr = CoCreateInstance(CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&shellLink));
if (SUCCEEDED(hr))
{
hr = shellLink->SetPath(exePath);
if (SUCCEEDED(hr))
{
hr = shellLink->SetArguments(L"");
if (SUCCEEDED(hr))
{
ComPtr<IPropertyStore> propertyStore;
hr = shellLink.As(&propertyStore);
if (SUCCEEDED(hr))
{
PROPVARIANT appIdPropVar;
hr = InitPropVariantFromString(AppId, &appIdPropVar);
if (SUCCEEDED(hr))
{
hr = propertyStore->SetValue(PKEY_AppUserModel_ID, appIdPropVar);
if (SUCCEEDED(hr))
{
hr = propertyStore->Commit();
if (SUCCEEDED(hr))
{
ComPtr<IPersistFile> persistFile;
hr = shellLink.As(&persistFile);
if (SUCCEEDED(hr))
{
hr = persistFile->Save(shortcutPath, TRUE);
}
}
}
PropVariantClear(&appIdPropVar);
}
}
}
}
}
}
return hr;
}
Notes
En guise d’alternative à l’approche décrite dans cette rubrique, vous pouvez utiliser une infrastructure telle que Windows Installer XML (WiX) pour générer le raccourci et le déployer dans le cadre de Windows Installer. Dans ce cas, ce code doit être inclus dans le MSI plutôt que dans le code de l’application. Pour plus d’informations, consultez l’exemple de fichier de configuration WiX inclus dans l’exemple Envoyer des notifications toast à partir d’applications de bureau .
Rubriques connexes
-
Démarrage rapide : Envoi d’une notification toast à partir du bureau
-
Exemple d’envoi de notifications toast à partir d’applications de bureau
-
Guide pratique pour installer les outils Windows Installer XML (WiX)
-
Recommandations et liste de contrôle pour les notifications toast
-
Guide pratique pour case activée les paramètres de notification toast
-
Comment gérer l’activation à partir d’une notification toast