|
在程序设计中,我们经常遇见这样或那样的问题,即使是“身经百战”的编程老手,对于一些过于具体、细微的问题有时也会不知所措,以下是我从外文网站上摘取的一些vb经验技巧,并对它们进行的翻译整理,希望对你会有所帮助,有疏漏之处请大家指正,谢谢! 有时候你需要记下每次windows开启和关闭的时间,下面这个小程序就可以完成这个功能,你可以把它放在windows开始菜单的“启动”文件夹里面,这样当你进入windows时,这个小程序就会自动启动(不可见),并在你指定的文件中写下当时的时间,在你推出windows系统时,小程序会关闭并记下离开的时间,并关闭记录文件。 private sub form_load() left = -10000 top = -10000 open "c:\apps\log.txt" for append as #1 print #1, "on: " & cstr(now) close #1 end sub private sub form_unload(cancel as integer) open "c:\apps\log.txt" for append as #1 print #1, "off:" & cstr(now) close #1 end end sub
你可以使用api函数findwindow和postmessage去寻找指定的窗口,并关闭它。下面的例子教给你怎样找到并关掉一个caption为“caluclator”的程序。
dim winhwnd as long dim retval as long winhwnd = findwindow(vbnullstring, "calculator") debug.print winhwnd if winhwnd <> 0 then retval = postmessage(winhwnd, wm_close, 0&, 0&) if retval = 0 then msgbox "置入消息错误!" end if else msgbox "calculator没有打开!" end if
为了让以上的代码工作,你必须在模块文件中什么以下api函数:
declare function findwindow lib "user32" alias _ "findwindowa" (byval lpclassname as string, _ byval lpwindowname as string) as long declare function postmessage lib "user32" alias _ "postmessagea" (byval hwnd as long, byval wmsg as long, _ byval wparam as long, lparam as any) as long public const wm_close = &h10
把以下代码放在第一个窗体的form_load事件中:
if app.previnstance = true then call msgbox("这个程序正在运行!",_ vbexclamation) end end if
延迟在vb中非常有意义!举个例子,有时你需要等待一个额外的过程完成,才能运行程序下面的代码。延迟使程序摆脱了cpu的运算速度对程序运行速度的影响,但是在vb中却没有延迟这个很多语言都有的现成函数,所以还要依靠api函数,请看以下的代码:
declare sub sleep lib "kernel32" _ (byval dwmilliseconds as long)
'延迟1秒 call sleep(1000)
在较短时间里连续的点击两次鼠标就会造成鼠标双击事件。你可以调用api函数setdoubleclicktime改变鼠标双击所需要的时间,它只有一个参数,并可精确到毫秒级。
declare function setdoubleclicktime _ lib "user32" alias "setdoubleclicktime" _ (byval wcount as long) as long
提示:这种改变将影响到整个操作系统。
在很多的作图软件中都有一个小的区域显示当前屏幕上的光标位置,这利用api函数非常容易做到,下面的例子将演示使用代码如何返回当前光标的xy的坐标值。
步骤:
option explicit dim z as pointapi ' 声明变量
private sub timer1_timer() getcursorpos z ' 得到坐标 label1 = "x: " & z.x ' 得到x坐标 label2 = "y: " & z.y ' 得到y坐标 end sub
5、按f5运行程序,移动鼠标注意观察两个标签对象的变化。
这个技巧将向您展示如何使用捕捉光标的api函数阻止鼠标指针移出窗体。
本文关键:vb
相关方案
|