草庐IT

windows - delphi windows服务无法从互联网下载文件

我有一个用delphi编写的Windows服务,该服务将用于从我的网站下载文件,但它无法下载该文件,它也没有抛出任何异常,我也将目标路径和文件更改为下载但结果是一样的,我的防火墙也关闭了,我的项目在我测试的另一台PC上正常工作,在Windows应用程序中我的功能也正常工作,所以应该是什么问题?谢谢你的时间 最佳答案 通常,在LocalSystem下,服务无法访问网络资源。你说它适用于另一台电脑,我无法解释为什么。你说它在另一个应用程序中工作,是的,因为应用程序是使用当前帐户执行的。解决方案可能是在网络服务帐户下执行服务。检查它是否解

windows - 在应用程序空闲时执行操作

我有一个非常简单的应用程序,其中包含一个表单、一个richedit和一个菜单。我正在尝试自动将文本保存在richedit上并执行其他任务,但仅应用程序处于空闲状态时-当用户未写入或应用程序失去焦点或其他任何情况时。我尝试从互联网上找到的大量示例代码创建一个OnIdle事件处理程序,但它的作用恰恰相反,它会在我使用该应用程序时激活。这link是一个例子。我还用了一个计时器来检查用户最后一次写信给richedit是什么时候,但如果可能的话我宁愿不使用计时器。有谁知道如何检测应用程序是否空闲并在空闲时运行一些代码?我正在使用delphi7。 最佳答案

windows - 以 SYSTEM 用户身份检测关机

我有一个由服务启动的应用程序。该应用程序没有用户界面,它包含一个DataModule和一个在循环中调用Forms.Application.HandleMessage的TMyApplication实现(如SvcMgr.TServiceApplication)。我连接了MainWindow以记录Forms.Application的隐藏窗口收到的任何消息。如果我手动启动应用程序以便它在我的用户帐户上运行,我会在注销/关闭时在Forms.Application的隐藏窗口中收到WM_QUERYENDSESSION和WM_ENDSESSION消息。如果我使用该服务启动我的应用程序,该应用程序将在S

windows - 当错误检查失败时,ILCreateFromPath 将如何表现?

在PSDKreference对于ILCreateFromPath,没有关于该函数在失败时的行为方式的信息(更重要的是,如何获取扩展错误信息)。我应该期待什么行为,我怎样才能得到错误信息? 最佳答案 它没有在其他任何地方记录。如果失败,它会返回NULL指针,并且没有可用的扩展错误信息。使用SHParseDisplayName()相反(甚至微软表示它优于ILCreateFromPath())。它返回一个HRESULT,其中包含失败时的错误代码。 关于windows-当错误检查失败时,ILCr

windows - 获取 unicode 符号的别名

是否有任何WinAPI可以获取Unicode字符的名称?目前我只知道一种方法是解析http://unicode.org/Public/6.1.0/ucd/NamesList.txt文件。 最佳答案 据我所知,没有用于检索该信息的WinAPI函数,但您可以解析UnicodeData.txt(来自unicode.org)文件很容易,这里有该文件的描述UnicodeCharacterDatabase. 关于windows-获取unicode符号的别名,我们在StackOverflow上找到一个

windows - 使用 Delphi 创建快捷方式并指定其权限级别

我正在使用以下代码在Delphi中创建快捷方式。我想在快捷方式的特权级别属性中选中“以管理员身份运行此程序”框来创建快捷方式。有什么办法吗?functionMakeShortcut(Dst,Src:String;Desc:String='';Arg:String='';WorkDir:String='';Icon:String='';IconI:Integer=0;Show:Integer=SW_SHOWNORMAL;HotKey:Word=0):Boolean;varu:IUnknown;s:IShellLink;f:IPersistFile;p:WideString;begintr

windows - 检查 VirtualFreeEx 是否已经完成/执行

我在远程进程上使用VirtualAllocEx来预留一些空间,如下所示:VirtualAllocEX(RemoteProcessHandle,nil,SizeInBytes,MEM_COMMITorMEM_RESERVE,PAGE_EXECUTE_READWRITE);然后我用WriteProcessMemory“填充”/写入分配的地址空间那我就好好用VirtualFreeEx(RemoteProcessHandle,Address,0,MEM_RELEASE);释放分配的空间。是否可以检查VirtualAllocEx的地址afterVirtualFreeEx被调用以检查Virtual

windows - 检测设备(打印机、扫描仪、鼠标等)是否不工作

如果打印机有问题,Windows的设备管理器会在有问题的打印机旁边显示一个特殊图标。我正在使用DelphiXE2,我想知道如何以编程方式检测WindowsXP或更高版本的此类信息,即。functionDetectDriversProblems():TStringList;begin//ScanComputerorqueryWindowstoknowifadriverhasissuesand//returnlistoffaultyhardware(ifany)end; 最佳答案 您可以使用Win32_PnPEntityWMI类和Con

windows - 如何在delphi中查找是否安装了firebird以及在哪里安装了firebird

问题:我需要在firebird中修改aliases.conf但是..我们知道用户可以在他想要的任何地方安装firebird。所以我需要以编程方式找出firebird的安装位置。我尝试通过注册表来做到这一点,但这不是一个好主意,因为几乎每一个新版本的Windows(2000、XP、VISTA、7、8和32位或64位,也可能是128位)注册表项都会发生变化。我也尝试找出搜索注册表的程序,如简单的文本文件,但没有结果。我试图找到“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\SharedDLL

java - 将 Double 从 Delphi/Pascal 转换为 Java

我需要使用Delphi/Pascal语言读取在WindowsSO中创建的二进制文件。我知道这个文件是固定长度的,前8个字节是双字节。我将此文件从WindowsSO复制到UbuntuSO。当我尝试使用Java语言在UbuntoSO内部读取此文件时,我看到:双=84000[0,0,0,0,0,-126,-12,64]所以我在Java中创建相同的double(84000),运行UbuntuSO:DoubleyourDouble=(double)84000;byte[]bytes=newbyte[8];java.nio.ByteBuffer.wrap(bytes).putDouble(your