delphi6获取软件工程名称
时间: 2024-04-30 19:24:20 浏览: 9
可以使用以下代码获取当前 Delphi 6 项目的工程名称:
```delphi
var
ProjectFileName: string;
begin
ProjectFileName := ExtractFileName(ParamStr(0));
Delete(ProjectFileName, Length(ProjectFileName) - 3, 4); // 去除扩展名.dpr
ShowMessage(ProjectFileName);
end;
```
这段代码获取了当前 Delphi 6 项目的完整文件名,并从中提取出了工程名称,然后在消息框中显示出来。
相关问题
Delphi 获取手机字体名称
您可以使用以下代码来获取手机当前使用的字体名称:
```delphi
uses
FMX.Platform, FMX.Graphics;
function GetSystemFontName: string;
var
PlatformServices: IFMXSystemFontServices;
begin
if TPlatformServices.Current.SupportsPlatformService(IFMXSystemFontServices, IInterface(PlatformServices)) then
Result := PlatformServices.GetDefaultFontFamilyName
else
Result := TFontManager.DefaultFont.Family;
end;
```
这个函数使用了 FireMonkey 平台的 IFMXSystemFontServices 接口,该接口提供了获取系统字体信息的方法。注意,这个函数只能在移动设备上使用。如果在桌面平台上使用,可能会返回默认字体的名称。
Delphi7 获取所有进程和名称
可以使用 Windows API 函数 EnumProcesses 和 GetModuleBaseName 来获取系统中所有进程的信息,下面是一个 Delphi7 的示例代码:
```delphi
const
MAX_PATH = 260;
PROCESS_QUERY_INFORMATION = $0400;
PROCESS_VM_READ = $0010;
type
DWORD_PTR = Cardinal;
function EnumProcesses(lpidProcess: PDWORD; cb: DWORD; var cbNeeded: DWORD): BOOL; stdcall; external 'psapi.dll';
function GetModuleBaseNameA(hProcess: THandle; hModule: HMODULE; lpBaseName: PAnsiChar; nSize: DWORD): DWORD; stdcall; external 'psapi.dll';
function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; stdcall; external 'kernel32.dll';
procedure GetProcessList;
var
lpidProcess: array[0..1023] of DWORD;
cbNeeded, cProcesses: DWORD;
i: Integer;
hProcess: THandle;
szProcessName: array[0..MAX_PATH - 1] of AnsiChar;
begin
if not EnumProcesses(@lpidProcess, SizeOf(lpidProcess), cbNeeded) then
Exit;
cProcesses := cbNeeded div SizeOf(DWORD);
for i := 0 to cProcesses - 1 do
begin
if lpidProcess[i] <> 0 then
begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, lpidProcess[i]);
if hProcess <> 0 then
begin
if GetModuleBaseNameA(hProcess, 0, szProcessName, MAX_PATH) > 0 then
writeln(lpidProcess[i], ' - ', szProcessName);
CloseHandle(hProcess);
end;
end;
end;
end;
```
这个示例会遍历系统中所有进程,并输出进程 ID 和进程名称。你可以将输出改为存储到一个 TStringList 中,以便进一步处理。