HWND deskton; DWORD desktonID; HANDLE hProc; deskton = FindWindow("Progman", "Program Manager"); GetWindowThreadProcessId(deskton,&desktonID); hProc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,desktonID); if ( hProc == NULL ) ...{ return 0; } if ( !OpenProcessToken(hProc,TOKEN_DUPLICATE,&hToken) ) ...{ return 0; } if ( DuplicateTokenEx(hToken,TOKEN_ALL_ACCESS,NULL,SecurityImpersonation,TokenPrimary,&hTokenNew )) ...{ memset(&startinfo, 0, sizeof(STARTUPINFO)); startinfo.cb = sizeof(STARTUPINFO); startinfo.dwFlags = STARTF_USESHOWWINDOW; startinfo.wShowWindow = SW_SHOWNORMAL; } CreateProcessAsUser( hTokenNew, "C:/WINDOWS/system32/notepad.exe", NULL, NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &startinfo,&procinfo); 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jifengszf/archive/2007/03/14/1529066.aspx