2
public static string GetActiveProcessFileName()
{
try
{
IntPtr hwnd = GetForegroundWindow();
uint pid;
GetWindowThreadProcessId(hwnd, out pid);
Process p = Process.GetProcessById((int)pid);
// return p.MainModule.FileName;
CommandLine = GetMainModuleFilepath((int)pid);
if (CommandLine != null)
{
var array = CommandLine.Split('"');
if (array.Length == 3)
{
if (array[array.Length - 1].Equals(" "))
{
return "Application";
}
if (!array[array.Length - 1].Equals(" "))
{
return array[array.Length - 1];
}
return null;
}
if (array.Length == 5)
{
return array[array.Length - 2];
}
return "Explorer";
}
return "Explorer";
}
catch (Exception ex)
{
ErrorLog.ErrorLog.Log(ex);
return "Explorer";
}
}
내가 실행하는 경우 "[커맨드]".. correnctly 현재 열려있는 파일의 이름을 가져 내 전 abc.txt, aaa.txt, dde.txt 같은 3 개 메모장 파일을 열 successfully..Now application.executed 그 중 하나를 열면 파일이 정상적으로 표시됩니다 ...Windows 양식 응용 프로그램을 사용하여 활성 프로세스 파일 이름을 가져 오는 방법은 무엇입니까? 여기
워드 문서 3 개 파일을 하나씩 열거 나 파일을 Excel.I 열었을 경우에만 처음 열린 파일 이름 만 저장됩니다 ... 어떻게 할 수 있습니까? 나는 열린 문서의 정확한 결과를 얻는다 왜 나는이 문제가 열려있는 단어 또는 엑셀 또는 pdf 파일 열려있는 situage를 얻었 는가 ...
아니 정확히 당신이 찾고 있지만, 많은 응용 프로그램은 메모장과 같은 새로운 문서에 대한 새로운 프로세스를 생성되지 않도록 조심하는 것을 확인합니다. 하나의 프로세스가 하나의 최상위 창을 의미하지 않으며 창 제목이 "문서 파일 이름"과 관련이 없습니다 ... –
첫 번째로 Ex.docx 파일을 연 경우 프로세스 파일 이름이 Ex.docx ... 인 경우 열린 상태 ... 이제 다른 단어 파일을 엽니 다. Ex2.docx 파일처럼 ... 이제 Ex2.docx가 열리고 싶습니다.하지만 처음에는 열렸습니다. Ex.docx 이름이 매번 표시됩니다 ... If i Ex.docx 파일을 닫으면 파일 이름이 Ok입니다. – ramaraog
"프로세스 파일 이름"이란 무엇입니까? (나는 그것이 실행 파일의 이름이 될 것으로 기대하지만, 귀하의 의견은 문서 이름을 보여줍니다) ... –