Login
Как программно открыть Acrobat Reader ?
NEW 16.02.07 17:36
Привет.
Я работаю с Visual Studio C++ 6.0.
Мне надо программно открыть Acrobat Reader и потом pdf - file. Как это можно сделать?
Я работаю с Visual Studio C++ 6.0.
Мне надо программно открыть Acrobat Reader и потом pdf - file. Как это можно сделать?
стойте там и слушайте сюда, именно отсюда будет проистекать
NEW 16.02.07 18:06
in Antwort krys 16.02.07 17:36
Посмотри в документации функцию CreateProcess. Одним из ее параметров и является имя образа программы (как точно у тебя не знаю, скорей всего "acroread.exe")
А есть параметр, который и будет файлом, который хочешь открыть.
А есть параметр, который и будет файлом, который хочешь открыть.
http://denis-aristov.ucoz.com
NEW 16.02.07 18:17
in Antwort krys 16.02.07 17:36
Вообще под виндой не так все просто. До вызова CreateProcess нужно будет пару структур объявить.
Вообще лучше вот здесь почитай: http://doks.gorodok.net/?p=553#h1t2
Вообще лучше вот здесь почитай: http://doks.gorodok.net/?p=553#h1t2
http://denis-aristov.ucoz.com
NEW 17.02.07 18:34
Можно и просто сразу окрыть фвйл ПДВ. Есле Файлы пдф у пользователя открываються автомотически Acrobat Reader.
in Antwort krys 16.02.07 17:36
В ответ на:
Мне надо программно открыть Acrobat Reader и потом pdf - file. Как это можно сделать?
Мне надо программно открыть Acrobat Reader и потом pdf - file. Как это можно сделать?
Можно и просто сразу окрыть фвйл ПДВ. Есле Файлы пдф у пользователя открываються автомотически Acrobat Reader.
NEW 17.02.07 20:52
in Antwort .:Nissan:. 17.02.07 18:34
NEW 17.02.07 20:59
in Antwort Chipolino 17.02.07 20:52
Через дельфи это возможно! Ты сам пробывал в твоём языке програм.?
NEW 17.02.07 21:48
Может это в виндах и возможно , если MIME тип настроены , а если не настроены ?
Путь к просмотрщику PDF нужно брать с конфига .
in Antwort .:Nissan:. 17.02.07 20:59
В ответ на:
Через дельфи это возможно! Ты сам пробывал в твоём языке програм.?
Через дельфи это возможно! Ты сам пробывал в твоём языке програм.?
Может это в виндах и возможно , если MIME тип настроены , а если не настроены ?
Путь к просмотрщику PDF нужно брать с конфига .
NEW 19.02.07 10:07
in Antwort kashej 16.02.07 18:17
спасибо за совет, но почему-то acrobat reader (для Reader 7.0 - AcroRd32(.exe) )не открывается.
Если я передаю "Notepad"-результат положительный :(.
НЕ знаешь в чем может быть дело?
Если я передаю "Notepad"-результат положительный :(.
НЕ знаешь в чем может быть дело?
стойте там и слушайте сюда, именно отсюда будет проистекать
NEW 19.02.07 16:56
in Antwort krys 19.02.07 10:07
Тогда используй абсолютный путь к программе. Например "C:\Program Files\Adobe\Acrobat 6.0\Acrobat\Acrobat.exe".
http://denis-aristov.ucoz.com
NEW 19.02.07 17:58
in Antwort kashej 19.02.07 16:56
NEW 19.02.07 18:07
in Antwort Murr 19.02.07 17:58
NEW 19.02.07 19:59
in Antwort Simple 19.02.07 11:40
NEW 19.02.07 20:08
in Antwort Chipolino 19.02.07 19:59
Должно работать судя по http://www.vbarchiv.net/faq/ds_shellexecute.php
Я ее как-то использовал, но там вроде вместе с нужной программой еще и DOSовское окно открывается.
Поэтому я на CreateProcess и перешел.
Я ее как-то использовал, но там вроде вместе с нужной программой еще и DOSовское окно открывается.
Поэтому я на CreateProcess и перешел.
http://denis-aristov.ucoz.com
NEW 19.02.07 21:58
in Antwort kashej 19.02.07 20:08
странно, у меня никогда ниче левого не открывалось (вызывал т.о. кучу муйни для открывания распространенных расширений)
NEW 19.02.07 22:12
in Antwort digital.pilot 19.02.07 21:58
Ну может быть... Я говорю, давно это было когда я ShellExecute использовал. Просто CreateProcess элегантней на мой взгляд. И процесс можно контроллировать - запустить его параллельно к вызывающей программе или же заставить вызывающую программу ждать завершения процесса.
Может это все и с помощью ShellExecute можно реализовать - не буду спорить. В общем - скорее тут вопрос вкуса.
Может это все и с помощью ShellExecute можно реализовать - не буду спорить. В общем - скорее тут вопрос вкуса.
http://denis-aristov.ucoz.com
NEW 19.02.07 22:33
in Antwort krys 19.02.07 10:07
На самом деле все прекрасно работает: и ShellExecute и CreateProcess и то что абсолютный путь к акробату нужно передавать тоже правильно и не нужно знать где стоит система (хотя и это не проблема 1)SHGetSpecialfolderLocation() повозвращает все что хочешь, 2) системная переменная %windir% дает путь установки виндовоза ну а там уж... и т.д. - всего 1000000 способов). Лезем дружно в региcтри и заценяем как сам експлорер открывает пдф. HKEY_CLASSES_ROOT\AcroExch.Document\shell\Open\command а там написано например такое "C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe" "%1". Вот собственно и вся мулька. Это когда юзер даблкликает на пдф файле то експлорер это трансформирует в такой вот вызов. И больше тут ничего нет, ни ДОСовских окон, ни путей непонятных. Хотя я кажется понял в чем дело. У тебя может не работать
по одной очень простой причине. Проверь чтобы пути содержащие пробел брались в кавычки и смело запускай
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
const char* lpcszToExecution = "\"C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe\" \"C:\Program Files\my.pdf\"";
CreateProcess(NULL, lpcszToExecution, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
const char* lpcszToExecution = "\"C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe\" \"C:\Program Files\my.pdf\"";
CreateProcess(NULL, lpcszToExecution, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
Я вам один умный вещь скажу - но только вы не обижайтесь...
NEW 19.02.07 22:39
in Antwort Такой-сякой 19.02.07 22:33
И насчет ДОСовских окон... Флаг CREATE_NO_WINDOW просто таки необходим
Я вам один умный вещь скажу - но только вы не обижайтесь...