在js中如何调用WScript.Sleep()方法

baoshen88 2008-01-28 11:31:14
直接调用WScript.Sleep()总是提示WScript未声明
...全文
1355 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
南台信息员 2008-09-20
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 baoshen88 的回复:]
如果用楼上的方法还是不行的,因为要设计的函数function getValue() 必须要返回value的值,而调用setTimeout()之后并没有返回value的值。比如用户在调用的时候应该是这样:
var val = getValue();
这个时候val中应该有需要的值。
[/Quote]
我真不明白你说什么?12楼已经说的很清楚了,用12楼的方法就一定会有返回值,因为如果返回值没有得到,getValue()函数就不会结束。所以当用户使用
var val=getvalue()时,要么得到返回值 要么就无限等待。
nicholsky 2008-02-04
  • 打赏
  • 举报
回复
需要返回值的话估计只能换个方法,不要用var val=getValue();来返回,而在直接getValue(),所有在getValue()里面的函数里setTimeout里进行val=xxxxx,同样是一个全局变量。
baoshen88 2008-02-03
  • 打赏
  • 举报
回复
可能前面说得还不是很明白,再补充一下。
要设计的函数是这样的:

var value = null;

function getValue() {
net.send("key"); //异步,返回值通过事件回调函数receive()取得
var value = ??? // 如何取得value
return value;
}

function receive(event) {
value = event.data;
}

用户在调用的时候应该是这样:
var val = getValue();
这个时候val中应该有需要的值。
muyannian 2008-02-01
  • 打赏
  • 举报
回复
用setTimeout来实现 别用那个方法 兼容性有问题
setTimeout(function(){
方法(参数);
},100);
baoshen88 2008-02-01
  • 打赏
  • 举报
回复
如果用楼上的方法还是不行的,因为要设计的函数function getValue() 必须要返回value的值,而调用setTimeout()之后并没有返回value的值。比如用户在调用的时候应该是这样:
var val = getValue();
这个时候val中应该有需要的值。
Go 旅城通票 2008-01-30
  • 打赏
  • 举报
回复
只能说你不会用setTimeout/setInterval
var value = null;
function getValue() {
net.send("key"); //异步,返回值通过事件回调函数receive()取得
//===========================
setTimeout("receive()",100);//setTimeout第一个参数为你的异步执行函数,第2个参数是多少秒后执行,单位为毫秒
//===========================
}

function receive() {
if(xxxx)//xxxx为你检查取返回值对象的状态的,如果状态为已经返回了,则取返回值
{
value=xxxObject.返回值;
}
else//如果状态不是已经返回,则继续使用setTimeout检查状态
{
setTimeout("receive()",100);//setTimeout第一个参数为你的异步执行函数,第2个参数是多少秒后执行,单位为毫秒
}
}
zhansen_7030 2008-01-30
  • 打赏
  • 举报
回复
用个全局变量保存状态,接收函数判断状态就行吧
tantaiyizu 2008-01-28
  • 打赏
  • 举报
回复
当然了 ,是没有权限的 ,太危险

你不能使用 setTimeOut 吗?
Go 旅城通票 2008-01-28
  • 打赏
  • 举报
回复
这个不是每个浏览器都能创建的,需要浏览器的安全降到最低才能创建

WScript.Shell,scripting.filesystemobject,shell.application,adodb.stream等的创建都要求浏览器权限降到最低

你要sleep干什么,不是有setTimeout/setInterval吗?
baoshen88 2008-01-28
  • 打赏
  • 举报
回复
var WScript = new ActiveXObject("WScript.Shell");
WScript.Sleep(100);

我试过了,提示 对象不支持此方法或属性。查帮助发现Sleep()属于WScript对象,但是直接new ActiveXObject("WScript")又提示automation无法创建此对象。
  • 打赏
  • 举报
回复
楼上正解
Go 旅城通票 2008-01-28
  • 打赏
  • 举报
回复
要创建对象才能调用............

var WScript=new ActiveXObject("WScript.Shell");
WScript.Sleep();
yousite1 2008-01-28
  • 打赏
  • 举报
回复
不行的,WScript是不安全的脚本对像,会有安全提示
yixianggao 2008-01-28
  • 打赏
  • 举报
回复
异步处理时要用回调函数!

sleep干嘛?!

setTimeout也不必用!
baoshen88 2008-01-28
  • 打赏
  • 举报
回复
比如要设计一个这样的函数

var value = null;

function getValue() {
net.send("key"); //异步,返回值通过事件回调函数receive()取得
while(value == null) {
// sleep
}
return value;
}

function receive(event) {
value = event.data;
}

问题:用setTimeout()怎么改写?
如果不能用setTimeout,怎么能够实现sleep?
tantaiyizu 2008-01-28
  • 打赏
  • 举报
回复
只能说明setTimeOut你还不会用罢了 ,不是原因 。。。
baoshen88 2008-01-28
  • 打赏
  • 举报
回复
我要实现的功能是把异步的函数封装成同步的能够马上返回值的函数,用setTimeout我怎么想都无法做到在调用结束前返回值,
至于权限问题可以为客户事先配置好。
Windows 脚本技术参考手册(CHM)目录:Windows 脚本技术 Windows 脚本技术 JScript VBScript 脚本运行时 Dictionary 对象 FileSystemObject 对象 脚本 Encoder 使用脚本 Encoder 脚本 Encoder 语法 脚本编码示例 Windows 脚本宿主 入门 WSH 5.6 的新增功能 将 Windows 脚本宿主升级 文档约定 WSH 版本信息 Windows 脚本宿主基础 什么是 WSH? 脚本和 Windows 自动化 脚本文件的类型 宿主环境和脚本引擎 创建可由 WSH 使用的脚本 将脚本分成可重复利用的部分 Windows 脚本宿主对象模型 运行脚本 使用 Windows 脚本文件 (.wsf) WSH 拖放支持 设置和自定义脚本属性 (.wsh) 在命令提示符下运行脚本 从 Windows 运行脚本 WScript.exe 和 CScript.exe 选项 运行脚本需要包括的内容 设置远程 WSH Windows 脚本宿主的基本任务 访问网络 访问网络连接 控制网络打印机 创建自动登录脚本 驱动应用程序 执行文件管理操作 复制文件和文件夹 映射到特殊文件夹 管理快捷方式 复制快捷方式 创建快捷方式 删除快捷方式 移动快捷方式 操纵系统注册表 远程运行脚本 对脚本进行签名 WSH 和 Windows 管理规范 (WMI) WSH 演练 WSH 网络管理员示例脚本 安全和 Windows 脚本宿主 CryptoAPI 工具 对脚本进行签名 软件限制策略 签名验证策略 验证脚本 参考 XML 元素 <?job?> 元素 <?XML?> 元素 <description> 元素 <example> 元素 <job> 元素 <named> 元素 <object> 元素 <package> 元素 <reference> 元素 <resource> 元素 <runtime> 元素 <script> 元素 <unnamed> 元素 <usage> 元素 对象 Scripting.Signer 对象 Scripting.Signer 对象的方法 WScript 对象 WScript 对象的属性和方法 WshArguments 对象 WshArguments 对象的属性和方法 WshController 对象 WshController 对象的方法 WshEnvironment 对象 WshEnvironment 对象的属性和方法 WshNamed 对象 WshNamed 对象的属性和方法 WshNetwork 对象 WshNetwork 对象的属性和方法 WshRemote 对象 WshRemote 对象的属性、方法和事件 WshRemoteError 对象 WshRemoteError 对象的属性 WshScriptExec 对象 WshScriptExec 对象的属性和方法 WshShell 对象 WshShell 对象的属性和方法 WshShortcut 对象 WshShortcut 对象的属性和方法 WshSpecialFolders 对象 WshSpecialFolders 对象的属性和方法 WshUnnamed 对象 WshUnnamed 对象的属性和方法 WshUrlShortcut 对象 WshUrlShortcut 对象的属性和方法 属性 Arguments 属性(Shortcut 对象) Arguments 属性(WScript 对象) AtEndOfLine 属性 AtEndOfStream 属性 BuildVersion 属性 Character 属性 Column 属性 ComputerName 属性 CurrentDirectory 属性 Description 属性 Description 属性 (WshRemoteError) Environment 属性 Error 属性 (WshRemote) ExitCode 属性 FullName 属性(WScript 对象) FullName 属性(WshShortcut 对象) FullName 属性(WshUrlShortcut 对象) Hotkey 属性 IconLocation 属性 Interactive 属性 Item 属性 Item 属性 (WshNamed) Item 属性 (WshUnnamed) length 属性(WshArguments 对象) length 属性(WshEnvironment 对象) length 属性(WshSpecialFolders 对象) Line 属性 (WScript) Line 属性 (WshRemoteError) Name 属性(WScript 对象) Named 属性 Number 属性 Path 属性 ProcessID 属性 RelativePath 属性 ScriptFullName 属性 ScriptName 属性 Source 属性 SourceText 属性 SpecialFolders 属性 Status 属性 (WshRemote) Status 属性 (WshScriptExec) StdErr 属性 (WScript) StdErr 属性 (WshScriptExec) StdIn 属性 (WScript) StdIn 属性 (WshScriptExec) StdOut 属性 (WScript) StdOut 属性 (WshScriptExec) TargetPath 属性 Unnamed 属性 UserDomain 属性 UserName 属性 Version 属性 WindowStyle 属性 WorkingDirectory 属性 方法 AddPrinterConnection 方法 AddWindowsPrinterConnection 方法 AppActivate 方法 Close 方法 ConnectObject 方法 Count 方法 CreateObject 方法 CreateScript 方法 CreateShortcut 方法 DisconnectObject 方法 Echo 方法 EnumNetworkDrives 方法 EnumPrinterConnections 方法 Exec 方法 Execute 方法 Exists 方法 ExpandEnvironmentStrings 方法 GetObject 方法 getResource 方法 LogEvent 方法 MapNetworkDrive 方法 Popup 方法 Quit 方法 Read 方法 ReadAll 方法 ReadLine 方法 RegDelete 方法 RegRead 方法 RegWrite 方法 Remove 方法 RemoveNetworkDrive 方法 RemovePrinterConnection 方法 Run 方法 Save 方法 SendKeys 方法 SetDefaultPrinter 方法 ShowUsage 方法 Sign 方法 SignFile 方法 Skip 方法 SkipLine 方法 Sleep 方法 Terminate 方法 (WshScriptExec) Verify 方法 VerifyFile 方法 Write 方法 WriteBlankLines 方法 WriteLine 方法 事件 End 事件 Error 事件 Start 事件 错误信息 //H 选项需要宿主名称。 //T 选项需要超时值。 已命名元素或未命名元素有重复的名称。 尝试用 //S 选项保存设置失败。 无法执行 — 参数列表太长。 无法写入 wsh.log。请向您的管理员咨询。 无法更改默认脚本宿主 找不到脚本的脚本引擎 找不到脚本文件 <script file name>。 无法从 stdin 读取脚本。 无法保存设置。 命令行选项不匹配。 无法连接对象 <object name>。 无法定位自动化类名称 <automation class name>。 //E 选项需要脚本引擎的名称。 无法移除环境变量 <name>。 Windows 脚本宿主的执行失败。 //H 选项的宿主名称必须是 Windows 脚本宿主初始化失败。 不提供命令而调用 Exec 的尝试无效。 路径名称无效。 快捷方式路径名必须以 .lnk 或 .url 结尾。 //T 选项的超时值无效。 加载脚本 <script name> 失败。 加载设置失败。 缺少作业名称。 没有名为 <name> 的打印机。 找不到 <name> 的协议处理程序。 供读取的注册表项 <name> 的根无效。 无法打开注册表项 <name> 供读取。 无法移除注册表项 <name>。 远程脚本对象只能执行一次。 脚本 <script name> 上的脚本执行时间超时。<script name> 的执行被终止。 脚本设置文件 <settings filename> 无效。 URL <name> 的语法无效。 无法保存快捷方式 <name>。 无法将快捷方式目标设为 <name>。 <file name> 没有文件扩展名。 没有文件扩展名 <file extension> 的脚本引擎。 未指定脚本文件。 无法运行远程脚本。 找不到作业 <job identifier>。 无法等待进程。 该平台不支持 Unicode。 指定了未知选项 <option designation>。 该计算机上的 Windows 脚本宿主访问被禁用。要获得详细信息,请与您的系统管理员联系。 Windows 脚本部件 脚本部件指南 脚本部件概述 Windows 脚本部件简介 脚本部件是如何运作的 创建脚本部件 脚本部件文件的内容 使用脚本部件向导 创建注册信息 说明方法 说明属性 说明事件 创建脚本部件类型库 引用其他部件 引用同一个程序包的其他脚本部件 检查脚本部件文件的错误 脚本部件文件和 XML 一致性 使用脚本部件 注册脚本部件 在应用程序使用脚本部件 在宿主应用程序处理脚本部件的事件 实现 ASP 脚本部件 实现 DHTML Behavior 脚本部件 创建 Behavior 脚本部件 在 Behavior 脚本部件说明属性和方法 在 Behavior 脚本部件说明自定义事件 脚本部件参考 <?component?> <?XML ?> <comment> 元素 createComponent 函数 <event> 元素 fireEvent 方法 getResource 函数 <implements> 元素 <method> 元素 <object> 元素 <package> 元素 <property> 元素 <public> 元素 <reference> 元素 <registration> 元素 <resource> 元素 <script> 元素 <component> 元素 Behavior 处理程序参考 <attach> 元素 attachNotification 方法 createEventObject 方法 element 属性 <layout> 元素 fireEvent 方法 Windows 脚本接口 SDK(英文) Introduction Windows Script Hosts Windows Script Engines Reference IActiveScript Interface IActiveScript::AddNamedItem IActiveScript::AddTypeLib IActiveScript::Clone IActiveScript::Close IActiveScript::GetCurrentScriptThreadID IActiveScript::GetScriptDispatch IActiveScript::GetScriptSite IActiveScript::GetScriptState IActiveScript::GetScriptThreadID IActiveScript::GetScriptThreadState. IActiveScript::InterruptScriptThread IActiveScript::SetScriptSite IActiveScript::SetScriptState IActiveScriptError Interface IActiveScriptError::GetExceptionInfo IActiveScriptError::GetSourceLineText IActiveScriptError::GetSourcePosition IActiveScriptParse Interface IActiveScriptParse::AddScriptlet IActiveScriptParse::InitNew IActiveScriptParse::ParseScriptText IActiveScriptSite Interface IActiveScriptSite::GetDocVersionString IActiveScriptSite::GetItemInfo IActiveScriptSite::GetLCID IActiveScriptSite::OnEnterScript IActiveScriptSite::OnLeaveScript IActiveScriptSite::OnScriptError IActiveScriptSite::OnScriptTerminate IActiveScriptSite::OnStateChange IActiveScriptSiteWindow Interface IActiveScriptSiteWindow::EnableModeless IActiveScriptSiteWindow::GetWindow IActiveScript Enumerations SCRIPTSTATE SCRIPTTHREADSTATE IDispatchEx Interface IDispatchEx Methods IDispatchEx::DeleteMemberByDispID IDispatchEx::DeleteMemberByName IDispatchEx::GetDispID IDispatchEx::GetMemberName IDispatchEx::GetMemberProperties IDispatchEx::GetNameSpaceParent IDispatchEx::GetNextDispID IDispatchEx::InvokeEx

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧