<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Neu erkanntes USB-Laufwerk Laufwerksbuchstaben ermitteln]]></title><description><![CDATA[<p>Hallo,<br />
ich stelle über MessageHandler fest ob ein USB Gerät(in dem Fall eine Kamera) eingesteckt wird.</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DEVICECHANGE, Messages::TMessage, wmDevChange);
  END_MESSAGE_MAP(inherited)
</code></pre>
<pre><code class="language-cpp">void __fastcall TForm1::wmDevChange(Messages::TMessage msg)
{
   if(msg.WParamLo==7)
   {
...
</code></pre>
<p>Das klappt auch soweit. Das zugewiesenen Laufwerk bekomme ich bisher indem ich von Laufwerksbuchstabe Z bis A alle Laufwerke auf Gerätetyp untersuche<br />
(GetDriveType(DriveName) == DRIVE_REMOVABLE).<br />
Wie kann ich sonst noch an das Laufwerk kommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240052/neu-erkanntes-usb-laufwerk-laufwerksbuchstaben-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 08:35:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240052.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 May 2009 09:06:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Neu erkanntes USB-Laufwerk Laufwerksbuchstaben ermitteln on Fri, 01 May 2009 09:06:28 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich stelle über MessageHandler fest ob ein USB Gerät(in dem Fall eine Kamera) eingesteckt wird.</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DEVICECHANGE, Messages::TMessage, wmDevChange);
  END_MESSAGE_MAP(inherited)
</code></pre>
<pre><code class="language-cpp">void __fastcall TForm1::wmDevChange(Messages::TMessage msg)
{
   if(msg.WParamLo==7)
   {
...
</code></pre>
<p>Das klappt auch soweit. Das zugewiesenen Laufwerk bekomme ich bisher indem ich von Laufwerksbuchstabe Z bis A alle Laufwerke auf Gerätetyp untersuche<br />
(GetDriveType(DriveName) == DRIVE_REMOVABLE).<br />
Wie kann ich sonst noch an das Laufwerk kommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703976</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703976</guid><dc:creator><![CDATA[brandx]]></dc:creator><pubDate>Fri, 01 May 2009 09:06:28 GMT</pubDate></item><item><title><![CDATA[Reply to Neu erkanntes USB-Laufwerk Laufwerksbuchstaben ermitteln on Fri, 01 May 2009 09:29:49 GMT]]></title><description><![CDATA[<p>öhhm ich glaube das währe besser ein Thema im WINAPI Forum...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703984</guid><dc:creator><![CDATA[brandx]]></dc:creator><pubDate>Fri, 01 May 2009 09:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to Neu erkanntes USB-Laufwerk Laufwerksbuchstaben ermitteln on Fri, 01 May 2009 09:44:48 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-14774.html" rel="nofollow">akari</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-2.html" rel="nofollow">VCL (C++ Builder)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1703987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1703987</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Fri, 01 May 2009 09:44:48 GMT</pubDate></item><item><title><![CDATA[Reply to Neu erkanntes USB-Laufwerk Laufwerksbuchstaben ermitteln on Wed, 06 May 2009 10:02:23 GMT]]></title><description><![CDATA[<p>Du musst den WPARAM Parameter auswerten, falls er den Wert DBT_DEVICEARRIVAL hat ist der LPARAM Parameter ein Zeiger auf eine DEV_BROADCAST_HDR Struktur. Die DEV_BROADCAST_HDR Struktur hat ein Attribut dbch_devicetype, wenn dieses Attribut den Wert DBT_DEVTYP_VOLUME hat dann ist der DEV_BROADCAST_HDR Zeiger ein Zeiger auf eine DEV_BROADCAST_VOLUME Struktur. Diese Struktur hat wiederum ein Attribut dbcv_unitmask, dessen erstes gesetztes Bit den Laufwerksbuchstaben des neuen Volumes anzeigt (Bit 0 = A, Bit 1 = B, Bit 2 = C, etc.)</p>
<p>Ungetestet:</p>
<pre><code class="language-cpp">void __fastcall Form::OnDeviceChange( TMessage msg )
{
   char VolumeLetter = ' ';

   // neues Device erkannt?
   if( DBT_DEVICEARRIVAL == msg.WParam )
   {
      // ja, Device Typ feststellen
      DEV_BROADCAST_HDR* pBCH = reinterpret_cast&lt;DEV_BROADCAST_HDR*&gt;( msg.LParam );
      if( DBT_DEVTYP_VOLUME == pBCH-&gt;dbch_devicetype )
      {
         // Device Typ ist Volume, Laufwerksbuchstaben bestimmen
         DEV_BROADCAST_VOLUME* pBCV = reinterpret_cast&lt;DEV_BROADCAST_VOLUME*&gt;( pBCH );
         for( unsigned int LW = 0; LW &lt; 26; ++LW )
         {
            if( pBCV-&gt;dbcv_unitmask &amp; (1 &lt;&lt; LW) )
            {
               VolumeLetter = 'A' + LW;
               break;
            }
         }
      }
   }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1706323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1706323</guid><dc:creator><![CDATA[_DocShoe_]]></dc:creator><pubDate>Wed, 06 May 2009 10:02:23 GMT</pubDate></item></channel></rss>