首页 > 其他分享 >Delphi WebBrowser调用WebSocket 服务

Delphi WebBrowser调用WebSocket 服务

时间:2023-04-07 11:44:42浏览次数:52  
标签:WebBrowser1 WebSocket Sender Delphi TForm1 TObject WebBrowser document procedure

webSocket Demo
  1. 使用工具:WebBrowser
  2. 传输参数:delphi 给js 赋值JSON字符串,js 接收到后通过JSON.parse()方法转换成JSON对象,然后根据需要参数进行读取, Delphi 通过SuperObject 处理JSON数据
  3. 调用JSON方法:WebBrowser1.oleObject.document.parentWindow.execScript('js方法名','JavaScript')
  4. 设置js变量 :WebBroser1.oleObject.document.Script.str:='newvalue'; str为js定义变量
  5. Delphi 触发html 中的Button 单击事件:WebBrowser1.OleObject.document.getElementById("按钮id").click;
unit uWebSocketDemo;
{
  webSocket Demo
  使用工具:WebBrowser
  传输参数:delphi 给js 赋值JSON字符串,js 接收到后通过JSON.parse()方法转换成JSON对象,然后根据需要参数进行读取,
  Delphi 通过SuperObject 处理JSON数据
  调用JSON方法:WebBrowser1.oleObject.document.parentWindow.execScript('js方法名','JavaScript')
  设置js变量 :WebBroser1.oleObject.document.Script.str:='newvalue';  str为js定义变量
  Delphi 触发html 中的Button 单击事件:WebBrowser1.OleObject.document.getElementById("按钮id").click;
  
}
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    WebBrowser1: TWebBrowser;
    Button8: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses superobject,ShellAPI;

var
  url:string;
  jo:TSuperObject;
  path:string;
const
  sStu='{"title":"我的websocket","content":"websocket测试客户端"}';
procedure TForm1.Button1Click(Sender: TObject);
begin
  webbrowser1.Navigate(url);
  WebBrowser1.Silent:=True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  url:=ExtractFilePath(ParamStr(0))+'demo-dip.html';
  path:=ExtractFilePath(ParamStr(0))+'\HOAssistant\HOAssistant\HOAssistant.exe'

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  obj:OleVariant;
begin
  WebBrowser1.OleObject.document.Script.str:=sStu;
  WebBrowser1.OleObject.document.parentWindow.execScript('ftest()','JavaScript');

  Memo1.Lines.Add(WebBrowser1.OleObject.document.Script.str);

end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  WebBrowser1.OleObject.document.getElementById('btnlogin').click;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
   WebBrowser1.OleObject.document.getElementById('btnpatient').click;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
     WebBrowser1.OleObject.document.getElementById('btnbingan').click;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
   WebBrowser1.OleObject.document.getElementById('btnexit').click;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   webbrowser1.Navigate(url);
   WebBrowser1.Silent:=True;

end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  ShellExecute(Handle,'open',PAnsiChar(path),nil,nil,SW_SHOWNORMAL);
end;

end.

标签:WebBrowser1,WebSocket,Sender,Delphi,TForm1,TObject,WebBrowser,document,procedure
From: https://www.cnblogs.com/sundh1981/p/17295688.html

相关文章

  • websocket - w.php
    on('Open',function($ws,$request){$ws->push($request->fd,"hello,welcome\n");$GLOBALS['fds'][$request->fd]=1;print_r($GLOBALS['fds']);});//监听WebSocket消息事件$ws->on('Message&#......
  • Websocket保证接收消息完整性
    用springboot起了个websocket服务端,有时候客户端发来的消息过长,无法接收完整,需要进行额外的处理 下面是处理的例子:@ServerEndpoint("/websocket")publicclassWebSocket{@OnMessagepublicvoidonMessage(Sessionsession,byte[]message,booleanlast){......
  • C++ MFC中嵌入web网页控件(WebBrowser、WebView2、CEF3)
    1、简介WebBrowser控件最常见的用途之一是向应用程序添加Internet浏览功能。使用IWebBrowser2接口,可以浏览到本地文件系统、网络或万维网上的任何位置。可以使用IWebBrowser2::Navigate方法告知控件要浏览到哪个位置。第一个参数是包含位置名称的字符串。要浏览到本地文件系......
  • WebSocket 实战之——【WebSocket 原理】
    一、WebSocket是什么?HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)。    首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了......
  • delphi FastReport 常用功能
    FastReport常用功能属性和方法TfrxReport.LoadFromFilefunctionLoadFromFile(constFileName:String;ExceptionIfNotFound:Boolean=False):Boolean;从给定名称的文件中加载报表。如果文件加载成功,返回True。参数FileName文件的名称。ExceptionIfNotFound如果为T......
  • 全面理解WebSocket与Socket、TCP、HTTP的关系及区别
    6.WebSocket和SocketSocket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。 Socket本身并不是一个协议,它工作在OSI模型会话层,是一个套接字,TCP/IP网络的API,是为了方便大家直接使用。更底层协议而存在的一个抽象层。S......
  • php-websocket hyperf/websocket-server/client 客户端和服务器实时双向数据传输
    WebSocket服务WebSocket是一种通信协议,可在单个TCP连接上进行全双工通信。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。Hyperf......
  • swoft 客服系统websocket。即时通讯小功能
     挥手,握手就不解释了。直接上代码启动swoftws的服务  <?phpdeclare(strict_types=1);/***ThisfileispartofSwoft.**@linkhttps://swoft.org*@documenthttps://swoft.org/docs*@[email protected]*@licensehttps://github.co......
  • swoole+websocket+redis实现一对一聊天
     如同web端的QQ和微信一样,这是一个web端的聊天程序。环境:linux(centos)+php7.2+swoole扩展+redis+mysqlRedis实现每个连接websocket的服务都唯一绑定一个用户。通过用户账号=websocketfd存到redis中。Mysql实现离线消息池。如果一个用户不在线,则其他用户发......
  • Delphi-UniCode转汉字(\u 格式)、汉字转UniCode(\u 格式)
     相关资料:https://www.cnblogs.com/guorongtao/p/14729102.html     DelphiUniCode转汉字(\u格式)、汉字转UniCode(\u格式)实例代码:1、UniCode转汉字functionUnicodeToChinese(sStr:string):string;vari:Integer;index:Integer;temp,top,last:s......