IT-Berater: Theo Gottwald (IT-Consultant) > General Tips and Discussion

pbfree lade Musik Title CD info von FreeDB sever automatisch

(1/4) > >>

Peter Weis:
Habe wieder mal was aufgearbeitet für PBwin 10 werde den Quellcode in den Nächsten Tagen veröffentlichen. Muss  noch ein paar Sachen aufarbeiten. ist ein COM Objekt lässt sich von Excel und Word aufrufen, geht aber auch eigenständig!  Hiermit lässt sich eine Audio CD auslesen und eine CD Datenbank erstellen. Das Objekt ließt automatisch aus dem Internet Titel einer CD

Den Quellcode habe ich dazu gepackt!

Grüße Peter

Patrice Terrier:
Google translation:

--- Quote ---Have again what worked for PBwin 10 will release the source code in the next days. Still needs a few things worked up. is a COM object can be called from Excel and Word, but is also independently! This allows to read an audio CD and create a CD database. The object reads from the Internet automatically tracks on a CD
--- End quote ---


--- Quote ---So here's the source code
--- End quote ---

Peter Weis:
Hallo

Um das Objekt in Excel oder Word zu nutzen muss folgendes Programm als Administrator ausgeführt werden


--- Code: ---'------------------------------------------------------------------------------
'
'  Register the pbfree.dll COM Server
'  Copyright (c) 2014 Peter Weis
'  All Rights Reserved.
'
'
'------------------------------------------------------------------------------

#COMPILE EXE
#DIM ALL

DECLARE FUNCTION DllRegisterServer LIB ".\pbfreedb.dll" ALIAS "DllRegisterServer"   AS LONG

FUNCTION PBMAIN () AS LONG
  LOCAL i AS LONG

  i = DllRegisterServer
  IF i = %S_OK THEN
    ? "Registration of PBFREEDB.dll was successful"
  ELSE
    ? "Registration of PBFREEDB.dll has failed"
  END IF

END FUNCTION
                             


--- End code ---


in Windows XP geht das aber einfacher man braucht nur pbfreedb mit regsvr32 auszuführen!

Habe das Project neu gepackt und oben dazu gefügt

nach dem erfolgreichen registrieren der dll muss im Com Browser folgende Zeile erscheinen

die Einbindung des Objects unter Excel oder Word  bedarf es leider einer 32Bit Version von Excel oder Word In der 64 Bit Version geht es nicht! Beispiel und Beschreibung folgt! :)

Ist das Hauptprogramm in PowerBASIC geschrieben geht es auch mit Excel und Word 64!   



Peter Weis:
Nächster Schritt für die Verwendung mit Excel. Das gilt für Office ab Version 2007! Bei früheren Versionen ist das nicht nötig!

Die Entwickler Tools müssen eingeschaltet werden.



Das geht so wie oben im Bild beschrieben.

Also Excel Optionen einstellen!

Dabei Entwickler Tools aktivieren

Excel müßte dann so ausschauen das Tab mit Entwickler Tools siehe Bild unten müßte erscheinen.



Als nächstes bitte die das Tab Entwickler Tools anwählen das erscheint das Button „Code Anzeigen“ das müssen sie auswählen



Es erscheint dann die VBA Umgebung von Excel. Bitte wählen sie hier den Menüpunkt „Extras“ an!



Hier dann den Menüpunkt Verweise auswählen.



Hier bitte den Verweis pbfreedb anwählen. Danach kann dann das VBA Programm geschrieben werden das das Objekt nutzt



Peter Weis:
Hallo,
Wichtig ist dem Objekt die Objekt Variable zu übergeben! da diese intern für Funktionen benötigt wird


--- Code: ---Public Sub freedbinit()

Set cfreedb = New FREEDB

initcfreedb cfreedb

   
    App.Title = ThisWorkbook.Name
    App.Major = "1"
    App.Minor = "1"
   
    combo3() = Split(cfreedb.GETCDROMS, "|")
   
    cda = 1
    For i = LBound(combo3) To UBound(combo3)

        If cfreedb.GetMediaInfo(combo3(i)) <> "" Then
            CdAudio = cda
            Exit For
        End If
        cda = cda + 1
    Next i
   
    cfreedb.APPNAME = App.Title
    cfreedb.APPVERSION = App.Major & "." & App.Minor

    cfreedb.EMAILADDRESS = "peter.weis@freenet.de"
    cfreedb.CDDBSERVER = "freedb.freedb.org"

    cfreedb.CDDBINTERFACE = AUTO
    cfreedb.CDDBMODE = SUBMIT                 '%TEST
    cfreedb.USEFIRSTMATCH = True
    cfreedb.ALLOWSUBMISSION = False
    cfreedb.INTERNETENABLE = True
    With UserForm1
   
        .CommandButton1.Enabled = False
   
                                         
        For i = 0 To UBound(combo3()) - 1
            .ComboBox1.AddItem (combo3(i))
       
        Next i
    End With
   
End Sub


--- End code ---


Navigation

[0] Message Index

[#] Next page

Go to full version