Entwickler-Ecke
Basistechnologien - System.Diagnostics.Process.Start funktioniert nicht
Man-Chro - Do 04.12.08 15:57
Titel: System.Diagnostics.Process.Start funktioniert nicht
Hi,
ich möchte ein Netzlaufwerk verbinden lassen per Console. Doch leider funktioniert es nicht und ich habe etwas Zeitdruck :( Eigentlich entwickle ich nicht in C-Sharp sondern in PHP es ist ein kleines Projekt, verzeiht mir daher Anfängerfehler.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace Netzlaufwerke { public partial class form1 : Form { public form1() { InitializeComponent(); }
private void verbinden_Click(object sender, EventArgs e) { MessageBox.Show("Verbinden");
System.Diagnostics.Process.Start("net use y: \\SERVER\ORDNER PASSWORT /user:BENUTZERNAME");
}
private void nichtverbinden_Click(object sender, EventArgs e) { MessageBox.Show("Nicht verbinden"); } } } |
Auch habe ich hier nachgesehen:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx doch leider bin ich nicht wirklich fündig geworden.
Könnt ihr mir sagen, was ich falsch mache?
Über Hilfe würde ich mich sehr freuen!
Grüße
Christian S. - Do 04.12.08 16:03
Schau Dir mal die Überladungen der Start-Methode an, die Start-Parameter werde nämlich gesondert übergeben. :-)
//Edit: :welcome: im Forum
Man-Chro - Do 04.12.08 17:00
Christian S. hat folgendes geschrieben : |
Schau Dir mal die Überladungen der Start-Methode an, die Start-Parameter werde nämlich gesondert übergeben. :-)
//Edit: :welcome: im Forum |
Hi,
danke für das welcome im Forum. Meinst du mit gesondert übergeben "befehl", "paramter 1"? Bei dem MSDNA habe ich das so verstanden dass ich eine "*.exe", "parameter", aber ich habe in meinem befehl keine Exe. Ich verstehe das nicht, was ich da machen soll.
Th69 - Do 04.12.08 17:04
Doch "net" ist dein Befehl. Gib doch einfach mal "net.exe" in die console ein -)
Man-Chro - Do 04.12.08 17:23
Th69 hat folgendes geschrieben : |
Doch "net" ist dein Befehl. Gib doch einfach mal "net.exe" in die console ein -) |
Ok, dann hab ich das mal geändert in:
System.Diagnostics.Process.Start(@"net.exe", @"use y: \\SERVER\ORDNER PASSWORT /user:BENUTZERNAME");
Es funktioniert immer noch nicht. :( ist noch ein Fehler drin?
jaenicke - Do 04.12.08 17:41
Probier den Befehl mal an der Kommandozeile aus, bei mir funktioniert das...
Da stimmt dann etwas mit dem Befehl nicht. Falscher Benutzername? Tippfehler?
Aber die entsprechende Fehlermeldung siehst du ja, wenn du es außerhalb von C# selbst in die Konsole eingibst.
Man-Chro - Do 04.12.08 18:48
jaenicke hat folgendes geschrieben : |
Probier den Befehl mal an der Kommandozeile aus, bei mir funktioniert das...
Da stimmt dann etwas mit dem Befehl nicht. Falscher Benutzername? Tippfehler?
Aber die entsprechende Fehlermeldung siehst du ja, wenn du es außerhalb von C# selbst in die Konsole eingibst. |
Hi, der Befehl ist richtig geschrieben ich bekomme ein Fehler beim Compalieren:
C#-Quelltext
1:
| Fehler 1 Der Typ- oder Namespacename "Process" ist im Namespace "System" nicht vorhanden. (Fehlt ein Assemblyverweis?) C:\Dokumente und Einstellungen\User\Eigene Dateien\Visual Studio 2008\Projects\Netzlaufwerke\Netzlaufwerke\Form1.cs 29 20 Netzlaufwerke |
JüTho - Do 04.12.08 19:42
Hallo,
diese Fehlermeldung (und natürlich ihre Beseitigung :wink: ) musst Du Dir unbedingt merken! Er ist bei Anfängern sehr verbreitet, kann aber auch ganz leicht beseitigt werden:
1. Gehe in die SDK-Doku/MSDN zu der Klasse, in diesem Fall "Process" unter "Informationen zur ...". Dort steht, welcher Namespace und welche DLL diese Klasse enthalten.
2. Unter using ist der korrekte Namespace einzubinden; bitte beachte, dass jeder Namespace eigenständig gilt und es sich nicht um eine hierarchische Gliederung handelt.
3. Unter Referenzen ist die DLL (Assembly) hinzuzufügen (sofern sie nicht, wie in diesem Fall, sowieso standardmäßig aufgeführt wird).
Jürgen
Man-Chro - Do 04.12.08 20:36
JüTho hat folgendes geschrieben : |
Hallo,
diese Fehlermeldung (und natürlich ihre Beseitigung :wink: ) musst Du Dir unbedingt merken! Er ist bei Anfängern sehr verbreitet, kann aber auch ganz leicht beseitigt werden:
1. Gehe in die SDK-Doku/MSDN zu der Klasse, in diesem Fall "Process" unter "Informationen zur ...". Dort steht, welcher Namespace und welche DLL diese Klasse enthalten.
2. Unter using ist der korrekte Namespace einzubinden; bitte beachte, dass jeder Namespace eigenständig gilt und es sich nicht um eine hierarchische Gliederung handelt.
3. Unter Referenzen ist die DLL (Assembly) hinzuzufügen (sofern sie nicht, wie in diesem Fall, sowieso standardmäßig aufgeführt wird).
Jürgen |
Hi Jürgen,
vielen vielen Dank für deine Hilfe, kannst du mir auch sagen was der Fehler bedeutet bzw. was ich da mache, dass ich auch etwas lerne und mir es merken kann?
Grüße
JüTho - Fr 05.12.08 10:50
Man-Chro hat folgendes geschrieben : |
kannst du mir auch sagen was der Fehler bedeutet bzw. was ich da mache, dass ich auch etwas lerne und mir es merken kann? |
Naja, der Fehler bedeutet eben, dass der Compiler nicht weiß, wo und wie er die Definition für den verwendeten Begriff (hier: Process) finden kann, weil ihm eine der Informationen 2 oder 3 (oder beide) fehlen.
Es handelt sich dann immer um dieselbe Formulierung:
Zitat: |
Fehler 1 Der Typ- oder Namespacename "XXX" ist im Namespace "YYY" nicht vorhanden. (Fehlt ein Assemblyverweis?) |
Jürgen
Man-Chro - Fr 05.12.08 10:56
JüTho hat folgendes geschrieben : |
Hallo,
diese Fehlermeldung (und natürlich ihre Beseitigung :wink: ) musst Du Dir unbedingt merken! Er ist bei Anfängern sehr verbreitet, kann aber auch ganz leicht beseitigt werden:
1. Gehe in die SDK-Doku/MSDN zu der Klasse, in diesem Fall "Process" unter "Informationen zur ...". Dort steht, welcher Namespace und welche DLL diese Klasse enthalten.
2. Unter using ist der korrekte Namespace einzubinden; bitte beachte, dass jeder Namespace eigenständig gilt und es sich nicht um eine hierarchische Gliederung handelt.
3. Unter Referenzen ist die DLL (Assembly) hinzuzufügen (sofern sie nicht, wie in diesem Fall, sowieso standardmäßig aufgeführt wird).
Jürgen |
Hi Jürgen,
ich hab jetzt mal versucht das zu machen, doch es klappt nicht, wenn ich auf
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx gehe, find eich keine "Informationen zur ..." oder "Information ...".
Hast du einen anderen Link oder Download?
Grüße
JüTho - Fr 05.12.08 11:06
Puuuh, ist das Mitdenken denn so schwer? Ich benutze die offline-Version der deutschen Doku und gehe üblicherweise in den Index. Dort finde ich einen Hinweis "Informationen zur Xxx-Klasse".
Wenn Du direkt in die (englische) MSDN gehst, sieht es natürlich ein bisschen anders aus. Aber wenn ich auf die Seite in Deinem Link gehe, sehe ich ganz oben fett gedruckt die Wörter
Namespace und
Assembly, also dahinter genau die beiden Informationen, die ich in 2. und 3. angesprochen habe. Übernimm doch diese Angaben!!!
Jürgen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!