WNetAddConnection2 geht nicht mehr

woezelmann

Mitglied
Hallo Leute!

Vor einiger Zeit hab ich es (tutorials.de sei Dank) geschaft, eine Verbindung mit einem freigegeben Laufwerk im Netzwerk aufzubauen. Gestern gings auch alles noch ohne weiteres, doch als ich heute meinen Rechner gestartet habe, gings dann nicht mehr :eek: !

Ich bin mir 100%ig sicher, dass ich am Code nichts geändert habe, sitz jetzt schon seit 2 Stunden dran, komm aber nicht drauf, was los ist.

Mein Code sieht so aus:
Code:
private const int CONNECT_INTERACTIVE = 0x00000008;
        private const int CONNECT_PROMPT = 0x00000010;
        private const int RESOURCETYPE_ANY = 0x0;

        [DllImport("mpr.dll", EntryPoint = "WNetAddConnection2W",
            CharSet = CharSet.Unicode)]
        private static extern int WNetAddConnection2(
            ref NETRESOURCE lpNetResource, string lpPassword, string lpUsername, Int32 dwFlags);

        public void addConn()
        {
            NETRESOURCE ConnInf = new NETRESOURCE();

            ConnInf.dwScope = 0;
            ConnInf.dwType = RESOURCETYPE_ANY;
            ConnInf.dwDisplayType = 0;
            ConnInf.dwUsage = 0;
            ConnInf.lpLocalName = null;
            ConnInf.lpRemoteName = "\\\\192.168.199.128\\sammelverzeichnis";
            ConnInf.lpComment = null;
            ConnInf.lpProvider = null;

            int conn = WNetAddConnection2(ref ConnInf, "test", "test",
                               CONNECT_INTERACTIVE | CONNECT_PROMPT);
        }

        #region Nested type: NETRESOURCE

        [StructLayout(LayoutKind.Sequential)]
        internal struct NETRESOURCE
        {
            public int dwDisplayType;
            public int dwScope;
            public int dwType;
            public int dwUsage;

            [MarshalAs(UnmanagedType.LPWStr)] public string lpComment;

            [MarshalAs(UnmanagedType.LPWStr)] public string lpLocalName;

            [MarshalAs(UnmanagedType.LPWStr)] public string lpProvider;

            [MarshalAs(UnmanagedType.LPWStr)] public string lpRemoteName;
        }

        #endregion

Ich bekomme unterschiedliche errorcodes, abhängig davon, was für einen Wert ich lpLocalName gebe:

lpLocalName = null; -> 487: Attempt to access invalid address.
lpLocalName = ""; -> 67: The network name cannot be found.
lpLocalName = "H:" -> The specified network provider name is invalid.

Wie gesagt, gestern ging das Ganze noch ohne Probleme.

Bitte bitte, helft mir :p
 
Also wenn du nichts geändert hast, dann gibt es nur drei Möglichkeiten:
  • es hat nie funktioniert
  • das Problem liegt außerhalb deiner Software
  • du hast eine Änderung gemacht, die diesen Bereich beeinflusst
 
hmmm, das sind auch meine Überlegungen gewesen.

zu 1) wenn mir nicht jemand irgendwelche psychoaktiven drogen in den kaffee getan hat und ich die letzten 2 wochen nur geträumt habe, dann ging das Prog.

zu 2) das könnte evtl. sein, vielleicht hat vista ja mit dem letzten sicherheitsupdates die "mpr.dll" geändert, obwohl ich mir das auch nicht wirklich vorstellen kann.

zu 3) hab das ganze jetzt noch mal außerhalb des Gesamtsystems neue gecodet, geht immer noch nicht ...

naja, ich forsche weiter, bin aber für alle Tips und Vorschläge offen und dankbar.
 

Neue Beiträge

Zurück