Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm von der IDE aus gestartet ? (https://www.delphipraxis.net/57407-programm-von-der-ide-aus-gestartet.html)

Amateurprofi 20. Nov 2005 19:44


Programm von der IDE aus gestartet ?
 
Weiß jemand, wie ich programmseitig erkennen kann, ob das Programm von der IDE ausgehend gestartet wurde (also der Debugger an ist) ?
Hintergrund :
Während der Programmentwicklung ist in meinen Menus immer ein MenuItem "Test", das mir erlaubt, bestimmte TestRoutinen laufen zu lassen.
Wenn ich das Programm weitergebe, soll dieses MenuItem nicht sichtbar sein.
Nun wäre es ja leicht, beim Programmstart (z.B, unter FormCreate) ein "miTest.Visible:=false"
einzufügen, jedoch soll das nur dann geschehen, wenn das Programm nicht von der IDE aus gestartet
wurde.
Eine Möglichkeit wäre, das File-Datum der .exe abzufragen und dann, wenn es nahe bei der Systemzeit liegt, anzunehmen, daß das Programm von der IDE aus gestartet wurde. Aber ich denke das müßte auch einfacher zu machen sein.
Vielen Dank für hilfreiche Hinweise.

malo 20. Nov 2005 19:49

Re: Programm von der IDE aus gestartet ?
 
Du kannst dir ja eine Datei erzeugen, in der ein bestimmter String steht. Und dann überprüfst du, ob die Datei existiert, und ob der String richtig ist. Wenn ja, zeigst du das Menu an, sonst nicht.

edit: Damit würdest du dann jedenfalls dafür sorgen, dass es bei dir angezeigt wird, und woanders nicht. ;)

Tubos 20. Nov 2005 19:51

Re: Programm von der IDE aus gestartet ?
 
Ich glaube man kann in der Delphi IDE einstellen dass dem Programm bei Ausführung immer ein Parameter übergeben wird.
Im Programm überprüfst du ob der gesetzt ist. Wenn ja, ist das Programm aus der IDE heraus gestartet worden.

Basilikum 20. Nov 2005 19:53

Re: Programm von der IDE aus gestartet ?
 
MSDN-Library durchsuchenIsDebuggerPresent

malo 20. Nov 2005 19:56

Re: Programm von der IDE aus gestartet ?
 
Zitat:

Zitat von Basilikum

Dann könnte man aber mogeln, und das Programm einfach debuggen, z.B. mit Olly ;)

himitsu 20. Nov 2005 20:01

Re: Programm von der IDE aus gestartet ?
 
Zitat:

Zitat von Amateurprofi
Eine Möglichkeit wäre, das File-Datum der .exe abzufragen und dann, wenn es nahe bei der Systemzeit liegt, anzunehmen, daß das Programm von der IDE aus gestartet wurde.

Der Kompiler erzeugt aber nicht bei jedem Start des Programms deine EXE ... vorallem wenn nichts im QuellCode verändert wurde.

Und dann hätte dir die DP-Suche sogar folgenden Thread zeigen können ;)
http://www.delphipraxis.net/internal...light=debugger

Oder du hättest gleich direkt in der CodeLib suchen können.
http://www.delphipraxis.net/internal...ct.php?t=54028

ringli 20. Nov 2005 20:06

Re: Programm von der IDE aus gestartet ?
 
Delphi-Quellcode:
if DebugHook <> 0 then
  begin
    // do something
  end

faux 20. Nov 2005 20:22

Re: Programm von der IDE aus gestartet ?
 
Hallo!

Vielleicht hilf dir dies http://www.dsdt.info/tipps/?id=398 oder dies http://www.dsdt.info/tipps/?id=399.
Grüße
Faux

Basilikum 20. Nov 2005 20:40

Re: Programm von der IDE aus gestartet ?
 
Zitat:

Zitat von malo
Zitat:

Zitat von Basilikum

Dann könnte man aber mogeln, und das Programm einfach debuggen, z.B. mit Olly ;)

das stimmt schon.... allerdings sind, wenn nur der auslösende Menu-Punkt versteckt wird, trotzdem sämtliche Debug-Routinen im Kompilat vorhanden.... sprich: an die Debug-Infos kommt man sowieso...

in meinen Projekten löse ich dies mittels Compiler-Conditions in der Art von
Delphi-Quellcode:
{$IFDEF Debug }
  If (x = 1) Then OutputDebugString('x = 1');
{$ENDIF }
nur so kann sichergestellt werden, dass keine Infos im Kompilat auftachen, die allenfalls niemanden etwas angehen......

Amateurprofi 20. Nov 2005 21:01

Re: Programm von der IDE aus gestartet ?
 
Problem gelöst.
Am überzeugendsten war für mich die Vorschlag von ringli, der identisch war mit
dem zweiten Tip von faux.
Herzlichen Dank an alle.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz