小编GTA*_*ver的帖子

在Inno Setup Pascal脚本中舍入/截断浮点数到N个小数位

这看起来不像Inno Setup问题,但实际上与其有用的Pascal脚本有关.

我编写了一个代码来进行浮点计算.

Height, DivisionOfHeightWidth, Width: Integer;

Height := 1080;
Width := 1920;

DivisionOfHeightWidth := Width / Height;
Log('The Division Of Height and Width: ' + IntToStr(DivisionOfHeightWidth));
Run Code Online (Sandbox Code Playgroud)

编译器日志给出输出:

The Division Of Height and Width: 1
Run Code Online (Sandbox Code Playgroud)

我希望这个编译器输出改为:

The Division Of Height and Width: 1.77
Run Code Online (Sandbox Code Playgroud)

我不能宣布HeightWidth作为Extended , SingleDouble因为他们正在返回为Integer在大多数情况下,所以我需要这两个整数转换为两场单打.

做完之后:

Height, Width: Integer;
HeightF, WidthF, DivisionOfHeightWidthF: Single;

Height := 1080;
Width := 1920;

HeightF := Height;
WidthF := Width;
DivisionOfHeightWidthF := WidthF / …
Run Code Online (Sandbox Code Playgroud)

floating-point integer inno-setup pascalscript

5
推荐指数
1
解决办法
1381
查看次数

检查C++中是否交换了鼠标按钮

我想将一些鼠标单击消息发送到另一个程序的指定窗口.我目前正在使用WM_LBUTTONUPWM_LBUTTONDOWN工作正常的消息.

无论用户的鼠标按钮设置如何,这些消息的执行方式完全相同.反对它,我想知道用户是否从鼠标设置控制面板交换了鼠标按钮.

我研究并发现了SwapMouseButton功能,它工作正常,但我不想实际交换鼠标按钮,我只是想知道它是否以前被交换过.

来自MSDN:

如果先前反转鼠标按钮的含义,则在调用函数之前,返回值为非零.

我可以通过这种方式获得我想要的信息,但它也可以将它们恢复到鼠标按钮的原始状态.我只想检查而不是恢复到原始状态.

我目前称这个函数为:

SwapMouseButton(FALSE);
Run Code Online (Sandbox Code Playgroud)

我想知道任何其他替代方式(类似的东西SystemParametersInfo)只检查(不是也恢复)鼠标按钮之前是否已被用户交换过.

基本上,我想要做的是根据用户的鼠标按钮含义模拟鼠标主按钮点击和鼠标左键单击.

例如,当我模拟主鼠标按钮单击时,如果用户交换了鼠标按钮,则应该像往常一样模拟鼠标右键,否则将其保留.没有消息存在,WM_PRIMARY...并且WM_SECONDARY...让我做我想做的事情.

提前致谢.

c++ winapi click mouseevent

4
推荐指数
1
解决办法
349
查看次数

IntelliSense PCH 警告不会消失

我有一个 ATL C++ 项目,我的一个 C++ 源文件中没有任何包含。

当我尝试编译时,我收到 PCH 警告:

错误(活动) E2940 PCH 警告:发生未知错误。未生成 IntelliSense PCH 文件。

但是该项目与此警告一起编译得很好。

我尝试添加#pragma onceinclude "stdafx.h"这篇文章中提到的,但他们中的任何一个都没有解决这个问题。

我还能做些什么来解决这个问题?

c++ intellisense pch visual-studio-2017

4
推荐指数
1
解决办法
4974
查看次数

使 Inno Setup Installer 向主安装程序报告其安装进度状态

我目前有两个 Inno Setup 安装程序。我需要其中一个将其作为子安装程序的状态报告给另一个安装程序,即使它使用VERYSILENT命令运行。

我需要这个来根据子安装程序的安装进度在我的主安装程序中显示一个进度条,因为我不想要任何无限(字幕)进度条。

我还阅读了Delphi 中的 IPC 机制。如何将这种通信能力(如泵)添加到 Inno Setup 源代码中?有什么开始的提示吗?

提前致谢。

installation ipc inno-setup progress-bar

2
推荐指数
1
解决办法
1709
查看次数

C++中十六进制字符串转十进制数

我想在 C++ 中将十六进制字符串转换为十进制数(整数)并尝试使用以下方法:

std::wstringstream SS;
SS << std::dec << stol(L"0xBAD") << endl;
Run Code Online (Sandbox Code Playgroud)

但它0反而返回了2989

std::wstringstream SS;
SS << std::dec << reinterpret_cast<LONG>(L"0xBAD") << endl;
Run Code Online (Sandbox Code Playgroud)

但它-425771592反而返回了2989

但是,当我像下面这样使用它时,它可以正常工作2989并按预期提供。

std::wstringstream SS;
SS << std::dec << 0xBAD << endl;
Run Code Online (Sandbox Code Playgroud)

但我想输入一个字符串并2989作为输出,而不是像0xBAD. 例如,我想输入"0xBAD"并将其转换为整数,然后转换为十进制数。

提前致谢。

c++ string hex decimal

2
推荐指数
1
解决办法
7823
查看次数

如何在 Inno Setup Pascal 脚本中变亮或变暗指定的 TColor?

我需要TPanel根据我的wpInfoBefore向导页面中显示的用户当前的系统规格自动更改状态栏的颜色(它是一个)(变亮或变暗)。

我喜欢有两个函数可以通过输入 aTColor作为值来正确执行此操作。但是,我多次尝试通过阅读这样的帖子来编写这些函数甚至使用RGB函数,但没有成功。

例如,如果我需要使给定的变暗或变亮TColor,我可能需要使用如下所示的函数:

var
   RecommendedStatusColor: TColor;

function LightenColor(Colour: TColor, Percentage: Integer): TColor;
begin 
   ...
end;

function DarkenColor(Colour: TColor, Percentage: Integer): TColor;
begin 
   ...
end;    

RecommendedStatusColor := $00D000;

if ... then
StatusBar.Color := LightenColor(RecommendedStatusColor, 75);
//Lighten given color by 75%

if ... then
StatusBar.Color := DarkenColor(RecommendedStatusColor, 50);
//Darken given color by 50%
Run Code Online (Sandbox Code Playgroud)

应修改输出(变亮或变暗)TColor.

提前致谢。

inno-setup percentage pascalscript tcolor

1
推荐指数
1
解决办法
1907
查看次数