
11.12.2012, 00:08
|
 |
Активный
|
|
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
|
|
И что в этом сложного?
Код:
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;
showed:boolean=false;
implementation
{$R *.dfm}
function ProcessExists(const 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.szExeFile)) =
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;
Form2.Visible := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if ProcessExists('game.exe') then
begin
if Showed = False then
begin
Showed := True;
ShowMessage('Процесс запущен. Открываем второй юнит.');
Form2.ShowModal
end;
end
else
if Showed then
begin
Showed := False;
ShowMessage('Процесс отсутствует. Закрываем второй юнит.');
Form2.Close
end
end;
end.
Form2 - это форма игры.
Чтобы игру начинать при вызове окна, производите действия на OnShow.
|