Вопрос № 90855: Здравствуйте!
Помогите, надо чтоб программа запускала несколько ехе-шников поочередно (один за другим, а не все одновременно)... а потом закрывалась
Пробовал так как в примере (см. ниже) но получается, что они все вместе запускаются...Вопрос № 90946: Уважаемые эксперты. Прежде всего, хочу выразить благодарность создателям и ведущим сайта за высокий уровень содержания и оказываемую профессиональную поддержку!!!
Мой вопрос: Как защитить текст программы (в Excel VBA) макросов от просмотра друг...
Вопрос № 90.855
Здравствуйте!
Помогите, надо чтоб программа запускала несколько ехе-шников поочередно (один за другим, а не все одновременно)... а потом закрывалась
Пробовал так как в примере (см. ниже) но получается, что они все вместе запускаются.... а надо друг за другом...
Прошу ответить побыстрее, мой проэкт из-за этого тормозится
Отвечает: Ualife
Здравствуйте, Молчанов Евгений!
Попробуйте так как в приложении. Недостаток - очень плохое управление прогами
Приложение:
--------- Нет границ - есть лишь препятствия!
Ответ отправил: Ualife (статус: 2-ой класс)
Ответ отправлен: 10.06.2007, 20:16
Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Молчанов Евгений!
Судя по листингу команду "на запуск" программы действителоно получают "поочередно". Проблема в том, что Ваша программа не ждет завершения выполнения команды и выполняет следующую.
Для решения необходимо организовать задержку:
получением от открывающейся кода открытия,
или запуском таймера
или просто обработкой циклов ....
И Ваш "проэкт" перестанет тормозится :).
Евгений.
Отвечает: DVS
Здравствуйте, Молчанов Евгений!
А зачем писать именно на VB.
Гораздо проще же написать командный файл (bat или cmd). А в нём уже команды запуска ехе-шников, и они будут выполняться поочерёдно. После он сам и закроется, имеется ввиду командный файл.
Если необходимо именно на VB, то придётся искать пути проверки окончания работы 1-й программы, потом второй и т.д., например, при помощи Win API.
Или как вариант написать cmd файл и запускать его из своей программы.
Shell("C:Temp111.cmd", AppWinStyle.Hide) 'где 111.cmd Ваш командный файл
Application.Exit() 'не забыть добавить, чтобы Ваше приложение закрылось.
В командном файле пишем
"PathSetup1.exe"
"PathSetup2.exe"
"PathSetup3.exe"
где Path путь к файлам.
Хотелось бы также внести некоторое уточнение к ответу Ualife.
У меня стоит Vista Home Premium, и строка Shell ("cmd /c " & exe1 & " && cmd /c " & exe2 & " && cmd /c " & exe3) не работает, а работает мой вариант.
Ответ отправил: DVS (статус: 1-ый класс)
Ответ отправлен: 11.06.2007, 00:31
Отвечает: Alec Perle
Здравствуйте, Молчанов Евгений!
Для "замораживания" программы на время выполнения другой воспользуйтесь функциями API.
В приложении функция SynchronizeShell, вызывая которую вместо Shell, Вы получете необходимый эффект.
Приложение:
--------- Пессимист - это хорошо информированный оптимист (а оптимист - хорошо проинструктированный пессимист)
Ответ отправил: Alec Perle (статус: 9-ый класс)
Ответ отправлен: 11.06.2007, 02:52
Отвечает: HookEst
Здравствуйте, Молчанов Евгений!
Насколько я понял у Вас VB.NET, так вот аргументы Shell для .NET:
Public Function Shell( _
ByVal Pathname As String, _
Optional ByVal Style As AppWinstyle="AppWinStyle.MinimizedFocus," _
Optional ByVal Wait As Boolean = False, _
Optional ByVal Timeout As Integer = -1 _
) As Integer
видите? третий параметр Wait, он показывает нужно ли ждать завершения программы, а четвертый параметр TimeOut - указывает сколько времени ждать, если -1(по умолчанию) то управление в программу может и не вернутся никогда.
просто поставьте третьим параметром True:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Shell("Setup1.exe", AppWinStyle.NormalFocus, True)
Shell("Setup2.exe", AppWinStyle.NormalFocus, True)
Shell("Setup3.exe", AppWinStyle.NormalFocus, True)
End
End Sub
Успехов.
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 14.06.2007, 06:42
Вопрос № 90.946
Уважаемые эксперты. Прежде всего, хочу выразить благодарность создателям и ведущим сайта за высокий уровень содержания и оказываемую профессиональную поддержку!!!
Мой вопрос: Как защитить текст программы (в Excel VBA) макросов от просмотра другими людьми? Так-как, стандартная защита паролем легко взламывается? Спасибо.
Отправлен: 11.06.2007, 14:27
Вопрос задал: Alex Sh (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ualife
Здравствуйте, Alex Sh!
Я начинающий эксперт, так что если у меня плохой ответ (большая вероятность) не думать что-то плохое про сайт
У меня есть два варианта:
1) Сделать трудночитаемый макрос. Одного человека это отпугнет навсегда, другой просто потеряет немного времени.
2) Сделать специальный макрос для кодирования и раскодирования макросов с использованием пароля (очень сложно).
--------- Нет границ - есть лишь препятствия!
Ответ отправил: Ualife (статус: 2-ой класс)
Ответ отправлен: 11.06.2007, 14:52