AGB  ·  Datenschutz  ·  Impressum  







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

[JEDI] TUSBDeviceTree: USB System absturz?

Ein Thema von Nuclear-Ping · begonnen am 22. Dez 2007 · letzter Beitrag vom 28. Dez 2007
 
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: [JEDI] TUSBDeviceTree: USB System absturz?

  Alt 28. Dez 2007, 17:25
Ok, irgendwie ist die "TUSBDeviceTree"-Komponente verbuggt oder so.

Folgendes ließ sich auf 2 XP-Systemen und 1 Vista-System immerwieder reproduzieren:

- Neues Projekt
- Button + Edit + OpenDialog auf die Form
- USBDeviceTree-Komponente auf die Form
- Button-Event: if OpenDialog1.Execute then Edit1.Text := OpenDialog1.FileName;

Anwendung starten, Button klicken und im Dialog entweder Abbrechen oder 'ne Datei wählen. Das Ergebnis ist immer das, dass die Anwendung im Hintergrund nicht mehr reagiert. Man kann zwar das Fenster verschieben und über Radio- oder Checkboxen sieht man 'nen Hover-Effekt von der Maus, aber keine Komponente / Programmleiste reagiert mehr auf Eingaben. Man kann das Programm nur noch durch den Task-Manager schließen.
Entfernt man die USBDeviceTree-Kompo von der Form, funktioniert wieder alles.

Beispiel-Projekt ist im Anhang.

[edit]
Das Problem wird im constructor TUSBDeviceTree.Create verursacht, durch setzen des Hooks. Keine Ahnung, wie oder warum. Aber wenn man ihn auskommentiert, funktioniert die Anwendung mit der Kompo wieder. Wahrscheinlich wird der Wechsel der USB-Geräte nicht mehr erkannt, dafür benutze ich aber erstmal ein Work-Around (http://www.delphi3000.com/articles/article_4841.asp?SK=).
Delphi-Quellcode:
constructor TUSBDeviceTree.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FDeviceChangeEvent := nil;
  LoadConfigManagerAPI;
  RescanDevices;
{  if not (csDesigning in ComponentState) then
    Application.HookMainWindow(EventPipe);}

end;

destructor TUSBDeviceTree.Destroy;
begin
  // to prevent strange problems
  FDeviceChangeEvent := nil;
{  if not (csDesigning in ComponentState) then
    Application.UnhookMainWindow(EventPipe);}

  Clear;
  UnloadConfigManagerAPI;
  inherited Destroy;
end;
[/edit]
Angehängte Dateien
Dateityp: exe usbtreetest_458.exe (199,0 KB, 42x aufgerufen)
Dateityp: zip usbtreetestsrc_163.zip (3,7 KB, 42x aufgerufen)
  Mit Zitat antworten Zitat
 


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 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