![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Pugach |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Репутация: 1 Всего: 1 |
Здрасти.
Проблема следующая. Есть старый экзешник написан лет 20 назад, в него входят сложные численные методы, переписать по новой - легче застрелиться. Работа с этим файлом простая - запускаешь и вводишь название файла пару раз. Вопрос можно ли сделать так чтоб он запускался невидимым а название файла бролось например через commondialog. То что можно запускать невидиым я догадываюсь. Главное - можно ли с ним будет работать (передача названия файла). |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Да, можно. Только откуда такая убежденность, что это консольное приложение? Может, это все-таки 16-битное (DOS) приложение?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Pugach |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Репутация: 1 Всего: 1 |
ну да скорее даже так, я в этом не разбираюсь,
вот прикрепляю файл он небольшой "gsmkw.exe" и "d13510.dat" - файл исходник. Уточните если не трудно это все-таки 16-битное (DOS) или консольное. Насчет "Да можно". Каким способом? Пробовал решить так (сначала естественно запускал видимым): Создавал временный файл, запускал:
'Если после такого запуска вводить тект вручнуюи подтверждать нажатие клавишей Enter, то все работает хорошо , если текст вводится как имитация нажатия клавиш а потом Enter то тоже все норм здесь все работает:
а вот тут нет:
А это просто процедура имитации нажатия клавиш в ней все работает:
С ентером сначало не получалось вообще тогда я писал так (нашел в каком-то примере):
у меня при переходе на следующую строку появлялся символ "/", тогда я забил цикл и менял второй параметр, заметил, что переход на следующую строчку происходит при числе 28, как в примере выше, но прикол в том что видимость нажатия ентера - полная а программа пишет, что ошибка в исходных данных. здесь застопорился Может можно вообще без имитации. Вот. Извините за сумбурность объяснения Это сообщение отредактировал(а) cardinal - 22.10.2007, 23:30 Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
||||||||||
|
|||||||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Это 16-битный DOS-экзешник (MZ). Сегодня уже некогда, завтра посмотрю... а может кто раньше заглянет.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Akina |
|
||||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Гы... попробовал дома... все гораздо проще, чем казалось. Программа просто принимает данные со stdin без очистки. Достаточно ответы записАть в обычный текстовый файл, и перенаправить ввод на этот файл.
Т.е., например, если ей надо передать первым параметром имя файла file1.res, а вторым - имя файла file2.dat, простор делаем текстовый файл с тремя строками:
даем ему произвольное имя (скажем, param.txt) и вызываем программу, перенаправляя ввод на этот файл:
Важно! 1) вторая строка файла ОБЯЗАТЕЛЬНО должна завершаться переводом строки (Enter), т.е. файл должен содержать именно 3 строки, причем третья - не содержит символов. 2) если этому файлу будет дано имя без расширения, в строке запуска его следует завершить точкой, т.е. при имени param код будет выглядеть как
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||
|
|||||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Pugach |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Репутация: 1 Всего: 1 |
Не получается (
пишет: ошибки при открытии файла исходнах данных Если запускать вручную то достаточно написать "d13510" и 2 раза ентер. поэтому в файл записывал следующее:
пробовал писать, как написанл ниже, результат должен быть тот же (если вручную), впринципе, результат тот-же - отрицательный ![]() Текстовый файл создается как нада.
|
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Полагаю, следует внимательнее отнестись к путям... каталог запуска, каталог исполнения... грабли - имхо тут.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Pugach |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Репутация: 1 Всего: 1 |
не хватает одной кавычки, но так, вообще пишет файл не найден. И почему вы думаите, что ошибка в пути, дело в том, что при таком коде:
видно, что эти данные считываются из файла, т.к. в окне запуска программы появляются имена "d13510.dat" и "d13510.res" |
||||
|
|||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Pugach |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Репутация: 1 Всего: 1 |
но получилось то же самое что и при имитации нажатия клавишь
если вводить вручную то все нормально, а если имитировать или передавать параметры, как в коде - выше, то видимость как будто все нормально, но программа пишет что в файле исходных данных - ошибки |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Pugach, слушайте, так это Вы, сударь, просто настолько невнимательны, что противно об этом говорить. Программа сначала просит имя файла для вывода результатов, и лишь потом - имя файла исходных данных. Вручную Вы это делаете правильно, а вот программно - почему-то наоборот.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Pugach |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Репутация: 1 Всего: 1 |
Да сначала вводится имя файла куда будет записан результат,
потом имя файла исходных данных, но его можно опустить и просто нажать ентер, тогда его имя имется ввиду такое же как и имя файла результата расчета только с расшерением ".dat". Добавлено через 6 минут и 53 секунды Кстати, примерно год назад, эту задачу пытался решить опытный програмист, но так и не решил... :0 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Вот этот код у меня нормально отрабатывает, запуская приложение.
Все остальное к описываемой тобой проблеме никакого отношения не имеет. Если не работает - грабли в другом месте. Или проблемы доступа, или неверно извлекаешь из ресов и кладешь на диск, или еще что-то. Добавлено @ 17:08 Я не вижу задачи. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Pugach |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 3.10.2006 Репутация: 1 Всего: 1 |
Предложенный вами код не работает.
Программа запускается, есть видимость, что имена файлов передаются, но программа пиишет про ошибки в файле исходных данных и не считает. Если попробовать запустить вручную (при условии что файл исходных данных "d13510.dat" находится в том же каталоге что и сам exe, и просто ввести "d13510" enter enter то все работает, видно что она считает, и создается файл результата расчета "d13510.res" Если использовать ваш код (безо всяких ресов), или все мои предыдущие попытки, то ничего этого не происходит, а если вконце проги написать строчку "sleep 5000", то можно успеть заметить фразу про ошибки в файле исходных данных. И я вижу в этом проблему. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |