王朝知道
分享
 
 
 

求VB读取INI代码

王朝知道·作者佚名  2009-04-09  
宽屏版  字体: |||超大  
 
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
 
问题描述:

VB需要读取文件某一行作为打开的文件,比如,第三行内容是"e:\tencent\qq\qq.exe"需要读取他作为一个按钮的打开文件,可否做到?

参考答案:

★ShellExecute函数和Shell函数:打开外部程序

ShellExecute函数

'声明

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _

(ByVal hWnd As Long, ByVal lpOperation As String, _

ByVal lpFile As String, ByVal lpParameters As String, _

ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'命令语句

Private Sub Command1_Click()

Dim lR As Long

lR = ShellExecute(Me.hWnd, "Open", sFile, "", "", vbNormalFocus)

End Sub

本函数还可以用来连接到网页:

ShellExecute 0&, vbNullString, "", vbNullString, vbNullString, vbNormalFocus

或者这样写来发送Email:

ShellExecute me.hwnd, "open", "mailto:vbcode@vbcode.com", vbNullString, vbNullString, SW_SHOW

另外有ShellExecute的替代用法,更加简单实用,不用API,一句Shell搞定!

连接到网页:

Shell "rundll32.exe url.dll,FileProtocolHandler "

打开文件:

Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\SHELLTST.TXT"

Shell函数

运行一个可执行程序,并且如果该程序仍然在运行,则返回一个包含该程序的进程 ID 的整数。

Public Function Shell( _

ByVal Pathname As String, _

Optional ByVal Style As AppWinStyle = AppWinStyle.MinimizedFocus, _

Optional ByVal Wait As Boolean = False, _

Optional ByVal Timeout As Integer = -1 _

) As Integer

格式:Shell(Pathname, Style As AppWinStyle, Wait, Timeout)

参数:

△Pathname

必选项。字符串。要执行的程序名以及任何需要的参数和命令行开关。Pathname 还可以包括驱动器和目录路径或文件夹。

△Style

可选项。AppWinStyle。从 AppWinStyle 枚举中选择的值,该枚举与要在其中运行程序的窗口样式相对应。如果省略 Style,则 Shell 使用 AppWinStyle.MinimizedFocus,这将使程序以最小化启动并具有焦点。

Style 参数可以有以下设置之一:

AppWinStyle.Hide 隐藏窗口并为隐藏的窗口提供焦点。

AppWinStyle.NormalFocus 为窗口提供焦点,并以最近的大小和位置显示窗口。

AppWinStyle.MinimizedFocus 为窗口提供焦点,并以图标的形式显示窗口。

AppWinStyle.MaximizedFocus 为窗口提供焦点,并以全屏方式显示窗口。

AppWinStyle.NormalNoFocus 将窗口设置为最近的大小和位置。当前活动窗口保持焦点。

AppWinStyle.MinimizedNoFocus 以图标的形式显示窗口。当前活动窗口保持焦点。

△Wait

可选项。Boolean。指示 Shell 函数是否应等待程序完成的值。如果省略 Wait,则 Shell 使用 False。

△Timeout

可选项。Integer。Wait 为 True 时等待完成的毫秒数。如果省略 Timeout,则 Shell 使用 -1,表示没有超时,Shell 直到程序完成时才返回。因此,如果省略 Timeout 或将它设置为 -1,则 Shell 可能永远不会将控制返回给程序。

异常/错误

异常类型 错误号 条件

ArgumentException 5 Style 不在 0 到 9(包含 0 和 9)范围内。

FileNotFoundException 53 Shell 无法启动指定的程序。

备注

Shell 函数的返回值取决于 Pathname 中指定的程序在 Shell 返回时是否仍在执行。如果将 Wait 设置为 True 并且程序在超时过期前结束,Shell 返回零。如果超时过期或者省略 Wait 或将它设置为 False,则 Shell 返回程序的进程 ID。进程 ID 是标识正在运行的程序的唯一数字。

如果 Shell 函数无法启动指定的程序,则出现 System.IO.FileNotFoundException 错误。例如,当试图从使用 System.Windows.Forms 的应用程序运行 16 位程序(如 command.com)时,可能会发生这种情况。解决办法是运行将调用所需的 16 位程序的 32 位程序。如果是 command.com,则可以将运行 cmd.exe 作为另一种选择。

默认情况下,Shell 函数异步运行程序。这意味着用 Shell 函数启动的程序在 Shell 函数后面的语句执行前可能没有结束执行。如果想等待程序结束后再继续,请将 Wait 设置为 True。

整个路径和文件规范应该始终用引号引起来,如以下示例所示:

ID = Shell("""C:\Program Files\MyFile.exe"" -a -q", , True, 100000)

字符串内每对相邻的双引号 ("") 被解释为字符串中的一个双引号字符。因此,前面的示例表示 Shell 函数的下列字符串:

"C:\Program Files\MyFile.exe" -a -q

如果路径没有用引号引起来,Windows 就会在 C:\ 目录中查找名为 Program.exe 的文件,而不是在 C:\Program Files 目录中查找 MyFile.exe 文件。

安全说明 如果路径和文件规范没有用引号引起来,那么当文件名或路径节点包含空格时,就会出现安全风险。在上面的示例中,路径节点 \Program Files 包含一个空格。如果规范不在引号中,并且名为 Program.exe 的程序(例如通过非法的破坏)安装在 C:\ 中,Windows 就会执行 Program.exe 程序而不是 MyFile.exe。

安全说明 Shell 函数需要非托管代码权限,这可能会对它在部分信任情况下的执行产生影响。有关更多信息,请参见 SecurityPermission 类和代码访问权限。

示例

本示例使用 Shell 函数运行一个用户指定的应用程序。通过将 AppWinStyle.NormalFocus 指定为第二个参数,以正常大小打开应用程序并为它提供焦点。

Dim ProcID As Integer

' Run Calculator.

ProcID = Shell("C:\Windows\system32\calc.exe", AppWinStyle.NormalFocus)

' The preceding path is for Windows XP;

' The Windows 2000 path is C:\WINNT\system32\calc.exe.

另,shell函数无须声明,例:

Option Explicit

Private Sub Command1_Click()

Shell ("D:\Program Files\WinRAR\winrar.exe")

End Sub

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有