1.用VB编写的东西怎么才能让它在任何电脑上都能运行那?
首先说明一点,VB编写的原代码只能在安装有VB编程环境的WIN9X以及WIN2000和WINXP的一些版本下能运行,在其他非WINDOWS操作系统无法运行.第二WINDOWS系统中未安装VB编程环境则需通过VB的PACKAGE & DEPLOYMENT 向导生成安装包(安装程序)来进行安装注册,方能运行,特别要注意,所开发的VB的EXE文件最好再无VB编程环境的WINDOWS系统安装来发现问题,你的VB生成的EXE文件能否运行.操作数据库的VB的EXE文件还需正确连接数据库,其它需要读写磁盘的VB的EXE文件所涉及的文件或文件夹的位置是在VB的EXE文件所认的位置.。
2.vb6为啥俺的控件不能用?用户机上安装程序运行时无反应俺建个工程
你的控件没有在用户机器上注册! 使用ActiveX控件可快速实现小型的组件重用、代码共享,从而提高编程效率,降低开发成本。
但是ActiveX控件对于最终用户并不能直接使用,因为ActiveX控件必须先在Windows中注册。注册ActiveX控件一般来说有六种途径,它们有各自的优点,运用范围也不同。
Regsvr32。exe注册 Regsvr32。
exe位于Windows目录的system子目录下。点击Windows的“开始→运行”菜单,在对话框中输入以下命令: regsvr32 netshare。
ocx &&注册netshare。 ocx控件 regsvr32 /u netshare。
ocx &&解除netshare。ocx控件的注册 如果netshare。
ocx文件不在system目录时,还必须在文件名前加上完整的路径。除了regsvr32应用程序之外,Microsoft在它的Web站点上还提供了一个称为regclean。
exe的程序,可以检查注册表并去掉丢失的组件在注册表中的条目。regclean。
exe除了可以删除“悬挂”的条目,它还提供一个“undo”文件帮助恢复错误的删除。 卧龙传说提醒:用regsvr32。
exe注册ActiveX控件虽然简单,但需要用户手工进行注册,在不用时还需手工解除注册。 VFP环境注册 在我们进行程序设计时,VFP本身提供一个注册ActiveX控件的方法。
进入VFP环境,选择“工具→选项”菜单,点击“控件”页,选中“ActiveX控件”单选按钮,在列表框里显示所有已经注册的ActiveX控件,这时,点击右边的“添加”按钮,选择需要注册的ActiveX控件文件,“确定”后完成注册。 也可以在表单设计器的表单控件工具栏里拖动“OLE”按钮到表单,在弹出的选择框里选中“插入控件”单选钮,同样点击右边的“添加控件”按钮,来完成新控件的注册。
卧龙传说提醒:本方法仅适合程序员在设计程序过程中手工进行,对用户而言,并没有实现在本地机上自动注册。 安装程序注册 大型应用软件一般都有一个安装程序,在安装程序中解决ActiveX控件的注册是较为理想的一种方案。
在用户执行安装程序时,这些ActiveX控件将自动在用户机器上安装并注册。 VFP7。
0光盘所带的InstallShield是目前较为流行的制作安装程序的工具,使用它可以制作出专业级的Setup安装程序,还可以注册应用程序使用到的ActiveX控件。 而且,在以后使用控制面板的“添加/删除程序”卸载该软件时,安装程序会自动注销掉以前注册的ActiveX控件。
加入代码注册 首先,定义一个注册控件的函数: Function MyRegsvr ( lpcRegFilename, lplIsreg ) If File(lpcRegFilename) lpcRegFilename = iif(llisreg, lpcRegFilename, [ /u ] + lpcRegFilename) Run /n regsvr32 &&lpcRegFilename Endif Return Endfunc 然后就可以通过以下语句来调用该函数,并完成ActiveX控件的注册了(卧龙传说提醒:一定要注意控件文件的路径哦)。 = MyRegsvr( "netshare。
ocx", 。T。
) &&注册netshare。ocx控件 = MyRegsvr( "netshare。
ocx", 。F。
) &&解除netshare。ocx控件的注册 注册函数注册 上面提到运行regsvr32。
exe应用程序将弹出注册是否成功的对话框,注意看内容“DllRegisterServer in netshare。ocx succeeded”或“UnDllregisterServer。
”
其实,通常每个可用的ActiveX控件都有DllRegisterServer、UnDllregisterServer这两个自注册函数包含在其中,我们可以用定义API函数的方法(Declare in 。 。
)来定义它,然后直接使用该函数来进行注册和反注册。
同样,我们先自定义一个注册函数(卧龙传说提醒:请注意DllRegisterServer、UnDllregisterServer的大小写): Function DllRegister (lpLibFileName,isReg) isReg = iif(type("isReg")="U", 。 T。
, isReg) lpProcName = iif(isReg, "DllRegisterServer", "DllUnregisterServer" ) Declare INTEGER (lpProcName) in (lpLibFileName) return &&lpProcName。 () Endfunc 然后,就可以通过该函数来完成ActiveX控件的注册了。
= DllRegister( "netshare。ocx", 。
T。) &&注册,返回0表示成功 = DllRegister( "netshare。
ocx", 。F。
) &&注销,返回0表示成功 Clear Dlls 试试,是不是没有了弹出框的烦恼! 卧龙传说提醒:该方法没有对ActiveX控件文件的验证,假如该控件没有有效的DllRegisterServer功能(即不具有自注册功能),也就找不到以上的两个API函数,照样会有错误信息弹出。 API函数注册 此方法的设计思路是:先将ActiveX控件载入内存,然后验证其有效性,最后直接在内存地址中执行其注册函数(DllRegisterServer、UnDllregisterServer)。
其编程方法是: 1、使用Windows API函数LoadLibrary载入ActiveX控件; 2、使用GetProcAddress函数获取ActiveX控件中注册函数DllRegisterServer(注销函数为DllUnregisterserver)指针; 3、使用CallWindowProc函数执行已载入内存的ActiveX控件注册函数(DllRegisterServer、UnDllregisterServer)。 上面所述的ActiveX控件注册方法各有特点。
经实际使用,效果良好。您可根据实际情况灵活选用。
3.VB要想获得电脑信息怎么办
'声明:一定在最前面(一定在最前面要不不行) Option Explicit ' 注册表关键字安全选项。
Const READ_CONTROL = &H20000 Const KEY_QUERY_VALUE = &H1 Const KEY_SET_VALUE = &H2 Const KEY_CREATE_SUB_KEY = &H4 Const KEY_ENUMERATE_SUB_KEYS = &H8 Const KEY_NOTIFY = &H10 Const KEY_CREATE_LINK = &H20 Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _ KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _ KEY_NOTIFY KEY_CREATE_LINK + READ_CONTROL ' 注册表关键字 ROOT 类型。 。
Const HKEY_LOCAL_MACHINE = &H80000002 Const ERROR_SUCCESS = 0 Const REG_SZ = 1 ' 独立的空的终结字符串 Const REG_DWORD = 4 ' 32位数字 Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location" Const gREGVALSYSINFOLOC = "MSINFO" Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO" Const gREGVALSYSINFO = "PATH" Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long ' 后面+ Public Sub StartSysInfo() On Error GoTo SysInfoErr Dim rc As Long Dim SysInfoPath As String ' 试图从注册表中获得系统信息程序的路径及名称。
If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then ' 试图仅从注册表中获得系统信息程序的路径。
。 ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then ' 已知32位文件版本的有效位置 If (Dir(SysInfoPath & "\MSINFO32。
EXE") "") Then SysInfoPath = SysInfoPath & "\MSINFO32。EXE" ' 错误 - 文件不能被找到。
Else GoTo SysInfoErr End If ' 错误 - 注册表相应条目不能被找到。 。
Else GoTo SysInfoErr End If Call Shell(SysInfoPath, vbNormalFocus) Exit Sub SysInfoErr: MsgBox "此时系统信息不可用", vbOKOnly End Sub '摁扭1:命名为:cmdSysInfo Private Sub cmdSysInfo_Click() Call StartSysInfo End Sub '摁扭1:命名为:cmdSysInfo '摁扭1:命名为:cmdSysInfo '摁扭1:命名为:cmdSysInfo '摁扭1:命名为:cmdSysInfo '摁扭1:命名为:cmdSysInfo '摁扭1:命名为:cmdSysInfo '摁扭1:命名为:cmdSysInfo '摁扭1:命名为:cmdSysInfo '要不点击,直接把我摁扭那部分拷贝在form,load里就行了。
转载请注明出处windows之家 » VB安装到win10