Silverlight 5 RC新特性探索系列:12.Silverlight 5 RC 窗口模式下访问自定义DLL和WIN32 API

简介:

       在Silverlight 5 RC版本中针对访问权限进行了相应的提升,它的项目属性中新增了一个复选框“在浏览器内运行时需要提升的信任”,如下图:

  

         它将为在浏览器模式下运行的应用程序提升一些访问权限,例如我的上篇SaveFileDialog保存文件指定默认名称---OpenFileDialog打开文件指定默认路径就需要提升权限。另外在其OOB模式下也进行了相应的提升,比如访问WIN 32 API,或者访问在C:\Windows\System32目录下的自己编写的DLL文件。

      A:在OOB模式下的提升权限来访问WIN32API。

         一、我们提升应用程序权限,如下图

        二、键入以下代码以访问WIN 32 DLL的API函数,需要using System.Runtime.InteropServices。

 


 
 
  1. ///<summary> 
  2. /// 弹出窗口 
  3. ///</summary> 
  4. ///<param name="h">弹出窗口的父窗口,在这里没有,所以为0</param> 
  5. ///<param name="message">需要显示的消息</param> 
  6. ///<param name="title">窗口的标题</param> 
  7. ///<param name="type">窗口的类型 0为确定按钮,1为确定、取消双按钮</param> 
  8. ///<returns></returns
  9. [DllImport("user32.dll", EntryPoint = "MessageBoxA")] 
  10. 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。


 
 
  1. ///<summary> 
  2. /// 获取到DLL的值 
  3. ///</summary> 
  4. ///<param name="Anumber">数字A</param> 
  5. ///<param name="Bnumber">数字B</param> 
  6. ///<returns></returns
  7. [DllImport("IlasLinkDll.dll", CharSet = CharSet.Ansi, EntryPoint = "GetNum", ExactSpelling = false)] 
  8. public static extern double GetNum(double Anumber, double Bnumber); 
 三、最后我们在客户端调用上面两个函数,以观察效果。

 
 
  1. public MainPage()   
  2. {   
  3.     InitializeComponent();   
  4.     MessageBox.Show("调用IlasLinkDll.dll获得的结果:"+GetNum(500.0, 23.0).ToString());   
  5.    
  6.     MsgBox(0, "这是调用User32.dll弹出的窗口""提示信息",1);}   

          最后我们来看运行效果如下,如需源码请点击SL5Cmd.zip 下载:

   



本文转自程兴亮 51CTO博客,原文链接:http://blog.51cto.com/chengxingliang/827053

相关文章
|
5月前
|
缓存 监控 供应链
唯品会自定义 API 自定义操作深度分析及 Python 实现
唯品会开放平台提供丰富API,支持商品查询、订单管理、促销活动等电商全流程操作。基于OAuth 2.0认证机制,具备安全稳定的特点。通过组合调用基础接口,可实现数据聚合、流程自动化、监控预警及跨平台集成,广泛应用于供应链管理、数据分析和智能采购等领域。结合Python实现方案,可高效完成商品搜索、订单分析、库存监控等功能,提升电商运营效率。
|
5月前
|
缓存 监控 供应链
京东自定义 API 操作深度分析及 Python 实现
京东开放平台提供丰富API接口,支持商品、订单、库存等电商全链路场景。通过自定义API组合调用,可实现店铺管理、数据分析、竞品监控等功能,提升运营效率。本文详解其架构、Python实现与应用策略。
缓存 监控 供应链
132 0
缓存 监控 数据挖掘
110 0
|
7月前
|
监控 安全 数据挖掘
构建自定义电商数据分析API
在电商业务中,构建自定义数据分析API可实现销售、用户行为等指标的实时分析。本文介绍如何设计并搭建高效、可扩展的API,助力企业快速响应市场变化,提升决策效率。
190 0
|
机器人 API
自定义飞书Webhook机器人api接口
自定义飞书Webhook机器人api接口
944 25
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
1335 1
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
中间件 API 网络架构
Django后端架构开发:从匿名用户API节流到REST自定义认证
Django后端架构开发:从匿名用户API节流到REST自定义认证
377 0
|
SQL 网络协议 安全
【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题
【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题
291 0