2009-03-12, 14:16
  #1
Medlem
Hej,

Jag skriver en applikation i C++ som måste köras som administratör. Finns det något sätt, på Vista, att gå in i administratörs-läge? Alla applikationer körs ju som en vanlig user och om jag förstått saken rätt måste man välja "Run as administrator" för att en applikation skall köras med administratörs-privilegier.

Men jag funderar alltså på om det finns något systemanrop eller liknande som man kan använda för att applikation körs som administratör? Jag räknar med att användaren då visserligen kommer att konfronteras med en pop-up där Windows frågar om man godkänner att den körs som administratör.

Går detta att göra programmeringsmässigt alltså? Eller måste användaren alltid höger-klicka och välja "Run as administrator"?

/K
Citera
2009-03-12, 14:36
  #2
Medlem
Kod:
ShellExecute(hwnd, "runas", "C:\\Windows\\Notepad.exe", 0, 0, SW_SHOWNORMAL);

Detta var iof för att dra igång en app i admin läge, men om du tittar på nedanstående kanske något tips kommer

Kod:
BOOL
RunElevated(    HWND hwnd,
        LPCTSTR pszPath,
        LPCTSTR pszParameters = NULL,
        LPCTSTR pszDirectory = NULL )
{
    SHELLEXECUTEINFO shex;

    memset( &shex, 0, sizeof( shex) );

    shex.cbSize        = sizeof( SHELLEXECUTEINFO );
    shex.fMask        = 0;
    shex.hwnd        = hwnd;
    shex.lpVerb        = _T("runas");
    shex.lpFile        = pszPath;
    shex.lpParameters    = pszParameters;
    shex.lpDirectory    = pszDirectory;
    shex.nShow        = SW_NORMAL;

    return ::ShellExecuteEx( &shex );
}
Citera
2009-03-12, 15:26
  #3
Medlem
Du är värd en skål, min vän. Jag bockar och bugar och tackar allra ödmjukast. Du gjorde min dag!!!



Funkar klockrent.
__________________
Senast redigerad av Kommissarien 2009-03-12 kl. 16:22.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in