MIUI9 7914开发版不支持toor精灵,什么鬼

大家都在搜:
扫描二维码安装搜房网房天下APP
手机浏览器访问搜房网房天下
> > 问题详情
求一个简单的按键精灵的后台脚本!!!一个按键
一直循环下去
浏览次数:0
回答被采纳后将共获得20
Hwnd = Plugin.Window.Foreground() //取得当前窗口句柄While trueCall Plugin.Bkgnd.KeyDown(Hwnd, 81)Delay 4000Call Plugin.Bkgnd.KeyUp(Hwnd, 81)Delay 50 //这是按键频率Wend
位提问人正在寻找答案
手机动态登录
请输入用户名/邮箱/手机号码!
请输入密码!
没有搜房通行证,
ask:2,asku:0,askr:17,askz:3,askd:8askR:0,askD:33 mz:nohit,askU:0,askT:0askA:35
Copyright &
北京拓世宏业科技发展有限公司
Beijing Tuo Shi Hong Ye Science&Technology Development Co.,Ltd 版权所有
客服电话: 400-850-8888 违法信息举报邮箱:按键精灵如何进行后台鼠标点击键盘按键操作
时间:日来源:互联网
首先打开,点击新建
选择全部命令-插件命令-Window 窗口插件-MousePoint,然后点击插入
此命令是用来获得鼠标所指向位置的窗口句柄
获取到窗口句柄之后我们就可以对目标窗口进行操作了
比如我们测试向中按下BAIDU这几个键
选择插件命令-Bkgnd 后台插件-keypress 模拟按键 &(此命令是向目标窗口发送一个按键命令)
再依次输入A,I,D,U,继续插入
看到右边的代码编辑界面中66,65,7368,85分别数B,A,I,D,U的键代码,也就是ASCII码
注意一下这边的Hwnd,Hwnd这个变量用来储存鼠标所指向窗口的句柄,下面的Keypress中第一个参数就是窗口句柄,所以第一个参数全部是Hwnd
接下来我们按F5运行试试看,按键精灵中默认启动热键是F10,我们打开记事本,然后鼠标放在记事本中,按下F10看看效果
可以看到记事本中依次输入了baidu这几个字符
如果要进行操作的话,在插件命令中,有提供多种鼠标操作命令,比较常用的是LeftClick进行鼠标左键单击,其需要的参数第一个为目标窗口句柄,第二个就是目标窗口中所在点的X坐标,第三个则是Y坐标,说一下,这里的坐标是相对于目标窗口来说的,而不是整个屏幕,以目标窗口最左上角为起点(0,0)开始计算,到目标窗口最右下角
其操作方法跟按键输入差不多,都需要先获得窗口句柄,然后就是键代码变成了坐标位置
另外说一下,可能有人会说,如果使用鼠标所在位置的句柄的话,这样鼠标就必须指向某一窗口,这样都不算是后台操作了,这里只是演示,可以在事先给出一个值,可以用按键抓抓工具来获得目标窗口句柄,然后将句柄复制下来,比如这里记事本中输入框的句柄为3343758
那么我们就把原来的Hwnd = Plugin.Window.MousePoint()这句代码改成Hwnd = 3343758
预先给Hwnd赋值
这样你再运行后把记事本最小化,按下启动热键F10试试,然后再看看记事本,是不是多出了baidu这几个字符
由于每次窗口打开后句柄都是不一样的,我们也可以用Find命令来获取一个标题或类名固定不变的窗口的句柄,比如这边默认的就是获取记事本这个窗口的句柄,不管你记事本打开关闭几次,用这个命令总是可以获得正确的窗口句柄
另外注意一下,这边获取的记事本句柄并不能进行输入操作,因为这边获取到的是记事本的句柄,而不是记事本中输入框的句柄,所以没办法对输入框进行操作,这个从按键抓抓中可以清楚的看到
以上就是专题栏小编带来的按键精灵教程,更多教程请看&/&
按键精灵官网版是用于重复一样工作的人专门准备的,他可以记录您鼠标点过的位置移动过的路径还有键盘所有按过的按键等并完美的复…
页面地址:/xiazai/anjianjingling2014.html
看过这篇文章的人还看过
输入你的评价或问题……用C#调用Windows API向指定窗口发送
一、调用Windows API。
 C#下调用Windows API方法如下:
 1、引入命名空间:using
System.Runtime.InteropS
 2、引用需要使用的方法,格式:[DllImport("DLL文件")]方法的声明;
 [DllImport("user32.dll")]private static extern bool
ShowWindow(IntPtr hWnd, int nCmdShow);
 [DllImport("user32.dll")]private
static extern bool SetForegroundWindow(IntPtr hWnd);
 [DllImport("user32.dll")]private static extern IntPtr
FindWindow(string lpClassName,string
lpWindowName);
 [DllImport("user32.dll")]private static extern int
SendMessage(IntPtr hWnd,int Msg,int wParam,int
 [DllImport("user32.dll")]private static extern bool
SetCursorPos(int X, int Y);
 [DllImport("user32.dll")]private static extern void
mouse_event(int dwFlags, int dx, int dy, int dwData, int
dwExtraInfo);
 [DllImport("user32.dll")]private static extern void
keybd_event(byte bVk, byte bScan, uint dwFlags, uint
dwExtraInfo);
  [DllImport("user32.dll")]private static extern bool
SetWindowPos(IntPtr hWnd, IntPtr hWndlnsertAfter, int X, int Y, int
cx, int cy, uint Flags);
 //ShowWindow参数
 private const int SW_SHOWNORMAL = 1;
 private const int SW_RESTORE = 9;
 private const int SW_SHOWNOACTIVATE = 4;
 //SendMessage参数
const int WM_KEYDOWN = 0X100;
 private const int WM_KEYUP = 0X101;
 private const int WM_SYSCHAR = 0X106;
 private const int WM_SYSKEYUP = 0X105;
 private const int WM_SYSKEYDOWN = 0X104;
 private const int WM_CHAR = 0X102;
二、找到目标窗口
1)、根据窗口的标题得到句柄
 IntPtr myIntPtr = FindWindow(null,"窗口名");
//null为类名,可以用Spy++得到,也可以为空
 ShowWindow(myIntPtr, SW_RESTORE);
//将窗口还原
 SetForegroundWindow(myIntPtr);
//如果没有ShowWindow,此方法不能设置最小化的窗口
2)、遍历所有窗口得到句柄
定义委托方法CallBack,枚举窗口API(EnumWindows),得到窗口名API(GetWindowTextW)和得到窗口类名API(GetClassNameW)
 public delegate bool CallBack(int hwnd, int
 [DllImport("user32")]public static extern int EnumWindows(CallBack
x, int y);
  [DllImport("user32.dll")]private static extern int
GetWindowTextW(IntPtr hWnd,
[MarshalAs(UnmanagedType.LPWStr)]StringBuilder lpString, int
nMaxCount);
 [DllImport("user32.dll")]private static extern int
GetClassNameW(IntPtr hWnd,
[MarshalAs(UnmanagedType.LPWStr)]StringBuilder lpString, int
nMaxCount);
2 调用EnumWindows遍历窗口
 CallBack myCallBack = new CallBack(Recall);
 EnumWindows(myCallBack, 0);
3 回调方法Recall
 public bool Recall(int hwnd, int lParam)
  StringBuilder sb = new StringBuilder(256);
  IntPtr PW = new IntPtr(hwnd);
  GetWindowTextW(PW,sb,sb.Capacity); //得到窗口名并保存在strName中
  string strName = sb.ToString();
  GetClassNameW(PW,sb,sb.Capacity); //得到窗口类名并保存在strClass中
  string strClass = sb.ToString();
  if (strName.IndexOf("窗口名关键字") &= 0
&& strClass.IndexOf("类名关键字")
    //返回false中止EnumWindows遍历
    //返回true继续EnumWindows遍历
3)、打开窗口得到句柄
定义设置活动窗口API(SetActiveWindow),设置前台窗口API(SetForegroundWindow)
 [DllImport("user32.dll")]static extern IntPtr
SetActiveWindow(IntPtr hWnd);
 [DllImport("user32.dll")][return:
MarshalAs(UnmanagedType.Bool)]static extern bool
SetForegroundWindow(IntPtr hWnd);
2 打开窗口
 Process proc = Process.Start(@"目标程序路径");
 SetActiveWindow(proc.MainWindowHandle);
 SetForegroundWindow(proc.MainWindowHandle);
三、向指定的窗口输入数据
1 利用发送消息API(SendMessage)向窗口发送数据
 InputStr(myIntPtr, _GameID); //输入游戏ID
 SendMessage(myIntPtr, WM_SYSKEYDOWN, 0X09, 0); //输入TAB(0x09)
 SendMessage(myIntPtr, WM_SYSKEYUP, 0X09, 0);
 InputStr(myIntPtr, _GamePass); //输入游戏密码
 SendMessage(myIntPtr, WM_SYSKEYDOWN, 0X0D, 0);
//输入ENTER(0x0d)
 SendMessage(myIntPtr, WM_SYSKEYUP, 0X0D, 0);
 /// 发送一个字符串
 /// &/summary&
 /// &param
name="myIntPtr"&窗口句柄&/param&
 /// &param
name="Input"&字符串&/param&
 public void InputStr(IntPtr myIntPtr, string Input)
  byte[] ch = (ASCIIEncoding.ASCII.GetBytes(Input));
  for (int i = 0; i & ch.L i++)
   SendMessage(PW, WM_CHAR, ch,
利用鼠标和键盘模拟向窗口发送数据
 SetWindowPos(PW, (IntPtr)(-1), 0, 0, 0, 0, 0x0040 | 0x0001);
//设置窗口位置
 SetCursorPos(476, 177); //设置鼠标位置
 mouse_event(0x, 0, 0); //模拟鼠标按下操作
 mouse_event(0x, 0, 0); //模拟鼠标放开操作
 SendKeys.Send(_GameID);&&
//模拟键盘输入游戏ID
 SendKeys.Send("{TAB}"); //模拟键盘输入TAB
 SendKeys.Send(_GamePass); //模拟键盘输入游戏密码
 SendKeys.Send("{ENTER}"); //模拟键盘输入ENTER
另:上面还提到了keybd_event方法,用法和mouse_event方法类似,作用和SendKeys.Send一样。
阅读(...) 评论()按键精灵后台简明教程(后台找色,后台鼠标点击等)
1、游戏句柄
后台的意思就是当窗口被遮盖或移开的时候,仍能够正常的执行脚本动作,所以
必须先找到该游戏的窗口句柄,这样可以保证我们编辑的脚本语句有正确的使用
方向,获取窗口句柄的方法有很多,我一般使用以下的方法:
Plugin hwnd=Window.MousePoint()
Plugin是调用插件命令,凡是调用插件都需要使用这个命令,hwnd就是得到的句
柄,Window是插件的名称MousePoint()返回鼠标所在的窗口的句柄
关于窗口这里需要多说几句,以网页游戏为例,鼠标放在标题栏上和放在游戏窗
口所得到的句柄是不一样的,游戏窗口是IE的一个子窗口,因此在运行脚本前,
将你的鼠标放在游戏窗口的区域内再运行脚本。
得到句柄费函数很多,有兴趣的自己去试试看,不过知道一个就足够了。
2、模拟动作
得到窗口句柄后,你就可以向这个窗口模拟需要的动作了,在这里要用到按键精
灵7的插件(既然已经有7了以前的插件就不作介绍了),模拟动作的函数有如下
-模拟鼠标点击
Plugin Bkgnd.LeftClick(句柄,横坐标,纵坐标) //模拟鼠标左键点击
Plugin Bkgnd.RightClick(句柄,横坐标,纵坐标) //模拟鼠标右键点击
其中的句柄就是上面我们已经得到的句柄,这里的横坐标和纵坐标是针对游戏窗
口,而不是针对屏幕的(看晕了吧^_^关于这一点足足困扰了我一个礼拜的时间才
屏幕坐标,是以屏幕左上角为基点(0,0),右下角的坐标是和屏幕分辨率有关
的,而窗口坐标,不是在屏幕的左上角,例如word中的编辑窗口的0,0位置是在
工具栏下面的,看不懂也没关系,你只要记住下面的方法就行了,首先在得到窗
口句柄后加上如下的代码:
Plugin s = Window.GetClientRect(hwnd)
XYArray = Split(s, "|", -1, 1)
dx = XYArray(0)
dy = XYarray(1)
其次,在横坐标和纵坐标的后面都分别减去dx和dy就行了,为什么!!不用去管
他,反正这样做不会错,举例说明
例如你抓点得到的横坐标是x,纵坐标是y,那么模拟鼠标左键点击的语句应该是
Plugin Bkgnd.LeftClick(句柄x-dx,y-dy)
-模拟键盘动作
Plugin Bkgnd.KeyPress(句柄,按键码) //模拟键盘动作
这里的按键码可以很容易的在按键精灵中查到,包括组合键
-输入字符串
Plugin Window.SendString(句柄,字符串)
这个函数在登陆和喊话时是非常有用的,其中的字符串可以是字符串变量
3、后台找色
后台脚本尽量少用找色语句,否则你的游戏将“卡巴死机”,即使少用也会出现
很多的“马赛克”幸运的是不影响找色功能,即使游戏图像已经乱七八糟,既然
是要后台操作,难看就难看吧^_^。
Plugin c1=BkgndColor.GetPixelColor(hwnd,631-dx,121-dy)
强烈建议用这个函数,至于什么区域找色,区域照图之类,如果你的电脑速度足
够快再去尝试吧。
找色是有技巧的,一定要找到一个不同画面分别对应不同颜色的点,当然只有一
个点是不可靠的。我的思路是,找到几个点的颜色值记录下来,再根据这几个点
的不同组合来决定脚本的走向,采取这种方法后,我在游戏时已经基本可以看到
大体的画面了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。按键精灵如何进行键盘按键操作_未来软件园
手机版,更便捷!
当前位置: >
> 按键精灵如何进行键盘按键操作
按键精灵如何进行键盘按键操作
按键精灵是一款非常简单实用的软件,能够进行各种鼠标键盘的模拟操作,解放双手,其不仅可以前台操作,还可以进行后台操作,不影响平常的使用工具:点击下载1、首先打开按键精灵,点击新建2、选择全部命令-插件命令-Window 窗口插件-MousePoint,然后点击插入此命令是用来获得鼠标所指向位置的窗口句柄3、获取到窗口句柄之后我们就可以对目标窗口进行操作了比如我们测试向中按下BAIDU这几个键4、选择命令-Bkgnd 后台插件-keypress 模拟按键 &(此命令是向目标窗口发送一个按键命令)在按键键代码的输入框中按下B键,自动给出数字66,然后点击插入再依次输入A,I,D,U,继续插入5、看到右边的代码编辑界面中66,65,7368,85分别数B,A,I,D,U的键代码,也就是ASCII码注意一下这边的Hwnd,Hwnd这个变量用来储存鼠标所指向窗口的句柄,下面的Keypress中第一个参数就是窗口句柄,所以第一个参数全部是Hwnd6、接下来我们按F5运行试试看,按键精灵中默认启动热键是F10,我们打开记事本,然后鼠标放在记事本中,按下F10看看效果可以看到记事本中依次输入了baidu这几个字符7、如果要进行鼠标点击操作的话,在插件命令中,有提供多种鼠标操作命令,比较常用的是LeftClick进行鼠标左键单击,其需要的参数第一个为目标窗口句柄,第二个就是目标窗口中所在点的X坐标,第三个则是Y坐标,说一下,这里的坐标是相对于目标窗口来说的,而不是整个屏幕,以目标窗口最左上角为起点(0,0)开始计算,到目标窗口最右下角8、其操作方法跟按键输入差不多,都需要先获得窗口句柄,然后就是键代码变成了坐标位置9、另外说一下,可能有人会说,如果使用鼠标所在位置的句柄的话,这样鼠标就必须指向某一窗口,这样都不算是后台操作了,这里只是演示,可以在事先给出一个值,可以用按键抓抓工具来获得目标窗口句柄,然后将句柄复制下来,比如这里记事本中输入框的句柄为3343758那么我们就把原来的Hwnd = Plugin.Window.MousePoint()这句代码改成Hwnd = 3343758预先给Hwnd赋值10、这样你再运行后把记事本最小化,按下启动热键F10试试,然后再看看记事本,是不是多出了baidu这几个字符11、由于每次窗口打开后句柄都是不一样的,我们也可以用Find命令来获取一个标题或类名固定不变的窗口的句柄,比如这边默认的就是获取记事本这个窗口的句柄,不管你记事本打开关闭几次,用这个命令总是可以获得正确的窗口句柄另外注意一下,这边获取的记事本句柄并不能进行输入操作,因为这边获取到的是记事本的句柄,而不是记事本中输入框的句柄,所以没办法对输入框进行操作,这个从按键抓抓中可以清楚的看到
感谢您的支持,我会继续努力的!
扫码打赏,建议金额1-10元

我要回帖

更多关于 toor精灵 的文章

 

随机推荐