C# 调用API函数弹出映射网络驱动器对话框问题
1.基本知识介绍
首先,C#中的.net的常用对话框中没有映射网络驱动映射对话框,所以需要用windows的API函数去实现弹出映射网络驱动器对话框。
c#调用API函数的要点可以参考:C#中调用Windows API的技术要点说明
值得注意到是,.net环境下参数类型的声明的不同:
a、数值型直接用对应的就可。(DWORD -> int , WORD -> Int16)
b、API中字符串指针类型 -> .net中string
c、API中句柄 (dWord) -> .net中IntPtr
d、API中结构 -> .net中结构或者类。注意这种情况下,要先用StructLayout特性限定声明结构或类
然后,在Windows中,调出映射网络驱动器对话框的API函数是WNetConnectionDialog(HWND hwnd, DWORD dwType),函数的返回值是如果对话框取消,返回为-1,如果成功则返回NO_ERROR。
可以参考MSDNhttp://msdn.microsoft.com/en-us/library/aa385433(v=VS.85).aspx
[DllImport("mpr.dll", CharSet = CharSet.Ansi)]private static extern int WNetConnectionDialog(IntPtr HWND, int dwType);
private void button1_Click(object sender, EventArgs e)
{
WNetConnectionDialog(this.Handle, 1);//RESOURCETYPE_DISK的值为1
}
3.测试
点击按钮后弹出,进行配置即可
相关推荐
-
C# WinForm窗口最小化到系统托盘
1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小化事件(首先需要添加事件引用): 复制代码 代码如下: this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged); //上面一行是主窗体InitializeComponent()方法中需要添加的引用 private voi
-
C#获取进程的主窗口句柄的实现方法
通过调用Win32 API实现. 复制代码 代码如下: public class User32API{ private static Hashtable processWnd = null; public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam); static User32API() { if (processWnd == null) { processWnd = new
-
C#设置MDI子窗体只能弹出一个的方法
Windows程序设计中的MDI(Multiple Document Interface)官方解释就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序. 新建一个WindowForm程序.得到一个窗体作为我们父窗体Parent.拖入一个menustrip空间.在新建一个窗体FrmCh
-
c# winform窗口一直置顶显示在桌面最上方或最底层的方法
一. 在最前面: using System.Runtime.InteropServices; 在定义部分引入下面两个函数: [DllImport( "user32 ")] private static extern IntPtr FindWindow(string lpClassName,string lpWindowName); [DllImport( "user32 ")] private static extern IntPtr SetParent(IntPt
-
C# Winform 让整个窗口都可以拖动
今天在网上查一些资料的时候, 无意中发现另一种办法, 非常方便, 调用系统的 API 来实现的, 效果也很好. 赶紧收藏了~ 复制代码 代码如下: [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int
-
C#实现在前端网页弹出警告对话框(alert)的方法
本文实例讲述了C#实现在前端网页弹出警告对话框(alert)的方法.分享给大家供大家参考.具体如下: 通常我们通过JS生成警告对话框,下面的代码可以帮助你在点击runat=server的按钮时从服务器端生成alert警告对话框 private void MessaegBox(String msg) { Page.Controls.Add(new LiteralControl("window.alert('"+msg+"')")); } protected void
-
div弹出层的ajax登录(Jquery版+c#)
页面初始化,界面如图所示: Server name文本框获取焦点时候,界面如图所示(这里可以改成你登录的验证码): 可以加载SQL Server服务列表,也是我的简易SQL查询分析器评论中静夜妙思给予的方法,非常感谢! 加载列表如下图所示: 可以随意地点击添加到Server name中,登录时截图所示: 文本框验证都写好了!还有Authentication验证方式,windows验证下面Login,Password文本框禁掉!由于时间原因,不上图了 demo.html(全部前台代码,js/css
-
C# Winform中实现主窗口打开登录窗口关闭的方法
在使用C#进行Winform编程时,我们经常需要使用一个登录框来进行登录,一旦输入的用户名密码登录成功,这时登录窗口应该关闭,而且同时打开主程序窗口.该如何来实现呢? 乍一想,很简单啊,打开主窗口就用主窗口的Show()方法,而关闭登录窗口就用登录窗口的Close()方法即可.即代码如下: Program.cs中代码: 复制代码 代码如下: Application.Run(new FormLogin()); 登录窗口(FormLogin)代码: 复制代码 代码如下: private void b
-
win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法
本文实例分析了win7中C#的winForm编程使用savefiledialog不能弹出保存窗体的解决方法.分享给大家供大家参考.具体分析如下: 复制代码 代码如下: public void ResMsg() { while (isRecMsg) { //准备一个数组 准备接收 服务端发来的数据 byte[] msgRec = new byte[1024 * 1024 * 2]; //接收服务端发来的数据,此方法也会阻断当前线程,并返回接收的数据的长度 int recLe
-
C# winform实现右下角弹出窗口结果的方法
本文实例讲述了C# winform实现右下角弹出窗口结果的方法.分享给大家供大家参考,具体如下: using System.Runtime.InteropServices; [DllImport("user32")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); //下面是可用的常量,按照不合的动画结果声明本身须要的 private const int AW_HOR_POS
-
C#实现客户端弹出消息框封装类实例
本文实例讲述了C#实现客户端弹出消息框封装类.分享给大家供大家参考.具体如下: asp.net在服务器端运行,是不能在服务器端弹出对话框的,但是C#可以通过在页面输出JS代码实现弹出消息框的效果,这个C#类封装了常用的消息框弹出JS代码,可以在服务器端调用,在客户端显示对话框.不但可以显示JS的警告框,还可以显示模式窗口,非常方便. using System; using System.Web; using System.Web.UI; using System.Web.UI.WebContro
随机推荐
- js中settimeout方法加参数
- Rails应用程序中同时修改操作冲突问题的解决方案
- WinXP下安装IIS搭建ASP环境教程[图文]
- ASP.NET 定制简单的错误处理页面实现代码
- php接口和抽象类使用示例详解
- php实现博客,论坛图片防盗链的方法
- LNMP部署laravel以及xhprof安装使用教程
- 关于内容的分离,正则抽出图片(一定要加精哦)
- 用ASP创建日志文件(附源程序)
- JS写的贪吃蛇游戏(个人练习)
- asp.net url重写的好处与方法
- 浅析Linux系统下安装wetty和使用说明
- LSI SAS1068 RAID 阵列卡图文配置教程
- 厉害的艺术.剪纸欣赏
- 在线游戏大家来找茬II
- Kotlin null的处理详解
- 毕业论文-大型的WEB应用程序开发
- python抓取文件夹的所有文件
- 易语言设置按回车下移焦点功能的讲解
- 关于 Python opencv 使用中的 ValueError: too many values to unpack