![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разное поведение программы при выполнении и отладке [D2005]
И. Павел © (2009-05-29 11:19:00)Здравствуйте.
Мне нужно менять поведение программы, в зависимости от того, отлаживаю я ее или же она выполняется у пользователя. Как можно определить, запущена ли программа для отладки в Delphi, или выполняется сама по себе? Может быть, есть какая-нибудь константа(как в случае с определением – находится компонент в design time или нет)?
И. Павел (2009-05-29 17:24:00) [1]
> clickmaker ©
Спасибо. Сменил выходную директорию, так что теперь и отладку можно не отслеживать!
clickmaker (2009-05-29 14:40:00) [2]> если забуду поменять ее перед началом отладки, могут удалиться
> исходники
а не надо экзешник, да и dcu класть вместе с исходниками. Для этого в настройках проекта есть output dir
И. Павел (2009-05-29 14:36:00) [3]
> Ega23 ©
Спасибо.
Ega23 (2009-05-29 14:29:00) [4]
> Подскажите, пожалуйста, где эту директиву указать?
Project -> Options -> Directories/Conditionals -> Conditionals defines
И. Павел (2009-05-29 14:25:00) [5]
> Ega23 ©
Просмотрел все опции проекта, но ничего связанного с директивами компиляции не нашел. Подскажите, пожалуйста, где эту директиву указать? Или DEVELOPER нужно объявлять вручную?
{$DEFINE DEVELOPER}
{$IFDEF DEVELOPER}
Caption:='Разработка';
{$endif}
> Сергей М. ©
Нет. Просто программа перед завершением чистит свою папку. Сейчас я использую константу, но если забуду поменять ее перед началом отладки, могут удалиться исходники.
Сергей М. (2009-05-29 13:04:00) [6]
> И. Павел (29.05.09 11:19)
Уж не защитой ли приложения от взлома ты озаботился ?
Это я к тому, что подобные проверки с легкостью обходят даже начинающие "кулхацкеры"
Ega23 (2009-05-29 13:00:00) [7]Нужно директиву компилляции в опциях проекта указать.
И. Павел (2009-05-29 12:03:00) [8]Ega23, Rouse_ © спасибо. С IsDebuggerPresent разобрался:
function IsDebuggerPresent:boolean; stdcall; external 'kernel32.dll' name 'IsDebuggerPresent';
а DELEVOPER у меня всегда не определен. Может быть, для него нужно что-то подключить?
Rouse_ (2009-05-29 11:33:00) [9]if IsDebuggerPresent then - мы под отладчиком
Ega23 (2009-05-29 11:27:00) [10]
{IFDEF DEVELOPER}
......
{$ENDIF}