国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

如何使程序在運(yùn)行時(shí)自動(dòng)注冊(cè)ActiveX控件

2019-11-18 18:29:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
          編寫(xiě)Delphi應(yīng)用程序時(shí),經(jīng)常會(huì)遇到一些ActiveX控件[注:擴(kuò)展名為OCX的控件或DLL的類(lèi)型庫(kù)],它們?yōu)閼?yīng)用程序的開(kāi)發(fā)提供了簡(jiǎn)單的操作途徑。然而,這些程序在發(fā)布的同時(shí),面臨ActiveX控件注冊(cè)問(wèn)題。解決途徑:一、用安裝程序制作打包文件,往往會(huì)給增加程序本身的大小,系統(tǒng)重裝時(shí),則必須重新安裝它;二、用程序本身進(jìn)行代碼編寫(xiě)函數(shù)的形式處理它。
使用方法分為兩種:
一、直接把可視化的ActiveX控件放到程序中;
二、運(yùn)行時(shí)根據(jù)需要實(shí)時(shí)建立。
如果是直接使用,則應(yīng)用程序在初始化的過(guò)程中會(huì)自動(dòng)尋找、創(chuàng)建所需的ActiveX控件,如果控件沒(méi)有注冊(cè),初始化程序會(huì)產(chǎn)生一個(gè)異常,捕捉并處理這個(gè)異常。
在程序Form中加入一個(gè)新的方法:
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}

{-------------------------------------------------
標(biāo)準(zhǔn)ActiveX控件中,有兩個(gè)函數(shù)DLLRegisterServer 、DLLUnRegisterServer可調(diào)用,
其中函數(shù)用于注冊(cè)控件,用于卸載控件。我們可用LoadLibrary裝載DLL/OCX文件,用
GetProcAddress獲取DLLRegisterServer和DLLUnRegisterServer兩個(gè)函數(shù)的指針,然
后再直接運(yùn)行這兩個(gè)函數(shù)即可實(shí)現(xiàn)注冊(cè)和卸載ActiveX控件的操作,從而代替Windows
系統(tǒng)的RegSvr32.exe實(shí)現(xiàn)ActiveX控件的注冊(cè)和卸載。
--------------------------------------------------}
{-------------------------------------------------
參數(shù)說(shuō)明:
sOleFileName 一個(gè)DLL或OCX文件名;
OleAction 表示注冊(cè)操作類(lèi)型:1表示注冊(cè),0表示卸載
返回值:True表示操作執(zhí)行成功,F(xiàn)alse表示操作執(zhí)行失敗
--------------------------------------------------}
function OLERegister(sOleFileName: String; OleAction: Byte):Boolean;
const
  RegisterOle = 1; //注冊(cè)
  UnRegisterOle = 0; //卸載
type
  TOleRegisterFunction = function: HResult; //注冊(cè)或卸載函數(shù)原型
var
  hLibraryHandle: THandle; //由LoadLibray返回的DLL或OCX句柄
  hFunctionAddress: TFarProc; //DLL或OCX中的函數(shù)句柄,由GetProAddress返回
  RegFunction: TOleRegisterFunction; //注冊(cè)或卸載函數(shù)指針
begin
  Result := False;
  //打開(kāi)文件,返回DLL或OCX句柄
  hLibraryhandle := LoadLibrary(PChar(SOleFileName));
  if (hLibraryHandle > 0) then //DLLakg OCX句柄正確
  try
    //返回注冊(cè)或卸載函數(shù)指針
    if (OleAction = RegisterOle) then  //返回注冊(cè)函數(shù)指針
      hFunctionAddress := GetProcAddress(hLibraryhandle,PChar('DLLRegisterServer'))
    else //返回卸載函數(shù)指針
      hFunctionAddress := GetProcAddress(hLibraryhandle,PChar('DLLUnRegisterServer'));
    if (hFunctionAddress <> nil) then //判斷注冊(cè)或卸載函數(shù)是否存在
    begin
      RegFunction := TOleRegisterFunction(hFunctionAddress); //獲取操作函數(shù)的指針
      if RegFunction >=0 then  //執(zhí)行注冊(cè)或卸載操作,返回值>=0表示執(zhí)行成功
        Result := True;
    end;
  finally
    FreeLibrary(hLibraryHandle); //關(guān)閉已打開(kāi)的文件
  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方法賦值給系統(tǒng)Application變量,在主Form的OnCreate事件中。
procedure TAutoRegActiveXFrm.FormCreate(Sender: TObject);
var
  DemoOcx: Variant; //變量聲明
begin
  Application.OnException := CheckException;
  //是否產(chǎn)生類(lèi)名稱(chēng)字符串錯(cuò)誤
  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('控件注冊(cè)失敗,程序?qū)o(wú)法正常運(yùn)行',PChar('注冊(cè)控件'),MB_OK+MB_ICONERROR);
        Application.Terminate;
      end;
    end;
  end;
end;

end.


上一篇:QQ尾巴病毒的發(fā)送原理分析

下一篇:動(dòng)態(tài)創(chuàng)建ClientDataSet的表定義

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門(mén)圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
亚洲精品视频在线免费| 国产va在线观看| av在线不卡网站| 高清色视频在线观看| 久久久久久久久久久久网站 | 91在线中文| 国产成人精品综合网站| 国产精品合集一区二区| 青草视频在线播放| 国产精品二线| 天天操人人干| 亚洲天堂久久久| 一级二级三级在线观看| www.91在线播放| 成人亚洲一区二区三区| 中文字幕第一页av| 国产精品臀控福利在线观看| 九九在线免费视频| 国产精品探花在线| 亚洲第一成人在线视频| 国自产拍在线网站网址视频| 中文字幕视频免费在线观看| 国产91足控脚交在线观看| 亚洲sss视频| 中文字幕在线免费| av免费在线播放| 最新av中文字幕| 性网站在线观看| 国产精品入口麻豆免费看| 久久久久久久久久久久久91| 国产九九在线| 欧美日韩**字幕一区| 国产激情在线| 国产理论电影在线| 九九热免费在线视频| 亚洲精品影院在线| 国产porny蝌蚪视频| 国产理论在线观看| 丁香婷婷在线| 亚洲妇熟xxxx妇色黄| 国产激情视频在线观看| 天天操夜夜操天天射| 日本在线天堂| 亚洲www色| а天堂8中文最新版在线官网| a√在线视频| 激情在线视频播放| 91青青在线视频| 国产精品久久久久久久牛牛| 国产在线观看色| 高潮毛片在线观看| 国产麻豆精品高清在线播放| 国产理论在线观看| 国产女主播在线| 国产视频精品久久| 国产叼嘿网站免费观看不用充会员| 国产免费黄色| √天堂资源地址在线官网| 最新国产在线精品91尤物| 国产一级网站视频在线| 国产精品久久麻豆| 在线观看中文字幕| 九色视频网站| 国产人成网在线播放va免费| 国产不卡精品一区二区三区| 精品国产福利一区二区在线| 亚洲私人影吧| 国产中文字幕在线视频| 天堂亚洲精品| 精品全国在线一区二区| jizz国产| 国产精品区一区二| 黄色国产在线| 在线看黄色av| 国产精品欧美色图| 国产中文第一页| 伊人春色在线| 国产乱xxⅹxx国语对白| 在线观看av资源网| 中文字幕国产视频| 热99re久久精品这里都是免费| 国产美女视频一区二区三区| 国产精品免费视频一区一| 日本不卡影院| 国产三级自拍| 久久精品蜜桃| 亚洲综合激情六月婷婷在线观看 | 日韩国产成人| 国产精品ⅴa有声小说| 欧美黑人乱大交| 伊人电影在线观看| 国产色婷婷在线| 国产免费视频| av中文资源在线| 在线黄色国产电影| 午夜在线小视频| 毛片网站在线观看| jlzzjlzz欧美| a视频免费看| 亚洲午夜久久久久中文字幕| 国产精品麻豆一区二区三区 | 免费观看久久久久| 亚洲精品国自产拍在线观看| 国产福利图片| 国产精品黄页网站在线播放免费| 91超碰免费在线| 国产美女在线观看| 国产剧情av在线| 国产美女极品在线| 中文字幕第一页在线| 中文字幕在线观看av| 国产精品入口免费麻豆| 国产亚洲精品久久久网站好莱 | 激情综合丁香| 国产理论电影在线观看| 国产专区在线播放| 午夜av电影| 国产黄视频在线观看| 国产成a人亚洲精v品| 中文av在线播放| 97影院理论午夜| 四虎久久影院| 国产在线观看网站| 国产极品视频| 四虎成人免费| 天天操人人干| 伊人中文在线| 青青草免费在线视频| 国产秒拍福利视频露脸| 国产亚洲精品久久久久久青梅 | 欧美性猛交xxxx免费看蜜桃| 超碰在线网址| 丁香视频五月| 国产91在线视频蝌蚪| 天天草天天爽| 国产野外战在线播放| 四虎国产精品永久地址998| 丁香视频五月| av三级在线观看| 中文字幕在线观看av| av中文天堂在线| 国产精品久久久久永久免费看| 亚洲欧美国产另类首页| 国产美女视频一区二区二三区| 国产精品视频h| 国产麻豆精品高清在线播放| 在线国产一级| 最近免费中文字幕在线第一页| 国产黄色片在线观看| 国产在线视频自拍| 亚洲精品手机在线| 国产h色视频在线观看| 国产在线二区| 天堂网中文在线| 精品国产美女福利到在线不卡| 日本最新在线视频| 永久免费在线观看| 在线中文字幕资源| 国产对白在线| 91视频黄色| 中文字幕网站视频在线| 99热最新网址| 国产在线一区二区视频| 免费国产在线视频| 九九热免费在线视频| 久久er视频| 国产在线高潮| 91福利在线免费| 天堂在线免费av| 尤物在线网址| 国产黄色在线| 精精国产xxxx视频在线中文版| 国产区在线看| 精品无人乱码| av三级在线观看| 牛牛精品视频在线| 丁香婷婷在线观看| 成人超碰在线| 51成人精品网站| 在线观看av的网站| 激情视频国产| 国产成a人亚洲精v品| wwww亚洲| 国产深夜福利| 四虎影视成人永久免费观看视频| 久久久久久91精品色婷婷| 国产精品一区二区三区高清在线| 国产网红在线| free性亚洲| 国产精品ⅴa有声小说| 在线黄色av| 国产一区电影| 国产激情视频在线| 男人天堂v视频| 国产高清av| 国产麻豆麻豆| 欧美大交乱xxxx| 精品入口麻豆传煤| 最近中文字幕在线中文视频 | 牛牛热在线视频|