1
내가 컨트롤 패널을 얻을 셸을 사용x64 시스템에서 Windows 제어판을 얻는 방법은 무엇입니까?
코드 :
var
psfDeskTop: IShellFolder;
psfControl: IShellFolder;
pidControl: PITEMIDLIST;
pidChild: PITEMIDLIST;
pidAbsolute: PItemIdList;
pEnumList: IEnumIDList;
celtFetched: ULONG;
FileInfo: SHFILEINFOW;
begin
OleCheck(SHGetDesktopFolder(psfDeskTop));
OleCheck(SHGetSpecialFolderLocation(0, CSIDL_CONTROLS, pidControl));
OleCheck(psfDeskTop.BindToObject(pidControl, nil, IID_IShellFolder, psfControl));
OleCheck(psfControl.EnumObjects(0, SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN or SHCONTF_FOLDERS, pEnumList));
while pEnumList.Next(1, pidChild, celtFetched) = 0 do
begin
pidAbsolute := ILCombine(pidControl, pidChild);
SHGetFileInfo(LPCTSTR(pidAbsolute), 0, FileInfo, SizeOf(FileInfo), SHGFI_PIDL
or SHGFI_DISPLAYNAME);
Memo1.Add(FileInfo.szDisplayName);
end;
end;
그것에서만 컨트롤 패널을 얻을 수있는 32 비트와 같은 : BDE 관리자 (32 비트), 플래시 플레이어 (32 비트), 및 내 운영 체제가 x64인데, 어떻게 모든 (32bit & 64bit) 제어판을 얻는 지 궁금합니까?
32 비트 프로세스가 WOW64의 에뮬레이터에서 실행됩니다. 64 비트 프로세스를 사용하십시오. –
즉, Delphi XE2 또는 XE3을 사용하는 경우 Delphi 대상을 Win32에서 Win64로 변경하십시오. 아직 가지고 있지 않다면 현대적인 32 + 64 비트 델파이 버전을 구하십시오. –
@DavidHeffernan 나는 당신이 대답으로 말한 것을 올리 겠지만, 나는 당신의 의견에 달렸습니다. 왜 대답으로 게시하지 않으시겠습니까? – jachguate