在VB.NET中获取最常用的应用程序

时间:2008-12-28 12:22:29

标签: vb.net

有没有办法通过VB.NET获得最常用的应用程序?我正在开发一种爱好项目,作为一种快速发射器类型的东西,并认为这将完美地放在主窗体上。

如果可能的话,有人能够向我解释添加/删除应用程序如何设法获取已使用应用程序的频率?如果我能在像XP / Vista开始菜单这样的列表中获取它也会很好。

非常感谢任何指导。 :)

5 个答案:

答案 0 :(得分:2)

看起来您可以找到有关程序在注册表项中运行频率的信息:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\ 

有更多解释here和.NET程序here可以使用VB.Net进行逆向工程以获取计数值。

答案 1 :(得分:1)

这可能是一个体面的起点。看起来Windows在确定应用程序使用频率方面做得很糟糕。

http://blogs.msdn.com/oldnewthing/archive/2004/07/09/178342.aspx

答案 2 :(得分:0)

根据此posting,信息存储在以下密钥中找到的SlowInfoCache Registry值的前28个字节中:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache

值的格式是(在VB.Net中):

Structure SlowInfoCache
        Dim cLen As Integer         ' size of the SlowInfoCache (552 bytes)
        Dim Flag As Boolean         ' has a name
        Dim Size As Long            ' program size in bytes
        Dim LastUsed As Long        ' API-style FILETIME
        Dim Frequency As Integer    ' 0-2 = rarely; 3-9 = occassionaly; 10+ = frequently
        Dim Path As String          ' remaining 524 bytes (max path of 260 + null) in unicode
End Structure

如果您对控制面板中显示的其他信息感兴趣 - >添加或删除您将在以下注册表项下为每个产品列出的程序:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

答案 3 :(得分:0)

或者当然这些解决方案仅跟踪shell(explorer.exe)用于通过快捷方式启动程序的时间(所有开始菜单项都是快捷方式)。这就是为什么它如此不准确。

FWIW我不知道有任何跟踪程序图像执行频率的微电脑操作系统。

我建议你的启动器工具,你最初使用快速启动栏中的快捷方式填充它,只是让用户很容易配置而不是尝试自动执行任何操作 - 自动化的东西不起作用用户期望的是用户界面设计中最讨厌的方面之一。

答案 4 :(得分:0)

您应该问自己的一个问题是,您将如何确定频率?

您打算根据运行应用程序的次数或运行应用程序的时间长度来确定它吗?