Delphi 从Windows任务栏删除firemonkey
有没有办法从Windows XP/vista/7任务栏中删除firemonkey应用程序?当我在谷歌上搜索时,没有任何信息 问题: 如何从Windows任务栏中隐藏dll中的表单。NB:在问题中回答了他自己的问题,为了清楚起见,我将其移到了这里 您需要获取主窗体句柄(Delphi 从Windows任务栏删除firemonkey,delphi,delphi-xe2,firemonkey,Delphi,Delphi Xe2,Firemonkey,有没有办法从Windows XP/vista/7任务栏中删除firemonkey应用程序?当我在谷歌上搜索时,没有任何信息 问题: 如何从Windows任务栏中隐藏dll中的表单。NB:在问题中回答了他自己的问题,为了清楚起见,我将其移到了这里 您需要获取主窗体句柄(Form1.handle),因为firemonkey中没有Application.handle,然后使用FmxHandleToHWND(FMX.Platform.Win)将其转换为普通窗口句柄。从主机应用程序中,需要检索该句柄(可以
Form1.handle
),因为firemonkey中没有Application.handle,然后使用FmxHandleToHWND
(FMX.Platform.Win
)将其转换为普通窗口句柄。从主机应用程序中,需要检索该句柄(可以使用它导出函数),并执行以下操作:
h := GetHandle();
ShowWindow(h, SW_HIDE);
SetWindowLong(h, GWL_EXSTYLE, GetWindowLong(h, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW);
ShowWindow(h, SW_SHOW);
正在检索句柄:
class function TForm1.returnHandle(): integer;
begin
result := FmxHandleToHWND(Form1.Handle);
end;
当然,
Application.MainFormOnTaskBar
属性需要设置为true
,以便表单可以处理应用程序
希望它能帮助一些人。您可以将
Application.MainFormOnTaskBar
设置为False
。但它对结果应用程序没有影响!你是在写一个真正的FMX应用程序,还是只是在一个更大的VCL应用程序中显示一个FMX表单?@DavidHeffernan:这是一个dll表单,答案在第一篇文章中。无论如何,感谢您的尝试:)请将解决方案部分移动到一个答案,并将其标记为正确。@Talibek避免使用FMX肯定会更容易。您使用的是FMX的什么功能?Application.MainFormOnTaskBar
似乎被声明为公共字段,然后从不引用,至少在我可以看到的FMX源代码中是这样。