亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發(fā)設計 > 正文

如何使程序在運行時自動注冊ActiveX控件

2019-11-18 18:06:09
字體:
來源:轉載
供稿:網友
 

編寫Delphi應用程序時,經常會遇到一些ActiveX控件[注:擴展名為OCX的控件或DLL的類型庫],它們?yōu)閼贸绦虻拈_發(fā)提供了簡單的操作途徑。然而,這些程序在發(fā)布的同時,面臨ActiveX控件注冊問題。解決途徑:一、用安裝程序制作打包文件,往往會給增加程序本身的大小,系統重裝時,則必須重新安裝它;二、用程序本身進行代碼編寫函數的形式處理它。
使用方法分為兩種:
一、直接把可視化的ActiveX控件放到程序中;
二、運行時根據需要實時建立。
如果是直接使用,則應用程序在初始化的過程中會自動尋找、創(chuàng)建所需的ActiveX控件,如果控件沒有注冊,初始化程序會產生一個異常,捕捉并處理這個異常。
在程序Form中加入一個新的方法:
unit UAutoRegActiveX;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj; //加入ComObj單元

type
  TAutoRegActiveXFrm = class(TForm)
    PRocedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  protected
    { Public declarations }
    procedure CheckException(Sender: TObject; EAbort: Exception);
  end;

var
  AutoRegActiveXFrm: TAutoRegActiveXFrm;

implementation

{$R *.dfm}

{-------------------------------------------------
標準ActiveX控件中,有兩個函數DLLRegisterServer 、DLLUnRegisterServer可調用,
其中函數用于注冊控件,用于卸載控件。我們可用LoadLibrary裝載DLL/OCX文件,用
GetProcAddress獲取DLLRegisterServer和DLLUnRegisterServer兩個函數的指針,然
后再直接運行這兩個函數即可實現注冊和卸載ActiveX控件的操作,從而代替Windows
系統的RegSvr32.exe實現ActiveX控件的注冊和卸載。
--------------------------------------------------}
{-------------------------------------------------
參數說明:
sOleFileName 一個DLL或OCX文件名;
OleAction 表示注冊操作類型:1表示注冊,0表示卸載
返回值:True表示操作執(zhí)行成功,False表示操作執(zhí)行失敗
--------------------------------------------------}
function OLERegister(sOleFileName: String; OleAction: Byte):Boolean;
const
  RegisterOle = 1; //注冊
  UnRegisterOle = 0; //卸載
type
  TOleRegisterFunction = function: HResult; //注冊或卸載函數原型
var
  hLibraryHandle: THandle; //由LoadLibray返回的DLL或OCX句柄
  hFunctionAddress: TFarProc; //DLL或OCX中的函數句柄,由GetProAddress返回
  RegFunction: TOleRegisterFunction; //注冊或卸載函數指針
begin
  Result := False;
  //打開文件,返回DLL或OCX句柄
  hLibraryhandle := LoadLibrary(PChar(SOleFileName));
  if (hLibraryHandle > 0) then //DLLakg OCX句柄正確
  try
    //返回注冊或卸載函數指針
    if (OleAction = RegisterOle) then  //返回注冊函數指針
      hFunctionAddress := GetProcAddress(hLibraryhandle,PChar('DLLRegisterServer'))
    else //返回卸載函數指針
      hFunctionAddress := GetProcAddress(hLibraryhandle,PChar('DLLUnRegisterServer'));
    if (hFunctionAddress <> nil) then //判斷注冊或卸載函數是否存在
    begin
      RegFunction := TOleRegisterFunction(hFunctionAddress); //獲取操作函數的指針
      if RegFunction >=0 then  //執(zhí)行注冊或卸載操作,返回值>=0表示執(zhí)行成功
        Result := True;
    end;
  finally
    FreeLibrary(hLibraryHandle); //關閉已打開的文件
  end;
end;

{ TAutoRegActiveXFrm }

procedure TAutoRegActiveXFrm.CheckException(Sender: TObject;
  EAbort: Exception);
begin
  if EAbort is EOleSysError then
  begin
    if HResult(EOleSysError(EAbort).ErrorCode) = REGDB_E_CLASSNOTREG then
      OleRegister('D:/Flash.ocx',1);
  end
  else
    application.ShowException(EAbort);
end;
//將CheckException方法賦值給系統Application變量,在主Form的OnCreate事件中。
procedure TAutoRegActiveXFrm.FormCreate(Sender: TObject);
var
  DemoOcx: Variant; //變量聲明
begin
  Application.OnException := CheckException;
  //是否產生類名稱字符串錯誤
  try
    DemoOcx := CreateOleObject('Demo.Demo');
  except
    on EAbort:EOleSysError do
    if HResult(EAbort.ErrorCode) = CO_E_CLASSSTRING then
    begin
      if OleRegister('D:/Flash.ocx',1) then
        DemoOcx := CreateOleObject('Demo.Demo')
      else
      begin
        Application.MessageBox('控件注冊失敗,程序將無法正常運行',PChar('注冊控件'),MB_OK+MB_ICONERROR);
        Application.Terminate;
      end;
    end;
  end;
end;

end.


上一篇:發(fā)掘ListBox的潛力(二):鼠標拖放插入點提示

下一篇:發(fā)掘ListBox的潛力(一):自動調整橫向滾動條寬度

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

91捆绑美女网站| 精品美女久久久久久免费| 99蜜月精品久久91| 这里只有精品久久| 蜜臀va亚洲va欧美va天堂| 美女又爽又黄免费视频| 精品二区在线观看| 妺妺窝人体色www看人体| 久久婷婷国产综合尤物精品| 二区视频在线观看| 澳门精品久久国产| 黄色片子在线观看| 欧美日韩免费不卡视频一区二区三区| 色94色欧美sute亚洲线路一久| 91社区视频| 成人在线观看高清| 国产精品香蕉| 国产极品精品在线观看| 亚洲国产精品yw在线观看| 日韩欧美猛交xxxxx无码| 亚洲精品久久久久久宅男| 亚洲欧美日韩综合精品网| 蜜桃精品一区二区| 午夜av免费在线观看| 小说区图片区图片区另类灬| 国产日韩网站| 久久人人97超碰精品888| 好吊色欧美一区二区三区四区| 欧美成免费一区二区视频| 黄色片视频网站| 黄色视屏网站在线免费观看| 在线成人激情黄色| 女生裸体视频网站免费观看| 国产成人午夜精品影院观看视频| 国产亚洲久一区二区| 精品精品国产高清一毛片一天堂| 小水嫩精品福利视频导航| 97精品视频在线看| 一本大道五月香蕉| 9i看片成人免费看片| 经典三级一区二区三区视频| 免费在线黄色电影| 女王人厕视频2ⅴk| 一区二区三区免费高清视频| 欧美不卡视频一区| 色综合久久中文字幕综合网| 久久久影视传媒| jizzjizz少妇亚洲水多| 国内精品视频在线播放| 日韩精品水蜜桃| 欧美一区,二区| 久久久成人精品一区二区三区| 最新69国产成人精品视频免费| 国产一区二区自拍视频| 老司机精品视频在线| 日本aⅴ亚洲精品中文乱码| 欧美一区二区影院| 波多野一区二区| 精品动漫一区| 欧美丰满老妇熟乱xxxxyyy| 91久久香蕉国产日韩欧美9色| 国产在线精品一区二区中文| 久久奇米777| 国产盗摄视频一区二区三区| 在线看国产日韩| 精品中文字幕视频| 日韩欧美亚洲日产国| 日韩少妇内射免费播放18禁裸乳| 亚欧在线免费观看| 狠狠色噜噜狠狠狠狠888奇米| 成人春色激情网| 日韩一区二区三区四区区区| 一级片免费看| 影音先锋久久资源网| 综合图区亚洲白拍在线| 777午夜精品福利在线观看| 97在线观看视频免费| 7777精品| 精品免费一区二区三区蜜桃| 97人妻精品一区二区三区动漫| 日本aaa在线观看| 啪啪av大全导航福利综合导航| 国精品一区二区三区| 日韩欧美一区在线| av无码av天天av天天爽| 一区二区亚洲精品| 国产精品2023| 国产精品影片在线观看| 天天插天天操天天干| 日日夜夜精品视频天天综合网| 91女神在线观看| 久久国产欧美| 一区二区三区 日韩| 亚洲美女屁股眼交| 免费国产在线观看| 国产精品**亚洲精品| 午夜精品久久久久久| 国产成人精品视频ⅴa片软件竹菊| 99久久婷婷国产综合精品青牛牛| 久久久久久国产精品无码| 香蕉av在线播放| 国产乱国产乱300精品| 日韩视频在线一区二区| 日本久久久久久久久久久久| 日韩在线国产精品| 26uuu亚洲电影| 久久久久久久波多野高潮日日| 日本污视频网站| 欧美极品jizzhd欧美仙踪林| 可以免费看av的网址| 国产欧美日韩亚洲一区二区三区| 亚洲AV无码乱码国产精品牛牛| 国产精品自产拍在线观| 青青草原综合久久大伊人精品| 影音av资源站| av爱爱亚洲一区| 制服诱惑一区二区| 成人午夜免费剧场| 99在线视频首页| 亚洲成人福利在线| 欧美色道久久88综合亚洲精品| 欧美aaaxxxx做受视频| 国产精品88久久久久久| 白白操在线视频| 一区二区三区四区高清精品免费观看| 日韩午夜电影av| 久久365资源| 亚洲成人在线视频网站| 久久久一区二区三区四区| 日本a人精品| wwwxxx黄色片| 日韩不卡在线观看日韩不卡视频| 日韩黄色大片| 精品国产一区二区三区不卡| www.激情小说.com| 在线播放欧美女士性生活| 亚洲国产日韩一区二区| 六月丁香在线视频| 国产精品成久久久久三级| 午夜精品一区二区三区视频免费看| 亚洲一二三四五六区| 亚洲一区二区三区乱码aⅴ| 青青青国产精品一区二区| 亚洲午夜未满十八勿入免费观看全集| 国产资源在线免费观看| 日韩欧美国产成人一区二区| 丝袜老师办公室里做好紧好爽| 亚洲七七久久综合桃花剧情介绍| 欧美一级特黄aaaaaa| 美女露出粉嫩尿囗让男人桶| 精品视频站长推荐| 亚洲视频在线免费看| 韩国av网站在线| 国产精品日本一区二区三区在线| 成人欧美一区二区三区在线观看| 亚洲另类色综合网站| 色综合色狠狠天天综合色| 麻豆国产原创| 暖暖视频日本免费| 国产精品三上| 动漫h在线观看| 手机av在线不卡| 国产一区日韩二区欧美三区| 日本一区高清| 国产真人真事毛片视频| 色噜噜一区二区| 国产探花视频在线播放| 国内自拍视频在线看免费观看| 福利电影在线| 欧美深夜福利| 激情成人在线观看| 欧美激情性做爰免费视频| 欧美1区免费| 99久久久久久中文字幕一区| 国产一区二区三区日韩欧美| 精品视频一二三区| 丰满的护士2在线观看高清| 性欧美精品一区二区三区在线播放| 亚洲成人资源在线| 国产网站免费观看| 视频一区在线播放| 亚洲综合二区| 午夜影院免费版| 97国产精品视频| 亚洲天堂在线播放| 在线观看国产精品入口| 欧美激情视频一区二区三区在线播放| 欧美激情一区二区三区在线视频观看| 日韩精品一区二区三区中文不卡| 依依成人精品视频| 久久这里只有精品8| 黄色aaaaaa| 国外成人性视频| 欧美成人一级| 一区二区三区四区av| 欧美乱做爰xxxⅹ久久久| 色成人综合网| 国产ts一区| 美女福利视频一区| 青青草成人在线| 国产淫片免费看| 久久国产综合精品| 精品日韩美女| 7777精品伊人久久久大香线蕉完整版| 玉足女爽爽91| 毛片网站大全| 亚洲国产精品v| 一区二区三区免费播放| 国产三级自拍视频| 亚洲影院中文字幕| 在线黄色免费观看| av成人在线电影| 国产99久久九九精品无码免费| 亚洲激情77| 亚洲经典在线看| 91免费公开视频| 欧洲在线视频一区| 99麻豆久久久国产精品免费| 在线国产日韩| 国产色婷婷亚洲99精品小说| h视频在线观看免费完整版| 免费看一级大黄情大片| 日韩久久电影| 久久网福利资源网站| 99色精品视频| 久久综合88中文色鬼| 青娱乐在线视频免费观看| 国产成人免费视频网站视频社区| www.日韩在线观看| 亚洲成人中文| 黄色av电影在线观看| 红杏aⅴ成人免费视频| 国产精品久久国产愉拍| 粉嫩粉嫩芽的虎白女18在线视频| 国产精品久久久久久久久久久久久久久久| 永久免费未视频| 777精品久无码人妻蜜桃| 天堂在线亚洲视频| 9l视频自拍蝌蚪9l视频成人| 欧美激情视频网址| 欧美浪妇xxxx高跟鞋交| 人妻中文字幕一区| 羞羞漫画网18久久app| 午夜精品在线视频| 久久久久国产精品午夜一区| 欧美1—12sexvideos| 五月天激情小说综合| 日韩电影在线一区| 免费看污片的软件| 中文字幕22页| 可以直接看的无码av| 日韩欧美中文第一页| 蜜臀av无码一区二区三区| 久久久久亚洲精品| 人人狠狠综合久久亚洲婷婷| 亚洲精品成a人| yourporn在线观看中文站| 久久99国产精品免费网站| 999热精品视频| wwwwxxxx在线观看| 捆绑调教美女网站视频一区| 日本色护士高潮视频在线观看| 久久99热狠狠色一区二区| 精品国产一区二区三区噜噜噜| 中文乱码免费一区二区| 久久午夜免费视频| 亚洲乱码精品| 一二三区精品视频| 国产一区二区三区在线观看精品| 成人精品视频99在线观看免费| 娇妻高潮浓精白浆xxⅹ| 一级片在线免费观看视频| 国产原厂视频在线观看| 日韩一区二区免费看| 国产在线一级片| 日韩电影免费在线观看中文字幕| 亚洲精品一区中文字幕电影| www.日本在线观看| 精品视频三区| 色多多视频网站| 国产精品欧美一区二区三区不卡| 欧美三区美女| 欧美三级美国一级| 国产精品成人免费一区二区视频| 国产精品一区二区6| 三区四区在线视频| 亚洲欧美日本一区二区三区| 国产免费一区| 久久亚洲影视婷婷| 猫咪av在线| 欧美风情在线视频| 免费试看一区| 内射中出日韩无国产剧情| 欧美激情网站在线观看| 久久天天躁狠狠躁夜夜躁2014| 小日子的在线观看免费第8集| 亚洲精品99久久久久中文字幕| 亚洲午夜久久久久| 亚洲欧洲三级| 91九色蝌蚪国产| 成人一区在线看| 7799精品视频天天看| 九热这里只有精品| 一区二区三区**美女毛片| 黄页网站在线观看| 夜夜爽av福利精品导航| 亚洲人成无码网站久久99热国产| 亚洲国产精品99| 国产自偷自偷免费一区| 国产精品国产三级国产aⅴ原创| 精品成人久久久| 日韩中文字幕在线| 奇米一区二区三区| 亚洲妇女av| 女人喷潮完整视频| 亚洲天堂电影网| 国产黄色特级片| 少妇高清精品毛片在线视频| eeuss影院www免费视频| 国产精品入口免费| 91久久久在线| 久热这里有精品| 中文字幕在线看片| 国产精品久免费的黄网站| 精品一区二区三区高清免费不卡| 欧美日韩美女在线| 一级片在线观看免费| 久久国产精品色av免费看|