Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用ShellExecuteEx启动的进程的默认访问权限是什么?_Windows_Winapi_Shellexecuteex - Fatal编程技术网

Windows 使用ShellExecuteEx启动的进程的默认访问权限是什么?

Windows 使用ShellExecuteEx启动的进程的默认访问权限是什么?,windows,winapi,shellexecuteex,Windows,Winapi,Shellexecuteex,我需要对以ShellExecuteEx启动的进程执行某些操作,如等待、复制句柄、查询和设置信息等。现在我想知道是否可以在传递给ShellExecuteEx的SHELLEXECUTEINFO结构中返回的HPProcess成员上执行所有这些操作。有人知道吗 使用返回的HPProcess时,调用ShellExecuteEx的进程是否默认具有诸如process\u DUP\u HANDLE、SYNCHRONIZE、process\u SET\u INFORMATION、process\u QUERY\u

我需要对以ShellExecuteEx启动的进程执行某些操作,如等待、复制句柄、查询和设置信息等。现在我想知道是否可以在传递给ShellExecuteEx的SHELLEXECUTEINFO结构中返回的HPProcess成员上执行所有这些操作。有人知道吗


使用返回的HPProcess时,调用ShellExecuteEx的进程是否默认具有诸如process\u DUP\u HANDLE、SYNCHRONIZE、process\u SET\u INFORMATION、process\u QUERY\u INFORMATION等权限?

是。您需要担心访问权限的在线时间是,如果您执行任何触发uac的任务,那么您需要设置requestedExecutionLevel='highestAvailable'

我猜这与您从CreateProcess获得的相同,尽管文档中没有说我将冒险处理所有访问。在任何情况下,您都可以使用GetProcessId和OpenProcess以您需要的任何访问权限打开它。

请记住,如果用户选择了您执行的操作,他们可以选择一个文档或URL,然后您可能根本无法获得HPProcess DDE、droptarget等,我知道,但在我的情况下,它是一个精确定义的可执行文件。如果没有句柄,则会出现问题。但是如果启动的进程需要提升>=Vista,OpenProcess不会失败吗?如果调用进程未提升,它将无权访问提升的进程。但是把手已经在那里了。。。即使调用ShellExecuteEx的进程没有提升,也可能允许访问提升的进程?我猜它可能会由于完整性级别而失败;我不记得UAC的所有细节。无论如何,这里有一些文档说明CreateProcess返回的句柄具有PROCESS\u ALL\u访问权限。ShellExecuteEx几乎可以肯定地为您提供了确切的句柄或其副本;不幸的是,我找不到任何明确说明这一点的文档,但这似乎极有可能。我认为您的理论是正确的,您可以对启动的流程执行几乎所有操作,只要它没有更高的完整性级别。否则,某些权利不会被授予,如下所述: