[英]Delphi Outlook 2007/2010
我在Windows 7 32位操作系統上使用Delphi 7和Outlook 2010。
我的問題是我無法檢測到我的前景是否正在運行。 我嘗試了以下代碼。
uses
ComObj, ActiveX;
function IsObjectActive(ClassName: string): Boolean;
var
ClassID: TCLSID;
Unknown: IUnknown;
begin
try
ClassID := ProgIDToClassID(ClassName);
Result := GetActiveObject(ClassID, nil, Unknown) = S_OK;
except
Result := False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsObjectActive('Outlook.Application') then ShowMessage('Outlook is running !');
end;
使用上面的代碼,delphi沒有檢測到Outlook正在運行。
你能告訴我有沒有什么好的替代方法。 在我的應用程序中,我正在使用Outlook Redemption,因此Redemption中有什么內容,以便我可以檢測到outlook正在運行嗎?
您可以檢查outlook.exe進程是否正在運行。
我希望這有幫助。
library IsCra;
uses
SysUtils,
Classes,
Windows,
TlHelp32;
{$R *.res}
function AppIsRunning(AApp: String): Boolean; stdcall;
var
h: THandle;
p: TProcessEntry32;
begin
Result := False;
p.dwSize := SizeOf(p);
h := CreateToolHelp32Snapshot(TH32CS_SnapProcess, 0);
try
Process32First(h, p);
repeat
Result := AnsiUpperCase(AApp) = AnsiUpperCase(p.szExeFile);
until Result or (not Process32Next(h, p));
finally
CloseHandle(h);
end;
end;
exports
AppIsRunning;
begin
end.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.