2011-07-28 3 views
-1

의 플래그 기사/예에서 일반적으로 설명되어 4 개 플래그가 있습니다 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 함수

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} 

내가 그들 중 하나를 사용할 수는?

두 링크의 차이점은 무엇입니까? 내가 가지고있는 경우 '추기경'와 'TThreadPriority을'과 같이하십시오 : 호환되지 않는 유형 :

이유는 CreateProcess 함수에서 에러가 발생합니까

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

무엇 TThreadPriority ....

감사합니다!

+0

두 번째 링크에 관해서; [GetPriorityClass] (http://msdn.microsoft.com/en-us/library/ms683211%28v=VS.85%29.aspx) 함수 - 할 수 없습니다. '프로세스의 우선 순위 클래스는 다음 값 중 하나입니다. ' –

+0

당신은 문자 그대로 (즉, 동시에) 모든 것을 의미합니까, 아니면 그들 중 하나를 의미합니까? – hatchet

+1

@maxfax - 그리고 첫 번째 링크와 질문; 네가 여기서 묻고있는 것을 얻지 못한다. 각 API 함수 참조에는 이러한 종류의 조합 중 하나 인 경우 매개 변수로 전달할 수있는 것이 언급되어 있습니다. –

답변

4

GetPriorityClass의 설명서에 언급 된 6 개의 플래그 중 하나를 사용할 수 있습니다. RTL이 플래그 중 2 개를 생략하는 이유는 이들이 Windows 9x/ME에서 지원되지 않는다는 것입니다 (이것은 D2007에 있습니다. 아마도 이후 버전에 해당 플래그가 있음).

or 우선 순위 클래스 플래그는 프로세스 작성 플래그 (문서에서 언급 된 사항 - 사용자가 제공 한 첫 번째 링크 제외)를 조합하여 사용할 수 있습니다.


TThreadPriority은 'classes.pas'의 TThread에서 사용되는 열거 형이며 어쨌든 프로세스 생성 플래그와 관련이 없습니다. 질문에 게시 된 코드는 문제가없는 것 같습니다 (질문에 대한 주석 참조).