shellexecuteex 예제

  • 0

shellexecuteex 예제

Category : Senza categoria

다음 예제에서는 ShellExecuteEx API 함수를 사용합니다. 유형: LPCTSTR 지정된 동사를 실행할 파일 또는 개체를 지정하는 null 종료 된 문자열에 대한 포인터입니다. Shell 네임스페이스 개체를 지정하려면 정규화된 구문 분석 이름을 전달합니다. 모든 동사가 모든 개체에서 지원되는 것은 아닙니다. 예를 들어 모든 문서 형식이 “인쇄” 동사를 지원하는 것은 아닙니다. 상대 경로가 lpDirectory 매개 변수에 사용되는 경우 lpFile에 대한 상대 경로를 사용하지 마십시오. 이 경우 작업이 실행되는 문자 `url`의 배열입니다. ShellExecute를 사용하면 특정 파일 형식에 등록된 프로그램의 이름이나 위치를 알 필요가 없습니다. Windows는 당신을 위해 그것을 처리합니다. 예를 들어. PDF 파일, 독자, Acrobat 또는 다른 PDF 읽기 응용 프로그램이 설치되어있는 한, 윈도우는 그것을 시작하고 당신을 위해 PDF를로드합니다.

응용 프로그램은 먼저 Windows 디렉터리PIDL을 검색하고 첫 번째 .bmp 파일을 찾을 때까지 내용을 등록합니다. 이전 예제와 달리 IShellFolder:GetDisplayNameOf는 표시 이름 대신 파일의 구문 분석 이름을 검색하는 데 사용됩니다. 이 폴더는 파일 시스템 폴더이므로 구문 분석 이름은 ShellExecuteEx에 필요한 경로입니다. 각 동사는 콘솔 창에서 응용 프로그램을 시작하는 데 사용되는 명령에 해당합니다. 열려 있는 동사는 일반적으로 지원되기 때문에 좋은 예입니다. .exe 파일의 경우 열기만 응용 프로그램을 시작합니다. 그러나 특정 파일에서 작동하는 응용 프로그램을 시작하는 데 더 일반적으로 사용됩니다. 예를 들어 Microsoft 워드패드에서 .txt 파일을 열 수 있습니다. .txt 파일의 열린 동사는 다음과 같은 명령에 해당합니다: 연결된 프로그램을 먼저 열지 않고 파일 목록 상자에 제시된 문서를 두 번 클릭하여 열고 싶을 수도 있습니다. 프로그램에서 사용자를 홈 페이지로 이동시키는 링크 레이블을 상상해 보십시오. 당신은 기본 Windows 이메일 클라이언트 프로그램을 통해 델파이 응용 프로그램에서 직접 이메일을 보내는 것에 대해 무엇을 말합니까? .

ShellExecuteEx가 이러한 유형의 셸 확장 중 하나를 사용하지 않는 경우가 있으며 이러한 인스턴스는 COM을 전혀 초기화할 필요가 없습니다. 그럼에도 불구하고 이 함수를 사용하기 전에 항상 COM을 활성화하는 것이 좋습니다. HINSTANCE ShellExecute (_In_opt_ HWND hwnd hwnd, _In_opt_ LPCTSTR lpOperation, _In_LPCTSTR lpFile, _In_opt_ LPCTSTR lpParameters, _In_opt_ LPCTSTR lpDirectory, _In_Int nShowCmd); 문자열로 URL을 주어진 마이크로 소프트 윈도우 OS에서 C ++ 코드를 사용하여 열립니다. 예: ShellExecute 또는 ShellExecuteEx를 사용하여 .txt 파일을 열면 지정된 파일을 인수로 사용하여 Wordpad.exe가 시작됩니다. 일부 명령에는 응용 프로그램을 올바르게 시작하는 데 필요에 따라 추가할 수 있는 플래그와 같은 추가 인수가 있을 수 있습니다. 바로 가기 메뉴 및 동사에 대한 자세한 내용은 바로 가기 메뉴 확장을 참조하십시오. 반환 값 유형: HINSTANCE 함수가 성공하면 32보다 큰 값을 반환합니다. 함수가 실패하면 오류의 원인을 나타내는 오류 값을 반환합니다. 반환 값은 16비트 Windows 응용 프로그램과이전 버전과의 호환성을 위해 HINSTANCE로 캐스팅됩니다. 그러나 그것은 진정한 HINSTANCE가 아닙니다.

다음 샘플 콘솔 응용 프로그램은 ShellExecuteEx의 사용을 보여 줍니다. 명확성을 위해 대부분의 오류 검사 코드가 생략되었습니다. 참조: https://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx 공공 구조 SHELLEXECUTEINFO 퍼블릭 cbSize 정수 공공 fMask 로 정수 공개 hwnd 로 IntPtr public 문자열 문자열로 공개 lpFile 공용 lpParameters 문자열 <marshalas(관리되지 않는 Type.LPTStr)] 공개 lpDirectory 문자열 희미한 nShow 로 문자열 dim hinstApp intPtr Dim lpIDList IntPtr IntPtr Public dwHotKey로 문자열 공용 hkeyclass로 공개 lpClass IntPtr 공용 hicon으로 IntPtr End 구조 실행 응용 프로그램 (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO) 응용 프로그램을 실행하거나 Win32 환경에서 파일을 실행하려면 ShellExecute Windows API 함수를 사용합니다.