当前位置:首页 » 网页前端 » web调用winform
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web调用winform

发布时间: 2022-04-25 02:32:52

A. webbrowser调用winform方法

这个需要2方面的开发,比如单击按钮时,输出一个特定的字符串到WebBrowser
而Winform在WebBrowser的相应事件里监控WebBrowser的输出内容,如果输出的是这个特定字符串,就执行相应的操作

B. webapi怎么调用winform(CS)中的方法(cs是服务端必须先独立启动)

有解决方案:建立CS程序与WebApi服务器的点对点连接(通过Tcp/ip),然后WebApi发起请求,CS程序返回请求结果。
详细一点:CS端开启tcp.ip的监听端口,webapi服务器连接这个端口,需要掌握网络编程技能。网络搜索C# 网络编程相关的源码。
若CS端没有开启外网IP,还需要穿透NAT(类似QQ聊天,网络编程高级篇),这里有文章参考一下: C#实现UDP穿透NAT(UDP打洞)完整版(原)
www.csframework.com/archive/2/arc-2-20110713-1693.htm

C. 在web页面上如何弹出winform窗体

window.showModalDialog("modal.htm",null,"dialogWidth=200px;dialogHeight=100px");

这是最简单的模式对话框,三个参数 弹出窗体的地址,参数,和弹出窗体的样式。

D. 一个winform调用web服务,当服务程序更新时,winform调用失败,winform重新启动又可以调用了。

当你的服务程序更新的时候,Windows检查到调用的接口和你web服务提供的接口发生改变,只有再重新编译的时候,才会自动调用web服务最新提供的接口。

E. 如何创建,发布Web Service和 C#WINFORM里如何调用WEB Service API

一、创建和发布Web
Service
Web服务方法中可以返回一个DataSet对象

WEB服务可以说是下一代WEB应用程序的基础,无论客户端是WINDOWS应用、ASP.NET Web
Form程序、甚至其他语言的客户端,都可以与同一个WEB服务通信,其平台和语言无关性使其有了广阔的发展空间。

利用VS2005和IIS我们可以很容易地发布一个WEB
SERVICE,因为其中有几个细节需要注意,所在初学者常常在这里出现问题,现通过一个简单的例子说明如何创建和发布一个WEB SERVICE。

环境:Windows Server 2003,.Net FrameWork 2.0,IIS6.0

工具:VS2005

1.首先VS2005中新建一个WEB服务项目。

打开“文件”-“新建”-“网站”,在对话框中选择“ASP.NET Web服务”,VS2005会自动生成一个Service.cs文件,包含如下代码:

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service
:
System.Web.Services.WebService
{
public Service
()
{

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();

}

[WebMethod]
public string HelloWorld()
{
return "Hello
World";

}

}

你可以在这里修改自己的命名空间,加入自己的方法,但本文只是为了说明如何创建和发布,所以对Service.cs不做任何更改。

2.生成网站

很简单,“生成”-“生成网站”或直接Shift+F6

3.发布网站

也是简单,“生成”-“发布网站”,这里会弹出一个对话框,什么也不需要修改,记下发布的目录。比如:D:/我的文档/Visual Studio
2005/Projects/WebSite1/PrecompiledWeb/WebSite1,我们需要目录下的文件。

4.配置IIS

在你的WEB目录下一个文件夹,比如webservice,并将第3步发布目录中的所有文件和目录拷贝到这个目录中,打开IIS,找到你的站点,在这个webservice目录上点右键,选择属性,在弹出对话框的“目录”选择项卡中点击“创建”按钮,然后确定即可。

到这时,已经大功告成,你可以通过访问http://域名/webservice/Service.asmx来验证。页面会出现如下图所示内容:

注意:除了需要在IIS中对服务目录创建程序外,还要注意防火墙或杀毒软件的设置,我在首次访问service.asmx文件时,杀毒软件报告w3wp.exe在系统文件夹中生成asp_code.dll等,应该允许其他创建,否则会无法访问。

通过这样简单的方法,你可以轻松建立自己的WEB服务,在同一站点还可以有多个WEB服务。
二、c#的winform中调用Web Service
API(VB6.0也可以调用该web服务)
现在以C# WinForm为例谈谈如何使用它
,在服务中我们只有一个自动生成的方法:HelloWord(),其实现如下:

[WebMethod]

public string HelloWorld(){

return "Hello
World";

}

在WINFORM中我们将添加一个按钮,添加单击事件,在事件处理函数中弹出一个对话框显示HelloWord的结果。

1.添加WEB引用

在VS2005中新建一个Windows应用程序项目,取名testwebservice,在项目中添加一个WEB引用,可在“解决方案资源管理器”的项目名上点右键添加,在弹出对话框中的URL输入框中输入WEB服务器的路径:如http://你的域名/web服务务路径/service.asmx,点击“前行”按钮后会搜索这个服务,并在右边报告找到的服务,并在左边显示service.asmx页面,我们在WEB引用名输入框中输入一个名字,这个将做为程序中WEB服务的命名空间名,这里我们取名mywebservice。

2.添加按钮单击事件

在Form中拖出一个Button按钮,双击单击事件处理方法,代码如下:

private void button1_Click(object sender,
EventArgs e)
{
mywebservice.Service
ws = new testwebservice.mywebservice.Service();

MessageBox.Show (ws.HelloWorld());
}

其中mywebservice.Service ws = new
testwebservice.mywebservice.Service()是实例化一个WEB服务对象,ws.HelloWorld()是调用WEB服务中的这个HelloWorld方法,其返回字符串将用MessageBox.Show()函数显示出来。

好了,最简单的一个调用WEB服务API的WinForm例子已经完成了,编译运行,单击按钮,将会弹出对话框显示“Hello World”信息。

重要的一点,在.net的WEB服务API中,除了一般的数据类型外,还可以返回结构和DataSet对象,有了这一点,就可以构建我们大多数的数据库应用了。

好了,接下来的工作就是在WEB服务中添加你的API完成你的工作了。

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

F. 在web页面用js调用winform 窗体据说用ActiveObject请各位大虾发个实例,越详细越好!

新建一个类,这个类里面的方法就是提供给JS调用的
[ComVisible(true)]
public class JSCall
{
public JSCall()
{
}
//此方法可在JS中调用 ()
public void Test(string message)
{
MessageBox.Show(message);
}
}
然后把WebBrowser的ObjectForScripting属性设置成实例化成上面的类;
就是 webBrowser.ObjectForScripting = new JSCall();
最后在JS调用:window.external.Test(“JSTest”);

G. c#winform怎么调用webservice

建议这样试试看:

亲测可用,主要还是Url的拼接,这个需要客户给出格式

  1. /// <summary>

  2. /// 与客户WMS系统通讯获取数据

  3. /// </summary>

  4. /// <param name="url">接口,需要拼接成客户规定的格式</param>

  5. /// <param name="data">请求数据,需要拼接成客户规定的Json格式</param>

  6. /// <returns>全部数据</returns>

  7. public string Post(string url, string data)

  8. {

  9. try

  10. {

  11. //创建请求

  12. HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

  13. //设置请求方法

  14. request.Method = "Post";

  15. request.Referer = "";

  16. //将数据转换为UTF8字节流

  17. byte[] bytes = Encoding.UTF8.GetBytes(data);

  18. //设置发送的字节数

  19. request.ContentLength = bytes.Length;

  20. //设置发送内容格式

  21. request.ContentType = "application/json; charset=UTF-8";

  22. //获取用于写入请求数据的流对象

  23. Stream stream = request.GetRequestStream();

  24. //向当前流写入数据,发送请求

  25. stream.Write(bytes, 0, bytes.Length);

  26. //接收返回流,通过Web访问对象获取响应内容

  27. HttpWebResponse response = (HttpWebResponse)request.GetResponse();

  28. //通过响应内容流创建StreamReader对象

  29. //StreamReader sr = new StreamReader(request.GetRequestStream(), Encoding.UTF8);//写错,导致一直读取不了数据

  30. StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

  31. //读取所有内容

  32. string retString = sr.ReadToEnd();

  33. //关闭流

  34. sr.Close();

  35. stream.Close();

  36. if (response != null)

  37. {

  38. //关闭响应流

  39. response.Close();

  40. }

  41. if (request != null)

  42. {

  43. //取消请求

  44. request.Abort();

  45. }

  46. return retString;

  47. }

  48. catch (Exception ex)

  49. {

  50. throw ex;

  51. }

  52. }

  53. }

H. Winform 调用 WebService如何获取数据

在webconfig里面把post打开
然后就行了
————
补充一下吧
在service里面写
[WebMethod]
public string aaa(string id)
{
return id;
}

I. 如何用winform调用webservice的数据并显示

添加web引用时,会要求给此引用取名,一般 这个会被我们忘记,不过他有默认的名字 是 WebReference
然后这样写 WebReference.你的webservice的名字 w=new WebReference.你的webservice名字();
要是不行的话,你就重新添加web引用,记住引用的名字(假设为a)
然后 a.你的webservice的名字 w=new a.你的webservice名字();

J. 在web中调用winform怎么弄

在许多人的博客中可以看到有这样的小玩意, , 点击下就可以和博主进行对话,而且无需加博主为好友。很显然,这是腾讯在web页中的调用自己的QQ,那么他们是怎么做的呢?
我们先看一下腾讯给我们提供的代码:
<a href="tencent://message/?uin=88888888&Site=JooIT.com&Menu=yes">
<img border="0" SRC='http://is.qq.com/webpresence/images/status/01_online.gif' alt="点击这里给我发消息">
</a>
很显然,奥妙就在“tencent://message/?uin=215555521&Site=JooIT.com&Menu=yes”这里,那这又到底是什么原理呢?
我们想一下,如果要打开本地的QQ,肯定要分两步走,首先是定位到QQ,然后是传递给它一些参数,也就是“uin=uin=88888888&Site=JooIT.com&Menu=yes”这样的东西。定位的话,借助注册表是最明显的方式了。可怎么把QQ跑起来呢?要我们自己去启动一个进程么?(当然也可以,不过有更简单的何必呢),答案是否定的,Windows操作系统考虑了这一点,允许我们为自己的应用程序注册为一个协议处理者,具体参见MSDN上的文章《Registering
an Application to a URL Protocol》。
腾讯的Tencent://Message协议注册表如下:

知道了原理,那么我们照葫芦画瓢的做个DemoSA实验一下:
打开Visual Studio 2008(你也可以用其他的开发工具,Delphi,VB都可以),新建一个Windows
Forms项目,在默认的Form1里添加一个Label控件(这里是为了显示传递过来的参数用的,你也可以不这么做),在窗体的Load事件里写上如下代码:
this.label1.Text = strArgs;//是Form1的声明为:Public的String类型变量
为了让我们的程序支持命令行参数(winform程序默认没有命令行参数),我们再到Programs.cs里对Main()函数进行改造。
改造后的代码如下:
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.(false);
Form1 frm = new Form1();
if (args.Length >0)
{
frm.strArgs = args[0];
Application.Run(frm);
}
else
{
Application.Run(new Form1());
}
}
将项目编译。
好了,来到最关键的步骤了,在注册表中为我们自定义的helloworld协议建立起注册表项,从而让HelloWorld应用程序支持此协议。将如下的注册表项加入即可,这里为了简单起见我直接用一个.reg文件来实现,也可以用其他方式进行:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\HelloWorld]
@="HelloWorld Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\HelloWorld\DefaultIcon]
@="D:\\My Documents\\Visual Studio 2005\\Projects\\HelloWorld\\release\\HelloWorld.exe,1"

[HKEY_CLASSES_ROOT\HelloWorld\shell]
@=""

[HKEY_CLASSES_ROOT\HelloWorld\shell\open]
@=""

[HKEY_CLASSES_ROOT\HelloWorld\shell\open\command]
@="\"D:\\My Documents\\Visual Studio 2005\\Projects\\HelloWorld\\release\\HelloWorld.exe\" \"%1\""
好了,这下可以来测试helloworld协议了,在地址栏中输入:helloworld://hello world/,怎么样,下面的画面出来了吧,

再来到web页面进行测试,修改上面的html代码如下:

<html>
<head></head>
<body>
<div>
<a href="helloworld://hello world">
<img border="0" SRC='http://is.qq.com/webpresence/images/status/01_online.gif' alt="点击这里给我发消息">
</a>
</div>
</body>
</html>
若是要在web页面调用本地的winform程序,同理也是可行的。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Tencent]
@="TencentProtocol"
"URL Protocol"="D:\\Program Files\\Tencent\\QQ\\Timwp.exe"

[HKEY_CLASSES_ROOT\Tencent\DefaultIcon]
@="D:\\Program Files\\Tencent\\QQ\\Timwp.exe,1"

[HKEY_CLASSES_ROOT\Tencent\shell]

[HKEY_CLASSES_ROOT\Tencent\shell\open]

[HKEY_CLASSES_ROOT\Tencent\shell\open\command]@="\"D:\\Program Files\\Tencent\\QQ\\Timwp.exe\" \"%1\""
此注册表所实现的就是当浏览器(或其它)碰到 tencent://… 时,自动调用 Timwp.exe,并把 tencent://… 地址作为第一个参数传递给 Timwp.exe。