منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
تحديد المعرف unc الخاص بجهاز على الشبكة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90)
+--- قسم : مكتبة أكواد المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=111)
+---- قسم : مكتبة أكواد .net (http://vb4arb.com/vb/forumdisplay.php?fid=117)
+---- الموضوع : تحديد المعرف unc الخاص بجهاز على الشبكة (/showthread.php?tid=6228)



تحديد المعرف unc الخاص بجهاز على الشبكة - RaggiTech - 17-10-12

كاتب الموضوع : Boutemine Oualid

السلام عليكم و رحمة الله و بركاته

كود :
using System.Text;
using System.Runtime.InteropServices

[DllImport("shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern bool PathIsNetworkPath([MarshalAs(UnmanagedType.LPTStr)]string pszPath);
[DllImport("mpr.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint = "WNetGetConnectionW")]
public static extern int WNetGetConnection([MarshalAs(UnmanagedType.LPWStr)]string lpLocalName, StringBuilder lpRemoteName, ref int lpnLength);
public string GetUNCPath(string NetworkPath)
{
string szRoot = NetworkPath.Substring(0, 2);
string szPath = NetworkPath;
if (PathIsNetworkPath(szPath))
{
StringBuilder szbUNC = new StringBuilder(260);
int iLength = 260;
if (WNetGetConnection(szRoot, szbUNC, ref iLength) == ERROR_SUCCESS)
{
szPath = Path.Combine(szbUNC.ToString(), Path.GetFileName(szPath));
}
}
return szPath;
}