Laden...

[erledigt] Auf Server liegende Verknüpfung starten

Erstellt von Edzio vor 10 Jahren Letzter Beitrag vor 10 Jahren 7.775 Views
E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 10 Jahren
[erledigt] Auf Server liegende Verknüpfung starten

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

1.696 Beiträge seit 2006
vor 10 Jahren

Hallo,

Was passiert, wenn du im Windows Explorer ein gibst: \server.net\GRP-0439\programm\verknuepfung_name

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 10 Jahren

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...

49.485 Beiträge seit 2005
vor 10 Jahren

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.

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 10 Jahren

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ß

709 Beiträge seit 2008
vor 10 Jahren

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

3.825 Beiträge seit 2006
vor 10 Jahren

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

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 10 Jahren

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(

3.825 Beiträge seit 2006
vor 10 Jahren

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

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 10 Jahren

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.
🤔

3.825 Beiträge seit 2006
vor 10 Jahren

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

1.696 Beiträge seit 2006
vor 10 Jahren

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

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 10 Jahren

@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.

1.696 Beiträge seit 2006
vor 10 Jahren

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

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

E
Edzio Themenstarter:in
68 Beiträge seit 2013
vor 10 Jahren

[erledigt]
Das mit dem DFS von vbprogger war der springende Punkt.
Danke an alle für ihr Bemühen.

Gruß Edzio