我想这样操作: 有一个小图标(半透明),如果我点击它,它会将我的壁纸更改为我的壁纸集合文件夹中的下一张图片。
我发现很多由谷歌程序改变壁纸的信息。 但是找不到用于在桌面上添加按钮的win7 API。
请有人告诉我如何在桌面上设置图标按钮,或者只是没有这样的API?
编辑: 我发现有办法让窗户无法移动。所以,我认为现在我需要找到一种方法来制作一个图标窗口。然后它看起来像桌面上的按钮。并且,有一些方法可以让Windows在点击(一次)时做出一些响应,对吧?
关闭: 对于对窗户有很好理解的人来说,船长的方法可能是更好的方法。 我知道python,但很少有MFC或类似框架的知识与操作系统本身有很深的关系。这个桌面按钮创建对我来说很难实现。 修改基督徒的脚本和Windows快捷方式将是一个不太好看的妥协。我会这样做的。
答案 0 :(得分:1)
我最近写了一个python程序,将我的学业成绩保存为我的背景
可能有用的代码段是
pathToBmp = "imagename or image directory"
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, pathToBmp ,
0)
这会将您的桌面BG更改为您pathToBmp
我相信你可以很容易地找出其余部分
而不是一个按钮可能会创建一个快捷方式来运行python程序,将BG切换到下一张图片
我不知道这是你在寻找什么,只是一些指示和想法:)
编辑: 也许这会对你有所帮助
答案 1 :(得分:1)
AFAIK没有直接的方法来向桌面添加按钮而不会跳过很多箍。您可以创建子控件并将父窗口设置为桌面,但不会收到按钮单击通知。这是因为它们仅被发送到控件的父窗口。在桌面上创建控件 的最近且最简单的解决方案是创建它并通过调用SetWindowPos()
将其z-order设置为最底层。您的应用程序仍然可以接收按钮通知消息,但控件始终显示在所有其他窗口后面。您可能需要覆盖最小化和最大化消息的行为,因为桌面可以最小化所有窗口。
您还可以选择使用Shell_NotifyIcon
在系统托盘上添加图标。只要您单击图标,系统托盘就会将消息发送到您指定的窗口。下面的小例子显示了如何将图标添加到系统托盘。
static const UINT WM_TRAYMESSAGE = WM_USER + 1000;
static const UINT IDC_TRAYICON = 100l;
NOTIFYICONDATA nid;
//Tray Class Stuff
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hwnd; // Window to receive notifications
nid.uID = 100; // Id sent to window on button clicks
nid.uFlags = NIF_ICON|NIF_MESSAGE;
nid.hIcon = LoadIcon(hInstance, IDC_TRAYICON);
nid.uCallbackMessage = WM_TRAYMESSAGE; // notification to send to window
// Add the tray icon
Shell_NotifyIcon(NIM_ADD, &nid);
每当用户点击图标时,您指定的窗口都会收到WM_TRAYMESSAGE
消息。 uID
和其他信息的值也作为参数传递给窗口,允许您识别单击的图标(如果添加了多个图标)。
答案 2 :(得分:-1)
有一个最简单的方法。 安装 VBest 图标组。 (它是一个桌面图标堆栈) 然后选择任何堆栈并添加一个按钮。 (拖放任何应用程序都会在堆栈中获得其链接和图标) 选择堆栈并在其设置中,将透明度设置为 0(向左滑动) 这就对了。现在您只有一个带有链接的按钮。