Board logo

标题: [问题求助] vbs 模拟发送按键,为什么会无效? [打印本页]

作者: ruoru376    时间: 2015-8-18 15:13     标题: vbs 模拟发送按键,为什么会无效?

想模拟一下复制 “CTRL+C”,但是不知道为什么就无效。在xp系统下复制成功,但是到win7上面就没有用了!
希望好心的大侠,帮我看看!或者如何实现复制功能!谢谢了!

Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "^C"
作者: pcl_test    时间: 2015-8-18 18:56

窗口失焦,要先聚焦到所要复制的某个窗口,比如要复制test.txt文档的某些文字,那么先选中文字
  1. set ws = CreateObject("Wscript.Shell")
  2. do while ws.appactivate("test.txt - 记事本")=false '聚焦到当前记事本窗口
  3. WScript.Sleep 200
  4. loop
  5. ws.SendKeys "^C"
复制代码

作者: pcl_test    时间: 2015-8-18 18:58

本帖最后由 pcl_test 于 2015-8-18 19:00 编辑

发个ahk,实现鼠标左键拖选复制
  1. ~LButton::
  2. mousedrag := 1 ; pixels
  3. MouseGetPos, mousedrag_x1, mousedrag_y1
  4. win1 := WinActive("A")
  5. KeyWait LButton
  6. MouseGetPos, mousedrag_x2, mousedrag_y2
  7. win2 := WinActive("A")
  8. WinGetClass cos_class, A
  9. if(((abs(mousedrag_x2 - mousedrag_x1) > mousedrag
  10.   or abs(mousedrag_y2 - mousedrag_y1) > mousedrag)) and win1 = win2
  11.   and cos_class != "ConsoleWindowClass")
  12. {
  13.     SendInput ^c
  14. }
  15. return
复制代码

作者: ruoru376    时间: 2015-8-19 16:27

回复 2# pcl_test
这个不能任意地方 复制吧!我想实现的是,任意位置,比如:浏览器、qq、word …………等等;用vbs或者bat ,点击一下自动复制【自己设置一下快捷键,比如设置f4键,按下f4自动复制】。已选中的文字……
作者: pcl_test    时间: 2015-8-19 17:43

回复 4# ruoru376
嗯,说了vbs需要聚焦,一直是个不靠谱的方法,所以推荐用ahk
作者: ruoru376    时间: 2015-8-20 00:15

回复 5# pcl_test
没有用过ahk 不知道怎么用!应该如何运行呢!见笑了
作者: pcl_test    时间: 2015-8-20 08:57

回复 6# ruoru376

百度是让人“上”的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2