Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Создание потока посредством Win API

Ответить
Настройки темы
Создание потока посредством Win API

Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Отправить PM | Цитировать


Всем привет! Пытаюсь использовать ф-цию "CreateThread" из Win API. Проблема в том что скрипт мой вылетает. Подскажите пожалуйста где у меня ошибка.
Вот мой код:
Код: Выделить весь код
$do=DllOpen('kernel32.dll')
$thread_reg=DLLCallbackRegister ("_thread1", "ptr", "")  
Func _thread1()  	
While 1  		
Beep(1000,500)  		
Sleep(500)  	
WEnd	  
EndFunc  
$dk=DllCall($do, 'int', 'CreateThread', 'int', 0, 'int', 0,'ptr', DllCallbackGetPtr($thread_reg), 'int',0, 'int', 0, 'int',0)  
GUICreate('',100,50)  
$lb=GUICtrlCreateLabel (@SEC,20,20,50,10)  
GUISetState()  
For $i=1 To 10  	
GUICtrlSetData ($lb,@SEC)  	
Sleep(1000)  
Next
Описание ф-ции "CreateThread" здесь

Отправлено: 19:29, 23-07-2009

 

Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


AutoIt не будет работать в разных патоках. Можешь не пытаться, стабильной работы не добьешься.

Отправлено: 22:23, 23-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Отправить PM | Цитировать


Т. е. Autoit в принципе не может корректно работать с этой функцией? Хотя поток все-таки создается,
сам проверял...

Отправлено: 22:28, 23-07-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Oldst:
Autoit в принципе не может корректно работать с этой функцией? »
одного CreateThread() маловато будет, и DLLCallbackRegister() тут не помощник - он не сможет вернуть указатель на реальную UDF, т.к. AutoIT не является полноценным компилятором и, скорее всего, это какой-то враппер... ищите примеры на оффсайте:

Execute in a different thread. Multithreading again?
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:19, 24-07-2009 | #4


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Поток создать ты конечно можешь, это WinAPI, и не зависит от AutoIt. Но вот доступ к глобальным переменным организовать не получится. Ну, в принципе можно попытаться посидеть с ассемблером, но оно того не стоит. Проще создать отдельный процесс. Хотя ... ты можешь попробывать запустить какую-нибудь WinAPI-функцию (например MessageBox()) в отдельном потоке. Теоритически, это должно работать, хотя польза от этого ~0.

Отправлено: 02:21, 24-07-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Создание потока посредством Win API

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Создание загрузочного CD Win 98 Deep2007 Microsoft Windows 95/98/Me (архив) 5 25-02-2008 11:45
[решено] Несоответствие PHP API и Module API Negativ Программное обеспечение Linux и FreeBSD 6 10-04-2007 19:53
SendMessage() win API lcat Программирование и базы данных 3 03-06-2006 00:11
Win32 API | Нужна помошь по API функциям! vasika_hk Программирование и базы данных 2 23-05-2006 09:51
DBGrid (Stringgrid) и Win API Partizan Программирование и базы данных 1 13-09-2004 12:03




 
Переход