- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下代码以编程方式将 DeskBand 对象添加到系统托盘:
[ComImport, Guid("6D67E846-5B9C-4db8-9CBC-DDE12F4254F1"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface ITrayDeskband
{
[PreserveSig]
int ShowDeskBand([In, MarshalAs(UnmanagedType.Struct)] ref Guid clsid);
[PreserveSig]
int HideDeskBand([In, MarshalAs(UnmanagedType.Struct)] ref Guid clsid);
[PreserveSig]
int IsDeskBandShown([In, MarshalAs(UnmanagedType.Struct)] ref Guid clsid);
[PreserveSig]
int DeskBandRegistrationChanged();
}
private void ShowDeskBand()
{
ITrayDeskband obj = null;
Type trayDeskbandType = System.Type.GetTypeFromCLSID(new Guid("E6442437-6C68-4f52-94DD-2CFED267EFB9"));
try
{
Guid deskbandGuid = new Guid("FE0829F8-EDFA-46B6-87E0-636C8D953E33"); // My Deskband | TestToolbar
obj = (ITrayDeskband)Activator.CreateInstance(trayDeskbandType);
obj.DeskBandRegistrationChanged();
int hr = obj.ShowDeskBand(ref deskbandGuid);
if (hr != 0)
{
throw new Exception("Error while trying to show deskband: " + hr);
}
obj.DeskBandRegistrationChanged();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
if (obj != null && Marshal.IsComObject(obj))
Marshal.ReleaseComObject(obj);
}
}
来源:http://www.pinvoke.net/default.aspx/Interfaces/ITrayDeskband.html
我的 DeskBand 对象是从这个示例的“BandObjectsLib”创建的:http://www.codeproject.com/Articles/14141/Band-Objects-NET-2-0-Redux
看起来像这样:
[Guid("FE0829F8-EDFA-46B6-87E0-636C8D953E33")]
[BandObject("TestToolbar", BandObjectStyle.Horizontal | BandObjectStyle.TaskbarToolBar, HelpText = "Testing this toolbar")]
public class TestToolbar : BandObject
{
public TestToolbar()
{
ProgressBar pb = new ProgressBar();
pb.Maximum = 100;
pb.Minimum = 0;
pb.Value = 50;
this.Controls.AddRange(new System.Windows.Forms.Control[] { pb });
}
}
但是,当尝试添加 DeskBand 对象时,我得到的只是异常,告诉我错误代码:-2147467259此错误代码转换为 0x80004005,根据 MSDN,这是一个 E_FAIL:http://msdn.microsoft.com/en-us/library/windows/desktop/aa378137.aspx
我基本上被困在这里,因为老实说这不是我的专业领域。我希望有人可能更有经验并且可以帮助我?提前致谢!
最佳答案
您必须注册您的 DLL(安装您的 MSI 或使用 regasm)才能使您的代码正常工作。
关于c# - 以编程方式添加 DeskBand 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21680237/
我正在尝试使用以下代码以编程方式将 DeskBand 对象添加到系统托盘: [ComImport, Guid("6D67E846-5B9C-4db8-9CBC-DDE12F4254F1"), Inte
我正在尝试在 Windows 8.1 中实现 Deskband。我以某种方式让用户界面和其他一切正常工作。这听起来可能很愚蠢,但我不知道如何更改出现在任务栏右键单击菜单上的 Toolbars 子菜单选
我有一个用 C++ 编写的 Deskband DLL,它是通过调用 regsvr32 mydeskband.dll 注册的。 Deskband 有一个用 C# 编写的配置应用程序,我可以使用桌面应用程
我想创建一个 DeskBand 来在我的 Windows 任务栏上显示一些信息,但我正在努力实现我需要的 C++ 功能。我接触 C++ 已经有 10-15 年了。在过去的 7 年里,我一直完全在 .N
我正在寻找一个完整的示例,用于在 win7 64 位的任务栏上创建桌面工具栏。 在 C++ 中。谢谢 最佳答案 Here这是您可以使用的一个示例。 关于c++ - 在 c++ 中寻找 win7 64
如何在 Windows 7 中将自定义工具栏放在任务面板之前的任务栏上?有一个名为 Pokki 的流行应用程序可以做到这一点。 我想知道我该怎么做? Edit1:我需要一种 100% 的方式来访问 W
我已经使用来自 Codeproject 的 BandObjectLib ( Extending Explorer with Band Objects using .NET and Windows Fo
我是一名优秀的程序员,十分优秀!