Articles of delphi 7

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函数? 感谢您的帮助。

TRichEdit和URL突出显示问题

我正在使用当前代码来突出显示TRichEdit上的URL: procedure TForm1.WndProc(var Message: TMessage); var p: TENLink; strURL: string; begin if (Message.Msg = WM_NOTIFY) then begin if (PNMHDR(Message.lParam).code = EN_LINK) then begin p := TENLink(Pointer(TWMNotify(Message).NMHdr)^); if (p.Msg = WM_LBUTTONDOWN) then begin SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, Longint(@(p.chrg))); strURL := RichEdit1.SelText; ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL); end end; end; inherited; end; procedure TForm1.InitRichEditURLDetection; var mask: Word; […]

delphi,删除文件夹的内容

当我有文件夹中的子文件夹 – 此代码不是删除文件夹…有没有任何错误? procedure TForm.Remove(Dir: String); var Result: TSearchRec; Found: Boolean; begin Found := False; if FindFirst(Dir + '\*', faAnyFile, Result) = 0 then while not Found do begin if (Result.Attr and faDirectory = faDirectory) AND (Result.Name <> '.') AND (Result.Name <> '..') then Remove(Dir + '\' + Result.Name) else if (Result.Attr and faAnyFile <> […]