VBS问题,d出窗口函数

VBS问题,d出窗口函数,第1张

下面是代码:

main

Sub main

Dim fso,wsh,i

Set fso = CreateObject("ScriptingFileSystemObject")

Set wsh = CreateObject("WScriptShell")

if not (fsoFolderExists("e:\bak")) then fsoCreateFolder("e:\bak")

fsoCopyFile "d:\work\doc","e:\bak\"

fsoCopyFile "d:\work\xls","e:\bak\"

Set fso = Nothing

For i = 5 to 1 step -1

wshpopup "文件备份完毕!",1,"信息提示" & i & "秒钟后关闭",0

Next

set wsh = Nothing

End Sub

有,是易语言,代码如下:

版本

2

程序

窗口程序集1

子程序

_时钟1_周期事件

运行

(“

”,

真,

#隐藏窗口)

双引号中写你的批处理文件的路径及文件名,_启动窗口要

可视=假

,才流畅不会被人发现;在_启动窗口中要放一个时钟,它的时钟周期=60000(意思说60秒运行一次)。但这个程序一运就没法停止,请小心使用!

先写好一个VBS脚本放在相对于主程序(要调用VBS的程序)的某个目录下,比如主程序叫“mainexe”位置是“D:\test”,VBS脚本(叫“testvbs”)放在“D:\test\A\B\C”,那么调用的命令(C/C++)是:

system("cd/d D:\\test");

system("\"A\\B\\C\\testvbs\"");

原理是:CMD脚本可以直接调用VBS脚本,上面的system是用来调用CMD命令的,而CMD命令中可以调用另外的脚本(CMD脚本或VBS或程序等)。所以这样写是间接调用VBS脚本,借助CMD调用了VBS

注意:第一句执行的CMD命令是把CMD的当前目录切换到正确的位置,程序调用CMD命令时CMD的当前目录不程序当前目录,而是CMD的默认路径;system函数的头文件是stdlibh。

完整示例代码:

#include <windowsh>

#include <string>

using namespace std;

int main() {

  // VBS调用命令文本(使用相对路径的写法, 注意首尾要加双引号)

  char vbs[] = "\"\\testvbs\"";

  // 获取当前目录字符串的长度

  int bufLen = GetCurrentDirectory(0, NULL);

  // 分配字符串空间

  char pwd = new char[bufLen];

  // 正式获取当前目录字符串

  GetCurrentDirectory(bufLen, pwd);

  // 组装cd命令

  string cmd(pwd);

  cmdinsert(0, "cd/d ");

  // 调用CMD命令, 转移到程序运行目录

  system(cmddata());

  // 调用CMD命令, 间接调用指定的VBS脚本

  system(vbs);

  delete[] pwd;

  return 0;

}

注意:如果使用开发环境调试的话可能会出现命令执行错误的现象,原因是开发环境调试时的当前目录不是exe文件所在目录,在实际直接执行程序时的当前目录就是exe文件所在目录

示例VBS脚本(testvbs):

MsgBox("testVBS")

测试结果:

我用VC6写的C++,VBS脚本testvbs在图中“try10”目录下,执行的程序“try10exe”在“Debug”目录下。

PS 只要这个语言能调用CMD命令,CMD能调用的这个语言就都能调用,并不存在不界线,借助CMD就能打破界线。

以上就是关于VBS问题,d出窗口函数全部的内容,包括:VBS问题,d出窗口函数、写了个批处理程序,需要每一个小时自动运行它一次,怎么解决、在C++里执行VBS 如何执行VBS命令啊 比如Wscript.Sleep 5000 '等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/10072359.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存