rst52013353
发表于 2013-1-4 20:28:28
回复 16# annybaby
这到真没有注意``````{:face (52):}
xiaowo
发表于 2013-1-5 14:48:48
多线程实不实现并不重要,只要能够达到并行处理的目的就可以了
ceoguang
发表于 2013-1-6 10:44:02
本帖最后由 ceoguang 于 2013-1-6 11:40 编辑
另外,lz如果觉得刚才的回答有些憋屈,给段代码过过目,觉得过瘾否?
netegg 发表于 2013-1-4 00:23 http://www.autoitx.com/images/common/back.gif
蛋,人家是来踩场子的。要示例的话无需调用第三方辅助,内置函数就足够了
下面的例子就是全内置函数实现的多线程messagebox
#region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_UseX64=n
#PRE_Res_requestedExecutionLevel=None
#endregion ;**** 参数创建于 ACNWrapper_GUI ****
Main()
Func Main()
Const $dwThreads = 300;将创建300个线程,配置不好就别玩了
Local $pMessageBoxW = GetProcAddress(GetModuleHandle('User32'), 'MessageBoxW')
Local $pMessageBoxCode = Hex(Binary($pMessageBoxW))
Local $pData =
Local $tBuffer = DllStructCreate('char')
For $i = 1 To 24
DllStructSetData($tBuffer,1,$pdata[$i-1],$i)
Next
Local $dwThreadId,$hThread
For $x = 1 To $dwThreads
$hThread = CreateThread(DllStructGetPtr($tBuffer),0,$dwThreadId)
ConsoleWrite(StringFormat('第:%d 个线程创建,线程ID:%d\n',$x,$dwThreadId))
CloseHandle($hThread)
Next
MsgBox(64,'线程创建完成','请在任务管理器中查看本进程的线程数' &@LF & '注意:此提示框仅用于避免主线程退出')
EndFunc ;==>Main
Func CreateThread($lpStartAddress, $lpParameter, ByRef $lpThreadId, $dwCreationFlags = 0)
Local $aRet = DllCall('Kernel32.dll', 'HANDLE', 'CreateThread', 'ptr', 0, 'ULONG_PTR', 0, 'ptr', $lpStartAddress, 'ptr', $lpParameter, 'dword', $dwCreationFlags, 'dword*', 0)
If @error Then Return SetError(@error, @extended, 0)
If $aRet = 0 Then Return SetError(-1, 0, 0)
$lpThreadId = $aRet
Return $aRet
EndFunc ;==>CreateThread
Func CloseHandle($hHandle)
Local $aResult = DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $hHandle)
If @error Then Return SetError(@error, @extended, False)
Return $aResult
EndFunc ;==>_WinAPI_CloseHandle
Func GetModuleHandle($lpModuleName)
Local $aRet = DllCall('Kernel32.dll', 'HANDLE', 'GetModuleHandleW', 'wstr', $lpModuleName)
If @error Then Return SetError(@error, @extended, 0)
If $aRet = 0 Then Return SetError(-1, 0, 0)
Return $aRet
EndFunc ;==>GetModuleHandle
Func GetProcAddress($hModule, $lpProcName)
Local $aRet = DllCall('Kernel32.dll', 'ptr', 'GetProcAddress', 'HANDLE', $hModule, 'str', $lpProcName)
If @error Then Return SetError(@error, @extended, 0)
If $aRet = 0 Then Return SetError(-1, 0, 0)
Return $aRet
EndFunc ;==>GetProcAddress
补上附件,messagebox加入了标题和内容
yang3114
发表于 2013-1-6 15:47:37
自己不会去wiki上看呀
au3au3
发表于 2013-1-6 23:27:07
嗯,对安全控件无能为力
求助这个问题的解决方法 http://www.autoitx.com/thread-36870-1-1.html
autoit 怎么对付这个网站的模拟输入?
au3au3
发表于 2013-1-6 23:28:12
回复 13# pusofalse
版主,请帮看这个问题 http://www.autoitx.com/thread-36870-1-1.html
au3au3
发表于 2013-1-6 23:28:36
回复 15# netegg
元老高手,请帮看这个问题 http://www.autoitx.com/thread-36870-1-1.html
webberliuwei
发表于 2013-1-7 14:20:29
反正不是你....
讯极天度
发表于 2013-1-7 16:17:52
此贴火了{:face (456):}
apprentice
发表于 2013-1-8 10:28:39
回复 1# rst52013353
aau论坛的马甲就不必费这个心了吧,用你们老大的话骂你就对了:
skyfree
发表于 2013-1-8 17:45:32
AU3能做什么,取决于你本人的能力,呵呵。
moyi20
发表于 2013-1-8 18:57:08
此贴引火烧身了...
zym3138
发表于 2013-1-9 09:13:22
没有人知道作者是谁
心照不宣
发表于 2013-1-9 17:13:49
不错,支持,呵呵
lzv0626
发表于 2013-1-9 20:24:27
表示初级阶段用不到!