我做了一个登陆器程序,打开登陆器登陆游戏后,登陆器自动隐藏了 我再次新打开登陆器,想把隐藏的登陆器显示出来 这一块如何发信息能让隐藏的登陆器显示出来呢 我已做好只运行一个程序,只差最后这步,把隐藏的登陆器再次激发显示 哪个位位帮帮忙给写个例子 谢谢 一个朋友回得了我,说是用热健 
------------------------------------------------------ 
声明函数和类型 private 
    hotkeyid :integer; 
    procedure WMhotkeyhandle(var msg:Tmessage); message wm_hotkey; //最小化或者隐藏程序响应热键 注册热键 hotkeyid:=GlobalAddAtom(pchar('UserDefineHotKey'))-$C000; //取值范围 
registerhotkey(handle,hotkeyid,mod_Alt,90);//注册热键 if (msg.LParamHi=90) and(msg.lparamLo=mod_Alt) then //相应代码 
form1.Show;/显示窗体 注销热键 unregisterhotkey(handle,hotkeyid); 
DeleteAtom(HotKeyID); 
  
------------------------------------------------------------ 程序只允许运行一次 
在程序打开已隐藏的情况下 
如何把热健激活代码发送给正在执行的程序显示出来 程序在那运行着呢,无论我如果点击桌面上的程序图标也没有用,因为该程序已经在运行 即然无法再次运行,那如何执行发送代码的命令呢 程序一次运行的处理。在程序的最开始部分。还没激活窗体。

解决方案 »

  1.   


    var
      hMutex: HWND;
      iRet: integer;
    begin
      Application.Initialize;
      hMutex := CreateMutex(nil,False,PChar(FMutex));
      iRet := GetLastError;
      if iRet <>ERROR_ALREADY_EXISTS then
      begin
        Application.CreateForm(TForm1, Form1);
        Application.Run;
      end
      else
      begin
        keybd_event(VK_ALT,0,KEYEVENTF_EXTENDEDKEY or 0,0);
        keybd_event($90,0,0,0);
        keybd_event($90,0,KEYEVENTF_KEYUP,0);
        keybd_event(VK_ALT,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
      end;
      ReleaseMutex(hMutex);
    end.上面的代码放到工程文件的.dpr文件中,然后在你的WMhotkeyhandle过程中检测到热键时,判断程序是否处于隐藏状态,如果是,MainForm.Show就可以了。
      

  2.   

    进程快照,CreatToolHelp32SnapShot,找到进程之后FindMainWindow,然后SetActiveWindow