powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите с разлочиванием пользовательской формы
10 сообщений из 10, страница 1 из 1
Подскажите с разлочиванием пользовательской формы
    #36466159
Black Chaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть программка, при ее выполнение в форме ничего не сделать ни свернуть, ни закрыть и даже не перетащить. данное действо продолжается пока не закончится выполняться скрипт. подскажите как либо можно разграничить выполнения скрипта и работу с формой? не знаю например через CreateProcess (я умею CreateProcess запускать лишь exe файла а как создать процесс и при этом выполнить код из модуля не знаю), может какие то будут идеи ?? капаюсь с этим уже 4 дня, но видимо не в том направлении ищу.
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466178
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Black Chaos
> Есть программка, при ее выполнение в форме ничего не сделать ни свернуть, ни закрыть и даже не перетащить.

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

Оформить твои действия в виде отдельного СОМ-объекта с событиями. В котором одним методом принимаешь запрос на
обработку, сохраняеш параметры, взводиш таймер, по таймеру делаеш обработку временами генеря события с прогрессом
выполнения(если нужно) по окончании генериш событие окончания обработки. В программе создать экземпляр объекта,
подписатся на события и вызываеш метод-стартер и ловиш события.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466222
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Black ChaosЕсть программка, при ее выполнение в форме ничего не сделать ни свернуть, ни закрыть и даже не перетащить. данное действо продолжается пока не закончится выполняться скрипт. подскажите как либо можно разграничить выполнения скрипта и работу с формой? не знаю например через CreateProcess (я умею CreateProcess запускать лишь exe файла а как создать процесс и при этом выполнить код из модуля не знаю), может какие то будут идеи ?? капаюсь с этим уже 4 дня, но видимо не в том направлении ищу.

код отслеживания жизни процесса

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
Function IsOpenProcess(ID_PROCc As Double) As Boolean

Dim h As Long
h = OpenProcess(&H1, True, ID_PROCc)
If h <>  0  Then
  CloseHandle h
  IsOpenProcess = True
Else
  IsOpenProcess = False
End If
End Function

юзается так

Код: plaintext
1.
2.
3.
Dim PROCED as Double
PROCED = Shell("C:\Program Files\7-Zip\7zG.exe e " & DPath & "\" & s & " -o" & DPath & " -aoa ",  1 )
While IsOpenProcess(PROCED)
Wend
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466311
Black Chaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shamanus,

как бы сказать за процессами которые запускаю тот же 7z я делаю так :
fldWorkPath - путь к каталогу где лежит файлик,
NPoint - переменная integer

API
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Declare Function SetProcessWorkingSetSize Lib "Kernel32.dll" (ByVal hProcess As Long, ByVal dwMinimumWorkingSetSize As Long, ByVal dwMaximumWorkingSetSize As Long) As Boolean

Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Public Function RunAndWait(ComLine As String, DefaultDir As String, ShowFlag As VbAppWinStyle) As Boolean
    Dim si As STARTUPINFO
    Dim pi As PROCESS_INFORMATION
    si.wShowWindow = ShowFlag
    si.dwFlags = STARTF_USESHOWWINDOW
    If CreateProcess(vbNullString, ComLine, ByVal  0 &, ByVal  0 &, False,  0 , ByVal  0 &, DefaultDir, si, pi) Then
        WaitForSingleObject pi.hProcess, INFINITE
        CloseHandle pi.hProcess
        RunAndWait = True
        Exit Function
    End If
    RunAndWait = False
End Function

как юзаю:
Код: plaintext
1.
2.
3.
4.
If RunAndWait("7z.exe e " & fldWorkPath & "\in" & _
        NPoint & "firm.zip -o" & fldWorkPath & " -y", App.Path, vbHide) = True Then
            Kill fldWorkPath & "\in" & NPoint & "firm.zip"
        End If 

это хорошо но у меня вопрос в том как запустить на выполнение например самописную функцию из модуля назовем ее GetFile пока что она запускается по кнопке т.е. нажал на кнопку и начала выполняться функция. но это вешает приложение на мертво. вот хотелось бы сделать как то примерно так что бы нажал на кнопку пуск и скриптик выполнялся так что бы приложение можно было свернуть, закрыть или переместить по экрану.

Игорь Горбонос,
а по подробнее нельзя ли? а то я не совсем понял как это реализовать?
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466333
Black Chaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

и еще длительность обработки у меня зависет не о циклов как вы подумали. А от выполнения различных функций например выполнение выгруженого DTS пакета который из mdb заливает на SQL 2000 данные потомкрутит процедуру на сервере сохраненную и после выгружает данные назад. посему DoEvents меня не спасет(на выполнение пакета DTS я повлиять не могу, отсюда и вывод что надо это вешать все отдельным процессом, что бы не вешать форму)
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466676
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Black Chaos,

В архиве ReadMe.txt инструкция, если что пиши, мыло в профиле
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466712
Black Chaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

Посмотрел архив и не понял а как собственно мне это должно помочь??
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466745
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Black Chaos
> Посмотрел архив и не понял а как собственно мне это должно помочь??

В функцию PrintDoWord переносиш код долгой обработки и запускаеш её

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466756
Black Chaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

аська есть? так быстрее будет ^_^
...
Рейтинг: 0 / 0
Подскажите с разлочиванием пользовательской формы
    #36466762
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Black Chaos
> Игорь Горбонос,
>
> аська есть? так быстрее будет ^_^

274136651

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите с разлочиванием пользовательской формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]