Winforms 앱 (C++/cli)에서 기본 Windows 사운드 레코드를 시작하고 싶습니다. "실행"대화 상자에서 Vista/7 명령은 "사운드 레코더"입니다.Windows 사운드 레코더 앱 실행
System::Diagnostics::Process::Start("soundrecorder");
을하지만 그것은 System.ComponentModel.Win32Exception (메시지 : 지정한 파일을 찾을 수 없습니다) 발생 : 그래서 가장 쉬운 방법은 시작되었다. 그래서 나는 실제 경로를 사용했습니다 :
String^ path = Environment::GetFolderPath(Environment::SpecialFolder::System);
path = System::IO::Path::Combine(path, "soundrecorder.exe");
System::Diagnostics::Process::Start(path);
같은 결과입니다. 하드 코딩 전체 경로도 실패합니다. "mspaint"와 같은 다른 명령은 올바르게 실행됩니다.
내 환경/현재 사용자/컴퓨터에 문제가 있다고 생각했습니다. 그럼 C#으로 바보 같은 프로그램을 작성 :
public abstract class StupidProgram{
public static void Main(string[] args)
{
Process.Start("soundrecorder");
}
}
그것은 작동하고, 더 : 내 응용 프로그램에서 "StupidProgram.exe"를 실행하면, 너무 작동합니다.
응용 프로그램은 C++/CLI에서 32 비트 프로그램으로 코딩되어 있습니다. Windows 7 64 비트에서 작업하고 있습니다. 필자는 Windows 7 32 비트에서이 응용 프로그램을 테스트했으며 작동하므로 32/64 비트 호환성 문제가 발생합니다.
이 동작에 대해 알고 계십니까?
이 예외에는 메시지와 오류 코드가 있습니다. 어쩌면 당신은 실제로 무엇이 잘못되었는지 볼 수 있습니다. – nvoigt
나에게 보이는 것은 경로 문제이다. C#은 더 지능적으로되었고 컴파일러는 C# 코드로 잘 작동한다. –