Ламерский вопрос

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

Ламерский вопрос

Сообщение DIMzone » 10.12.2005 (Сб) 14:38

Подскажите ламеру, существует ли функция просто для открытия файла (с заданием пути в качетве параметра).
Shell не подходит, так как открывает файлы только из системного пути (C:\windows\system32). Или я не прав?

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 10.12.2005 (Сб) 14:45

без указания полного пути к файлу функция ищет его в разшаренных папках (переменная PATH=)

CORBA
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 22.11.2003 (Сб) 13:41
Откуда: Ukraine-Crimea-Feodosia

Re: Ламерский вопрос

Сообщение CORBA » 10.12.2005 (Сб) 15:12

DIMzone писал(а):Подскажите ламеру, существует ли функция просто для открытия файла (с заданием пути в качетве параметра).
Shell не подходит, так как открывает файлы только из системного пути (C:\windows\system32). Или я не прав?
shell открывает проги из любого явно прописанного пути

Examle:
Код: Выделить всё

Dim ProcID As Integer
   ' Run Calculator.
ProcID = Shell("C:\WINDOWS\CALC.EXE", AppWinStyle.NormalFocus)
У каждой сложной задачи есть множество простых для понимания, но неправильных решений.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 10.12.2005 (Сб) 18:04

Я думаю здесь проблема вот в чём.
Код: Выделить всё

Shell "C:\Windows\System32\Notepad.exe C:\Моя папка\Какой - то файл.txt"

не открывает "какой то файл"
А вот если DSIHMAJUL.TXT лежит в папке Windows\System32 тогда открывает.
Код: Выделить всё

Shell "C:\Windows\System32\Notepad.exe DSHIMAJUL.TXT"

[/syntax]

Дело в том что путь проги и путь к файлу должен быть заключён в кавычки т.е
Код: Выделить всё

Program="C:\Windows\System32\Notepad.exe"
FileName = "C:\Мои документы\Всякие папки\Какой то файл.txt"
Shell Chr(34)+Program+Chr(34)+" "+Chr(34)+FileName+Chr(34)
'// Chr(34) - это символ кавычки.
'// дыбы не писать """""""+...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 10.12.2005 (Сб) 18:41

' Декларация функции для запуска файла.
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

' Декларация константы для максимизирования окна открываемого приложения.
' Для работы с другими константами смотрите MSDN.
Public Const SW_SHOWMAXIMIZED = 3

'После этого нижеследующий код будет открывать файл test.xls.

Call ShellExecute(0, "open", "test.xls","", "", SW_SHOWMAXIMIZED)


Я всегда этим пользуюсь :D
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

DIMzone
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 10.12.2005 (Сб) 14:28

1

Сообщение DIMzone » 10.12.2005 (Сб) 19:19

2 all Благодарю всех за помощь!

2 SeT , А как задать эту функцию, чтобы он отделил ее от general Declarations?

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

Сообщение GSerg » 11.12.2005 (Вс) 7:11

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

eugene2005
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 30.10.2005 (Вс) 21:35
Откуда: от Верблюда!

Сообщение eugene2005 » 11.12.2005 (Вс) 8:24

WinExec, позволяет параметры тоже слать.

DIMzone
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 10.12.2005 (Сб) 14:28

ппв

Сообщение DIMzone » 11.12.2005 (Вс) 15:45

Как обьявлять Public Declare Function?

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

Сообщение GSerg » 11.12.2005 (Вс) 16:17

Так и написать, Public Declare Function. В модуле. RTFM.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SeT
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 362
Зарегистрирован: 29.12.2004 (Ср) 13:11

Сообщение SeT » 11.12.2005 (Вс) 18:58

Если неохота в модуле писать, Declare пропусти.
01000100
Причиняет боль 0010
Виртуальная любовь 00100
Индустрия снов 0010

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

Сообщение GSerg » 12.12.2005 (Пн) 2:56

Вау!
Покажи объявление API без declare.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 12.12.2005 (Пн) 4:15

Имелось в виду Public :)


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

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

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 100

    TopList