線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1177
推到 Plurk!
推到 Facebook!

請問如何在 Outlook Express 6/Outlook 2003/2007 上嵌入一個按鈕(Add-in程式) ?

尚未結案
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-31 09:11:09 IP:210.69.xxx.xxx 訂閱
 請問如何在 Outlook Express 6/Outlook 2003/2007 上嵌入一個按鈕(Add-in程式) ?
謝謝 ^_^

(不使用付費 3rd Party 元件)

2.用Delphi制作Office的Com AddIn
> 4. 創建一個TcommandBarButton的OleServer類以連接到CommandButton並響應事件。
請問這個步驟的具體操作步驟為何 ?

Office2000(2003) 下 outlook,word 的 com addin 之 delphi實現!(整理摸索)
Add-in for MS Office Applications(Delphi 5)
>Next create an Active Server Object, from the ActiveX Library tab, too.
Delphi 7沒有看到

------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2010-12-30 18:12:52, 註解 無‧
pcboy 重新編輯於 2010-12-30 18:15:56, 註解 無‧
pcboy 重新編輯於 2010-12-30 18:50:08, 註解 無‧
pcboy 重新編輯於 2010-12-30 19:58:00, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-01-02 12:13:41 IP:203.73.xxx.xxx 訂閱
 
綜合數篇文章, 寫出了這段程式碼, 但是在 Outlook Express 上沒有看到新增的按鈕, 請問有人知道問題在哪嗎 ? 謝謝
[code delphi]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPI,
//ActiveX,
//ComObj,
//ComServ,
//Registry,
//SHLOBJ,
CommCtrl; // TTBBUTTON

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
TB_BTN_NEWFOLDER = 40962;
var
hWndToolbar, wnd: HWND;
// tbInfo: TTBButtonInfoA;
HandleToolbarWnd: HWND;

OEHandle : HWND; // Outlook Express Handle
SizableRebarHandle : HWND;
ReBarWindow32Handle : HWND;
ToolbarWindow32Handle : HWND;
tbInfo: TTBButtonInfoA;

BtnInfo: TTBBUTTON;
begin
OEHandle := FindWindow('Outlook Express Browser Class', nil);
if OEHandle <> 0 then // Outlook Express 是否啟動
begin
//prepare your BtnInfo
// HandleToolbarWnd:= FindWindowEx(ParentWndHandle, 0, 'ToolbarWindow32', nil);
// HandleToolbarWnd:= FindWindowEx(OEHandle, 0, 'ToolbarWindow32', nil);
// SendMessage(HandleToolbarWnd, TB_INSERTBUTTON, IndexOfBtn, LParam(@BtnInfo));
// SendMessage(HandleToolbarWnd, TB_INSERTBUTTON, 1, LParam(@BtnInfo));

// GetWnd = FindWindowEx(GetWnd, 0&, WndClassB, vbNullString)
SizableRebarHandle := FindWindowEx(OEHandle, 0, 'SizableRebar', nil);
if SizableRebarHandle <> 0 then
begin
// GetWnd = FindWindowEx(GetWnd, 0&, WndClassC, vbNullString)
ReBarWindow32Handle := FindWindowEx(SizableRebarHandle, 0, 'ReBarWindow32', nil);
if ReBarWindow32Handle<>0 then
begin
// GetWnd = FindWindowEx(GetWnd, 0&, WndClassD, vbNullString)
ToolbarWindow32Handle := FindWindowEx(ReBarWindow32Handle, 0, 'ToolbarWindow32', nil);
if ToolbarWindow32Handle<>0 then
begin
Label1.Caption := 'Outlook Express is running...';
//SendMessage(HandleToolbarWnd, TB_INSERTBUTTON, IndexOfBtn, LParam(@BtnInfo));
//SendMessage(HandleToolbarWnd, TB_INSERTBUTTON, 1, LParam(@BtnInfo));
SendMessage(hWndToolbar, TB_SETBUTTONINFO, TB_BTN_NEWFOLDER ,LParam(@tbinfo));
end
else
begin
Label1.Caption := 'Outlook Express does not run.';
end;
end;
end;
end;

end;

end.

[/code]
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2011-01-03 20:14:58, 註解 無‧
系統時間:2017-12-11 19:14:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!