Delphi entwicklungs umgebung
Wie kann ich feststellen ob ich mich in der Delphi Entwicklungs Umgebung befinde.
Der Hintergrund .. möchte das Registrieren von Keys nur zulassen wenn das Programm als eigenständige Exe läuft. Da ich ansonsten nicht mehr den Quelltext vernünftig debuggen kann weil die Tasten außer Funktion gesetzt wurden (bzw.. Funktionen im EXE-Programm steuern) gruss Emil |
Re: Delphi entwicklungs umgebung
|
Re: Delphi entwicklungs umgebung
oder wenn dir was Aktuelleres, von vor nichmal 6 Stunden (aktuell sogar noch auf Mitte der 1. Seite der aktuellen Themen), genehm wäre ...
http://www.delphipraxis.net/internal...t.php?t=141059 |
Re: Delphi entwicklungs umgebung
Danke euch :)
Habe mich mal dafür entschieden
Delphi-Quellcode:
Innerhalb der IDE scheint es zu funktionieren
function IsDebuggerPresent: boolean; stdcall;
asm MOV EAX, FS:[030H] 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 [ECX+$54], 00000001 SBB EAX, EAX INC EAX RET end; gruss Emil |
Re: Delphi entwicklungs umgebung
Ähm, der Code "springt" aber auch "an", wenn ein Debugger mit deinem Prozessverbunden ist. Für Komponenten gibt es einen Componentenstate, der dir sagt, ob du dich in der IDE befindest oder nicht.
Warum musst du dass denn wissen? |
Re: Delphi entwicklungs umgebung
Zitat:
Danach habe ich keinen zugriff mehr auf die Tasten um die zeilen durchzugehen beim debuggen. Auszug: Shortcut_1=F8 Shortcut_2=F7 Shortcut_3=F9 steht in der INI...
Delphi-Quellcode:
procedure ShortCut_SetupHotkey(Sender: TObject);
begin SetHotkey(Form1.Handle,1,ShortCut_1); SetHotkey(Form1.Handle,2,ShortCut_2); SetHotkey(Form1.Handle,3,ShortCut_3);
Code:
wie schon gesagt ist nicht von mir muss aber damit leben.
function SetHotkey(aHandle:THandle; HotkeyID:cardinal; Shortcut:TShortcut; AutoRegister:boolean=true):boolean;
var Key: Word; Shift:TShiftstate; Modifiers:integer; begin result:=false; if Shortcut = 0 then exit; Modifiers:=0; Unregisterhotkey(aHandle,HotkeyID); ShortCutToKey(ShortCut, Key, Shift); // unit Menus; if ssCtrl in Shift then Modifiers:=MOD_CONTROL; if ssAlt in Shift then Modifiers:=Modifiers or MOD_ALT; if ssShift in Shift then Modifiers:=Modifiers or MOD_SHIFT; if AutoRegister then result:=RegisterHotKey(aHandle, HotkeyID, Modifiers, Key) else result:=true; end; Was das debuggen extrem erschwert oder gar unmöglich macht. gruss Emil |
Re: Delphi entwicklungs umgebung
Ich benutze:
if DebugHook = 0 then... stahli |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 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