백그라운드에서 .NET 콘솔 애플리케이션을 실행하는 방법
기본 제공 Windows 작업 스케줄러를 사용하여 15 분마다 실행되도록 예약 된 C #으로 작성된 콘솔 응용 프로그램이 있습니다.
실행될 때마다 검은 색 콘솔 상자가 실행되는 동안 팝업 된 다음 닫힙니다. 콘솔에 아무것도 쓰지 않습니다. 이것을 백그라운드에서 실행하는 방법이 있습니까?
쉬운!
믿기 어려워 보이지만 매력으로 작용합니다. 징후없이 사용자 지정 작업을 수행하려는 경우 일부 설정 프로젝트에 이것을 사용했습니다.
- 프로젝트를 Windows 응용 프로그램 프로젝트로 만듭니다 (이것은 어려운 부분입니다).
어떤 형태로도 호출하지 마십시오. 콘솔 응용 프로그램에서와 동일하게 유지하십시오.
class Program { static void Main(string[] args) { // Just don't call Application.Run(new frmMain(args)); // ... your code } }
이는 Windows 응용 프로그램 프로젝트가 첫 번째 양식과 참조를 제외하고는 콘솔과 실제로 다르지 않기 때문입니다. 완전히 숨겨진 실행입니다. 시도 해봐!
프로젝트> 속성> 애플리케이션 탭> 출력 유형을 "Windows 애플리케이션"으로 변경합니다.
더 이상 콘솔 창이 없습니다.
Windows API를 사용하여 콘솔 상자를 최소화 할 수 있습니다. 그렇지 않으면 실제로 폼을로드하지 않고을 호출하지 않는 Windows EXE 파일로 만들 수 있습니다 System.Windows.Forms.Application.Run()
.
콘솔을 최소화하는 코드 :
[DllImport( "user32.dll" )]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
public const int SW_SHOWMINIMIZED = 2;
IntPtr winHandle = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
ShowWindow(winHandle, SW_SHOWMINIMIZED);
Windows 서비스에 앱을 구현하는 것은 어떻습니까? 간격을 15 분으로 설정하고 timer_tick에서 작업을 실행할 수 있습니다.
이미 생성 된 Windows 콘솔 앱이있는 경우 앱의 출력 유형을 Windows 애플리케이션으로 변경하기 만하면됩니다.
프로젝트에서 : 속성> 애플리케이션으로 이동합니다. 출력 유형으로 "Windows 애플리케이션"을 선택합니다.
이것은 영향이 가장 적으며 Windows 작업 스케줄러가 동일한 작업을 계속 실행하도록 할 수 있습니다.
콘솔에 아무것도 쓰지 않으면 서비스로 만들 수 있습니다. http://msdn.microsoft.com/en-us/library/9k985bc9%28VS.80%29.aspx
현재 로그인 한 동일한 사용자로 실행하도록 예약 된 경우에만 표시됩니다. 엄청나게 긴 암호를 사용하여 컴퓨터에 다른 사용자를 만들고 관리자로 설정 (필요한 경우에만)하고 작업 실행을 예약합니다. 사용자.
이것은 쉬워요. 로그인 계정이 아닌 계정으로 실행되도록 작업을 설정합니다.
참조 URL : https://stackoverflow.com/questions/2686289/how-to-run-a-net-console-application-in-the-background
'IT TIP' 카테고리의 다른 글
YAML 대신 JSON을 사용하여 ActiveRecord 직렬화 (0) | 2020.12.31 |
---|---|
Github를 떠나, Git 저장소의 출처를 변경하는 방법은 무엇입니까? (0) | 2020.12.31 |
UICollectionView-수평 스크롤, 수평 레이아웃? (0) | 2020.12.31 |
마지막 요소 뒤를 제외하고 {{#each}} 루프의 요소 사이에 구분 기호를 추가하려면 어떻게해야합니까? (0) | 2020.12.31 |
MySQL : 쿼리에서 열 이름 또는 별칭 가져 오기 (0) | 2020.12.31 |