다음 부터 질문 올릴 때는, 사용하는 OS 버전이 XP인지 아니면 Win 7 인지..
그리고 Win 7이라면 32비트 버전인지 아니면 64비트 버전인지 그런 내용도 적어줘야
답변하는 분들도 편합니다.
이미 말씀드린 대로... Vista 이후 호환성 문제 때문에 Shell 펑션을 사용해 보라고 답변 드렸었죠.
Window 7 64 비트 OS라면... 코드를 다음과 같이 작성해서 컴파일 해보세요.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Wow64DisableWow64FsRedirection(&prevSet);
ShellExecuteW(0, L"open", L"osk.exe",0,0,SW_SHOW);
Wow64RevertWow64FsRedirection(prevSet);
}
위의 코드는...
64비트 OS 환경에서 32비트 프로그램이 시스템 디렉토리를 액세스하게 될 경우...
시스템 디렉토리의 Redirection 문제가 일어나는데.. 그런 문제를 피해서 동작이 제대로
될수 있도록 처리해주는 겁니다.
|