English 中文(简体)
创建进程和 Shell 执行差异
原标题:CreateProcess and ShellExecute differences

两者的主要区别是什么? 我愿意从我的( C++) 应用程序中只运行另一个 EXE 。 在继承环境、 安全特性等时是否有区别?

最佳回答

Create process ShellExecut 之间的主要区别如下: Createprocess 更注重低层次,而ShellExec 则关注在探索者中看到用户的高用户杠杆。

例如,使用 CreateProcess 就可以使用长度更像 MAX_PATH 的指令行。它有32,768个字符限制。您也可以使用 CreateProcess 在另一个窗口桌面上启动程序(如果你有足够的权限),比如在登录屏幕上。

其它示例。 您可以使用 ShellExecute 启动控制面板或打开计算机上存在的任何程序, 用于编辑归档的 JPG 。 因此您可以使用与 Windows Explorer 中相应动作相近的 < code> ShellExecute 来工作 。

问题回答

主要区别在于灵活性。 ShellExecut 比较容易使用,但没有很大的灵活性。 CreateProcess 是需要使用的一个麻烦,但任由你做任何事情。

例如,在 Create process 中,您可以指定用于该子中标准输入/输出/ error 流的控点( 管道或文件) 。 < code> ShellExecut 并不会给予您这样做的方法 。

可能还值得指出的是,尽管 ShellExecut 能够直接启动可执行文件,但其主要意图是“execut”文档文件 -- -- 例如,告诉它“execut”一个“whatever.html”,然后它启动默认 Web浏览器,将指定的 HTML 文件装入其中。您也可以使用 CreateProcess 来这样做,但是,要做到这一点,您(通常)首先使用“code>FindEcuteable 来寻找与相关数据文件相关的程序,然后将数据文件作为参数传递给用户。

CreateProcess 返回启动过程的控件和代号,它是 PROCESS_INFORMATION 结构中的主线。





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签