Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   PCMCIA Karten erkennen (https://www.delphipraxis.net/112400-pcmcia-karten-erkennen.html)

lbccaleb 20. Apr 2008 14:02


PCMCIA Karten erkennen
 
hey there,


ich bin schon so lange auf der suche doch irgendwie noch ncihts gescheites gefunden, deswegen hoff ich mal das ihr mir weiterhelfen könnt (wie schon viele male zuvaor^^)

naja wie der titel schon sagt würde ich gerne herrausfinden, ob eine umts pcmcia karte an den slot im komputer angeschlossen ist, nur hab ich absolut kein plan wie ich das anstelle, hat da jemand nütliche tips oder codeschnipsel für mich im angebot???

danke schon mal im vorraus...


ps: ich hoff mal das die richtige kategorie, es geht ja um hardware und internet/umts/gprs...




mfg Caleb

mkinzler 20. Apr 2008 14:03

Re: PCMCIA Karten erkennen
 
Sollte mit Hilfe der Setup-Api bzw. WMI möglich sein.

lbccaleb 20. Apr 2008 14:16

Re: PCMCIA Karten erkennen
 
kennst du dich damit auch noch nen bissel genauer aus?? weil ich brauch ja quasi nur herrausfinden ob eine bestimmte karte angeschlossen ist...

naja ich hab hier noch was gefunden:

delphi treff

nur so richtig schglau macht mich das auch noch nicht ;-(

mkinzler 20. Apr 2008 14:20

Re: PCMCIA Karten erkennen
 
http://www.delphipraxis.net/internal...t.php?t=112689

lbccaleb 20. Apr 2008 14:24

Re: PCMCIA Karten erkennen
 
Zitat:

Zitat von mkinzler
http://www.delphipraxis.net/internal_redirect.php?t=112689


danke schau ich mir gleich mal an, hab hier aber auch noch was gefunden (was so aussieht als währe das für mich schon ne gute/richtige richtung, das ist leider aber c++ und das versteh ich nicht... vltt kann mir da ja auch noch jemand tips geben, das ist von der msdn seite:



Code:
#include <windows.h>
#include <dbt.h>
#include <strsafe.h>

void Main_OnDeviceChange (HWND hwnd, WPARAM wParam, LPARAM lParam);
char FirstDriveFromMask (ULONG unitmask); //prototype

/*------------------------------------------------------------------
   Main_OnDeviceChange (hwnd, wParam, lParam)

   Description
      Handles WM_DEVICECHANGE messages sent to the application's
      top-level window.
--------------------------------------------------------------------*/

void Main_OnDeviceChange (HWND hwnd, WPARAM wParam, LPARAM lParam)
{
   PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
   char szMsg[80];

   switch(wParam)
   {
      case DBT_DEVICEARRIVAL:
         // Check whether a CD or DVD was inserted into a drive.
         if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)
         {
            PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;

            if (lpdbv -> dbcv_flags & DBTF_MEDIA)
            {
               StringCchPrintf (szMsg, 80, "Drive %c: Media has arrived.\n",
                         FirstDriveFromMask(lpdbv ->dbcv_unitmask));

               MessageBox (hwnd, szMsg, "WM_DEVICECHANGE", MB_OK);
            }
         }
         break;

      case DBT_DEVICEREMOVECOMPLETE:
         // Check whether a CD or DVD was removed from a drive.
         if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)
         {
            PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;

            if (lpdbv -> dbcv_flags & DBTF_MEDIA)
            {
               StringCchPrintf (szMsg, 80, "Drive %c: Media was removed.\n",
                         FirstDriveFromMask(lpdbv ->dbcv_unitmask));

               MessageBox (hwnd, szMsg, "WM_DEVICECHANGE", MB_OK);
            }
         }
         break;

      default:
           /*
              Process other WM_DEVICECHANGE notifications for other
              devices or reasons.
           */ 
            ;
   }
}

/*------------------------------------------------------------------
   FirstDriveFromMask (unitmask)

   Description
     Finds the first valid drive letter from a mask of drive letters.
     The mask must be in the format bit 0 = A, bit 1 = B, bit 3 = C,
     etc. A valid drive letter is defined when the corresponding bit
     is set to 1.

   Returns the first drive letter that was found.
--------------------------------------------------------------------*/

char FirstDriveFromMask (ULONG unitmask)
{
   char i;

   for (i = 0; i < 26; ++i)
   {
      if (unitmask & 0x1)
         break;
      unitmask = unitmask >> 1;
   }

   return (i + 'A');
}

hathor 20. Apr 2008 17:28

Re: PCMCIA Karten erkennen
 
Ich habe ein PCMCIA-UMTS-Modem von HUAWEI, das 3 virtuelle COM-Ports belegt (7[480000],8[9600],9[9600]).
Es hat einen Diagnose-Modus, der genau so funktioniert wie bei anderen Modems auch, d.h. über AT-Befehle (z.B. initialization string "ATE1") kann es angesprochen werden. Ist es vorhanden, wird eine entsprechende Antwort geliefert.

Mit folgendem Script lassen sich viele interessante Werte auslesen:
(lässt sich auch in DELPHI umsetzen)

Delphi-Quellcode:
On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

arrComputers = Array("MOBILE")
For Each strComputer In arrComputers
   WScript.Echo
   WScript.Echo "=========================================="
   WScript.Echo "Computer: " & strComputer
   WScript.Echo "=========================================="

   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_POTSModem", "WQL", _
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly)

   For Each objItem In colItems
      WScript.Echo "AnswerMode: " & objItem.AnswerMode
      WScript.Echo "AttachedTo: " & objItem.AttachedTo
      WScript.Echo "Availability: " & objItem.Availability
      WScript.Echo "BlindOff: " & objItem.BlindOff
      WScript.Echo "BlindOn: " & objItem.BlindOn
      WScript.Echo "Caption: " & objItem.Caption
      WScript.Echo "CompatibilityFlags: " & objItem.CompatibilityFlags
      WScript.Echo "CompressionInfo: " & objItem.CompressionInfo
      WScript.Echo "CompressionOff: " & objItem.CompressionOff
      WScript.Echo "CompressionOn: " & objItem.CompressionOn
      WScript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
      WScript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
      WScript.Echo "ConfigurationDialog: " & objItem.ConfigurationDialog
      strCountriesSupported = Join(objItem.CountriesSupported, ",")
         WScript.Echo "CountriesSupported: " & strCountriesSupported
      WScript.Echo "CountrySelected: " & objItem.CountrySelected
      WScript.Echo "CreationClassName: " & objItem.CreationClassName
      strCurrentPasswords = Join(objItem.CurrentPasswords, ",")
         WScript.Echo "CurrentPasswords: " & strCurrentPasswords
      strDCB = Join(objItem.DCB, ",")
         WScript.Echo "DCB: " & strDCB
      strDefault = Join(objItem.Default, ",")
         WScript.Echo "Default: " & strDefault
      WScript.Echo "Description: " & objItem.Description
      WScript.Echo "DeviceID: " & objItem.DeviceID
      WScript.Echo "DeviceLoader: " & objItem.DeviceLoader
      WScript.Echo "DeviceType: " & objItem.DeviceType
      WScript.Echo "DialType: " & objItem.DialType
      WScript.Echo "DriverDate: " & WMIDateStringToDate(objItem.DriverDate)
      WScript.Echo "ErrorCleared: " & objItem.ErrorCleared
      WScript.Echo "ErrorControlForced: " & objItem.ErrorControlForced
      WScript.Echo "ErrorControlInfo: " & objItem.ErrorControlInfo
      WScript.Echo "ErrorControlOff: " & objItem.ErrorControlOff
      WScript.Echo "ErrorControlOn: " & objItem.ErrorControlOn
      WScript.Echo "ErrorDescription: " & objItem.ErrorDescription
      WScript.Echo "FlowControlHard: " & objItem.FlowControlHard
      WScript.Echo "FlowControlOff: " & objItem.FlowControlOff
      WScript.Echo "FlowControlSoft: " & objItem.FlowControlSoft
      WScript.Echo "InactivityScale: " & objItem.InactivityScale
      WScript.Echo "InactivityTimeout: " & objItem.InactivityTimeout
      WScript.Echo "Index: " & objItem.Index
      WScript.Echo "InstallDate: " & WMIDateStringToDate(objItem.InstallDate)
      WScript.Echo "LastErrorCode: " & objItem.LastErrorCode
      WScript.Echo "MaxBaudRateToPhone: " & objItem.MaxBaudRateToPhone
      WScript.Echo "MaxBaudRateToSerialPort: " & objItem.MaxBaudRateToSerialPort
      WScript.Echo "MaxNumberOfPasswords: " & objItem.MaxNumberOfPasswords
      WScript.Echo "Model: " & objItem.Model
      WScript.Echo "ModemInfPath: " & objItem.ModemInfPath
      WScript.Echo "ModemInfSection: " & objItem.ModemInfSection
      WScript.Echo "ModulationBell: " & objItem.ModulationBell
      WScript.Echo "ModulationCCITT: " & objItem.ModulationCCITT
      WScript.Echo "ModulationScheme: " & objItem.ModulationScheme
      WScript.Echo "Name: " & objItem.Name
      WScript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
      WScript.Echo "PortSubClass: " & objItem.PortSubClass
      strPowerManagementCapabilities = Join(objItem.PowerManagementCapabilities, ",")
         WScript.Echo "PowerManagementCapabilities: " & strPowerManagementCapabilities
      WScript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
      WScript.Echo "Prefix: " & objItem.Prefix
      strProperties = Join(objItem.Properties, ",")
         WScript.Echo "Properties: " & strProperties
      WScript.Echo "ProviderName: " & objItem.ProviderName
      WScript.Echo "Pulse: " & objItem.Pulse
      WScript.Echo "Reset: " & objItem.Reset
      WScript.Echo "ResponsesKeyName: " & objItem.ResponsesKeyName
      WScript.Echo "RingsBeforeAnswer: " & objItem.RingsBeforeAnswer
      WScript.Echo "SpeakerModeDial: " & objItem.SpeakerModeDial
      WScript.Echo "SpeakerModeOff: " & objItem.SpeakerModeOff
      WScript.Echo "SpeakerModeOn: " & objItem.SpeakerModeOn
      WScript.Echo "SpeakerModeSetup: " & objItem.SpeakerModeSetup
      WScript.Echo "SpeakerVolumeHigh: " & objItem.SpeakerVolumeHigh
      WScript.Echo "SpeakerVolumeInfo: " & objItem.SpeakerVolumeInfo
      WScript.Echo "SpeakerVolumeLow: " & objItem.SpeakerVolumeLow
      WScript.Echo "SpeakerVolumeMed: " & objItem.SpeakerVolumeMed
      WScript.Echo "Status: " & objItem.Status
      WScript.Echo "StatusInfo: " & objItem.StatusInfo
      WScript.Echo "StringFormat: " & objItem.StringFormat
      WScript.Echo "SupportsCallback: " & objItem.SupportsCallback
      WScript.Echo "SupportsSynchronousConnect: " & objItem.SupportsSynchronousConnect
      WScript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
      WScript.Echo "SystemName: " & objItem.SystemName
      WScript.Echo "Terminator: " & objItem.Terminator
      WScript.Echo "TimeOfLastReset: " & WMIDateStringToDate(objItem.TimeOfLastReset)
      WScript.Echo "Tone: " & objItem.Tone
      WScript.Echo "VoiceSwitchFeature: " & objItem.VoiceSwitchFeature
      WScript.Echo
   Next
Next


Function WMIDateStringToDate(dtmDate)
WScript.Echo dtm:
   WMIDateStringToDate = CDate(Mid(dtmDate, 5, 2) & "/" & _
   Mid(dtmDate, 7, 2) & "/" & Left(dtmDate, 4) _
   & " " & Mid (dtmDate, 9, 2) & ":" & Mid(dtmDate, 11, 2) & ":" & Mid(dtmDate,13, 2))
End Function
OUTPUT:

==========================================
Computer: MOBILE
==========================================
AnswerMode:
AttachedTo: COM3
Availability:
BlindOff:
BlindOn:
Caption: HUAWEI Mobile Connect - 3G Modem
CompatibilityFlags:
CompressionInfo:
CompressionOff:
CompressionOn:
ConfigManagerErrorCode:
ConfigManagerUserConfig:
ConfigurationDialog: modemui.dll
CountriesSupported:
CountrySelected:
CreationClassName: Win32_PotsModem
CurrentPasswords:
DCB: xxxxx
Default: 0,0,0,0,0,0,0,0,0,0
Description: HUAWEI Mobile Connect - 3G Modem
DeviceID: Modem0
DeviceLoader:
DeviceType: External Modem
DialType:

ErrorCleared:
ErrorControlForced:
ErrorControlInfo:
ErrorControlOff:
ErrorControlOn:
ErrorDescription:
FlowControlHard:
FlowControlOff:
FlowControlSoft:
InactivityScale: "3c000000"
InactivityTimeout:
Index: 0

LastErrorCode:
MaxBaudRateToPhone:
MaxBaudRateToSerialPort: 115200
MaxNumberOfPasswords:
Model: HUAWEI Mobile Connect - 3G Modem
ModemInfPath: oem2.inf
ModemInfSection: Modem0
ModulationBell:
ModulationCCITT:
ModulationScheme:
Name: HUAWEI Mobile Connect - 3G Modem
PNPDeviceID:
PortSubClass: "02"
PowerManagementCapabilities:
PowerManagementSupported: Falsch
Prefix: AT
Properties: 128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ProviderName: HUAWEI Incorporated
Pulse: P
Reset: AT&F<cr>
ResponsesKeyName: HUAWEI Mobile Connect - 3G Modem::HUAWEI Incorporated::HUAWEI Incorporated
RingsBeforeAnswer:
SpeakerModeDial:
SpeakerModeOff:
SpeakerModeOn:
SpeakerModeSetup:
SpeakerVolumeHigh:
SpeakerVolumeInfo:
SpeakerVolumeLow:
SpeakerVolumeMed:
Status: Unknown
StatusInfo: 2
StringFormat:
SupportsCallback:
SupportsSynchronousConnect:
SystemCreationClassName: Win32_ComputerSystem
SystemName: MOBILE
Terminator: <cr>

Tone: T
VoiceSwitchFeature:

AnswerMode:
AttachedTo: COM5
Availability:
BlindOff:
BlindOn:
Caption: HUAWEI Mobile Connect - 3G Modem
CompatibilityFlags:
CompressionInfo:
CompressionOff:
CompressionOn:
ConfigManagerErrorCode:
ConfigManagerUserConfig:
ConfigurationDialog: modemui.dll
CountriesSupported:
CountrySelected:
CreationClassName: Win32_PotsModem
CurrentPasswords:
DCB: xxxxx
Default: 0,0,0,0,0,0,0,0,0,0
Description: HUAWEI Mobile Connect - 3G Modem
DeviceID: Modem1
DeviceLoader:
DeviceType: External Modem
DialType:

ErrorCleared:
ErrorControlForced:
ErrorControlInfo:
ErrorControlOff:
ErrorControlOn:
ErrorDescription:
FlowControlHard:
FlowControlOff:
FlowControlSoft:
InactivityScale: "3c000000"
InactivityTimeout:
Index: 1

LastErrorCode:
MaxBaudRateToPhone:
MaxBaudRateToSerialPort: 115200
MaxNumberOfPasswords:
Model: HUAWEI Mobile Connect - 3G Modem
ModemInfPath: oem2.inf
ModemInfSection: Modem0
ModulationBell:
ModulationCCITT:
ModulationScheme:
Name: HUAWEI Mobile Connect - 3G Modem #2
PNPDeviceID:
PortSubClass: "02"
PowerManagementCapabilities:
PowerManagementSupported: Falsch
Prefix: AT
Properties: 128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ProviderName: HUAWEI Incorporated
Pulse: P
Reset: AT&F<cr>
ResponsesKeyName: HUAWEI Mobile Connect - 3G Modem::HUAWEI Incorporated::HUAWEI Incorporated
RingsBeforeAnswer:
SpeakerModeDial:
SpeakerModeOff:
SpeakerModeOn:
SpeakerModeSetup:
SpeakerVolumeHigh:
SpeakerVolumeInfo:
SpeakerVolumeLow:
SpeakerVolumeMed:
Status: Unknown
StatusInfo: 2
StringFormat:
SupportsCallback:
SupportsSynchronousConnect:
SystemCreationClassName: Win32_ComputerSystem
SystemName: MOBILE
Terminator: <cr>

Tone: T
VoiceSwitchFeature:

AnswerMode:
AttachedTo: COM7
Availability:
BlindOff:
BlindOn:
Caption: HUAWEI Mobile Connect - 3G Modem
CompatibilityFlags:
CompressionInfo:
CompressionOff:
CompressionOn:
ConfigManagerErrorCode: 0
ConfigManagerUserConfig: Falsch
ConfigurationDialog: modemui.dll
CountriesSupported:
CountrySelected:
CreationClassName: Win32_PotsModem
CurrentPasswords:
DCB: xxxxx
Default: 0,0,0,0,0,0,0,0,0,0
Description: HUAWEI Mobile Connect - 3G Modem
DeviceID: USB\VID_12D1&PID_1001&MI_00\7&7EB8A2F&0&0000
DeviceLoader:
DeviceType: External Modem
DialType:

ErrorCleared:
ErrorControlForced:
ErrorControlInfo:
ErrorControlOff:
ErrorControlOn:
ErrorDescription:
FlowControlHard:
FlowControlOff:
FlowControlSoft:
InactivityScale: "3c000000"
InactivityTimeout:
Index: 2

LastErrorCode:
MaxBaudRateToPhone:
MaxBaudRateToSerialPort: 460800
MaxNumberOfPasswords:
Model: HUAWEI Mobile Connect - 3G Modem
ModemInfPath: oem2.inf
ModemInfSection: Modem0
ModulationBell:
ModulationCCITT:
ModulationScheme:
Name: HUAWEI Mobile Connect - 3G Modem #3
PNPDeviceID: USB\VID_12D1&PID_1001&MI_00\7&7EB8A2F&0&0000
PortSubClass: "02"
PowerManagementCapabilities:
PowerManagementSupported: Falsch
Prefix: AT
Properties: 128,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ProviderName: HUAWEI Incorporated
Pulse: P
Reset: AT&F<cr>
ResponsesKeyName: HUAWEI Mobile Connect - 3G Modem::HUAWEI Incorporated::HUAWEI Incorporated
RingsBeforeAnswer:
SpeakerModeDial:
SpeakerModeOff:
SpeakerModeOn:
SpeakerModeSetup:
SpeakerVolumeHigh:
SpeakerVolumeInfo:
SpeakerVolumeLow:
SpeakerVolumeMed:
Status: OK
StatusInfo: 3
StringFormat:
SupportsCallback:
SupportsSynchronousConnect:
SystemCreationClassName: Win32_ComputerSystem
SystemName: MOBILE
Terminator: <cr>

Tone: T
VoiceSwitchFeature:

r_amse_s 23. Jul 2008 01:03

Re: PCMCIA Karten erkennen
 
ist jemand da weitergekommen?

mit wmi sollte das Ganze mittels Win32_POTSModem irgendwie realisiert werden.

wäre sehr dankbar, wenn jemand etwas in Delphi zeigen könnte.


@mkinzler meinte das geht auch mit SetupApi, wie soll das funktionieren?

lbccaleb 31. Jul 2008 22:40

Re: PCMCIA Karten erkennen
 
hab jetzt ne möglichkeit gefunden,

mit der HID api conversation von Robert Marquardt!

zu finden hier:

HID API


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 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