VBA的inputBox函数的JScript模拟

本文要点:

  1. 示例WScript.CreateObject的事件前缀绑定事件处理过程
  2. 示例InternetExplorer.Application在JScript下来模仿inputBox函数
  3. 示例JScript脚本宿主运行时访问页面内容、脚本的方法。

估计这文章一发表就注定被转抄的命运了,标记一下源地址:http://blog.csdn.net/winsenjiansbomber/article/details/41338243

/* Tips: an alert emulator for Wscript host */
function alert(msg){
    WScript.Echo(msg+"");
}

// Binding event handler prefix: ONIE_
var IE = WScript.CreateObject("InternetExplorer.Application","ONIE_");
IE.left=50;
IE.top = 100;
IE.height = 200;
IE.width = 350;
IE.menubar = false;
IE.toolbar = false;
IE.statusbar = false;
IE.resizable = false;
IE.navigate("c:\\temp\\readme.html");
IE.visible = true;

while(!IE.Document.Script.GetValue){ // break when page load and run
    WScript.Sleep( 300 );
}

alert("Please click OK");

//alert(IE.Document.Script);
//alert(IE.Document.body);
//alert(IE.Document.Script.GetValue);
alert("GetValue()="+IE.Document.Script.GetValue());

WScript.DisconnectObject( IE );
IE.Quit()

alert("Disconnected");

function ONIE_WindowStateChanged(state){
    alert("Event: Window State Changed to "+state);
}

// Raised from loading a document in Internet Explorer
function ONIE_DownloadBegin(){
    alert("Event: Download begins");
}

/* Raised from quitting Internet Explorer, but we're
 * disconnecting from the object before calling
 * the Quit method to terminate Internet Explorer, so
 * the dialog box isn't shown. */
function ONIE_OnQuit(){
    alert("Event: Quit Internet Explorer");
}

readme.html:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title> Test </title>
 </head>

 <body>
  <label>请输入:<input id="box" style="width:120px;" /></label>
  <script type="text/javascript">
    function GetValue(){
      return document.getElementById("box").value;
    }
  </script>
 </body>
</html>

关于Windows Scripting Host这个很实用的古董编程技术,Jimbowhy 收集了大量收藏级的资料,请到云盤免费下载:

http://pan.baidu.com/s/1i3Br5OD

包括:

Advanced VBSript for Microsoft Windows Administrators.pdf

Advanced Windows Script Host Developers Guide (2003) .pdf

IVIEWERS.DLL

Microsoft VBScript Step by Step.pdf

Microsoft Windows脚本技术.CHM

OLEVIEW.EXE

scd56chs.exe JScript & VBScript 官方参考手册 5.6中文版

script56.chm JScript & VBScript 官方参考手册 5.6 e文版

scripten.5.7.0.16535.win2k.exe  JScript & VBScript 安装程序

scripten.5.7.0.16535.win2k3 .exe

scripthost20dev.chm  Microsoft Windows Script Host 2.0 Developer’s Guide / Günter Born.<

script_repository10.chm System Administration Scripting Guide Script RepositoryVersion 1.0,
May 2002

VBScript Programmer‘s Reference, 3rd Edition.pdf

VBScript程序员参考手册.pdf

VBS_常用脚本.docx

sct10en.exe    Microsoft Script Control 1.0

InternetExplorer对象参考:http://msdn.microsoft.com/en-us/library/aa752084

时间: 2024-10-25 20:50:05

VBA的inputBox函数的JScript模拟的相关文章

PHP实用函数:stream_context_create()模拟POST/GET

PHP实用函数手册:stream_context_create()模拟POST/GET 有时候,我们需要在服务器端模拟 POST/GET 等请求,也就是在 PHP 程序中去实现模拟,改怎么做到呢?或者说,在 PHP 程序里,给你一个数组,如何将这个数组 POST/GET 到另外一个地址呢?当然,使用 CURL 很容易办到,那么如果不使用 CURL 库,又该怎么办呢?其实,在 PHP 里已经有相关的函数实现了,这个函数就是接下来要讲的 stream_context_create(). 直接 sho

PHP函数:stream_context_create()模拟POST/GET

有时候,我们需要在服务器端模拟 POST/GET 等请求,也就是在 PHP 程序中去实现模拟,改怎么做到呢?或者说,在 PHP 程序里,给你一个数组,如何将这个数组 POST/GET 到另外一个地址呢?当然,使用 CURL 很容易办到,那么如果不使用 CURL 库,又该怎么办呢?其实,在 PHP 里已经有相关的函数实现了,这个函数就是接下来要讲的 stream_context_create(). 直接 show you the code,这是最好的方法 <?php $data = array(

使用回调函数,简单模拟dbutils中Queryrunner的工作原理,并重写Queryrunner,使其使用起来更加简单方便

所谓回调,就是在执行某个程序时,具体的封装处理由第三方类来实现,简单一点说就是记录内部,再出来(由第三方类可以对数据进行处理),再返回去继续执行,这个过程就是回调.想要程序具有记录内部的功能就必须定义一个规范,也就是接口,即你的程序出来被其他类处理了,但你规定了还要返回原程序. 下面看一个简单的例子: /** * @描述:回调函数--记录内部,再出来返回去的过程就叫回调 * @author cxie */ public class CopyOfCallBackDemo { public stat

JavaScript碎片———函数闭包(模拟面向对象)

经过这几天的博客浏览,让我见识大涨,其中有一篇让我感触犹深,JavaScript语言本身是没有面向对象的,但是那些大神们却深深的模拟出来了面向对象,让我震撼不已.本篇博客就是在此基础上加上自己的认知,如有错误,还请见谅. 具体来说实现模拟面向对象主要是利用JavaScript函数闭包这个概念.由于JavaScript中的每一个function都会形成一个作用域,而如果变量声明在这个域中,那么外部是无法直接去访问,要想访问必须new出一个实例来,相当于Java中class.首先让我们来了解一下pr

VBA中的函数Timer用法

第1.40例 Timer 函数一.题目: 要求编写一段代码,运用 Timer 函数来计算本代码运行所化的时间.二.代码:Sub 示例_1_040()    Dim t, i&, a    t = Timer    For i = 1 To 1000000        a = a + i    Next i    MsgBox Timer - t & "秒"    ‘返回0.046875秒End Sub三.代码详解1.Sub 示例_1_040():宏程序的开始语句.宏名

Python练习程序(三)函数练习--ATM模拟

功能要求: 额度15000 可以提现,手续费5% 记录消费流水 支持每月账单查询 提供还款接口 调用的相关模块: import time    #time模块,提供各种操作时间的函数 time.strftime("%Y-%m-%d %X", time.localtime()) '2015-12-15 23:35:26' import getpass    #getpass 模块 -> 命令行下输入密码的方法 pwd = getpass.getpass('password: ')

vba 调用 countif 函数问题

源数据是A1:G18,需求是在K列显示A1:A18中各单元格重复出现的次数.在L列中是用countif函数直接计算的, Private Sub test() Dim rng As Range, i As Integer i = 1 For Each rng In Range("A1:A18") Range("I" & i) = Application.WorksheetFunction.CountIf(Range("A" & i

用缓动函数模拟物理动画

1.缓动函数简介      <1>缓动函数的动画效果是建立在CALayer层级的关键帧动画基础之上 也就是说用普通的UIView的Animation是无法直接实现缓动函数 <2>缓动函数是一系列模拟物理效果(如抛物线)方程式的统称,用以计算给定两点之间的插值 <3>两点之间插的值越多,效果越好,但是会耗费更多的性能 <4>只有理解了缓动函数的原理才有可能写出自己想要的效果 学习来自:<极客学院>之 "用缓动函数模拟物理动画"

VBA函数 format

VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT . Format用法详解  Format$(Now,"EEOA") 只要这么一句~~~~~就可以得到“ 二○○六年五月二十六日” --------------------------------- Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 ------