![]() |
Problem mit der Manifest-Geschichte
Liste der Anhänge anzeigen (Anzahl: 2)
Moin
habe in meinem Programm eine ListView - eingestellt auf Report nun kommt es mit der Manifest-Geschichte zu Problemen sobald ich mit der Maus die Column berühre Dann erhalte ich dieses CPU Fenster siehe Bild 1 und das Programm wird gestoppt! Bild 2 zeigt worauf ich genau kommen muss mit der Maus damit es zum Fehler kommt! ps.: wenn ich das Programm ausserhalb von Delphi laufen lasse gibt es keine probleme doer Fehlermeldungen! Dennoch nervt es zu entwicklungszeit! |
Re: Problem mit der Manifest-Geschichte
|
Re: Problem mit der Manifest-Geschichte
danke dür die schnelle Hilfe!
Nur verstehe ich das nicht und weis auch nicht wie ich das einbinden muss?! Muss das in die OnCreate oder? |
Re: Problem mit der Manifest-Geschichte
Du fügst die Procedure "PatchInt3" einfach in deine Unit der Mainform ein.
Und dann schreibst du ganz unten, vor dem end. noch das hin:
Delphi-Quellcode:
Sieht nachher also so aus:
initialization
// nur wenn ein Debugger vorhanden, den Patch ausführen if DebugHook<>0 then PatchINT3;
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} // Hier steht noch dein anderer Code :) procedure PatchINT3; var NOP : Byte; NTDLL: THandle; BytesWritten: DWORD; Address: Pointer; begin if Win32Platform <> VER_PLATFORM_WIN32_NT then Exit; NTDLL := GetModuleHandle('NTDLL.DLL'); if NTDLL = 0 then Exit; Address := GetProcAddress(NTDLL, 'DbgBreakPoint'); if Address = nil then Exit; try if Char(Address^) <> #$CC then Exit; NOP := $90; if WriteProcessMemory(GetCurrentProcess, Address, @NOP, 1, BytesWritten) and (BytesWritten = 1) then FlushInstructionCache(GetCurrentProcess, Address, 1); except //Do not panic if you see an EAccessViolation here, it is perfectly harmless! on EAccessViolation do ; else raise; end; end; initialization // nur wenn ein Debugger vorhanden, den Patch ausführen if DebugHook<>0 then PatchINT3; end. |
Re: Problem mit der Manifest-Geschichte
:thumb: :thumb: :thumb: Danke - super hilfe - super Erklärung..... einfach top danke und ein schönes ruhiges Wochenende
|
Re: Problem mit der Manifest-Geschichte
Bitte ;)
|
Re: Problem mit der Manifest-Geschichte
@delphinia
Vergiss bitte nicht deine offene Frage noch als beantwortet z markieren. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 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