Announcement

Collapse
No announcement yet.

*.exe mit VB starten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • *.exe mit VB starten

    Hallo Zusammen,

    ...hab da mal ein Problem:

    Gerade erstelle ich ein Starter Programm, das mir erlaubt, verschiedene Programme durch Anklicken einer Taste zu starten.
    Das funktioniert soweit einwandfrei.
    Nun möchte ich jedoch eine Textdatei auslesen, in der die Pfade zu den entsprechenden ext. Programmen hinterlegt sind.
    Hier ein Auszug des Codes für eine Taste:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim TaskID As Long
    Dim PathName1 As String
    PathName1 = ReadLine("Settings.txt", 8)
    TaskID = Shell("PathName1", vbNormalNoFocus)
    End Sub

    Bis jetzt klappt es, den Pfad aus der Textdatei "Settings.txt" aus der Zeile 8 auszulesen.
    Ich habe nur das Problem, dass Shell den Inhalt von "PathName1" nicht als Pfad erkennt.
    Ersetzte ich "PathName1" durch einen richtigen Pfad, klappt es.

    Kann mir bitte jemand helfen?

  • #2
    Du hast den Text "PathName1" an Shell übegeben aber nicht den Inhalt der Variablen PathName1. Lass die Hochkommata weg.

    Comment


    • #3
      Gerade habe ich es ohne die Hochkommata versucht - leider ohne Erfolg. Es kam wieder der Fehler "Eine Ausnahme (erste Chance) des Typs "System.IO.FileNotFoundException" ist in Microsoft.VisualBasic.dll aufgetreten."
      Das ist die gleiche Meldung wie bisher.
      Es scheint, dass Shell tatsächlich nur einen echten Pfad und nicht den übergebenen Wert aus PathName akzeptiert.

      Schon mal danke für die Mühen.

      Comment


      • #4
        Nein, es schient der Fall, das in Pathname1 wohl etwas ungültiges drin steht. Schon mal debuggt
        Christian

        Comment


        • #5
          Um zu erkennen, ob der richtige Inhalt eingelesen wird, habe ich eine Msgbox in den Code eingefügt:
          MsgBox(PathName1)
          Es erschien der richtige Pfad: "C:\WebCTRL6.0\WebCTRL Server.exe"
          WebCTRL Server.exe ist die Anwendung, die ich starten möchte. Das funktioniert auch, wenn ich anstatt PathName diesen kompletten Pfad in den Code eintrage - aber dann kann ich ihn nicht mehr ohne Visual Studio editieren.

          Comment


          • #6
            Was genau macht den ReadLine? Vielleicht hängen nach deinem Auslesen noch Leerzeichen oder Zeilenumbrüche am ausgelesenen Text. Das siehst du nicht in einer MessageBox.

            Das ist tatsächlich noch VB und nicht VB.Net?

            Comment


            • #7
              Hier ist die komplette ReadLine Funktion:

              Public Function ReadLine(ByVal filename As String, _
              ByVal line As Integer) As String

              Try
              Dim lines As String() = My.Computer.FileSystem.ReadAllText( _
              filename, System.Text.Encoding.Default).Split(vbCrLf)

              If line > 0 Then
              Return lines(line - 1)
              ElseIf line < 0 Then
              Return lines(lines.length + line - 1)
              Else
              Return ""
              End If
              Catch ex As Exception
              Return ""
              End Try
              End Function

              Das mit den Leerzeichen oder Zeilenumbrüchen kann natürlich sein, da die Textdatei ca. 16 Zeilen umfasst.

              Ich schreibe das Ganze in Visual Studio 2010, d. h. im Visual Basic 2010 Modul.

              Comment


              • #8
                Ich würde ja vermuten, da Leerzeichen im Pfad sind, das der String mit " escaped werden muss
                Christian

                Comment


                • #9
                  AH. Da ist ein Leerzeichen. Darüber sollte er aber auch bei einem Literal gestolpert sein wenn nicht noch zusätzlich quoted wurde?

                  Comment


                  • #10
                    Habe aber durchaus schon erlebt, dass es im Literal funktionierte (ev. escaped die API das ganze Literal selbst).

                    Naja, er kann es ja probieren
                    Christian

                    Comment

                    Working...
                    X