Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2008, 19:20   #1
RealSHELS
Форумчанин
 
Аватар для RealSHELS
 
Регистрация: 04.03.2008
Сообщений: 176
По умолчанию Запущена ли програма?

Помогите вот это реализовать програмно:
if моя програма запущена then ничего не делать else запустить.
RealSHELS вне форума Ответить с цитированием
Старый 14.06.2008, 19:59   #2
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

Не проверял, но должно сработать:
Код:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Tlhelp32,
  SysUtils,
  Windows;

{$R *.res}

function ExistsProcess(exename:string): boolean;
const
  process_terminate=$0001;
var
  co:boolean;
  fs:thandle;
  fp:tprocessentry32;
  i:integer;
begin
  result:=false;
  fs:=createtoolhelp32snapshot(th32cs_snapprocess, 0);
  fp.dwSize:=sizeof(fp);
  co:=process32first(fs, fp);
  while integer(co)<>0 do
    begin
      if ((uppercase(extractfilename(fp.szExeFile)))=uppercase(exename)) or (uppercase(fp.szExeFile)=uppercase(exename)) then
        result:=true;
        co:=process32next(fs, fp);
    end;
  closehandle(fs);
end;

begin
if ExistsProcess(paramstr(0))=false then
 begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
 end
 else
  exit;
end.
Но имя exe должно быть одним и тем же иначе не сработает..
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 14.06.2008, 20:03   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

http://programmersforum.ru/showthread.php?t=21585
B_N вне форума Ответить с цитированием
Старый 14.06.2008, 21:28   #4
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

if Findwindow(nil, 'Caption твоей программы')<>0 then exit else ShellExecute();
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 14.06.2008, 21:54   #5
Черничный
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 293
По умолчанию

В uses модуль syncobjs

Код:
Var
CheckEvent: TEvent; 
Begin
CheckEvent: =TEvent.Create (nil, false, true, ‘Program’);
If CheckEvent.WaitFor (10) <> wrSignaled then
// программа запущенна ничего не делать
else
// программа не запущенна
End;
Черничный вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Програма чтения из файла на дельфи terminadoor Помощь студентам 18 03.07.2008 18:14
Как проверять, запущена ли определенная программа? Bill Gates Общие вопросы Delphi 1 04.01.2008 17:29
Програма для вывода геометрической фигуры Hworang Паскаль, Turbo Pascal, PascalABC.NET 8 30.10.2007 19:42
Програма тестирования студентов. lin Помощь студентам 6 20.04.2007 09:23
Запущена программа или нет Маркъ Общие вопросы Delphi 6 05.02.2007 18:21