我有一个混合的CBuilder/Delphi dll,可以从非VCL主机应用程序中加载。我正在使用RAD Studio XE2。在加载的dll我设置的应用程序句柄到主机的主要形式,它具有保持我的形式和对话框关闭任务栏的效果。不过,我想在任务栏上显示进度条并将其与主机应用程序堆叠在一起。我已经Google搜索并广泛搜索,但找不到类似的东西。如何从非delphi应用程序在任务栏上显示delphi dll进度条
鲍勃博士在任务栏的各种功能写了一个很好的教程here和我已经得到了显示在主应用程序的任务栏按钮了一个进度条,但我真的想创建第二个“叠加”图标对于进度条来说,很多应用程序都是这样做的。鲍勃博士的例子假设你的主要应用程序的一部分,并使用此代码添加一个标签:
if not Application.MainFormOnTaskBar then
FormHandle := Application.Handle
else FormHandle := Application.MainForm.Handle;
TaskbarList.AddTab(FormHandle);
不中我的情况做任何事情。我试过
FormHandle := FindWindow('TfmProg', NIL);
TaskbarList.addTab(FormHandle);
但是这不会改变任何东西。
我创建了应用程序作为所有者和窗体的表单。我已经创建了它fsNormal或fsStayOnTop。坦率地说,我已经触及了我可以获得的每个参数,但似乎没有任何工作。
如果'AddTab'无法添加一个标签,它应该返回HRESULT告诉你为什么。它在这种情况下告诉你什么? – 2013-02-27 22:28:35
你好@RobKennedy,返回的值是0,或S_OK我想。我怀疑这个标签是正确创建的,但是父错误,也许是隐藏的形式? – marcp 2013-02-28 03:36:40