问题标签 [deskband]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3914 浏览

c# - 如何以编程方式告诉 Windows 任务栏打开(或关闭)给定的工具栏?

我写了一个在任务上运行的工具栏。不幸的是,安装后,用户必须手动启用它。有没有办法告诉资源管理器打开(或关闭)给定的工具栏?

我希望安装程序 NSIS 在安装完成后打开工具栏(我意识到需要一个插件)。

我还想知道是否可以为所有用户自动启用工具栏,例如在多个用户共享一台 PC 的公司环境中。

0 投票
3 回答
3272 浏览

toolbar - 从 BHO 激活 IE 附加组件

我写了两个对象,一个桌带工具栏和一个用于 IE 的 bho。目标是 bho 在安装后显示工具栏。微软的做法是使用 pBrowser->ShowBrowserBar(&vtBandGUID, &vtShow, 0);

此方法可以很好地显示和隐藏已通过插件管理器激活但不适用于已停用插件的工具栏。有没有办法以编程方式做与插件管理器完全相同的事情(启用/禁用特定插件)?

0 投票
1 回答
2507 浏览

toolbar - 如何在 DeskBand 任务栏工具栏上强制 C# 中的 ComboBox 的 GDI+ 渲染?(透明度问题)

我已经使用 Codeproject 中的 BandObjectLib( Extending Explorer with Band Objects using .NET and Windows Forms )实现了一个 DeskBand 任务栏工具栏,修改为支持 IDeskBand2 界面,该界面允许 Windows Vista 中的开始菜单在我的 DeskBand 任务栏工具栏时保持透明度已启用。但是,组合框或文本框中显示的文本会显示与文本原始颜色混合的基础桌面背景颜色。

标签没有这个问题,因为它通常是使用 GDI(+) 绘制的,它忽略了渲染文本(而不是标签的背景)上的 DWMComposition。

我认为这个问题是因为 DWM 在 Vista 上的工作方式涉及某些文本元素,这在以下页面中进行了解释:

在 Aero Glass 上使用 Vista 控件
Windows Vista Aero Pt。1 - 将 Glass 添加到 Windows 窗体应用程序
将 Aero Glass 添加或改装到旧版 Windows 应用程序中

我只在我的 DeskBand 工具栏上使用一个组合框,所以我只需要知道如何强制组合框不使用 DWM 显示,即使 DWM 在系统上启用并且通过 IDeskBand2 接口的实现在 DeskBand 上启用。

更新:我已经对其进行了进一步的研究,在将 Aero Glass 添加或改装到旧版 Windows 应用程序中的 C++ 代码似乎最有可能让这个工作正常工作,因此组合框显示文本不透明。如果有人可以查看仅与组合框有关的代码并帮助我使其适用于 C# 组合框,那将是我的一个月!我已经开始赏金,希望能得到答案。

下面是来自上述项目的 EditProc.cpp 类,它应该可以快速了解我正在寻找的解决方案。要获得完整的图片,您需要查看完整的项目:

谢谢,

John Rennemeyer
MuvEnum, LLC

0 投票
1 回答
4467 浏览

c# - 适用于 Windows 7 的桌带

遵循 codeproject 中的教程后,我为 Windows XP 创建了一个桌带。它工作完美。然而,一些用户使用 Windows 7,他们发现他们无法使用我创建的桌带。谁能让我知道如何解决这个问题?


更新:Windows 7 用户安装桌带(msi 文件)后,在 windows 工具栏(鼠标右键任务栏 > 工具栏 > )中看不到它。桌带在 Windows 7 中的 IE 工具栏中可见(BandObject 为 Windows 工具栏和 IE 工具栏创建桌带)。

谢谢!

0 投票
1 回答
5150 浏览

c# - 如何让 DeskBands 在 Windows 7 x64 上运行?

我将创建一个应用程序 (C#),它的 DeskBand 位于 Windows 任务栏上。我找到了一个完整的示例程序,它可以做到这一点,但我没有成功安装(添加到任务栏上的工具栏菜单)它。我想,这是因为我的 Windows 是 x64,没有其他明显的原因......

那么,我的问题是如何在 Windows 7 x64 任务栏上创建和添加桌带?

0 投票
1 回答
1650 浏览

c# - Windows 7 x64 C# 中的桌带?

我想在 C# 中创建一个桌面应用程序,例如 BatteryBar。我知道桌带可能无法在未来版本的 Windows 中工作,您不应该在托管代码中编写资源管理器扩展,等等。我的问题是,目前推荐的在 C# 中创建桌带(或模拟桌带)的方法是什么?提前致谢!

0 投票
1 回答
208 浏览

.net - 桌带不可修改

我创建了一个桌带,然后是 codeproject 教程 (http://www.codeproject.com/KB/shell/dotnetbandobjects.aspx)。

安装好桌带后,我意识到有些地方需要修改。所以我卸载了桌带,回到我的代码并编辑代码,重建解决方案,重新安装桌带。但是,在任务栏中,桌带显示为没有任何变化,修改后没有任何变化。有谁知道这是为什么?

0 投票
1 回答
444 浏览

internet-explorer-8 - 启用 IE 保护模式时不显示桌带工具栏按钮

我开发了一个附加按钮,它使用当前选项卡的 URL 将 tcp 消息发送到另一个进程。这就是它所做的一切

由于我的经验仅限于托管代码,因此我使用了这篇文章Extending Explorer with Band Objects using .NET and Windows Forms

创建我的工具栏按钮。问题是在 Windows vista 和 7 上启用 IE 保护模式时它完全不显示。

我读了这篇文章http://msdn.microsoft.com/en-us/library/bb250462(VS.85).aspx#wpm_elebp

并使用我的桌带的 GUID 创建了一个提升策略,但仍然没有用

有没有办法从托管代码的角度来处理这种情况?

0 投票
1 回答
370 浏览

com - 如何向 Inproc COM 服务器添加和实现新接口

我已经实现了一个 windows 桌带(使用 windows SDK 示例)并且需要一种与之通信的方式(一个调用以启动 IPC 与另一个应用程序,IPC 已经在工作)。

我的 COM 经验非常有限,但根据我所见,我认为应该可以创建一个新的 COM 接口,在桌带对象(我可以通过 IBandSite 访问)中实现它,为我的调用 QueryInterface()自己的接口就可以了,然后用它直接调用到桌带。

我已经尝试过了,但很快就遇到了问题(主要原因是:我不知道我大部分时间实际上在做什么......)

所以,我的问题是:这是一种可行的方法吗?如果可行的话,有人可以给我一个关于如何进行的大纲(或者指出一些可能有用的资源 - 没有阅读 COM 书籍,这将是我的最后一种方法) . 如果不是,是否会想到替代方案?

感谢您的时间和最良好的祝愿,

雷内。

0 投票
1 回答
2289 浏览

delphi - 如何使我的桌带(任务栏工具栏)表单透明

我正在为 Windows XP、Vista 和 7(Win32 和 Win64)开发 Delphi XE2 中的 Windows Deskband...

我已经在我的代码中实现了所有必要的接口(ITrayDeskBand、IDeskBandInfo、IDeskBand2、IDeskBand),并且一切都完全按照它应该的方式工作(Vista/7 上没有任何警告抱怨其他人经历过的兼容性)。

我遇到的问题是我的桌带表格出现了一个不透明的带子。此外,仅显示某些控件(在这种情况下,TBitBtn 和 TImage 包含 PNG)。我也需要它来正确显示 TEdit 和 TComboBox 对象,但它们根本不会出现。

我已经尝试在我的表单上启用GlassFrameSheetOfGlass属性,但这一点帮助都没有。

此外,表单本身超出了任务栏的顶部边界,这意味着如果光标与我的桌带正上方的任务栏顶部对齐,则无法(例如)调整任务栏的大小。

我相信 Delphi 的 VCL TForm 类型在幕后做了一些事情,这使得 TForm 类型与 Deskband 容器不兼容......但这只是一个怀疑。

这是说明各种问题的屏幕截图:

在此处输入图像描述

如您所见(上图),Deskband 的表格是苍白的(而不是透明的),它与任务栏的顶部重叠(防止在任务栏“隐藏”时调整大小和自动隐藏触发)

有任何想法吗?

更新 1 好的,我一直在玩,并注意到在创建用于 Deskband 的 TToolBar 控件时观察到完全不同的行为,而不是表单:

在此处输入图像描述

注意有三个TToolButton控件(由于 Glass 主题,它们的文本几乎不可见)?两个分隔符之间也应该有一个TEditand TComboBox,但它们根本拒绝显示。

还注意到人工制品(实际任务栏图标的重复)吗?

我不确定这是否是朝着正确方向迈出的一步,但它可能会帮助您(或其他人)推断出解决方案!