一个ocx可能用在IE也或许其他exe程序
如何通过正在被使用的ocx获取到exe名称?

解决方案 »

  1.   

    兄弟,能详细点吗?procedure TForm1.Button1Click(Sender: TObject);
    var
      buf: array[0..MAX_PATH] of Char;
      hinst: HMODULE;
    begin
      hinst := GetModuleHandle('ttt.ocx');
      GetModuleFileName(hinst, buf, Length(buf));
      Showmessage(buf);
    end;
    测试发现不对!
      

  2.   

    你这是获取了ocx的路径,直接用GetModuleFileName(0, buf, Length(buf));
      

  3.   

    unsigned:
       老大,请问你这样怎么对应到'ttt.ocx'?我还是不开窍呀,能否就举这么个例子,获取正在使用'ttt.ocx'的执行程序列表(有可能是IE,Firefox,执行程序等。)?
      

  4.   

    这是没有办法得到的,只有当前的ocx的实例能够知道自己的当前进程是哪一个,无法知道别人,除非你列举整个系统当中的的进程信息,并通过匹配模块(Module)情况下取得。
      

  5.   

    写在OCX的内部,从OCX内部返回的只能是当前进程的。