Проблема с ShellExecute
От: AmericanSpy  
Дата: 17.02.03 13:49
Оценка:
Добрый день!

У меня возникла проблема с выполнением функции 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, то есть все должно работать.

Подскажите, плз, в чм может быть дело?
Re: Проблема с ShellExecute
От: trial  
Дата: 17.02.03 13:56
Оценка:
AS>У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется.

А у тебя SoftIce там не стоит? У меня такая фигня была при запушенном SoftIce (4-ый акробат работал нормально, 5-ый показывал заставку и отваливался)
Re[2]: Проблема с ShellExecute
От: AmericanSpy  
Дата: 17.02.03 14:01
Оценка:
AS>>У меня возникла проблема с выполнением функции ShellExecute. Программа (на Delphi) должна открывать PDF-файлы, естественно вызывая для этого Acrobat. Все вроде бы работает, однако если в Win 2000 (Adv Serv) для открытия PDF-Файлов используется Acrobat 5.0, то ничего не происходит. Вернее, появляется заставка акробата и более ничего. В Task Manager акробата нет — то есть он попросту не выполняется.

T>А у тебя SoftIce там не стоит? У меня такая фигня была при запушенном SoftIce (4-ый акробат работал нормально, 5-ый показывал заставку и отваливался)


нет, Softice'а нет...
Re: Проблема с ShellExecute
От: retalik www.airbandits.com/
Дата: 17.02.03 14:10
Оценка:
Здравствуйте, 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")?
Успехов,
Виталий.
Re[2]: Проблема с ShellExecute
От: AmericanSpy  
Дата: 17.02.03 14:18
Оценка:
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, тем же способом, но без проблем на любой машине.
Re[3]: Проблема с ShellExecute
От: retalik www.airbandits.com/
Дата: 17.02.03 14:24
Оценка:
Здравствуйте, 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.
Успехов,
Виталий.
Re: Проблема с ShellExecute
От: Int  
Дата: 17.02.03 15:06
Оценка:
Здравствуйте, 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>Подскажите, плз, в чм может быть дело?


A как вы вызываете ShellExecute?


//Вот так?
ShellExecute(NULL, "open", "d:\\PDFFILE.pdf", 0, 0, SW_SHOWNORMAL);
Re[2]: Проблема с ShellExecute
От: Sergey Россия  
Дата: 17.02.03 15:16
Оценка: 16 (1)
Здравствуйте, 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 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re: Проблема с ShellExecute
От: Sergey Россия  
Дата: 17.02.03 15:18
Оценка:
Здравствуйте, 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 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.