找回密码
 加入
搜索
查看: 2360|回复: 3

$WS_POPUP的GUI如何恢复任务栏最小化功能,并如何密文自动登录WINDOWS,请指教

  [复制链接]
发表于 2010-1-19 22:50:50 | 显示全部楼层 |阅读模式
本帖最后由 llztt 于 2010-1-20 00:12 编辑

标题说不条清,具体贴里说了
Global $blackbarwindow
Opt("GUIOnEventMode", 1) 
$newgui=blackbarwin()
GUISetState(@SW_SHOW)
While 1
        Sleep(50)
WEnd        
Func blackbarwin($thetitle="",$width=500,$height=400,$left=-1,$right=-1,$param1=0,$param2=0)
        $blackbarwindow = GUICreate($thetitle, $width, $height, $left, $right, BitOR(0x80000000,$param1),BitOR(0,$param2))
        GUICtrlCreateLabel("  "&$thetitle, 0, 0, $width-38, 25,0x0200,0x00100000)
        GUICtrlSetFont(-1, 10, 500, 0,"宋体")
        GUICtrlSetColor(-1, 0xFFFFFF)
        GUICtrlSetBkColor(-1, 0x000000)
        GUICtrlCreateLabel("-", $width-39, 0, 20, 25,0x0200)
        GUICtrlSetFont(-1, 12, 900, 0)
        GUICtrlSetColor(-1, 0xFFFFFF)
        GUICtrlSetBkColor(-1, 0x000000)
        GUICtrlSetCursor(-1, 0)
        GUICtrlSetOnEvent(-1,"miniit")
        GUICtrlCreateLabel("×",$width-20, 0, 20, 25,0x0200)
        GUICtrlSetFont(-1, 12, 900, 0)
        GUICtrlSetColor(-1, 0xFFFFFF)
        GUICtrlSetBkColor(-1, 0x000000)
        GUICtrlSetCursor(-1, 0)
        GUICtrlSetOnEvent(-1,"closeit")
        GUICtrlCreateLabel("", 0, 0, 1, $height-1) ;left
        GUICtrlSetBkColor(-1, 0x000000)
        GUICtrlCreateLabel("", $width-1, 0, 1, $height-1) ;right
        GUICtrlSetBkColor(-1, 0x000000)
        GUICtrlCreateLabel("", 0, $height-1, $width, 1) ;down
        GUICtrlSetBkColor(-1, 0x000000)
        return $blackbarwindow
EndFunc        
        
Func miniit()
    GUISetState(@SW_MINIMIZE, $blackbarwindow)
EndFunc

Func closeit()
        DllCall("user32.dll", "int", "AnimateWindow", "HWND", $blackbarwindow, "int", 200, "long", 0x00050010)
        Exit
EndFunc 
上面这个是我的黑边框UDF,使用正常,但有一个缺点,就是使用了那个0x80000000样式后,在任务栏里点此任务,不能最小化和还原切换(譬如打开记事本,任务栏点之可最小化之,再点还原显示之),不知有否API可恢复这个GUI的这个特性??

二问,pusofalse兄有可获取PPPOE账号密码的函数,不知有否可操作WINDOWS自动登录的函数呢??貌似两者好像都是加密过后的密码放在注册表里了。。因为,如果封装前设置过非空密码的镜像,在部署后的会无法自动登录,所以我想可否通过AU3在部署过程中恢复其自动登录(保留非空密码)

pusofalse兄对API很在行,请赐教,有了解者也请帮忙解答,谢谢
发表于 2010-1-19 23:59:58 | 显示全部楼层
本帖最后由 pusofalse 于 2010-1-20 00:04 编辑

第一个不会,截取消息时出错~
第二个,我只知道PPPOE的用户名密码保存在
HKLM\SECURITY\Policy\Secrets\L$_RasDefaultCredentials#0,或HKLM\SECURITY\Policy\Secrets\RasDialParams!用户SID#0"这里,一个保存“所有用户”,一个保存“只是我”。

WINDOWS管理员的密码保存在HKLM\SECURITY\Policy\Secrets\DefaultPassword里。
DefaultPassword这一项,并不是所有系统中都有,我测试了好多台机器,能够成功截取到管理员密码的概率很小。系统生成这两个注册表项的前提还不知道。
HKLM\SECURITY\Policy\Secrets\里面的数据用注册表打开查看,并不能找到什么有意义的信息。
可以借助_LsaRetrievePrivateData函数。
#include <LocalSecurityAuthority.au3>
$bData = _LsaRetrievePrivateData("DefaultPassword") ; Secrets下面的子键名称。
$iLength = @extended
$tBinary = DllStructCreate("byte Binary[" & $iLength & "]")
$tBuffer = DllStructCreate("wchar Text[" & $iLength / 2 & "]", DllStructGetPtr($tBinary))
DllStructSetData($tBinary, "Binary", $bData)
Msgbox(0, "", DllStructGetData($tBuffer, "Text"))
关于WINDOWS自动登录,我想你说的应该不是只要修改HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon这里面的信息就能够实现的。
系统停留在欢迎界面时,所有用户层程序都还没有运行。或者,可以写成一个服务,这个我就不会了,编写服务程序需要特定的服务规则。
 楼主| 发表于 2010-1-20 00:12:28 | 显示全部楼层
恩,HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon这个是明文密码,看着不带劲

HKLM\SECURITY\Policy\Secrets\DefaultPassword里的自动登录密码 该是系统自带的自动登录程序(control userpasswords2)放置的,呵呵,还以为会系统的加密算法就可以写进去呢。。

好吧,看来不好解了,谢谢pusofalse兄了
发表于 2010-1-20 00:37:51 | 显示全部楼层
回复 3# llztt


    不好意思,没能帮上你。
第二个关于密码的问题,这确实是我水平所不及的,实在没办法,对系统的了解,我远不如他人,只是对我自己感兴趣的有皮毛的研究而已。
第一个关于窗口的问题,应该只是思路问题,再试一下~ - -|||
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 05:20 , Processed in 0.092202 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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