gpt4 book ai didi

process - 在C#中启动非exe进程时可以使用模拟吗?

转载 作者:行者123 更新时间:2023-12-04 04:32:40 26 4
gpt4 key购买 nike

我需要能够以其他用户身份运行流程,并且我已经找到了很多资源和不同的方法来执行此操作。问题是,我需要运行一个非exe进程,例如具有html扩展名的路径,或者在我的情况下为“http://somewebserver/someApp.application”。

存在一个已知的问题,其中已启动的进程不继承其启动程序的模拟上下文,并且存在一个已知的问题,其中在不同凭据下启动的进程必须是可执行文件(.exe)。

但是,我将如何以其他用户身份启动.application文件(例如)?

(我尝试了各种p/调用CreateProcessWithLoginW的组合,在ProcessStartInfo中设置用户/密码凭据等。每种方法都面临上述相同的限制。)

最佳答案

启动非exe时,实际上只是 shell 查找要用于文件或URL的exe。仍然有一个可执行文件。

由于 shell 程序已经在运行,因此它不会继承您的模拟。您可以自己在注册表中查找exe,然后调用CreateProcessWithLoginW,从本质上模拟 shell 程序为您执行的操作。

例如,要打开一个.txt文件,请查看“HKEY_CLASSES_ROOT\.txt”。在那里,您将看到类型为“txtfile”。然后查找“HKEY_CLASSES_ROOT\txtfile\shell\open\command”,您将看到 shell 将使用哪个exe文件,(通常)为“%SystemRoot%\system32\NOTEPAD.EXE%1”。

关于process - 在C#中启动非exe进程时可以使用模拟吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2225748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com