在桌面上创建一个按钮
create an button on desktop
这些年来我收集了很多漂亮的墙纸。我知道python和c++(有一点MFC经验)。我想做一个程序,可以改变我的壁纸。
我想这样操作:有一个小图标(半透明的),如果我点击它,它会将我的壁纸更改为壁纸收集文件夹中的下一张图片。
我在google上找到了很多用程序换墙纸的信息。但是找不到win7的API来在桌面上添加一个按钮。
谁能告诉我怎么在桌面上设置图标按钮,还是没有这样的API?
编辑:我只是发现有一些方法可以让窗户不动。所以,我想现在我需要想办法用图标来制作窗口。然后它看起来就像桌面上的一个按钮。有一些方法可以让窗口在点击一次后得到响应?
关闭:船长的方法可能是一个更好的方法,对人有很好的了解窗口。我知道python,但很少了解MFC或与操作系统本身有很深关系的类似框架。这个桌面按钮创建对我来说很难实现。修改christian的脚本和windows快捷方式将是一个不好看的妥协。我将这样做
我最近写了一个python程序来保存我的学校成绩作为我的背景
可能有帮助的代码片段是;
pathToBmp = "imagename or image directory"
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, pathToBmp ,
0)
这会将你的桌面BG更改为任意文件名,但是在pathToBmp
我相信你可以很容易地把剩下的算出来。
而不是按钮,也许可以创建一个快捷方式,运行python程序,将BG切换到下一张图片
我不知道这是否是你想要的,但只是一些建议和想法:)
编辑:也许这会对你有帮助。
Windows 7小工具教程
Windows侧边栏对象参考
毫无疑问,要想在桌面上添加一个按钮,没有一种直接的方法可以省去很多麻烦。您可以创建子控件并将父窗口设置为桌面,但您不会收到按钮单击通知。这是因为它们只被发送到控件的父窗口。使控件出现在桌面上的最接近和最简单的解决方案是创建它并通过调用SetWindowPos()
将其z轴顺序设置为最底部。您的应用程序仍然能够接收按钮通知消息,但控件总是出现在所有其他窗口的后面。你可能需要重写最小化和最大化消息的行为,因为桌面可以最小化所有窗口。
你也可以选择添加一个图标在系统托盘与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
的值和其他信息也作为参数传递给窗口,允许您识别单击了哪个图标(在添加多个图标的情况下)。
有一个最简单的方法。安装VBest图标组。(这是一个桌面图标堆栈)然后选择任何堆栈并添加单个按钮。(拖放任何应用程序都会在堆栈中获得链接和图标)选择堆栈并在其设置中设置透明度为0(向左滑动)就是这样。现在你有了一个带有链接的按钮
- 单击一个按钮后创建一个按钮
- 一个按钮有两个或多个快捷方式
- 我动态添加一个按钮,如何在Qt的另一个空白中使用此按钮
- 禁用QT安装程序框架中的本机下一个按钮
- 当在C#中的WPF应用程序中单击一个按钮时,如何调用C 代码
- 在Qt Gui中,如何使每次点击都随机出现一个按钮
- MFC-停用除一个按钮外的所有按钮
- WinAPI 创建窗口 + 子窗口,处理一个按钮按下
- C++/MFC 有没有办法在单击另一个按钮的同时单击另一个按钮
- SDL2 运行得太快 -- 为什么当我只按一个按钮时它会读取多个输入
- 如何在屏幕底部的栏上为Qt诺基亚添加一个按钮
- 我可以用visual c++创建一个按钮矩阵吗
- 如何禁用QWizard中的下一个按钮
- 我想从GUI上的一个按钮打开Msconfig
- 在桌面上创建一个按钮
- 创建一个按钮,通过该按钮可以终止或终止正在运行的进程
- Qt如何添加一个组框,其中包含一些动态的小部件与一个按钮
- 在MFC,我怎么能有一个按钮来创建几个对话框实例连续不关闭它们
- Qt如何使一个按钮响应时,插槽连接到它的click()信号正在运行
- Qt快速如何创建一个按钮,将看起来原生的每个操作系统的应用程序中使用