为什么脱离vb6.0环境(生成exe文件)就无法正常运行

代码如下:PrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()IfApp.PrevInstance=... 代码如下:
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
If App.PrevInstance = True Then
Unload Me
End If
Call EnableKBDHook
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnHookKBD
End Sub
下面的是bas中的
Declare Function SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long

Public hnexthookproc As Long

Public Const WH_KEYBOARD = 2

Public Sub UnHookKBD()
If hnexthookproc <> 0 Then
UnhookWindowsHookEx hnexthookproc
hnexthookproc = 0
End If
End Sub
Public Function EnableKBDHook()
If hnexthookproc <> 0 Then
Exit Function
End If

hnexthookproc = SetWindowsHookEx(WH_KEYBOARD, AddressOf MyKBHFunc, App.hInstance, 0)
If hnexthookproc <> 0 Then
EnableKBDHook = hnexthookproc
End If
End Function
Public Function MyKBHFunc(ByVal iCode As Long, _
ByVal wParam As Long, ByVal lParam As Long, ByVal Msg As Long) As Long
'这三个叁数是固定的,不能动,而MyKBHFunc这个名称只要和
'SetWindowsHookex()中 AddressOf后的名称一样便可,不一定叫什麽
MyKBHFunc = 0

If wParam = 40 Then
Form1.Visible = False
End If

If wParam = 97 Then
Form1.Visible = True
End If

MyKBHFunc = 1
End Function
该程序不离开本机器 即出现exe不执行,但是要把Form1.Visible改为true则程序正常运行,为什么?
展开
 我来答
百度网友a7a28aa
2009-03-25
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
一般VB60做的程序都要 MSVBVM60.DLL 才能运行...你可以把这个DLL加载到自定义资源文件...再释放到系统 WINDOWS\system32 下面
cz_silence
2009-03-26
知道答主
回答量:22
采纳率:0%
帮助的人:0
展开全部
可能对你解决当前的问题帮助不大,但我的理解是,VB程序都是离不开VB运行库的,要想开发出的程序兼容性较强,还是需要C语言这样的。

要是觉得C开发慢,Delphi也是一个选择,毕竟Pascal也是同样强大。

参考资料: http://www.czxqlove.com

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式