Avatar billede jonat Nybegynder
08. januar 2004 - 17:21 Der er 5 kommentarer og
2 løsninger

Proces priotet

Hej!

Jeg har lavet et program til beskæring af billeder og så ville jeg gerne at man via. en menu kunne stille proces priotet på programmet. (Ligesom man gør under processer i CTRL + ALT + DEL)

Nogen der har en ide??

//Jonat
Avatar billede dkn Nybegynder
08. januar 2004 - 17:57 #1
procedure SetPriorityState(Index: integer);
begin
  case Index of
    0:
      begin
        SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
        SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
      end;
    1:
      begin
        SetPriorityClass(GetCurrentProcess, HIGH_PRIORITY_CLASS);
        SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_HIGHEST);
      end;
    2:
      begin
        SetPriorityClass(GetCurrentProcess, HIGH_PRIORITY_CLASS);
        SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_ABOVE_NORMAL);
      end;
    3:
      begin
        SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS);
        SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_NORMAL);
      end;
    4:
      begin
        SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS);
        SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_BELOW_NORMAL);
      end;
    5:
      begin
        SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS);
        SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_LOWEST);
      end;
  end;
end;

Samme orden som dem i ctrl+alt+del, så bare se hvad de hedder der
Avatar billede jonat Nybegynder
08. januar 2004 - 22:23 #2
Jeg har et problem med koden... Når jeg siger:
Over normal så går den til høj
og under normal så går den til normal
og hvis jeg siger lav går den også op på normal...

Hvad kan det være??

//jonat
Avatar billede jonat Nybegynder
08. januar 2004 - 22:23 #3
Men de andre fungere godt nok..

//jonat
Avatar billede stefmeister Nybegynder
12. januar 2004 - 19:04 #4
{
  The SetPriorityClass function sets the priority class for
  the specified process. This value together with the
  priority value of each thread of the process determines
  each thread's base priority level. }

{ SetPriorityClass setzt die Priorität Klasse eines bestimmten Prozesses.}

//**************************************************

SetPriorityClass(hProcess, dwPriorityClass);

{
  hProcess: Identifies the process.
  dwPriorityClass: priority class value
}

{Specify one of the following values for dwPriorityClass:}


**************************************************

NORMAL_PRIORITY_CLASS:
Specify this class for a process with no special scheduling needs.

IDLE_PRIORITY_CLASS:
Specify this class for a process whose threads run only when the system is idle.

HIGH_PRIORITY_CLASS:
Specify this class for a process that performs time-critical tasks that must be
executed immediately.

REALTIME_PRIORITY_CLASS:
Specify this class for a process that has the highest possible priority.

**************************************************

Change the Priority of your own Process:

procedure TFMain.Button1Click(Sender: TObject);
begin
  SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
end;
Avatar billede stefmeister Nybegynder
12. januar 2004 - 19:04 #5
ups som svar
Avatar billede jonat Nybegynder
13. januar 2004 - 09:55 #6
Prøver det lige når jeg kommer hjem fra skole...

Er det under GetCurrentProcess at man kan skrive et andet program hvis nu man skulle lave et program som "holt styr" på ens processprioteter??

Men jeg kikker lige på det når jeg kommer hjem fra skole...
Avatar billede jonat Nybegynder
13. januar 2004 - 14:52 #7
Takker begge for svar...

Det virker nu.. jeg kan stadig ikke få den til at sige over normal og under normal men det jeg har nu overlever jeg med....

// jonat :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester