C#에서는 WinFrom 프로세스를 시작하는 두 가지 방법만 허용합니다.
방법 1: 여러 프로세스만 실행 금지
clipboardPRint로 일반 복사본 보기
·········10·······20····· ···30········40········50·······60·········70········80 ·········90········100·······110·······120········130······ ·140· ······150
[STAThread]
public static void Main()
{
bool ret
System.Threading.Mutex mutex = new System.Threading. Mutex(true , application.ProductName, out ret);
if (ret)
{ System.Windows.Forms.Application.EnableVisualStyles(); //이 두 줄은 XP 시각적 스타일을 구현합니다.
System. .Forms.Application.DoEvents();
System.Windows.Forms.Application.Run(new Main())
// Main이 프로그램의 기본 형식입니다. 이 문장을 사용하지 마세요 이 프로그램이 종료됩니다. ", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
// 프롬프트 메시지는 삭제할 수 있습니다.
Application.Exit();//프로그램 종료 .Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out ret);
if (ret)
{
System.Windows.Forms.Application.EnableVisualStyles(); / /이 두 줄은 XP 시각적 스타일을 구현합니다.
System.Windows.Forms.Application.DoEvents();
System.Windows.Forms.Application.Run( new Main());
// Main은 프로그램의 주요 형태입니다. 콘솔 프로그램인 경우 이 문장을 사용하지 마세요.
같은 애플리케이션이 이미 실행 중이므로 한 번에 여러 프로그램을 실행하지 마세요. 같은 시간입니다. 이 프로그램이 곧 종료됩니다.
Application.Exit();//프로그램 종료
}
}
방법 2: 여러 프로세스 실행을 비활성화하고, 반복 실행 시 이전 프로세스 활성화
클립보드 인쇄로 일반 사본을 보시겠습니까?
·········10········20·········30········40 ·········50········60········70·······80·········90·· ···· ··100········110········120········130········140······· 150
[STAThread]
public static void Main()
{ //실행 중인 인스턴스를 가져옵니다.
프로세스 인스턴스 = RunningInstance()
if (instance == null)
{ System .Windows.Forms.Application.EnableVisualStyles(); //이 두 줄은 XP 시각적 스타일을 구현합니다.
System.Windows.Forms.Application.DoEvents();
//여기에는 다른 예가 없습니다. 양식을 보여주세요.
Application.Run(new Main());
}
else
{
//이 프로세스의 또 다른 인스턴스가 있습니다.
HandleRunningInstance(인스턴스);
}
}
공개 정적 프로세스 RunningInstance()
{
프로세스 현재 = Process.GetCurrentProcess();
프로세스[] 프로세스 = Process.GetProcessesByName(current.ProcessName);
//루프 실행 중인 프로세스를 통해 동일한 이름
foreach(프로세스의 프로세스 프로세스)
{
//현재 무시 프로세스
if (process.Id != current. Id)
{
//프로세스가 exe 파일에서 실행되고 있는지 확인하세요.
if (Assembly.GetExecutingAssembly().Location.Replace("/", "\") == current.MainModule.FileName)
{
//반환 프로세스 인스턴스.
반품 절차;
}
}
}
//아니요 다른 인스턴스를 찾았습니다. 찾았으며 반환 null입니다.
null을 반환합니다.
}
public static void HandleRunningInstance(프로세스 인스턴스)
{
//창이 최소화되지 않았는지 확인하세요. 파일, WS_SHOWNORMAL);
//설정 실제 인스턴스를 전경으로 설정 창
SetForegroundWindow(instance.MainWindowHandle);
}
[DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
비공개 const int WS_SHOWNORMAL = 1;
[STAThread]
public static void Main()
{
//실행 중인 인스턴스를 가져옵니다.
프로세스 인스턴스 = RunningInstance();
if (인스턴스 == null)
{
System.Windows.Forms.Application.EnableVisualStyles(); //这两行实现 XP 可视风格
System.Windows.Forms.Application.DoEvents();
//여기에는 다른 인스턴스가 없습니다. 양식을 보여주세요.
Application.Run(new Main());
}
else
{
//이 프로세스의 또 다른 인스턴스가 있습니다.
HandleRunningInstance(인스턴스);
}
}
public static Process RunningInstance()
{
현재 프로세스 = Process.GetCurrentProcess();
프로세스[] 프로세스 = 프로세스 .GetProcessesByName(current.ProcessName);
//루프 실행 중인 프로세스를 통해 에서 동일한 이름
foreach(프로세스의 프로세스 프로세스)
{
//무시 현재의 프로세스
경우에 (process.Id != current.Id)
{
//프로세스가 exe 파일에서 실행되고 있는지 확인하세요.
if (Assembly.GetExecutingAssembly().Location.Replace("/", "\") == current.MainModule.FileName)
{
//반환 기타 프로세스 인스턴스.
반품 프로세스;
}
}
}
//아니요 다른 인스턴스가 발견되었습니다. 반환 null입니다.
null 반환;
}
public static void HandleRunningInstance(프로세스 인스턴스)
{
//창이 최소화되지 않았는지 확인하세요. owHandle, WS_SHOWNORMAL) ;
//실제 인스턴스를 전경으로 설정합니다. 포인트 hWnd, int cmdShow);
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private const int WS_SHOWNORMAL = 1;

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C#을 사용한 Active Directory 가이드. 여기에서는 소개와 구문 및 예제와 함께 C#에서 Active Directory가 작동하는 방식에 대해 설명합니다.

C#의 액세스 수정자에 대한 안내입니다. 예제 및 출력과 함께 C#의 액세스 한정자의 소개 유형에 대해 논의했습니다.

C#의 난수 생성기 가이드입니다. 여기서는 난수 생성기의 작동 방식, 의사 난수 및 보안 숫자의 개념에 대해 설명합니다.

C# 데이터 그리드 뷰 가이드. 여기서는 SQL 데이터베이스 또는 Excel 파일에서 데이터 그리드 보기를 로드하고 내보내는 방법에 대한 예를 설명합니다.
