Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 551
от 16.06.2007, 15:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 274, Экспертов: 35
В номере:Вопросов: 2, Ответов: 6


Вопрос № 90855: Здравствуйте! Помогите, надо чтоб программа запускала несколько ехе-шников поочередно (один за другим, а не все одновременно)... а потом закрывалась Пробовал так как в примере (см. ниже) но получается, что они все вместе запускаются...
Вопрос № 90946: Уважаемые эксперты. Прежде всего, хочу выразить благодарность создателям и ведущим сайта за высокий уровень содержания и оказываемую профессиональную поддержку!!! Мой вопрос: Как защитить текст программы (в Excel VBA) макросов от просмотра друг...

Вопрос № 90.855
Здравствуйте!

Помогите, надо чтоб программа запускала несколько ехе-шников поочередно (один за другим, а не все одновременно)... а потом закрывалась

Пробовал так как в примере (см. ниже) но получается, что они все вместе запускаются.... а надо друг за другом...

Прошу ответить побыстрее, мой проэкт из-за этого тормозится

Заранее спасибо!!!!!!

Приложение:

Отправлен: 10.06.2007, 19:06
Вопрос задал: Молчанов Евгений (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ualife
Здравствуйте, Молчанов Евгений!
Попробуйте так как в приложении. Недостаток - очень плохое управление прогами

Приложение:

---------
Нет границ - есть лишь препятствия!

Ответ отправил: Ualife (статус: 2-ой класс)
Ответ отправлен: 10.06.2007, 20:16

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Молчанов Евгений!
Судя по листингу команду "на запуск" программы действителоно получают "поочередно". Проблема в том, что Ваша программа не ждет завершения выполнения команды и выполняет следующую.
Для решения необходимо организовать задержку:
получением от открывающейся кода открытия,
или запуском таймера
или просто обработкой циклов ....
И Ваш "проэкт" перестанет тормозится :).
Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: 9-ый класс)
Ответ отправлен: 11.06.2007, 00:25

Отвечает: 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное