小编Gu.*_*u. 的帖子

32位程序如何读取"真正的"64位版本的注册表?

我正在尝试阅读HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run with OpenKeyReadOnly,GetValueNames但它会从HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run返回值.

如何读取64位值而不是重定向到32位密钥?

该程序作为管理帐户运行.我也试过RegOpenKeyExRegEnumValue.

我正在使用Delphi 2010.

delphi registry delphi-2010

15
推荐指数
1
解决办法
8893
查看次数

获得年度最佳一周

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 ...

为什么区别和哪里是正确的?

delphi monthcalendar

7
推荐指数
1
解决办法
1万
查看次数

如何从Windows控制面板定义位置和显示语言

在此输入图像描述

德尔福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)
  1. 如何在Xp + Win7中定义位置和在Xp中显示语言?
  2. 可以是为Xp和Win7定义"显示语言"的通用密钥
  3. 如何接收已建立的界面语言列表?

delphi locale

7
推荐指数
1
解决办法
2756
查看次数

再次关于来自程序资源的动画(*.ani)游标(Delphi 2010)

我创建了一个资源文件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)

delphi

6
推荐指数
1
解决办法
2088
查看次数

设置EXE VersionInfo

我通过VerQueryValue收到的关于版本Exe-file的信息.是否有可以注册(建立或更改)此类信息的反函数(WinApi或Delphi)?这里,例如,有一个能够这样做的程序.怎么可能有用(http://www.angusj.com/resourcehacker)?

windows delphi patch exe versioninfo

6
推荐指数
1
解决办法
2457
查看次数

获取系统最小密码长度和复杂性

在本地安全策略(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

6
推荐指数
1
解决办法
3226
查看次数

在环境变量"路径"的路径中搜索文件

是否有任何函数(在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)

delphi

5
推荐指数
1
解决办法
1067
查看次数

使用Build获取FileVersion

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)

delphi

5
推荐指数
1
解决办法
1万
查看次数

获取用户图片

操作系统:Win7x64(2008,2008r2).郎:Delphi Xe2.

在此输入图像描述 在此输入图像描述

  1. 如何接收图像"用户帐户图片"的完整路径(和文件名)?
  2. 如何设置新图片?

关于delphi plz的例子.

需要:...函数GetCurrentUserPicture:string;

... function GetUserPicture(UserName:String):string;

... function SetUserNewPicture(UserName,ImageFileName:String):bool;

delphi winapi

5
推荐指数
1
解决办法
1201
查看次数

如何从TTreeView中删除节点及其对象

我正在使用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 treeview

4
推荐指数
1
解决办法
1285
查看次数