如何禁止一个程序的运行?
当用户双击要运行一个程序时,被我的程序禁止其进入内存运行。

解决方案 »

  1.   

    查找其窗口,
    做一个计时器:
    SendMessage(FindWindow("类名","标题"),WM_DESTROY,0,);
      

  2.   

    SendMessage(FindWindow("类名","标题"),WM_DESTROY,0,0);
      

  3.   

    用namespace extention。好像没有打错字吧!具体可以看msdn,
    大概思路是这样,每当ie启动的时候,会调用namespace extention的组件,
    每当用户的鼠标悬停,或者单机,双击一个文件时,就会调用组件的一个特定的方法,所以,只要写一个com组件并注册就行了。
    具体可以看
    mk:@MSITStore:D:\Microsoft%20Visual%20Studio\MSDN98\98VS\2052
      

  4.   

    to: binbin(BCB水王(不提倡大家向俺学习)) 
    你的方法不行。FindWindow时程序已进入内存了。
      

  5.   

    在你的程序中用CreateFile()以独享模式打开EXE文件,……
      

  6.   

    那就修改注册表,把exe文件的注册信息改掉,就象很多病毒木马那样,用户双击后调用的是你的程序,再由你的程序决定是否去调用目标程序.
      

  7.   

    我有个思路,不知道行不行
     在注册表里有一个键值(具体不记得了,可以见<核心编程>),在里面输入dll的路径,这样,当系统执行和图形相关的程序前,会首先加载该dll.
     这样,可以在dll加载的过程中通过GetModuleFileName()判断是否是你需要禁止执行的exe文件,如果是,那么直接蹦出个提示框(或者不提示),然后用TerminateProcess()(没敲错吧?*__*)终止程序运行.
                                                我没有实践把握,仅仅是个人的一个思路
      

  8.   

    在你做的这个程序中使用一个SHELL,将你不想运行的程序进行控制。
      

  9.   

    简单点,定时枚举所有进程,发现在禁止之列,杀
    复杂点HOOK
      

  10.   

    枚举?那已经运行了罗,而且定时?效率。
    杀复杂点用hook?用什么hook?而且效率?
      

  11.   

    我做过网吧游戏禁止系统,可以禁止指定的游戏运行。
    原理是一回事,用一个全局SHELL HOOK可以轻松搞定。
    不过,你所需要的是将你想禁止的程序的主窗口的CLASS名和标题进行扑获,
    程序启动时候,你获取他的主窗口CLASS以及标题进行比较,如果符合,直接KILL掉,不过,最好先发过QUIT MESSAGE,结束它的消息循环,否则,进程会清除不彻底。