var
  h : HWND;
  ret : integer;
begin
  //office_title:指office的标题
  h := CreateMutex(nil, false, office_title);
  Ret:=GetLastError;
  If Ret=ERROR_ALREADY_EXISTS Then
   Begin
    ShowMessage('已经运行!');
    ReleaseMutex(hMutex);
    Exit;
   End
 else 
  //启动office

解决方案 »

  1.   

    ReleaseMutex(hMutex)这句错了,应该是:
    ReleaseMutex(h);
      

  2.   

    先找到窗体句柄,发送关闭消息
    procedure TForm1.Button1Click(Sender: TObject);
    var ls:hwnd;
    begin
    ls:=findwindow(nil,'microsoft access');
    sendmessage(ls,wm_syscommand,sc_close,0);end;
      

  3.   

    var hd:hwnd;
    begin
    d:=findwindow(nil,'microsoft excel');
    if d<>0 then
       sendmessage(ls,wm_close,0,0)
    else
       application.messagebox('aaa','ddd',mb_iconinformation+mb_ok);end;