Italia
Foro

USB automaticamente erkennung

 

Gabor
Krizsma
Ciao,

Ich habe folgendes Problem:
Ich brauche eine Funktion, was automatisch erkennt, wenn ich ein USB Stick reinstecke, und als returnparameter gibt mir die Laufwerk (h:, oder F: etc) des USB zurück.
Erstes Teil habe ich schon, jetzt bitte ich aber Aiuto... Wie kann ich die Laufwerk Info rausziehen?

Hilfeseiten fürs Problem (hoffentlich)
[...] 
So weit ich verstehe, die &UlParam sollte meine Info enthalten, aber das kann ich nicht behandeln

Mein kurzprogramm (xprofan 11 fullversion)
KompilierenMarkierenSeparieren
Also Frage: Welche Laufwerk Buchstabe hat die reingesteckte USB?

Ich hoffe das hier ist das richtige Foro.... oh, und deutsch ist nicht meine Muttersprache, so ich bitte um Verständnis...
 
Ein Ausländer, der mit Xprofan programmiert !
Entschuldigung für meine Fehlern...
21.05.2010  
 



Hey Gabor, Benvenuto!

Vielleicht hilft Dir: [...]  - schau mal drüber.
 
21.05.2010  
 




Gabor
Krizsma
Hey, danke per die Antwort !
Leider die GetLogicalDrives und GetDriveType Funktionen helfen mir nicht

Problem ist, wenn ich z.B. schon die dritte USB Stick reinstecke, woher soll das Programm wissen,
welche war das letzte?

Deswegen habe ich versucht, diese Broadcast von windows zu lesen, aber ich habe so weinge Erfahrungen mit Xprofan (3 Monaten so weit.), und kann ich die Systemvariable &UlParam nicht auslesen.

Aber von dieses modifiziertes Programm sieht mann, das es nicht Leer ist !
KompilierenMarkierenSeparieren
Ich bin schon total neugierig, was per eine Info enthaltet diese Variable
Meine Vermutung von msdn.com:


The system broadcasts the DBT_DEVICEARRIVAL device event when a device or piece of media has been inserted and becomes available.

To broadcast this device event, the system uses the WM_DEVICECHANGE message with wParam set to DBT_DEVICEARRIVAL (das ist $8000 in die Quelltext) and lParam set as described following:
A pointer to a structure identifying the device inserted. The structure consists of an event-independent header, followed by event-dependent members that describe the device. To use this structure, treat the structure as a DEV_BROADCAST_HDR structure, then check its dbch_devicetype member to determine the device type.


Habt ihr / hast du vielleicht Ideen, wie kann ich die Info von &UlParam auslesen?
(Ich weiss nicht ob das ein Struct oder ein Bereich ist#... keine Ahnung leider )

Gabor
 
Ein Ausländer, der mit Xprofan programmiert !
Entschuldigung für meine Fehlern...
21.05.2010  
 



Hallo Gabor,

meinst Du sowas?
KompilierenMarkierenSeparieren
CLS
userMessages 16//wm_close
subClass %hWnd,1

While 1

    WaitInput
    case %uMessage=16 : break

Wend

End

subClassProc

    if subClassMessage(%hWnd,537) and (&sWParam=$8000)// WM_DEVICECHANGE and DBT_DEVICEARRIVAL

        print "Size:",long(&sLparam,0)
        print "Type:",long(&sLparam,4)
        case long(&sLparam,4)=2 : print "Laufwerksbuchstabe:",unitMask2DriveLetter(long(&sLparam,12))//DBT_DEVTYP_VOLUME

    endif

endproc

proc unitMask2DriveLetter

    parameters unitMask&
    declare s$

    whileLoop 26

        if (unitMask& & 1)=1

            s$=chr$(&loop+64)
            break

        endif

        unitMask&=unitMask& >> 1

    wend

    return s$

endproc


Usermessages sind hier statt SubClassing weniger geeignet, weil aus einem Speicher der Nachricht gelesen wird, welcher aber nur zur Nachrichtenzeit definitiv besteht und UserMessages aber ((wenn auch) "zum Glück") versetzt/ gestackt einflattern und gelieferte Speicheradressen nicht mehr bestehen müssen wenn man aus diesen dann versucht "verspätet" auszulesen.

Mit obigem (auf SubClassing-Basis-) Code kann ich erfolgreich mein Handy-Laufwerk erkennen. (hatte kein anderes Gerät zur Hand )

Hoffe es hilft. ^^

>> ich weiss nicht ob das ein Struct oder ein Bereich ist#

Kann nur beides sein und ein Bereich ist es immer - "Struktur" beschreibt ("nur") die Anordnung der Informationen im Speicher.
 
21.05.2010  
 




Gabor
Krizsma
Ciao,

Das war genau, was ich gesucht habe !
Vielen-vielen Dank per die schnelle Antwort

Ich verstehe schon das Message-System wesentlich besser !
 
Ein Ausländer, der mit Xprofan programmiert !
Entschuldigung für meine Fehlern...
25.05.2010  
 



Gern geschehen.

Wenn das Thema per Dich "erledigt" ist, dann bitte auf erledigt/ inaktiv setzen (damit es aus den Indexen herausfällt) - hierzu oben auf "Thema: Aktiv" klicken und auf der Folgeseite [X] Aktiv abwählen.

Weiteres zum Thema: [...] 
 
25.05.2010  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

5.155 Views

Untitledvor 0 min.
Normann Strübli30.01.2023
Walter15.05.2021
E.T.25.02.2018
Pauli24.07.2013
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

iF (3x)
Gabor Krizsma (3x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie