我正在尝试阅读HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run with OpenKeyReadOnly,GetValueNames但它会从HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run返回值.
如何读取64位值而不是重定向到32位密钥?
该程序作为管理帐户运行.我也试过RegOpenKeyEx和RegEnumValue.
我正在使用Delphi 2010.
Delphi Xe,Win 7,系统TimeZone UTC + 4:0,系统中一周的第一天 - 星期一,时间与time.windows.com同步
在标准组件Delphi Win32的调色板中有组件MonthCalendar,其属性为WeekNubers = true(显示周数),date = now,第一天 - 星期一.
显示19号(今天) - 第43周的数字.
我通过dateutils.WeekOfTheYear(now)=请求号码返回42.

来源(0.5 Mb)http://www.sendspace.com/file/yuz6ko
通过组件MonthCalendar的初始代码判断 - 就像所有它都是真的(即使不暴露一周的第一天,它从系统参数中获取值).
并在询问WeekOfTheYear它被告知,所有被认为也适用标准ISO,但数字不重合:(
无论如何,我不明白,一周消失 - 如果要查看日历,应该是43,如果考虑,那个星期53和去年的第一个问题......
顺便说一下,2011年1月1日的WeekOfTheYear也会回来52但是应该返回1 ...
为什么区别和哪里是正确的?

德尔福xe.
对于Tab Administrative- Unicode lang
使用GetSystemDefaultLangID
对于Tab Formats-
使用GetUserDefaultLangID
但是我对For Tab使用了Location什么?
对于
Vista及更高版本的"键盘和语言"选项卡:带有键LOCALE_CUSTOM_UI_DEFAULT的Getlocaleinfo
Function GetLocaleInformation(flag: integer): string;
var
pclca: array[0..20] of char;
begin
if (GetLocaleInfo(
//locale_system_default - Always identical values returns
LOCALE_CUSTOM_UI_DEFAULT // work only Vista-Win7, not Xp **
,flag,pclca,19) <= 0 ) then begin
pclca[0] := #0;
end;
Result := pclca;
end;
Run Code Online (Sandbox Code Playgroud)
我创建了一个资源文件Cur.rc.它包含
CUR1 21 "MYCURSOR.ANI"
Run Code Online (Sandbox Code Playgroud)
mycursor.ani是一个存在的文件.这是一个普通的.ani动画光标.
我使用编译资源文件
Brcc32 cur.rc
Run Code Online (Sandbox Code Playgroud)
这导致文件 cur.res
在我的项目的Unit1中(我也尝试了项目的.dpr文件),我补充说
{$R cur.res}
Run Code Online (Sandbox Code Playgroud)
在FormCreate事件中,
Screen.Cursors[8]:=LoadCursor(HInstance, 'CUR1');
Screen.Cursor := 8;
// p.s. 8 - for an example, can be 0.... n or a constant
Run Code Online (Sandbox Code Playgroud)
我运行应用程序.光标应该更改为我的动画光标.
这应该很简单.我尝试了不同来源的几个不同的光标文件.但它不起作用.
如果从文件加载它可以工作:
Screen.Cursors [8]:=LoadCursorFromFile('d:\1.ani');
Screen.Cursor:=8;
Run Code Online (Sandbox Code Playgroud)
如何从资源加载动画光标?为什么它不像加载普通光标一样工作?
这不行.显然,无法先从资源加载动画光标而无需先转到文件.
但这有效:
// MyCursor.rc
BGCURSOR ANICURSOR "D:\TEMP\Background.ani"
// Unit1.pas
{$R MyCursor.res MyCursor.rc}
procedure TForm1.FormCreate(Sender: TObject);
var
Res: TResourceStream;
FileName: string;
HC: HCURSOR;
const
BGCursor = 8; // Can be anything from 0..32767
begin
Res := TResourceStream.Create(MainInstance, 'BGCURSOR', …Run Code Online (Sandbox Code Playgroud) 我通过VerQueryValue收到的关于版本Exe-file的信息.是否有可以注册(建立或更改)此类信息的反函数(WinApi或Delphi)?这里,例如,有一个能够这样做的程序.怎么可能有用(http://www.angusj.com/resourcehacker)?
在本地安全策略(PC-Control面板 - 管理 - 本地安全策略)中,有一个参数"密码的最小长度"和参数"密码必须满足复杂性要求"(true/false).如何在Delphi中读取它们(适用于WinXpSp3-Win2003-Vista-Win7-Win2008(+ r2))?

我正在寻找类似的东西:
Function DetectSystemMinPassLength:integer;
begin
//?
end;
Function DetectSystemPassComplexity:boolean;
begin
//?
end;
Run Code Online (Sandbox Code Playgroud)
附加问题:Delphi(或WinApi)函数中是否存在可以检查给定密码是否符合系统策略(或设置)的函数?
例如:
Function MyCheckPassComplexity (Password:string):boolean;
begin
// ???
end;
Run Code Online (Sandbox Code Playgroud)
使用
MyCheckPassComplexity (' 12345 '); //result False
MyCheckPassComplexity (' MyCoolPassword9999 '); //result True
Run Code Online (Sandbox Code Playgroud) 是否有任何函数(在Delphi中)可以给出文件的完整路径和名称,该文件位于环境变量Path中的一个路径中,例如:
Fn: = FindFileEnv ('my.dll', EnvPath);
Run Code Online (Sandbox Code Playgroud)
例如,返回
Fn = 'c:\windows\system32\my.dll'
Run Code Online (Sandbox Code Playgroud) DelphiXe.
为了接收文件的版本我使用的功能:
function FileVersion(AFileName: string): string;
var
szName: array[0..255] of Char;
P: Pointer;
Value: Pointer;
Len: UINT;
GetTranslationString: string;
FFileName: PChar;
FValid: boolean;
FSize: DWORD;
FHandle: DWORD;
FBuffer: PChar;
begin
try
FFileName := StrPCopy(StrAlloc(Length(AFileName) + 1), AFileName);
FValid := False;
FSize := GetFileVersionInfoSize(FFileName, FHandle);
if FSize > 0 then
try
GetMem(FBuffer, FSize);
FValid := GetFileVersionInfo(FFileName, FHandle, FSize, FBuffer);
except
FValid := False;
raise;
end;
Result := '';
if FValid then
VerQueryValue(FBuffer, '\VarFileInfo\Translation', p, Len)
else
p := nil;
if P …Run Code Online (Sandbox Code Playgroud) 操作系统:Win7x64(2008,2008r2).郎:Delphi Xe2.

关于delphi plz的例子.
需要:...函数GetCurrentUserPicture:string;
... function GetUserPicture(UserName:String):string;
... function SetUserNewPicture(UserName,ImageFileName:String):bool;
我正在使用Delphi 10 Starter版.我正在研究如何使用Delphi的TTreeView组件.
一切正常,没有问题.我留下的唯一问题是:
将对象添加到节点后,删除项及其对象的正确方法是什么?
这是我的代码(见Button6Click):
type
TMyNode2 = class
public
nom: Integer;
comm: String;
end;
var
Form1: TForm1;
MyNode2: TMyNode2;
procedure TForm1.Button1Click(Sender: TObject); // add node
var
x: TTreeNode;
begin
x := tv1.Items.Add(tv1.Selected, Edit1.Text + ' ' + IntToStr(Round(Random(100))));
x.ImageIndex := 1;
x.SelectedIndex := x.ImageIndex;
x.StateIndex := x.ImageIndex;
end;
procedure TForm1.Button4Click(Sender: TObject); // add child node
var
x: TTreeNode;
begin
x := tv1.Items.AddChild(tv1.Selected, 'Child ' + Edit1.Text + ' ' + IntToStr(Round(Random(100))));
x.ImageIndex := 2; …Run Code Online (Sandbox Code Playgroud) delphi ×10
delphi-2010 ×1
exe ×1
locale ×1
patch ×1
registry ×1
treeview ×1
versioninfo ×1
winapi ×1
windows ×1