找回密码
 加入
搜索
查看: 11870|回复: 63

每周任务#1

[复制链接]
发表于 2009-5-7 19:12:26 | 显示全部楼层 |阅读模式
        抱着学习,交流的态度。也为了聚集论坛的人气。来个每周任务。
      同时对新手提一点建议:
1.脚踏实地.认清编程与脚本
  如果你对编程有兴趣,请不要学习autoit,它只是一个脚本,虽然它目前是做很多事情。但它不是编程语言。有很多无法超越的问题。比如C++下,我可以定义一个类(class),然后调用。AU3不行。我可以用C++在数据结构中包含另外的自定义数据结构,AU3不行。等等。这是编程语言必须具备的能力。
如果你对autoit感兴趣,那么我建议你,放下你手中XX牛人写的脚本。从帮助一个一个的看起,特别是每个帮助的例子以及包含文件,这是基础,也是高手的思路与结晶。因为一个复杂的脚本都是简单的代码累积起来的.看牛人的脚本也许你能知道可以这么做,但是为什么要这么做却不明白.明白原理,才能按照自己的思路写出自己的脚本.

2.坚持.
  不要以为学会自动安装,能写几个GUI就是会了,懂了.任何一门学问都没有它的极致.有牛人用VBS写DirectX的3D演示.有人用画图画跑车.知识永远是学不完的,请坚持你的探索.
  万事万物都有相通性,武侠YY小说常说,人剑合一,或者是心中有剑,手中无剑,更或者是人就是自然的一部分.心相通与自然相通.万事万物都有自己的规律.但是都在自然的规律下.任何语言也是.你学会C++,不会不明白DELPHI的使用,因为它们大多数的操作都有一个核心:系统接口.每个语言都有自己的规定,语法,但是它们仍然得在系统的规定下.那么.我们是不是就得非去学习系统呢.内核,API,驱动?编程高手都是系统高手.它们知道系统怎么运转,知道把自己的代码与系统融为一体.所以,请坚持你的学习.

3.理性宽容与人为善.
  08年4月底时,论坛发生了一些变故.导致论坛数据丢失,重新起来后.到现在有 16441 个论坛会员,而发帖数超过10帖的人,却只有700来人,从这里大致可以反映出论坛现在的尴尬局面.
  我们都生活在现实中,面临各种各样的问题,大部分来自现实生活中,论坛很多朋友都忙于生计,有些离开了,有些潜水了,还有一些在坚持着.
  建议各位能够花1分钟的时间低头想想自己当初来论坛注册并在此驻足是为了什么?学习吗?得到一个汉化版?发广告?
  当然,既然是论坛就有争论,有抄袭的,辱骂的,装B的(应该有很多人说我就是).请放开你们的成见,抄袭的是你的代码,不是你的思路,其实别人什么都没有得到.(需要有阿Q精神).
  新手老是抱怨无从下手.到处求助.请不要忘了,程序帮助才是最具核心价值的东西.里面有思路,有想法,也有做法.
  人无完人,没人是全能的.只是长处和短处的问题.指出别人短处是会让人心痛的,但是没有风雨,他是不会明白彩虹的原理的.学习本身就是自己的事情,请不要强求.
  高手也请不吝赐教,你的指点可能会让新手茅塞顿开,打开任督二脉.对您没有损失,但是你的身价却抬高了.不理会只是让人觉得你高深,而不会让别人对你敬佩.
4.也请新手朋友看看这个文章
  http://www.autoitx.com/forum.php ... &extra=page%3D1

================================废话分割线==============================================
下面是任务,请按照你能想到的办法实现吧,白猫黑猫,会抓耗子的才是好猫.所以请你用不同的方法来实现它.旁门左道也可以,名门正派的也可以.

A.让桌面上的图标,显示为小图标.并在右方显示(系统默认左方)
参考:ListView控件/系统消息/句柄/DLLCALL等方面的知识

B.当按住CTRL键时,如果鼠标指针在屏幕右上角则最小化当前窗口,左上角时则关闭当前窗口,左下角时则隐藏当前窗口,右下角时显示隐藏的窗口.
参考:窗口句柄,窗口状态设置,按键,鼠标等方面的知识.

评分

参与人数 11威望 +30 金钱 +155 贡献 +125 收起 理由
lc_lichuan + 1 我很赞同
taoge5210 + 5
ignore + 5
bsplin + 5 难得!
gooker + 100 搞点外挂方面的内容

查看全部评分

发表于 2009-5-8 00:10:32 | 显示全部楼层
晕,这么好的贴居然没人顶?
发表于 2009-5-8 01:29:18 | 显示全部楼层
老潇说得非常经典。所说的这些话憋在心里很久了,一直没有说出来。
发表于 2009-5-8 08:06:01 | 显示全部楼层
呵呵,说的太经典啦!继续坚持中。。。
 楼主| 发表于 2009-5-8 12:14:15 | 显示全部楼层
老潇说得非常经典。所说的这些话憋在心里很久了,一直没有说出来。
sanhen 发表于 2009-5-8 01:29


其实问题是:你比我更能憋。
发表于 2009-5-8 12:48:48 | 显示全部楼层
刚刚看见 关注一下  定一个
发表于 2009-5-8 15:03:19 | 显示全部楼层
其实问题是:你比我更能憋。
thesnow 发表于 2009-5-8 12:14


看谁憋的过谁!
发表于 2009-5-8 16:16:30 | 显示全部楼层
ctrl没办法单抓的吧
发表于 2009-5-8 16:33:45 | 显示全部楼层
用心良苦啊!!!!支持你们的辛勤付出!!!加油
发表于 2009-5-8 17:32:08 | 显示全部楼层
不会 不过论坛搞点外挂方面的内容肯定慢慢就火了.
发表于 2009-5-8 17:34:14 | 显示全部楼层
本帖最后由 sxd 于 2009-5-8 23:41 编辑

嗯 最近也在学习外挂 呵呵
#include <Misc.au3>
$hDll = DllOpen("user32.dll")
$hWinHandle = 0
While 1
        Sleep(250)
        If _IsPressed("11", $hDll) Then
                $aMousePos = MouseGetPos()
                Select
                        Case $aMousePos[0] > @DesktopWidth - 5 And $aMousePos[1] < 5
                                WinSetState("", "", @SW_MINIMIZE)
                        Case $aMousePos[0] < 5 And $aMousePos[1] < 5
                                WinClose("")
                        Case $aMousePos[0] < 5 And $aMousePos[1] > @DesktopHeight - 5
                                $hWinHandle = WinGetHandle("")
                                WinSetState($hWinHandle, "", @SW_HIDE)
                        Case $aMousePos[0] > @DesktopWidth - 5 And $aMousePos[1] > @DesktopHeight - 5
                                If $hWinHandle <> 0 Then WinSetState($hWinHandle, "", @SW_SHOW)
                EndSelect
        EndIf
WEnd

Func OnAutoItExit()
        DllClose($hDll)
EndFunc   ;==>OnAutoItExit

评分

参与人数 1金钱 +200 收起 理由
thesnow + 200 我加分大方点。

查看全部评分

发表于 2009-5-8 22:19:56 | 显示全部楼层
高手!!!!!!!!

不懂!

纯支持一下!!!!!!!!
发表于 2009-5-9 16:50:38 | 显示全部楼层
看了 sxd  写的,明白了

#NoTrayIcon

Global $GUIShow = True

GUICreate("每周任务", 421, 256, -1, -1, 0)
GUICtrlCreateLabel("将鼠标移动到左上角并按Ctrl键可以隐藏/显示本窗口", 0, 88, 420, 17, 1)
GUICtrlCreateLabel("将鼠标移动到右上角并按Ctrl键可以关闭本窗口", 0, 112, 415, 17, 1)
GUISetState(@SW_SHOW)

While 1
        $MousePos = MouseGetPos()
        If _IsPressed() Then
                If $MousePos[0] < 100 And $MousePos[1] < 100 And $GUIShow = True Then
                        GUISetState(@SW_HIDE)
                        $GUIShow = False
                ElseIf $MousePos[0] < 100 And $MousePos[1] < 100 And $GUIShow = False Then
                        GUISetState(@SW_SHOW)
                        $GUIShow = True
                EndIf
                If $MousePos[0] > (@DesktopWidth - 100) And $MousePos[1] < 100 Then Exit
        EndIf
        Sleep(150)
WEnd

Func _IsPressed($sHexKey = 11)
        Local $a_R = DllCall("user32.dll", "int", "GetAsyncKeyState", "int", "0x" & $sHexKey)
        If Not @error And BitAND($a_R[0], 0x8000) = 0x8000 Then
                Return 1
        Else
                Return 0
        EndIf
EndFunc   ;==>_IsPressed

评分

参与人数 1金钱 +200 收起 理由
thesnow + 200 感谢支持

查看全部评分

发表于 2009-5-9 16:52:34 | 显示全部楼层
延迟虽然可以停顿 但是不灵
发表于 2009-5-9 16:53:57 | 显示全部楼层
改一下  这样好多了
#NoTrayIcon

Global $GUIShow = True

GUICreate("每周任务", 421, 256, -1, -1, 0)
GUICtrlCreateLabel("将鼠标移动到左上角并按Ctrl键可以隐藏/显示本窗口", 0, 88, 420, 17, 1)
GUICtrlCreateLabel("将鼠标移动到右上角并按Ctrl键可以关闭本窗口", 0, 112, 415, 17, 1)
GUISetState(@SW_SHOW)

While 1
        $MousePos = MouseGetPos()
        If _IsPressed() Then
                If $MousePos[0] < 100 And $MousePos[1] < 100 And $GUIShow = True Then
                        GUISetState(@SW_HIDE)
                        $GUIShow = False
                        Sleep(200)
                ElseIf $MousePos[0] < 100 And $MousePos[1] < 100 And $GUIShow = False Then
                        GUISetState(@SW_SHOW)
                        $GUIShow = True
                        Sleep(200)
                EndIf
                If $MousePos[0] > (@DesktopWidth - 100) And $MousePos[1] < 100 Then Exit
        EndIf
        GUIGetMsg()
WEnd

Func _IsPressed($sHexKey = 11)
        Local $a_R = DllCall("user32.dll", "int", "GetAsyncKeyState", "int", "0x" & $sHexKey)
        If Not @error And BitAND($a_R[0], 0x8000) = 0x8000 Then
                Return 1
        Else
                Return 0
        EndIf
EndFunc   ;==>_IsPressed
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 17:17 , Processed in 0.083467 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表