Articles of delphi

使用Delphi 2007从虚拟文件夹加载文件

我试图从一个Windows虚拟文件夹(例如,相机或iPhone图片文件夹)加载文件的内容。 下面是我用来玩这个的一些示例代码: procedure TfrmForm.ButtonClick(Sender: TObject); Var Dialog: TAttachDialog; Enum: IEnumShellItems; Name: LPWSTR; Item: IShellItem; Strm: IStream; OStrm: TOLEStream; FStrm: TFileStream; Result: HRESULT; Buf: Array[0..99] Of Char; Read: LongInt; begin Result := CoInitializeEx(Nil, COINIT_APARTMENTTHREADED Or COINIT_DISABLE_OLE1DDE); If Succeeded(Result) Then Begin Dialog := TAttachDialog.Create(Self); Try Dialog.Options := [fdoAllowMultiSelect, fdoPathMustExist, fdoFileMustExist]; Dialog.Title := 'Select Attachments'; If Dialog.Execute(Self.Handle) Then […]

什么是导致桌面盾牌图标覆盖* SOME *桌面上

我有一个C ++ Builder / Delphi应用程序。 它具有以下清单作为资源embedded: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" processorArchitecture="*" version="1.0.0.0" name="Manufacturer.Division.MyName" /> <description>MyName</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" /> <!– Win Vista and Win Serv […]

从Delphi直接调用Android NDK函数的困难

可以通过JNI和NDK从Delphi调用Android C函数。 为了实现这一点,相当多的工作,并build议直接调用NDK函数。 为此,我创build了一个小的示例文件来声明一个外部的C函数,这些函数是我在Delphi源代码中find的。 在<path to delphi>\source\rtl\android更具体。 我创build了一个非常小的testing程序来testing直接从Delphi调用C函数的function。 所有源代码,你会发现下面,这是我目前正在testing。 unit DLL_external; interface const MIDI_Lib = '/usr/lib/libmiditest.so'; test_fun = 'test_1'; function test_1 (n: Integer): Integer; cdecl; external MIDI_Lib name test_fun; implementation initialization finalization end. 初始化和终结是必要的,因为链接错误是指一些缺less的初始化和终止代码。 调用类: unit DLL_Test_Main; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, DLL_external; //{$I Androidapi.inc} type TForm1 […]

Windows视觉主题:部件和国家图库?

Microsoft Windows允许程序员使用DrawThemeBackground和DrawThemeText等DrawThemeBackground使用当前主题的外观和感觉来绘制GUI元素。 元素由Class,Part和State指定,如MSDN的“ 部件和状态”页所述。 不幸的是,这个页面并不是非常有用的信息(完全可以!)。 所以问题是:是否有一个所有这些部分和状态的参考,最好与元素的图像(在默认的Windows Vista / 7主题)?

我可以确定我的单位已经初始化的顺序吗?

我正在寻找可能连接到单元初始化顺序的错误。 有没有办法看到哪个initialization部分被执行? 我需要知道顺序。 这是在debugging期间,所以我拥有Delphi IDE的全部function,在我的案例Delphi 2009中。 我可以设置断点,但有很多单位时,这是相当乏味的。 你有什么build议吗?

用ShellExecuteEx启动外部应用程序并等待,直到它初始化

我有一个应用程序需要运行链中的其他几个应用程序。 我通过ShellExecuteEx运行它们。 运行每个应用程序的顺序非常重要,因为它们彼此依赖。 例如: Start(App1); If App1.IsRunning then Start(App2); If App2.IsRunning then Start(App3); ……………………. If App(N-1).IsRunning then Start(App(N)); 一切工作正常,但有一个可能的问题: ShellExecuteEx启动应用程序,并立即返回。 例如,当App1已经正确启动,但尚未完成一些内部任务时,可能会出现问题,但尚未准备好使用。 但是ShellExecuteEx已经启动了依赖于App1 App2 ,并且App2将无法正常启动,因为它需要完全初始化App1 。 请注意,我不想等待App(N-1)完成,然后启动AppN 。 我不知道这是否可以用ShellExecuteEx解决,我试过使用 SEInfo.fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_NOASYNC; 但没有任何影响。 启动AppN应用程序后,我有一个处理过程。 如果我假设应用程序在创build主窗口(所有应用程序都有一个窗口)后初始化,我可以以某种方式在其消息队列中放置一个钩子,并等待直到WM_CREATE出现或者可能是WM_ACTIVATE ? 在这样的信息的情况下,我的应用程序将知道它可以继续前进。 这只是一个想法。 但是,我不知道如何把这个钩子。 所以,如果你能帮助我,或者你有一个更好的主意,这将是伟大的:) 此外,该解决scheme必须在Windows XP及更高版本上运行。 谢谢你的时间。 编辑 @Cosmic Prund:我不明白你为什么删除你的答案? 我可能会尝试你的想法…

我如何检查一个窗口是否有可见的滚动条使用他的HWND?

我想检查外部应用程序的窗口是否使用窗口的HWND(句柄) 可见的垂直或水平滚动条,存在任何WinApi函数来获取此信息? 我真的尝试GetScrollInfo函数,但似乎没有检索有关滚动条的可见性的信息。

如何获取Windows 8中活动窗口的标题颜色

如何在Windows 8中获得活动窗口的标题颜色? 我试图调用GetSysColor(COLOR_ACTIVECAPTION)但它返回不同的颜色。 这很奇怪,因为在Windows 7中它是正确的。 有没有其他方式如何获得活动窗口的标题颜色或任务栏的颜色?

如何以编程方式设置文件标签

使用Windows资源pipe理器查看文件时,可以select设置“标签”,“类别”或其他属性。 对于JPEG,一组不同的属性(包括“标签”)是选项。 我想能够以编程方式设置这些。 如何使用Delphi(我有Delphi 2010 Pro)以编程方式设置文件标签和其他文件属性?

如何识别应用程序意图执行\运行文件?

当文件将被执行或由应用程序运行时,我需要识别并触发一个事件。 我知道我可以通过挂钩Windows程序来做到这一点,但我不知道Windows的程序或事件是什么情况。 例如,当一个autorun文件要执行,我的应用程序应该识别它,就像一个防病毒应用程序。 我不确定钩子是否对我的目的有用,如果解决scheme没有挂钩,请给我一个真正的解决scheme。