C# windows程序应用与JavaScript 程序交互实现例子

C# windows程序应用与JavaScript 程序交互实现例子

一、建立网页代码(包含js方法代码和访问外部windows应用事件)

这里需要注意js访问外部windows应用程序方法,需要代用windows对象的external

例子:window.external.CSharpfunction(xx,xx,xx);
 1 <!DOCTYPE html>
 2
 3 <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
 4 <head>
 5     <meta http-equiv="Content-Language" content="zh-cn">
 6     <script language="javascript" type="text/javascript">
 7               <!-- 提供给C#程序调用的方法 -->
 8               function messageBox(message)
 9               {
10                     alert(message);
11              }
12     </script>
13 </head>
14
15 <body>
16     <!-- 调用C#方法 -->
17     <button onclick="window.external.MyMessageBox(‘javascript访问C#代码‘)">
18         javascript访问C#代码
19     </button>
20 </body>
21 </html>

二、创建C#windows窗体应用

代码:需要注意的是需要给form1类加上对com的可访问性设置  [System.Runtime.InteropServices.ComVisible(true)]

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9
10 namespace WinFormJSDemo
11 {
12     //设置Com对外可访问
13     [System.Runtime.InteropServices.ComVisible(true)]
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19             System.IO.FileInfo file = new System.IO.FileInfo("JavaScript//index.html");
20
21             // WebBrowser控件显示的网页路径
22             webBrowser1.Url = new Uri(file.FullName);
23
24             // 将当前类设置为可由脚本访问
25             webBrowser1.ObjectForScripting = this;
26         }
27
28
29         //被外部js调用的方法
30         public void MyMessageBox(string message)
31         {
32
33             MessageBox.Show(message);
34         }
35
36         private void button1_Click(object sender, EventArgs e)
37         {
38             // 调用JavaScript的messageBox方法,并传入参数
39             object[] objects = new object[1];
40
41             objects[0] = "C#访问JavaScript脚本";
42
43             webBrowser1.Document.InvokeScript("messageBox", objects);
44         }
45     }
46 }

运行结果:

C#调用JavaScript方法

JavaScript调用C#方法:

参考:http://www.cnblogs.com/xds/archive/2007/03/02/661838.html

时间: 2024-10-10 14:51:39

C# windows程序应用与JavaScript 程序交互实现例子的相关文章

Javascript模块化编程(一)模块的写法最佳实践六、输入全局变量 独立性是模块的重要特点,模块内部最好不与程序的其他部分直接交互。 为了在模块内部调用全局变量,必须显式地将其他变量输入模块。

Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块但是,Javascript不是一种模块化编程语言,它不支持类class,更遑论模块module了 随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂.网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑. Javascript模块化编程,已

windows下调用外部exe程序 SHELLEXECUTEINFO

本文主要介绍两种在windows下调用外部exe程序的方法: 1.使用SHELLEXECUTEINFO 和 ShellExecuteEx SHELLEXECUTEINFO 结构体的定义如下: 1 typedef struct _SHELLEXECUTEINFO { 2 DWORD cbSize; 3 ULONG fMask; 4 HWND hwnd; 5 LPCTSTR lpVerb; 6 LPCTSTR lpFile; 7 LPCTSTR lpParameters; 8 LPCTSTR lpD

Windows编程 - 开启/关闭/遍历程序的类 代码(C++)

开启/关闭/遍历程序的类 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 类包含4个函数, 启动程序, 遍历所有进程, 关闭程序, 遍历进程依赖的动态链接库. 示例: Image.exe是预先生成的可执行程序(exe), 启动程序, 间隔5秒, 关闭程序. 使用方法参加测试程序. 代码: /* * process.h * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #ifnde

windows环境eclipse开发C++程序

最近看了不少java优秀的一些开源框架,总给自己一种似懂非懂的感觉.为了便于自己理解一些不长见的思想跟概念,以及理解整个java体系甚至整个编程开发体系,自己决定多去学习一门语言,再通过对比得出语言之间有哪些相同的概念.初步的选择是C++,好了不多少了,直接入正题吧! 在网上看了不少有关windows下eclipse开发C++的案例,但是由于版本问题自己总是失败,还好经过几次改变之后顺利搭建了自己的C++开发环境, 首先下载运行C++的环境我选择的是mingw:http://www.mingw.

[JavaScript] 初中级Javascript程序员必修学习目录

很多人总感觉javascript无法入门,笔者在这里写一下自己的学习过程,以及个人认 为的最佳看书过程,只要各位能按照本人所说步骤走下去,不用很长时间,坚持 个3个月,你的js层级会提高一个档次,无他,唯有努力与坚持,请看: 1. 从头到尾对一遍<<Javascript高级程序设计>>,不懂的地方可以暂时掠过,给自己对javascript有一个大体的印象 2. 认认真真的读完这本书:<<编写可维护的javascript>>,从编码规范,技巧,模式,等各个方面

JavaScript 程序错误:Cannot use &#39;in&#39; operator to search

今天编程时,JavaScript 程序报了这样的错误:Cannot use 'in' operator to search for...,具体错误信息如下: 坦白说,这样的错误最难调试.因为它并不指向你所写的具体代码,而是泛泛指向了 lib.js 文件(该文件通常是第三方的打包压缩库),你几乎无法依据错误类型与错误指向来定位到实际编程中的错误位置. 怎么办? 这个时候,只有发挥"死磕"精神了! 死磕步骤: 依据故障页面以及错误信息,定位到出错的文件,这一点应该不难: 在出错的页面中,依

[0010] windows 下 eclipse 开发 hdfs程序样例 (二)

目的: 学习windows 开发hadoop程序的配置 相关: [0007] windows 下 eclipse 开发 hdfs程序样例 环境: 基于以下环境配置好后. [0008] Windows 7 下 hadoop 2.6.4 eclipse 本地开发调试配置 1. 新建HDFS下载文件类 在已有mapreduce项目中新建类添加如下代码,代码从[0007]中取出小修改 功能:从hdfs下载文件到windows本地 package hadoop.hdfs; import java.io.F

在windows下查看某个运行程序(或进程)的命令行参数

在windows下查看某个运行程序(或进程)的命令行参数使用下面的命令:wmic process get caption,commandline /value如果想查询某一个进程的命令行参数,使用下列方式:wmic process where caption="svchost.exe" get caption,commandline /value这样就可以得到进程的可执行文件位置等信息.

Java程序猿的JavaScript学习笔记(1——理念)

计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程