請問如何在 Outlook Express 6/Outlook 2003/2007 上嵌入一個按鈕(Add-in程式) ? |
尚未結案
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
請問如何在 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
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
綜合數篇文章, 寫出了這段程式碼, 但是在 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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |