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

表示初级阶段用不到!
页: 1 [2] 3
查看完整版本: AUTOIT 作者是谁?