我有一个表格我设置为最大化,但由于某种原因,它忽略了任务栏并最大化到整个屏幕.那是典型的吗?有解决方法吗?
我正在运行带有双显示器设置的Windows XP(第一个/主窗口中的任务栏).
在Vista和Windows 7上隐藏任务栏时,开始按钮(也称为开始球)不会被隐藏.我一直在寻找解决方案,我找到了一个,但似乎比必要的更复杂.此CodeProject文章描述(并包含代码)一个解决方案,其中您枚举包含开始菜单的进程中所有线程的所有子窗口.
有没有人找到更简单的解决方案?
仅供参考.隐藏任务栏(不隐藏Orb)的代码如下.首先做必要的Win32导入和声明.
[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string className, string windowText);
[DllImport("user32.dll")]
private static extern int ShowWindow(IntPtr hwnd, int command);
private const int SW_HIDE = 0;
private const int SW_SHOW = 1;
Run Code Online (Sandbox Code Playgroud)
然后,在某个方法中,使用正确的参数调用它们
IntPtr hwndTaskBar = FindWindow("Shell_TrayWnd", "");
ShowWindow(this.hwndTaskBar, SW_HIDE);
Run Code Online (Sandbox Code Playgroud) 基本上我想制作简单的切换程序(将映射到某些键盘快捷键),如果处于正常模式,则将任务栏设置为自动隐藏模式(相反,如果处于自动隐藏状态,则设置为正常显示模式).
你知道如何在C#中实现它吗?(或者Win32 C++,但实际上做的任何事情都可以.)
谢谢.希望我已经清楚了.
-
我真的不想要任何与任务栏重叠的全屏应用程序,只有切换显示模式和退出的无窗口程序.我定期从自动隐藏切换到普通视图,并希望简化它.(使用Win7.)
-
编辑.例如
#include <windows.h>
int CALLBACK WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
SetWindowPos(FindWindow(L"Shell_traywnd", NULL ), 0, 0, 0, 0, 0, 0x40);
}
Run Code Online (Sandbox Code Playgroud)
不会做的伎俩,它只显示任务栏,它已经可见=真,但没有将其切换为自动隐藏.(同样适用于0x80.)
使用Screen.DesktopHeight和Screen.DesktopWidth,我可以获得"虚拟"桌面的大小,我相信它适用于一个或多个显示器.
我将应用程序的位置(顶部和左侧)和大小(高度和宽度)保存到注册表中.当它打开时,我想确保它完全可见,因为它可能已部分移动到可见区域之外,或者屏幕尺寸可能已经改变,例如通过屏幕设置或移除监视器.
我基本上可以用这段代码来做:
if MyForm.Width > screen.DesktopWidth then
MyForm.Width := screen.DesktopWidth;
if MyForm.Height > screen.DesktopHeight then
MyForm.Height := screen.DesktopHeight;
if (MyForm.Left + MyForm.Width) > screen.DesktopWidth then
MyForm.Left := screen.DesktopWidth - MyForm.Width;
if MyForm.Left < 0 then MyForm.Left := 0;
if (MyForm.Top + LogoAppForm.Height) > screen.DesktopHeight then
MyForm.Top := screen.DesktopHeight - LogoAppForm.Height;
if MyForm.Top < 0 then MyFormTop := 0;
Run Code Online (Sandbox Code Playgroud)
这没关系,除了它没有考虑通常(但不总是)在桌面底部的任务栏.因此,如果任务栏妨碍了我的应用程序窗口,我的应用程序就会变得模糊不清.
如何获取排除任务栏位置的屏幕的可用位置和大小设置?
Windows任务栏上的显示对象有几个应用程序,但没有实现IDeskBand接口.例如,联想电池表和笔记本电池电池信息.
例如:
笔记本电池信息http://home.arcor.de/batteryinfogateway/img/taskbar_new.png
在上图中,任务栏上的对象由应用程序放在那里,并在应用程序关闭时消失.这与IDeskBand不同,其中COM对象由explorer.exe直接加载.
可以在Windows中使用什么API /方法来实现这一目标?
我想为.NET中的Windows开发一个小型通知应用程序,它停靠在屏幕的右侧/左侧(不超过300px),应始终可见并强制其余窗口不与此应用程序重叠(某些内容)比如旧的Office任务栏或Vista的补充工具栏.我不知道从哪里开始.可以使用XAML/WPF完成吗?由于我甚至没有开始编码任何选项在这一点上是有效的.
谢谢!
我有两个关于Windows 7任务预览的问题.在Delphi中,我想在下面的屏幕截图中突出显示的区域内创建自己的按钮.
1)是否可以在任务预览窗口(在Windows 7中)创建自己的控件,例如Winamp可以做什么?或者只是一些有限的多媒体扩展?
2)如果有可能画出自己的按钮我应该从哪里开始?示例或Windows API指南对我有帮助.
非常感谢提前
Windows 7(或称Vista?)中引入的功能之一是应用程序的任务栏按钮能够显示该应用程序中进度条的进度.当我创建一个表单并在其上放置一个进度条时,它不会显示在任务栏按钮中,所以我认为这不是自动完成的.如何让Windows 7在应用程序的任务栏按钮上显示进度条的进度?
我使用在启动时运行的visual studio编写了一个Kiosk风格的C#应用程序,并且应该扩展到全屏并覆盖任务栏.
我正在做通常的设置边框样式为无,并填充范围,如果我只是手动启动应用程序它完美地工作.
当应用程序在启动时启动时(通过开始菜单中的启动文件夹中的快捷方式),任务栏最终位于程序之上,单击表单上的某个位置不会使表单返回顶部.
有没有人遇到过这个问题,或者知道可能的解决方法.
如果我使用runemacs.exe启动emacs,任务栏中的窗口将与emacs.exe进程相关联,而不是与runemacs.exe进程相关联.这意味着如果我固定runemacs.exe,我会在任务栏中获得两个emacs图标.如果我固定emacs.exe,我会得到一个控制台.我怎么吃蛋糕吃呢?