小编TLa*_*ama的帖子

如何确保安装程序将以管理员权限运行?

如果我使用Inno Setup创建安装程序包,安装程序是否具有管理员权限,允许它注册DLL等?

此外,如果安装程序包执行程序作为其操作的一部分,该程序是否将以管理员权限运行?

inno-setup

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

如何读写XML文档节点值?

我想阅读一些XML文件的节点,并在一些自定义输入字段中显示它们的值.然后,用户可以根据需要更改值,单击Next按钮,这些值应保存回XML.

如何在InnoSetup脚本中执行此操作?

xml inno-setup

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

如何检查字符串是否包含给定的子字符串?

我需要找出string是否包含给定的子字符串.

例如,如果我在字符串ABC中查找子字符串,如下所示:

S := 'ABC String';
Run Code Online (Sandbox Code Playgroud)

我应该得到结果为True,而对于以下字符串我应该得到结果为假:

S := 'DEF String';
Run Code Online (Sandbox Code Playgroud)

如何检查字符串是否包含InnoSetup中的子字符串?

inno-setup

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

如何计算两个日期之间的工作日数?

我需要计算两个给定日期之间的工作日(工作日)数.工作日是一周中的所有日子,周六和周日除外.我不打算考虑假期.

如何计算两个日期之间的工作日数?

delphi delphi-xe2

12
推荐指数
3
解决办法
6280
查看次数

如何执行特定HID设备的硬件重置?

目的

使用Delphi应用程序执行特定USB加密狗ANT,HID设备的硬件重置.


1. CM_Request_Device_Eject函数尝试

我试图使用该CM_Request_Device_Eject功能,它正确弹出我的设备,但在某些系统上不会再自动启动它.

这是我用于设备弹出的代码:

str := PChar(GetDeviceID(DeviceInfoData.DevInst));
status := CM_Locate_DevNodeA(dev, str, CM_LOCATE_DEVNODE_NORMAL);
status := CM_Request_Device_EjectA(dev, nil, '', 0, 0);
Run Code Online (Sandbox Code Playgroud)

有没有办法确保我的设备在使用此功能后弹出后不会自动启动时启动?


2. SetupDiRestartDevices函数尝试

作为替代方案,我尝试使用该SetupDiRestartDevices功能,并且正确地重置了我的设备,但除了重置所有HID设备(例如鼠标,键盘等)之外,此功能需要管理员权限才能工作:

rslt1 := SetupDiRestartDevices(hDevInfo, DeviceInfoData);
Run Code Online (Sandbox Code Playgroud)

如何使用此功能仅重置我的设备?


是否有通用的推荐方法来执行特定USB HID设备的硬件重置?或者有办法解决上述任何问题吗?

delphi winapi hid

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

如何计算位图的近距离裁剪矩形?

我需要通过给定的背景颜色键计算位图的近距裁剪矩形.在下面的图片中,您可以看到什么是近距离作物.在左侧是源,在关闭作物的右侧输出:

在此输入图像描述

在此输入图像描述

如您所见,我需要找到最顶层,最左侧,最下面和最右侧的像素,这些像素的颜色与背景不同,以构建近距裁剪矩形.那么,如何找到那些不同的外部像素来获得近似的裁剪矩形?或者,换句话说,如何计算位图的近距离裁剪矩形?

delphi image-processing

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

如何在表单上放置半透明图层

我在上一周左右在stackoverflow上读到了一些关于这方面的问题.

我的要求或多或少相同.

我需要在我的表单上放置一个半透明图层,但此表单可能还有其他几个组件:列表,编辑,标签,图像等

我需要这个半透明层在所有这一切之上.

这个想法是淡化使用那些在那个时刻不能或不能访问的形式的区域.

我使用Delphi 2007.

谢谢

delphi transparency

11
推荐指数
2
解决办法
7627
查看次数

最近在Delphi TADOStoredProc/D6和RAD Studio XE2上出现故障

感谢任何能提供一些帮助的人......

背景:

我有一个应用程序编码,仍然支持Borland Delphi v6.最近,我遇到了TADOStoredProc类无法执行存储过程的问题.此代码以前已稳定了好几年,从未被修改过.

我可以在请求上配置超时,这是受到尊重的,但是存储过程调用永远不会运行,即使在非常长的超时也是如此.应用程序只是挂起,或者在超时异常时保释.(我知道服务器没有负担过重,并且响应同一客户端发起的其他SQL SELECT请求.)

我知道D6已经老了.我与Embarcadero RAD Studio XE2有一个单独的环境,在那里我设法构建了同一个项目,并且仍然存在相同的问题.... 只想确认一下.

去哪儿?

  • 请查看提供的代码,看看是否有更好的方法.(在最近更新之后,可能MSSQL界面更挑剔?)我当然欢迎推荐.
  • 有没有可以插入应用程序的替代方法,这是可靠的,不需要TADOStoredProc?我已经完成了挖掘工作,但没有找到任何好的例子.

代码示例

function TImport.OpenHeader(DriverID: Integer, …, ScanStart: DateTime, ...): integer;
var
    suid: integer;
    jid: integer;

    con : TADOConnection;
    sp : TADOStoredProc;
begin
    suid := getScanUnitID();
    jid := deriveJobID(ScanStart);

    con := TADOConnection.Create(nil);
    con.LoginPrompt := false;
    con.ConnectionString :=  'Provider=SQLOLEDB.1;Password=<testPwd>;Persist Security Info=True;User ID=<testUser>;Initial Catalog=<myDB>;Data Source=<myServer>';
    con.CommandTimeout := 10;
    con.KeepConnection := true;
    con.Connected := true;

    sp := TADOStoredProc.Create(nil);
    sp.Connection := con;
    sp.CommandTimeout := 10;
    sp.ProcedureName := 'mon4_OpenHeader;1';
    sp.Parameters.Refresh;

    sp.Parameters.ParamByName('@ScanUnitID').Value := …
Run Code Online (Sandbox Code Playgroud)

sql-server delphi delphi-6 delphi-xe2

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

Inno Setup:如何设置安装程序"以管理员身份运行"?

在Inno设置中,

[Setup] 
PrivilegesRequired=admin 
Run Code Online (Sandbox Code Playgroud)

仍然无法以管理员身份运行安装程序,但我需要在Inno Setup的最后一步启动我的程序.

如何设置我的安装程序可以作为管理员运行?

inno-setup

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

无法删除Delphi xe7中的控件

刚刚安装了Delphi xe7.打开了一个用XE7开发的项目.旁注,但我首先担心的是,所有内容都会导致IDE挂起,无论是将"视图"从Master更改为iPhone4,还是只是在"设计视图"中拖动控件.我之前有一个工具单元,它具有接受TComboEdit参数的功能.似乎他们再次移动了一些东西,因为这个功能现在已被打破.为了快速找出哪个单元主持组合编辑,我打开了一个表单并放下了一个Combo编辑并保存.很酷,现在我知道有一个FMX.ComboEdit单元.我尝试删除组合编辑,这是我得到的:Selection contains a component, ComboEdit1, introduced in an ancestor and can not be deleted.

对于我在表单上删除的任何新控件也是如此,例如甚至是TEdits.无法删除任何内容.快速谷歌搜索引用TGrids和列...在我的表单上,只有Layouts和一个TabControl,其中新的位置控件在TabItem中.好吧,也许TabItems存在类似的错误,所以我尝试移动控件,使表单成为父级.但是,IDE会挂起大约30秒并且不会执行任何操作.

如何在Delphi xe7中删除这些控件?

delphi firemonkey delphi-xe7

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