Fråga : Finns det a långt som gör ”ShellExecuteEx ()” arbete från Windows en tjänste- applikation?

Vi har använt ”ShellExecuteEx ()” till barkassen ett annat processaa (non-trösta, synlig GUI), från vår applikation.   Nu vi har ett behov att köra applikationen i en tjänste- Windows, och ”ShellExecuteEx () fungerar inte (på grund av ”beskjuta antagligen” delen).  Finns det a långt som gör ”ShellExecuteEx ()” arbete, eller finns det another långt till barkassen en processaa non-trösta inifrån ett tjänste-?  Vi är funktionsdugliga i C++. " klar "

Svar : Finns det a långt som gör ”ShellExecuteEx ()” arbete från Windows en tjänste- applikation?

mer @rgautier: Din rådgivning är föråldrad och ej längre stöttad av ms
Start från den Windows utsikten som är växelverkande servar är endast för förenlighet resonerar och bör inte möjliggöras för nytt servar.
I utsikt och nyare, servar och loggade in användare bor alltid i olik slutlig period, och thus endast IPC är möjligheten (så ingen handtag, fönstermeddelanden och GUIs är möjligheten). Utsikt och nyare ska skärm ett otäckt warning meddelande om dig försök att visa en dialog i ett tjänste-.

I stället du måste att skapa ett nytt processaa i uppsätta som målperioden (starter på 1), var du önskar att köra din applikation. Använd CreateProcessAsUser (CPAU) men INTE CreateProcess.  Hämta användaretecken med WTSQueryUserToken och använd det i CPAU därefter.
Andra lösningar  
 
programming4us programming4us