Показать сообщение отдельно
  #1  
Старый 04.12.2012, 12:53
Mitiay Mitiay вне форума
Новичок
 
Регистрация: 08.10.2009
Сообщения: 68
Репутация: 10
По умолчанию Если программа запущена то...

В общем хочу сделать прикол для жены)))Суть заключается в том,если программа запущена то вылетает сообщение...Ребята помогли с кодом НО программа работает не так как хотелось бы.Если я ключаю игру и компилирую вылетает 100000 сообщений.Если игра не влючена то вообще ничего не вылетает.Хотелось бы сделать так чтобы программа "ждала" допустим .Открыл программу ее не видно нигде.Жена открыла игру вылетело сообщение,закрыла,опять открыла опять вылетело сообщение...ПОМОГИТЕ!!!

Код:
unit Unit1;

interface

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

type
 TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);

 private
 { Private declarations }
 public
 { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

function processExists(exeFileName: string): Boolean;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
Result := False;
while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeF  ile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
begin
Result := True;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm := False;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if processExists('game.exe') then
ShowMessage('Процесс запущен');
end;

end.
Ответить с цитированием