* 查询注册表
PROCEDURE GetKeyValue
LPARAMETER cValueName,cKeyValue
LOCAL lpdwReserved,lpdwType,
lpbData,lpcbData,nErrCode
STORE 0 TO lpdwReserved,lpdwType
STORE SPACE(256) TO lpbData
STORE LEN(m.lpbData) TO m.lpcbData
m.nErrCode=RegQueryValueEx
(nCurrentKey,m.cValueName,;
m.lpdwReserved,@lpdwType,@lpbData,@lpcbData)
m.cKeyValue = LEFT(m.lpbData,m.lpcbData-1)
ENDPROC
PROCEDURE GetAppPath
LPARAMETER cExtension,cExtnKey,cAppKey
LOCAL cOptName
cOptName = ""
* 得到要打开的文档在注册表中的名称
=OpenKey("."+m.cExtension)
=GetKeyValue(cOptName,@cExtnKey)
=CloseKey()
RETURN GetApplication(cExtnKey,@cAppKey)
ENDPROC
* 得到应用程序的安装路径及名称
PROCEDURE GetApplication
PARAMETER cExtnKey,cAppKey
LOCAL cOptName
cOptName = ""
=OpenKey(m.cExtnKey+"\Shell\Open\Command")
=GetKeyValue(cOptName,@cAppKey)
=CloseKey()
ENDPROC
---- 在使用这段程序时,使用如下格式的语句:
---- fullpath=lookreg("doc") && 返回打开doc 文件的软件名及安装路径
---- 灵活运用该段程序,可以大大丰富我们在软件中的表现能力,例如应用软件的菜单中都有一项“关于本软件”的功能,该功能调用的表单一般用来显示有关系统资源及软件版权的信息。如果我们要给其中的公司信息加上超文本链接使其可以直接访问公司主页。就可以在显示公司信息的 Label控件的 Click 事件中使
用如下语句:
fullpath=lookreg("htm")
If allt(fullpath)= =[]
=messagebox(" 无法找到浏览器以浏览公司主页!",64,"")
retu
Else
fullpath=subst(fullpath,1,rat
([.],fullpath)-1)+space(2)+;
[www.flysmart.com]
RUN/n3 &fullpath
Endif
---- (二)利用Windows 的文档关联特性直接调用。
---- 我们知道,Windows是一种面向文档的操作系统。当我们双击某个文件时,Windows就会自动启动与该文件相关联的应用程序来对文件进行处理。在这个过程中Windows主要使用了一个名为ShellExecute 的Win32 API函数。我们可以通过这个函数来直接调用其他程序,彻底抛弃Run 命令的方式。
Function shellstart
Parameters documentname
* 声明ShellExecute函数
DECLARE INTEGER ShellExecute IN
shell32.DLL INTEGER HWND,;
STRING lpszOP, ;
STRING lpszFile, ;
STRING lpszParams, ;
STRING lpszDir, ;
INTEGER fsshowcmd
* 指定ShellExecute函数的输出指向Windows桌面
DECLARE INTEGER GetDesktopWindow IN win32api
HWND = GetDesktopWindow()
* 指定操作命令为"打开"方式
lpszOP = "open"
* 指定ShellExecute操作的对象为 documentname
lpszFile = documentname
lpszParams = ""
* 指定ShellExecute的缺省目录为c:\temp
lpszDir = "c:\temp"
fsshowcmd = 0
* 执行ShellExecute命令
LNRETURN = ShellExecute(HWND, lpszOP,
lpszFile, lpszParams, lpszDir,fsshowcmd)
Retu
调用方式:
=shellstart("www.flysmart.com")
&& 连接到网站www.flysmart.com
=shellstart(“c:\windows\script.doc”)
&& 打开c:\windows\script.doc文件
责任编辑:小草