VB制作随机点名程序源码!.doc_第1页
VB制作随机点名程序源码!.doc_第2页
VB制作随机点名程序源码!.doc_第3页
VB制作随机点名程序源码!.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档VB制作幻灯片随机点名工具大家好,我是丶灬尛坏坏注:此程序适用于 学校班级 实用, 此文是原创,转载请标明出处,本次教程:这个在powerpoint里,完全和powerpoint结合起来,我简单写了一下,新建一个vb程序,在窗体上放一个label,一个timer和一个按钮,timer的interval设置为1,Enable设置为False。源码(不解释,自己研究):Dim a(0 To 9) As StringPrivate Sub Command1_Click() Timer1.Enabled = Not Timer1.EnabledEnd SubPrivate Sub Form_Load() SetHotkey Me.hwnd, 1, 0, vbKeyHome, Add a(0) = 张三 a(1) = 李四 a(2) = 王五 a(3) = 刘六 a(4) = 牛七 a(5) = 马八 a(6) = 杨九 a(7) = 苟十 a(8) = 朱十一 a(9) = 吕十二End SubPrivate Sub Form_Unload(Cancel As Integer) SetHotkey Me.hwnd, 1, 0, 0, DelEnd SubPrivate Sub Timer1_Timer() Dim i As Integer i = Int(Rnd * 10) Label1.Caption = a(i) Label1.Tag = iEnd Sub新建一个模块,写入以下代码Private Declare Function SetWindowLong Lib user32 Alias SetWindowLongA (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function GetWindowLong Lib user32 Alias GetWindowLongA (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function CallWindowProc Lib user32 Alias CallWindowProcA (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Declare Function RegisterHotKey Lib user32 (ByVal hwnd As Long, ByVal id As Long, ByVal fskey_Modifiers As Long, ByVal vk As Long) As LongPrivate Declare Function UnregisterHotKey Lib user32 (ByVal hwnd As Long, ByVal id As Long) As LongPublic Declare Function ShowWindow Lib user32 (ByVal hwnd As Long, ByVal nCmdShow As Long) As LongPublic Declare Sub keybd_event Lib user32 (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Public Declare Function SendMessage Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPublic Declare Function SetForegroundWindow Lib user32 (ByVal hwnd As Long) As LongConst SW_HIDE = 0Const SW_SHOW = 5Const WM_HOTKEY = &H312Const MOD_ALT = &H1Const MOD_CONTROL = &H2Const MOD_SHIFT = &H4Const GWL_WNDPROC = (-4) 窗口函数的地址Dim FormIsShowing As BooleanDim key_preWinProc As Long 用来保存窗口信息Dim key_IsWinAddress As Boolean 是否取得窗口信息的判断Function keyWndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If Msg = WM_HOTKEY Then Select Case wParam wParam 值就是 key_idHotKey Case 1 激活 多 个热键后,多 个热键所对应的操作,大家在其他的程序中,只要修改此处就可以了 FormIsShowing = Not FormIsShowing If FormIsShowing Then ShowWindow hwnd, SW_HIDE Else ShowWindow hwnd, SW_SHOW SendMessage hwnd, &H32, 0, 0 SetForegroundWindow hwnd End If Case 2 MsgBox hide ShowWindow hwnd, SW_HIDE End Select End If 将消息传送给指定的窗口 keyWndproc = CallWindowProc(key_preWinProc, hwnd, Msg, wParam, lParam)End FunctionFunction SetHotkey(ByVal hwnd As Long, ByVal KeyId As Long, ByVal keyControlKey As Long, ByVal keyNormalKey As Long, ByVal Action As String) If key_IsWinAddress = False Then 判断是否需要取得窗口信息,如果重复取得,再最后恢复窗口时,将会造成程序死掉 记录原来的window程序地址 key_preWinProc = GetWindowLong(hwnd, GWL_WNDPROC) 用自定义程序代替原来的window程序 SetWindowLong hwnd, GWL_WNDPROC, AddressOf keyWndproc End If Select Case Action Case Add RegisterHotKey hwnd, KeyId, keyControlKey, keyNormalKey 向窗口注册系统热键 key_IsWinAddress = True 不需要再取得窗口信息 Case Del SetWindowLong hwnd, GWL_WNDPROC, key_preWinProc 恢复窗口信息 U

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论