找回密码
 加入
搜索
查看: 12140|回复: 32

[AU3基础] 修改密码脚本

 火... [复制链接]
发表于 2010-7-9 11:03:11 | 显示全部楼层 |阅读模式
我写了个工具箱,登陆要密码,我想在加点内容就是可以修改登陆密码的脚本(需要原密码确认,并且要确认一次新密码三个$p),修改密码部分UDF存入注册表一个键值,并让下次登陆读取保存的这个注册表键值!先谢了
 楼主| 发表于 2010-7-9 15:50:01 | 显示全部楼层
顶上去,望专家指点
 楼主| 发表于 2010-7-10 12:54:25 | 显示全部楼层
求助
发表于 2010-7-10 12:55:12 | 显示全部楼层
你是哪一步不清楚还是都不清楚哦~
发表于 2010-7-10 12:57:53 | 显示全部楼层
这个应该容易解决吧!有afan在就行吧!
 楼主| 发表于 2010-7-10 13:28:46 | 显示全部楼层
我把这步脚本发上来
;登陆匡
Dim $a = InputBox("请输入密码", "请输入密码,有 3 次机会输入", "", "*", 180, 120,$ES_PASSWORD), $p = 'bn3045800'
修改密码的按键$Button2 = GUICtrlCreateButton("密码修改", 144, 24, 123, 25)

$Button2 按键弹出

        If $nMsg = $Button2 Then
                Example1()
;密码输入匡部分
Func Example1()
        Local $file, $btn, $msg, $btn1, $p1, $p2, $p3
        GUICreate("修改密码", 280, 140)
        GUISetState(@SW_SHOW)
        $p1 = GUICtrlCreateLabel("原始密码:", 5, 15, 70, 20)
        $p2 = GUICtrlCreateLabel("新密码:", 5, 45, 70, 20)
        $p3 = GUICtrlCreateLabel("确认密码:", 5, 75, 70, 20)
        GUICtrlCreateInput("", 60, 10, 210, 20, $ES_PASSWORD)
        GUICtrlCreateInput("", 60, 40, 210, 20, $ES_PASSWORD)
        GUICtrlCreateInput("", 60, 70, 210, 20, $ES_PASSWORD)
        $btn = GUICtrlCreateButton("确定", 40, 100, 80, 30)
        $btn1 = GUICtrlCreateButton("取消", 150, 100, 80, 30)
        While 1
                $msg = GUIGetMsg()
Switch $msg
                Case $GUI_EVENT_CLOSE
                        Exit
Case $btn
               
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Run","gongjumima","REG_SZ","存放(登陆读取)工具修改密码")
           EndSwitch
               
                          ;原始密码
                     
                 ;新密码
                  
                 ;确定新密码
               
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
                ;退出修改密码框
                        If $msg = $btn1 Then
                ExitLoop
        EndIf
WEnd
GUIDelete()
EndFunc
可以修改登陆密码的脚本(需要原密码确认,并且要确认一次新密码三个$p),修改密码部分UDF存入注册表一个键值,并让下次登陆读取保存的这个注册表键值!
 楼主| 发表于 2010-7-10 13:55:41 | 显示全部楼层
版主,你帮我研究下,看怎么写法才能实现
发表于 2010-7-10 14:02:02 | 显示全部楼层
我现在没空,晚上来看看~ 可能下午就有人帮你解决了
 楼主| 发表于 2010-7-10 14:13:26 | 显示全部楼层
这帖子从昨天就挂起到现在的
高人指点
发表于 2010-7-10 17:21:49 | 显示全部楼层
本帖最后由 410521a 于 2010-7-10 17:23 编辑

刚试着做了一个这样的`不知道能不能帮到楼主
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Dim $Button[5], $mima
$mima = RegRead("HKEY_CURRENT_USER\Software\登陆","密码")        
$Form1 = GUICreate("登陆", 231, 160, -1,-1)
$Input1_1 = GUICtrlCreateInput("", 64, 45, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Label1_2 = GUICtrlCreateLabel("密码:", 24, 48, 40, 17)
$Button[1] = GUICtrlCreateButton("登陆", 24, 112, 75, 25)
$Button[2] = GUICtrlCreateButton("修改密码", 128, 112, 75, 25)
$Form2 = GUICreate("密码修改", 240, 159, -1,-1)
$Input2_1 = GUICtrlCreateInput("", 72, 16, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Input2_2 = GUICtrlCreateInput("", 72, 48, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Input2_3 = GUICtrlCreateInput("", 72, 88, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Label2_1 = GUICtrlCreateLabel("旧密码:", 16, 16, 52, 17)
$Label2_2 = GUICtrlCreateLabel("新密码:", 16, 48, 52, 17)
$Label2_3 = GUICtrlCreateLabel("新密码:", 16, 88, 44, 17)
$Button[3] = GUICtrlCreateButton("保存", 24, 120, 75, 25)
$Button[4] = GUICtrlCreateButton("取消", 136, 120, 75, 25)
TraySetState()
GUISwitch($Form1)
GUISetState(@SW_SHOW)

For $I = 4 To 0 Step -1
        GUICtrlSetOnEvent($Button[$I],"GUIGetMsg")
        Next
        
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button[1]
                        $du=GUICtrlRead($Input1_1)
                        If $du=$mima Then
                            MsgBox(0,"","登陆成功!")
                    Else
                                MsgBox(0,"","密码错误!")
                        EndIf                        
                Case $Button[2]
                        GUISetState(@SW_SHOW,$Form2)
                Case $Button[3]
                         $du1=GUICtrlRead($Input2_1)
                         $du2=GUICtrlRead($Input2_2)
                         $du3=GUICtrlRead($Input2_3)
                         If $du1<>$mima Then
                                MsgBox(0,"","旧密码不正确!")
                         ElseIf $du3<>$du2 Then
                MsgBox(0,"","新密码两次输入不一样!")
                         Else
                                RegWrite("HKEY_CURRENT_USER\Software\登陆","密码","REG_SZ",$du2)
                                MsgBox(0,"","密码修改成功!")
             EndIf                                
                Case $Button[4]
                        GUISetState(@SW_HIDE,$Form2)
        EndSwitch
WEnd

评分

参与人数 2金钱 +20 贡献 +3 收起 理由
lynfr8 + 3
水木子 + 20

查看全部评分

发表于 2010-7-10 17:46:54 | 显示全部楼层
谢谢水木子的评分``第一次帮助别人得到评分```这让我很感动`` `` 就是不知道能不能帮到楼主``

评分

参与人数 3金钱 +49 贡献 +2 收起 理由
thesnow + 20
lynfr8 + 9 付出总有回报
afan + 20 + 2

查看全部评分

发表于 2010-7-10 17:55:20 | 显示全部楼层
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Local $p = '123', $input1, $input2, $input3
For $i = 3 To 1 Step -1
        $a = InputBox("请输入密码", "请输入密码,有" & $i - 1 & "次机会输入" & @CRLF & "初始密码是bn3045800", "", "*", 180, 120, $ES_PASSWORD)
        If Not @error Then
                If $a == $p Then example()
        Else
                Exit
        EndIf
Next

Func example()
        #Region ### START Koda GUI section ### Form=
        $Form1 = GUICreate("修改密码", 281, 141, 386, 226)
        $label1 = GUICtrlCreateLabel("原始密码:", 5, 15, 70, 20)
        $label2 = GUICtrlCreateLabel("新密码:", 5, 45, 70, 20)
        $label3 = GUICtrlCreateLabel("确认密码:", 5, 75, 70, 20)
        $input1 = GUICtrlCreateInput("", 60, 10, 210, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD))
        $input2 = GUICtrlCreateInput("", 60, 40, 210, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD))
        $input3 = GUICtrlCreateInput("", 60, 70, 210, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD))
        $btn = GUICtrlCreateButton("确定", 40, 100, 80, 30)
        $btn1 = GUICtrlCreateButton("取消", 150, 100, 80, 30)
        GUISetState(@SW_SHOW)
        #EndRegion ### END Koda GUI section ###
        ;RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Run","gongjumima","REG_SZ","123")
        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case $GUI_EVENT_CLOSE
                                Exit
                        Case $btn
                                Example1()
                        Case $btn1
                                Exit
                EndSwitch
        WEnd
EndFunc   ;==>example

Func Example1()
        $regkey = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Run", "gongjumima")
        $p1 = GUICtrlRead($input1)
        $p2 = GUICtrlRead($input2)
        $p3 = GUICtrlRead($input3)
        If $p1 = '' Or $p2 = '' Or $p3 = '' Then
                MsgBox(64, "警告", "密码不能为空")
        Else
                If $p1 <> $regkey Then
                        MsgBox(64, "警告", "原始密码错")
                Else
                        If $p2 <> $p3 Then
                                MsgBox(64, "警告", "两次输入密码不一致")
                        Else
                                RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Run", "gongjumima", "REG_SZ", $p2)
                                MsgBox(0, "恭喜", "密码修改完成")
                        EndIf
                EndIf
        EndIf
EndFunc   ;==>Example1

评分

参与人数 2金钱 +20 贡献 +3 收起 理由
lynfr8 + 3
afan + 20

查看全部评分

发表于 2010-7-10 18:07:08 | 显示全部楼层
回复 11# 410521a

呵呵!没什么,应该的。

这帖刚出来我就看见了,一直没有出手帮忙也是有原因的。

1:刚做完手术,在床上躺着,实在不方便,勉强能上来学习学习已经不错了。
2:实在不喜欢楼主求知的态度,一味的嚷嚷有什么用呢!不如自己去翻翻帮助文件,看看基本函数、或者论坛上搜索看看,“与其一味的求助,不如看看基本函数”

希望我这样说不会打击到楼主学习Au3的信心,因为我并没有资格说这些。
大家都是新人,我也是新人,所以我非常理解新人的求知欲和痛苦。

顺便和新人们分享下我个人的学习方法(高手飘过)
1:遇到问题卡住了,先静下来看看自己的代码思路、结构是否合理,是不是还有自己没考虑到的地方,多检查检查。
2:多用MsgBox、_ArrayDisplay 等函数 输出变量值看看是否正确
3:善用搜索,相信自己的问题 他人也可能遇到过。
4:多做些类似问题的简单例子看看是否正常,主要是为了将问题简单化具体化。
5:再苦想N天
6:实在没辙了,求助吧!     


这是我个人学习Au3的笨方法!!!

评分

参与人数 2金钱 +35 贡献 +22 收起 理由
lynfr8 + 35 + 17 祝早日安康!
afan + 5 刚做完手术还不多休息~!

查看全部评分

发表于 2010-7-10 18:47:42 | 显示全部楼层
水木兄生病了?还做了手术?
祝你早日恢复健康。
发表于 2010-7-10 18:53:04 | 显示全部楼层
回复 13# 水木子


    做手术?     。。。。。。祝你早日康复!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 14:29 , Processed in 0.097162 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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