`
yangzb
  • 浏览: 3499657 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何在web上实现对另一个应用程序的键盘输入,就像vb中的sendkey

阅读更多

set   WshShell   =   CreateObject( "WScript.Shell ")
WshShell.SendKeys   "{ESC} "

但是要提示一个安全警告,这个警告怎么去除?




这个问题原来在.com的时候也碰到过。也一直没有搞定。后来是自己写的上传组件。其实你已经如果打算用activeX,可以自己写一个File组件.如果是要上传,还可以将其写成一个FTP上传的东西,那样上传也许会更好的。
其实WScript.Shell中也有SendKeys这个方法,MSDN中用了Sleep(100),我不知道为什么,你也可以试试,这是一个例子。打开calc自己算一个东西。。
set   WshShell   =   WScript.CreateObject( "WScript.Shell ")
      WshShell.Run   "calc "
      WScript.Sleep   100
      WshShell.AppActivate   "Calculator "
      WScript.Sleep   100
      WshShell.SendKeys   "1{+} "
      WScript.Sleep   500
      WshShell.SendKeys   "2 "
      WScript.Sleep   500
      WshShell.SendKeys   "~ "
      WScript.Sleep   500
      WshShell.SendKeys   "*3 "
      WScript.Sleep   500
      WshShell.SendKeys   "~ "
      WScript.Sleep   2500

PS:取得当前的Document对象的方法是,利用ShellWindows这个对象,具体请参看MSDN中的HOWTO:   Connecting   to   a   Running   Instance   of   Internet   Explorer   ID:   Q176792,不过说实话,这种方法并不太适用。因为你得通过一些手段区分哪个是自己的窗口。
分享到:
评论
1 楼 yangzb 2011-11-16  

Delphi中支持发送中文的SendKeys(就象VB中的SendKeys一样)怎样实现?

procedure SendKeys(sSend:string);
var
    i:integer;
    focushld,windowhld:hwnd;
    threadld:dword;
    ch: byte;
begin
  windowhld:=GetForegroundWindow;
    //获得前台应用程序的活动窗口的句柄
  threadld:=GetWindowThreadProcessId(Windowhld,nil);
    //获取与指定窗口关联在一起的一个进程和线程标识符
  AttachThreadInput(GetCurrentThreadId,threadld,true);
    //通常,系统内的每个线程都有自己的输入队列。          //
    //AttachThreadInput允许线程和进程共享输入队列。        //
    //连接了线程后,输入焦点、窗口激活、鼠标捕获、键盘状态 //
    //以及输入队列状态都会进入共享状态          //
  Focushld:=getfocus;
    //获得拥有输入焦点的窗口的句柄
  AttachThreadInput(GetCurrentThreadId,threadld,false);
  if focushld = 0 then Exit;
    //如果没有输入焦点则退出发送过程
  i := 1;
  while i <= Length(sSend) do
    //该过程发送指定字符串(中英文皆可以)
  begin 
    ch := byte(sSend[ i ]);
    if Windows.IsDBCSLeadByte(ch) then
    begin
      Inc(i);
      SendMessage(focushld, WM_IME_CHAR, MakeWord(byte(sSend[ i ]), ch), 0);
    end
    else
      SendMessage(focushld, WM_IME_CHAR, word(ch), 0);
    Inc(i);
  end;
  postmessage(focushld,WM_keydown,13,0); 
    //发送一个虚拟Enter按键
end;

相关推荐

    sendkey 与 sendmessage_sendmessage_sendkey_vb6_

    在VB6(Visual Basic 6)编程环境中,`SendKey` 和 `SendMessage` 是两个用于与应用程序进行交互的重要函数,它们各自有特定的用途和特点。这篇内容将深入解析这两个函数的区别以及如何在实际开发中应用。 `SendKey...

    VBS 中Sendkey 键盘对应的码表

    ### VBS中Sendkey键盘对应的码表 在Visual Basic Scripting Edition(VBS)中,通过使用`SendKeys`函数可以模拟键盘输入操作,这对于自动化脚本编写非常有用。为了更好地理解和应用`SendKeys`函数,我们需要掌握一...

    VB.net键盘扫描示例

    在编程领域,键盘输入是应用程序与用户交互的基本方式之一。VB.NET和C#作为.NET框架下的两种主要编程语言,都提供了处理键盘输入的功能。本文将详细介绍如何在VB.NET和C#中实现键盘扫描,以及如何使用`SendKeys`类...

    C# SendKeys实例(模拟键盘输入)源码

    `SendKeys`类提供了一个静态方法`SendWait`,用于发送键盘事件并等待应用程序处理完这些事件。这个方法是异步的,意味着在发送键后,程序会暂停,直到所有按键都被处理。这通常是我们需要的行为,因为我们需要确保...

    C# WPF 模拟键盘输入与UI控件进行交互

    结合以上内容,你可以在WPF应用程序中创建一个模拟键盘输入的工具类,提供一些静态方法,如`SendKey`,用于方便地模拟不同键的输入。同时,可以通过数据绑定和命令来控制UI的显示和行为,实现用户界面与模拟输入的...

    C#控制键盘按键(大小写按键等)

    `SendWait`方法确保在下一次键盘输入之前等待上一个操作完成,确保按键顺序正确。 三、控制大小写按键 在C#中,我们可以使用`SendKeys`类结合 Caps Lock 键来控制字母的大小写。上面的例子展示了如何在按下和释放 ...

    一个简单的模拟键盘输入类

    在给定的标题“一个简单的模拟键盘输入类”中,我们可以推断这是一个用C++编写的类,其功能是模拟用户的键盘输入行为。下面我们将详细探讨这个类的可能实现以及相关知识点。 首先,`CSendkey`类的构造函数和析构...

    VB6中SendKeys的基本应用[VB6中SendKeys的基本应用]-精品源代码

    VB6中SendKeys的基本应用[VB6中SendKeys的基本应用]-精品源代码

    C++ 自动输入文字(汉字和其他字符)

    在C++中实现自动输入文字,尤其是汉字,需要对操作系统API有一定的了解,同时也需要熟悉Unicode和宽字符处理。通过结合使用这些技术,开发者可以创建出能够模拟键盘输入的程序,这对于自动化测试、脚本编写以及特定...

    VB SendKeys语句详解

    通过 `SendKeys` 语句,可以向当前活动窗口发送一系列按键消息,就如同用户在键盘上进行实际输入一样。这在自动化测试脚本、编写简单的自动化工具或宏时非常有用。 #### 二、语法结构 `SendKeys` 的基本语法如下:...

    虚拟键盘驱动

    虚拟键盘驱动是一种特殊的软件技术,它允许在没有物理键盘的情况下模拟键盘输入。这种技术的核心是通过驱动程序级的实现,让操作系统能够识别并处理虚拟键盘发出的按键信号,就如同它们来自真实的物理键盘一样。 ...

    WinKeypad_C++_虚拟键盘_

    4. **键盘模拟**:当用户在虚拟键盘上点击一个键时,程序需要模拟真实的键盘输入,这通常通过发送键盘消息(如`WM_KEYDOWN`和`WM_KEYUP`)到当前活动窗口来实现。 5. **鼠标事件处理**:处理鼠标点击、移动等事件,...

    API模拟发送按键.鼠标动作

    在提供的文件列表中,我们看到有`mdlMain.bas`,这可能是一个标准模块,其中包含了VB代码来调用上述API函数实现模拟输入的功能。`SendKey.vbp`和`SendKey.vbw`是VB项目文件,它们保存了项目的整体结构和工作空间信息...

    director lingo 软键盘

    Director Lingo软键盘是基于Adobe Director的编程语言Lingo创建的一种虚拟输入设备,它允许用户在Director应用程序中模拟物理键盘输入。Lingo是Director的核心,它是一种强大的脚本语言,用于控制多媒体对象、交互式...

    RPA之BP(Blue Prism)学习资料(send key)

    该功能允许自动化流程中的机器人模拟用户点击键盘上的任意键,从而能够与电脑上的应用程序进行交互,执行如输入文本、发送命令等操作。 文档内容首先从基础的介绍开始,然后深入到具体的主题和练习。它涵盖了以下...

    虚拟键盘驱动 Fakey

    在这个案例中,`SendKey.dll`可能包含了实现虚拟键盘输入功能的函数,允许程序模拟按键事件。 `Setup.exe`是安装程序,用户通过运行这个文件来安装`Fakey`虚拟键盘驱动。安装过程中,系统会按照指示将必要的文件...

    vbscript中的sendkey问题

    在VBScript(Visual Basic Scripting Edition)中,`SendKeys`函数是一个强大的工具,它允许脚本模拟用户在键盘上按下或释放特定按键。这个功能在自动化任务、模拟用户交互或者控制其他应用程序时非常有用。然而,...

    C# 模拟键盘操作

    在编程领域,模拟键盘操作是一项常见的需求,尤其是在自动化测试、脚本编写或游戏开发中。C#作为一种功能强大的面向对象的编程语言,提供了多种方法来实现这个功能。本篇文章将深入探讨如何在C#中进行键盘操作模拟。...

    精彩编程与编程技巧-在 Textbox 中,录入 N 个字符后移到下栏...

    总之,通过在Textbox中实现录入N个字符后自动跳转至下一栏的功能,不仅可以提高数据录入的效率,还能提升整体应用程序的用户体验。这一技巧虽小,却体现了软件工程中对细节的关注和对用户需求的理解。对于开发者而言...

    delphi QQ自动登陆器源码

    它的工作方式是向目标窗口发送模拟的键盘事件,就像用户亲自按下键盘上的键一样。在本例中,SendKey被用来输入QQ账号和密码,然后触发登录操作。 关于【标签】,"Delphi"是指编程语言,它是基于Object Pascal的一种...

Global site tag (gtag.js) - Google Analytics