none
在程序中创建新的进程,权限不一致的问题 RRS feed

  • 问题

  • 您好,

    我有一个程序 a.exe,会通过CreateProcess创建一个新的进程 b.exe,问题是:

    1.a.exe 如果右键以管理员运行的话,创建新的进程 b.exe 运行的权限也是超级管理员的权限,会导致无法拖拽.

    2.a.exe 双击正常运行,创建新的进程 b.exe 运行的权限比正常运行的还低,但是可以执行拖拽.

    请问如何在一个进程中,实现和运行双击程序运行的权限一致呢?

    下面是实现代码:

    		STARTUPINFO si;
    		PROCESS_INFORMATION pi;
    		GetStartupInfo(&si);
    		si.wShowWindow = SW_SHOW;
    
    		TCHAR szTitle[MAX_PATH] = { 0 };
    		TCHAR lpszCmdline[MAX_PATH];
    		_tcscpy_s(lpszCmdline, _countof(lpszCmdline), _T("C:\\a.exe"));//拷贝程序路径
    
    		DWORD dwCreationFlags = CREATE_SUSPENDED;
    		BOOL blRet = CreateProcess(NULL,
    			lpszCmdline,
    			NULL,
    			NULL,
    			FALSE,
    			dwCreationFlags,//创建完成的时候挂起
    			NULL,
    			_T("C:\\"),
    			&si,
    			&pi
    		);
    
    
    		ResumeThread(pi.hThread);

    2019年8月23日 2:02

答案