草庐IT

windows - 如果我调用ShellExecuteEx,为什么GetExitCodeProcess表示该程序即使仍在运行也终止了?

我想打开一个文件,该文件最初保存到SQL表,但在调用ShellExecuteEx之前已保存到磁盘。保存后,我现在有了一个有效的文件路径,理论上应该可以使用此功能来实现我的目标。我需要该程序在其适当的程序中打开文件,并等待该程序关闭后再继续。当前,代码将启动正确的应用程序并打开传递的文件,但无需等待(我知道这是因为我会显示一条消息,指示应用程序何时终止),而这样做却会关闭我编写的应启动正确程序的应用程序。它显示消息,然后启动程序。我承认我不完全了解ShellExecuteEx的工作原理,并且已经将我在网络上找到的代码与我的代码结合使用以获得期望的结果。在下面,您将找到代码。任何帮助将不胜

windows - TThread 等待用户输入

我有一个TThread实例,我想等待用户输入。线程加载一些东西,等待用户点击一个按钮,然后继续它的任务。我正在考虑将全局bool设置为true,但我认为这对实例不太适用,并且线程必须在循环中检查var状态,这似乎有点不专业。tthread类是否有安全的方法来等待用户输入? 最佳答案 您可以使用SyncObjs单元中的TEvent。TMyThread=class(TThread)publicSignalEvent:TEvent;procedureExecute;override;end;TMyForm=class(TForm)proc

windows - 通过 API Windows Firewall Delphi 添加规则阻止 IP 地址

下午好。没有人面对在Delphi中添加Windows防火墙规则的问题吗?我需要限制来自特定IP地址的传入和传出连接。此代码在启动时向我抛出一个应用程序错误:ExceptionEVariantInvalidOpErrorinmoduleProject1.exeat00033E74.Invalidvariantoperation.有没有人有什么错误?procedureTForm1.FormCreate(Sender:TObject);ConstNET_FW_IP_PROTOCOL_TCP=6;NET_FW_IP_PROTOCOL_UDP=17;NET_FW_ACTION_ALLOW=1;N

windows - 如何让我的程序在 Windows 7 启动时以不同的权限运行?

我试图添加在Windows7启动时运行的程序,但它不起作用。我的程序有一个嵌入式UAClist。我目前的方法是在HKCU..\Run添加一个字符串值。我从http://social.technet.microsoft.com/Forums/en/w7itprosecurity/thread/81c3c1f2-0169-493a-8f87-d300ea708ecf找到了Vista的手动解决方案ClickStart,rightclickonComputerandchoose“Manage”.Click“TaskScheduler”ontheleftpanel.Click“CreateTas

windows - delphi 中的动态数组和 wininet?

我正在使用WinInet连接我们的一台服务器并从中检索信息。我正在使用以下内容:indexdata:arrayofbyte[1..5000]ofbyte;infoBuffer:array[0..5000]ofchar;BufferSize:DWORD;reserved:DWORD;text:string;BufferSize:=Length(infoBuffer);res:=HttpQueryInfo(hHttpRequest,HTTP_QUERY_RAW_HEADERS_CRLF,@infoBuffer,BufferSize,Reserved);Reserved:=0;Interne

windows - Delphi:系统菜单是否打开?

我是Delphi,我需要一个函数来确定系统菜单(resp.窗口菜单,单击图标时出现的菜单)是否打开。原因是我正在编写一个反键盘记录器功能,它将垃圾发送到当前事件的editcontrol(这也阻止了读取WinAPI消息以读取内容的键盘记录器)。但是如果打开系统菜单,editcontrol仍然有焦点,所以垃圾将调用快捷方式。如果我在我的TForm1中使用消息WM_INITMENUPOPUP,我可以确定系统菜单何时打开,但我希望我不必更改TForm,因为我想编写一个非可视化组件,它不需要对TForm派生类本身进行任何修改。//IdonotwantthatsolutionsinceIhavet

windows - 如果同时启用了鼠标和触摸板,如何检测输入设备

我的应用程序中已经有一个WH_MOUSE_LLHook,但鼠标和触摸板需要不同的行为。我知道RawInputAPI,但不知道如何将它与钩子(Hook)一起使用:(有什么建议吗? 最佳答案 应该和distinguishingbetweenmultiplekeyboarddevices一样. 关于windows-如果同时启用了鼠标和触摸板,如何检测输入设备,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

windows - 使用 BHO 时 IE 上的运行时错误 216

我正在处理用Delphi编写的浏览器帮助程序对象,当安装BHO并关闭IE时,我收到错误“运行时错误216在”。我怀疑这可能是因为以下代码中的253disID(onquit)情况:functionTIEM.Invoke(DispID:Integer;constIID:TGUID;LocaleID:Integer;Flags:Word;varParams;VarResult,ExcepInfo,ArgErr:Pointer):HResult;typePOleVariant=^OleVariant;vardps:TDispParamsabsoluteParams;bHasParams:Boo

windows - 如何在 RichEdit 上捕捉 OnScroll 事件?

我创建了一个具有scrollPos事件的自定义Rich。所以我有这个代码:procedureTCustomRich.WMVScroll(varMsg:TWMVScroll);begininherited;if(Msg.ScrollCodein[SB_THUMBTRACK,SB_THUMBPOSITION])thenFScrollY:=Msg.Pos;ifAssigned(OnScroll)thenOnScroll(Self,FScrollX,FScrollY);end;procedureTCustomRich.WMHScroll(varMsg:TWMVScroll);begininhe

windows - 自定义窗口提示 Delphi 中的按钮

我想为我的应用程序中的某些按钮制作自定义格式的提示。我用做一个tadvtoolpanel,显示在onmousemove事件上,但是不是很干净。是否有一个按钮(例如来自TMS组件)可以直接启用此功能?我只希望用户在其上的mousemove上有一个快速恢复窗口。希望我能解释清楚。谢谢格温内尔 最佳答案 使用TAdvOfficeHint从TMS并将其放在您的主窗体上。所有TMS按钮都有一个OfficeHint属性,可让您指定提示的标题、文本和图标。如果未指定办公室提示,则使用普通的Hint属性。