<p>使用导出的<a href="https://msdn.microsoft.com/en-us/library/aa385154" rel="noreferrer">Windows Networking</a>API映射网络驱动器mpr.dll(多提供商路由器)。您可以通过<a href="https://msdn.microsoft.com/en-us/library/aa385413" rel="noreferrer">^{<cd1>}</a>创建网络驱动器。要获取与本地设备关联的远程路径,请调用<a href="https://msdn.microsoft.com/en-us/library/aa385453" rel="noreferrer">^{<cd2>}</a>。可以使用ctypes执行此操作,如下所示:</p>
<pre><code>import ctypes
from ctypes import wintypes
mpr = ctypes.WinDLL('mpr')
ERROR_SUCCESS = 0x0000
ERROR_MORE_DATA = 0x00EA
wintypes.LPDWORD = ctypes.POINTER(wintypes.DWORD)
mpr.WNetGetConnectionW.restype = wintypes.DWORD
mpr.WNetGetConnectionW.argtypes = (wintypes.LPCWSTR,
wintypes.LPWSTR,
wintypes.LPDWORD)
def get_connection(local_name):
length = (wintypes.DWORD * 1)()
result = mpr.WNetGetConnectionW(local_name, None, length)
if result != ERROR_MORE_DATA:
raise ctypes.WinError(result)
remote_name = (wintypes.WCHAR * length[0])()
result = mpr.WNetGetConnectionW(local_name, remote_name, length)
if result != ERROR_SUCCESS:
raise ctypes.WinError(result)
return remote_name.value
</code></pre>
<p>例如:</p>
^{pr2}$