调用dll文件不知道参数的情况(例:c#调用user32.dll的messagebox方法)

2 篇文章 0 订阅
本文介绍了在C#中如何调用user32.dll的MessageBox方法,当参数信息不全时,作者通过搜索和在线转换找到了16进制数值对应的10进制参数,实现了消息框的显示。尽管能实现置顶效果,但因不友好的强制聚焦问题而被放弃。参考了CSDN、百度百科和博客园的相关文章。
摘要由CSDN通过智能技术生成

c#调用user32.dll的messagebox方法:

// 提示框的参数
        private const int MB_OK = 0;
        private const int MB_DEFBUTTON2 = 256;
        private const int MB_TASKMODAL = 8192;
        private const int MB_TOPMOST = 262144;

[DllImport("user32.dll", CharSet = CharSet.Unicode)]

        public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

MessageBox(IntPtr.Zero, "text!", "系统提示", MB_OK | MB_DEFBUTTON2 | MB_TASKMODAL | MB_TOPMOST);

起初我只在网上找到方法名和参数类型,并没有找到参数对应的int值.

我的做法是直接在百度词条搜索messagebox关键词

找到对应的16进制数字,然后在线转换成10进制就ok了 !

对了 ,这个功能写的是把弹窗置顶在最上面 ,还不强制将焦点聚焦到对话框上。

MessageBox.Show("text", "系统提示", MessageBoxButtons.OK, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification, true);

这种方法,会强制聚焦在这个对话框上面,很不友好,所以弃用了。

参考链接:Messagebox的Owner,显示位置,自动关闭的研究。_c# messagebox owner-CSDN博客

MessageBox_百度百科

https://www.cnblogs.com/devinblog/p/4183758.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值