我最近要调用一个Java程序,想把该程序在任务栏中的图标隐藏掉。采用ShowWindow函数,而这函数必需要程序句柄(Application.Handle)才能实现该功能,进程句柄、窗体句柄都不行。
  请问各位大侠,有什么办法可以得到该Java程序的句柄啊?或者其他办法实现该功能也行。急急急急急急急
  另外,我的Delphi程序要和该Java程序通信,采用哪种通信方式比较好啊?

解决方案 »

  1.   

    Java程序的句柄,你应该到JAVA版里去问
    Delphi程序要和该Java程序通信,可以用Socket或SendMessage两种方法,第二种方法只能在一台机器上用
      

  2.   

    大佬,我不懂Java、这个Java程序是由别人提供啊。
    Socket是可以实现,但是我的程序里已经用了Socket和服务器通信了,并且该Delphi程序调用了若干个不同的进程,各进程又用了2-4个socket和服务器通信,所以就不想在这几个客户端程序间采用Socket通信。
    SendMessage是可以指定接收对象发消息,但是据说Java里很难获取Windows消息的。
      

  3.   

    随手写的没有测试。用法: ShowAppWindow('任务揽上面的标题',SW_HIDE)
    procedure ShowAppWindow(AppTitle:string;Mode:Cardinal);
    var hwnd:hwnd;
    begin
     hwnd:=FindWindow('Shell_TrayWnd',nil);
     hwnd:=FindWindowEx(hwnd,0,'ReBarWindow32',nil);
     hwnd:=FindWindowEx(hwnd,0,'ReBarWindow32',nil);
     hwnd:=FindWindowEx(hwnd,0,'ToolbarWindow32','Running Applications');
     hwnd:=FindWindowEx(hwnd,0,nil,AppTitle);
     ShowWindow(hwnd,Mode);
    end;