AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zugriffsverletzung bei Anzeigen eines Hints

Ein Thema von mquadrat · begonnen am 12. Sep 2011 · letzter Beitrag vom 13. Sep 2011
Antwort Antwort
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#1

Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 10:58
Folgendes Problem bei einer D2007 - Anwendung:

Code:
exception class  : EAccessViolation
exception message : Zugriffsverletzung bei Adresse 004CE110 in Modul 'Application.exe'. Lesen von Adresse 00000004.

004ce110 Application.exe Forms        TMonitor.GetBoundsRect
004ce0ee Application.exe Forms        TMonitor.GetWidth
004ba487 Application.exe Controls     THintWindow.ActivateHint
004ba6af Application.exe Controls     THintWindow.ActivateHintData
004d24fa Application.exe Forms        TApplication.ActivateHint
004d1ec1 Application.exe Forms        TApplication.HintTimerExpired
004cf14e Application.exe Forms        HintTimerProc
7e3696c2 USER32.dll                  DispatchMessageA
004d0e00 Application.exe Forms        TApplication.ProcessMessage
004d0e3a Application.exe Forms        TApplication.HandleMessage
004d112f Application.exe Forms        TApplication.Run
00773fa8 Application.exe Application 97 initialization
Die Anwendung läuft 24/7. Die Zugriffsverletzung wird ausgelöst (nach Benutzerberichten) wenn das Programm via Fernwartung (Teamviewer) aus der Minimierung wieder hergestellt wird. Ich kann das auf meinem Entwicklungssystem allerdings aktuell nicht reproduzieren.

Hat zufälligerweise von Euch jemand eine Idee, wo ich suchen könnte? Mir fehlt da aktuell noch der Ansatz.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 11:08
Hast du eine Pro Version von Delphi 2007? Wenn ja dann schau doch mal was beim Aufruf der Methode TMonitor.GetBoundsRect() steht.

Hast du alle Updates für D2007 installiert? Vielleicht bedarf es ja eines Fixes.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 11:14
TeamViewer basiert ja auf VNC. Und das arbeitet massiv mit Hooks aus Performancegründen. Vielleicht kann man diese "injections" deaktivieren. Das würde ich mal als erstes versuchen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 11:21
Auf den ersten Blick fallen mit zwei Gründe für diese Exception auf:

Der Prozedurzeiger MultiMon.GetMonitorInfo steht auf urplötzlich NIL.
(TMonitor.GetBoundsRect will darauf zugreifen)

Oder Screen.MonitorFromPoint(Point(Rect.Left, Rect.Top)); in THintWindow.ActivateHint liefert keinen Monitor (also NIL)
und die nachfolgenden Zugriffe wollen dann auf dieses Objekt zugreifen.


Tippen würde ich auf Letzeres, welches versucht den "Monitor" zu dem Hint zu finden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 11:35
Wir haben dort jeweils auch noch eine zweite Anwendung im Einsatz, die dieses Verhalten nicht zeigt.. Die betroffene Anwendung hatte mal ein Tray-Icon, das habe ich allerdings bereits entfernt. Da es sowieso auf dedizierten Rechnern läuft, werde ich jetzt erst mal das Minimieren verbieten.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 12:08
Hallo mquadrat,

Problem & Lösung bekannt:
http://qc.embarcadero.com/wc/qcmain.aspx?d=53932

TApplicationEvents nutzen, OnHint Handler zuweisen und folgendes einsetzen:
if Monitor.Handle = 0 then ApplicationEvents1.CancelDispatch;

Gruß,
Assertor
Frederik
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 12:41
mhh den QualityCentral Eintrag muss ich entweder übersehen haben, oder Google hat ihn nicht gefunden
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 12. Sep 2011, 16:21
mhh den QualityCentral Eintrag muss ich entweder übersehen haben, oder Google hat ihn nicht gefunden
Macht doch nichts, ich fand nur das "Minimieren verbieten" so brachial, dass ich schnell nachgesehen habe

Viele Grüße,

Assertor
Frederik
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Zugriffsverletzung bei Anzeigen eines Hints

  Alt 13. Sep 2011, 08:34
Die Rechner werden für nichts anderes verwendet. Steht zumindest so im Vertrag
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:37 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