2012-09-08 4 views
-1

나는 C#에서 매우 간단한 프로그램을 만들었습니다. 컴파일 된 exe를 두 번 클릭하면 실행되고 작동합니다. 명령 프롬프트에서 exe를 실행하면 절대적으로 아무것도하지 않습니다. 관리자 명령 프롬프트에서도 실행 해 보았습니다. Windows 7입니다. 매우 실망 스럽습니다. RAN은C# 콘솔 프로그램이 명령 프롬프트에서 실행되지 않음

SendMessageW(Process.GetCurrentProcess().MainWindowHandle, WM_APPCOMMAND, Process.GetCurrentProcess().MainWindowHandle, (IntPtr)APPCOMMAND_VOLUME_MUTE); 
+4

잘못된 코드의 일부 예와 제공하는 코드를 둘러싼 일부 상황이 없으면 어떤 해결책도 제공 할 수 없습니다. – IAbstract

+0

이 프로그램은 Windows 시스템 볼륨을 음소거한다고하는 간단한 프로그램입니다. Visual Studio에서 실행하거나 EXE가 DOUBLE CLICKED에 설정된 경우 잘 작동합니다. COMMAND PROMPT에서 실행될 때, 프로그램은 아무것도하지 않습니다. 그게 내 문제 야. – mtear

+0

질문을 편집하고 코드를 추가하십시오. :) – IAbstract

답변

2

.

+0

명령 줄에서 실행하면 출력이 "0"으로 표시되는 이유는 무엇입니까?) = – mtear

+0

그것은 마법입니다.))) 그러나 현재 프로세스에는 메인 윈도우 핸들이 없으므로 MS Windows API의 경우 NULL 인 0을 의미합니다 – aiodintsov

+1

고마워요. 필자는 동일한 코드를 실행하는 보이지 않는 Windows 양식을 작성하여이 문제를 해결했으며 완벽하게 작동했습니다. 어떻게하면 콘솔 응용 프로그램을 만들 수 있을지에 대한 제안? – mtear

2

는 콘솔 프로그램이 더 메시지 루프 또는 메인 윈도우가 없을 수 있습니다 때

유일한 명령 프로그램이 실행됩니다. 따라서 SendMessageW()가 작동하지 않습니다. 당신이 달성 하려는지 모르겠지만,

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine(Process.GetCurrentProcess().MainWindowHandle); 
     Console.ReadKey(); 
    } 
} 

당신이 당신의 문제를 해결하는 데 도움이 될 수이 작은 프로그램이 아닙니다

+0

하지만 프로그램은 Visual Studio에서 잘 작동합니다. exe가 컴파일되고 exe 파일을 두 번 클릭하면 잘 작동합니다. 그러나 명령 프롬프트에서 exe를 입력하면 실행 된 것처럼 작동하고 아무 것도 수행하지 않습니다. 명령 프롬프트 창에서 실행할 때만 실패합니다. – mtear

관련 문제