Hallo zusammen,
ich versuche eine Verknüpfung auf einem Server über:
namespace start_cm
{
class Program
{
static void Main(string[] args)
{
string startpfad = "\\\\server.net\\GRP-0439\\programm\\verknuepfung_name";
try
{
Process.Start(startpfad);
}
catch(Exception fehler)
{
Console.WriteLine("-----------------ERROR--------------ERROR-------------");
Console.WriteLine(fehler);
Console.WriteLine("-----------------ERROR--------------ERROR-------------");
}
}
}
}
zu starten.
Mit diesem Pfad geht das nicht, es kommt als Fehlermeldung:> Fehlermeldung:
System.ComponentModel.Win32Exception (0x80004005):
Das System kann die angegebene Datei nicht finden.
Schreibe ich anstelle der Serverbezeichnung
das Laufwerk z.b.
string startpfad = "Q:\\GRP-0439\\programm\\verknuepfung_name";
Funktioniert das mit der Verknüpfung.
Wie bekomme ich das andere hin?
Bei einer kopierfunktion mit system.io.file.copy geht es doch auch mit der direkten Serverbezeichnung.
Danke und Gruß
C# Status: Anfänger
Hallo,
Was passiert, wenn du im Windows Explorer ein gibst: \server.net\GRP-0439\programm\verknuepfung_name
Grüße
**:::
mh,
das ist komisch, es kommt ein Netzwerkfehler,
"Auf \......\ konnte nicht zugegriffen werden"
???
Blicks nicht, ich habe doch Berechtigungen und alles.
Hab gerade nochwas mit file://\server.net...
getestet, des geht gar nicht...
Hallo Edzio,
meinst du wirklich auf dem Server starten? Das geht nicht. Das Programm wird auf dem Client - also da wo das C#-Programm läuft - gestartet, auch wenn das zu startende Programm auf dem Server liegt.
Und was meinst du mit Verknüpfung? Eine .LNK-Datei?
herbivore
EDIT: Aufgrund der folgenden Antwort den Titel angepasst.
Hallo Herbivore
also auf dem Server liegt ne Verknüpfung zu einem Programm
(ganz normal erstellt mit "Rechtsklick->Verknüpfung erstellen")
und die will ich "aufrufen" um das verknüpfte programm zu starten
und parallel dann noch andere Dinge erledigen will (die bis jetzt noch nicht im Code eingebaut sind)
(Die Datei soll zentral liegen, damit diese mehrer User ansprechen können)
Gruß
Hallo Edzio,
solch eine Verknüpfung müsste eine lnk-Datei sein.
Wie man das Ziel einer solchen Verknüpfung auslesen kann, ist hier beschrieben. [erledigt] Ziel einer Verknüpfung auslesen
Gruß
pinki
Starte besser das ausführbare Programm direkt.
Beachte dabei [FAQ] Anwendung von Netzlaufwerk starten
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hallo Bernd,
direkt kann ich das nicht starten,
das ist eine .cmd Datei, die unsere CAD Software startet und sämtliche Tools.
Diese Datei wollte ich bereits direkt aufrufen, aber mit den Drei Startversuchen kamen zwei unterschiedliche Ergebnise, was mich auf die Idee mit der Verknüpfung brachte.
Variante 1
// Api Deklarieren
[DllImport("shell32.dll", EntryPoint = "ShellExecute")]
public static extern long ShellExecute(int hwnd, string cmd, string file, string param1, string param2, int swmode);
static void Main(string[] args)
{
string USER = Environment.UserName;
string startpfad = "\\\\server.net\\aaaaa\\bbb\\ccc\\ddddd\\eeeee\\fffff.cmd";
try
{
ShellExecute (0, "open", startpfad, "", "", 2);
}
Variante 2
static void Main(string[] args)
{
try
{
Process.Start("cmd.exe", "/c \\\\server.net\\aaaaa\\bbb\\ccc\\ddddd\\eeeee\\fffff.cmd");
}
Variante 3
static void Main(string[] args)
{
string startpfad = "\\\\server.net\\aaaaa\\bbb\\ccc\\ddddd\\eeeee\\fffff.cmd";
Process starten = new Process();
try
{
starten.StartInfo.UseShellExecute = true;
starten.StartInfo.FileName = startpfad;
starten.StartInfo.Arguments = "";
starten.Start();
}
Alle 3 Varianten versucht zu starten (auch direkt mit dem Laufwerkbuchstabe anstelle dem Server),
es kam immer bei:
Variante 1 und 2
kurz das DOS Fenster danach nichts
und bei Variante 3
kam ebenfalls der Fehler mit dem Win32...
(Eine andere .cmd Datei läßt sich starten, daher bin ich davon ausgegangen, dass es an dieser selbst liegt und ich kam auf die Idee "Verknüpfung")
Wo ich jetzt beim nächsten Problem liege mit der "Serveradresse" X(
Funkioniert denn
cmd.exe /c \\server.net\aaaaa\bbb\ccc\ddddd\eeeee\fffff.cmd
in der Dos-Box ?
Beachte dass es auf einem 64-Bit-System eine 64-Bit-Cmd und eine 32-Bit-Cmd gibt.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
also wenn ich
das direkt in die system32/cmd.exe eingeb
sagt er dass der Netzwerkname nicht gefunden wurde,
im SysWOW64/cmd.exe
kommt
Ds System kann den angegebenen Pfad nicht finden.
Habe es mit meinen richtigen Daten so eingegeben, wie du es geschrieben hast.
🤔
Kommen Leerzeichen im Pfad vor ?
Dann eventuell mit " einklammern.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
mh,
das ist komisch, es kommt ein Netzwerkfehler,
"Auf \......\ konnte nicht zugegriffen werden"
???
Blicks nicht, ich habe doch Berechtigungen und alles.Hab gerade nochwas mit file://\server.net...
getestet, des geht gar nicht...
Es mag ja sein, dass du über notwendige Rechte besitzt, doch das nützt dir nichts wenn die Freigabe falsch ist. So wie du beschrieben hast sieht es für mich aus, dass
Q:\GRP-0439\programm\verknuepfung_name nicht gleich \server.net\GRP-0439\programm\verknuepfung_name ist,
denn das Laufwerk Q: könnte mit \server.net\freigabe-xyz gemappt sein, so dass der eigentliche UNC-Pfad etwa so aussehen könnte:
\server.net\Freigabe-xyz\GRP-0439\programm\verknuepfung_name
Überprüfe das mal.
BTW. normalerweise sieht man die Freigabe im Windows Explorer auch, das ist das Teil im (...) vor dem Laufwerkbuchstabe, wenn der Admin es nicht unterbunden hat.
Grüße
**:::
@Bernd
nein es kommen keine Leerzeichen vor.
Ok versuch ich auch mal.
@vbprogger
ich hab mal einen Screenshoot angehängt, der die Ansicht im Explorer zeigt.
Als Server.net habe ich dann das _sdet2353.de.xxxxxxx.net_
eingesetzt.
Du hast hier mit DFS zu tun und die Freigabe vom DFS lautet:
\sdet2353.de.xxxxxxx.net\store
und somit ist die UNC-Angabe zu deiner Verknüpfung:
\sdet2353.de.xxxxxxx.net\store\GRP-0439\programm\verknuepfung_name
**:::
[erledigt]
Das mit dem DFS von vbprogger war der springende Punkt.
Danke an alle für ihr Bemühen.
Gruß Edzio