PB.Ex MTP (Windows)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

PB.Ex MTP (Windows)

Beitrag von RSBasic »

Hallo,

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:
      1. @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.
    NextMTPEntry()
    • 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:
      1. @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.
    FinishMTP()
    • 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:
      1. @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.
    MTPEntryName()
    • 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:
      1. @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.
      2. @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.
    OpenMTP()
    • 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:
      1. ID: Eine eindeutige Nummer. #PB_Any kann verwendet werden, um die Nummer automatisch zu generieren.
      2. DeviceName$: Der Name des Gerätes. Der Gerätename kann mit ExamineMTP() ermittelt werden.
      3. @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)
      
    CloseMTP()
    • Syntax:

      Code: Alles auswählen

      Result = CloseMTP(ID, @ErrorOutput$)
    • Beschreibung: Schließt die Verbindung zum Gerät.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @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.
    IsMTP()
    • Syntax:

      Code: Alles auswählen

      Result = IsMTP(ID, @ErrorOutput$)
    • Beschreibung: Überprüft, ob die Verbindung noch gültig ist.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @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.
    ExamineMTPDirectory()
    • Syntax:

      Code: Alles auswählen

      Result = ExamineMTPDirectory(ID, @ErrorOutput$)
    • Beschreibung: Startet die Auflistung aller Verzeichnisse und Dateien.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @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.
    FinishMTPDirectory()
    • 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:
      1. ID: Die Nummer Verbindung.
      2. @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.
    NextMTPDirectoryEntry()
    • 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:
      1. ID: Die Nummer Verbindung.
      2. @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.
    MTPDirectoryEntryName()
    • 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:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Der Name des Verzeichnisses oder der Datei wird in diese Variable gespeichert.
      3. @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.
    SetMTPDirectory()
    • 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:
      1. ID: Die Nummer Verbindung.
      2. DirectoryPath$: Pfad zum Verzeichnis.
      3. @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.
    GetMTPDirectory()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPDirectory(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt das aktuelle Verzeichnis.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Der Pfad des aktuellen Verzeichnisses wird in diese Variable gespeichert.
      3. @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.
    MTPDirectoryEntryType()
    • 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:
      1. ID: Die Nummer Verbindung.
      2. @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.
    ReceiveMTPFile()
    • Syntax:

      Code: Alles auswählen

      Result = ReceiveMTPFile(ID, RemoteFileName$, FileName$, @ErrorOutput$)
    • Beschreibung: Kopiert mit Hilfe des Pfades die angegebene Datei auf die Festplatte.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. RemoteFileName$: Vollständiger Pfad inkl. Dateiname von der Datei, die kopiert werden soll.
      3. FileName$: Vollständiger Zielpfad inkl. Dateiname, wohin die Datei kopiert werden soll.
      4. @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.
    MTPDirectoryEntrySize()
    • 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:
      1. ID: Die Nummer Verbindung.
      2. @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.
    MTPDirectoryEntryDate()
    • 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:
      1. ID: Die Nummer Verbindung.
      2. @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.
    GetMTPDescription()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPDescription(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt die Gerätebeschreibung.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Die Gerätebeschreibung wird in diese Variable gespeichert.
      3. @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.
    GetMTPDeviceID()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPDeviceID(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt die Geräte-ID.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Die Geräte-ID wird in diese Variable gespeichert.
      3. @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.
    GetMTPDeviceType()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPDeviceType(ID, @ErrorOutput$)
    • Beschreibung: Ermittelt den Typ des Geräts.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @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
    GetMTPFirmwareVersion()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPFirmwareVersion(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt die Firmware-Version.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Die Firmware-Version wird in diese Variable gespeichert.
      3. @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.
    GetMTPFriendlyName()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPFriendlyName(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt die Gerätebezeichnung.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Die Gerätebezeichnung wird in diese Variable gespeichert.
      3. @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.
    GetMTPManufacturer()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPManufacturer(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt den Hersteller.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Der Hersteller wird in diese Variable gespeichert.
      3. @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.
    GetMTPModel()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPModel(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt den Modelnamen.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Der Modelname wird in diese Variable gespeichert.
      3. @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.
    GetMTPPnPDeviceID()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPPnPDeviceID(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt die PnP-Geräte-ID. (Plug and Play)
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Die PnP-Geräte-ID wird in diese Variable gespeichert.
      3. @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.
    GetMTPSerialNumber()
    • Syntax:

      Code: Alles auswählen

      Result = GetMTPSerialNumber(ID, @Output$, @ErrorOutput$)
    • Beschreibung: Ermittelt die Seriennummer.
    • Parameter:
      1. ID: Die Nummer Verbindung.
      2. @Output$: Die Seriennummer wird in diese Variable gespeichert.
      3. @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.
Systemvoraussetzungen:
  • Windows Vista oder höher
  • .NET Framework 4.5 oder höher
  • Unicode-Aktivierung (standardmäßig ab PB 5.50)
Lizenz: Diese DLL-Datei ist kostenlos und darf sowohl privat als auch kommerziell verwendet werden.
Diese Bibliothek basiert auf: https://github.com/Bassman2/MediaDevices

Download: https://www.rsbasic.de/downloads/downlo ... Ex_MTP.zip
Bild

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 :)
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex MTP (Windows)

Beitrag von RSBasic »

PB.Ex MTP 1.0.1.0 wurde veröffentlicht.

Changelog:
  • Bugfix
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex MTP (Windows)

Beitrag von RSBasic »

PB.Ex MTP 1.0.2.0 wurde veröffentlicht.

Changelog:
  • Hinzugefügt: CreateMTPDirectory()
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: PB.Ex MTP (Windows)

Beitrag von RSBasic »

PB.Ex MTP 1.0.3.0 wurde veröffentlicht.

Changelog:
  • Hinzugefügt: DeleteMTPDirectory()
  • Hinzugefügt: DeleteMTPFile()
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Michael Vogel
Beiträge: 71
Registriert: 16.03.2006 11:20

Re: PB.Ex MTP (Windows)

Beitrag von Michael Vogel »

Hi, kann man diese Bibliothek auch statisch (als .lib) zum Einbinden in eine Exe haben?
Antworten