青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

如何實現ocx控件的注冊

Posted on 2009-09-03 22:05 S.l.e!ep.¢% 閱讀(1162) 評論(0)  編輯 收藏 引用 所屬分類: InstallShield
為了擴展應用程序的功能,許多系統都使用了或多或少的activex控件,這些控件必須在系統中注冊后才能夠使用。所以分發powerbuilder應用程序時,必須將系統所使用到的這些activex控件一起分發到用戶所使用的計算機上,并且注冊它們,只有這樣系統才能繼續使用這些控件。

  本文將提供三種實現方案,供讀者選擇使用。


  方法一:在installshield中使用程序對控件進行注冊


  installshield提供了一套編程語言,語法規則與c++語言非常類似,使用很容易掌握。選中“scripts”頁,你就可以看到安裝程序實際執行的源代碼,通過添加代碼可以實現許多功能。要注冊控件必須先將控件所需文件拷貝到目標計算機上,所以必須選擇適當的位置添加注冊語句。setupregistry()函數就是在文件復制完畢后進行系統注冊的地方,所以在這里注冊控件最合適。

  function setupregistry()

   number nrootkey, nresult;

   string szprogram, szcmdline, szmsg;

   string szhkey;

   string szkey, szclass, sznumname, sznumvalue;

  begin

   nresult = createregistryset( ″″ );

  //注冊程序中用到的ocx控件

  szprogram = ″regsvr32 /s″;

  //假設我們將myocx.ocx文件復制到〈commonfiles〉\my shared下

  szcmdline = commonfiles^″\\my shared\\myocx.ocx″;

  //給執行文件路徑加上
引號

  longpathtoquote (szcmdline, true);

  //執行生成的命令:例如regsvr32 /s ″c:\ program files\common files\my shared″。

   if (
launchappandwait(szprogram, szcmdline, wait) 〈 0) then

   messagebox(″myanimatex 控件注冊失敗!″, severe);

  endif;

  return nresult;

  end;


  方法二:用注冊表的方法實現


  大家知道,一般安裝程序結束后,為了使系統可以運行,經常需要重新啟動計算機,這是由于安裝程序修改了注冊表或者一些系統文件(autoexec.bat等),必須重新啟動才能生效。注冊表中有這樣一個主鍵,專門用于存放一些只運行一次的程序,存放在這里的一些執行命令只是在windows系統啟動時運行一次,之后便被清空,所以取名為runonce:


  hkey—local—machine\software\microsoft\windows\currentversion\runonce,所以我們可以在installshield中的注冊表編輯器中在該主鍵下添加要執行的代碼,來完成控件的注冊,如上圖所示。

  注意,此方法必須保證安裝程序彈出“是否重新啟動計算機”的對話框,這樣才能保證用戶知道必須重啟后才能正常使用本系統。


  方法三:在pb程序中實現


  安裝程序只需負責將ocx拷貝到相應路徑下,pb程序必須可以得到這個路徑,建議拷貝到windows系統目錄或者與執行文件同目錄下。

  具體代碼:

  //首先定義api函數,如果ocx控件在與執行文件同目錄下,使用getcurrentdirectory函數;如果ocx控件放在系統目錄下,使用getsystemdirectory函數。

  function ulong getcurrentdirectory(ulong nbufferlength,ref string lpbuffer) library ″kernel32.dll″ alias for ″getcurrentdirectorya″

  function uint getsystemdirectory(ref string lpbuffer,uint usize) library ″kernel32.dll″ alias for ″getsystemdirectorya″

  //在pb應用(application)的open事件,假設ocx控件在windows系統目錄下。

  string ls—pathname,ls—command

  ulong ll—requiredbuffersize

  ls—pathname = space(255)

  ll—requiredbuffersize = getsystemdirectory(ls—pathname,255)

  

  if ll—requiredbuffersize=0 or ll—requiredbuffersize〉255 then

  //報錯信息

  else

  ls—command = ″regsvr32 /s ″ + ″~″″ + ls—pathname + ″\myocx.ocx″ + ″~″″

   run (ls—command)

  …

  end if

  regsvr32后面的“/s”執行參數是為了隱藏注冊成功消息框。


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品五月天| 久久综合狠狠综合久久综青草 | 国产美女搞久久| 亚洲高清在线观看一区| 国产区亚洲区欧美区| 最新国产精品拍自在线播放| 在线观看的日韩av| 欧美一二三区在线观看| 午夜精品一区二区三区四区| 欧美日韩视频在线第一区| 欧美激情无毛| 最新中文字幕一区二区三区| 久久久久久网址| 久久欧美中文字幕| 国产在线成人| 久久精品99国产精品日本| 欧美中文在线视频| 国产欧美一区二区三区久久人妖 | 国产精品青草久久| 一区二区三区视频在线看| 在线亚洲伦理| 欧美丝袜一区二区三区| 一区二区三区.www| 亚洲在线播放| 国产农村妇女精品一区二区| 亚洲欧洲av一区二区| 欧美一区二区私人影院日本| 国产精品一二三四区| 亚洲欧美日韩国产综合精品二区| 午夜欧美大尺度福利影院在线看| 国产精品久久77777| 亚洲一区二三| 久久久久久久久蜜桃| 一区二区亚洲欧洲国产日韩| 久久久精彩视频| 欧美成在线观看| 一区二区高清视频在线观看| 国产精品v欧美精品v日韩精品| 一区二区欧美在线观看| 欧美在线91| 一区二区三区亚洲| 欧美激情精品久久久久久久变态 | 久久天天躁夜夜躁狠狠躁2022| 国产一区二区三区黄视频| 欧美一区二区三区免费观看| 老巨人导航500精品| 最新国产成人在线观看| 欧美日韩一区自拍| 午夜精品剧场| 亚洲国产一区二区精品专区| 亚洲在线观看| 激情五月婷婷综合| 欧美精品在线播放| 性伦欧美刺激片在线观看| 另类av导航| 亚洲午夜电影在线观看| 国产一区91| 欧美激情视频网站| 羞羞色国产精品| 亚洲区欧美区| 欧美一进一出视频| 亚洲精品中文字幕在线观看| 国产精品私拍pans大尺度在线| 久久亚洲影音av资源网| 在线一区亚洲| 欧美高清你懂得| 亚洲免费在线播放| 亚洲级视频在线观看免费1级| 国产精品啊啊啊| 美女性感视频久久久| 亚洲综合国产| 亚洲精品国产精品国自产观看浪潮 | 久久综合色88| 亚洲一区二区三区三| 欧美大片免费久久精品三p| 亚洲在线观看| 99re热精品| 在线欧美视频| 国产女人水真多18毛片18精品视频| 免费在线看一区| 欧美在线高清| 亚洲一区在线观看视频| 亚洲国产一区在线观看| 久久综合久色欧美综合狠狠| 亚洲欧美国产视频| 一二三四社区欧美黄| 亚洲国产欧美在线| 国内精品久久久| 国产欧美日韩三级| 国产精品美女久久久| 欧美日韩视频专区在线播放| 美女999久久久精品视频| 久久精品国产亚洲精品| 亚洲综合丁香| 亚洲综合999| 亚洲视频一区二区免费在线观看| 亚洲人成网站在线播| 欧美激情精品久久久久久免费印度 | 久久国产成人| 欧美亚洲一区二区三区| 亚洲欧美久久久| 亚洲宅男天堂在线观看无病毒| 99视频国产精品免费观看| 亚洲国产一区二区三区高清 | 久久婷婷国产综合尤物精品| 欧美亚洲三区| 久久aⅴ国产欧美74aaa| 欧美一区在线视频| 久久er精品视频| 久久久久久999| 久久亚洲色图| 欧美77777| 亚洲丁香婷深爱综合| 亚洲福利视频二区| 亚洲精品国产精品乱码不99按摩| 亚洲区国产区| 正在播放日韩| 欧美亚洲免费| 久久夜色精品一区| 欧美大片一区二区三区| 欧美黑人多人双交| 欧美日韩亚洲免费| 国产精品美女久久久久久久| 国产欧美视频一区二区三区| 国产主播精品| 亚洲人成在线观看一区二区 | 亚洲娇小video精品| 亚洲精选大片| 亚洲欧美综合精品久久成人 | 久久噜噜噜精品国产亚洲综合| 久久蜜桃资源一区二区老牛| 蜜臀久久久99精品久久久久久| 欧美黄污视频| 一区二区三区产品免费精品久久75 | 欧美欧美天天天天操| 国产精品99一区| 国产原创一区二区| 亚洲精品免费在线| 亚洲欧美日韩一区在线观看| 久久天天躁狠狠躁夜夜av| 欧美激情久久久| 亚洲视频专区在线| 久久亚洲精品视频| 欧美日韩另类国产亚洲欧美一级| 国产毛片精品国产一区二区三区| 国产综合香蕉五月婷在线| 亚洲精品你懂的| 性18欧美另类| 亚洲高清视频一区| 亚洲欧美视频一区二区三区| 欧美成年人视频网站欧美| 国产精品网站在线播放| 最新亚洲电影| 久久久精品动漫| 99成人免费视频| 久久色在线播放| 国产精品一区二区三区四区五区 | 欧美亚洲一级片| 欧美精品亚洲| 红桃视频国产精品| 亚洲免费视频网站| 欧美激情精品久久久久久黑人| 亚洲午夜极品| 欧美精品1区2区3区| 好看不卡的中文字幕| 亚洲综合国产| 亚洲精品久久久久久下一站| 久久久精品免费视频| 国产精品三级视频| 在线一区二区三区做爰视频网站| 欧美99在线视频观看| 亚洲欧美激情四射在线日| 欧美日韩精品在线| 亚洲茄子视频| 欧美成人久久| 久久久久国产精品一区三寸| 国产欧美日韩视频| 亚洲欧美国产77777| 亚洲精品永久免费| 欧美激情精品| 亚洲精品在线一区二区| 欧美成人r级一区二区三区| 欧美一区二区三区免费看 | 日韩视频免费在线| 欧美成人a视频| 久久综合亚州| 亚洲国产精品成人| 欧美成人三级在线| 另类成人小视频在线| 亚洲国产精品高清久久久| 免费久久99精品国产| 狂野欧美一区| 亚洲清纯自拍| 亚洲精品影院| 欧美视频日韩视频在线观看| 亚洲视频一区二区在线观看 | 欧美一区二区三区久久精品| 国产欧美一级| 久久香蕉国产线看观看av| 久久久天天操|