:: Visual Foxpro, Foxpro for DOS
ShellExecute не открывает файлы КОМПАС
Argon
Автор

Сообщений: 251
Дата регистрации: 06.02.2012
Доброго времени суток!
открываю документы таким кодом, открывается все.... кроме файлов .cdw
&& myfile = "//mySrv/folder/fileName"
&& myArray = list Extentionsions (.doc; .cdw, .pdf .....)
&& циклом перебираю все расширения, если файл есть выполнение
IF FILE(myFile+myArray[x])
DECLARE INTEGER ShellExecute IN SHELL32.DLL ;
INTEGER nWinHandle, ;
STRING cOperation, ;
STRING cFileName, ;
STRING cParameters, ;
STRING cDirectory, ;
INTEGER nShowWindow
=ShellExecute(0, "OPEN", myFile+myArray[x], "", "", 1)
ENDIF

есть предположения??
система wind10
версия компаса - 18.1
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Щелл "открывает" файлы также, как и винда - тем приложением, которое сопоставлено файлу, точнее по расширению. Винда открывает этот файл?

> .doc; .cdw, .pdf
точка с запятой и запятая - это специально?
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
В проводнике щёлкнуть дважды на файле cdw, и назначить ему приложение по-умолчанию.
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
Argon
Автор

Сообщений: 251
Дата регистрации: 06.02.2012
2of63
Винда открывает этот файл
перечисление представлено сугубо как пример, в БД они хранятся как ".doc;.docx;.cdw;.pdf;.SLDDRW;.edrw"
";" для преобразования в массив и перебора наличия файла

2pasha_usue
все назначено и все запускается через проводник

Прочее
если сделать как
=ShellExecute(0, "OPEN", "C:\Program Files\ASCON\KOMPAS-3D Viewer v18\Bin\kViewer.exe", myFile+myArray[x], "", 1)
то все откроется
как узнать какой версии viewer компаса у пользователя?
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Под тем ли пользователем запускается? Вдруг вы фокс в режиме администратора запустили.
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
Argon
Автор

Сообщений: 251
Дата регистрации: 06.02.2012
2pasha_usue
неважно под кем запущена программа, результат прежний
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ShellExecute что возвращает?
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Argon
2pasha_usue неважно под кем запущена программа, результат прежний
А возможно, в реестре не прописан open. Тогда действие по-умолчанию лучше выполнить. Второй параметр должен быть NULL в C нотификации.
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
Argon
Автор

Сообщений: 251
Дата регистрации: 06.02.2012
2of63
возвращает число > 0

2pasha_usue
где это можно посмотреть? в настройке приложений по умолчанию windows для .cdw указан компас
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> возвращает число > 0
m.e = ICASE(m.e=0, "Недостаточно памяти или ресурсов Windows",;
m.e=2, "Bad Association",;
m.e=5, "Операционная система не имеет доступа к указанному файлу",;
m.e=31, "No application association",;
m.e=26, "Невозможен совместный доступ к файлу",;
m.e=27, "Невозможно загрузить приложение, ассоциированное с типом файла",;
m.e=29, "Failure to load application",;
m.e=30, "Application is busy",;
m.e<=32,"Error ShellExecute "+TRANSFORM(m.e),;
"")
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
Argon
Автор

Сообщений: 251
Дата регистрации: 06.02.2012
2of63
m.e=31, "No application association"
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
В реестре. Если на зарегистрированное расширение нет команды open, а есть только какая-нибудь другая, то ваш open не сработает. А из проводника будет работать - тупо потому, что он берёт команду по-умолчанию, а не open.


[attachment 31812 word_example.PNG]



Исправлено 1 раз(а). Последнее : pasha_usue, 05.09.19 13:47
Ratings: 0 negative/0 positive
Re: ShellExecute не открывает файлы КОМПАС
Argon
Автор

Сообщений: 251
Дата регистрации: 06.02.2012
Всем спасибо!
Проблему решил
myShell=CreateObject("WScript.Shell")
myShell.Run("cmd /c "+myFile+myArray[x], 0)
вообще универсальный механизм, что назначено то и будет выполнено
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 23 (Гостей: 23)

© 2000-2024 Fox Club 
Яндекс.Метрика