VB Launcher programmieren

01/06/2015 11:45 xxlynusxx#1
Hallo alle zusammen.

Ich habe 3 Programme wo es nötig ist Benutzername und Passwort einzugeben bevor ich sie nutzen kann. Bei allen Programmen habe ich den gleichen Benutzernamen sowie Passwort. (Sicherheit spielt hier keine Rolle für mich. Geht nur um das Prinzip)

Nun bin ich dabei ein Launcher mit VB zu erstellen der mir die Arbeit abnehmen soll alles nach und nach per Hand eingeben zu müssen.

Mein Fortschritt: Ich habe 2 Formen erstellt

Nr.1 wo ich 2 Textboxen habe (Benutzer+Passwort), eine Checkbox (Speichern der Daten) und 3 Buttons (Starten, Einstellungen und Abbrechen)

Nr.2 Wo ich die Pfade zu den Programmen per OpenFileDialog eintragen kann die gestartet werden sollen.

Soweit sogut. Jetzt kommt der schwere Teil wo ich Hilfe brauch.

Nun sollen die Pfade aus der zweiten Form gespeichert werden zusammen mit dem Benutzernamen und dem Passwort aus der ersten Form.

Wenn das alles getan ist sollen über den Startbutton alle gespeicherten Programme geöffnet werden und Benutzername und Passwort eingetragen werden und wenn möglich auch gleich eingeloggt.

Kann mir jemand helfen das umzusetzen?

Freue mich über jede Hilfe.
01/06/2015 11:53 Mostey#2
Wieso baust du nicht ein, dass die Daten automatisch deserialisiert (aus persistentem Speicher geladen) werden? Dann müsstest du nur die Datei in der die Daten stehen ändern und das sollte kein Thema für dich sein wenn du ohnehin schon die Daten auf Anfrage speicherst.
01/06/2015 12:54 xxlynusxx#3
Bin noch neuling auf dem Gebiet. Meinst du das ich mir erst ne Textdatei erstellen soll mit den Logindaten und die frage ich dann mit dem Launcher ab?
01/06/2015 13:38 teto#4
Sind die Pfade nun in einer eigenen Form oder in einem OpenFileDialog? Du schreibst oben du hast 2 Formen und dann wieder ein OpenFileDialog.

Du Kannst in einem OpenFileDialog das Ergebnis abfragen. Das Ergebnis in diesem Fall ist ob "Öffnen" geklickt wurde oder "Abbrechen" dies bekommst du über DialogResult welches der Dialog beim schließen zurückgibt.

Es gibt mehre Results in DialogResult, in dem Fall das ein Benutzer "Öffnen" drückt gibt der OpenFileDialog das Ergebnis DialogResult.OK zurück, wenn das der Fall ist liest du einfach die Eigenschaft "Filename" des OpenFileDialoges aus, z.B. so.

Code:
If OpenFileDialog.ShowDialog() = DialogResult.OK Then
    Call MessageBox.Show(OpenFileDialog.FileName)
Else
    Call MessageBox.Show("Abbrechen wurde geklickt")
End If
Ich gebe den Pfad hier nur in einer MessageBox aus, du müsstest diesen eben dort speichern, entweder in einer Datei als Text oder du entwickelst eine Klasse mit den 3 Eigenschaften:
  • User [String]
  • Password [String]
  • UserPaths [List(Of String)]

Diese Klasse kannst du dann per XmlSerializer Serialisieren lassen und im Xml Format speichern, denke aber das ist für dich als Anfänger nix und du speicherst sie lieber in einem Text.
01/06/2015 15:19 xxlynusxx#5
Das ganze sieht so aus.

Code:
Imports System.IO
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Text.RegularExpressions

Public Class autologin


    Function EmailCheck(ByVal emailAddress As String) As Boolean


        Dim pattern As String = "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"
        Dim emailAddressMatch As Match = Regex.Match(emailAddress, pattern)


        If emailAddressMatch.Success Then
            Return True
        Else
            Return False
        End If

    End Function


    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim MyEmail As String = email.Text
        If EmailCheck(MyEmail) = True Then
            antwort.Text = "Daten akzeptiert"
        Else
            antwort.Visible = True
            antwort.Text = "Falscher Accountname"
            Button1.Enabled = False
            Button4.Enabled = False
            passwort.Text = vbNullString
        End If

    End Sub

    Private Sub Link_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles Link.LinkClicked
        Process.Start("http://www.xxlynusxx.de")
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        End

    End Sub

    Private Sub email_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles email.TextChanged

    End Sub

    Private Sub passwort_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles passwort.TextChanged
        Button1.Enabled = passwort.Text.Length > 7
        Button4.Enabled = passwort.Text.Length > 7
    End Sub

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked Then
            Button1.Visible = False
            Button4.Visible = True

        End If
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim MyEmail As String = email.Text
        If EmailCheck(MyEmail) = True Then
            antwort.Text = "Daten akzeptiert"
        Else
            antwort.Visible = True
            antwort.Text = "Falsche Daten"
            Button1.Enabled = False
            Button4.Enabled = False
            passwort.Text = vbNullString
        End If
        If File.Exists("D:\benutzer.txt") Then

        End If
    End Sub

    Private Sub speichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles speichern.Click
        System.IO.File.WriteAllText("c:\benutzer.txt", pfadbox.Text)
        If File.Exists("c:\benutzer.txt") Then
            antwort.Visible = True
            antwort.Text = "Pfad gespeichert"
            speichern.Enabled = False

        End If
    End Sub


    Private Sub suchen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles suchen.Click
        Dim ofd As New OpenFileDialog
        ofd.Filter = "Executables |*.exe"
        ofd.InitialDirectory = "c:"
        ofd.Multiselect = False
        If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
            pfadbox.Text = ofd.FileName
        Else
            pfadbox.Text = ("c:\")
        End If
    End Sub

End Class
wie gesagt bin ich blutiger anfänger. habe vor etlichen jahren mal in vb reingeschnuppert und gestern abend mit dem teil angefangen.
01/06/2015 17:12 teto#6
Sieht ganz schön wüst aus dein Code :-)

Warum speicherst du den Pfad in einer Textbox? Ich dachte du wolltest pro nutzer mehrere Pfads speichern.

Nur nochmal zum Verständnis,du hast ein Login Formular, wenn der Nutzer richtige Daten eingegeben hat soll ein 2. Formular aufgehen dort soll er seine Pfade hinzufügen bzw. Anwendungen die später gestartet werden und gleichzeitig sollen diese gespeichert werden?
01/06/2015 17:41 xxlynusxx#7
das ist so durcheinander weil ich die zweite form einfach wieder gelöscht hab und in die erste form eingebunden hab. darum fehlen jetzt auch die anderen 2 textboxen für die pfade. bin immernoch am hin und her tüfteln.

ansich möchte ich das die nutzerdaten und die pfade alle in einer textdatei oder ähnliches gespeichert werden und das ich dann mit einem klick alle programme öffne und die nutzerdaten automatisch eingetragen werden.
01/08/2015 13:16 XYZ-Cannon#8
Quote:
Originally Posted by xxlynusxx View Post
das ist so durcheinander weil ich die zweite form einfach wieder gelöscht hab und in die erste form eingebunden hab. darum fehlen jetzt auch die anderen 2 textboxen für die pfade. bin immernoch am hin und her tüfteln.

ansich möchte ich das die nutzerdaten und die pfade alle in einer textdatei oder ähnliches gespeichert werden und das ich dann mit einem klick alle programme öffne und die nutzerdaten automatisch eingetragen werden.
Du kannst auch einfach die Pfade als statische Variable initialisieren.
Das kannst du entweder in einer extra Klasse machen oder einfach in deine Form1 Klasse packen.

Code:
private static String pfad="Angabe deines Pfades";