AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Herausfinden ob Programm über Debugger ausgeführt wird
Thema durchsuchen
Ansicht
Themen-Optionen

Herausfinden ob Programm über Debugger ausgeführt wird

Ein Thema von Mikescher · begonnen am 25. Mär 2010 · letzter Beitrag vom 25. Mär 2010
Antwort Antwort
Benutzerbild von Mikescher
Mikescher

Registriert seit: 3. Jun 2008
Ort: Offenburg
265 Beiträge
 
Delphi 2009 Professional
 
#1

Herausfinden ob Programm über Debugger ausgeführt wird

  Alt 25. Mär 2010, 14:32
Hallo,

gibt es in Delphi eigentlich eine Möglichkeit abzufragen ob die exe "normal" gestartet wurde oder über den Delphi Debugger ?

Der Grund ist, dass man bevor mein Hauptprogramm startet immer ein Intro-Video anschauen muss. Und nach dem Motto "Wasser predigen, Wein trinken" will ich nicht jeders mal beim testen das Video anschauen . Bisher hab ich den "Video-Code-Abschnitt" einfach auskommentiert, aber ich fand die Idee interessant ob so was geht (und ich befürchte dass ich am Ende vergesse den Code wieder zu dekommentieren).

MfG Mikescher
Mike
Operation gelungen, Patient tot.

http://www.mikescher.com
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Herausfinden ob Programm über Debugger ausgeführt wird

  Alt 25. Mär 2010, 14:35
Such mal im Forum nach IsDebuggerPresent.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Herausfinden ob Programm über Debugger ausgeführt wird

  Alt 25. Mär 2010, 14:36
Du könntest das überspringen des Intros zum Beispiel auch per Parameter überspringen (prüfen ob ein bestimmter Parameter übergeben wurde).
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: Herausfinden ob Programm über Debugger ausgeführt wird

  Alt 25. Mär 2010, 14:41
Zitat von Mikescher:
gibt es in Delphi eigentlich eine Möglichkeit abzufragen ob die exe "normal" gestartet wurde oder über den Delphi Debugger ?
Ja, das ist einfach:

Delphi-Quellcode:
function RunningInDelphi: Boolean;
begin
   Result := DebugHook <> 0;
end;
So kann man das ganze einfach testen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
    if RunningInDelphi then
      Color := clRed
   else
      Color := clBlue;
end;
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von Mikescher
Mikescher

Registriert seit: 3. Jun 2008
Ort: Offenburg
265 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Herausfinden ob Programm über Debugger ausgeführt wird

  Alt 25. Mär 2010, 14:44
Danke euch ,

ich hab diesen Code mit Balus Suchbegriff gefunden:
Delphi-Quellcode:
function IsDebuggerPresent: boolean; stdcall;
asm
  MOV EAX, DWORD PTR FS:[$30]
  TEST EAX, EAX
  JS @@W9X
@@WNT:
  MOV EAX, FS:[$18]
  MOV EAX, [EAX+$30]
  MOVZX EAX, [EAX+2]
  RET
@@W9X:
  MOV EAX, [$BFFC9CE4]
  MOV ECX, [EAX]
  CMP DWORD PTR [ECX+$54], 1
  SBB EAX, EAX
  INC EAX
  RET
end;
Aber ich glaub ich nehme Den von MaBuSE, der ist kürzer und funktioniert auch .

Also Thanks

MfG Mike
Mike
Operation gelungen, Patient tot.

http://www.mikescher.com
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Herausfinden ob Programm über Debugger ausgeführt wird

  Alt 25. Mär 2010, 14:48
Der von Mabuse sagt nur ob es aus Delphi heraus ausgeführt wird (also das was du wissen wolltest). Die umfangreichere Variante prüft generell auf Debugger wenn ich das richtig sehe.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 16:10 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