У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется.
4 акробат открывается нормально. Причем 5 акробат открывается нормально и на Win'98 и на XP.
Что касается ShellExecute — параметы Verb (Operation) и ShowCmd использовались во всех возможных комбинациях — эффект один и тот же. Причем в Win2000 функция возвращает значение больше 32, то есть все должно работать.
AS>У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется.
А у тебя SoftIce там не стоит? У меня такая фигня была при запушенном SoftIce (4-ый акробат работал нормально, 5-ый показывал заставку и отваливался)
AS>>У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется.
T>А у тебя SoftIce там не стоит? У меня такая фигня была при запушенном SoftIce (4-ый акробат работал нормально, 5-ый показывал заставку и отваливался)
Здравствуйте, AmericanSpy, Вы писали:
AS>4 акробат открывается нормально. Причем 5 акробат открывается нормально и на Win'98 и на XP.
А та же самая команда (start myfile.pdf), введенная в окне Run, отрабатывает?
А что записано в HKEY_CLASSES_ROOT\.pdf (у меня AcroExch.Document) и в HKEY_CLASSES_ROOT\AcroExch.Document\shell\open\command (у меня "C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe" "%1")?
R>А та же самая команда (start myfile.pdf), введенная в окне Run, отрабатывает?
Да так все работает. Собственно, и двойной клик на имени файла в Explorer'е тоже работает. R>А что записано в HKEY_CLASSES_ROOT\.pdf (у меня AcroExch.Document) и в HKEY_CLASSES_ROOT\AcroExch.Document\shell\open\command (у меня "C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe" "%1")?
В open\command указано "D:\Program Files\Adobe\Acrobat 5.0\Acrobat\Acrobat.exe" "%1"
так что по идее должно работать
Странно, что только в W2K не работает
Причем из этого же приложеня вызываются и RTF-файлы в MSWord, тем же способом, но без проблем на любой машине.
Здравствуйте, AmericanSpy, Вы писали:
AS>В open\command указано "D:\Program Files\Adobe\Acrobat 5.0\Acrobat\Acrobat.exe" "%1" AS>так что по идее должно работать AS>Странно, что только в W2K не работает AS>Причем из этого же приложеня вызываются и RTF-файлы в MSWord, тем же способом, но без проблем на любой машине.
А права на чтение этих веток никто не сшибал? Или под админом программа тоже не работает?
В любом случае, можно для быстрого решения сэмулировать ShellExecute (либо через start, либо через чтение реестра+CreateProcess) и спокойно разбираться в причинах неработы ShellExecute.
Здравствуйте, AmericanSpy, Вы писали:
AS>Добрый день!
AS>У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется. AS>4 акробат открывается нормально. Причем 5 акробат открывается нормально и на Win'98 и на XP. AS>Что касается ShellExecute — параметы Verb (Operation) и ShowCmd использовались во всех возможных комбинациях — эффект один и тот же. Причем в Win2000 функция возвращает значение больше 32, то есть все должно работать.
AS>Подскажите, плз, в чм может быть дело?
Здравствуйте, trial, Вы писали:
AS>>У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется.
T>А у тебя SoftIce там не стоит? У меня такая фигня была при запушенном SoftIce (4-ый акробат работал нормально, 5-ый показывал заставку и отваливался)
И в этом виноват параноидальный DocBox плагин. Прибейте его, и Acrobat будет работать нормально при запущеном SoftIce'е.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, AmericanSpy, Вы писали:
AS>Добрый день!
AS>У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется. AS>4 акробат открывается нормально. Причем 5 акробат открывается нормально и на Win'98 и на XP. AS>Что касается ShellExecute — параметы Verb (Operation) и ShowCmd использовались во всех возможных комбинациях — эффект один и тот же. Причем в Win2000 функция возвращает значение больше 32, то есть все должно работать.
AS>Подскажите, плз, в чм может быть дело?
В каком-нибудь плагине наверняка. Убирай их по-одному (переименовывай). Я бы начал с DocBox.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.