你好我有一个用Delphi2006编写的应用程序。我注意到在Windows7下运行时,该应用程序没有收到来自AeroShake的WM_SYSCOMMAND消息。但是,如果我以管理员身份运行该应用程序,那么它会在执行AeroShake时收到WM_SYSCOMMAND。我已经尝试为WM_SYSCOMMAND调用ChangeWindowMessageFilter并得到True的结果表明调用成功但我仍然无法从AeroShake获得WM_SYSCOMMAND消息。有谁知道为什么以及如何解决这个问题?谢谢 最佳答案 Thisdiscussion
我在C应用程序(VS2008,Win)中调用了一个用Borland中的Delphi编写的dll中的函数。该函数有效,但每次调用后我都会收到此错误:“ESP的值未在函数调用中正确保存[...]”,这意味着我的调用约定是错误的。我不知道Delphi,也没有完整的dll代码,但我相信这是Delphi函数:functiontranslate(file1,file2:PChar):PChar;stdcall;...Result:=PChar(c);end;exportstranslate;c中的相关部分:typedefchar*(__stdcall*translate)(char*,char*)
我有一个用于监听端口号(例如1024)的Windows服务器的自定义soap服务。当我使用http://(ip或域):1024调用此服务时,该服务运行良好。当我尝试对https://(ip或域):1024进行相同的调用时,我得到以下响应:SSLconnectionerrorUnabletomakeasecureconnectiontotheserver.Thismaybeaproblemwiththeserver,oritmayberequiringaclientauthenticationcertificatethatyoudon'thave.当我尝试在没有端口号的情况下连接到同一个
我有一个C#web服务托管在IIS中,启用了Windows身份验证,我从Delphi7客户端调用它。当我调用该方法时,我有一个系统登录对话框,我必须输入我的Windows用户名和密码才能进行身份验证。有没有办法跳过登录对话框并使用当前登录的用户凭据来调用网络服务?我在帖子中看到很多解释如何通过在BeforePost事件中使用InternetSetOption(...)“注入(inject)”用户名/密码元素来避免使用基本身份验证的登录对话框,但没有关于Windows身份验证的内容。我期待一切都能完美地工作......谢谢编辑当前的身份验证类型是NTLM。我的应用程序没有任何登录/密码对
我想为我的Windows应用程序(鼠标和触摸)使用交互式手势事件。尽管OnGesture(Sender:TObject;constEventInfo:TGestureEventInfo;varHandled:Boolean);事件被触发,同时用两根手指触摸缩放,我总是得到EventInfo.gestureId是0。但我得到的是标准手势。注意:我使用DelphiXE7进行开发,使用Windows8.1触摸设备进行测试。procedureTForm1.GISGesture(Sender:TObject;constEventInfo:TGestureEventInfo;varHandled:
在Delphi应用程序中,当您将鼠标悬停在边框图标上时,例如:最小化最大化恢复它的行为不正确:与行为正确的应用程序进行比较:复制步骤单击文件、新建、VCLFormsApplication-Delphi点击运行(F9)将鼠标悬停在最小化、最大化或关闭按钮上。如何修复?Windows10,64位(在台式电脑上本地运行)德尔福XE6编辑-Delphi7也失败了:在Delphi5中:在Delphi4中:我假设(即害怕)它是由ThemeServices引擎引起的;他们可能认为不尊重用户的偏好很酷。但看起来它是更基本的东西。兼容模式无:失败Windows8:失败Windows7:失败Windows
假设您有一个可以向左展开以显示其他控件的表单:折叠:展开:在Delphi中实现这一点的最简单方法是使用alRight作为所有控件的主要anchor(而不是alLeft),然后简单地调整宽度和X坐标的形式。您可以单独设置Width和Left属性,也可以使用同时设置它们的函数,例如ifFCollapsedthenSetWindowPos(Handle,0,Left-Width,Top,2*Width,Height,0)elseSetWindowPos(Handle,0,Left+Widthdiv2,Top,Widthdiv2,Height,0)问题是在展开或折叠时窗体始终可见的部分(在本例
我想在Windows(XP)中挂载USB驱动器的所有分区。我的意思是我想为他们每个人分配驱动器号(当他们没有时)。操作系统会自动执行此操作,但在某些情况下此类程序很有用。我知道如何查找驱动器是否在USB上。到目前为止我的代码是:typeSTORAGE_QUERY_TYPE=(PropertyStandardQuery=0,PropertyExistsQuery,PropertyMaskQuery,PropertyQueryMaxDefined);TStorageQueryType=STORAGE_QUERY_TYPE;STORAGE_PROPERTY_ID=(StorageDevice
我有一些带有简化Windows的计算机,其中添加/删除的存储设备不会自动获得驱动器号。所以我必须找到一种方法来检测添加/删除的内容。一种方法(我知道)是使用WM_DEVICECHANGE消息。在这些计算机上,消息仅通过WParam7和LParam0发送到窗口。因此,当我的应用程序收到此消息时,我可以运行我的检测代码。问题是需要一些时间才能完全识别设备;与此同时,我的应用程序被WM_DEVICECHANGE消息的“齐发”“轰炸”,检测代码甚至启动了6..7次。为了解决这个问题,我可以添加一个由新消息重新初始化的计时器;如果一段时间后(1..2秒)应用程序没有收到消息,则启动检测代码。但我
我希望只读复选框变灰,但在Windows(XP及更高版本)下显示其选中/未选中状态,但我遇到了一些问题。注意-关于“只读”:似乎Delphi的TCheckBox甚至没有只读选项,这是通过将它放在TPanel上并禁用它来“伪造”的......但是问题仍然有效,如何实现一个灰色的只读复选框,或者一个显示其状态的非事件复选框。禁用的复选框显示为灰色,但不会显示选中或未选中状态。只读复选框可以,但是当Windows为它们设置主题时,它们看起来就像普通的可编辑复选框。只读框不能更改其值,但看起来可以。在关闭主题的XP中(即在经典模式下),它可以正常工作。NotAcceptable解决方案包括:-