有没有办法通过VB.NET获得最常用的应用程序?我正在开发一种爱好项目,作为一种快速发射器类型的东西,并认为这将完美地放在主窗体上。
如果可能的话,有人能够向我解释添加/删除应用程序如何设法获取已使用应用程序的频率?如果我能在像XP / Vista开始菜单这样的列表中获取它也会很好。
非常感谢任何指导。 :)
答案 0 :(得分:2)
看起来您可以找到有关程序在注册表项中运行频率的信息:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\
答案 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)
您应该问自己的一个问题是,您将如何确定频率?
您打算根据运行应用程序的次数或运行应用程序的时间长度来确定它吗?