c# 如何让局域网内的打印机都显示出来
c# 如何让局域网内的打印机都显示出来,求程序
------解决方案--------------------
http://www.itwis.com/html/net/c/20110321/10081.html
第一页是说明,代码在第二页
------解决方案--------------------
在Microsoft   Windows环境下,应用程序使用Windows网络函数(WNet)来实现网络功能而不用关心网络的供应商及具体实现。因为WNet函数是独立于网络的。 
Wnet函数主要有:WnetAddConnection   ,   WnetAddConnection2   ,   WnetAddConnection3   ,   WnetCancelConnection2等。本文主要用WnetAddConnection2,WnetCancelConnection2函数,下面简单介绍一下,关于WNet函数更详细的资料请参考Delphi的连机文档和Microsoft   API函数说。 
WNetAddConnection2在Windows.pas中的函数原型如下: 
function   WNetAddConnection2
(var   lpNetResource:   TNetResource;
lpPassword,   lpUserName:   PChar;   dwFlags: 
DWORD):   DWORD;   stdcall;
为调用此函数必须填写
lpNetResouce结构,此结构的定义为:
typedef   struct   _NETRESOUCE{
 DWORD   dwScope; 
 DWORD   dwType; 
 DWORD   dwDisplayType;
 DWORD   dwUsage;
 LPTSTR   lpLocalName;
 LPTSR   lpRemoteName;
 LPTSr   lpProvider;
}   NETRESOURCE; 
这里使用dwType,lpLocalName,lpRemoteName,
lpProvider几个参数。其含义如下:
dwType   :   用于指定网络的资源类型,
有以下RESOURCETYPE_ANY(任何资源)   , 
 RESOURCETYPE_DISK(磁盘资源)   ,
  RESOURCETYPE_PRINT(打印机资源)。
lpLocalName   :   指定本地设备。
lpRemoteName   :   指定远程网络名。
lpProvider   :   指定提供网络资源的供应商。
如为空,则表示供应商未知。
WNetAddConnection2函数的
lpPassword为远程资源的口令。
 lpUserName为远程资源的用户名。
dwFlags标志位用于指定登录时是否重新连接
(0时表示不重新连接,CCONNECT_UPDATE_
PROFILE登录时重新连接)。
WnetCancelConnection2在Windows.pas
中的函数原型如下:
function   WNetCancelConnection2
(lpName:   PChar;   dwFlags:   DWORD;   fForce:   BOOL): 
DWORD;   stdcall;
lpName   :   要断开的       掏缱试椿虮镜刂囟ㄏ蚯鳌?dwFlags   :   含义同上。
fForce   :   True表示不管是否有文件打开,
强制性断开网络驱动器;False   表示如有文
 件打开则函数运行失败。
二、实例
在Delphi的File菜单下选择New   Application,在Form1上放置一个Button,在Button1的Click事件中键入如下代码: 
procedure   TForm1.Button1Click
(Sender   :   TObject);
var
 NetSource   :   TNetResource;
begin
 with   NetSource   do
 begin
 dwType   :=   RESOURCETYPE_ANY;
lpLocalName   :=   X:; 
//   将远程资源映射到此驱动器
lpRemoteName   :=   \\hqServer\sys; 
//   远程网络资源
lpProvider   :=   ;   //   必须赋值,
如为空则使用lpRemoteName的值。
 end;
 WnetAddConnection2(NetSource,   Password,   Guest, 
 //用户名为Guest,口令为Password
CONNECT_UPDATE_PROFILE); 
//下次登录时重新连接
//此时在Windows资源管理器中可看到网络驱动器X:
if   MessageDlg(Are   you   sure   to   disconnect   Drive   ?,
mtConfirmation,   [mbYes,   mbNo],   0)   =   mrYes   then 
//不管是否有文件打开,断开网络驱动器X:
 WNetCancelConnection2
(   X:,   CONNECT_UPDATE_PROFILE,   True); 
end;
end;  
写个dll 自己调用下