11 c# c++ vb.net vbscript batch-file
好吧有时候我正在打字,而且很少发生某些东西偷的重点,我读了一些解决方案(甚至是VB手表),但它们并不适用于我.是否有任何窗口范围的"手柄"可以处理任何焦点变化?
不要紧,在语言,C,C++,VB.NET,C#,任何.NET或窗口有关,批次,PoweShell,VBS脚本......只要我能够监控每一个重点的变化,并登录到文件/ cmd窗口/可视窗口.
就像是:
void event_OnWindowsFocusChange(int OldProcID, int NewProcID);
Run Code Online (Sandbox Code Playgroud)
会非常有用的.或者也许已经有了这方面的工具(我找不到?)
Mik*_*ray 17
一种方法是使用Windows UI Automation API.它揭示了一个全球焦点变化的事件.这是我想出的一个快速示例(在C#中).注意,您需要添加对UIAutomationClient和UIAutomationTypes的引用.
using System.Windows.Automation;
using System.Diagnostics;
namespace FocusChanged
{
class Program
{
static void Main(string[] args)
{
Automation.AddAutomationFocusChangedEventHandler(OnFocusChangedHandler);
Console.WriteLine("Monitoring... Hit enter to end.");
Console.ReadLine();
}
private static void OnFocusChangedHandler(object src, AutomationFocusChangedEventArgs args)
{
Console.WriteLine("Focus changed!");
AutomationElement element = src as AutomationElement;
if (element != null)
{
string name = element.Current.Name;
string id = element.Current.AutomationId;
int processId = element.Current.ProcessId;
using (Process process = Process.GetProcessById(processId))
{
Console.WriteLine(" Name: {0}, Id: {1}, Process: {2}", name, id, process.ProcessName);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7975 次 |
| 最近记录: |