DLL de notification WinLogon - Créez un processus comme l'utilisateur qui s'est connecté

StackOverflow https://stackoverflow.com/questions/4961740

  •  12-11-2019
  •  | 
  •  

Question

J'ai besoin d'exécuter une application car un utilisateur déverrouille son ordinateur. Cela fonctionne avec une victoire 7 avec un planificateur de tâches régulier. Pour XP - IVE a créé une DLL C ++ pour ce faire. Cela semble fonctionner très bien, sauf qu'il le fait sous le compte système (et n'apparaît donc pas sur le bureau de l'utilisateur).

J'ai 2 fonctions, le premier Wleventlogon lance le processus sous le système ACCT,

Le 2e (je n'ai pas fait C ++ depuis 15 ans, donc je suis un peu rouillé!) Est probablement extrêmement incorrect. J'essaie d'obtenir une application simple pour s'exécuter sur le compte de l'utilisateur chaque fois qu'il déverrouille le système.

Vous trouverez ci-dessous mon code - la DLL fonctionne et j'ai testé les méthodes avec runDLL32 et les utiliser dans winlogon / notify

    // Here is the event handler for the Winlogon Logon event.
//__declspec( dllexport ) void WLEventLogon (PWLX_NOTIFICATION_INFO pInfo);

WINLOGINDLL_API void WLEventLogon (PWLX_NOTIFICATION_INFO pInfo)
{   

    const wchar_t* path =  L"C:\\path\\app.exe";


    ShellExecute(GetDesktopWindow(),L"open",path,NULL,NULL,SW_SHOWNORMAL);      
}


WINLOGINDLL_API void Test (PWLX_NOTIFICATION_INFO pInfo)
{   


STARTUPINFOW        lpStartupInfo;
PROCESS_INFORMATION lpProcessInfo;

ZeroMemory(&lpStartupInfo, sizeof(lpStartupInfo));
ZeroMemory(&lpProcessInfo, sizeof(lpProcessInfo));
lpStartupInfo.cb = sizeof(lpStartupInfo);
lpStartupInfo.dwFlags = STARTF_USESHOWWINDOW;
lpStartupInfo.wShowWindow = SW_SHOW;
CreateProcessAsUser(pInfo->hToken, L"C:\\path\\app.exe",L"test",NULL,NULL,FALSE,NULL,NULL,NULL,&lpStartupInfo,&lpProcessInfo);

   }

La fonction «test» ne semble pas fonctionner du tout - mon CreateProcessSasuser est très probablement follement faux.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top