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

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>
            99精品久久免费看蜜臀剧情介绍| 亚洲靠逼com| 美乳少妇欧美精品| 久久久久久久久久码影片| 亚洲欧美久久久| 午夜精品美女自拍福到在线| 亚洲中午字幕| 久久国产福利| 欧美伦理在线观看| 国产精品亚洲片夜色在线| 国产精品久久久久久久一区探花 | 国产精品多人| 国产日韩精品在线播放| 亚洲成人自拍视频| 宅男精品视频| 久久综合色婷婷| 亚洲激情黄色| 在线观看日韩国产| 91久久精品美女| 亚洲女同精品视频| 免费美女久久99| 亚洲婷婷综合久久一本伊一区| 欧美主播一区二区三区美女 久久精品人| 久久久久久一区二区三区| 欧美激情久久久| 国产一区二区中文| 亚洲视频 欧洲视频| 噜噜噜91成人网| 亚洲无亚洲人成网站77777| 久久综合狠狠综合久久激情| 国产精品家庭影院| 亚洲精选大片| 免费成人av在线看| 亚洲欧美日韩在线观看a三区| 欧美二区在线播放| 国内精品美女在线观看| 亚洲综合日韩中文字幕v在线| 欧美肥婆在线| 久久精品盗摄| 国产亚洲欧美色| 小辣椒精品导航| 日韩一区二区精品| 欧美福利视频在线观看| 在线播放中文一区| 久久精品国产清高在天天线| 一区二区欧美视频| 欧美另类视频| 亚洲精品在线观| 欧美激情第一页xxx| 久久久久久有精品国产| 国产午夜精品全部视频播放| 香蕉av777xxx色综合一区| 亚洲伦伦在线| 欧美日韩亚洲天堂| 这里是久久伊人| 一区二区三区四区五区在线| 欧美欧美天天天天操| 夜夜嗨av一区二区三区中文字幕| 亚洲二区在线视频| 欧美成人精品1314www| 亚洲国产99精品国自产| 欧美阿v一级看视频| 美女爽到呻吟久久久久| 亚洲日本成人网| 亚洲精品四区| 国产精品久久久久久妇女6080| 亚洲午夜在线观看| 亚洲视频中文| 国内精品国产成人| 欧美成人亚洲| 欧美国产日韩亚洲一区| 99综合精品| 在线亚洲高清视频| 国产日韩一区在线| 久久综合久久久久88| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲国产婷婷综合在线精品| 欧美好吊妞视频| 欧美日韩p片| 亚洲欧美精品一区| 欧美一区二区网站| 亚洲欧洲一区二区在线观看 | 久久精品男女| 久久久久中文| 一区二区三区欧美亚洲| 亚洲一区二区高清视频| 国产亚洲一区二区三区| 欧美黄色aa电影| 欧美日韩精品一区二区天天拍小说 | 久久亚洲一区| 在线一区二区视频| 亚洲伊人网站| 亚洲国产精品第一区二区三区| 亚洲激情一区二区| 国产区精品在线观看| 欧美jizz19性欧美| 欧美午夜欧美| 美女精品一区| 欧美系列一区| 欧美激情综合色| 国产热re99久久6国产精品| 亚洲国产日韩一级| 韩日成人av| 在线亚洲伦理| 国产精品久久福利| 欧美黄色小视频| 国产精品国产三级国产专区53| 久久天天躁狠狠躁夜夜av| 欧美精品尤物在线| 老司机67194精品线观看| 欧美日韩亚洲天堂| 亚洲第一精品夜夜躁人人爽| 国产日韩综合一区二区性色av| 亚洲风情在线资源站| 国产亚洲美州欧州综合国| 亚洲免费激情| 亚洲啪啪91| 欧美一区二区三区在线播放| 中文一区二区| 欧美国产精品专区| 欧美激情乱人伦| 激情成人综合| 亚洲欧美综合一区| 亚洲一区二区影院| 欧美精品一区在线播放| 免费中文日韩| 国内精品久久久久伊人av| 亚洲一级在线观看| 亚洲影视中文字幕| 欧美高清视频免费观看| 欧美电影在线播放| 亚洲大片在线| 久久精品国产77777蜜臀| 欧美在线高清| 国产精品久久99| 中文国产成人精品| 99视频热这里只有精品免费| 亚洲国产精品第一区二区| 久久久久久久久久久久久久一区 | 在线观看亚洲a| 欧美伊人久久大香线蕉综合69| 性色av香蕉一区二区| 欧美色中文字幕| 一区二区三区www| 午夜免费电影一区在线观看| 国产精品国产三级国产专播精品人 | 女女同性精品视频| 欧美不卡视频| 亚洲福利视频网站| 欧美多人爱爱视频网站| 亚洲国产小视频| 亚洲视频图片小说| 国产精品家教| 欧美主播一区二区三区美女 久久精品人| 欧美在线免费观看视频| 亚洲裸体视频| 一区二区三区四区五区在线| 欧美日韩精品伦理作品在线免费观看 | 宅男噜噜噜66一区二区| 欧美日韩蜜桃| 亚洲欧美日韩成人高清在线一区| 欧美在线一级视频| 狠狠色噜噜狠狠狠狠色吗综合| 老司机aⅴ在线精品导航| 91久久精品国产91性色| 一本色道久久综合狠狠躁篇的优点| 欧美日韩中文字幕日韩欧美| 亚洲在线第一页| 欧美aa在线视频| 亚洲女人小视频在线观看| 一区二区三区在线免费观看| 欧美久久精品午夜青青大伊人| 一区二区三区成人精品| 久久这里有精品视频| 一本高清dvd不卡在线观看| 国产精品成人国产乱一区| 久久久久久一区| 亚洲午夜免费视频| 亚洲黄页视频免费观看| 欧美中文字幕不卡| 日韩视频免费在线观看| 国产精品综合色区在线观看| 美女91精品| 欧美一站二站| 亚洲一区二区三| 亚洲欧洲综合另类在线| 欧美在线三级| 亚洲午夜一区| 亚洲每日在线| 国产一区二区三区黄视频| 欧美日韩精选| 亚洲高清自拍| 欧美伦理视频网站| 欧美淫片网站| 亚洲一级一区| 亚洲网站在线| 亚洲精品日韩久久| 麻豆精品传媒视频| 久久精品二区亚洲w码| 亚洲在线日韩|