Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Задержка. Добавлено: 30.03.09 14:32  

Автор вопроса:  Sergey
Подскажите, как в VB6 сделать задержку?
Например, пока выполняется команда Shell.

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 30.03.09 14:56
Спроси об этом девушек...

Серега, скажи нам, ты на форуме для листинга своей программы построчно будешь вопросы задавать? Может пора уже узнать о справочной системе, о справочнике по VB на этом сайте, о поисковых технологиях?

P.S. 2 All: простите, не мог удержаться от RTFM )))

Ответить

Номер ответа: 2
Автор ответа:
 Sergey



Вопросов: 39
Ответов: 87
 Профиль | | #2 Добавлено: 30.03.09 15:27
Я использую и то, и другое. Интересно, как народ мыслит...

Ответить

Номер ответа: 3
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #3
Добавлено: 30.03.09 16:50
Народ мыслить так http://www.vbnet.ru/faq/showtopic.asp?id=185
Самый простой и самый гнилой метод. А нормальный, читай MSDN

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 30.03.09 19:35
Хотя бы через CreateProcess вызвать твою cmd.exe с параметрами.

Ответить

Номер ответа: 5
Автор ответа:
 SergeyZuzic



ICQ: 474690219 

Вопросов: 5
Ответов: 155
 Web-сайт: vsedlysita.narod.ru
 Профиль | | #5
Добавлено: 31.03.09 08:22
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Sleep "время в миллисекундах"

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 31.03.09 09:35
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Недостатки:
1. Нет гарантии, сто программа завершится в заданный промежуток времени.
2. Если взять большой запас по времени, то возможно раннее завершение программы и лишний простой в ожидании.

Ответить

Номер ответа: 7
Автор ответа:
 $Костян



ICQ: 448495665 

Вопросов: 11
Ответов: 33
 Профиль | | #7 Добавлено: 31.03.09 12:02
WaitForSingleObject

Ответить

Номер ответа: 8
Автор ответа:
 SergeyZuzic



ICQ: 474690219 

Вопросов: 5
Ответов: 155
 Web-сайт: vsedlysita.narod.ru
 Профиль | | #8
Добавлено: 31.03.09 16:38
Недостатки:
1. Нет гарантии, сто программа завершится в заданный промежуток времени.
2. Если взять большой запас по времени, то возможно раннее завершение программы и лишний простой в ожидании.


Я просто для примера, а так можно и другие спокойно использовать (ответы нужны не ток "Авторам";)

Ответить

Номер ответа: 9
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #9 Добавлено: 31.03.09 16:41
Есть вот такой модуль в коллекции:
  1. Option Explicit
  2. Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As VbAppWinStyle) As Long
  3. Public NoZaderjka As Boolean
  4. '///////////////////////////////////////////////////////////////////////////
  5. '// Модуль для запуска программы с ожиданием ее завершения                //
  6. '// Copyright (c) 2004 Дмитрий Козырев, me@mastershome.net.ru             //
  7. '///////////////////////////////////////////////////////////////////////////
  8.  
  9. Private Declare Function CreateProcess Lib "kernel32" _
  10.     Alias "CreateProcessA" _
  11.     (ByVal lpApplicationName As String, _
  12.     ByVal lpCommandLine As String, _
  13.     lpProcessAttributes As Any, _
  14.     lpThreadAttributes As Any, _
  15.     ByVal bInheritHandles As Long, _
  16.     ByVal dwCreationFlags As Long, _
  17.     lpEnvironment As Any, _
  18.     ByVal lpCurrentDriectory As String, _
  19.     lpStartupInfo As STARTUPINFO, _
  20.     lpProcessInformation As PROCESS_INFORMATION) As Long
  21.  
  22. Private Declare Function CloseHandle Lib "kernel32" _
  23.     (ByVal hObject As Long) As Long
  24.  
  25. Private Declare Function MsgWaitForMultipleObjects Lib "user32" _
  26.     (ByVal nCount As Long, _
  27.     pHandles As Long, _
  28.     ByVal fWaitAll As Long, _
  29.     ByVal dwMilliseconds As Long, _
  30.     ByVal dwWakeMask As Long) As Long
  31.  
  32. Private Declare Function GetExitCodeProcess Lib "kernel32" _
  33.     (ByVal hProcess As Long, _
  34.     lpExitCode As Long) As Long
  35.  
  36. Private Type STARTUPINFO
  37.     cb As Long
  38.     lpReserved As String
  39.     lpDesktop As String
  40.     lpTitle As String
  41.     dwX As Long
  42.     dwY As Long
  43.     dwXSize As Long
  44.     dwYSize As Long
  45.     dwXCountChars As Long
  46.     dwYCountChars As Long
  47.     dwFillAttribute As Long
  48.     dwFlags As Long
  49.     wShowWindow As Integer
  50.     cbReserved2 As Integer
  51.     lpReserved2 As Long
  52.     hStdInput As Long
  53.     hStdOutput As Long
  54.     hStdError As Long
  55. End Type
  56.  
  57. Private Type PROCESS_INFORMATION
  58.     hProcess As Long
  59.     hThread As Long
  60.     dwProcessId As Long
  61.     dwThreadId As Long
  62. End Type
  63.  
  64. Private Const QS_ALLINPUT = &HFF&
  65. Public Const QS_KEY = &H1
  66. Public Const QS_MOUSEBUTTON = &H4
  67. Public Const QS_MOUSEMOVE = &H2
  68. Public Const QS_PAINT = &H20
  69. Public Const QS_POSTMESSAGE = &H8
  70. Public Const QS_SENDMESSAGE = &H40
  71. Public Const QS_TIMER = &H10
  72. Public Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON)
  73. Public Const QS_INPUT = (QS_MOUSE Or QS_KEY)
  74.  
  75. Private Const INFINITE = &HFFFFFFFF
  76.  
  77. Private Const WAIT_OBJECT_0 = 0
  78.  
  79. Public Function RunAndWait( _
  80.         ByVal Application As String, _
  81.         ByVal Arguments As String, _
  82.         ByVal Directory As String, _
  83.         ByRef RetCode As Long) As Boolean
  84. Dim si As STARTUPINFO
  85. Dim pi As PROCESS_INFORMATION
  86.  
  87. If CreateProcess(Application, Arguments, ByVal 0&, ByVal 0&, _
  88.         False, 0, ByVal 0&, Directory, si, pi) _
  89.     Then
  90.  
  91. '                INFINITE, QS_ALLINPUT) = WAIT_OBJECT_0
  92. If NoZaderjka = False Then
  93.     Do
  94.         If MsgWaitForMultipleObjects(1, pi.hProcess, 0, _
  95.                 INFINITE, QS_ALLINPUT) = WAIT_OBJECT_0 _
  96.         Then
  97.             Exit Do
  98.         Else
  99.             DoEvents
  100.         End If
  101.     Loop
  102. End If
  103.     
  104.     GetExitCodeProcess pi.hProcess, RetCode
  105.     RunAndWait = True
  106.    
  107. End If
  108.  
  109. CloseHandle pi.hThread
  110. CloseHandle pi.hProcess
  111. End Function
  112.  

Ответить

Номер ответа: 10
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #10
Добавлено: 31.03.09 18:47
Arseny, исчерпывающе.

Ответить

Номер ответа: 11
Автор ответа:
 Abiron



Вопросов: 30
Ответов: 62
 Профиль | | #11 Добавлено: 07.04.09 16:07
http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/Mixture/Sleep/182.mspx вот лучший метод ожидания.

Ответить

Номер ответа: 12
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #12
Добавлено: 08.04.09 11:31
Abiron - смеешься? Тупая привычка программистов в VB6 решать все подряд Timer'ом, да еще и с помощью таймер-контрола. Это не есть хорошо.

Ответить

Номер ответа: 13
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #13
Добавлено: 08.04.09 11:52
Арс, нафиг эти извращения с циклом? Нафиг ожидание нескольких объектов, если у тебя один? Только ради QS_ALLINPUT? Все банальнее, ведь можно создать поток и ждать в нем.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам