Avatar billede poull Nybegynder
17. februar 2003 - 14:07 Der er 9 kommentarer og
1 løsning

Event når der indsættes/fjernes en CD

Hej

Jeg ønsker at kunne modtage en event når man både fjerne og indsætter en CD i et eller flere CD-rom dreve.

Jeg har prøvet de komponenter der var torry men selv efter en del besvær med at få dem konverteret til Delphi 7, så virker ingen af dem. Det som jeg ser som en løsning nu er så at sætte en tråd til at holde med drevet, men det ønsker jeg ikke.

Grunden til at disse komponenter ikke virker er enten fordi at jeg Delphi 7 eller Windows XP. Så jeres forslag til gøre dette skal gerne virke under disse to.

Håber i ved noget
Avatar billede stoney Nybegynder
17. februar 2003 - 15:50 #1
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
  procedure WMDeviceChange(var Msg: TMessage); message WM_DeviceChange;

    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.WMDeviceChange(var Msg: TMessage);
const
DBT_QUERYCHANGECONFIG = $0017;
DBT_CONFIGCHANGED = $0018;
DBT_CONFIGCHANGECANCELED = $0019;
DBT_DEVICEARRIVAL = $8000;
DBT_DEVICEQUERYREMOVE = $8001;
DBT_DEVICEQUERYREMOVEFAILED = $8002;
DBT_DEVICEREMOVEPENDING = $8003;
DBT_DEVICEREMOVECOMPLETE = $8004;
DBT_DEVICETYPESPECIFIC = $8005;
DBT_USERDEFINED = $FFFF;
var
tmpStr : String;
begin
inherited ;
case Msg.wParam of
DBT_DEVICEARRIVAL:
tmpStr := 'CD inserted in drive';
DBT_DEVICEREMOVECOMPLETE:
tmpSTr := 'CD removed from drive';
end;
ShowMessage(tmpStr);
end;


end.

Stoney
Avatar billede poull Nybegynder
17. februar 2003 - 20:04 #2
Jeg tester det enten i aften eller på onsdag og vender tilbage der efter, men kan du oplyse hvor du fandt det?
Avatar billede poull Nybegynder
17. februar 2003 - 22:16 #3
Det virker fint .. mange tak

Men vil du ud med hvor du fandt det ?
Avatar billede poull Nybegynder
17. februar 2003 - 22:23 #4
Forresten ... hvorfor har du inherited med din procedure (ved godt at den kalder "forfædrens" procedure af navn, men kan ikke se hvad den laver her)
Avatar billede stoney Nybegynder
17. februar 2003 - 22:31 #5
Jeg aner ikke hvor jeg har fundet det.
Når jeg falder over over et godt tip på nettet
gemmer jeg det i min egen lille frække database.
Men jeg er ved at lave min egen egen delphi hjemmeside
hvor alle mine tip og lign. vil blive tilgængelige.
Siden bliver selvfølgelig lavet i Delphi/ISAPI :-)

Den med inherit har du faktisk ret i, men som sagt det var
et tip jeg hev frem fra gemmerne.(ren copy/paste)

Stoney
Avatar billede poull Nybegynder
17. februar 2003 - 22:38 #6
ok :) .. det er også tilladt at være doven ;)
Avatar billede stoney Nybegynder
17. februar 2003 - 22:42 #7
Der er et lign. her
http://www.swissdelphicenter.com/en/showcode.php?id=372

"De" bruger også inherit

Stoney
Avatar billede poull Nybegynder
18. februar 2003 - 15:40 #8
Jeg har lidt problemer når jeg prøver at overføre den kode som ellers virkede, til en komponent. For der sker blot det at den slet ikke modtager nogle formor for messages.

Jeg har kigget lidt på en anden komponent, som dog ikke virker i Delphi 7, bruger
AllocateHWnd(en procedure);
Altså noget med at de beder om at skulle modtage messeges, men jeg kan ikke helt få det til at virke.

Nogen der kan overskue dette kort? (hvis det bliver bliver besværtligt opretter jeg gerne nyt spørgsmål)
Avatar billede athlon-pascal Juniormester
18. februar 2003 - 19:22 #9
Stoney -> "Men jeg er ved at lave min egen egen delphi hjemmeside
hvor alle mine tip og lign. vil blive tilgængelige."
http://www.tradestone.dk/ ?
Avatar billede poull Nybegynder
01. marts 2003 - 23:27 #10
Nogen af jer der har en ide om hvorfor disse events ikke bliver sendt på min bærbar ?

Den kører ogås Win XP.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester