标题:关于vfp连编后的exe运行时,控件失效问题
只看楼主
山狼LS
Rank: 2
来 自:河南商丘
等 级:论坛游民
威 望:1
帖 子:83
专家分:31
注 册:2015-9-9
结帖率:90%
已结贴  问题点数:20 回复次数:19 
关于vfp连编后的exe运行时,控件失效问题
我做了一个简单的查询表单,由于用到日期内查询,所以加了个Microsoft date and time picker日历控件,在做程序的机子上运行没问题,但是连编之后在别的机子上运行提示找不到控件,于是我找到那个空间文件,复制到了根文件夹,但是还是不能用提示没注册之类的
搜索更多相关主题的帖子: Microsoft 文件夹 空间 日历 
2015-12-31 14:31
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:1 
控件要注册
2015-12-31 15:34
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:1 
控件注册  菜单:工具>选项>控件标签:activex控件
2015-12-31 15:41
山狼LS
Rank: 2
来 自:河南商丘
等 级:论坛游民
威 望:1
帖 子:83
专家分:31
注 册:2015-9-9
得分:0 
回复 3楼 tlliqi
我自己的电脑上有vfp已经注册了,但是运行的机子上没有vfp,怎么办

有人能,我就能!
2015-12-31 17:05
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 4楼 山狼LS
X度一下:控件注册
有一大堆
2015-12-31 19:50
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:1 
这就是安装程序要做的事情,除了程序文件、数据库及表文件要拷贝过去,还要将相应的OCX等控件在系统中注册。

活到老,学到老! http://www. E-mail:hu-jj@
2015-12-31 20:14
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:262
专家分:203
注 册:2012-12-20
得分:2 
这个问题提得好,确实Microsoft date and time picker日历控件要注册,
自己的电脑注册没任何问题,总不能帮每位用户去注册。

特别是VFP不用安装进行运行的程序,注册这个控件很成问题
2016-01-01 15:35
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
VFP程序代码中也可以完成:检测控件有无注册、注册控件和取消注册。
完善的程序就应该这样,尤其是使用第三方控件。
2016-01-01 16:00
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:262
专家分:203
注 册:2012-12-20
得分:0 
请版主给段程序学习学习
2016-01-01 16:05
asdf_123000
Rank: 4
等 级:业余侠客
威 望:1
帖 子:262
专家分:203
注 册:2012-12-20
得分:5 
*这是原来从网上搜集、整理后编制用于自己的小程序使用的OCX是否注册及未注册控件的自动注册函数。
CheckCtrlFileRegist("ctToolBar.ctToolBarCtrl.4")  && 检测与注册DBI工具条控件(ctToolBar)

****************************** 控件注册函数
Function CheckCtrlFileRegist
Parameters lcCheck

&& 调用形如:CheckCtrlFileRegist("ctGrid.ctGridCtrl.3")
&& 其中,经常用到的控件如下:
&& MS日期控件 MSComCt2.OCX 版本2-("MSComCtl2.DTPicker.2")(MS Date and Time Picker Control 6.0 (SP4))
&& 视频头控件 AVCap.OCX 版本1-("AVCap.AVCapture.1")
&& DBI表格控件 ctGrid.OCX 版本3-("ctGrid.ctGridCtrl.3"),版本1-("ctGrid.ctGridCtrl.1")
&& DBI下拉框控件 ctCombo.OCX 版本2-("ctCoLorCombo.ctColorComboCtrl.2")
&& DBI工具条控件 ctToolBar.OCX 版本4-("ctToolBar.ctToolBarCtrl.4")
&& DBI树形控件 ctTree.OCX 版本7-("ctTree.ctTreeView.7")

Local oErr As Exception, oErrExit As Exception
Local lcCtrlFile As Character, lcCtrl As Character, lcRun As Character
Local oCtrl As Object, oShell As Object
Local lcMess As Character

lcMess=''
lcCtrl=SubStr(lcCheck,1,At('.',lcCheck,1)-1)

Try
  oCtrl=CreateObject(lcCheck)
Catch To oErr
  oErr.UserValue="发现OCX控件["+lcCtrl+"]未注册!"
  =MessageBox(oErr.UserValue,0+64,'提示!')
  Do While .T.
     lcCtrlFile=GetFile('OCX','输入文件名:','确定',0,'选择需要操作的文件')
     If Not File(lcCtrlFile,1) OR Empty(lcCtrlFile) Then
        lcMess='程序所必要的控件文件'+Iif(Empty(lcCtrlFile),'','['+lcCtrlFile+']')+'不存在!继续注册么?'
        If 6=MessageBox(lcMess,4+32+256,'系统提示!') Then
           Loop
        Else
           Quit
        Endif
     Endif
     oShell=CreateObject('Wscript.shell')
     lcRun="Regsvr32 /S "+lcCtrlFile
     If oShell.Run('&lcRun',0,.T.) != 0 Then && 隐藏窗口运行并返回错误代码(不为0,运行出错,注册失败)
        lcMess='选定的控件文件'+lcCtrlFile+'不包含控件'+lcCtrl+', 注册失败!继续注册么?'
        If 6=Messagebox(lcMess, 4+32+256, '信息提示') Then
           Loop
        Else
           Quit
        Endif
     Endif
     Try
       oCtrl=CreateObject(lcCheck)
     Catch To oErrExit
       oErrExit.UserValue = "OCX控件["+lcCtrl+"]未注册成功 或 与要求版本不符合!"
       =MessageBox(oErrExit.UserValue,0+64,'提示!')
       Quit
     Finally
     EndTry
     lcMess='控件['+lcCtrl+']注册成功!'
     =MessageBox(lcMess, 0+64, '系统提示!',5000)
     Exit
  EndDo
Finally
  Release oErr, oErrExit, lcCtrlFile, lcCtrl, lcRun, oCtrl, oShell, lcMess
EndTry
EndFunc
2016-01-01 16:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-460708-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.419579 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved