Articles of delphi

检测键盘或鼠标事件是否由软件触发

有没有办法确定键盘或鼠标事件是从硬件而不是像TeamViewer,Steam或Windows上运行的桌面应用程序中的其他远程桌面软件那样的应用程序触发的? 我的目的不是防止漫游器,而是防止远程访问应用程序。 RawInput API似乎可以检测使用SendInput API发送的假事件。 这是对的吗?

如何检查Windows防火墙中的规则?

我想检查一下端口是否在Windows防火墙中打开。 我发现这种方式使用netsh: netsh advfirewall firewall show rule name="My rule" 如果规则存在或不存在,将返回… 但是,根据Windows语言,这将返回不同的消息。 我正试图以更好的方式解决这个问题。 我想有一个结果Yes或No , True或False ,不是一个本地化的string。 你有什么秘诀吗??

什么Windows API来build立一个调度应用程序?

为什么不使用Windows调度程序? 我有几个应用程序必须根据业务规则在特定时间运行,而不是在每个工作日下午1点典型运行。 我还需要一种方式让应用程序提供他们进度的反馈信息,这样我就可以制定规则,在应用程序运行缓慢或甚至不再运行时通知我。 我应该看什么Windows API? (比如,FileWatcher apis的时间版本) 让应用程序通知调度器其进度(文件,套接字,窗口消息,???)的最佳方式是什么?

delphi的windows服务无法从网上下载文件

我有一个在Delphi写的Windows服务,该服务将用于从我的网站下载文件,但它不能下载文件,它不会引发任何exception,我也改变目标path和文件下载,但结果是一样的,我的防火墙也closures了,我的项目正常工作在另一台PC上,我testing它和Windows应用程序我的function也正常工作,所以应该是什么问题? thx为您的时间

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

我有一个非常简单的应用程序,一个窗体,一个丰富的菜单。 我试图自动保存文本在财富和执行其他任务,但只有当应用程序闲置 – 当用户不写或应用程序失去焦点或任何。 我试图从互联网上的gazillion示例代码中创build一个OnIdle事件处理程序,但是相反,它在我使用应用程序时激活。 这个链接就是一个例子。 我也提供了一个计时器,并检查用户最后一次写入富有的时间,但是如果可能的话,我宁愿不使用计时器。 任何人都知道如何检测应用程序是否处于空闲状态,并在运行时运行一些代码? 我正在使用delphi7。

以SYSTEM用户身份检测closures

我有一个由服务启动的应用程序。 该应用程序没有用户界面,它包含一个DataModule和一个TMyApplication实现,在一个循环中调用Forms.Application.HandleMessage(如SvcMgr.TServiceApplication)。 我挂钩了MainWindow来loggingForms.Application收到的隐藏窗口的任何消息。 如果我手动启动应用程序,使其运行在我的useraccount上,则在注销/closures时,会在Forms.Application的隐藏窗口上收到WM_QUERYENDSESSION和WM_ENDSESSION消息。 如果我使用该服务启动我的应用程序,则应用程序将在SYSTEM帐户下运行。 在系统帐户下运行时,我的应用程序被Windows强行终止之前,在系统关机时只收到一条消息$0000001A (WM_WININICHANGE?)。 所以没有WM_QUERYENDSESSION和WM_ENDSESSION消息。 如何检测SYSTEM帐户上的Windows关机并优雅地closures我的应用程序?

在ILCreateFromPath和错误检查

在ILCreateFromPath PSDK参考中 ,没有关于函数在失败时如何performance的信息(更重要的是,如何获得扩展的错误信息)。 它是否logging在别的地方?

获取unicode符号的别名

是否有任何WinAPI获得Unicode字符的名称? 目前我只知道一个办法就是parsinghttp://unicode.org/Public/6.1.0/ucd/NamesList.txt文件。

用Delphi创build快捷方式并指定它的特权级别

我在Delphi中使用下面的代码来做快捷方式。 我想在快捷方式的“特权级别”属性中选中“以pipe理员身份运行此程序”框作为快捷方式。 有没有办法做到这一点? function MakeShortcut(Dst, Src: String; Desc: String = ''; Arg: String = ''; WorkDir: String = ''; Icon: String = ''; IconI: Integer = 0; Show: Integer = SW_SHOWNORMAL; HotKey: Word = 0): Boolean; var u: IUnknown; s: IShellLink; f: IPersistFile; p: WideString; begin try u := CreateComObject(CLSID_SHELLLINK); s := u as IShellLink; […]

检测设备(打印机,扫描仪,鼠标等)是否无法正常工作

如果打印机出现问题,Windows的设备pipe理器会在相关打印机旁边显示一个特殊的图标。 我正在使用Delphi XE2,我想知道如何以编程方式检测这些信息为Windows XP或更高版本,即。 function DetectDriversProblems() : TStringList; begin // Scan Computer or query Windows to know if a driver has issues and // return list of faulty hardware (if any) end;