Silverlight 5 RC新特性探索系列:12.Silverlight 5 RC 窗口模式下访问自定义DLL和WIN32 API
2011-11-01 10:59
609 查看
在Silverlight 5 RC版本中针对访问权限进行了相应的提升,它的项目属性中新增了一个复选框“在浏览器内运行时需要提升的信任”,如下图:
它将为在浏览器模式下运行的应用程序提升一些访问权限,例如我的上篇SaveFileDialog保存文件指定默认名称---OpenFileDialog打开文件指定默认路径就需要提升权限。另外在其OOB模式下也进行了相应的提升,比如访问WIN 32 API,或者访问在C:\Windows\System32目录下的自己编写的DLL文件。
A:在OOB模式下的提升权限来访问WIN32API。
一、我们提升应用程序权限,如下图
二、键入以下代码以访问WIN 32 DLL的API函数,需要using System.Runtime.InteropServices。
B:我们访问C:\Windows\System32目录下的自己编写的DLL文件.
一、首先找一个使用C++编写的外部DLL文件将其复制到System32目录下(这个DLL文件请参看22.Silverlight使用WebService调用C++,Delphi编写的DLL文件),此DLL文件内有一个函数GetNum(double a,double b),作用是将a和b两个数字相加并且返回结果。
二、键入一下代码,以调用IlasLinkDll.dll。
最后我们来看运行效果如下,如需源码请点击SL5Cmd.zip 下载:
它将为在浏览器模式下运行的应用程序提升一些访问权限,例如我的上篇SaveFileDialog保存文件指定默认名称---OpenFileDialog打开文件指定默认路径就需要提升权限。另外在其OOB模式下也进行了相应的提升,比如访问WIN 32 API,或者访问在C:\Windows\System32目录下的自己编写的DLL文件。
A:在OOB模式下的提升权限来访问WIN32API。
一、我们提升应用程序权限,如下图
二、键入以下代码以访问WIN 32 DLL的API函数,需要using System.Runtime.InteropServices。
///<summary> /// 弹出窗口 ///</summary> ///<param name="h">弹出窗口的父窗口,在这里没有,所以为0</param> ///<param name="message">需要显示的消息</param> ///<param name="title">窗口的标题</param> ///<param name="type">窗口的类型 0为确定按钮,1为确定、取消双按钮</param> ///<returns></returns> [DllImport("user32.dll", EntryPoint = "MessageBoxA")] public static extern int MsgBox(int h, string message, string title, int type);
B:我们访问C:\Windows\System32目录下的自己编写的DLL文件.
一、首先找一个使用C++编写的外部DLL文件将其复制到System32目录下(这个DLL文件请参看22.Silverlight使用WebService调用C++,Delphi编写的DLL文件),此DLL文件内有一个函数GetNum(double a,double b),作用是将a和b两个数字相加并且返回结果。
二、键入一下代码,以调用IlasLinkDll.dll。
///<summary> /// 获取到DLL的值 ///</summary> ///<param name="Anumber">数字A</param> ///<param name="Bnumber">数字B</param> ///<returns></returns> [DllImport("IlasLinkDll.dll", CharSet = CharSet.Ansi, EntryPoint = "GetNum", ExactSpelling = false)] public static extern double GetNum(double Anumber, double Bnumber);
三、最后我们在客户端调用上面两个函数,以观察效果。
public MainPage() { InitializeComponent(); MessageBox.Show("调用IlasLinkDll.dll获得的结果:"+GetNum(500.0, 23.0).ToString()); MsgBox(0, "这是调用User32.dll弹出的窗口", "提示信息",1);}
最后我们来看运行效果如下,如需源码请点击SL5Cmd.zip 下载:
相关文章推荐
- Silverlight 5 RC新特性探索系列:12.Silverlight 5 RC 窗口模式下访问自定义DLL和WIN32 API
- Silverlight 5 beta新特性探索系列:1.安装Silverlight 5 beta环境以及OOB模式下Silverlight 5 多窗口支持
- Silverlight 5 beta新特性探索系列:1.安装Silverlight 5 beta环境以及OOB模式下Silverlight 5 多窗口支持
- Silverlight 5 RC新特性探索系列:14.Silverlight 5 RC 对字体呈现的改进
- Silverlight 5 beta新特性探索系列:8.Silverlight 5中自定义扩展标记
- Silverlight 5 RC新特性探索系列:13.Silverlight 5 RC 新增对并行任务库(TPL)的支持
- Silverlight 5 RC新特性探索系列:14.Silverlight 5 RC 对字体呈现的改进
- Silverlight 5 beta新特性探索系列:8.Silverlight 5中自定义扩展标记
- Silverlight 5 RC新特性探索系列:13.Silverlight 5 RC 新增对并行任务库(TPL)的支持
- Silverlight 5 RC新特性探索系列:11.SaveFileDialog保存文件指定默认名称---OpenFileDialog打开文件指定默认路径
- Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件
- Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件
- Silverlight 5 RC新特性探索系列:15.Silverlight 5 RC 对OpenType字体属性的支持
- Silverlight 5 RC新特性探索系列:15.Silverlight 5 RC 对OpenType字体属性的支持
- Silverlight 5 beta新特性探索系列:4.Silverlight 5 beta中鼠标双击/鼠标多重点击的实现
- Silverlight 5 beta新特性探索系列:6.Silverlight 5新增低延迟声音效果类SoundEffect.支持wav音乐格式【附带源码实例】
- Silverlight 5 beta新特性探索系列:2.在XAML代码中设置断点和Binding绑定调试【附带源码实例】
- javaSE_8系列博客——Java语言的特性(三)--类和对象(12)--类成员的访问控制
- 稳扎稳打Silverlight(67) - 5.0被信任的应用程序之访问本地文件系统, 支持多窗口, 被信任的程序在浏览器中运行, Call Windows API
- Silverlight 5 beta新特性探索系列:2.在XAML代码中设置断点和Binding绑定调试【附带源码实例】