Проблема открытия photoshop'a

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Проблема открытия photoshop'a

Сообщение Юджин » 05.04.2006 (Ср) 17:21

строки следующие:
Код: Выделить всё
Private Sub Command7_Click()
Shell "cmd.exe /c start Photoshop " + Chr(34) + File4.Path + "\" + File4.FileName + Chr(34)
End Sub

на компе установлены PS 7.0, CS, CS2. Последний глючил, его удалили. теперь при нажатии на кнопку выдается ошибка об отсутсвии файла photoshop и предложение его найти через пуск-найти... как быть?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.04.2006 (Ср) 17:25

емнип, исполняемый файл фотошопа называется photoshp
(только две буквы "o")
Изображение

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 05.04.2006 (Ср) 17:29

уже пробовал - не катит

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 05.04.2006 (Ср) 20:24

2 Юджин: ВЫПЕТЬ МНОГА ЙАДУ. Мне помогло 8)

А если серьёзно. Ну раз файла нет, то чего же ты хочешь от SHELL-а ?

Попробуй найти файл и подсунуть его полный путь в SHELL

:shock:

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 06.04.2006 (Чт) 12:53

но прога запускается и на др компах, а если фотошоп установлен куда-то в др папку? ведь раньше на всех компах указаные строчки работали, а теперь там, где какую-нить версию удалили, прога работать перестала...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 06.04.2006 (Чт) 14:57

Объясните мне - а почему оно работало до того, как удалили фотошоп? Я не вижу в описании команды start возможность указывать исполняемый файл без указания пути к нему...
Быть... или не быть. Вот. В чём вопрос?

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 06.04.2006 (Чт) 15:05

вообще-то путь к исполняемому файлу забивается в File4.Path. А команда "Photoshop" вызывает стоящий по умолчанию фотошоп из реестра (аналогично написать shell cmd.exe) вроде нашел вариант, но если есть идеи - буду рад

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.04.2006 (Чт) 15:05

uhm писал(а):Объясните мне - а почему оно работало до того, как удалили фотошоп? Я не вижу в описании команды start возможность указывать исполняемый файл без указания пути к нему...

Такая возможность есть благодаря ключу [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths]
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 06.04.2006 (Чт) 15:08

Проверь что находится в HKEY_CLASSES_ROOT\Applications\Photoshop.exe\shell\open\command - у меня это "C:\Program Files\Adobe\Photoshop 7.0\Photoshop.exe" "%1"

И попробуй CreateObject("Photoshop.Application"), он все-таки ActiveX.
Лучший способ понять что-то самому — объяснить это другому.

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 06.04.2006 (Чт) 16:53

решил проблему так
Код: Выделить всё
Dim photo(3) As String
Dim f As String
Dim i As Long
Dim k As String
photo(1) = "C:\Program Files\Adobe\Photoshop CS\Photoshop.exe"
photo(2) = "C:\Program Files\Adobe\Photoshop 7.0\Photoshop.exe"
photo(3) = "C:\Program Files\Adobe\Photoshop CS2\Photoshop.exe"

For i = 1 To 3
f = Dir(photo(i))
If f <> "" Then
k = Chr(34) + photo(i) + Chr(34) + " " + Chr(34) + File3.Path + "\" + File3.FileName + Chr(34)
Shell k
Exit For 'k '("cmd.exe /c start photo(i) " + Chr(34) + File3.Path + "\" + File3.FileName + Chr(34))
Else
End If
Next i

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.04.2006 (Чт) 17:05

Т.е. пользователю не разрешается ставить фотошоп на диск d, к примеру.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 06.04.2006 (Чт) 18:29

пока да, но над этим работаем (чувствую себя программером windows)

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 06.04.2006 (Чт) 19:55

Если нужен запуск программы, местонахождение которой заведомо неизвестно, обычно пользователю задаётся вопрос по указанию директории. Она запоминается, и используется. В случае её изменения путь уточняется вновь.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.04.2006 (Пт) 8:47

Для тех, кто в танке, поясняю:
HKEY_CLASSES_ROOT\Applications\Photoshop.exe\shell\open\command
Отсюда можно выяснить путь к фотошопу.
Метод
Код: Выделить всё
Set sp = CreateObject("Photoshop.Application")
вообще знания путей не требует.
Лучший способ понять что-то самому — объяснить это другому.

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 07.04.2006 (Пт) 13:23

BV писал(а):Если нужен запуск программы, местонахождение которой заведомо неизвестно, обычно пользователю задаётся вопрос по указанию директории. Она запоминается, и используется. В случае её изменения путь уточняется вновь.

заморочками с усановкой никто особо не занимается, так что это можно и не использовать

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 07.04.2006 (Пт) 15:14

tyomitch, круто, не знал про это.

Так это ж, вроде, решение проблемы? Восстановить просто ключик, погибший, видимо, при деинсталляции CS2? Т. е. проблема не в твоей программе, а в кривизне инсталляции/деинсталляции фотошопов?
Быть... или не быть. Вот. В чём вопрос?

Юджин
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 26.10.2005 (Ср) 12:49

Сообщение Юджин » 07.04.2006 (Пт) 16:10

ага! и восстанавливать на всех машинах. только бы пользователи на переустанавливали системы очень часто!!! вопрос, вообще-то уже решен. спасибо.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 68

    TopList