문제

나는 사용하려고합니다 shellexecute Excel에서 파일을 엽니 다. MSDN 포럼의 기능에 대해 읽고 있었고, 첫 번째 매개 변수 인 핸들에 대한 Following 정보를 찾았습니다.

"사용자 인터페이스 (UI) 또는 오류 메시지를 표시하는 데 사용되는 소유자 창에 대한 HWND [in]. 작업이 창과 연관되지 않으면이 값이 널이 될 수 있습니다."

또한 이것을 부모 창에 대한 핸들이라고 들었습니다. 부모/소유자 창은 무엇입니까? 아래에서 볼 수 있듯이 손잡이에 NULL을 사용하고 있지만 작업은 실제로 창과 연관되어 있으므로 핸들이 필요할 것입니다. 그러나 손잡이에 무엇을 사용할 것인지 모르겠습니다.

ShellExecute(NULL, "open" ,"Excel.exe", 
    "C:\\Documents and Settings\\Lab1\\My Documents\\Test.xls", 
    NULL, SW_SHOWNORMAL);
도움이 되었습니까?

해결책

그것은이다 보통 0

HWND : 가능한 메시지 상자를받을 부모 창. 이 매개 변수는 일반적으로 0입니다.

최상위 창을 나타냅니다. 열리는 창에는 부모가 없으며 응용 프로그램이 실행되는 기본 창입니다.

응용 프로그램 (ALT-TAB) 사이를 전환 할 때 다음 상단 수준 창 (예 : 부모 핸들이있는 다음 앱이 0과 동일)을 표시합니다 (예 : 예를 들어).

물론, 앱의 부모 데스크탑 창 자체가 될 수 없습니다:

부모가 getDeskTopWindow () 인 자식 창을 만들면 이제 창문이 데스크탑 창에 붙어 있습니다. Window가 MessageBox ()와 같은 것을 호출하면 Modal 대화 상자이며 위의 규칙이 시작되고 데스크탑이 비활성화되고 기계가 토스트됩니다.

길을 위해 간단한 인용문을 둘러싼 이중 인용문을 조언합니다. " ' ... ' "

"'C:\\Documents and Settings\\Lab1\\My Documents\\Test.xls'"

이중 이중 인용문으로 작동 할 수도 있습니다 (테스트되지 않은) : " "" ... "" "

"""C:\\Documents and Settings\\Lab1\\My Documents\\Test.xls"""

, 다음과 같이 설명합니다 이 스레드.


실제로 언급했듯이 당신의 다른 질문 ~에 의해 앤디 그리고 메시 딘, 그리고, 그리고 Shellexecute 기능 매뉴얼, 파일을 열고 경로를 매개 변수로 전달할 수 있습니다.

ShellExecute( NULL, "open", 
              "Test.xls", "C:\\Documents and Settings\\Lab1\\My Documents\\", 
              NULL, SW_SHOWNORMAL);

즉, Excel은 .xls 확장 파일을 열기위한 기본 응용 프로그램입니다.

다른 팁

"부모 창에 대한 핸들"으로 묘사 된 것을 보면 그것은 창입니다. 될거야 함수가 표시하기로 선택한 UI의 상위 창이 표시됩니다. 당신이 통과하는 핸들은 당신이 전화 할 때 다른 창의 부모가 될 수도 있고 아닐 수도 있습니다. ShellExecute, 그러나 그것은 중요하지 않습니다.

왜 당신은 구체적으로 엑셀을 흉내 내는가? 그들이 OpenOffice.org를 가지고 있다면, 그들은 깨진 것입니다 - 당신은 실제로 스프레드 시트 파일에서 "열린"동사를 호출해야한다. "Excel"이름으로 하드 코드를 할 필요는 없다.

구체적인 이유가 있습니까? shellexecute를 사용하고 있습니까?

System.Diagnostics.] Process.Start [파일 이름]을 사용하여 XLS 파일을 열 수 있습니다.
사과드립니다. 태그를 보지 않고 .NET를 사용하고 있다고 가정합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top