我想为WindowsXP创建一个Delphi应用程序,它允许删除从Windows资源管理器(桌面或文件夹窗口)或其他支持此操作的应用程序(例如TotalCommander)拖动的文件。反之亦然呢?当用户从我的应用程序中拖动一个图标时,我应该能够将拖动对象的内容设置为自定义数据。我的目标是创建一个自定义应用程序工具栏,我可以将应用程序拖放到该工具栏上并显示它们的图标,或者从中拖动应用程序或其他实体。如何做到这一点? 最佳答案 这可以通过TheDragandDropComponentSuite来完成.它还提供了您想要的示例。
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我正在寻找一种用于自动化测试的工具。我将使用脚本进行测试,而不仅仅是自动化,这意味着它不能只发送一些按键。它需要检查应用程序的窗口以查看它是否已正确更新。越便宜越好,成本没有下行限制。;-)我需要一种真正的语言,具有函数、变量、循环、分支等,并且应用程序是用Delphi开发的。我需要能够聚焦控件*、等待窗口出现、搜索控件/窗口、发送键盘输入并检查各种窗口/控件是否已更
我需要检查本地计算机上可用的帐户类型。我已经找到了如何为当前登录的用户执行此操作:functionIsWindowsAdmin:Boolean;varhAccessToken:THandle;ptgGroups:PTokenGroups;dwInfoBufferSize:DWORD;psidAdministrators:PSID;g:Integer;bSuccess:BOOL;beginResult:=False;bSuccess:=OpenThreadToken(GetCurrentThread,TOKEN_QUERY,True,hAccessToken);ifnotbSuccess
我在处理用Delphi编写的DLL时遇到了很多麻烦。我已经使用库中的以下代码设置了一个DllMain函数:beginDllProc:=DllMain;end.我的DllMain过程如下所示:procedureDllMain(reason:Integer);beginifreason=DLL_PROCESS_DETACHthenOutputDebugString('DLLPROCESSDETACH')elseifreason=DLL_PROCESS_ATTACHthenOutputDebugString('DLLPROCESSATTACH')elseifreason=DLL_THREAD
在带有vsReportViewStyle的ListView中,如何自定义任何单个列标题标题的字体颜色?例如(第二列标题标题的字体颜色为红色): 最佳答案 我会处理NM_CUSTOMDRAWheader通知代码,并在CDDS_ITEMPREPAINT渲染阶段使用CDRF_NEWFONT返回代码响应此通知消息。以下代码显示了如何扩展ListView控件以具有指定标题项字体颜色的事件:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Con
如果我最大化Delphi窗体,宽度和高度值比相应的GetSystemMetricsSM_CXSCREEN和SM_CYSCREEN大8个像素?例如:当我右键单击我的屏幕并获取属性时,我的屏幕分辨率为1680X1050。这些值与从GetSystemMetrics(SM_CXSCREEN)和GetSystemMetrics(SM_CYSCREEN)返回的值相同。当我在我的Delphi应用程序中最大化窗体时,我得到的宽度为1688,高度为1058。有8个像素的差异。是什么导致了这种差异? 最佳答案 最初实现最大化窗口时,设计人员希望删除调整
目前我使用这个函数,基于JCL代码,效果很好:functionIsDirectoryWriteable(constAName:string):Boolean;varFileName:PWideChar;H:THandle;beginFileName:=PWideChar(IncludeTrailingPathDelimiter(AName)+'chk.tmp');H:=CreateFile(FileName,GENERIC_READorGENERIC_WRITE,0,nil,CREATE_NEW,FILE_ATTRIBUTE_TEMPORARYorFILE_FLAG_DELETE_ON
我需要获取当前与当前用户的文件扩展名关联的程序的名称。如果您右键单击一个文件并选择属性,那么我需要的是“打开方式”行右侧的程序名称。例如对于“.xls”,我希望能够得到答案“MicrosoftOfficeExcel”,或者用户拥有的任何程序作为默认程序来打开.xls文件。我确定它不像进入HKEY_CLASSES_ROOT并把它挑出来那么容易,因为它也可能在HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER或HKEY_USERS中指定。也许我只需要知道Windows用来确定这一点的啄食顺序以及如何到达每个位置。当然,执行此操作的WindowsAPI调用将是理想的选择
我有一个Delphi程序,在午夜运行时开始出现错误。为了制作可重现的测试用例,我必须将系统的本地时间更改为午夜之前的某个时间,运行程序一段时间,检查错误并切换回去。虽然这肯定可以手动完成,但我在自动化测试时遇到了问题。是否可以在不更改系统时间的情况下为应用程序指定一个特殊时间?这可以来自程序外部,甚至可以来自程序内部。虽然这可能是一个常见的Windows问题,但我用Delphi标记了它,因为任何使用Delphi的解决方案都很好,而在这种情况下,一些使用其他编程环境的解决方案就没用了。 最佳答案 有一个名为RunAsDate的现有工具
如何从其他Delphi创建的应用程序发送和接收命令?我想向我编写的另一个应用程序发送命令。 最佳答案 发件人:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;constWM_MY_MESSAGE=WM_USER+1;typeTForm1=class(TForm)Button1:TButton;procedureButton1Click(Sender:TObject);p