GUI voor console

Status
Niet open voor verdere reacties.

The Lion93

Gebruiker
Lid geworden
12 jul 2007
Berichten
189
Hallo,

Ik ben bezig met een GUI te maken voor eac3to. Ik probeer hierbij het pad naar eac3to.exe variabel te maken. Verder wordt er via een FileOpenDialog een bestand gekozen dat geconverteerd gaat worden.

Code:
Public Class frmHoofd
    Public strConvertFile As String
    Friend WithEvents Proc As System.Diagnostics.Process
    Private Sub btnUitvoeren_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUitvoeren.Click
        Try
            Shell("""C:\Program Files (x86)\eac3to\eac3to.exe"" ""D:\test.flac"" ""D:\test.wav""", AppWinStyle.NormalFocus)
        Catch ex As Exception
        End Try
    End Sub

    Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click
        With dlgOpenBestand
            .Filter = "Flacbestanden (*.flac)|*.flac|Alle bestanden (*.*)|*.*"
            .FilterIndex = 1
            .InitialDirectory = Environment.SpecialFolder.MyDocuments.ToString
            .ShowDialog()

            txtInput.Text = .FileName
            strConvertFile = .FileName
        End With
    End Sub
End Class
Deze code werkt gewoon, alleen is hier alles hardcoded. Dit schiet natuurlijk niet op. Ik heb ook moeite met de console argumenten variabel te maken, ik heb het vermoeden dat de fout zit in enkele en dubbele haakjes.
 
Ik snap nu niet helemaal de vraag...

Maar als je een string hebt, bijv: """tekst""", dan moet je "test" (inclusief aanhalingstekens) vervangen door de naam van de variable. Volgens mij zou het dan verder moeten werken...

Succes! MartinJM
 
Het gaat eigenlijk om de volgende regel
Code:
Shell("""C:\Program Files (x86)\eac3to\eac3to.exe"" ""D:\test.flac"" ""D:\test.wav""", AppWinStyle.NormalFocus)

Hierin moet C:\Program Files (x86)\eac3to\eac3to.exe, D:\test.flac en D:\test.wav variabel worden. Alleen als ik ze vervang door dubbele of enkele aanhalingstekens wordt de variabele niet meer als variabele maar als platte tekst gezien.
 
Werkt dit voor jou, of heb ik nu de aantallen aanhalingstekens verkeerd gedaan??

Code:
        Dim Var1 As String = "C:\Program Files (x86)\eac3to\eac3to.exe"
        Dim Var2 As String = "D:\test.flac"
        Dim Var3 As String = "D:\test.wav"

        Shell("" & Var1 & """" & Var2 & """" & Var3 & "", AppWinStyle.NormalFocus)

Het enige wat er dus nog verder veranderd moest worden, was dat er nog '&'-tekens bij moesten...

MartinJM
 
Nope, werkt niet:
A first chance exception of type 'System.IO.FileNotFoundException' occurred in Microsoft.VisualBasic.dll
 
Dat betekent dus gewoon dat de bestanden niet gevonden zijn.

Maar dat was niet het probleem, toch? Wil je dat de gebruiker die variabelen op kan geven via de console of de application arguments?
 
Ik denk eigenlijk dat het probleem is dat er geen spaties tussen zitten... Dus voeg op de goede plaats nog spatues toe, en dan zou het moeten werken, toch?

MartinJM
 
Wacht eens even: als je het pad naar je eigen programma wilt verkrijgen, kan dat gewoon zo:

[cpp]Application.ExecutablePath[/cpp]

:)
 
Het is dus niet het pad naar mijn eigen programma, maar het programma dat ik maak is een GUI voor dat programma (werkt normaal gesproken alleen via commandline of batch). Om mijn GUi te laten werken moet dus wel het pad naar eac3to.exe bekend zijn, dit is natuurlijk niet bij iedereen hetzelfde. De gebruiker moet dus kunnen aangeven waar hij dat bestand heeft.
 
Ik heb nog even naar de aanhalingstekens en spaties gekeken, en nu verwacht ik dat het zo zou moeten werken:
[CPP] Dim Var1 As String = "C:\Program Files (x86)\eac3to\eac3to.exe"
Dim Var2 As String = "D:\test.flac"
Dim Var3 As String = "D:\test.wav"

Shell("""" & Var1 & """ """ & Var2 & """ """ & Var3 & """", AppWinStyle.NormalFocus)[/CPP]

MartinJM

[edit]
Let er wel op dat de bestanden in de variablen moeten bestaan, anders zal dit dus niet werken...
[/edit]
 
Ja! Het werkt! Zou je even kunnen uitleggen hoe het zit met die dubbele en enkele haakjes? Ik snap er geen sikkepit van!
 
Zet het even in een msgbox, dan zie je de uitkomst... Zo ben ik er ook achter gekomen...
MartinJM

Ps: druk jeook nog even op vraag opgelost?
 
Geen probleem! :thumb: Daar is het forum toch immers voor :p

MartinJM
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan