小弟想做一个监控autocad启动的程序,在确认autocad启动后,停止启动,转运行我做的程序。本人是个菜鸟,可能术语用的不对,大家见谅。
    希望大家多帮帮忙,如果各位大大觉得我的问题很肤浅,也请推荐含有相关资料的网站或书籍,也可以发到我的E-mail: [email protected] 我先谢谢各位了。
    主要相关:用什么方法去截获这个autocad启动的消息?
             这个消息是什么?
             截获后怎么kill?
             kill后怎么转我的程序?
    我现在是不知道从何下手,如何下手,希望大家多给些建议,或相关资料。谢谢谢谢~~~

解决方案 »

  1.   

    How to hook ShellExecute calls:http://cc.borland.com/ccweb.exe/listing?id=13444
      

  2.   

    谢谢,我现在已经可以基本的实现这一流程了,但是我有点疑惑和想法,希望帮忙分析分析,以下纯属个人观点,说的不对不要骂我啊:
        (1)我现在用的是WH_SHELL型的钩子,从HSHELL_WINDOWCREATED消息中去找ACAD.EXE的启动消息,会不会滞后,我是不是应该去HOOK CreateProcess,如果这样的话,请各位给个方向,最好能详细点,谢谢!
        (2)我现在用的是TerminateProcess(processhandle,0)来结束进程,这样是不是过于霸道?我在自己的机子上试了试,发现直接进入AUTOCAD可以有效的拦截(除了他的那个“封皮”),但是直接打开某个文件就会出问题,我个人猜想,双击的时候是不先有个CreateProcess,然后open该文件,共两个消息。我一发现WINDOWCREATED,就TerminateProcess,那他的OPEN操作会怎样?我这样做会不会对图纸文件有损害?我应该怎么办啊?是不是又要拦截他的CreateProcess,然后取消这个操作啊?我茫然。
         希望朋友帮帮我这个菜鸟,不管怎么说这是我毕业后第一份工作,我想干好它,希望大家多出点子,谢谢谢谢~~~~
      

  3.   

    能否把代码发给我参考参考了,我最近也在搞这个问题,谢谢。我的email:[email protected]不甚感激
      

  4.   

    最简单是在进程中KILL AUTOCAD,
      

  5.   

    啊  问题太简单了,没人理? 自己顶一下。
    顺问一下:我获得了ACAD进程的句柄,可不可以对它进行OLE开发,比如我打开个ACAD,把他的菜单屏蔽了啊?能的话怎么将Phandle转换成相应的类型啊??
    希望大家多帮帮忙,关心下这还有个没心思过双节的菜鸟啊