Articles of delphi 7

在windows上保存依赖于机器(不是用户)的ini文件的位置

我的应用程序正在将设置存储在当前用户configuration文件(在WinXP下的C:\Documents and Settings\<CurrentUser>\Application Data\MyApplication\MySettings.ini下的INI文件中。 但是我意识到这些设置中的一些对于机器来说是独特的,而不是用户,因此想要(实际上需要)将它们保存在所有用户的单个位置。 Windows XP(和更高版本)上是否存在文件夹位置,可以存储用户独立设置? 注意:我不想将它们存储在与我的应用程序相同的文件夹中,也不希望将它们存储在registry中。 我注意到“C:\ Documents and Settings \”下有一个“All Users”文件夹? 我应该在那里存储? 奖励积分:我更倾向于给予谁可以告诉我如何在Delphi 7中从Windows返回这个path的答案。

使用Delphi打印在桌面上的dynamic文本?

我在我们的云服务器上看到,在桌面上dynamic显示了一些文本,显示有多less内存可用,硬盘空间等。这不像一个窗口或小工具或任何东西,但不知何故,它直接画在桌面上。 我怎样才能做到这一点? 我只看过文字,但是如果我能在桌面上绘制graphics,那也不错。 这是我的意思的一个样本: 编辑: 由于有人误解了我的问题,请允许我澄清一下: 我不一定需要做这个现有的工具。 其实我根本不想打印系统信息。 我想打印自己的信息看起来是一样的,但是用什么方法来实现这一点并不重要(无论是使用窗口,保存桌面图像,绘制到桌面的canvas,这些都是可能的答案)。 我只想做出一些类似的最终结果。

delphi – 计算目录大小API?

任何人都知道得到一个directoy的大小的其他方式,而不是通过计算文件的文件来计算它的大小? 我对一些win32 API函数感兴趣。 我已经谷歌关于这一点,但我没有find相关的信息,所以我在这里问。 PS:我知道如何通过使用findfirst和findnext来计算目录大小,并且总和所有文件的大小。

更新Windows资源pipe理器中显示的可用空间量

如何更新驱动器的Windows资源pipe理器中显示的可用空间量? 假设Windows资源pipe理器已打开,并以编程方式删除了一些文件。 Windows资源pipe理器将不会刷新显示新的可用空间。 所以,我试图像这样使用SHChangeNotify (Delphi代码): ws := 'C:\'; SHChangeNotify (SHCNE_FREESPACE, SHCNF_PATH, PWideChar(ws), nil); 但不会更新“Windows资源pipe理器”中报告的值。 请帮忙。

Borland Delphi 7 TExcelApplication.Connect适用于办公室机器,但不适用于客户端

我负责维护我的办公室(Pascal)的一些遗留代码,由于它的限制,我写了一个delphi的dll使用TExcelApplication访问Excel。 该DLL完美地在办公室工作,机器运行的是Microsoft Office 2010,Windows 7 32位和64位。 客户使用的是新型工作站,Windows XP,Microsoft 2007。 当遇到TExcelApplication.Connect时,dll会提供一个断点exception; 命令。 除了我提到的差异外,情况完全相同。 在小说工作站上访问Microsoft Excel有什么限制吗?或者,有没有更好的方法来访问Excel文档? 注意:我只想从Excel文档读取,它跨越多行,列和电子表格,源Excel文档是* .xls 2007文档。 它的主要function是针对Excel文档启用自动对帐。 这里是库代码的一个片段 library MyLibrary; uses SysUtils, Classes, Variants, Dialogs, StdCtrls, OleServer, ExcelXP, Windows; Type PString=String[254]; Var ExcelObj : TExcelApplication; Procedure XLSOPEN(THENAME:PSTRING;VAR Reslt:PSTRING); stdcall; Begin If FileExists(THENAME) Then Begin ExcelObj := TExcelApplication.Create(nil); ExcelObj.ConnectKind := ckRunningOrNew; ExcelObj.Connect; If ExcelObj=nil Then […]

XP的Windows防火墙规则

如何以编程方式将应用程序或端口添加到Windows XP上的Windows防火墙?

如何正确使用文件映射并将数据传递给subprocess?

我的应用程序正在执行另一个进程(“ update.exe ”),我想从我的应用程序到更新程序传递大量数据(可能是一个logging)。 使用命令行传递数据参数不是一个选项,因为数据太大(数据大小可能会有所不同)。 如何正确地创buildCreateFileMapping / MapViewOfFile / UnmapViewOfFile , 然后执行我的update.exe , 最后接收update.exe程序( OpenFileMapping )中的数据, 并释放所有句柄(从主应用程序和update.exe ),所以我没有内存/句柄泄漏? 代码会很好(没有JCL请)。 C ++也很好。 谢谢。 编辑:我认为我的主要问题是如何将主要的应用程序“信号”到update.exe完成读取数据后的UnmapViewOfFile和CloseHandle 。 (或者我需要使用OpenFileMapping与bInheritHandle设置为True在我的subprocess?) 这是一个例子 。 如果主进程调用UnmapViewOfFile和CloseHandle ,第二个进程如何读取数据?

在Delphi中有多种forms

在我的Delphi项目中,我想要一个“设置”button,当点击时,打开第二个窗体(我认为这是正确的术语,我基本上想要打开一个新窗口)进行设置。 当用户完成更改这个新窗体上的设置时,我希望窗体closuresbutton单击。 用户input的设置还需要可以访问第一个“主”forms。 所以,例如,如果我的程序由一个主表单组成,那么计算的'A'+'B'(A和B是整数variables),设置表单允许用户设置A和B的值,做这个?

dynamic加载exe文件

我试图从我的程序dynamic加载一个EXE文件,并从该dynamic加载EXE运行SomeProcedure。 这是我在加载的exe文件 – library.exe interface procedure SomeProcedure; stdcall; implementation procedure SomeProcedure; begin ShowMessage('Ala has a cat'); end; 这是我的exe文件加载的library.exe,并尝试从它运行SomeProcedure。 type THandle = Integer; TProc = procedure(); var AHandle: THandle; Proc: TProc; procedure TForm1.Button1Click(Sender: TObject); begin AHandle := LoadLibrary('library.exe'); if AHandle <> 0 then begin @Proc := GetProcAddress(AHandle, 'SomeProcedure'); if @Proc <> nil then try Proc; finally […]

获取FileSystem限制

我想编写一个函数,告诉我是否可以将文件/文件夹写入特定的path。 我想这样做,没有实际写任何文件到磁盘。 是否有一个WINAPI函数? 感谢您的帮助。