微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

任务栏中的Inno设置窗口预览

如何解决任务栏中的Inno设置窗口预览

当您将鼠标悬停在任务栏内的所有图标上时,所有程序和打开的文件均具有预览。

但是对于Inno Setup进行的安装程序而言,似乎没有预览。有解决此问题的解决方法吗?

enter image description here

尽管某些具有自定义设计的游戏安装程序(使用Inno Setup)在任务栏中具有预览。例如:
http://fs2.filegir.com/cuttlas/setup.exe

解决方法

我相信是因为任务栏按钮链接到Inno Setup的不可见内部窗口,而不是可见向导窗口。这也说明了任务栏按钮的标题与向导窗口不同的可能性。请注意,那些总是与预览工作所在的窗口匹配。

如果不修改Inno Setup本身的代码,您将无能为力。

您发布的链接不是标准的Inno Setup。请注意其日志文件中的“ 5.5.1 *。ee2 **” *。他们可能已经大大修改了Inno Setup。请注意,当您(在Windows 10中)将鼠标悬停在其预览窗口上时,向导窗口如何保持可见(其他窗口模糊)。使用标准的Inno Setup时,所有窗口(包括向导)都会模糊。这是因为他们的任务栏按钮链接到向导窗口。在标准的Inno Setup中,不是。

,

我找到了一个很好的库来解决这个问题:

https://mega.co.nz/#F!RcQkhSxI!_ZsnpdapAeoVVWEgVw2iMQ

使用WinTB v2.0可以轻松在任务栏上打开预览:

#include "WinTB.iss"

[Setup]
AppName=Wintb.dll example
AppVersion=2.0
DefaultDirName={pf}\Wintb.dll example
DefaultGroupName=Wintb.dll example
OutputDir=.

[files]
Source: wintb.dll; Flags: dontcopy;

[code]

procedure InitializeWizard();
begin
  ExtractTemporaryFile('wintb.dll');

  Win7TaskBar11(); 
end;

没有任何外部插件或dll,可以通过以下技巧解决:

[Code]
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongW@user32.dll stdcall';
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';
Function GetWindow (HWND: Longint; uCmd: cardinal): Longint;external 'GetWindow@user32.dll stdcall';

procedure InitializeWizard();
begin
SetWindowLong(WizardForm.Handle,-8,GetWindowLong(GetWindow(WizardForm.Handle,4),-8));
end;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。