Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Нашёр в MSDN функцию CreateThread, говорится что можно создать поток,
можно ли это сделать на автоит?
Под знаками ? я не знаю что вписать:
можно ли это сделать на автоит?
Под знаками ? я не знаю что вписать:
Код:
; ThreadAttributes
; Указатель на SECURITY_ATTRIBUTES структуру, которая определяет, может ли возвращенный дескриптор быть
; унаследован дочерними процессами. Если lpThreadAttributes является NULL, дескриптор не может быть унаследован.
; StackSize
; Начальный размер стека, в байтах. Система округляет это значение до ближайшего странице. Если этот параметр
; равен нулю, новый поток использует по умолчанию размер исполняемого файла.
; StartAddress
; Указатель на определенную приложением функцию, которая будет выполнена нитью. Этот указатель представляет начальный адрес потока.
; Parameter
; Указатель на переменную, передаваемый поток.
; CreationFlags
; Флаги, которые управляют созданием потока.
Global Const $NULL = 0 ; Поток выполняется сразу после создания.
Global Const $CREATE_SUSPENDED = 0x00000004 ; Поток создается в подвешенном состоянии
Global Const $STACK_SIZE_PARAM_IS_A_RESERVATION = 0x00010000 ; StackSize параметр задает начальный размер резерва стека. Если этот флаг не указан, StackSize указывает зафиксировать размер.
; ThreadId
; Указатель на переменную, которая получает идентификатор потока. Если этот параметр NULL, идентификатор потока не возвращается.
Func _WinAPI_CreateThread($ThreadAttributes, $StackSize, $StartAddress, $Parameter, $CreationFlags, $ThreadId)
Return DllCall("Kernel32.dll", "int", "CreateThread", "?", $ThreadAttributes, "int", $StackSize, "int", $StartAddress, "?", $Parameter, "int", $CreationFlags, "?", $ThreadId)
EndFunc
; hProcess
; Дескриптор процесса, в котором поток должен быть создан. Дескриптор должен иметь PROCESS_CREATE_THREAD,
; PROCESS_QUERY_INFORMATION, PROCESS_VM_OPERATION, PROCESS_VM_WRITE и PROCESS_VM_READ прав доступа, и может
; не без этих прав на определенных платформах.
Func _WinAPI_CreateRemoteThread($hProcess, $ThreadAttributes, $StackSize, $StartAddress, $Parameter, $CreationFlags, $ThreadId)
Return DllCall("Kernel32.dll", "int", "CreateRemoteThread", "?", $hProcess,"?", $ThreadAttributes, "int", $StackSize, "int", $StartAddress, "?", $Parameter, "int", $CreationFlags, "?", $ThreadId)
EndFunc
; ExitCode
; Код выхода на поток.
Func _WinAPI_ExitThread($ExitCode)
DllCall("Kernel32.dll", "none", "ExitThread", "?", $ExitCode)
EndFunc