通俗基础教程
电脑操作教程
电脑怎样拨号上网
如何做个人网页
怎样做局域网
Word教程(文字处理)
图形图象处理入门
经典提高教程
怎样使用代理服务器
如何做无盘工作站
Photoshop教程
Dreamweaver3教程
Flash4&5教程
Firework3教程
Frontpage2000教程
Authware教程
Office2000教程
如何制作动画图片
OICQ&ICQ使用方法

高手学习指南

硬件升级技巧
CGI教程
ASP教程

PHP教程

注册表使用技巧
路由器的设置
网站建设指南
SQL
最近更新:
Flash
相关内容

获取Win95特殊目录准确路径

  在Win95中,有许多特殊的目录,如Windows、System、DeskTop、M yDocuments等,这些目录分门别类地存放着各种不同用途的文件。
  在编写Win95下的应用程序时,经常需要获得这些特殊目录的准确路径,以便正确地存取文件,如:为了将应用程序安装在Program Files 目录中,就需要知道该目录的准确路径。
  下面以Visual Basic 5.0为例,介绍在程序中获得Win95特殊目录准确路径的方法。
  获取方法
  由于VB自身不提供获取Win95特殊目录路径的函数和命令,所以只有求助于WindowsA PI(Windows应用程序接口,由多个动态链接库组成 ,提供了大量与系统密切相关的函数)。在Windows API中,与Win95特殊目录有关的函数有四个,其函数名和功能说明如下:
  ·GetWindowsDirectory:获得"Win95"目录的路径;
  ·GetSystemDirectory:获得"System"目录的路径;
  ·SHGetSpecialFolderLocation:获得某个特殊目录在特殊目录列表(该列表记录了所有特殊目录的准确路径)中的位置;
  ·SHGetPathFromIDList:根据某特殊目录在特殊目录列表中的位置获取该目录的准确路径。
  可以看出,除Win95目录和System目录外,其他特殊目录的准确路径都必须通过后两个函数结合使用才能有效地获取。如:为了获得Des kTop的路径,首先需调用SHGetSpecialF olderLocation获得DeskTop 在特殊目录列表中的位置Pid,然后调用SHGetPathFromIDLis t函数获得Pid指向的列表内容,即DeskTop的准确路径。
  为了在VB中使用Windows API函数,必须在应用程序的代码模块中进行如下函数声明(注意:每条声明语句应写在一行上):
  Declare Function GetWindowsDirectory Lib "kernel32" Alia s "GetWindowsDir ectoryA" (ByVal lpBuffer As String, ByVal n Size As Long) As Long
  Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirec toryA" (ByVal lpBuffer As String, ByVal nSi ze As Long) As Long
  Declare Function SHGetSpecialFolderLocation Lib "Shell32 "(ByVal hwndOwne r As Long, ByVal nFolder As Integer, ppidl As Long) As Long
  Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromI DListA" (ByVal pidl As Long, ByVal szPath A s String) As Long
  GetWindowsDirectory和GetSystemDirectory函数的格式和用法一样,两个参数分别为存放路径的固定长度字符串lpBuffer和该固定长度字符串的长度nSize,函数返回值为路径的实际长度。
  SHGetSpecialFolderLocation函数的第2和第3个参数分别为特殊目录的整型代号nF older和特殊目录在特殊文件列表中的位置ppidl( nFolder的部分常用取值和含义见下表)。SHGetPathFromIDList中的第一个参数pidl为利用上一个函数取回的特殊目录在列表中的位置, 第二个参数szPath为存放路径的字符串。表1
  程序举例
  下面建立一个简单的程序,该程序启动后将检测并显示Win95、Sy stem和DeskTop三个目录的准确路径。
  新建工程GetSysPath,添加一个普通窗体frmGetSysPath.frm,在窗体上绘制三个标签Label1、Label2和Label3,绘制三个文本框txtWi nPath、txtSystemPath和txtDeskTopPa th,分别对应Win95、System 和DeskTop三个目录。给工程添加一个代码模块Module1.Bas ,在其中添加如下声明:
  Public Const MAX_LEN = 200
  ’字符串最大长度
  Public Const DESKTOP = &H0&
  ’桌面
  Public Const PROGRAMS = &H2& ’程序集
  Public Const STARTUP = &H7&  ’启动
  Public Const STARTMENU = &HB& ’开始菜单
  Public Const MYDOCUMENTS = &H5& ’My Documents
  Public Const MYFAVORITES = &H6& ’My Favorites
  Public Const RECENT = &H8& ’最近打开的文件
  Declare Function SHGetSpecialFolderLocation Lib "Shell32 "(ByVal hwndOwne r As Long, ByVal nFolder As Integer, ppidl As Long) As Long
  Declare Function SHGetPathFromIDList Lib "Shell32" Alias "SHGetPathFromI DListA" (ByVal pidl As Long, ByVal szPath A s String) As Long
  Declare Function GetWindowsDirectory Lib "kernel32" Alia s "GetWindowsDir ectoryA" (ByVal lpBuffer As String, ByVal n Size As Long) As Long
  Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirec toryA" (ByVal lpBuffer As String, ByVal nSi ze As Long) As Long
  在窗体frmGetSysPath的代码模块中添加Form_Load事件过程:
  Private Sub Form_Load()
  Dim s As String * MAX_LEN  '存放结果的固定长度的字符串
  Dim Length As Long
  '字符串的实际长度
  Dim pidl As Long
  '某特殊目录在特殊目录列表中的位置
  '获得Windows目录
  Length = GetWindowsDirectory(s, MAX_LEN)
  txtWinPath = Left(s, Length)
  '获得System目录
  Length = GetSystemDirectory(s, MAX_LEN)
  txtSystemPath = Left(s, Length)
  '获得DeskTop目录,为获得其他特殊目录
  '只需改变SHGetSpecialFolderLocation的第二个参数即可
  SHGetSpecialFolderLocation 0, DESKTOP, pidl
  SHGetPathFromIDList pidl, s
  xtDeskTopPath = Left(s, InStr(s, Chr(0)) - 1)
  End Sub
  按下F5,运行程序,出现如下画面,可以看到正确读出的几个特殊目录的准确路径。图1
  本程序用Visual Basic 5.0企业版编制,在Pwin95、Pwin97等环境下运行正常。
  新疆钢铁公司(830022) 王卫
《计算机世界报》98年第50期12月28日

用VB实现多文件查找与替换功能
用VB 5.0 设计Browser及FTP程序
用Visual Basic 5.0设计E-mail程序
谈谈WIN API在VB中的应用
在VB中使用Word的“艺术字”工具
获取Win95特殊目录准确路径
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
上一页
下一页
 
教程站
收集整理



月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地生活休闲写作范文安妮宝贝站内搜索
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有