AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie kann ich alle CD-ROM-Laufwerke herausfinden und...
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

Ein Thema von Andreas L. · begonnen am 12. Sep 2004 · letzter Beitrag vom 13. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Andreas L.
(Gast)

n/a Beiträge
 
#1

Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 17:44
Hi,
wie kann ich alle CD-ROM-Laufwerke herausfinden und diese dann in eine ListBox eintragen ohne auf die Funktion GetDriveType zuzugreifen? Folgenden Code hab ich aber den kann ich in der Lazarus IDE (benutzt den Freepascal compiler) nicht verwenden, grund: GetDriveTyp ist dort in keiner Unit verfügbar...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  I,Typ: Integer;
  s: String;
begin
  For i := 0 To 25 do
    begin
      s := Chr(i + 65) + ':\';
      typ := GetDriveType(PChar(s));
      If Typ <> 0 Then
        Case Typ of
          DRIVE_CDROM :
            Listbox1.Items.Add(Chr(i + 65) + ': CDROM');
        end;
    end;
end;
Was kann ich da tun?

Greetz und thx
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 17:47
Moin Andreas,

GetDriveType ist eine API Funktion.
Ich kenne jetzt den Freepascal Compiler nicht, aber man müsste doch Funktionen importieren können...
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 17:48
Zitat von onlinehome:
Folgenden Code hab ich aber den kann ich in der Lazarus IDE (benutzt den Freepascal compiler) nicht verwenden, grund: GetDriveTyp ist dort in keiner Unit verfügbar...
ich kenn free-pascal nicht, aber ich glaube kaum dass du da keine externen funktionen einbinden kannst, oder?
function GetDriveType; external kernel32 name 'GetDriveTypeA'; so is die funktion in delphi deklariert

//Edit: mist, zu spät
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#4

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 18:05
Schaut mal meinen Screenshot im Anhang an. Wo ist da der Fehler?
Miniaturansicht angehängter Grafiken
error_385.gif  
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 18:32
Zitat von onlinehome:
Schaut mal meinen Screenshot im Anhang an. Wo ist da der Fehler?
darin dass er erwartet das du die funktion vollständig deklarierst. probier mal
Delphi-Quellcode:
interface

  function GetDriveType(lpRootPathName: PChar): UINT; stdcall;
  {$EXTERNALSYM GetDriveType}

implementation

  function GetDriveType; external kernel32 name 'GetDriveTypeA';
[Edit3] jetz aba [/Edit3]
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#6

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 18:54
Geht trotzdem nicht.
Code:
Undefinied: UINT
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 18:57
Delphi-Quellcode:
type
  UINT = LongWord;
  {$EXTERNALSYM UINT}
oder nimm gleich integer
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#8

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 19:00
Jetzt hab ich Integer genommen:
Code:
Undefinied: external
  Mit Zitat antworten Zitat
Benutzerbild von Nothine
Nothine

Registriert seit: 3. Jul 2004
Ort: Mülheim an der Ruhr
198 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 12. Sep 2004, 19:02
da bleibt nur noch zu erkennen das free pascal wohl keine externe prozedur-verlinkung unterstützt... was uns in deinem fall wieder an die anfangsfrage zurückführt, wie ermittelt man den DriveType ohne die windows funktion
if ThisPost is senseless then
ThisPost.WasPostedBy := SomeoneElse();
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Wie kann ich alle CD-ROM-Laufwerke herausfinden und...

  Alt 13. Sep 2004, 08:19
Zitat von Nothine:
da bleibt nur noch zu erkennen das free pascal wohl keine externe prozedur-verlinkung unterstützt... was uns in deinem fall wieder an die anfangsfrage zurückführt, wie ermittelt man den DriveType ohne die windows funktion
Ich würde sagen: Gar nicht. Der Compiler muss doch die externe Prozedur-Verlinkung unterstützten. Andersweitig könnte er doch keine unter Windows lauffähigen Programme erstellen werden (wenn irgendwas über DOS-Funktionalität hinauslaufen sollte.

Lass im Beispielcode einfach {$EXTERNALSYM ...} weg: Sollt auch ohne gehen. $EXTERNALSYM ist evtl. nur für den C++-Builder relevant.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:07 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