Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
1-1150347714
Mva
2006-06-15 09:01
2006.07.30
Печать PCL


2-1152086042
muha89
2006-07-05 11:54
2006.07.30
Проблема с отправкой


2-1152674805
lllEl
2006-07-12 07:26
2006.07.30
Компиляция проекта


8-1139492971
AlexeyMir
2006-02-09 16:49
2006.07.30
Есть музыкальный диск, как из трэка вырезать кусок, сохранить в w


2-1152326876
Der Nechk@ssoff
2006-07-08 06:47
2006.07.30
кол-во дней между числами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский