首页 >> 读书频道 >> 电脑 >> VB的API编程精粹五
 
· VB的API编程精粹四
· VB的API编程精粹三
· VB的API编程精粹二
· VB的API编程精粹一
· VB实现SQL功能下
· 功能强大的SendMes
· 直接通过ODBCAPI访
· 直接通过ODBCAPI访
· 直接通过ODBCAPI访
· 直接通过ODBCAPI访
· 用VB制作IE工具条自定
· 使用VB设计具有动感的命
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

VB的API编程精粹五


查看有无更新版本

关键字:VB 2006-9-18

 

Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
'要用到的API函数声明
…………
(鉴于篇幅这里只介绍一下各API的作用而不再一一列其声明;相关声明请读者查阅API浏览器)
下面简单地介绍一下这几个API:
RegOpenKeyEx():打开指定的关键字(32位);
RegSetValueEx():在打开的注册表关键字的值域中存储数据;
RegCloseKey():释放指定的关键字的句柄;
RegQueryValueEx():在注册表中查找与您指定的键值相关的值;
RegCreateKeyEx():建立并打开指定的关键字,若已存在则打开它;
RegEnumKeyEx():枚举指定的打开注册表关键字的子关键字(32位);
RegEnumKey():同上功能一样,区别在于它是16位的;
RegEnumValue():每次调用枚举指定的打开注册表关键字的值复制一个带索引的值的名称和数据块;
RegDeletekey():删除一个关键字以及它的子关键字;
RegDeleteValue():在指定的注册表关键字中删除一个带名字的值。
通过调用这些API我们可以轻松实现注册表的任意关键字的读取、查询、建立、删除。笔者在这里只打算介绍一下如何建立和删除一个特定的关键字。其它操作读者可以自己去发挥。
例如:要在HKEY_LOCAL_MACHINE\Network下建一个“MyApi”子键并在它的下面建立一个称为“yx”的值域,把它的值设为“yue1975”。我们应该按如下的方法调用API:
Dim phkResult As Long '保存建立的关键字句柄
Dim Iresult As Long
Dim SA As SECURITY_ATTRIBUTES
Dim 1Create As Long
'建立一个指定的关键字
caII RegCreateKeyEx(HKEY_LOCAL_MACHINE,"Network\MyApi",0,"",REG_OPTION_NON_VOLATILE, _
KEY_ALL_ACCESS,SA,phkResult,1Create)
1Result=RegSetValueEx(phkResult,"yx",0,REG_SZ,"yue1975",Clng(Len("yue1975")+1))
'关闭关键字
RegCloseKey phkResult
现在用注册表编辑器去查看一下注册表,一定生成了您所需的键值。
再例如:现在我想把刚才建立的键值删掉,那您只需如下调用即可:
dim success as long
success=RegDeleteKey(HKEY_LOCAL_MACHINE,"Network\MyApi")
二. 用API生成平面工具条
相信许多VB爱好者都曾千方百计地想使自己的工具条像Word97中的工具条一样COOL起来。往往我们不得不去借用别人做好的ActiveBar控件,这样先不说自己的程序变得大了,而且说实话那个控件并不好用。笔者在用VC5编程的时候用基类函数SendMessageLong()、FindWindowEx()轻松实现了这种COOL的效果。受此启发在VB5中调用这两个API也实现了同样的效果。下面是源代码:
把以下程序加到您的模块中:
'----------------------
'常量声明
'----------------------
Public Const WM_USER = &H400
'用户自定义消息的起点
Public Const TB_SETSTYLE = WM_USER + 56
'设置工具条风格消息
Public Const TB_GETSTYLE = WM_USER + 57
'取得工具条风格消息
Public Const TBSTYLE_FLAT = &H800
'使工具条COOL起来
Public Const TBSTYLE_TOOLTTPS = &H100
Public Const TBSTYLE_WRAPABLE = &H200
Public Const TBSTYLE_ALTDRAG = &H400
Public Const TBSTYLE_LIST = &H1000
Public Const TBSTYLE_CUSTOMERASE = &H2000
'-----------------
'API函数声明
'-----------------
Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long,
ByVal wMsg As Long,ByVal wParam As Long,ByVal 1Param As Long) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long,
ByVal hWnd2 As Long,ByVal 1psz1 As String,ByVal 1psz2 As String) As Long
'-----------------------
'通用生成平面工具条过程
'入口:工具条的名字
'-----------------------
Public Sub FlatBar(ByVal tb As Toolbar)
Dim style As Long
Dim hToolbar As Long
Dim r As Long
'获的工具条窗口句柄
hToolbar = FindWindowEx(tb.hwnd,0&,"ToolBarWindow32",vbNullString)
'获的当前工具条的风格
style = SendMessageLong(hToolbar,TB_GETSTYLE,0&, 0&)
If style And TBSTYLE_FLAT Then
style = style Xor TBSTYLE_FLAT
Else
style = style or TBSTYLE_FLAT
End If
'设置工具条的平面风格
r=SendMessageLong(hToolbar,TB_SETSTYLE,0, style)
tb.Refresh
End Sub
过程FlatBar()的调用方法:
1 . 在你的窗体上添加Toolbar控件(命名为:myTB)和ImageList控件。按通常的方法一样在ImageList中播入几个图标并和Toolbar绑定建立一个平常的工具条。
2 . 在窗体的Load()事件中调用FlatBar()
Call FlatBar(myTB)
3. 运行,您的工具条一定COOL起来了。

VB的API编程精粹五

[ 1 ]
VB的API编程精粹五 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑