Delphi:CreateProcess函数中的进程创建标志

时间:2011-07-28 01:14:33

标签: delphi flags createprocess

通常在文章/示例中描述了4个标志:

 NORMAL_PRIORITY_CLASS           = $00000020;
  {$EXTERNALSYM NORMAL_PRIORITY_CLASS}
  IDLE_PRIORITY_CLASS             = $00000040;
  {$EXTERNALSYM IDLE_PRIORITY_CLASS}
  HIGH_PRIORITY_CLASS             = $00000080;
  {$EXTERNALSYM HIGH_PRIORITY_CLASS}
  REALTIME_PRIORITY_CLASS         = $00000100;
  {$EXTERNALSYM REALTIME_PRIORITY_CLASS}

我可以使用其中任何一个:http://msdn.microsoft.com/en-us/library/ms684863(v=VS.85).aspx / http://msdn.microsoft.com/en-us/library/ms683211(v=VS.85).aspx在该函数中吗?

这两个链接有什么区别?

为什么我在CreateProcess函数中出现错误:不兼容的类型:'Cardinal'和'TThreadPriority'如果我有和做:

var Priority : Cardinal
Priority:=NORMAL_PRIORITY_CLASS;
CreateProcess(PChar(Path), Pchar(Par), nil, nil, false,
Priority, nil, nil, StartUpInfo, ProcessInfo);

什么是TThreadPriority ....

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用GetPriorityClass函数文档中提到的6个标记之一。 RTL省略了2个标志的原因是它们在Windows 9x / ME上不受支持(这是在D2007中,可能以后的版本有这些标志)。

您可以使用任何进程创建标志组合or优先级标志(除了文档中提到的 - 您提供的第一个链接)。


TThreadPriority是'classes_pas'中TThread中使用的枚举类型,无论如何都与进程创建标志无关。问题中发布的代码似乎没有任何问题(请参阅问题的评论)。