2012-04-06 18 views
0

Ich habe eine VC++ - EXE, die Netzwerkkarte Laufwerk mit Alphabet Name "M" (M: \ Server-IP \ Freigabename) aufruft. Basierend auf dem Geschäft, kopiert es einige Dateien in den freigegebenen Netzwerkordner und es funktioniert gut.Netzwerkkarte Laufwerk nicht zugänglich

Das Problem ist, wenn ich VC++ exe von .NET-Anwendung aufrufen, die Process.Start (startInfo) verwendet, wirft das Netzwerkkartenlaufwerk die Ausnahme, dass netwrok nicht gefunden wird.

In einigen Benutzer-PCs funktioniert es gut sogar von .net App aufgerufen. Wir verwenden .NET Framework 3.5 mit SP1 und OS ist XP. Bitte helfen Sie mir bei der Lösung dieses Problems. Ich habe sogar CASPOL.exe versucht, der Netzwerkfreigabe das volle Vertrauen zu geben.

+0

Können Sie den Code veröffentlichen? Vielleicht gibt es dort einen Fehler – Rushil

+0

Code zum Aufruf der exe ... string strCommand = "VC.exe"; System.Diagnostics.ProcessStartInfo procStartInfo = Neu System.Diagnostics.ProcessStartInfo (System.Windows.Forms.Application.StartupPath + strCommand); procStartInfo.RedirectStandardOutput = true; procStartInfo.UseShellExecute = false; procStartInfo.CreateNoWindow = true; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo = procStartInfo; proc.Start(); Es funktioniert gut in einigen PCs und funktioniert nicht in einigen .. – user1316614

Antwort

0

Anstatt Ihre VC++ EXE zu starten, könnten Sie eine Befehlsshell (cmd.exe) starten und selbst nachsehen, ob das Netzwerklaufwerk existiert.

Wenn nicht, ich würde suchen, welchen Benutzer Kontext Ihr Programm und die cmd.exe unter laufen und stellen Sie sicher, es ist der gleiche Benutzer und dieser Benutzer hat das Netzlaufwerk.