728x90
반응형
728x170
▶ ProcessHelper.cs
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace TestProject
{
/// <summary>
/// 프로세스 헬퍼
/// </summary>
public static class ProcessHelper
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Import
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 윈도우 스레드 프로세스 ID 구하기 - GetWindowThreadProcessId(windowHandle, processID);
/// <summary>
/// 윈도우 스레드 프로세스 ID 구하기
/// </summary>
/// <param name="windowHandle">윈도우 핸들</param>
/// <param name="processID">프로세스 ID</param>
/// <returns>스레드 ID</returns>
[DllImport("user32")]
private static extern uint GetWindowThreadProcessId(IntPtr windowHandle, out uint processID);
#endregion
#region UWP 프로세스 여부 구하기 - IsImmersiveProcess(processHandle)
/// <summary>
/// UWP 프로세스 여부 구하기
/// </summary>
/// <param name="processHandle">프로세스 핸들</param>
/// <returns>UWP 프로세스 여부</returns>
[DllImport("user32")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool IsImmersiveProcess(IntPtr processHandle);
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Public
#region UWP 프로세스 여부 구하기 - IsUWPProcess(process)
/// <summary>
/// UWP 프로세스 여부 구하기
/// </summary>
/// <param name="process">프로세스</param>
/// <returns>UWP 프로세스 여부</returns>
public static bool IsUWPProcess(Process process)
{
return IsImmersiveProcess(process.Handle);
}
#endregion
#region UWP 프로세스 여부 구하기 - IsUWPProcess(windowHandle)
/// <summary>
/// UWP 프로세스 여부 구하기
/// </summary>
/// <param name="windowHandle">윈도우 핸들</param>
/// <returns>UWP 프로세스 여부</returns>
public static bool IsUWPProcess(IntPtr windowHandle)
{
uint processID;
GetWindowThreadProcessId(windowHandle, out processID);
Process process = Process.GetProcessById((int)processID);
return IsUWPProcess(process);
}
#endregion
}
}
728x90
▶ Program.cs
using System;
using System.Runtime.InteropServices;
using System.Threading;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Import
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 전경 윈도우 구하기 - GetForegroundWindow()
/// <summary>
/// 전경 윈도우 구하기
/// </summary>
/// <returns>윈도우 핸들</returns>
[DllImport("user32")]
private static extern IntPtr GetForegroundWindow();
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
Thread.Sleep(5000);
IntPtr windowHandle = GetForegroundWindow();
Console.WriteLine($"UWP 프로세스 여부 : {ProcessHelper.IsUWPProcess(windowHandle)}");
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] ZipArchive 클래스 : ZIP 파일 생성하기/추출하기 (기능 개선) (0) | 2021.05.21 |
---|---|
[C#/COMMON] 이미지 파일을 WebP 이미지 파일로 저장하기 (0) | 2021.05.17 |
[C#/COMMON] Thread 클래스 : 특정 사용자 권한으로 스레드 실행하기 (0) | 2021.05.14 |
[C#/COMMON] 리소스 풀(Resource Pool) 사용하기 (0) | 2021.05.13 |
[C#/COMMON] Visual Studio 확장 개발하기 (0) | 2021.05.13 |
[C#/COMMON] 스푸핑(spoofing) 기법을 사용해 시스템 권한으로 프로세스 실행하기 (0) | 2021.05.12 |
[C#/COMMON] 윈도우즈 서비스에서 시스템 권한으로 프로세스 실행하기 (0) | 2021.05.12 |
[C#/COMMON] Process 클래스 : Kill 메소드를 사용해 특정 디렉토리 내 프로세스 죽이기 (0) | 2021.05.11 |
[C#/COMMON] Process 클래스 : 메인 모듈 파일 경로 구하기 (0) | 2021.05.11 |
[C#/COMMON] 시간 계수기 사용하기 (0) | 2021.05.11 |
댓글을 달아 주세요