求助,模拟按键家庭问题求助

共有 10278 人关注过本帖
标题:[虚心求教]后台窗口模拟按键;反外挂原理;进程隐藏;和一些WINFORM下的小问题 ...
等 级:新手上路
结帖率:50%
&&已结贴√
&&问题点数:20&&回复次数:11&&&
[虚心求教]后台窗口模拟按键;反外挂原理;进程隐藏;和一些WINFORM下的小问题。
问题比较多,麻烦各位了。(以下全部基于C#)
一直想做一个类似按键精灵的软件,前台的很简单,用SendKeys()就可以实现。但请问如何实现非活动窗口(非焦点)的按键模拟?
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
发完帖子后又奋战1小时,终于有了结果,哈哈哈哈,高兴中……
明天晚些时候尝试完美实现出来。HOHO。。。
想问一下现在很多游戏都有自己的反外挂的技术,小弟想了解这个不是为了外挂技术。
反外挂策略除了扫描进程名、窗口名、代码特征以外,会不会很准确的通过API检测到?
使用SendKeys()或者API的SendMessage()有可能被游戏程序捕捉并判定到吗?
按键精灵使用的是API还是更加底层的技术?
3、又是一个敏感的话题,隐藏进程。软件不想让用户或者自主的脚本/软件/病毒关闭,比较有效的方法就是隐藏进程,让别人找不到,结束不了。
在网上搜的结果是:线程注入不适合C#,系统服务云云也不行。希望各位大侠给指条路。
4、一些零散的问题。
我写的小程序窗口比较多,同时打开的情况也时常发生,所以对窗口之间的互相响应怨念比较多
①假设主窗口A是始终显示的,此时需要在A运行时创建另一个窗口B,但想让B是不可见的,怎么实现?
如果不用B.show()窗口B就等于没有创建,我用B.show()后面紧跟B.hide(),但是会闪一下。如何改变思路?
②窗口A创建了窗口B,怎样在A中关闭B?B.close()似乎不能完全结束掉B。
③程序使用了API文件流操作INI文件,没有INI文件时新建它。问题在于创建INI文件的IO命令后需要几秒的延时后才可以写入,我只能用Sleep甚至timer来延时,感觉很别扭。
换句话说,怎样等待IO结束后再执行下面的代码?有没有什么更好的办法解决?
④如何最经济的判断一个可执行文件是否已经运行了至少一个实例。
⑤我想监视进程列表,有没有比timer更省资源的方式?
⑥GUI在某个控件上获得了绘图对象,鼠标点击事件如何做到先清除上一条线,然后再画一条线。刷新似乎不管用,会让新线条也画不上。
⑦我只有一个A.EXE,能不能给定一个变量int1=1,然后在运行时改变int1=2。下次运行A.EXE是,变量str已经==2?
似乎不可能?程序不能修改自身?修改会造成MD5改变? 望赐教。
⑧代码逻辑和调用到达一种什么状态就意味着严重印象了效率?
比如一个很长的字符串,拆成一个一个的分别通过一个10行左右的简单加密代码加密,最后返回一个很长的加密后的字符串,是否算是消耗很多资源?
新人就这20分,希望不要嫌少。。
不管你有没有回答,谢谢你将我的问题看完了,谢谢。
[ 本帖最后由 lkwudi222 于
04:58 编辑 ]
搜索更多相关主题的帖子:
&&&&&&&&&&
等 级:蒙面侠
帖 子:1096
专家分:4969
&&得分:15&
2,SendMessage()发到目标Form的句柄上,Form的message可以捕捉到,postmessage,sendmessage已经是底层API了
10楼有上传dll,现在的病毒隐藏技术很多是封装成dll,由其他的exe来启动
4,①可以这样:
&&&&&&&&&&&&程序代码:&&&&&&&&&&&&Form2 f2 = new Form2();
&&&&&&&&&&&&f2.Height=0;
&&&&&&&&&&&&f2.Width = 0;
&&&&&&&&&&&&f2.ShowInTaskbar =
&&&&&&&&&&&&f2.FormBorderStyle = FormBorderStyle.N
&&&&&&&&&&&&f2.Show();
②B.Dipose();
③thead.jion();可以解决这个问题
用lock(){}好像也行
&&&&&&&&程序代码:&&&&&&&&public abstract class OneInstance
&&&&&&&&&&&&/// &summary&
&&&&&&&&&&&&/// 用来判断一个指定的程序是否正在运行
&&&&&&&&&&&&/// &/summary&
&&&&&&&&&&&&/// &param name=&appId&&程序名称,长一点比较好,防止有重复&/param&
&&&&&&&&&&&&/// &returns&如果程序是第一次运行返回True,否则返回False&/returns&
&&&&&&&&&&&&public static bool IsFirst(string appId)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& bool ret =
&&&&&&&&&&&&&&& if (OpenMutex(0x1F0001, 0, appId) == IntPtr.Zero)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&CreateMutex(IntPtr.Zero, 0, appId);
&&&&&&&&&&&&&&&&&&&&ret =
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
&&&&&&&&&&&&[DllImport(&Kernel32.dll&, CharSet = CharSet.Auto)]
&&&&&&&&&&&&private static extern IntPtr OpenMutex(
&&&&&&&&&&&&&&& uint dwDesiredAccess,&&// access
&&&&&&&&&&&&&&& int bInheritHandle,&&& // inheritance option
&&&&&&&&&&&&&&& string lpName&&&&&&&&& // object name
&&&&&&&&&&&&&&& );
&&&&&&&&&&&&[DllImport(&Kernel32.dll&, CharSet = CharSet.Auto)]
&&&&&&&&&&&&private static extern IntPtr CreateMutex(
&&&&&&&&&&&&&&& IntPtr lpMutexAttributes,&&// SD
&&&&&&&&&&&&&&& int bInitialOwner,&&&&&&&&&&&&&&&&&&&&&&&// initial owner
&&&&&&&&&&&&&&& string lpName&&&&&&&&&&&&&&&&&&&&&&&&&&& // object name
&&&&&&&&&&&&&&& );
⑤用计时器就是轮询的方法,消耗资源是没办法的,进程改变不知道对应什么事件,可以把时间间隔设长点
&&&&&&&&&&&&&&&&&&&&&&&&Graphics g = this.CreateGraphics();
&&&&&&&&&&&&g.Clear(this.BackColor);//用背景色来擦除
&&&&&&&&&&&&g.DrawLine();
&&&&&&&&&&&&this.Refresh();
⑦用INI文件来保存读写吧,用XML也行,我曾看到用一个类来读写静态数据,也可行
⑧这算简单处理字符串,不至于影响效率,只要你算法合理
天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
等 级:新手上路
哇这么快就有人回帖了。
我正郁闷第一个问题呢,昨天晚上改了下代码实现了,可是今天重写又发现了新问题
我一开始是用一个 1.txt - 记事本 的窗口实验,句柄确实获得了,可是没有效果。
然后用一个控件的句柄实现了,然后又用QQ一个聊天窗口的句柄也实现了,很奇妙。
新的问题出来了,如果有2个名字一样的窗口,如何锁定某个窗口的句柄?或者窗口的句柄ID是唯一的?
现在很多游戏反外挂会检测API使用情况,如果只使用findwindow和postmess去模拟键盘操作会很容易发现吗?
代码写的迷惑点有助于隐藏程序吗?
我就是被帖子里10楼的代码吸引到贵论坛的,呵呵,源码和封装的DLL我都看过了,因为仅仅略懂.NET,C#语言主攻,所以代码看不懂,DLL封装也不能加载,如果有.NET或者直接C#版的就好了。
①谢谢。但是如果这个窗口还要用到,还得再把样式改回来。有没有方法能让窗口实际已经运行,但是不调用show呢?
③thead.jion();线程的东西不经常用,能不能给一段简单的代码?谢谢
④非得用到API吗,我只想知道一个EXE是不是已经运行了。用某些操作报错的方法能不能更简单些?
⑦看来只有用外部文件了,呵呵,我这倒是有个类读写INI的,拿出来分享下。
程序代码:using S
using System.Collections.G
using System.T
using System.Runtime.InteropS
namespace Card1
&&& class IniFile
&&&&&&&&[DllImport(&kernel32&)]
&&&&&&&&private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
&&&&&&&&//参数分别为
&&&&&&&&//[section]
&&&&&&&&//key=val
&&&&&&&&//filePath是物理路径
&&&&&&&&[DllImport(&kernel32&)]
&&&&&&&&private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
&&&&&&&&public static void Write(string section, string key, string val, string filePath)
&&&&&&&&&&&&//string encodeval = Jiami.EnCode(val);
&&&&&&&&&&&&//Jiami.EnCode()是自己写的一个加密类,可以略过这一行
&&&&&&&&&&&&WritePrivateProfileString(section, key, encodeval, filePath);
&&&&&&&&public static string Read(string section, string key, string filePath)
&&&&&&&&&&&&StringBuilder temp = new StringBuilder(255);
&&&&&&&&&&&&GetPrivateProfileString(section, key,null,temp,255, filePath);
&&&&&&&&&&&&//return Jiami.DeCode(temp.ToString());//返回解密后的字符串
&&&&&&&&&&&&return temp.ToString();
[ 本帖最后由 lkwudi222 于
16:05 编辑 ]
来 自:河北石家庄
等 级:小飞侠
帖 子:975
专家分:2514
1.利用API可以找到相应的窗口,来激活所要的窗口。一般先用findwinow来找到窗口的句柄,至于有多个相同的窗口的话,虽然它们看起来没什么区别,其实它们的进程句柄是不同的。对不同的句柄操作就可以了。
2.说实话,现在的游戏对于senkeys之类的方法早就屏蔽了,以为外挂这么容易的话可就错了。现在流行的方法是&CALL&,例如一个游戏中,角色”攻击“怪物,一般先找分析游戏程序,找到“攻击“的函数,然后由外挂来调用这个函数(这些需要有一定的汇编知识,我是搞不定了,如果有心研究的,可以去“广海游戏论坛”去转转)。
4.1实例化窗口B类就可以了,在需要的时候调用show(),如果没有需要的话,可以不调用show().\
4.2用dispose(),有些资源用户无法真正的清理干净,因为C#的资源回收是由垃圾处理器在适当的时候自动处理的,用户无法控制这些。
4.3为什么要等几秒再执行下面的语句?如果没必要就不要了。
4.4..........
4.5把timer的间隔设大点,这样资源占用就少了。
4.6当然是先清除了再画了
4.7楼上说的不错,INI与XML都可以,.net有专门操作它们的方法。
4.8基本上来说,这个问题要看怎么来做了,使用数组,指针,stringbulder类,将提高效率。
[ 本帖最后由 athenalux 于
16:58 编辑 ]
等 级:蒙面侠
帖 子:1096
专家分:4969
1, findwindow,找的时候不止一个name参数吧,我记得,看看API吧,应该可以区分同名的Form的
2,这个得看反外挂程序怎么写了
3,其他语言的com组件在C#里也能使吧
4, ①可以调整Form的透明度为0
&&& ③代码找不到了
&&& ④用某些操作报错的方法也需要一个辨认的方法啊,除了API还能怎么辨认
天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
等 级:新手上路
谢谢楼上两位的回答。
进程注入那个组件我又试了一次发现能引用了,然后在一个Button的事件中中加上{
&&& HideProcess hideProc = new HideProcess();
&&& hideProc.HideCurrentProcess();
}运行起来点击按钮发现无反应,进程还在。
系统是XP SP3。
等 级:蒙面侠
帖 子:1096
专家分:4969
1,如果能引用,用对象浏览器打开看这个dll里面有什么
2,不能引用,用dll导出查看工具看看它导出了什么API
天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
等 级:蒙面侠
帖 子:1096
专家分:4969
我看了一下,没有封装hideProc.HideCurrentProcess();
天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
等 级:论坛游民
帖 子:99
专家分:67
等 级:新手上路
刚学,冒个泡.
版权所有,并保留所有权利。
Powered by , Processed in 0.024106 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved求助WINDOWS怎么判断模拟按键和实体键的区别的?_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:263,144贴子:
求助WINDOWS怎么判断模拟按键和实体键的区别的?收藏
这两天忽然发觉按下WIN之后再按下任意一个实体键,开始菜单是不会弹出来的.于是我想,是否可以通过这样做来屏蔽按下WIN键弹出开始菜单这个功能.因为完全屏蔽WIN键,WINDOWS的许多很好玩的快捷键也会跟着被用不了了就是按下WIN键的同时送一个无关的虚拟键给WINDOWS.但却失败了.于是猜测是否我的虚拟键按太快了.于是我在按下虚拟键之前又加了一个GetKeyState(VK_LWIN)&0的判断依然不可.郁闷了一会再猜测是否是因为发送的按键扫描码没有设置.于是设置了扫描码,但是依然失败.请问各位大牛,我的想法可否实现?上面我所做的哪里出问题了?
上海达内c++一般需要4-8周,就可以完全掌握.上海c++的费用根据培训课时定,120天从入门到精通..
我刚又将输入的一个键在钩子中return掉,然后再发送一个虚拟键(0XFF)给系统.这时却成功了...好神奇.但是这样并没有达到我的目的,因为除了按下WIN键之外还需要按下另外一个无关的键...好郁闷
直接把WIN键拦截掉,如果发现是组合键再一块发送消息
直接屏蔽WIN键行木
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或|  
|  
|  
|  
|  
只需一步,快速开始
查看: 4332|回复: 4
求问,晓之女神Wii模拟按键问题!
主题帖子积分
初级玩家, 积分 50, 距离下一级还需 50 积分
初级玩家, 积分 50, 距离下一级还需 50 积分
Rt~按一下方向键,会一下子前进好几格,不知道是设置的问题还是本来就是如此啊?求解答,多谢!
主题帖子积分
新手玩家, 积分 25, 距离下一级还需 5 积分
新手玩家, 积分 25, 距离下一级还需 5 积分
同问啊···这个我也不太清楚,有知道的进来解答一下
主题帖子积分
高级玩家, 积分 526, 距离下一级还需 74 积分
高级玩家, 积分 526, 距离下一级还需 74 积分
自己检查一下,Wiimote设置和Gamecube手柄设置有没有冲突
主题帖子积分
初级玩家, 积分 50, 距离下一级还需 50 积分
初级玩家, 积分 50, 距离下一级还需 50 积分
風駿 发表于
自己检查一下,Wiimote设置和Gamecube手柄设置有没有冲突
好的,问题已解决,多谢!
另外还有两问题想再问下,如果方便的话,不知道是否可以回答下?
一个是武器颜色失真,所有武器都是泛白色的,不知道海豚应如何设置?
一个是,用了成长率修正补丁以后,游戏不能正常进入了,只能从即时存档进,不知道这样的问题如何解决?
非常感谢!!
主题帖子积分
高级玩家, 积分 526, 距离下一级还需 74 积分
高级玩家, 积分 526, 距离下一级还需 74 积分
显示设置里,下方那些打着勾的一个个试试?具体哪个选项忘了
成长率补丁没用过,如果你是修改后一开游戏就有问题,那是修改出错……
如果是读取的即时存档无法使用正常存档,那是模拟器即时存档功能本身惹的祸
Powered by查看: 777|回复: 10
求助,模拟按键问题
阅读权限10
在线时间 小时
结帖率: (1/1)
我写了一个模拟按键的代码,但在写com的时候出现了c3o/m-,我查了一下键盘键值表及asc码表发现小写的c跟小键盘的3一样,小写的o与小键盘-号一样,小写的m键与小键盘/号一样,这个怎么解决,还有个问题就是我在编辑框输入小写的字母自动按键打不出,必须写大写字母自动按键才会写出小写字母,求各位大大帮帮忙解决一下,如有真心想帮忙的可以加我qq:,谢谢各位
我记得精易模块里有的
大小写都没事
我以前写过这个现在手机 发不了加我下Q晚上给你
可以自定义按键 和延迟
补充内容 ( 18:35):
键盘_键名取键代码 (编辑框1.内容 + “键”)
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至
可获得加分喔。友情提醒:本版被采纳的主题可在
帖子申请荣誉值,获得 1点 荣誉值,荣誉值可兑换终身vip用户组哦。快捷通道: →
阅读权限228
在线时间 小时
签到天数: 5 天结帖率: (2/2)
我记得精易模块里有的& &大小写都没事&&我以前写过这个现在手机 发不了加我下Q晚上给你& &可以自定义按键 和延迟
补充内容 ( 18:35):
键盘_键名取键代码 (编辑框1.内容 + “键”)
嗯,麻烦你了,这个真搞不懂为什么会这样&
热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!
您可以选择打赏方式支持他
阅读权限10
在线时间 小时
直接输入字符串&1234556&类似这样子的
可是游戏账号有字母的存在吖,不知道怎么解决&
您可以选择打赏方式支持他
阅读权限10
在线时间 小时
结帖率: (1/1)
我记得精易模块里有的& &大小写都没事&&我以前写过这个现在手机 发不了加我下Q晚上给你& &可以自定义按键&&...
嗯,麻烦你了,这个真搞不懂为什么会这样
您可以选择打赏方式支持他
阅读权限10
在线时间 小时
结帖率: (1/1)
直接输入字符串&1234556&类似这样子的
可是游戏账号有字母的存在吖,不知道怎么解决
您可以选择打赏方式支持他
阅读权限228
在线时间 小时
签到天数: 5 天结帖率: (2/2)
易语言自带的&&必须要大写
那输入大写的话还要加shift按键,对吧,可我现在是有些键的asc码跟小键盘冲突了,输入一个可模拟按键写出的是两个&
您可以选择打赏方式支持他
阅读权限10
在线时间 小时
结帖率: (1/1)
易语言自带的&&必须要大写
那输入大写的话还要加shift按键,对吧,可我现在是有些键的asc码跟小键盘冲突了,输入一个可模拟按键写出的是两个
您可以选择打赏方式支持他
阅读权限228
在线时间 小时
签到天数: 5 天结帖率: (2/2)
加我了没 & &
你的三个问题都是什么吖,不知道答案没法加你&
您可以选择打赏方式支持他
阅读权限10
在线时间 小时
结帖率: (1/1)
你的三个问题都是什么吖,不知道答案没法加你
您可以选择打赏方式支持他
阅读权限228
在线时间 小时
签到天数: 5 天结帖率: (2/2)
随便填就好了
我加你了,名字叫-.-&
您可以选择打赏方式支持他
精易论坛 - 有你更精彩 /1
还在为繁琐填表而纠结?还是为不能多账户切换而苦恼?或者是pc端与手机端无法跨越?更为数据封包无法直达而心生倦怠?来post魔鬼特训班,让你在编程的路上走的更远 &
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
Powered by求助,大漠模块模拟按键问题~~_易语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:128,330贴子:
求助,大漠模块模拟按键问题~~收藏
我写了一个模拟按键的代码,但在编辑框写com的时候模拟按键写出了c3o/m-,我查了一下键盘键值表及asc码表发现小写的c跟小键盘的3一样,小写的o与小键盘-号一样,小写的m键与小键盘/号一样,这个怎么解决,还有个问题就是我在编辑框输入小写的字母自动按键打不出,必须写大写字母自动按键才会写出小写字母,求各位大大帮帮忙解决一下,如有真心想帮忙的可以加我qq:,谢谢各位
学习易语言,别人掏空你的口袋,我来武装你的大脑,涉及英语/职场/生活等任何技能!这个双11,给你好课,只为成就更好的你--各种生活职业技能随意get!
谁告诉你键码都一样的了?键盘每个键 包括小键盘都不是一样的.你资料看错了.
资料几毛钱买的
asc码范围0到255,包括了所有按键
.版本 2延时 (3000).计次循环首 (取文本长度 (帐号.内容), 计次)
代码 = 取代码 (帐号.内容, 计次)
.判断开始 (代码 = 64)
上档按键 (50)
.判断 (代码 = 46)
按键_按下 (190)
.判断 (代码 = 113)
按键_按下 (81)
.判断 (代码 = 99)
按键_按下 (67)
.判断 (代码 = 111)
按键_按下 (#退格键)
按键_按下 (79)
.判断 (代码 = 109)
按键_按下 (#退格键)
按键_按下 (77)
按键_按下 (取代码 (帐号.内容, 计次)).计次循环尾 ()这个是代码,如果我把退格键去掉,编辑框内输入com会打出c3o/m-
,而且会打两遍,不知道怎么变成一遍
Asc\Chr转换
用精易的文本_投递()
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 淘宝 有问题向你求助 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信