今天实现拉在游戏里面按f12呼出对话框开始我是把对话框代码写到dll中通过dll呼出!后来我想不把对话框代码写到dll中我的想法是这样的,
exe通过调用dll中的sethook(dialog & x)对游戏进行挂钩!
首先我在exe创建个对话框对象
然后通过
这个对话框参数x把这个对象传到dll中的对话框对象y,然后在dll中调y.domodel
这个方法显示对话框呢!
我的思路是这样不知道对不!
希望高手告诉我要怎么做呢?需要那方面的知识需要看什么书!

解决方案 »

  1.   

    在这个板块里 搜索下 “键盘钩子”可以学不少,另外就是在线msdn里输入关键词
      

  2.   

    你这样是显示不出来的,你要在加载进程中显示对话框,要么你需要那段对话框的代码,要么你和你的EXE实现进程间通讯,方式有很多,去看看windows核心编程吧。
      

  3.   

    "后来我想不把对话框代码写到dll中"
    "这个对话框参数x把这个对象传到dll中的对话框对象y"
    根据上面你说的 ,dll中的对话框又是什么呢?  我还没有看懂
      

  4.   

    这样给你解释吧:进程A中创建了对话框x,你将x的句柄复制到进程B中(为了保证你在B中的句柄能够真实的指向进程A中的x,你需要做很多工作),然后在进程B中调用x.domodel().好了,你可能真的创建了一个对话框,它真的是在进程A的空间中的。但是要注意,这时进程A和进程B中都有一个句柄指向同一个对象,如果这个时候进程A突然崩溃,你这样的调用会不会有灾难性的结果?MS不提倡这样做,所以你为什么不在B中以非阻塞的方式对进程A发送一个消息,让A自己创建对话框呢? 一句话,sethook(dialog & x)中的&不支持跨进程的引用。你在DLL自己写入了实现代码,换成是我,我也会这么做。
      

  5.   

    对话框不写在DLL里,是无法注入到对方的进程里去的。不注入对方的进程,就不能在对方的全屏中出现的……