Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

Помогите разобраться с контролем приложений   Найти похожие ветки 

 
vodvorezlaya   (2006-04-14 12:20) [0]

Ув. Мастера подскажите как проверять запущена ли программа (которая видна только в диспетчере задач - процессах) и если она отсудствует то запускать её?


 
Elen ©   (2006-04-14 12:27) [1]

С помощью функции API EnumProcessполучаеш список всех процессов.
Далее узнаеш принадлежность процесса к файлу.


 
Feg16 ©   (2006-04-14 13:31) [2]

кусок кода

var
 Form1: TForm1;

 function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: byte; dwFlags: DWORD): BOOL; stdcall;

implementation

{$R *.dfm}

function SetLayeredWindowAttributes; external "user32.dll";

procedure Tform1.GetAllWindow;
Var
 Wd : HWnd;
 Nm: array[0..255] of Char;
 Item: TListItem;
begin
 Wd:=FindWindow(nil, nil);
 while (Wd<>0) do Begin
   Wd:=GetNextWindow(Wd,GW_HWNDNEXT);
   GetWindowText(wd, nm, 255);
   if (nm<>"") then with Lister do begin
     Item:=Items.Add;
     Item.Caption:=nm;
     Item.SubItems.Add(IntToStr(Wd));
   end;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 GetAllWindow;
end;


тут выводится список всех окон


 
vodvorezlaya   (2006-04-14 14:44) [3]

окна нет у моей програмки, она без формы
список процессов я нашёл, по ходу всё выводится в мемо1

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Memo1: TMemo;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

procedure GetProcessList;

var
 Form1: TForm1;
 S: String;

implementation

procedure GetProcessList;
var
 I: Integer;
 hSnapshoot: THandle;
 pe32: TProcessEntry32;
begin
 Form1.Memo1.Clear;
 hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 if (hSnapshoot = -1) then Exit;
 pe32.dwSize := SizeOf(TProcessEntry32);
 if (Process32First(hSnapshoot, pe32)) then
 repeat
   S := pe32.szExeFile;
   Form1.Memo1.Lines.Add(s);
 until not Process32Next(hSnapshoot, pe32);
 CloseHandle (hSnapshoot);
end;

end.


 
Leonid Troyanovsky ©   (2006-04-15 04:15) [4]


> vodvorezlaya   (14.04.06 14:44) [3]

>  Form1.Memo1.Clear;


Никогда не используй глобальную переменную FormX.

--
Regards, LVT.


 
Woolen ©   (2006-04-15 14:57) [5]


> С помощью функции API EnumProcessполучаеш список всех процессов.
>
> Далее узнаеш принадлежность процесса к файлу.

Нет такой функции в Win API


 
n0name   (2006-04-15 18:40) [6]


> Нет такой функции в Win API

PSapi



Страницы: 1 вся ветка

Текущий архив: 2006.07.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
15-1151417957
ArtemESC
2006-06-27 18:19
2006.07.30
Как узнать где SoundBlaster: порт, DMA-канал ...


2-1152169334
Delphi basic
2006-07-06 11:02
2006.07.30
select не из таблицы


2-1152262440
Diksa
2006-07-07 12:54
2006.07.30
TreeView


2-1152650237
XeON
2006-07-12 00:37
2006.07.30
Удаление записи из массива


15-1151892819
Карелин Артем
2006-07-03 06:13
2006.07.30
Вопрос на понедельник. Отвечать серьезно!