AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm von der IDE aus gestartet ?

Ein Thema von Amateurprofi · begonnen am 20. Nov 2005 · letzter Beitrag vom 20. Nov 2005
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.057 Beiträge
 
Delphi XE2 Professional
 
#1

Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 20:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 20:49
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.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#3

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 20:51
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.
Lukas
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#4

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 20:53
MSDN-Library durchsuchenIsDebuggerPresent
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 20:56
Zitat von Basilikum:
Dann könnte man aber mogeln, und das Programm einfach debuggen, z.B. mit Olly
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 21:01
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
508 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 21:06
Delphi-Quellcode:
if DebugHook <> 0 then
  begin
    // do something
  end
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 21:22
Hallo!

Vielleicht hilf dir dies http://www.dsdt.info/tipps/?id=398 oder dies http://www.dsdt.info/tipps/?id=399.
Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#9

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 21:40
Zitat von malo:
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......
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.057 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Programm von der IDE aus gestartet ?

  Alt 20. Nov 2005, 22:01
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz