![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
В общем хочу сделать прикол для жены)))Суть заключается в том,если программа запущена то вылетает сообщение...Ребята помогли с кодом НО программа работает не так как хотелось бы.Если я ключаю игру и компилирую вылетает 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. |
|
#2
|
|||
|
|||
|
добавь после строки
var Form1: TForm1; флаг который будет меняться если сообщение показалось Код:
var Form1: TForm1; showed:boolean:=false; Код:
if processExists('game.exe') then
begin
if not(showed) then
begin
ShowMessage('Процесс запущен');
showed:=true;
end;
end
else if showed
then showed:=false; |
|
#3
|
|||
|
|||
|
Работает!только вылетает много сообщений и когда откомпилировал в ехе вообще не работает(((
|
|
#4
|
||||
|
||||
|
Цитата:
Код:
ShowMessage('Процесс запущен');
showed:=true;Цитата:
Это как так? ![]() |
|
#5
|
|||
|
|||
|
Когда запускаю в делфе,открываю игру вылетает сообщение,закрываю,открываю опять вылетает.Откомпилировал в ехе запустил,открыл игру вылетело сообщение,закрыл открыл опять ничего не вылетело.
|
|
#6
|
||||
|
||||
|
Цитата:
|