谁能告诉我Start->Run的执行文件是什么名字?因为我想在程序中调用运行的功能。谢谢!

VBProgrammer2 2005-10-24 07:58:27
谁能告诉我Start->Run的执行文件是什么名字?因为我想在程序中调用运行的功能。谢谢!
...全文
243 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
VBProgrammer2 2005-10-26
  • 打赏
  • 举报
回复
看来有API ShellExecute 比较符合我的要求。谢谢!Mr.northwolves.
我开发了一套销售管理系统,比较了一下,还算国内领先的,你能帮忙介绍一家用户吗?有收入的话,大家分。
VBProgrammer2 2005-10-25
  • 打赏
  • 举报
回复
j_x_y,你好!可能我的问题描述得不明确,我想找一个象Shell的函数,但不用指定路径.
VBProgrammer2 2005-10-25
  • 打赏
  • 举报
回复
northwolves,你好!你的方法好象不行,因为我还需要让它运行一个可执行文件.如:IExplore.Exe.
谢谢!
VBProgrammer2 2005-10-25
  • 打赏
  • 举报
回复
我觉得用Shell不方便,因为需要指定执行文件的路径,我想只指定执行文件名,让系统自动在PATH中查找路径.
supergreenbean 2005-10-25
  • 打赏
  • 举报
回复
问题7:如何启动 Windows 预设的执行档开启某一文件?
--------------------------------------------------------------------------------

 

举例来说, .txt 的文件希望用「记事本」开启、.doc 的文件用 Word 开启、.bmp 的文件用「小画家」开启…, 就好像利用「档案总管」开启文件一样。

 

当我们想在 VB 程式中执行某一个程式时, 最简单的方法是呼叫 Shell 叙述,例如「Shell "Notepadc:\test.txt"」, 但 Shell 叙述必须指定好执行档,所以并不适用於此一问题。想要像档案总管一样开启文件, 需呼叫 ShellExecute API 函数, 先举个简单的例子, 假设想开启 c:\Windows 目录的 general.txt 文件, 则方法如下:

 

Call ShellExecute(Me.hwnd, "open", "c:\Windows\general.txt", "", "", SW_SHOW)

 

以上叙述笔者省略了参数四及参数五, 其中参数四表示传递给执行档的参数,但由於此一 ShellExcute 叙述已经是用来开启文件, 所以此一参数通常设定为 "", 参数五则表示工作目录, 若设定为 "", 则以文件的所在目录为工作目录。此外,参数六表示文件开启後显示的方式, SW_SHOW 表示正常大小, 若设定成 SW_SHOWMINIMIZED,则以最小化的视窗来显示, 若设定成 SW_SHOWMAXIMIZED, 则以最大化的视窗来显示。

 
northwolves 2005-10-25
  • 打赏
  • 举报
回复
我想找一个象Shell的函数,但不用指定路径.
-------------------------------------
'试试这个:

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
Sub shellit(ByVal mystr As String)
ShellExecute hwnd, "open", mystr, vbNullString, vbNullString, 5
End Sub

Private Sub Command1_Click()
shellit "excel.Exe"
End Sub
northwolves 2005-10-25
  • 打赏
  • 举报
回复

northwolves,你好!你的方法好象不行,因为我还需要让它运行一个可执行文件.如:IExplore.Exe.
谢谢!
--------------------------------

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_LWIN = &H5B
Private Const KEYEVENTF_KEYUP = &H2

Private Sub Command1_Click()

keybd_event VK_LWIN, 0, 0, 0
keybd_event &H52, 0, 0, 0 'R
keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
SendKeys "IExplore.Exe"
'sendkeys "{enter}"
End Sub
j_x_y 2005-10-25
  • 打赏
  • 举报
回复
呵呵~~一下就找到了
Public Declare Function SHRunDialog Lib "shell32" Alias "#61" (ByVal hOwner As Long, ByVal Unknown1 As Long, ByVal Unknown2 As Long, ByVal szTitle As String, ByVal szPrompt As String, ByVal uFlags As Long) As Long

参数列表:
hOwner - 所有者的句柄
Unknown1 - ?
Unknown2 - ?
szTitle - 对话框标题,为vbNullString,则为默认标题。注意NT环境要用StrConv(szTitle, vbUnicode)转化文本。
szPrompt - 说明,为vbNullString,则为默认说明。注意NT环境要用StrConv(szPrompt , vbUnicode)转化文本。
uFlags - 显示浏览按钮标志,-1 不显示,0 显示
j_x_y 2005-10-25
  • 打赏
  • 举报
回复
有个api函数直接可以达到你的目的,我去帮你找找
northwolves 2005-10-24
  • 打赏
  • 举报
回复
win+"R"

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_LWIN = &H5B
Private Const KEYEVENTF_KEYUP = &H2

Private Sub Command1_Click()

keybd_event VK_LWIN, 0, 0, 0
keybd_event &H52, 0, 0, 0 'R
keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
End Sub
faysky2 2005-10-24
  • 打赏
  • 举报
回复
因为我想在程序中调用运行的功能
-------------
用Shell就行了

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧