[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] vbs如何模拟键盘按下 右边数字键盘的5 求大神指导

查了很久 也没找到解决办法  求大神指点

TOP

回复 2# jyswjjgdwtdtj


    Dim Ws

set Ws = CreateObject("wscript.Shell")

Ws.SendKeys "123456"

Ws.SendKeys "{enter}"

Ws.SendKeys "321654"
我只会这样输入  虚拟键代码 不知道如何使用

TOP

TOP

你看看同样的问题
Nsqs 发表于 2023-10-7 21:12



    非常感谢 你的热心回复

我不会修改参数     有哪位好心人帮我修改一下  vbs按下小键盘5


param([byte]$Key,[byte]$Shift)
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class Keyboard {
    [DllImport("user32.dll")]
    private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
    Keyboard(){}
    public static void Sendkeys(byte key, byte shift = 0){
        if(shift == 0){
            keybd_event(key, 0, 0, 0);
            keybd_event(key, 0, 2, 0);
        }else{
            keybd_event(shift, 0, 0, 0);
            keybd_event(key, 0, 0, 0);
            keybd_event(key, 0, 2, 0);
            keybd_event(shift, 0, 2, 0);
        }
    }
}
"@;
[Keyboard]::Sendkeys($Key,$Shift) # Ctrl=17;97=Num1COPY
保存为PowerShell代码

然后vbs代码
function KeyBoard(byval vkey,byval shift)
set ws=createobject("Wscript.Shell")
ws.run "powershell -noprofile -executionpolicy bypass -file "&chr(34)& "SendKeys.ps1"&chr(34)&chr(32)&vKey&chr(32)&Shift,0
end function
'使用方法<键值,组合键值>
KeyBoard 97,17        'Ctrl=17COPY
与PowerShell脚本保存在同一文件夹内进行测试

TOP

最后吗调用那
KeyBoard 97,17
换成
KeyBoard 101,0

不过vbs不区分小键盘吧,直接wscript.shell的SendKeys "5"应该也可以吧(也许大概)

TOP

30r vx红包求助 模拟鼠标左键点击  和小键盘输入5       实现单个的话 15                                             
上班去了  晚上回来  能实现必红包。知识就是金钱,本人刚工作 实在是囊中羞涩  无力给予更多经济补偿 请谅解

TOP

回复 6# Five66


    wscript.shell我不会运用  纯小白

TOP

回复 5# wyhs4000


SendKeys.ps1
  1. param([byte]$Key,[byte]$Shift)
  2. Add-Type @"
  3. using System;
  4. using System.Runtime.InteropServices;
  5. public class Keyboard {
  6.     [DllImport("user32.dll")]
  7.     private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
  8.     Keyboard(){}
  9.     public static void Sendkeys(byte key, byte shift = 0){
  10.         if(shift == 0){
  11.             keybd_event(key, 0, 0, 0);
  12.             keybd_event(key, 0, 2, 0);
  13.         }else{
  14.             keybd_event(shift, 0, 0, 0);
  15.             keybd_event(key, 0, 0, 0);
  16.             keybd_event(key, 0, 2, 0);
  17.             keybd_event(shift, 0, 2, 0);
  18.         }
  19.     }
  20. }
  21. "@;
  22. [Keyboard]::Sendkeys($Key,$Shift) # Ctrl=17;97=Num1
复制代码
Run.vbs
  1. function KeyBoard(byval vkey,byval shift)
  2. set ws=createobject("Wscript.Shell")
  3. ws.run "powershell -noprofile -executionpolicy bypass -file "&chr(34)& "SendKeys.ps1"&chr(34)&chr(32)&vKey&chr(32)&Shift,0
  4. end function
  5. '使用方法<键值,组合键值>
  6. KeyBoard 101,0
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 buyiyang 于 2023-10-8 16:51 编辑

回复 7# wyhs4000
保存为bat脚本
  1. #@&cls&powershell "type '%~f0'|out-string|iex"&exit
  2. Add-Type @"
  3. using System;
  4. using System.Runtime.InteropServices;
  5. public class ClickKey
  6. {
  7.     [DllImport("user32.dll")]
  8.     private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
  9.     public static void Click(){keybd_event(0x01, 0x45, 0x65, 0);}
  10.     public static void KeyPress(byte key){keybd_event(key, 0x45, 0x65, 0);}
  11.     public static void KeyUp(byte key){keybd_event(key, 0x45, 0x02, 0);}
  12.     public static void MouseUp(){keybd_event(0x01, 0x45, 0x02, 0);}
  13. }
  14. "@
  15. #以下按照需要调整顺序或删除
  16. # 按下左键
  17. [ClickKey]::Click()
  18. # 按下数字键盘的5键
  19. $key = 0x65
  20. [ClickKey]::KeyPress($key)
  21. # 释放左键
  22. [ClickKey]::MouseUp()
  23. # 释放数字键盘的5键
  24. [ClickKey]::KeyUp($key)
复制代码

TOP

回复 9# Batcher


   加班才下班 首先感谢贵论坛管理员的热心回复,这段脚本是我复制别人的Ctrl +Num 1 您回复的脚本, 我复制了, 还是不能使用,  估计是我不会弄的原因,还是万分感谢了
  原贴http://bbs.bathome.net/thread-67140-1-1.html  我想着 别人能组合键使用小键盘  按说单个按下小键盘应该也能实现  不过我不懂ps1 只会一点vbs 皮毛

TOP

回复 10# buyiyang


    您好 万分感谢 我想要的是vbs 模拟小键盘 或者左键点击  批处理不适用  谢谢啦

TOP

回复 6# Five66


    谢谢

TOP

回复 4# Nsqs


    谢谢 :hug: :hug:  别人这个是组合键    可惜我不会该

TOP

回复 2# jyswjjgdwtdtj


    谢谢

TOP

返回列表