mit dieser Bibliothek kann man auf Smartpones, Tablets, Kameras und andere mobile Geräte, die das Protokoll MTP (Media Transfer Protocol) unterstützen, zugreifen und Geräteinformationen (Device-ID, Gerätename, Firmware-Version, Hersteller, Seriennummer, ...) und die auf dem Gerät vorhandenen Verzeichnisse und Dateien auslesen und auf den PC kopieren.
Getestet habe ich mit meinem iPhone und mit meiner Digitalkamera von Canon.
Funktionen:
- ExamineMTP()
- Syntax:
Code: Alles auswählen
Result = ExamineMTP(@ErrorOutput$)
- Beschreibung: Startet die Auflistung aller Geräte. Das können Smartphones, Tablets, Kameras, Massenspeicher und andere mobile Geräte sein.
- Parameter:
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = NextMTPEntry(@ErrorOutput$)
- Beschreibung: Das nächste Gerät wird ermittelt. Diese Funktion ist nur innerhalb der ExamineMTP-Schleife gültig.
- Parameter:
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = FinishMTP(@ErrorOutput$)
- Beschreibung: Schließt die Auflistung der Geräte. Diese Funktion ist nur innerhalb der ExamineMTP-Schleife gültig.
- Parameter:
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = MTPEntryName(@Output$, @ErrorOutput$)
- Beschreibung: Ermittelt den Namen des aktuellen Geräts. Diese Funktion ist nur innerhalb der ExamineMTP-Schleife gültig.
- Parameter:
- @Output$: Der Gerätename wird in diese Variable gespeichert. Mit diesem Namen ist es möglich, mit OpenMTP() auf dieses Gerät zuzugreifen, um Geräteinformationen auszulesen und Dateien zu kopieren.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = OpenMTP(ID, DeviceName$, @ErrorOutput$)
- Beschreibung: Stellt eine Verbindung zum angegebenen Gerät her, um Geräteinformationen auszulesen und Dateien zu kopieren.
- Parameter:
- ID: Eine eindeutige Nummer. #PB_Any kann verwendet werden, um die Nummer automatisch zu generieren.
- DeviceName$: Der Name des Gerätes. Der Gerätename kann mit ExamineMTP() ermittelt werden.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich. Falls #PB_Any verwendet wird, dann wird die ID zurückgegeben.
- Beispielcode:
Code: Alles auswählen
EnableExplicit Global PBEx_MTP #PBEx_MTP_Type_File = 1 #PBEx_MTP_Type_Directory = 2 #PBEx_MTP_DeviceType_Generic = 0 #PBEx_MTP_DeviceType_Camera = 1 #PBEx_MTP_DeviceType_MediaPlayer = 2 #PBEx_MTP_DeviceType_Phone = 3 #PBEx_MTP_DeviceType_Video = 4 #PBEx_MTP_DeviceType_PersonalInformationManager = 5 #PBEx_MTP_DeviceType_AudioRecorder = 6 CompilerIf #PB_Compiler_Processor = #PB_Processor_x86 PBEx_MTP = OpenLibrary(#PB_Any, "PB.Ex_MTP_x86.dll") CompilerElseIf #PB_Compiler_Processor = #PB_Processor_x64 PBEx_MTP = OpenLibrary(#PB_Any, "PB.Ex_MTP_x64.dll") CompilerEndIf If PBEx_MTP Prototype ExamineMTP(ErrorOutput) Global ExamineMTP.ExamineMTP = GetFunction(PBEx_MTP, "ExamineMTP") Prototype NextMTPEntry(ErrorOutput) Global NextMTPEntry.NextMTPEntry = GetFunction(PBEx_MTP, "NextMTPEntry") Prototype FinishMTP(ErrorOutput) Global FinishMTP.FinishMTP = GetFunction(PBEx_MTP, "FinishMTP") Prototype MTPEntryName(Output, ErrorOutput) Global MTPEntryName.MTPEntryName = GetFunction(PBEx_MTP, "MTPEntryName") Prototype OpenMTP(ID, DeviceName.p-Unicode, ErrorOutput) Global OpenMTP.OpenMTP = GetFunction(PBEx_MTP, "OpenMTP") Prototype CloseMTP(ID, ErrorOutput) Global CloseMTP.CloseMTP = GetFunction(PBEx_MTP, "CloseMTP") Prototype IsMTP(ID, ErrorOutput) Global IsMTP.IsMTP = GetFunction(PBEx_MTP, "IsMTP") Prototype ExamineMTPDirectory(ID, ErrorOutput) Global ExamineMTPDirectory.ExamineMTPDirectory = GetFunction(PBEx_MTP, "ExamineMTPDirectory") Prototype FinishMTPDirectory(ID, ErrorOutput) Global FinishMTPDirectory.FinishMTPDirectory = GetFunction(PBEx_MTP, "FinishMTPDirectory") Prototype NextMTPDirectoryEntry(ID, ErrorOutput) Global NextMTPDirectoryEntry.NextMTPDirectoryEntry = GetFunction(PBEx_MTP, "NextMTPDirectoryEntry") Prototype MTPDirectoryEntryName(ID, Output, ErrorOutput) Global MTPDirectoryEntryName.MTPDirectoryEntryName = GetFunction(PBEx_MTP, "MTPDirectoryEntryName") Prototype SetMTPDirectory(ID, DirectoryPath.p-Unicode, ErrorOutput) Global SetMTPDirectory.SetMTPDirectory = GetFunction(PBEx_MTP, "SetMTPDirectory") Prototype GetMTPDirectory(ID, Output, ErrorOutput) Global GetMTPDirectory.GetMTPDirectory = GetFunction(PBEx_MTP, "GetMTPDirectory") Prototype MTPDirectoryEntryType(ID, ErrorOutput) Global MTPDirectoryEntryType.MTPDirectoryEntryType = GetFunction(PBEx_MTP, "MTPDirectoryEntryType") Prototype ReceiveMTPFile(ID, RemoteFileName.p-Unicode, FileName.p-Unicode, ErrorOutput) Global ReceiveMTPFile.ReceiveMTPFile = GetFunction(PBEx_MTP, "ReceiveMTPFile") Prototype MTPDirectoryEntrySize(ID, ErrorOutput) Global MTPDirectoryEntrySize.MTPDirectoryEntrySize = GetFunction(PBEx_MTP, "MTPDirectoryEntrySize") Prototype MTPDirectoryEntryDate(ID, ErrorOutput) Global MTPDirectoryEntryDate.MTPDirectoryEntryDate = GetFunction(PBEx_MTP, "MTPDirectoryEntryDate") Prototype GetMTPDescription(ID, Output, ErrorOutput) Global GetMTPDescription.GetMTPDescription = GetFunction(PBEx_MTP, "GetMTPDescription") Prototype GetMTPDeviceID(ID, Output, ErrorOutput) Global GetMTPDeviceID.GetMTPDeviceID = GetFunction(PBEx_MTP, "GetMTPDeviceID") Prototype GetMTPDeviceType(ID, ErrorOutput) Global GetMTPDeviceType.GetMTPDeviceType = GetFunction(PBEx_MTP, "GetMTPDeviceType") Prototype GetMTPFirmwareVersion(ID, Output, ErrorOutput) Global GetMTPFirmwareVersion.GetMTPFirmwareVersion = GetFunction(PBEx_MTP, "GetMTPFirmwareVersion") Prototype GetMTPFriendlyName(ID, Output, ErrorOutput) Global GetMTPFriendlyName.GetMTPFriendlyName = GetFunction(PBEx_MTP, "GetMTPFriendlyName") Prototype GetMTPManufacturer(ID, Output, ErrorOutput) Global GetMTPManufacturer.GetMTPManufacturer = GetFunction(PBEx_MTP, "GetMTPManufacturer") Prototype GetMTPModel(ID, Output, ErrorOutput) Global GetMTPModel.GetMTPModel = GetFunction(PBEx_MTP, "GetMTPModel") Prototype GetMTPPnPDeviceID(ID, Output, ErrorOutput) Global GetMTPPnPDeviceID.GetMTPPnPDeviceID = GetFunction(PBEx_MTP, "GetMTPPnPDeviceID") Prototype GetMTPSerialNumber(ID, Output, ErrorOutput) Global GetMTPSerialNumber.GetMTPSerialNumber = GetFunction(PBEx_MTP, "GetMTPSerialNumber") EndIf Global Output$ = Space(1024) Global ErrorOutput$ = Space(128) ;List all devices to determine the device name. ; If ExamineMTP(@ErrorOutput$) ; While NextMTPEntry(@ErrorOutput$) ; MTPEntryName(@Output$, @ErrorOutput$) ; Debug Output$ ; Wend ; EndIf ;List all directories and files. ;If OpenMTP(1, "Canon IXUS 125 HS", @ErrorOutput$) If OpenMTP(1, "Apple iPhone", @ErrorOutput$) ;Get device information GetMTPFriendlyName(1, @Output$, @ErrorOutput$) Debug "Friendly name: " + Output$ GetMTPManufacturer(1, @Output$, @ErrorOutput$) Debug "Manufacturer: " + Output$ GetMTPFirmwareVersion(1, @Output$, @ErrorOutput$) Debug "Firmware version: " + Output$ GetMTPPnPDeviceID(1, @Output$, @ErrorOutput$) Debug "PnPDeviceID: " + Output$ Debug "--------------------------------------------------" ;SetMTPDirectory(1, "\Internal Storage\DCIM\100APPLE", @ErrorOutput$) If ExamineMTPDirectory(1, @ErrorOutput$) While NextMTPDirectoryEntry(1, @ErrorOutput$) MTPDirectoryEntryName(1, @Output$, @ErrorOutput$) If MTPDirectoryEntryType(1, @ErrorOutput$) = #PBEx_MTP_Type_Directory Debug "Folder: " + Output$ ElseIf MTPDirectoryEntryType(1, @ErrorOutput$) = #PBEx_MTP_Type_File Debug "File: " + Output$ Debug Str(MTPDirectoryEntrySize(1, @ErrorOutput$)) + " Bytes" Debug FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", MTPDirectoryEntryDate(1, @ErrorOutput$)) EndIf Wend EndIf CloseMTP(1, @ErrorOutput$) Else Debug ErrorOutput$ EndIf CloseLibrary(PBEx_MTP)
- Syntax:
Code: Alles auswählen
Result = CloseMTP(ID, @ErrorOutput$)
- Beschreibung: Schließt die Verbindung zum Gerät.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = IsMTP(ID, @ErrorOutput$)
- Beschreibung: Überprüft, ob die Verbindung noch gültig ist.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: ID ist gültig.
- Syntax:
Code: Alles auswählen
Result = ExamineMTPDirectory(ID, @ErrorOutput$)
- Beschreibung: Startet die Auflistung aller Verzeichnisse und Dateien.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = FinishMTPDirectory(ID, @ErrorOutput$)
- Beschreibung: Schließt die Auflistung der Verzeichnisse und Dateien. Diese Funktion ist nur innerhalb der ExamineMTPDirectory-Schleife gültig.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = NextMTPDirectoryEntry(ID, @ErrorOutput$)
- Beschreibung: Das nächste Verzeichnis oder die nächste Datei wird ermittelt. Diese Funktion ist nur innerhalb der ExamineMTPDirectory-Schleife gültig.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = MTPDirectoryEntryName(ID, @Output$, @ErrorOutput$)
- Beschreibung: Der Name des Verzeichnisses oder der Datei wird ermittelt. Diese Funktion ist nur innerhalb der ExamineMTPDirectory-Schleife gültig.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Der Name des Verzeichnisses oder der Datei wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = SetMTPDirectory(ID, DirectoryPath$, @ErrorOutput$)
- Beschreibung: Ändert mit Hilfe des Pfades das aktuelle Verzeichnis. Wenn leer, dann wird das Stammverzeichnis ausgewählt.
- Parameter:
- ID: Die Nummer Verbindung.
- DirectoryPath$: Pfad zum Verzeichnis.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPDirectory(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt das aktuelle Verzeichnis.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Der Pfad des aktuellen Verzeichnisses wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = MTPDirectoryEntryType(ID, @ErrorOutput$)
- Beschreibung: Ermittelt den Typ des aktuellen Eintrages. Diese Funktion ist nur innerhalb der ExamineMTPDirectory-Schleife gültig.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert: Folgende Konstanten können abgefragt werden:
- #PBEx_MTP_Type_File: Der Eintrag ist eine Datei.
- #PBEx_MTP_Type_Directory: Der Eintrag ist ein Verzeichnis.
- Syntax:
Code: Alles auswählen
Result = ReceiveMTPFile(ID, RemoteFileName$, FileName$, @ErrorOutput$)
- Beschreibung: Kopiert mit Hilfe des Pfades die angegebene Datei auf die Festplatte.
- Parameter:
- ID: Die Nummer Verbindung.
- RemoteFileName$: Vollständiger Pfad inkl. Dateiname von der Datei, die kopiert werden soll.
- FileName$: Vollständiger Zielpfad inkl. Dateiname, wohin die Datei kopiert werden soll.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = MTPDirectoryEntrySize(ID, @ErrorOutput$)
- Beschreibung: Ermittelt die Dateigröße. Diese Funktion ist nur innerhalb der ExamineMTPDirectory-Schleife gültig.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert: Die Größe der Datei in Bytes.
- Syntax:
Code: Alles auswählen
Result = MTPDirectoryEntryDate(ID, @ErrorOutput$)
- Beschreibung: Ermittelt das Erstelldatum der Datei. Diese Funktion ist nur innerhalb der ExamineMTPDirectory-Schleife gültig.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert: Wert des Erstelldatums. Der Wert kann mit der Date-Bibliothek verwendet werden.
- Syntax:
Code: Alles auswählen
Result = GetMTPDescription(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt die Gerätebeschreibung.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Die Gerätebeschreibung wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPDeviceID(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt die Geräte-ID.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Die Geräte-ID wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPDeviceType(ID, @ErrorOutput$)
- Beschreibung: Ermittelt den Typ des Geräts.
- Parameter:
- ID: Die Nummer Verbindung.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert: Folgende Konstanten können abgefragt werden:
- #PBEx_MTP_DeviceType_Generic
- #PBEx_MTP_DeviceType_Camera
- #PBEx_MTP_DeviceType_MediaPlayer
- #PBEx_MTP_DeviceType_Phone
- #PBEx_MTP_DeviceType_Video
- #PBEx_MTP_DeviceType_PersonalInformationManager
- #PBEx_MTP_DeviceType_AudioRecorder
- Syntax:
Code: Alles auswählen
Result = GetMTPFirmwareVersion(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt die Firmware-Version.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Die Firmware-Version wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPFriendlyName(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt die Gerätebezeichnung.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Die Gerätebezeichnung wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPManufacturer(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt den Hersteller.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Der Hersteller wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPModel(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt den Modelnamen.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Der Modelname wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPPnPDeviceID(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt die PnP-Geräte-ID. (Plug and Play)
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Die PnP-Geräte-ID wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
Code: Alles auswählen
Result = GetMTPSerialNumber(ID, @Output$, @ErrorOutput$)
- Beschreibung: Ermittelt die Seriennummer.
- Parameter:
- ID: Die Nummer Verbindung.
- @Output$: Die Seriennummer wird in diese Variable gespeichert.
- @ErrorOutput$: Falls ein Fehler auftrat, dann wird die Fehlermeldung in die Variable gespeichert. Diese Variable muss vor dem Übergeben mit 128 Zeichen reserviert werden. Maximale Länge der Rückgabe beträgt 128 Zeichen einschließlich des NULL-Zeichens. Wenn bei einem Fehler keine Fehlerbeschreibung zurückgegeben werden soll, dann kann stattdessen 0 übergeben werden.
- Rückgabewert:
- 1: Der Vorgang war erfolgreich.
- Syntax:
- Windows Vista oder höher
- .NET Framework 4.5 oder höher
- Unicode-Aktivierung (standardmäßig ab PB 5.50)
Diese Bibliothek basiert auf: https://github.com/Bassman2/MediaDevices
Download: https://www.rsbasic.de/downloads/downlo ... Ex_MTP.zip
Ich würde mich über Feedbacks, Verbesserungsvorschläge, Fehlermeldungen oder Wünsche sehr freuen. Wer mich unterstützen möchte, kann mir auch was kleines spenden. Danke