나는 몇 시간 동안 인터넷 검색을하고 찾은 모든 것을 시도했지만 작동하지 않는 것 같습니다.창 파일 이름 가져 오기가 작동하지 않습니다.
내 코드는 다음과 같습니다
private static long _i;
private static readonly System.Timers.Timer Timer = new System.Timers.Timer(1000);
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
[DllImport("user32.dll")]
private static extern int GetWindowModuleFileName(IntPtr hWnd, StringBuilder text, int count);
static void Main()
{
Timer.Elapsed += Timer_Elapsed;
Timer.AutoReset = true;
Timer.Start();
while (Timer.Enabled)
Console.ReadLine();
}
static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Console.WriteLine("-|- - " + _i + " - -|-");
Console.WriteLine("WindowHandle: " + GetForegroundWindow());
var buff = new StringBuilder(2048);
GetWindowModuleFileName(GetForegroundWindow(), buff, 1024);
Console.WriteLine("ModuleName: " + Path.GetFileName(buff.ToString()));
Console.WriteLine("-|- - | - -|-");
_i++;
}
이 코드의 출력은 항상이 같은 것입니다 :
-|- - 1 - -|-
WindowHandle: 8128962
ModuleName: ConsoleApplication.vshost.exe
-|- - | - -|-
하지만 크롬 또는 피들러와 같은 다른 응용 프로그램을 대상으로하는 경우에도, 항상 출력합니다 내 실행 파일 이름 또는 파일 이름 없음. 누락 된 문제가 있습니까?
의 C#을 구현하면 경로 등 무엇처럼 ... 더 많은 코드를 줄 수있다? – Alker
@Alker 경로가 무엇을 의미합니까? 그것은 모든 관련 코드 여야합니다. – therealtbs
오, 내 비주얼 스튜디오가 도청했다 ... – Alker