Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
21.05.2012, 12:56:22
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  WinAPI Forum
| | |-+  Prozess -> Programmpfad
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Prozess -> Programmpfad  (Gelesen 1133 mal)
SirOzelot
Newbie
*
Offline Offline

Beiträge: 33


171128778
« am: 30.12.2002, 21:01:58 »

Wie kann man den Programmpfad eines laufended Prozesses (NT-basierendes System) auslesen?

Ich brauche diese Information, weil ich ein Programm basteln möchte, das den zugriff auf bestimmte Programme für bestimmte User sperren kann...

Bitte um Antowrten..., SirOzelot
Gespeichert

VisualBasic vereinfacht die einfachen Dinge,
Delphi die schweren und Assembler ist immer
noch das beste! Wobei Delphi + Assembler = Perfekt!
tommy
Newbie
*
Offline Offline

Beiträge: 35



« Antworten #1 am: 08.01.2003, 14:57:28 »

HI!

ich habe mal eine kleines testprog geschrieben
anhand der rückgabe kannst du das programm suchen

Wichtig ist hier die Unit (psapi)




unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,psapi;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    function leseprozessewinnt:String;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.Text := leseprozessewinnt;
end;

function TForm1.leseprozessewinnt:String;
var
  i2         : Integer;
  proccount  : Integer;
  procid     : Dword;
  ModuleName : array [0..300] of char ;
  PIDArray   : array [0..1023] of DWORD ;
  hMod       : HMODULE;
  cb         : DWORD;
begin
  result := '';
  EnumProcesses(@PIDArray, sizeof(PIDArray), cb);
  ProcCount := cb div sizeof(DWORD);
  for i2:=1 to proccount-1 do begin;
   // PROZESS ÖFFNEN
   procid := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, PIDArray[i2]);
   if(procid <> 0) then begin;
     EnumProcessModules(procid, @hMod, sizeof(hMod), cb);
     GetModuleFilenameEx(procid,hMod,modulename,sizeof(ModuleName));
     // NAME UND PID SICHERN
     result := result + 'Name: ('+modulename + ' - PID ('+inttostr(PIDArray[i2])+')'+chr(13)+chr(10);
   end;
   // PROZESS SCHLIESSEN
   closehandle(procid);
  end;
end;

end.


Tommy
Gespeichert

Let me show you the World with my Eyes
SirOzelot
Newbie
*
Offline Offline

Beiträge: 33


171128778
« Antworten #2 am: 09.01.2003, 15:14:22 »

Hey, danke für den Tipp!! Bringt mich echt weita!!!!!
Gespeichert

VisualBasic vereinfacht die einfachen Dinge,
Delphi die schweren und Assembler ist immer
noch das beste! Wobei Delphi + Assembler = Perfekt!
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS