[VB.net] XM Musik abspielen

08/23/2010 09:25 Lucyy#1
Na, wer von euch hat schon mal einen Keygen benutzt? Bei den meisten ist im Hintergrund eine chiptune Melodie zu hören. Trotz der hohen Qualität bleiben die Keygens immer unter 100kb groß. In diesem Tutorial erkläre ich euch, wie man dasselbe mit VB.net (2005, 2008, 2010) anstellt.

1. Dieses [Only registered and activated users can see links. Click Here To Register...] herunterladen und extrahieren.

2. Neues Projekt in Visual Studio erstellen.

3. Projekt -> Verweis hinzufügen -> Durchsuchen -> BassMod.Net.dll auswählen -> OK

4. Das Projekt speichern und einmal starten. (erstellt den Debug/Release Ordner)

5. Die BassMod.Net.dll und die BASSMOD.dll jeweils in den Debug und Release Ordner kopieren (Dokumente\Visual Studio\Projekte\Projektname\bin)

6. Einen xm track [Only registered and activated users can see links. Click Here To Register...] und ebenfalls jeweils in Debug und Release kopieren.

7. Form1 Code öffnen und folgendes editieren:

Code:
[COLOR="Blue"]Imports[/COLOR] Un4seen.BassMOD
Code:
    [COLOR="Blue"]Private Sub[/COLOR] Form1_Load([COLOR="Blue"]ByVal [/COLOR]sender[COLOR="Blue"] As[/COLOR] System.Object, [COLOR="Blue"]ByVal[/COLOR] e [COLOR="Blue"]As[/COLOR] System.EventArgs) [COLOR="Blue"]Handles MyBase[/COLOR].Load
        [COLOR="Teal"]BassMOD[/COLOR].BASSMOD_Init(0, 44100, [COLOR="Teal"]BASSInit[/COLOR].BASS_DEVICE_DEFAULT)
        [COLOR="Teal"]BassMOD[/COLOR].BASSMOD_MusicLoad([COLOR="DarkRed"]"musik.xm"[/COLOR], 0, 0,
        [COLOR="Teal"]BASSMusic[/COLOR].BASS_DEFAULT)
        [COLOR="Teal"]BassMOD[/COLOR].BASSMOD_MusicPlay()
    [COLOR="Blue"]End Sub[/COLOR]
8. "musik.xm" an den Namen der heruntergeladenen Datei anpassen.

9. Fertig! Ausführen und testen.

Ich kann die Beispiel.exe nicht ausführen.
Mein Beispiel wurde mit Visual Studio 2010 erstellt. Dafür benötigst du das .Net Framework 4.

Ich will meine xm Datei verstecken, wie mache ich das?
Binde sie in die Resourcen ein und ändere den Code wie folgt ab. Dabei lässt man die Dateiendung und die Anführungszeichen weg!

Code:
        [COLOR="Teal"]BassMOD[/COLOR].BASSMOD_MusicLoad([COLOR="Blue"]My[/COLOR].Resources.musik, 0, 0,
        [COLOR="Teal"]BASSMusic[/COLOR].BASS_DEFAULT)
08/23/2010 10:14 Reextion#2
Mir gefällt es, trotzdem wäre es besser wenn du für Leute die den Code verstehen wollen. und vielleicht noch nicht so gut in Vb sind den Code Stück für Stück erklärst.


EDIT: Okay okay, überfliegen ist nicht alles :|

Gebe Nois voll und ganz recht :O
08/23/2010 18:18 Noisuf-X#3
Quote:
Originally Posted by Lucyy View Post
5. Die BassMod.Net.dll und die BASSMOD.dll jeweils in den Debug und Release Ordner kopieren (Dokumente\Visual Studio\Projekte\Projektname\bin)

6. Einen xm track [Only registered and activated users can see links. Click Here To Register...] und ebenfalls jeweils in Debug und Release kopieren.
:handsdown: so ein Quatsch habe ich noch nicht gehört :D
warum fügst du die Dateien nicht einfach dem Projekt hinzu und stellst sie auf "Immer kopieren"
Außerdem weisst du schon!?, das Visual Studio alle Refrences automatisch in das ausgabeverzeichniss mit kopiert werden außer sie liegen im GAC

Sollte jemand mal den Ausgabepfad ändern geht nichts mehr und per ClickOnce kannst du deine Anwendung dann auch nicht verteilen

Wenn man das mit hinter kopieren macht kann man gleich mit nmake arbeiten

Das ist eh die beste Idee bei so kleinen Soundfiles, da werden die in Base64 codiert und mit in das Projekt reingeschrieben werden.
Quote:
Originally Posted by Lucyy View Post
Ich will meine xm Datei verstecken, wie mache ich das?
Binde sie in die Resourcen ein und ändere den Code wie folgt ab. Dabei lässt man die Dateiendung und die Anführungszeichen weg!

Code:
        [COLOR="Teal"]BassMOD[/COLOR].BASSMOD_MusicLoad([COLOR="Blue"]My[/COLOR].Resources.musik, 0, 0,
        [COLOR="Teal"]BASSMusic[/COLOR].BASS_DEFAULT)
08/23/2010 22:17 chesar#4
Noisuf kannst du nich mal ein TUT machen? bei mir funzt das hier nicht.....

und das mit den 2 dll´s wie kann ich die mit in Programm mit ein binden so das wirklich nur noch die exe zu sehen ist und nicht noch 3 andere Dateien!

Ok in Visual Studio 2010 geht es aber gibt es auch eine Möglichkeit das es unter Net Framework 3.5 auch geht?
08/24/2010 19:35 Noisuf-X#5
Quote:
Originally Posted by chesar View Post
Noisuf kannst du nich mal ein TUT machen? bei mir funzt das hier nicht.....

und das mit den 2 dll´s wie kann ich die mit in Programm mit ein binden so das wirklich nur noch die exe zu sehen ist und nicht noch 3 andere Dateien!

Ok in Visual Studio 2010 geht es aber gibt es auch eine Möglichkeit das es unter Net Framework 3.5 auch geht?
Das Lied würde ich in die Ressource-Datei mit aufnehmen wie Lucyy es beschrieben hat, dann wird es Base64 codiert mit in die exe reingenommen.
Klassenbibliotheken(.dll) würde ich an deiner Stelle nicht irgentwie in die .exe mit reinklatschen.

Wenn du wirklich die .dlls auch nicht mehr haben willst musst du dir wohl oder übel eine Klasse suchen die das kann und die kannst du dann in deinen Code aufnehmen, muss ja auch nicht unbedingt .xm können auch andere Trackerformate sein.

Tracker (Musik) ? Wikipedia

Das Problem was du bloß bei Tracker Musik haben wirst das es kein oder kaum .NET Code für die übersetzung von Trackermusik gibt, sehr oft gibt es nur nativen C/C++ Code und den in C# oder VB.NET einzubinden ist richtig dreckig.
Siehe die BassMOD.Net.dll die macht auch zu 99% nichts anderes als DllImport von der bassmod.dll.(Also das könntest du auch in dein Programm reinnehmen dann sparst du dir 1 .dll.)
Wie man sich kompelierten .NET Code anguckt habe ich hier schon veröffentlicht wurde aber wieder gelöscht

P.S. Fals jemand mal .NET-Code zum abspielen von Trackermusik findet, könnt ihr mir eine PM schicken miche würde mal intressieren
08/31/2010 20:35 .Fresh#6
Ich finde das gerade nicht gut also man braucht sowas nicht unbedinngt.. ;) - Aber super Thanks für die mühe ;) ..