找回密码
 加入
搜索
查看: 3584|回复: 10

仿鱼鱼桌面秀 壁纸游览遇到问题 请高手解答 已附上源码

[复制链接]
发表于 2008-9-25 11:59:34 | 显示全部楼层 |阅读模式
用了png做了窗口

无奈不能用 右键菜单 所以只能用了悬浮做右键  

问题1 哪位如果可以放到png窗口内 那是最好了

然后 由于采用 搜索 文件夹内的图片

问题2 由于做了循环 右键菜单 中 一些选项 均无法使用 只有循环好才有效cc

问题3 当选择透明度后 会自动设置第一幅 初始时的图片为透明 能否 选择哪个透明就哪个透明 - -

比如 这次有8张图片。加一副初始图片 一共9张

当循环播放到第4张 你按了透明 就从第四张开始 透明了。。

[ 本帖最后由 lele9013 于 2008-9-25 12:15 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2008-9-25 18:48:32 | 显示全部楼层
人工置顶。-  -。。继续请教
发表于 2008-9-25 20:32:15 | 显示全部楼层
楼上的是果果吧

哈哈谢谢下来看看
发表于 2008-9-26 08:40:16 | 显示全部楼层
有时间就看一下了。这个想法不错呀。
发表于 2008-9-26 10:07:02 | 显示全部楼层
楼主是要这样的效果吗?

对那个png的udf未做仔细研究,感觉有缺陷,在设置透明度以后,右键失效,我用的winsettrans($png_gui[0],'',190)之语句,请楼主自忖.

楼主的代码看得很累,ctrl+t应该不麻烦吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2008-9-26 11:35:27 | 显示全部楼层
恩 谢谢啦~~~~~~~~~

透明时的菜单问题也解决了

但还是有一个最大的问题

循环搜索图片并显示时

右键菜单 仍无法出现

我的想法是

搜索一张图片 显示出来。。按右键 可以选择设置主页的。。0 0

[ 本帖最后由 lele9013 于 2008-9-26 14:32 编辑 ]
发表于 2009-2-28 22:48:08 | 显示全部楼层
不错啊。。。。
我比较喜欢鱼鱼桌面中的png图标,改了一下楼主的代码,有个难题比较难解决:
1.要能把png图标钉在桌面上(不能跑到最上层,压着其它窗口就不好了),不能被任意移动。
2.并能响应单击,双击不同的事件。
#include <GUIConstants.au3>
#include "misc.au3"
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <PNGbackgroundUDF.au3>
_Singleton("myScript")
Opt("GUIOnEventMode", 1)

$title = "png图标"
$PNG_GUI = CreateTransparentGUI("png图标", @ScriptDir & "\11.png", 0, 255, 11, 15, -1, -1)

GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "click", $PNG_GUI[0])


While 1
        Sleep(1000)
WEnd


Func click()
        Run("C:\WINDOWS\system32\notepad.exe")
EndFunc


[ 本帖最后由 mhgd 于 2009-2-28 23:55 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-3-18 16:07:05 | 显示全部楼层
钉在桌面的代码:
#include <GUIConstantsEx.au3>
#Include <WinAPI.au3>

Opt("GUIOnEventMode", 1);启用 OnEvent 函数notifications        

;$Form1 = GUICreate("第一种方法", 100, 100, 100, 100,-1,-1,_WinAPI_GetWindow(_WinAPI_FindWindow('Progman', 'Program Manager'),'$GW_CHILD'))
;GUISetOnEvent($GUI_EVENT_CLOSE, "_exit" )
;GuiSetState()

$Form2 = GUICreate("第二种方法", 100, 100, 300, 100,-1,-1,_WinAPI_FindWindowEx(_WinAPI_FindWindow('Progman', ''),0,'shelldll_defview',''))
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit" )
GuiSetState()

While 1
        Sleep(20)
WEnd


func _exit()
        GUIDelete()
    exit
endfunc


;返回子窗口句柄,比如:打开一个.txt文件,你用FindWindow函数只能找到父窗口的名字可能是ff.txt,但你要找到文件输入框就用这个FindWindEx函数
;$hwndParent:要查找子窗口的父窗口句柄
;$hwndChildAfter:子窗口句柄,如果为NULL就从第一个开始找,如果hwndParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口,Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口
;$lpszClass:类名
;$lpszWindow:窗口或者控件的title或者caption
Func _WinAPI_FindWindowEx($hwndParent, $hwndChildAfter, $lpszClass, $lpszWindow);
        Local $aResult

        $aResult = DllCall("User32.dll", "hwnd", "FindWindowEx", "hwnd", $hwndParent, "hwnd", $hwndChildAfter, "str", $lpszClass, "str", $lpszWindow)
        If @error Then Return SetError(@error, 0, 0)
        Return $aResult[0]
EndFunc
发表于 2009-3-18 20:35:32 | 显示全部楼层
好像不行啊,只能实现钉在最前面啊。
发表于 2009-3-23 16:55:30 | 显示全部楼层
我刚找到的这段代码可以钉在桌面,来自http://www.lunhui.net.cn/article.asp?id=43,谢谢三痕

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

Example1()


; example 1
Func Example1()
    Local $msg,$Child,$hwnd

    $Child=GUICreate("My GUI") 
    
    $hwnd=WinGetHandle("Program Manager","")
    
    DllCall("user32.dll","hwnd","SetParent","hwnd",$Child,"hwnd",$hwnd)
    
    GUISetState(@SW_SHOW)       


    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
EndFunc   ;==>Example1
发表于 2010-2-2 17:16:05 | 显示全部楼层
唉。还是没找到改背景的源码 。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 12:37 , Processed in 0.079215 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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