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

Delphi:CreateProcess函数中的进程创建标志,delphi,flags,createprocess,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 H

文章/示例中通常描述了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}
我可以在该功能中使用它们中的任何一个吗

这两个链接之间有什么区别

为什么CreateProcess函数中会出现错误:不兼容的类型:“Cardinal”和“TThreadPriority”,如果我有和执行:

var Priority : Cardinal
Priority:=NORMAL_PRIORITY_CLASS;
CreateProcess(PChar(Path), Pchar(Par), nil, nil, false,
Priority, nil, nil, StartUpInfo, ProcessInfo);
什么是优先权


谢谢

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

您可以
优先级类标志与流程创建标志的任意组合(文档中注明的除外-您提供的第一个链接)



TThread priority
是在“classes.pas”中的
TThread
中使用的枚举类型,与进程创建标志没有任何关系。问题中发布的代码似乎没有任何问题(请参阅对问题的评论)

关于你的第二个链接;功能-不,你不能;它直接写在参考资料中。
流程的优先级等级是以下值之一。
您的字面意思是指所有值(即同时),还是指其中任何一个值?@maxfax-以及关于您的第一个链接和问题;我不明白你在问什么。在每个API函数引用中都提到了可以作为参数传递的内容,如果其中一个函数是这样的组合。@maxfax-您可以使用6个函数中的一个。VCL省略2的原因是windows 9x/ME不支持它们。链接中没有提到这一点的原因是MS不再支持这些操作系统。@maxfax-您发布的代码没有错误。除非您没有在windows.pas中使用CreateProcess。请确保在单元名称前加前缀:
windows.CreateProcess(..
)。