.NET
Eigenes Programm mit Parametern starten
Posted on .Heute gehts darum das eigene Programm um eine sehr sinnvolle Funktion zu erweitern, nämlich um die Nutzung der übergebenen Parameter.
Dies ist besonders nützlich wenn eine Anwendung Informationen verarbeiten soll, die erst nach dem Öffnen des Programms eingegeben werden sollen oder wenn das Programm (ähnlich wie paint oder notepad) ein Dokument duech ainen Doppelklick öffnen soll.
Wenn ihr auf eine Datei doppeltklickt sucht das Betriebssystem erstmal nach einem Programm, das diesen Dateityp verarbeiten kann, das sogenannte Standardprogramm. Ist das gefunden, wird es gestartet und der Pfad zu der von euch doppeltgeklickten Datei als Parameter übergeben.
Dabei wird ein Befehl erzeugt, der ca so ausschaut: notepad.exe „C:\Ordner\datei.txt“ dadurch wird notepad.exe gestartet und der Parameter, der hier aus dem Dateipfad besteht übergeben. So weis Notepad, dass eine Datei geöffnet werden soll und versucht dies zu tun.
Also besteht unsere Aufgabe darin, diesen Parameter auszulesen, und dafür stellen die Programmiersprachen freundlicherweise Funktionen bereit. Ich werde hier auf ein Beispiel in Java und VB.NET eingehen.
Fangen wir mit Visual Basic an. Alle Parameter, die dem Programm übergeben werden werden in der Variable Command in Anführungszeichen gespeichert. Diese muss weder importiert noch deklariert werden und ist sofort verfügbar!
Public Class Form1 Private Sub Form1_Loaed() Handles MyBase.Load TextBox1.Text = Command() End Sub End ClassMit dem obenstehenden Code werden alle übergebenen Parameter in Textbox1 Dargestellt. Wenn wir zB. wollen, dass wenn man eine Datei auf das Symbol unserer Anwendung zieht, diese dann in der TextBox2 der Anwendung geöffnet wird müssen wir so vorgehen:
Public Class Form1 Private Sub Form1_Loaed() Handles MyBase.Load TextBox1.Text = Command() 'Prüfen, ob überhaupt etwas übergeben wird If Command() <> "" Then Try 'Inhalt der Übergebenen Datei auslesen 'und die Anführungszeichen aus dem Parameter filtern TextBox2.Lines = System.IO.File.ReadAllLines( _ Command().Replace("""", "") _ ) Catch ex As Exception 'Einen Fehler anzeigen falls die übergebenen Parameter kein Dateipfad sind MessageBox.Show("Die übergebenen Parameter verweisen auf keine Datei!" _ & vbNewLine & ex.Message) End Try End If End Sub End ClassEs kann natürlich auch vorkommen, dass man mehr als eine Datei öffnen will (zB. ein ganzen Haufen mp3s) man markiert also mehrere Dateien und zieht sie dann auf unsere Anwendung. In diesem Fall ahben wir pech gehabt, denn Windows sendet die Parameter dann so: notepad.exe „C:\Ordner\datei1.txt“ „C:\Ordner\datei2.txt“ „C:\Ordner\datei3.txt“
Nun haben wir 3 Dateinamen im Parameter die wir erst einmal isolieren müssen:
404 Not Found Error: Not Found
The requested URL
/
was not found on this server.In Java wird die Variable, die die Start Parameter die Command Line Arguments enthällt vom Benutzer mit deklarert! Hier trägt Sie den namen args und ist immer im der Main-Methode einer jeden Klasse deklariert.
Desweteren können wir erkennen, dass diese Varibale ein Array ist, das heißt wir können uns hier das Splitten der Befehle sparen! Alles andere Funktioniert aber genauso wie bei VB:
404 Not Found Error: Not Found
The requested URL
/
was not found on this server.Man bedarf also nur einer simplen For-Each Schleife um alle Übergebenen Parameter auszulesen und dann gegebenenfalls weiter zuverarbeiten.
Sebastian Gross
http://www.bigbasti.comSebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.
There are no comments.