c# - 当前焦点程序/文件名 (Windows)

标签 c# windows sysinternals

我正在用 C# 编写一个应用程序,该应用程序需要了解用户关注的当前程序和文件。

即我想编写如下函数:

string GetProgramNameCurrentlyInFocus() { ... }
string GetFilenameCurrentlyInFocus() { ... }

返回当前程序可执行文件名(例如“word.exe”)或实际的官方程序名称(例如“Microsoft Word 2007”),以及用户使用当前程序正在查看的当前文件(例如分别为“C:\Users\Mat\Documents\essay.doc”)。

像 RescueTime 和 SysInternals 这样的产品可以做这些事情,所以这是可能的。我可以获取当前焦点程序的标题,但这还不够好,因为有些程序在标题中没有说出程序名称。

那么,有人知道如何编写这样的函数吗?有什么建议或我应该看的地方吗?

注意:我已经查看了 SysInternal,尽管仍然免费,但自从 Microsoft 买下它们以来,源代码就不再可用。

~垫子

最佳答案

您可以使用GetForgoundWindow使当前窗口成为焦点。我不知道如何获取打开的文件。

关于c# - 当前焦点程序/文件名 (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421780/

相关文章:

windows - SysInternal 的 handle.exe 的输出

windows - 通过 PsExec 在远程计算机中执行批处理文件

azure - 无法 PsPing 到 Azure VM

c# - 当存在内部异常时,是否有理由保留外部异常?

c# - 无法在 C# 中使用 SSH.NET 上传文件 SFTP - 权限被拒绝

windows - 如何从 Perl 中的管道进行非阻塞读取?

mysql - 将 Windows 路径传递给 MySQL 存储过程

c# - MVC 模型绑定(bind)到嵌套类

c# - 更新面板、确认按钮和更新进度似乎无法协同工作

windows - 如何以编程方式计算上下文切换?