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

相关文章
|
3天前
|
缓存 运维 监控
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关是连接客户端与众多微服务群岛之间的桥梁。本文将深入探讨API网关的设计原则、核心功能以及在现代软件架构中的关键作用,同时分析其在实际应用中的效益和面临的挑战。
|
5天前
|
监控 Kubernetes API
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关是一艘引领航行的旗舰。它不仅是服务的守门人,更是流量的指挥官和信息的翻译官。本文将深入探讨API网关的核心作用、设计考量与实现策略,为构建高效、可靠的微服务系统提供航标。
|
5天前
|
JSON 负载均衡 监控
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务间的通信与集成。本文将深入探讨API网关的核心概念、设计原则及其在现代后端系统中的关键作用,同时通过实例分析其对系统性能和可维护性的影响,为读者提供一种视角,理解如何高效地构建和管理微服务架构下的API网关。
|
12天前
|
负载均衡 安全 API
探索微服务架构中的API网关模式
【6月更文挑战第15天】本文深入探讨了微服务架构中API网关的核心作用与设计原则。通过分析网关在请求路由、负载均衡、安全验证等方面的功能,揭示了其作为系统入口的重要性。同时,文章还讨论了实现高效API网关的技术策略和最佳实践。
|
8天前
|
弹性计算 负载均衡 API
微服务架构下的API网关模式解析
在现代软件工程中,微服务架构因其灵活性和可维护性而受到青睐。本文将探讨API网关模式在微服务架构中的关键角色,分析其设计原则、实现方式及面临的挑战,并结合实际案例阐述如何有效整合API网关以提升系统整体性能和安全性。
|
11天前
|
缓存 负载均衡 安全
探索微服务架构中的API网关模式
【6月更文挑战第16天】在微服务架构的海洋中,API网关扮演着灯塔的角色,指引着服务的发现与路由。本文将深入探讨API网关的设计原则、关键功能以及在现代后端系统中的应用实践。我们将一起航行于微服务的世界,揭开API网关如何提升系统的整体性能和安全性的神秘面纱。
|
12天前
|
负载均衡 安全 API
探索微服务架构中的API网关模式
【6月更文挑战第15天】在这篇文章中,我们将深入探讨微服务架构中的一个关键组件——API网关。我们将了解API网关的作用、设计原则以及如何在实际项目中实现它。通过阅读本文,您将获得关于如何优化和保护您的微服务架构的实用见解。
|
14天前
|
监控 安全 API
探索微服务架构中的API网关模式
【6月更文挑战第13天】本文深入探讨了在现代软件开发中,微服务架构如何通过API网关模式提升系统的可扩展性、安全性和性能。我们将分析API网关的核心功能,包括请求路由、负载均衡、认证授权以及日志监控等,并讨论如何在实际项目中有效实现这些功能。
|
1天前
|
设计模式 缓存 JavaScript
API设计模式:REST、GraphQL、gRPC与tRPC全面解析
API设计模式:REST、GraphQL、gRPC与tRPC全面解析
8 0
|
7天前
|
负载均衡 API 开发者
深入理解微服务架构中的API网关模式
在微服务架构中,API网关不仅仅是一个请求转发的节点,它承担着请求路由、负载均衡、认证授权、限流熔断等关键职责。本文将深入探讨API网关的设计原则、实现技术以及在实际部署中的最佳实践,帮助开发者构建一个高效、安全且可扩展的微服务入口。