Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 14.02.2007
Сообщений: 45

Запуск программы с CD

02.02.2011, 22:39. Показов 1967. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пож. идею, как запустить программу с CD? Детали: есть небольшое VB приложение (простая форма для ввода данных пользователя), которое находит некоторые данные PC (СPU, BIOS и т.д.) и отправляет их по известному почтовому адресу. Но есть требование- не делать Setup на компе Userа (т.к. эта программа будет использована только 1 раз при настройке high-speed интернета), а запустить все с CD (который дается пользователю и после установки удаляется, и все). Знаю, какие нужны файлы (dll, tlb) для запуска exe файла, ecть сам exe, а вот как все это оформить (чтобы пользователь не видел всего Setup процесса), а увидел исходную форму для ввода своих данных?
Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2011, 22:39
Ответы с готовыми решениями:

Запуск программы без создания окна. Запуск фоновой программы
Вопрос, как сделать, чтобы консольное приложение при запуске не создавало окошко консоли. Т.е. запустился процесс, но визуально ничего не...

Запуск студией и запуск самой виндой. Разница работы программы
Итак, проблема такова: есть проект, который замечательно работает при нажатии F5 в студии. При компиляции в релиз-режиме и запуске...

Запуск из программы с админскими привилегиями внешней программы без прав админа
Нужно в программе которая запущенна под амином запустить другую программу без прав админа.

15
0 / 0 / 0
Регистрация: 23.11.2010
Сообщений: 71
03.02.2011, 06:50
Для запуска программы с СД необходимо создать на СД файл AUTORUN.INI
В него написать, что-то вроде
[autorun]
Mydirmyprog.exe

Соответственно нужно сделать программу, чтоб она могла свободно загружаться, не спрашивая пользователя.
0
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
03.02.2011, 09:46
Без установки библиотек VB-программа не запустится, то есть setup необходим. Вижу такой способ обхода - до запуска CD каким-то образом убедить юзера инсталлировать другую программу, на VB созданную, а в ее дистрибутив включить необходимые библиотеки. Не всегда это возможно, конечно.
0
Comanche
03.02.2011, 12:08
По-моему, InnoSetup с установленным плагином 'прекомпайлер', позволяет выполнить инсталляцию без GUI, а затем вызвать установленный EXE-шник...
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
03.02.2011, 15:40
igor_c

Нельзя пугать человека просто так. Если приложение выполнено (в ехе файле) с применением только элементов управления из стандартного списка в VB (Text, Label, Picture, и т.д.) в Toolbox, имеющихся в ОС любого компьютера - то программа будет работать на любом Win9x и ХР !!!! Причем даже если в Module1 и Form1 использованы API!

CronMix
я поддерживаю идею autorun....

yuri_curious
У тебя наверняка имеется куча CD дисков от любой игрушки.
Посмотри внимательно как там сделано - то , что подсказывает CronMix

Успехов! Все ждем ответа об успехах ::))
0
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
03.02.2011, 15:56
Э, нет, Дмитри, тут лучше переборщить с 'пугалками'. В Windows 9X запросто может не оказаться msvbvm60.dll, а без нее не пойдет даже самый простой экзешник.
0
1 / 1 / 0
Регистрация: 03.08.2007
Сообщений: 155
03.02.2011, 16:15
Можно собрать все библиотеки и прочие компоненты в один exe-шник программой Fusion (если не ошибаюсь) и потом этот exe-шник записывать на CD. Только нужно чтобы в ней небыло ограничений по количеству дней или запусков.
0
0 / 0 / 0
Регистрация: 14.02.2007
Сообщений: 45
03.02.2011, 17:29  [ТС]
Всем спасибо за ответы.
Но, как мне кажется, в этой задаче есть две части 1)копирование и регистрация необходимых dll (как от MS, например Msvbvm60.dll, Comcat.dll, и т.д. всего их 7 штук, как уверяет MS- список их можно посмотреть в st6unst.log, если выполнить стандартный Setup, так и свох собственно использованных в программе); 2)запуск программы после выполнения 1-го этапа. Если я правильно понимаю, идея Autorun oтносится ко второй части. Или я не прав ? Как лучше выполнить (запустить) 1-ю часть- типа batch файл? Наверное, я не могу проделать все это из основной программы, т.к. она не запустится, пока библиотек нет (не зарегистрированы) на PC?
Спасибо
0
Comanche
03.02.2011, 19:44
Давным-давно делал так (когда писАл приятелю простенький электронный каталог для распространения на CD):

1. НаписАл на Дельфи простейший EXE-шник, который - при отсутствии в реестре флажка 'Здесь был Вася' - копировал в %system% бэйсиковский ран-тайм (MSVBVMxx.DLL), и если копирование прошло успешно (т.е. такого файла ДО копирования в папке не было), то регистрировал скопированный файл с помощью REGSVR32, запущенного с ключом '/s' ('silent' - без уведомляющего окна в конце). Я полный ноль в Дельфи (и был, и есть), но благо есть сайт 'Королевство Дельфи', где и справочной информации масса, и спросить всегда есть кого. Дельфи был выбран, поскольку скомпилированные в нём EXE-шники якобы не требуют никакого ран-тайма; впрочем, это предположение вроде как подтвердилось - по крайней мере, получатели каталога никогда потом не жаловались.

2. Если вызов REGSVR32 прошёл успешно, то этот дельфёвый загрузчик передавал управление второму EXE-шнику, сделанному на бэйсике. Этот 'второй' EXE-файл - тоже был, по сути, 'загрузчиком', поскольку использовал только MSVBVMxx.DLL (т.е. в референсах его проекта ничего 'дополнительного' не было!) и занимался только одной вещью: копировал с CD (и регистрировал) все необходимые файлы: OCX, DLL и т.д. Тут было немного API - приходилось анализировать версии (релизы) библиотек, прежде чем пытаться их заместить.

3. Если и второй загрузчик отработал успешно, то наконец запускался третий EXE-шник - собственно VB-шное приложение, использующее все эти OCX, DLL и т.д., скопированные и зарегистрированные на предыдущем шаге.

Естественно, первое, что делал успешно запущенный третий EXE-шник - это прописывал в реестр флажок, что 'Здесь был Вася'. Тогда при повторных запусках первого загрузчика с компакта, это крохотное дельфёвое приложение - обнаружив этот флажок - ничего и никуда не копировало, а сразу передавало управление третьему EXE-шнику, т.е. собственно электронному каталогу.

Как можно догадаться, в качестве флажка выступала не фраза 'Здесь был Вася', а полное имя третьего EXE-шника - в тех случаях, если пользователь каталога выбрал опцию 'Работать без диска' и скопировал (спец. кнопкой) весь каталог на ж.диск (иначе как бы его нашёл первый загрузчик?).

По уму, первые два 'загрузчика' неплохо бы 'слить' в один - целиком написанный на Дельфи. Однако, мне лично было в лом изучать Дельфи по такому поводу )

Немного, наверное, путано, но надеюсь, что общий смысл ясен...
0 / 0 / 0
Регистрация: 14.02.2007
Сообщений: 45
03.02.2011, 21:04  [ТС]
To Comanche: Спасибо за этот путь. Мне тут подсказали такой вариант (хотелось бы знать твое мнение): копирование и регистрацию всех необходимых библиотек (включая и Msvbvm60.dll, если ее нет, конечно) производить прямо из основной программы, где вначале запускается Main процедура (которая и делает все упомянутое выше), а потом уже появляется форма и все остальное, что будет эти dll использовать. Я никогда так не пробовал (т.е. запускать exe файл без VB библиотек, а грузить их в процессе выполнения), но ребята уверяют, что так можно. Твое мнение (или опыт)?
Спасибо
0
Messir
03.02.2011, 21:40
просто положи msvbvm60.dll рядом с ехе-шником на диске. При запуске из main-a можешь скопировать все нужные компоненты в системный каталог, потом уже регистрировать их...
0 / 0 / 0
Регистрация: 14.02.2007
Сообщений: 45
03.02.2011, 21:53  [ТС]
To Messir:
Думаешь, даже на машину Клиента не надо Msvbvm60.dll копировать, а держать на CD?
Я смотрел на Форуме обсуждение вопроса, какие ОС включают этот файл при установке. А так как меня интересуют ОС, установленные после 2000 г. (наверное, начиная с Win ME и т.д), то похоже, этот файл должен быть на машине (хотя, конечно, проверить нужно).
Спасибо
0
Messir
03.02.2011, 21:55
ну, можно и скопировать, конечно... в зависимости от того, есть лион уже на целевой тачке или нету...
Comanche
03.02.2011, 22:11
2Messir:
>> просто положи msvbvm60.dll рядом с ехе-шником на диске...

Неужто так просто? и _регистрировать_ его не надо?!
Если так, то на фига 5 лет назад я мучался с этим Дельфи?! :-))))))))))))
Messir
03.02.2011, 22:19
регистрировать его не нужно.
а вот зачем ты мучался - это вопрос немного не ко мне
0 / 0 / 0
Регистрация: 14.02.2007
Сообщений: 45
03.02.2011, 22:30  [ТС]
Я извиняюсь, что вмешиваюсь в вашу дискуссию по поводу регистрации Msvbvm60.dll, но, если посмотреть файл St6unst.log, который создается при стандартном Setup с использованием PDW, то там перечислены все файлы, которые необходимо скопировать и зарегистрировать для запуска VB приложения на Клиенте. Так вот там указано, что файл Msvbvm60.dll есть DllSelfRegister, что означает (по-моему)- нужна регистрация. Только файл Asycfilt.dll (из списка необходимых библиотек)не требует регистрации.
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2011, 22:30
Помогаю со студенческими работами здесь

Как удалить ссылку на запуск программы при удалении программы
Всем привет! Для установки - удаления программ использую такие пакеты как InstallShield и Advanced Installer. Они чётко справляются со...

Ввод текста. Закрытие программы. Запуск программы. Введенный ранее текст уже открыт
Здравствуйте. Подскажите, как сделать "Ввод текста. Закрытие программы. Запуск программы. Введенный ранее текст уже открыт." То...

Запуск внешней программы программы из коммнадной строки
Здравствуйте, есть программа D:\user\start.exe Как средствами excel vba вызвать командную строку и запустить программу из коммандной...

Запуск внешней программы в форме программы
Всем привет :) может Вы меня и не поймете, но не пинайте, я только учусь :) Делаю я оболочку для CarPc. И главная затея, сделать или...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru