# Eine Datei durch das angeben eines Pfades in eine Textbox,öffnen



## Nico192 (24. Oktober 2005)

Hallo!!
Habe komischer Weise gar nichts dazu gefunden-weder hier im Forum noch bei    
*wunder* 
(Vielleicht habe ich aber auch nach den falschen Begriffen gesucht!)

Also, es geht um folgendes:
Ich habe ein Programm geschrieben, bei dem man verschiedene Begriffe eingeben kann, worauf sich verschieden (-->zugeordnete) Formen öffnen...die Codes:

*CODE:* zu Form1

```
Private Sub Command1_Click()
If Text1.Text = "END" Then
End
End If
If Text1.Text = " Openfile" Then
Form1.Visible = False
Form2.Show
End If
End Sub
```
*CODE:* zu Form2

```
Private Sub Command1_Click()



Shell Text1.Text  

End Sub

Private Sub Form_Load()

End Sub
```

Bei dem rotmarkiertem Teil, habe ich auch schon "Text1.text" ; Text1; "Text1" ; usw.  probiert!!

Achso: Was das Programm eigentlich machen soll...:
Wenn ich in Form1 den Befehl "Openfile" mit "Command1" bestätige, soll sich Form2 öffnen
Soweit so gut!!
Nur, wenn ich nun in Form2 in die Textbox einen Pfad angebe (D:\openme.txt) , soll sich die angegebene Datei auch öffnen

Nun brauche ich eigentlich nur einen "Platzhalter (Variable)" die für den Text der textbox steht

P.S. Ich kann mir sehr gut vorstellen wie nah die Lösung liegt, jedoch komme ich einfach nicht darauf-warscheinlich auch weil meine MSDN net ...werd mich ma auf der Windows-HP umsehen-vllt kann man des da ja auch nochmal downloaden
 ...dieses Programm hat bis jetzt noch keinen tieferen sinn   ...vielleicht habt ihr da ja ne Idee, war bis jetzt nur als "test" und Visual Basic-kennenlern"-Projekt gedacht,und in der Hoffnung KEINE "fremde" Hifle dafür zu benötigen, die jetzt leider verflogen ist :suspekt: 
Grüße N!C0 192

Danke für all eure Hilfe


----------



## pking (25. Oktober 2005)

Per Variable oder per Dos.


----------



## Nico192 (25. Oktober 2005)

HI!
Danke erstmal, für deine Hilfe, aber leider funktioniert dein Code nicht   

Hast du das Programm schon mal getestet
-Wenn ja, dann hab ich vielleicht irgendwas beim "Pfad" falsch an/eingegeben...hmm...

Selbst überprüfen kann ich´s leider nicht   (weil ich zu schlecht dafür bin):
Daher...den Fehler      ...danke!!

Hier mal die Codes: 

Form1:

```
Private Sub Command1_Click()
If Text1.Text = "END" Then
End
End If
If Text1.Text = "Openfile" Then
Me.Hide
Form2.Show
End If
End Sub
```

Form2:

```
Private Sub Command1_Click()
Shell "cmd /c" & Chr(32) & Text1.Text
End Sub
```

Der Fehler ist: Wenn ich den Pfad eingegeben habe, passiert einfach gar nichts!!

Die Dark Orangenen Begrifee bitte erläutern  

P.S. Hat irgendjemand ne Idee wie ich noch an MSDN rankommen kann?

thx!   N!C0 192

*EDIT:*Sorry, aber irgendwie geht es jetzt 
Habe erst "cmd" durch "command" ausgetauscht-dann kam beim Pfad angeben eine Fehlermeldung, worauf ich wieder "cmd"  aus "command" machte, und-es ging
Komisch... aber danke


----------



## Yoah (26. Oktober 2005)

Die MSDN gibts auch im Indernett, die deutsche unter
http://www.microsoft.com/germany/msdn/
und die englische unter:
http://msdn.microsoft.com/


----------



## Nico192 (26. Oktober 2005)

Jippie  

THX! 

*EDIT:*
Hi nochmal,
hmm... auf der Seite war ich schon mal..(auf der Englischen)
Aber, was ich eigentlich suche ist die Hilfe von Visual Basic 6.0
Wenn ich F1 drücke, kommt die Meldung MSDN wurde nicht gefunden, eine Neuinstallation könnte das Problem beheben, also müsste ich sie irgendwie downloaden können?!
Geht das dort

Grüße N!C0 192


----------



## hab1cht (28. Oktober 2005)

Bei mir funktioniert der Code leider auch nicht, Nico192 kannst du mal deine Version die jetzt geht hochladen.

Danke im Voraus
mfg


----------



## Nico192 (29. Oktober 2005)

ööhm...schon
Soll ich die Codes+Informationen (übner Objekte usw.)
Oder des ganze Programm
Wenn des Programm dann-wo kann ich es uploaden?
Hab kein eigenen Space!!
...werd mal die Codes posten...ich editiers gleich  

Grüße Nico

*EDIT:*
Form1:

```
Private Sub Command1_Click()
If Text1.Text = "END" Then
End
End If
If Text1.Text = "Openfile" Then
Me.Hide
Form2.Show
End If
End Sub
```

Und Form2:

```
Private Sub Command1_Click()
Shell "cmd /c" & Chr(32) & Text1.Text
End Sub
```

P.S: Vielleicht war mein Fehler einfach, dass ich nen flaschen NAmen/Pfad angegeben habe-k.A.  

Aber jetzt  es

Also was existiert sollte klar sein:
Form1
-Button: Command1
-Textfeld: Text1
Form2
-Button: Command1
-Textfeld: Text1

Grüße Nico-Bitte!

P.S. Ich gab folgenden Pfad an, worauf sich die angegebene Textdatei öffnete:
                            "D:\openme.txt"


----------



## hab1cht (29. Oktober 2005)

Danke jetzt gehts auf einmal, wahrscheinlich hab ich irgendwas falsch eingegeben.

mfg hab1cht


----------



## Nico192 (29. Oktober 2005)

Bitte,Bitte!  

...du kannst aber gar nix falsch eingegeben habe, hasd des Projekt ja auch gedownloaded, neAber is ja egal, es  und des is die hauptsach!!  

Aber kann mir jemand den Code von "Form2" erklären?

Danke Nico


----------



## Shakie (1. November 2005)

Die Codezeile 
	
	
	



```
Shell "cmd /c" & Chr(32) & Text1.Text
```
 ruft die Cmd.exe von Windows auf (=Eingabeaufforderung) und sagt ihr mit dem Parameter "c", dass sie die Datei Text1.Text öffnen soll.

Das Ganze geht übrigens auch ohne Cmd von Windows, nämlich mit der Hilfe der API-Funktion ShellExecute. 
Der VB-Befehl "Shell" kann nur Exe-Dateien starten, die API ShellExecute kann alle Dateien öffnen/starten.


----------



## Nico192 (3. November 2005)

Hi
Danke für die Erklärung!!
Kannst du mir vielleicht einen Beispiel Code geben, bei dem anstatt

```
Shell "cmd /c" & Chr(32) & Text1.Text
```
das "c" durch einen anderen Befehl ersetzt wird
Dann würde ich es bestimmt noch besser verstehen

Thx!!

Grüße N!C0 192


----------



## Yoah (3. November 2005)

Moin,

gib mal Unter *Start* -> *Ausführen* folgendes ein:

*cmd /?*

dort siehst du dann, was cmd alles kann.
Alles klar?


----------



## Nico192 (3. November 2005)

Cool!!
Thx!!
Wer mal selbst nen Code mit anderen Befehlen machen, ich poste ihn hier dann mal!!  

Grüße N!C0 192

EDIT:  hmm...was bringt es einem wenn man "cmd /k" eingibt
Kann man mit der "Konsole" denn noch etwas anfangen

Also mit dem Code wird die "Ausführen" Funktion von Windows "benutzt"

Wie kann ich jetzt noch einen "Platzhalter" für das was nach "cmd/" steht erstellen (text2.text)

Ich probiers erstmal selbst...aber ihr könnt mir trotzdem shcon mal ne Antwort cshreiben 

EDIT2:  Form2

```
Private Sub Command1_Click()
Shell "cmd /&" & Text2.Text & Chr(32) & Text1.Text
End Sub

Private Sub Form_Load()

End Sub
```

Bei diesem Code bekomme ich eine DOS-Datei geöffnet, bei der ich einen Dateinamen einer sich in "x":/Programmieren/VB98   befindenden Textdatei eingeben kann!!

Allerdings kann ich 
1) den Ordner nicht wechseln, und 
2)Wieso öffnet sich überhaupt diese "Console" 
Was macht mein code, ich habe 2mal den "Platzhalter" verwendet (denselben)

..danke schon mal

Grüße N!C0 192


----------



## Yoah (3. November 2005)

Moin,

wenn dich mal jemand richtig verstehen würde, dann könntest du wahrscheinlich Glück
haben, dass dir jemand schneller oder überhaupt antwortet.

Nicht bös' gemeint, aber man checkt einfach nicht, was du eigentlich mitteilen willst.


> Wer mal selbst nen Code mit anderen Befehlen machen, ich poste ihn hier dann mal


Häääääh ?



> Wie kann ich jetzt noch einen "Platzhalter" für das was nach "cmd/" steht erstellen (text2.text)


Ebenfalls Häääääh ?


----------



## Nico192 (3. November 2005)

Ok!
...nicht schlimm  
beim ersten häh hab ich mich verschrieben:
1. Wort soll "Werd" heißen 

2. Bei dem angegebenem Code steht z.B. "Cmd /*c*"  

Anstatt dem markierten "c"  (der Befehl) kann man ja z.B. auch "k" eingeben
Nun möchte ich -mit einer 2. Textbox (oder mit nem OptionButton-wohl noch genauer) - angeben können, ob "k" oder "c" usw. gewählt werden möchte

Hoffe das ist nun verstanden


Grüße N!C0 192

*EDIT:*....ist es verstanden
geklärt ist es ja noch nicht


----------



## Yoah (3. November 2005)

Moin,

sag mal, warum öffnest du die Datei denn nicht einfach mit Shellexecute?
Hat dir Shakie doch schon vorgeschlagen!


----------



## Nico192 (6. November 2005)

Also: Ich habe jetzt zwei Textboxen, zwei Formen und einen Button

Die Codes:   FORM1

```
Private Sub Command1_Click()
If Text1.Text = "END" Then
End
End If
If Text1.Text = "Openfile" Then
Me.Hide
Form2.Show
End If
End Sub
```
 
                  FORM2

```
Private Sub Command1_Click()
Shell "cmd /&" & Text2.Text & Chr(32) & Text1.Text
End Sub
```
Die blauen Sachen, habe ich selbst geändert, dar ich den Befehl ( c,k, usw. ) selbst angeben können wollte!!
Also ob er in cmd /k   | cmd /c   oda was auch immer nimmt!!
Dazu habe ich dasselbe wie bei dem "Pfad-Angeben" benutzt, doch leider öffnet sich egal was ich eingebe immer eine (eine-weil sie anders aussieht ) "cmd"-Datei und ich kann den Namen der Dateien angeben-die im Visual Basic-Verzeichnis sind, ich kann mir gut vorstellen, dass ihr das nicht ganz achvollziehen könnt, drum bitte ich euch einfach die Codes zu übernehmen und selbst zu probiere, danke   

Grüße N!C0 192


----------



## Shakie (6. November 2005)

Was gibst du in die Textbox "Text2" ein und was steht in der Textbox "Text1" und was soll passieren?
(ch blick durch deinen Post nicht durch.)


----------



## Nico192 (6. November 2005)

Bezieht sich auch auf die vorherigen  
In textbox1 steht der Pfad der Datei, die geöffnet werden soll!!
In textbox2 steht z.B. "c" oda "k"
 (also das was in "cmd" geschrieben werden soll)

```
cmd /c
```

Grüße N!C0 192


----------



## Shakie (6. November 2005)

Und was sollen die Anführungsstriche --> Chr(32) bewirken?
Probier's mal so:

```
Shell "cmd /&" & Text2.Text & " " & Chr(32) & Text1.Text & Chr(32)
```
Also Leerzeichen zwischen Parameter und Dateipfad lassen sowie den ganzen Dateipfad in Anführungsstrichen übergeben und nicht nur am Anfang welche hinmachen.


----------



## Nico192 (6. November 2005)

Der Code  auch nicht, es öffnet sich wieder die cmd-File!!
Aber nicht die : cmd /?

Was ist das bloß


----------



## mage (7. November 2005)

Mal zwei MSDN Quickies dazu:
Aus Visual Basic heraus Dokumente in zugehörigen Anwendungen öffnen 

Anwendungen starten und ihr Ende abwarten


----------

