我经常遇到的一个问题是,我将在我的uses子句中包含' Windows ',然后我将为某些特定的调用添加' JwaWinBase '.
但是,"Windows"单元中的许多功能与JwaWinBase中的相同,我开始在我的主单元中出现错误,直到我通过预先挂起正确的单元名称来修复所有呼叫,例如这个:
旧:
新:
我想知道的是,是否有办法让单位名称自动预先设置为每次调用另一个单元中的某个功能?这样,在我将JwaWinBase添加到我的uses子句之前,我可以将'Windows'单元名称预先设置为任何函数调用.然后添加JwaWinBase不会给我任何错误.
我目前正在使用Delphi 2007.
我正在寻找一种方法来远程获取类似于以下控制台应用程序的信息:
但是,我需要能够在不运行系统上的第三方应用程序的情况下执行此操作.这有效地排除了使用psexec远程执行命令,因为psexec将作为服务安装.
我应该补充一点,我在远程系统上有管理凭据.我考虑过使用WMI的远程执行能力,但这需要我将输出写入文件然后检索它.这是可能的,但我想知道是否有人有更好的方法.
我正在使用Delphi 2010.
我想在我的Delphi二进制文件中嵌入一个可执行文件并在运行时提取它.这样做的目的是确保系统上始终可以使用辅助实用程序,而无需分发多个文件.
使用Delphi 2007我使用了JvDataEmbedded,但是我正在构建一个控制台应用程序,我想知道是否有人知道另一种方法,而无需为JvDataEmbedded添加隐藏的表单.
我正在使用Delphi 2010.
我已经编写了一个Windows服务,我希望管理员可以通过删除启动/停止它的权利来随意篡改它.
当然,管理员可以提升到SYSTEM并做任何他们想做的事情,甚至管理员仍然可以暂停服务的线程或删除服务,但这是为了防止随意篡改.
我可以很容易地使用Process Explorer来做到这一点(见下文),但我不知道从哪里开始使用Delphi.我浏览过SetAcl C++源代码(我可能会使用他们的OCX文件),但如果已经存在,我更喜欢使用原生的Delphi解决方案.如果没有,我将继续克隆SetAcl功能.
有没有人有这方面的经验,他们可以分享?

注意:我曾在这篇文章中提倡用Delphi编写的屏幕捕获工具,我将其删除b/c它是无关的.我在这里留下这个注释,所以评论仍然有意义!问候.

我正在使用Delphi 2010,我有一个TToolBar包含的TToolButton.分配给我的TToolButton的'DropdownMenu'属性是一个标准的TPopupMenu.
我可以让菜单显示的唯一方法是单击图像中红色箭头指向的区域.当前,单击绿色箭头指向的区域会将按钮显示为已按下,但不会显示下拉菜单.
我想要的是如果用户点击任何地方(由绿色箭头或红色箭头指向)以显示菜单.是否可以启用此功能?
我在Delphi中编写了一个控制台应用程序,用于查询来自多个位置的信息.此应用程序将由另一个进程启动,并且启动过程将捕获到STDOUT的输出.
我正在检索的信息将由调用应用程序解释以用于报告目的.将此数据输出到STDOUT的最佳方法是什么,以便可以轻松解析?JSON?XML?CSV?具体而言,数据是远程工作站信息,因此它会像运行进程一样将事情拉回来,并详细说明每个进程.
有没有人对此或建议有任何经验?
我试图远程读取二进制(REG_BINARY)注册表值,但我得到的只是垃圾回收.任何想法这个代码有什么问题?我正在使用Delphi 2010:
function GetBinaryRegistryData(ARootKey: HKEY; AKey, AValue, sMachine: string; var sResult: string): boolean;
var
MyReg: TRegistry;
RegDataType: TRegDataType;
DataSize, Len: integer;
sBinData: string;
bResult: Boolean;
begin
bResult := False;
MyReg := TRegistry.Create(KEY_QUERY_VALUE);
try
MyReg.RootKey := ARootKey;
if MyReg.RegistryConnect('\\' + sMachine) then
begin
if MyReg.KeyExists(AKey) then
begin
if MyReg.OpenKeyReadOnly(AKey) then
begin
try
RegDataType := MyReg.GetDataType(AValue);
if RegDataType = rdBinary then
begin
DataSize := MyReg.GetDataSize(AValue);
if DataSize > 0 then
begin
SetLength(sBinData, DataSize);
Len := MyReg.ReadBinaryData(AValue, PChar(sBinData)^, DataSize);
if Len <> DataSize …Run Code Online (Sandbox Code Playgroud) 我有一个AVI文件,我使用Resources Extract从shell32中提取.我想在TAnimate中使用它,但我无法弄清楚如何加载这个文件.
我使用DelphiDabbler的rcdatacreator程序成功地将AVI加载到.RES文件中(您必须下载"工作示例"才能获得rcdatacreator.但是,我现在的问题是弄清楚如何从.RES中提取AVI文件并将其提供给TAnimate.
我正在使用Delphi 2010:

任何帮助表示赞赏.