Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal: Aktiivisen ikkunan hProcess?

D4_B34M [06.02.2006 19:15:16]

#

Eli miten saan juuri aktiivisena olevan (focused) ikkunan hProcess tiedot?
Maalaisjärjellähän:
SetPriorityClass(openprocess(PROCESS_ALL_ACCESS,True,GetWindowThreadProcessID­(GetForegroundWindow, nil)), REALTIME_PRIORITY_CLASS);

pitäisi toimia mutta kun ei...

Metabolix [06.02.2006 21:08:26]

#

Laita nuo edes jotenkin siistimmin, ettei tarvitse kopioida editoriin vain nähdäkseen, mitä olet yrittänyt.

Ja sitten mene lukemaan, miten GetWindowThreadProcessID toimii. Muuttujien käyttöä suositellaan, koska tuollainen koodi on äärimmäisen rumaa ja vaikealukuista.

function SetForegroundWindowProcessPriority(dwPriority: Cardinal): LongBool;
var
  Wnd: HWND;
  ThreadID, ProcessID: DWORD;
  Process: THandle;
begin
  Wnd := GetForegroundWindow;
  ThreadID := GetWindowThreadProcessID(Wnd, @ProcessID); {Se antaa molemmat}
  Process := OpenProcess(PROCESS_ALL_ACCESS, True, ProcessID);
  Result := SetPriorityClass(Process, dwPriority);
end;

D4_B34M [06.02.2006 21:32:20]

#

Kiitos selvennyksestä ;)
Juu tuo koodipätkä oli ihan kokeilu mielessä kun etin toimivaa ratkaisua... Lähti toimimaan pienen säädön jälkeen.

Ja huom jos joku tätä käyttää niin muistakaa sulkea closehandle() SetPriorityClass() jälkeen.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta