[虚心求教]后台窗口模拟按键;反外挂原理;进程隐藏;和一些WINFORM下的小问题。
问题比较多,麻烦各位了。(以下全部基于C#)1、
一直想做一个类似按键精灵的软件,前台的很简单,用SendKeys()就可以实现。但请问如何实现非活动窗口(非焦点)的按键模拟?
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
发完帖子后又奋战1小时,终于有了结果,哈哈哈哈,高兴中……
明天晚些时候尝试完美实现出来。HOHO。。。
2、
想问一下现在很多游戏都有自己的反外挂的技术,小弟想了解这个不是为了外挂技术。
反外挂策略除了扫描进程名、窗口名、代码特征以外,会不会很准确的通过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 于 2009-11-15 04:58 编辑 ]