Я использую:
CString params;
params.Format(_T("/A \"page=%d\" \"%s\"")
, page
, (LPCTSTR)pdf
);
::ShellExecute(AfxGetMainWnd()->GetSafeHwnd(), _T("open"), pdf_reader, params, NULL, SW_SHOW);
'pdf_reader' путь к Acrobat.exe. Я получаю это, как:
CString pdf_reader;
int hinst = (int)(::FindExecutable(pdf, NULL, pdf_reader.GetBuffer(1024)));
pdf_reader.ReleaseBuffer();
if(hinst > 32){
}
else{
CString csmess = _T("Error encountered while trying to load the helpfile:");
if(hinst == 0){
csmess += _T("\nThe system is out of memory or resources.");
}
else if(hinst == 31){
csmess += _T("\nThere is no association for pdf - file type.");
csmess += _T("\nInstall Adobe Reader (R) first.");
}
else if(hinst == ERROR_FILE_NOT_FOUND){
csmess += _T("\nThe specified file was not found:");
csmess += _T("\n") ;
csmess += pdf;
}
else if(hinst == ERROR_PATH_NOT_FOUND){
csmess += _T("\nThe specified path was not found.");
}
else if(hinst == ERROR_BAD_FORMAT){
csmess += _T("\nThe .exe file is invalid (non-Win32 .exe or error in .exe image).");
}
else{
csmess += _T("\nError encountered in FindExecutable.");
}
AfxMessageBox(csmess);
return FALSE;
}
Пожалуйста, отформатируйте код, это не Yahoo! Ответы. – LogicStuff
@KungPhoo благодарит за ваш быстрый ответ. Но что такое pdf_reader? если это каталог приложения для чтения PDF, то именно моя проблема заключается в том, чтобы каждый раз находить каталог в разных системах. – maryamT
У меня есть еще одна проблема. Если файл PDF был открыт ранее, я не могу перейти на определенную страницу с помощью этой команды. Фактически, страница в открывшемся файле не изменяется. – maryamT