小编And*_*zej的帖子

schtasks 自动启用“如果任务运行时间超过 3 天,则停止任务”

我使用批处理脚本创建计划任务:

schtasks /Create /F /RL highest /SC onlogon /TR "C:\MyFile.exe" /TN "MyDescription"
Run Code Online (Sandbox Code Playgroud)

它在每次用户登录时完美地运行我的应用程序。但是,它会自动启用“如果任务运行时间超过”则停止任务“3 天”选项。我认为这是默认行为。

我的应用程序可能在服务器上运行,并且 3 天后不应退出。如何修改批处理脚本以便我的应用程序无限运行?

windows batch-file windows-task-scheduler

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

如何使用 Delphi 10.3.3 检测 Windows 11

我使用 TOSVersion.ToString 函数(使用 SysUtils)来检测 Windows 版本。然而,这是我在 Windows11 中得到的:

Windows 10 (Version 10.0, Build 21996, 64-bit Edition)

有没有可靠的方法来检测Windows 11?我正在使用德尔福10.3.3。

更新:Windows 11 正式发布,我再次尝试。这是我得到的:

Windows 10 (Version 10.0, Build 22000, 64-bit Edition)

delphi delphi-10.3-rio windows-11

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

使用 Delphi 显示当前用户的语言(英文)?

某些 Windows 计算机安装了多种显示语言。

我可以使用以下函数以该语言获取当前用户的 UI 语言:

function GetUsersWindowsLanguage: string;
var
  WinLanguage: array [0..50] of char;
begin
  VerLanguageName(GetUserDefaultUILanguage, WinLanguage, 50);
  Result := WinLanguage;
end;
Run Code Online (Sandbox Code Playgroud)

这个函数输出如下:

Espagnol (Espagne)
Run Code Online (Sandbox Code Playgroud)

输出不是英文。我只需要“西班牙语”。有没有办法获得英文的显示语言?

我正在使用 Delphi 10.3.3(VCL 应用程序)。

delphi delphi-10.3-rio

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

旧版 Delphi 项目中的 32 位透明 PNG 问题

我尝试使用 Delphi 10.3.3 对旧的 Delphi VCL 项目进行现代化改造。我可以毫无问题地编译和构建应用程序。唯一的问题是透明 PNG 的背景在运行时显示为黑色。

这是我所做的:

  1. 将 MainMenu1 添加到窗体并创建菜单项。
  2. 添加 ImageList1。
  3. 将 ImageList1 的 ColorDepth 更改为 cd32Bit。
  4. 将透明 PNG 文件添加到 ImageList1 中。
  5. 将 ImageList1 连接到 MainManu1。

这是运行时的结果:

图片

这些步骤在新的 Delphi 10.3.3 VCL 项目中完美运行,但在这个遗留项目中存在黑色背景。如何解决黑色背景问题?

delphi delphi-10.3-rio

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

THttpClient 未关闭 Delphi 中的连接

我的软件包括以下用于发布到 URL 的功能。我正在使用 Sysinternals TCPView 来查看连接。发布到 URL 后连接未关闭。我应该如何更改立即关闭连接的代码?

function PostURL(const AURL: string; Parameters: TStrings): string;
var
  HttpClient: THttpClient;
  HttpResponse: IHttpResponse;
begin
  HttpClient := THTTPClient.Create;
  try
    HttpClient.ConnectionTimeout:=3000;
    HttpClient.ResponseTimeout:=3000;
    HttpResponse := HttpClient.Post(AURL, Parameters, nil, TEncoding.UTF8);
    Result := HttpResponse.ContentAsString();
  finally
    HttpClient.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi tcp sysinternals delphi-10.2-tokyo

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

如何在 Delphi 应用程序中检测 TPopupMenu 的 OnClose (OnPopDown) 事件

我可以在 TPopupMenu 的 OnPopUp 事件中编写一些代码。但我还需要另一个 OnPopDown 事件。有没有办法使用 Delphi 10.3.3 做到这一点?

delphi delphi-10.3-rio

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

如何使用 Delphi 更改外部 EXE 文件的图标?

我想使用 Delphi 更改以前生成的 EXE 文件的主图标。EXE 文件也是我使用 Delphi 生成的。但我希望用户能够更改其图标。

我尝试使用 UpdateResource 函数更改 RT_GROUP_ICON 和 RT_ICON 没有成功:

procedure UpdateExeIcon(Const IconFilename, ExternalExeFilename:string);
var
  Stream     : TFileStream;
  hDestRes   : THANDLE;
  lpData     : Pointer;
  cbData     : DWORD;
begin
  Stream := TFileStream.Create(IconFilename,fmOpenRead or fmShareDenyNone);
  try
    Stream.Seek(0, soFromBeginning);
    cbData:=Stream.Size;
    if cbData>0 then
    begin
      GetMem(lpData,cbData);
      try
        Stream.Read(lpData^, cbData);
        hDestRes:= BeginUpdateResource(PChar(ExternalExeFilename), False);
        if hDestRes <> 0 then
        begin
          //if UpdateResource(hDestRes, RT_ICON,PChar('1'),1033,lpData,cbData) then
          if UpdateResource(hDestRes, RT_GROUP_ICON,PChar('MAINICON'),1033,lpData,cbData) then
          begin
            if not EndUpdateResource(hDestRes,FALSE) then RaiseLastOSError;
          end else RaiseLastOSError;
        end else RaiseLastOSError;
      finally …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-10.3-rio

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

如何将 Viewport3D 保存为图像文件?

我正在使用 Delphi 10.3.3 开发 Firemonkey (FMX) 应用程序。

我有一个 Viewport3D 组件。在 Viewport3D 中,我有许多 3D 形状,例如 TCube 和 TRectangle3D。

我需要将 Viewport3D 的内容(当前视图的屏幕截图)保存到图像文件中。我更喜欢保存为透明的 PNG。我怎样才能做到这一点?

delphi firemonkey delphi-10.3-rio

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

如何使用Delphi突出显示鼠标指针位置

我想创建一个简单的鼠标指针荧光笔。以鼠标指针为中心的圆圈。它必须是半透明的并且在任何地方都可见(在我的应用程序内外)。

任何想法表示赞赏。

例子:

在此输入图像描述

delphi delphi-10.3-rio

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