VB如何自动获取电脑里面的某个程序位置

VB如何自动获取电脑里面的某个程序位置.... VB如何自动获取电脑里面的某个程序位置. 展开
 我来答
棘棘芽
2014-03-26 · TA获得超过563个赞
知道小有建树答主
回答量:608
采纳率:100%
帮助的人:557万
展开全部

GetWindowRect 

'寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)
private Declare Function FindWindow Lib "user32" _
                Alias "FindWindowA" (ByVal lpClassName As String, _
                                     ByVal lpWindowName As String) As Long
private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

'获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
private Declare Function GetWindowRect Lib "user32" _
                Alias "GetWindowRect" (ByVal hwnd As Long, _
                                       lpRect As RECT) As Long

查找以上API函数功能 用法  就可以达到你的功能

更多追问追答
追问
比如我安装了一个游戏.我用一个按钮来运行指定的游戏exe.但是我安装的路径和别人不同.要怎样自动获取程序位置.直接把代码发来.并解释一下复制去Google翻译翻译结果
追答
这要首先要在注册表中查找了
注册表路径为 HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Uninstall
能找到所有程序的列表 当然除了绿色软件.正常安装的都会有
这里的路径也是卸载程序的,但有目录了 就可以查找一下你的程序名来找到你要运行的程序
读取注册表的 API太多 如你所说 Google去 一般都是以Reg开头的
如果你的程序是后者 这里没有你的程序 那你只有一个目录一个目录查找了.一般默认的也不多
查找一般为 Dir函数
149005501
2014-03-26 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部

递归目录,逐盘逐目录查找,下面是查找指定文件夹下面的所有文件和其子目录下的文件:

 

''=============================================
''名称: FindPath
''作用: 查找指定文件夹下面的所有文件和其子目录下的文件
''参数:strPath 要查找的目录,
''      strFiles 用于存查找结果的缓冲区,String 类型的动态数组,调用时事先初始化, 如Redim strFiles(0)
''      FileCount 用于返回文件个数
''=============================================
Public Sub FindPath(ByVal strPath As String, strFiles() As String, FileCount As Long)
Dim strDirs()   As String
Dim strResult   As String
Dim FileLimit   As Long
Dim dirLimit    As Long
Dim dirCount    As Long
Dim I           As Long
   
    FileLimit = UBound(strFiles) + 1
    dirLimit = 0
    If Right$(strPath, 1) <> "/" Then strPath = strPath & "/"
    strResult = Dir(strPath, vbDirectory + vbSystem + vbReadOnly + vbHidden + vbNormal + vbArchive)
    Do While Len(strResult) > 0
        If strResult <> "." And strResult <> ".." Then
            If (GetAttr(strPath & strResult) And vbDirectory) <> vbDirectory Then
                If FileCount >= FileLimit Then
                    ReDim Preserve strFiles(FileLimit + 10)
                    FileLimit = FileLimit + 10
                End If
                strFiles(FileCount) = strPath & strResult
                FileCount = FileCount + 1
            Else
                If dirCount >= dirLimit Then
                    ReDim Preserve strDirs(dirLimit + 10)
                    dirLimit = dirLimit + 10
                End If
                strDirs(dirCount) = strPath & strResult
                dirCount = dirCount + 1
            End If
        End If
        strResult = Dir(, vbDirectory + vbSystem + vbReadOnly + vbHidden + vbNormal + vbArchive)
    Loop
   
    For I = 0 To dirCount - 1
        Call FindPath(strDirs(I), strFiles, FileCount)
    Next I
End Sub

 

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
117know
2014-03-26 · TA获得超过558个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:101万
展开全部
不知你查找文件的目的是什么,但不建议你这样做, 太费时间, 给用户的感觉是卡顿。
建议直接让用户输入, 或用户在文件对话框中去挑选。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友85f366cb43
2014-03-25 · TA获得超过781个赞
知道小有建树答主
回答量:920
采纳率:61%
帮助的人:456万
展开全部
手要动才行.
追问
不懂..复制去Google翻译翻译结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式