Domanda

Ho l'obbligo di eseguire un'app quando un utente sblocca il suo computer. Funziona a gonfie vele in vittoria 7 con il normale programma di attività. Per XP - Ive ha creato una DLL C ++ per farlo. Questo sembra funzionare alla grande, tranne per il fatto che lo fa con l'account del sistema (e quindi non mostra il desktop dell'utente).

Ho 2 funzioni, il primo Wleventlogon lancia il processo sotto il sistema ACCT,

Il 2 °, (non ho fatto C ++ in circa 15 anni, quindi sono un po 'arrugginito!) È molto probabilmente selvaggiamente errato. Sto cercando di ottenere una semplice app da eseguire sull'account dell'utente ogni volta che sblocca il sistema.

Di seguito è riportato il mio codice: DLL Works e Ive hanno testato i metodi con Rundll32 e utilizzandoli in 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 funzione "Test" non sembra funzionare affatto: il mio CreateProcessasuser è molto probabilmente sbagliato.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top