Hello from DeepTown: Parameters, is limited?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Went
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 103
Зарегистрирован: 01.09.2004 (Ср) 17:25
Откуда: Rostov-on-Don

Hello from DeepTown: Parameters, is limited?

Сообщение Went » 13.09.2004 (Пн) 15:08

:twisted: Итак, мучаю уже три форума почти год с вопросом о параметрах. Может все-таки кто-нибудь покажет мне рабочий вариант, как переслать в параметр вызываемой программе строку длиннее 500 символов. Программа писана не мной. Помогите пожалуйста, а то уже припекает. Только умоляю, не надо успокоительных писем, размытых предположений и еще чего-нибудь в этом роде. Пришлите лучше рабочий код. Мои адреса: znam@pisem.net swent@mail15.com С нетерпением жду ответа.

ZlydenGL
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 148
Зарегистрирован: 13.08.2004 (Пт) 10:02

Сообщение ZlydenGL » 13.09.2004 (Пн) 15:20

А двумя строками ее никак не передать? Я так понимаю, что если исходники у тебя, то подправить вызовы не так уж и сложно. В то же время самый простой путь - самый верный...
Покой нам только снится!!! И то редко. Поскольку нет в мире совершенства, а есть только стремление к оному.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.09.2004 (Пн) 16:13

ShellExecute разве не помогает?
И под какой системой работает вызываемая программа? Win9x/WinNT?
Lasciate ogni speranza, voi ch'entrate.

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 13.09.2004 (Пн) 17:24

Максимум передаваемого через ShellExecute и ShellExecuteEx - MAX_PATH (260 символов). Через cmd.exe - тоже, так что если писал прогу не ты, и кроме как через командную строку забрать данные неоткуда, то ничего не получится.

kazah_
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 13.01.2003 (Пн) 18:37
Откуда: Russia

Сообщение kazah_ » 13.09.2004 (Пн) 17:48

Как-то была у меня такая задача...
В общем смысл в следующем:
заводишь текстовую переменную потом шишешь:

Перемeн=Перемен & ....
Перемeн=Перемен & ....
Перемeн=Перемен & ....
Перемeн=Перемен & ....

далее отправляешь в качестве параметра Перемен вот и все...
Mr DEN - THE WAY YOU KNOW / Мр. ДЕН - Ваш Путь к Познанию!

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 13.09.2004 (Пн) 19:51

kazah_

На другой стороне нет возможности восстановить переменную

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.09.2004 (Вт) 13:07

Ответил приватом.

ShellExecute свободно передает больше 260 символов. Этот пример сработал:
ShellExecute Me.hWnd, vbNullString, "C:\Project1.exe", String$(1024, "*"), "C:\", SW_SHOWNORMAL
Project1 - это программа из одной строчки MsgBox Len(Command$)
Lasciate ogni speranza, voi ch'entrate.

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 14.09.2004 (Вт) 14:50

Хм, а у меня не выдаёт больше 260 (причём вместе с именем файла, сама строка 244). Почему?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.09.2004 (Вт) 14:57

У меня XP, у тебя видимо Win9x.
Lasciate ogni speranza, voi ch'entrate.

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 14.09.2004 (Вт) 15:39

Да нет, тоже Хрюша

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.09.2004 (Вт) 16:27

Хм... Тогда даже не знаю.
Lasciate ogni speranza, voi ch'entrate.

BP
Бывалый
Бывалый
 
Сообщения: 234
Зарегистрирован: 17.02.2004 (Вт) 5:34
Откуда: Украина

Сообщение BP » 14.09.2004 (Вт) 23:59

Попробуй через BAT-файл. У меня сработало.

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 17.09.2004 (Пт) 17:20

Если вопрос не потерял актуальность, отвечаю:

Передать строку большой длины не проблема! Проблема в том, что програму писал не ты. А соответственно как она обрабатывает твою строку неизвестно. Скорее всего автор проги не расчитывал на столь длинные параметры, и ограничил длину 500 символами.
Получается задача не решаема (Кроме что :twisted: дизасемблировать :twisted: , но не забывай про авторское право)
Если ето работа с файлами, то возможно поможет цикл с масивом имен.
А конкретно, что ета прога делает?
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...


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

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

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

    TopList  
cron