Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.059 c