知道一个进程的名字如何获得这个进程的hProcess?还有,在ListBox中,如何获得选中的item的名字?

解决方案 »

  1.   

    遍历进程列表就可以获得PID了Google上N多例子
      

  2.   

    我需要结束ListBox中选中的一个item,怎么知道我选中的是那个啊?
      

  3.   

    进程列表:
    /////////////////////////////////////////////////////
    uses ... TLHelp32, ...
    type
    TForm1 = class(TForm)
    ...
    end;
    var
    Form1: TForm1;
    l : Tlist; ////返回的东东在"L"这个TList中。
    type
    TProcessInfo = Record
    ExeFile : String;
    ProcessID : DWORD;
    end;
    pProcessInfo = ^TProcessInfo;
    implementation
    {$R *.DFM}
    procedure TForm1.FormCreate(Sender: TObject);
    var p : pProcessInfo;
    i : integer;
    ContinueLoop:BOOL;
    var
    FSnapshotHandle:THandle;
    FProcessEntry32:TProcessEntry32;
    begin
    l := TList.Create;
    l.Clear;
    FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
    ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
    while integer(ContinueLoop)<>0 do
    begin
    New(p);
    p.ExeFile := FProcessEntry32.szExeFile;
    p.ProcessID := FProcessEntry32.th32ProcessID;
    l.Add(p);
    ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
    end;
    end;
    procedure TForm1.FormDestroy(Sender: TObject);
    var p : pProcessInfo;
    i : integer;
    begin
    With l do
    for i := Count - 1 DownTo 0 do
    begin p := items[i]; Dispose(p); Delete(i); end;
    end;
    ...
    end.
    //////////////////////////////////
    获得ListBox中选中的一项
    str:=ListBox.items[itemsIndex];
      

  4.   

    如果我点击其中一个item,能知道我点击的是哪个么?
      

  5.   

    ItemIndex 是当前选种的Item的Index 
    楼主需要多看帮助
      

  6.   

    上面不是说了吗,就是:
    获得ListBox中选中的一项
    ListBox.items[itemsIndex];
      

  7.   

    关键的函数。api函数都一样. <vc代码> 函数帮助可以看MSDN
    HANDLE handle=::CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
    PROCESSENTRY32 Info;
    Info.dwSize = sizeof(PROCESSENTRY32);if(::Process32First(handle,&Info))
    {
    do
    {}
    while(::Process32Next(handle,&Info));