Un1有人找!

jiang1 2000-03-16 05:06:00
请问Un1:
vb中如何获得一个事件的句柄?是否用openevent这样的api函数,如何使用?

另外vb中waitforsingleobject这个函数的用法如何,我想用它来等待一个事件的触发,直至超时为止,但我没有调试出来,请教各位的高见!!!

问候大家!

jiang1 3.16 2000
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-03-17
  • 打赏
  • 举报
回复
噢,Sorry! 这只是很多程序中的一个片段,无法简单改写运行。

我想你可能把 Windows 中的 EventObject 和 VB 中的 Event 搞混淆了,它们是截然不同的概念。前者可认为是一个简单意义上的类似 VB 的 Type 类型,创建它后在异步操作中使用。我个人认为它等效于定时检查加DoEvents,满足条件后标记并返回。而后者是通过标准 COM 接口由内向外的一个过程调用,实际上是对象事件接口的一个方法而已。你可以通过在对象浏览器中选中“显示隐含成员”清楚地看到这一点。

我认为你把你的问题复杂化了,你可以简单地增加一个定时器,一旦时间超过十五秒,就触发自己的超时事件。另外,如果你是在用Modem编程,我建议使用RAS, 这样可以不去理会这些问题,集中精力解决你真正需要解决的问题。
jiang1 2000-03-17
  • 打赏
  • 举报
回复
可否将这个例子改一改,直接按F5键就能轻松运行!实在是 不好意思啦!帮个忙啦!太贪心了是不是???

另外想问一下:若在窗体上放一个text控件,是否可以得到text_keydown事件的句柄;
我现在做的程序中的问题我解释一下:就是电话的拨号,通话和挂机.为了保持通话一定的时间,比如15秒,我采用windows api函数sleep(15000),不过这样的话,若在sleep的中途,对方非正常挂机,由于我还在sleep状态,就不能触发我的calldisconnect事件,因此也就不会去执行在该事件中的相应代码.这样就会产生错误.看是否除了用waitforsingleobject function外能够用别的函数或方法即可以保持15秒时间,而程序又不会处于休眠状态,即程序中的任何事件都可以响应windows消息!




jiang1 2000-03-17
  • 打赏
  • 举报
回复


你认为我把我的问题复杂化了,你认为可以简单地增加一个定时器,一旦时间超过十五秒,就触发自己的超时事件。可是我现在编写的程序一个进程中会有30-120个线程,若加定时器会出现意想不到的情况发生,请帮助想一个更好的方法!

Un1 2000-03-16
  • 打赏
  • 举报
回复
这是我的RS232编程部分源码,你参考一下:

Private Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (ByVal lpEventAttributes As Long, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long


......

Dim l As Long
l = CreateEvent(0, True, False, 0)
If l Then
olpRead.hEvent = l

l = CreateEvent(0, True, False, 0)
If l Then
olpWrite.hEvent = l

l = CreateEvent(0, True, False, 0)
If l Then
olpEvents.hEvent = l
Else
CloseHandle olpWrite.hEvent
GoTo LError1
End If
Else

LError1:
CloseHandle olpRead.hEvent
GoTo LError
End If
Else
LError:
Err.Raise vbObjectError + ERR_CREATEEVENT, MYNAME, "不能创建事件。"
End If

......


......

Private Sub ReadLoop(ByVal WaitTime As Long)
Dim l As Long

If blnRead Then
If WaitForSingleObject(olpRead.hEvent, WaitTime) <> WAIT_TIMEOUT Then
blnRead = False
l = olpRead.InternalHigh
GoTo ReadComplated
End If
Else
Static b(32766) As Byte
If ReadFile(m_CommID, b(0), m_InBufferSize, l, olpRead) Then '

ReadComplated:
If l > 0 Then
strIn = strIn & LeftB$(b(), l)

m_CommEvent = comEvReceive
RaiseEvent OnComm
End If
Else
If Err.LastDllError = ERROR_IO_PENDING Then
blnRead = True
olpRead.InternalHigh = 0
Else
m_CommEvent = comEventDCB
RaiseEvent OnComm
End If
End If
End If
End Sub

......

Account Activation Overview.zip 在管理员版本里面,新开一页来显示所有等待帐号激活的用户.(管理员激活和一般用户激活).适用phpBB 版本: 2.0.0 - 2.0.1 - 2.0.2 Admin Overall Forums Permission.zip 这个hack 允许管理人员用鼠标器轻易的一点就设定所有论坛的权限。对于新手来说很适用 Admin Panel for Junior Admins and Mods.zip 允许你设定二级管理人员,并且你也可以准许二级管理人员使用你允许他们使用的所有设定。你也可以同时允许游客使用你预先设定的所有选项.phpBB Version: 2.0.0 - 2.0.1 Admin Private Messages Viewer.zip 这是对于管理员版面额外附加的程序。 它可以显示所有站内信件的列表,并且让管理员看到所有的信息。phpBB 版本: 2.0.0 Admin Server Test.zip 此hack 会测试你的server 运行功能,速度,和它是否可以新建和写文件。将来我们会提供更多的测试.phpBB 版本: 2.0.0 Admin Shadow Topic Delete.zip 管理员专用版 附加 可是显示隐藏题目连接(当你移动一个题目后遗留下的连接). 这也会显示一个题目被移动地址的连接,并且让你删除这个隐藏连接.phpBB 版本: 2.0.0 Admin Users List Hack.zip 这个hack提供一个管理您的用户的新方法: 非常有用和方便!你不需搜索任何人.phpBB 版本: 2.0.1 - 2.0.2 Admin Voting这是一个管理员版本的hack, 使得管理员们去查看投票结果,谁参预了此投票,和谁在哪里投什么票.因为牵涉到隐私问题,有这个功能的论坛应当让它的用户得知此功能已在使用.此hack是被Fabro勇敢的从Vote-teilnehmer anzeigen v.1.2.0 更正过来的.phpBB 版本: 2.0.0 - 2.0.1 - 2.0.2 Allow Avatars only with xx posts 让你的用户在发表一定贴数之后才可以使用头像. 你可以预先在管理员面版里面设定贴数.phpBB 版本: 2.0.0 - 2.0.1 - 2.0.2 Allow Disallow Signature 此hack和avatars很相似-你可以准许/不准许每个用户有自己的签名.phpBB 版本: 2.0.0 - 2.0.1 - 2.0.2 Allow Unlimited Guest Voting 此hack 允许管理员在论坛里面给所有游客设定投票的权力,并且没有登陆的用户也可在此设定的论坛里面投票。此功能不附带任何跟踪功能,因此游客可以重复投票。phpBB 版本: 2.0.1 - 2.0.2 Auto Un-ban Main Admin 此hack不会防止限制高级管理员,可是此MOD可以在没错网页刷新时解除对于高级管理员的限制(假如高级管理员被限制).phpBB 版本: 2.0.0 Configurable online trading time 此hack让管理员通过控制面版查看用户在线持续时间(以秒计算)。 这个时间将会在"线上人数"里面显示.phpBB 版本: 2.0.0里面显示. " Control Panel modcp Modification 类似于悄悄话:这个功能可以让您一次选modcp里面的全部贴子。使得您更方便的选择贴子phpBB 版本: 2.0.0 - 2.0.1 - 2.0.2 Delete Inactive Users 此程序让你可以删除不活跃的用户。 它包含很多数据,如加入日期,从未登陆,等等.管理员可以建立删除用户的连接。phpBB 版本: 2.0.2 Edit Joined Date per Admin Panel 用此hack, 你可以轻松的修改用户的加入日期. phpBB 版本: 2.0.0 - 2.0.1 - 2.0.2 Edit User s Post Count 修改用户管理面版里面的用户发贴计数。如果某用户因发重复的贴因而积累了很多发贴计数,你可用此功能使得数字回复正常.phpBB 版本: 2.0.1 Enhanced Admin User Lookup 这将会代替管理员面版里面的用户搜索,以更多功能来方便管理员使用。phpBB 版本: 2.0.0 Global Annoucement Hack 此MOD让你更容易的发表使得所有版都可以看到的公告。 它支持管理员,你可以设定可以看此贴的用户,可

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧