[Winpack-developer] =?gb2312?Q?Re:_=BD=FC=C8=D5=B9=A4=D7=F7?=
Status: Planning
Brought to you by:
liuyiming
|
From: wenmingyimao123 <wen...@16...> - 2006-08-14 02:00:49
|
=20
=BA=C7=BA=C7=A3=AC=B2=BB=CA=C7=BA=DC=C3=A6=A3=AC=BE=CD=CA=C7=CC=B0=CD=E6=A1=
=A3
=20
=B6=D4=D3=DA=D7=A2=B2=E1=B1=ED=D6=B8=B6=A8=CF=EE=B5=C4=B6=C1=C8=A1=BA=CD=D0=
=B4=C8=EB=D2=D1=BE=AD=C3=BB=D3=D0=CE=CA=CC=E2=A3=AC=CA=C7=CD=A8=B9=FDjni=CA=
=B5=CF=D6=B5=C4=A1=A3=B5=AB=CA=C7=C4=BF=C7=B0=D2=AA=B0=D1=D2=D1=BE=AD=B0=B2=
=D7=B0=B5=C4=C8=ED=BC=FE=C1=D0=BE=D9=B3=F6=C0=B4=A3=AC=C4=C7=C3=B4=BE=CD=D2=
=AA=CA=B9=D3=C3=B5=BDRegEnumKeyEx=D5=E2=B8=F6=BD=D3=BF=DA=A3=AC=BF=C9=CA=C7=
=BB=B9=C3=BB=D3=D0=BF=B4=B6=AE=D4=F5=C3=B4=D3=C3=A3=AC=BA=C7=BA=C7=A1=A3
=20
=B6=D4=D3=DA=C8=ED=BC=FE=B5=C4=B0=B2=D7=B0=A3=AC=C8=E7=B9=FB=B2=C9=C8=A1g=
oogle pack=D5=E2=D1=F9=B5=C4=B7=BD=CA=BD=A3=AC=C4=C7=C3=B4=BE=CD=B2=BB=C4=
=DC=CA=B9=D3=C3exe=B5=C4=D6=B4=D0=D0=B3=CC=D0=F2=C1=CB=A1=A3=BB=F2=D0=ED=CE=
=D2=C3=C7=BF=C9=D2=D4=D2=AA=C7=F3=CC=E1=B9=A9=C9=CC=B0=D1=CC=E1=B9=A9=B0=B2=
=D7=B0=BA=F3=B5=C4=CE=C4=BC=FE=C1=D0=B1=ED=A3=AC=CE=C4=BC=FE=B5=C4=CE=BB=D6=
=C3=D0=C5=CF=A2=A3=AC=B0=B2=D7=B0=CB=F9=D0=E8=B5=C4=D7=A2=B2=E1=B1=ED=D0=C5=
=CF=A2=A1=A3
=20
void QueryKey(HWND hDlg, HANDLE hKey)=20
{=20
CHAR achKey[MAX_PATH];=20
CHAR achClass[MAX_PATH] =3D ""; // buffer for class name=20
DWORD cchClassName =3D MAX_PATH; // size of class string=20
DWORD cSubKeys; // number of subkeys=20
DWORD cbMaxSubKey; // longest subkey size=20
DWORD cchMaxClass; // longest class string=20
DWORD cValues; // number of values for key=20
DWORD cchMaxValue; // longest value name=20
DWORD cbMaxValueData; // longest value data=20
DWORD cbSecurityDescriptor; // size of security descriptor=20
FILETIME ftLastWriteTime; // last write time=20
=20
DWORD i, j;=20
DWORD retCode, retValue;=20
=20
CHAR achValue[MAX_VALUE_NAME];=20
DWORD cchValue =3D MAX_VALUE_NAME;=20
CHAR achBuff[80];=20
=20
// Get the class name and the value count.=20
RegQueryInfoKey(hKey, // key handle=20
achClass, // buffer for class name=20
&cchClassName, // size of class string=20
NULL, // reserved=20
&cSubKeys, // number of subkeys=20
&cbMaxSubKey, // longest subkey size=20
&cchMaxClass, // longest class string=20
&cValues, // number of values for this key=20
&cchMaxValue, // longest value name=20
&cbMaxValueData, // longest value data=20
&cbSecurityDescriptor, // security descriptor=20
&ftLastWriteTime); // last write time=20
=20
SetDlgItemText(hDlg, IDE_CLASS, achClass);=20
SetDlgItemInt(hDlg, IDE_CVALUES, cValues, FALSE);=20
=20
SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),=20
LB_ADDSTRING, 0, (LONG) "..");=20
=20
// Enumerate the child keys, until RegEnumKeyEx fails. Then=20
// get the name of each child key and copy it into the list box.=20
SetCursor(LoadCursor(NULL, IDC_WAIT));=20
for (i =3D 0, retCode =3D ERROR_SUCCESS;=20
retCode =3D=3D ERROR_SUCCESS; i++)=20
{=20
retCode =3D RegEnumKeyEx(hKey,=20
i,=20
achKey,=20
MAX_PATH,=20
NULL,=20
NULL,=20
NULL,=20
&ftLastWriteTime);=20
if (retCode =3D=3D (DWORD)ERROR_SUCCESS)=20
{
SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),=20
LB_ADDSTRING, 0, (LONG) achKey);=20
}
}=20
SetCursor(LoadCursor (NULL, IDC_ARROW));=20
=20
// Enumerate the key values.=20
SetCursor(LoadCursor(NULL, IDC_WAIT));=20
=20
if (cValues)=20
{
for (j =3D 0, retValue =3D ERROR_SUCCESS;=20
j < cValues; j++)=20
{=20
cchValue =3D MAX_VALUE_NAME;=20
achValue[0] =3D '\0';=20
retValue =3D RegEnumValue(hKey, j, achValue,=20
&cchValue,=20
NULL,=20
NULL, // &dwType,=20
NULL, // &bData,=20
NULL); // &bcData=20
=20
if (retValue =3D=3D (DWORD) ERROR_SUCCESS )=20
{=20
achBuff[0] =3D '\0';=20
=20
// Add each value to a list box.=20
if (!lstrlen(achValue))=20
lstrcpy(achValue, "<NO NAME>");=20
wsprintf(achBuff, "%d) %s ", j, achValue);=20
SendMessage(GetDlgItem(hDlg,IDL_LISTBOX2),=20
LB_ADDSTRING, 0, (LONG) achBuff);=20
}=20
}
SetCursor(LoadCursor(NULL, IDC_ARROW));=20
}
=20
=20
=20
=20
=20
-----=D4=AD=CA=BC=D3=CA=BC=FE-----
=B7=A2=BC=FE=C8=CB:"=C1=F5=D2=BB=C3=F9"=20
=B7=A2=CB=CD=CA=B1=BC=E4:2006-08-13 20:09:30
=CA=D5=BC=FE=C8=CB:"winpack-developer"=20
=B3=AD=CB=CD:(=CE=DE)
=D6=F7=CC=E2:[Winpack-developer]=BD=FC=C8=D5=B9=A4=D7=F7
=D4=DAUtil=B0=FC=CC=ED=BC=D3=C1=CB=B0=E6=B1=BE=B1=C8=BD=CF=B5=C4VerUtil C=
RC=BC=C6=CB=E3=B5=C4CRCUtil
=B6=D4winpack.properties=D6=D8=C3=FC=C3=FB=BA=DC=B6=E0=CA=F4=D0=D4
=D4=DAui=D6=D0=CC=ED=BC=D3=C1=CB=CA=F4=D0=D4=C9=E8=D6=C3/=B4=FA=C0=ED=C9=E8=
=D6=C3=B5=C8=B3=F5=B2=BD=B9=A6=C4=DC.
=D0=DE=B8=C4=CA=FD=BE=DD=BF=E2=BD=E1=B9=B9,=CC=ED=BC=D3size=BA=CDlicense,=
=B2=A2=CF=E0=D3=A6=D0=DE=B8=C4=B3=CC=D0=F2=B4=FA=C2=EB.
=D7=EE=BD=FC=B4=F3=BC=D2=B6=BC=C3=BB=D3=D0=B7=A2=D0=C5,=CA=C7=B2=BB=CA=C7=
=D7=EE=BD=FC=B6=BC=BA=DC=C3=A6.
=09=09=09=09
--------------
=C1=F5=D2=BB=C3=F9
2006-08-13
|