Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
void QueryKey(HWND hDlg, HANDLE hKey)
{
CHAR achKey[MAX_PATH];
CHAR achClass[MAX_PATH] = ""; // буфер для имени класса
DWORD cchClassName = MAX_PATH; // размер строки класса
DWORD cSubKeys; // количество подключей
DWORD cbMaxSubKey; // самый длинный подключ
DWORD cchMaxClass; // самая длинная строка класса
DWORD cValues; // кол-во значений для ключа
DWORD cchMaxValue; // самое длинное имя
DWORD cbMaxValueData; // самые длинные данные
DWORD cbSecurityDescriptor;
FILETIME ftLastWriteTime;
DWORD i, j;
DWORD retCode, retValue;
CHAR achValue[MAX_VALUE_NAME];
DWORD cchValue = MAX_VALUE_NAME;
CHAR achBuff[80];
// Получаем имя класса и количество значений.
RegQueryInfoKey(hKey, // дескриптор ключа
achClass, // буфер для имени класса
&cchClassName, // размер строки класса
NULL, // зарезервировано
&cSubKeys, // количество подключей
&cbMaxSubKey, // самый длинный подключ
&cchMaxClass, // самая длинная строка класса
&cValues, // кол-во значений для этого ключа
&cchMaxValue, // самое длинное имя
&cbMaxValueData, // самые длинные данные
&cbSecurityDescriptor,
&ftLastWriteTime);
SetDlgItemText(hDlg, IDE_CLASS, achClass);
SetDlgItemInt(hDlg, IDE_CVALUES, cValues, FALSE);
SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),
LB_ADDSTRING, 0, (LONG) "..");
// Перечисление дочерних ключей идёт до тех пор, пока RegEnumKeyEx не
// выдаст ошибку. Затем получаем имя каждого ключа и копируем его
// в список.
SetCursor(LoadCursor(NULL, IDC_WAIT));
for (i = 0, retCode = ERROR_SUCCESS;
retCode == ERROR_SUCCESS; i++)
{
retCode = RegEnumKeyEx(hKey,
i,
achKey,
MAX_PATH,
NULL,
NULL,
NULL,
&ftLastWriteTime);
if (retCode == (DWORD)ERROR_SUCCESS)
{
SendMessage(GetDlgItem(hDlg, IDL_LISTBOX),
LB_ADDSTRING, 0, (LONG) achKey);
}
}
SetCursor(LoadCursor (NULL, IDC_ARROW));
// Получаем значения ключа.
SetCursor(LoadCursor(NULL, IDC_WAIT));
if (cValues)
{
for (j = 0, retValue = ERROR_SUCCESS;
j < cValues; j++)
{
cchValue = MAX_VALUE_NAME;
achValue[0] = '\0';
retValue = RegEnumValue(hKey, j, achValue,
&cchValue,
NULL,
NULL, // &dwType,
NULL, // &bData,
NULL); // &bcData
if (retValue == (DWORD) ERROR_SUCCESS )
{
achBuff[0] = '\0';
// Добавляем каждое значение в список.
if (!lstrlen(achValue))
lstrcpy(achValue, "<NO NAME>");
wsprintf(achBuff, "%d) %s ", j, achValue);
SendMessage(GetDlgItem(hDlg,IDL_LISTBOX2),
LB_ADDSTRING, 0, (LONG) achBuff);
}
}
SetCursor(LoadCursor(NULL, IDC_ARROW));
}
На самом деле все делается очень просто:Системными средствами наверное никак
Раздел: HKEY_CURRENT_USER\Environment
Название класса: <Класс отсутствует>
Последнее время записи: 07.07.2014 - 2:22
Параметр 0
Название: TEMP
Тип: REG_SZ
Значение: C:\Users\Alex\AppData\Local\Temp
Параметр 1
Название: TMP
Тип: REG_EXPAND_SZ
Значение: %USERPROFILE%\AppData\Local\Temp
Параметр 2
Название: EMAIL_VIEWER
Тип: REG_SZ
Значение: C:\Program Files\Encryptomatic, LLC\PSTViewer Pro\PSTViewer.exe
Как узнать дату последней модификации параметра реестра