PDA

Vollständige Version anzeigen : Dateien aufrufen mit Shell?


Marcys
12.07.2008, 21:14
Hallo,

ich war schon gerade im Accessforum, doch hier passt meine Frage besser rein. Folgendes:
In VB6 habe ich ein Formular erstellt, aus dem das Programm Remotedesktop geöffnet wird. Der Hintergrund ist der, dass sich mehrere User an einem Rechner über Remotedesktop auf unseren TErminalserver einwählen. Somit möchte ich für jeden User eine eigene rdp-Datei erstellen, und mit IF ANweisung verknüpfen.
Aus dem Kombi kann der USer seinen namen Auswählen und die entsprechende rpd-Datei starten.
If meinkbi = user1 then "öffne die DAtei user1
If meinkbi = user2 then "öffne die DAtei user2
etc.

Unter c:\RDPDaten habe ich jeweils die Dateien liegen:

User1.rdp
User2.rdp
etc.

Um ein Programm per VB(A) zu öffnen kann man die Shell Funktion nutzen

Code:

shell: "C:windows\programme\meinprogramm.exe


nun möchte ich eine .rdp und keine exe datei öffnen.


Ich erhalte die Fehlermeldung:

Laufzeitfehelr 5
Ungültiger Prozeduraufruf oder ungültiges Arrgument

Gibt es vll. eine andere Funktion. Mit der man Dateien aufrufen kann?

hcscherzer
12.07.2008, 21:23
Probier es mal mit system.diagnostics.process.start("user1.rdp")Ich bin jetzt nur nicht sicher, ob es damit in VB6 auch klappt ... in vb.net sollte es kein Problem sein.
Andererseits ist aber auch Dein Beispiel mit 'Shell' syntaktisch nicht korrekt; wenn ich mich nicht irre, müsste es lautenShell("C:windows\programme\meinprogramm.exe")

Marcys
14.07.2008, 17:09
Hallo Hans-Christian,

Dein Beispiel mit 'Shell' syntaktisch nicht korrekt; wenn ich mich nicht irre, müsste es lauten

Ja du hast recht, habe mich in dem Beitrag verschrieben. In meiner Anwendung war es jedoch richtig und es haut auch geklappt.

system.diagnostics.process.start("user1.rdp")

Mit dem Code klappt es jedoch nicht.

Wie könnte man dies mit Shell Execute machen?

Robert_Zenz
14.07.2008, 19:06
Moin.

Versuch mal ob du das Ding als Parameter an Access geben kannst. Ich weiß nicht ob er das akzeptiert, aber sollte.

So in etwa:
Shell("C:\Prgramme\WasWeißIch\access.exe C:\WasWeißIch\user1.rdp")

Rob

hcscherzer
14.07.2008, 20:00
@Rob: also wenn schon, dann muss der RDP-Client aufgerufen werden und nicht Access.

@Martin: versuch doch mal, die Datei als Parameter dahinter zu klemmenShell("C:\WINNT\system32\mstsc.exe" "C:\RDPDaten\user1.rdp")

Robert_Zenz
14.07.2008, 20:31
@hcscherzer: Ups...keine Ahnung wie ich da auch Access kam. *grübl*

Marcys
14.07.2008, 20:38
Hallo Hans-Christian,

wenn ich den Code so übernehme, dannt bekomme ich die Fehlermeldung:

Fehler beim Kompilieren
Erwartet Listentrennzeichen oder )

Wo wir auch schon beim Thema sind. Ich möchte diverse kleine Anwendungen machen. Z.B. dass man duch klick eine Batch-Datei ausführt.

Mit Shell in VB geht das irgenwie nicht. Es muss ja irgendwie einen einfachen Befehl geben, der mir dateien öffnet oder ausführt egal ob es *.bat, *.exe, *.dot etc. sind.

Weißt du wie man sowas anspricht?

hcscherzer
15.07.2008, 08:39
Moin Martin,

probier's halt mal mit einem ArgumentShell("C:\WINNT\system32\mstsc.exe C:\RDPDaten\user1.rdp")Du solltest auch in jedem Fall checken, ob die mstsc.exe bei Dir in dem angegebenen Pafd zu finden ist. Es könnte auch 'WINDOWS' statt 'WINNT' sein ...einen einfachen Befehl geben, der mir dateien öffnet
Eigentlich ist das die Methode Process.Start(filename). Sie öffnet die Anwendung, die für die Endung von filename registriert ist.

Marcys
15.07.2008, 09:47
Hallo Hans-Christian,

es klappt. Obwohl ich es mit dem Weglassen der Gänsefüßchen aus schon probiert habe. Anscheinend habe ich vor lauter Bäumen den Wald nicht mehr gesehen.
Ne Kleinigkeit hätte da noch. Besteht die Möglichkeit die Datei in Vollbild zuöffnen. Derzeit wird sie ganz kurz als Vollbild geöffnet aber verschwindet wieder in der Tasktleiste.Task


Zitat:

einen einfachen Befehl geben, der mir dateien öffnet
Eigentlich ist das die Methode Process.Start(filename). Sie öffnet die Anwendung, die für die Endung von filename registriert ist.

D. h. ich müsste zuerst das Programm öffnen, mit dem ich die Batchdatei öffne und anschließend die Batchdatei?

hcscherzer
15.07.2008, 11:47
Für die Endung '.bat' ist fast immer die CommandLine-Shell (cmd.exe) registriert.
Wenn Du also eine Batchdatei an Process.Start übergibst, wird das 'DOS-Fenster' - wie es auch manchmal genannt wird - geöffnet und die Batchdatei ausgeführt. Das kann so schnell gehen, dass Du dabei das Fenster nur kurz aufflackern siehst. Setz mal probeweise den Befehl 'Pause' in die Batchdatei und dann bekommst Du es zu sehen.

Wenn ein Command-Fenster geöffnet ist, kannst Du über die Eigenschaften (rechte Maustaste auf die Titelzeile) festlegen, ob es als Fenster oder im Vollbild geöffnet wird. Eine Möglichkeit, dieses Fenster per Parameter von cmd.exe im Vollbild-Modus zu öffnen, kenne ich nicht.

Wenn es um das Vollbild für die RDP Verbindung geht: die Einstellungen kannst Du für jede RDP Datei editieren wenn Du sie öffnest und über die Schaltfläche 'Optionen' bearbeitest.