Start Menu a Desktop pro všechny uživatele (all user)   zodpovězená otázka

VB.NET, I/O operace

Zdravím,

už dva dny gůglím a nemůžu se dopátrat odpovědi :c( Potřeboval bych si programově vytvořit na ploše a ve start menu ikonu aby byla dostupná pro všechny uživatele. Tedy All User, ale problém nastává v získání cesty.

Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)

mi vrátí cestu v mém lokálním účtu nikoliv pro all user. Našel jsem rady typu vyměň jméno uživatele za all user ale to nebude úplně transparentní na různých verzích Windows. Musí snad být nějaka jednoduchá cesta jak získat adresu plochy pro all users ne?

Prosím nakopněte mě někdo???

Předem moc děkuji Martin

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Konstanty pro tyto složky jsou bohužel až ve Frameworku 4 (CommonStartMenu, CommonDesktopDirectory), takže budete muset použít Windows API pokud děláte v nižší verzi.

Mimochodem toto je přesně úkol pro instalátor (Inno Setup), kde vytvoření zástupců v těchto složkách není problém. Takto budete muset řešit navíc API pro vytvoření zástupce.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No instalátor nemám je to malá aplikace kde jen potřebuju zajistit když user smaže ikonu aby se zase po spuštění vytvořila :c)

Jinak jsem konečně našel toto:

Deklarace:

    Private Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" (ByVal hwndOwner As IntPtr, ByVal pszPath As String, ByVal nFolder As Long, ByVal fCreate As IntPtr) As Integer
    Const CSIDL_COMMON_STARTMENU = &H16         'All Users\Start Menu
    Const CSIDL_COMMON_DESKTOPDIRECTORY = &H19  'All Users\Desktop

a volání

        Dim sPath As String = Space(260)
        Dim lTmp As Integer = SHGetSpecialFolderPath(Me.Handle, sPath, &H16, 0)
        sPath = sPath.Substring(0, sPath.IndexOf(Chr(0)))

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback