Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

IDE или нет?   Найти похожие ветки 

 
stone ©   (2007-04-12 17:39) [0]

Как определить, что приложение запущено под IDE?


 
Johnmen ©   (2007-04-12 17:42) [1]

Найти окно :)


 
Сергей М. ©   (2007-04-12 17:47) [2]

В этом случае род.процессом является IDE-процесс ?)


 
stone ©   (2007-04-12 17:56) [3]

хмм, ну это понятно
я думал может при этом существует какая-то особая директива компилятора или что-то вроде того


 
Сергей М. ©   (2007-04-12 18:09) [4]


> особая директива компилятора


Компилятор-то тут причем ?)

Компилятор уже сделал свое дело - создал образ того самого твоего приложения.

"Мавр сделал свое дело" (С)

)


 
_Аноним   (2007-04-12 18:12) [5]

Тебя интересует наличие именно IDE, или любой отладчик?


 
stone ©   (2007-04-12 18:18) [6]

Меня интересует, запущено приложение из дельфи путем нажатия ф9 (ф8 и т.п.), или в обычном режиме, например из проводника?

Сразу оговорюсь. Задача не принципиальная, нужно в основном для удобства. Поэтому сложных операций не предлагать. Если нет быстрых способов, то и не надо.


 
_Аноним   (2007-04-12 20:25) [7]

function IsDebuggerPresent : BOOL; stdcall; external "KERNEL32.DLL" name "IsDebuggerPresent";


 
DrPass ©   (2007-04-13 01:22) [8]


> function IsDebuggerPresent

Дык, запущено из IDE и запущено из-под отладчика - две большие разницы.


 
{RASkov}   (2007-04-13 08:19) [9]

function IsRunDelphi: Boolean;
begin
 Result:=(FindWindow("TAppBuilder", nil)>0);
end;
.................
procedure TForm.ButtonClick();
begin
if not IsRunDelphi then ShowMessage("Sorry...функия еще в разработке");
end;


 
IceBeerg ©   (2007-04-13 11:47) [10]

Да чего тут сложнонго
Function GetParentProcessID:DWORD;
//Uses TlHelp32!!!
var
ProcessEntry:TProcessEntry32;
Snapshot,CurrentProcessId:THandle;
Begin
Result:=0;
CurrentProcessId:=GetCurrentProcessId();
Snapshot:=CreateToolhelp32Snapshot(th32cs_snapprocess,0);
ProcessEntry.dwSize:=SizeOf(ProcessEntry);
If Process32First(Snapshot,ProcessEntry) then
 Repeat
  If ProcessEntry.th32ProcessID=CurrentProcessId Then
   Begin
    Result:=ProcessEntry.th32ParentProcessID;
    Exit;
   End;
 Until Not Process32Next(Snapshot,ProcessEntry);
End;

Посмотри структуру ProcessEntry -  ProcessEntry.szExeFile переделай функцию...
Подойдет?


 
_Аноним   (2007-04-13 14:34) [11]


> DrPass ©  


> Дык, запущено из IDE и запущено из-под отладчика - две большие
> разницы.



> Сразу оговорюсь. Задача не принципиальная, нужно в основном
> для удобства. Поэтому сложных операций не предлагать. Если
> нет быстрых способов, то и не надо.



> {RASkov}  


Если Delphi запущена, но программа запущена не из под нее, что будет?


 
{RASkov}   (2007-04-13 15:09) [12]

> Если Delphi запущена, но программа запущена не из под нее, что будет?

Конкретно в моем примере:
procedure TForm.ButtonClick();
begin
if not IsRunDelphi then begin ShowMessage("Sorry...функия еще в разработке"); Exit; end;
.....
end;

Выполнится код обработчика ButtonClick без сообщения "Sorry...функия еще в разработке"
Не хочу рассказывать для чего я это использую, долгая история может получится....а объяснения не к чему здесь.
Автор вопроса пусть сам выбирает, что ему надо, а что нет. Он хотел простой вариант....разве не просто?



Страницы: 1 вся ветка

Текущий архив: 2007.05.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.149 c
11-1156441224
NORDmen
2006-08-24 21:40
2007.05.06
нужно сделать zip архив из kol программы


15-1175963150
Василий Кузнецов
2007-04-07 20:25
2007.05.06
Java


15-1176007036
Просто Васёк
2007-04-08 08:37
2007.05.06
Христос Воскресе!


2-1176830256
Игрок
2007-04-17 21:17
2007.05.06
Color(16)


2-1176446453
Бульбаш
2007-04-13 10:40
2007.05.06
Проблема с запуском софта