AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Priorität eines anderen Programmes ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Priorität eines anderen Programmes ändern

Ein Thema von SirThornberry · begonnen am 7. Feb 2004 · letzter Beitrag vom 17. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 12:54
Ist es irgendwie möglich die Priorität eines anderen Programmes zu ändern? MIt
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); kann ich ja die priorität vom eigenen Programm ändern. Wie komm ich an den Process eines anderen Programmes ran - eventuell über handle? (muss ja irgendwie das "GetCurrentProcess" ersetzen um den process des anderen Programmes zu bekommen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 12:58
OpenProcess, sollte das sein, was du suchst. An die ProcessID kommst du mit einem CreateToolHelp32Snapshot oder über EnumProcesses dran. Beispiele dazu findest du auf http://delphidemos.luckie-online.de .
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 12:59
Die ProcessID brauch ich nicht, damit gehts nicht... Oki, ich probiers mal mit OpenProcess...
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 13:00
Doch die brauchst du für OpenProcess, sonst hätte ich das ja nicht geschrieben, bevor du wieder fragst, wiue du an die ProcessID kommst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 13:28
OpenProcess ist wohl doch nicht das richtige denn
GetCurrentProcess()
und
OpenProcess(PROCESS_ALL_ACCESS, False, GetCurrentProcessId);
Liefern nicht das gleiche
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 13:58
Also bei mir geht das:
Delphi-Quellcode:
function SetProcessPriorty(ProcID: DWORD; Priority: DWORD): Boolean;
var
  hProcess: THandle;
begin
  result := False;
  hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID);
  if hProcess <> 0 then
  begin
    result := SetPriorityClass(hProcess, Priority);
  end;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 14:50
@Luckie: Ich hatte mich bissl falsch ausgedrückt. Ich meinte mehr das ich weiß wie ich an die ProcessID ran komme.
Einfacher als mit
CreateToolHelp32Snapshot und EnumProcesses
gehts
mit GetWindowThreadProcessId
hab das jetzt folgendermaßen gelöst:
Delphi-Quellcode:
procedure setnewpriority(Anwendungshandle: Cardinal);
var dwActiveProcessId:DWORD;
begin
  GetWindowThreadProcessId(Anwendungshandle, @dwActiveProcessId);
  SetPriorityClass(OpenProcess(PROCESS_ALL_ACCESS, False, dwActiveProcessId), HIGH_PRIORITY_CLASS);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Priorität eines anderen Programmes ändern

  Alt 7. Feb 2004, 15:00
Ja, ich hatte nur mein Demo zu CreateToolHelp32Snapshot etwas aufgebohrt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 30. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#9

Re: Priorität eines anderen Programmes ändern

  Alt 12. Feb 2004, 13:53
Thx Luckie,

jetzt kann ich auch mal an meinem Process-Lister weiter basteln... konnte nämlich bis dahin die Priorität weder auslesen, neu setzen geschweige denn den Prozess killen
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Priorität eines anderen Programmes ändern

  Alt 17. Apr 2006, 15:29
Hi,
ich stehe vor dem selben Thema und hab ein Problem das ich ein Invalid Handle als Last Error bekomme.

Kann mir ev. jemand auf die Sprünge helfen?

Code: der zum invalid Handle führt.
Delphi-Quellcode:
if SetPriorityClass(GetProcID(LMDFileOpenEdit1.Filename), Cardinal(ComboBox1.Items.Objects[ComboBox1.ItemIndex])) then
edit1.text:='OK'
else
edit1.text:=SysErrorMessage(GetLastError);
damit gehts für das eigene Programm.
SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS); damit gehts für das andere Programm.
Delphi-Quellcode:
if SetProcessPriorty (GetProcID(LMDFileOpenEdit1.Filename),256)then
edit1.text:='OK'
else
edit1.text:=SysErrorMessage(GetLastError);


Die PID ist korrekt welche ich auslese!

Danke.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz