sendkeys

zmgowin 2004-08-30 09:07:15
我现在要用winzip解压一批文件,文件是在unix的compress压缩的,所以在用winzip解压时会让输入解压后的文件名,我希望当winzip窗体弹出让输入文件名的时候,输入一个回车,但用下面的代码却不能实现,提交回车键后没有效果,请问为什么?还需要加什么吗?
Shell "c:\program files\winzip\winzip32 -e " + dpd1 + " " + dpd + ""
SendKeys ("{ENTER}")

thx a lot
...全文
172 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2004-08-30
  • 打赏
  • 举报
回复
不必使用 winzip32.exe。

使用 WinZip 提供的命令行支持插件 WZZIP、WZUNZIP

你解压 Winzip 后它的安装路径中就有,还附带 help 文件。

脆皮大雪糕 2004-08-30
  • 打赏
  • 举报
回复
首先你要确定你所调用的winzip是否是注册过的。未注册的winzip回弹出一个提示窗体,该窗体没有defalt按钮,也就是说你简单的enter不能完成点击按钮的操作。另外未注册的winzip的进入按钮的位置时不定的,不同版本的winzip按钮位置也有差别,因此也不能简单模拟鼠标点击进入winzip。

如果你想压缩文件没有必要调用winzip,网络上可以下载到现成的zip压缩动态连接库,这些连接库都是真正免费的,由于zip是标准格式这些连接库产生的压缩包winzip等主流压缩软件都是兼容的。你甚至可以在网络上找到VB的zip压缩代码
hxy2003 2004-08-30
  • 打赏
  • 举报
回复
对是焦点问题
haoya 2004-08-30
  • 打赏
  • 举报
回复
Shell "c:\program files\winzip\winzip32 -e " + dpd1 + " " + dpd + "",vbNormalFocus
zmgowin 2004-08-30
  • 打赏
  • 举报
回复
我试过调用sleep,设置了足够的时间,可是仍然没有效果,等会再看看你们的方法
wx05 2004-08-30
  • 打赏
  • 举报
回复
是不是窗体没有获得焦点,shell后面好象还有几个参数是关于焦点设置的,你试一试吧
haoya 2004-08-30
  • 打赏
  • 举报
回复
一般是,你需要发送按键消息的窗口还没有出现。
你可以使用API函数FINDWINDOW查找一下窗口是否出现。
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
lpClassName代表你要查找窗口的类名称,lpWindowName 代表你要查找窗口的标题文字。
如果找到,函数将返回窗体的句柄,否则,返回0。
上面的sendkey "{ENTER}"

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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