Изложение логической конструкции
При первом запуске программы в системном реестре создаётся раздел. В будущем пароль «password» и обложку «Skin» дозволено будет изменить. AnsiString st, pas; GetValueString (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools" ," password", reg_pas); Данная программа поделена на три этапа загрузки: Tr_fl=GetValueString (HKEY_LOCAL_MACHINE, «SOFTWAREWindowsTools» ," password", mystr); Tr_fl=GetValueString… Читать ещё >
Изложение логической конструкции (реферат, курсовая, диплом, контрольная)
Инициализация пользователя
Данная программа поделена на три этапа загрузки:
Инициализация пользователя. Предназначается для предотвращения несанкционированного доступа к программе.
Загрузка параметров. На данном этапе происходит чтение параметров Windows, нужных для работы программы с системой.
Загрузка основного окна. Это конечный этап загрузки программы на котором загружаются разделы, всякий из этих разделов имеет свои вкладки с определёнными параметрами.
Окно инициализации пользователя расположено поле для ввода пароля, кнопка «ОК», кнопка «Отмена».
Пример размещен на Рисунке 23.
Рисунок. 23. Инициализация пользователя При запуске программы проверяется, запускаясь ли на этом компьютере ранее либо нет. Если программа запущена впервой, то в системном реестре создаются параметры нужные для запуска программы:
Пароль Имя обложки (графическое представление программы) В поле ввода «sEdit1» вводится пароль пользователя, при нажатии на кнопку «ОК» сравнивается введённое значение паролем программы хранящемся в реестре. При совпадении значений производится чтение параметров системного реестра и загрузка основного окна.
val=EnableKey (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools");
if (val==true).
{.
tr_fl=GetValueString (HKEY_LOCAL_MACHINE, «SOFTWAREWindowsTools» ," password", mystr);
if (tr_fl==true).
{.
st=mystr;
}.
}.
if (val==false || tr_fl==false).
{ CreateKey (HKEY_LOCAL_MACHINE," SOFTWARE" ," WindowsTools"); SetValueString_REG_SZ (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools" ," password" ," 12 345″);
SetValueString_REG_SZ (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools" ," Skin" ," Topaz");
}.
Разглядим выше описанный код больше детально.
При запуске проверяется существование раздела WindowsTools. val=EnableKey (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools");
Неимение этого раздела может обозначать то, что на данной ОС программа запускается 1-й раз. В Переменную «val» записывается итог проверки, «True» если раздел существует либо «False» если раздел не существует. Если раздел существует то в переменную «st» записывается пароль для последующей инициализации пользователя.
if (val==true).
{.
tr_fl=GetValueString (HKEY_LOCAL_MACHINE, «SOFTWAREWindowsTools» ," password", mystr);
if (tr_fl==true).
{.
st=mystr;
}.
}.
При первом запуске программы в системном реестре создаётся раздел.
«WindowsTools».
CreateKey (HKEY_LOCAL_MACHINE," SOFTWARE" ," WindowsTools");
В сделанном разделе устанавливаются параметр «password» типа REG_SZ с записанным значением «12 345».
SetValueString_REG_SZ (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools" ," password" ," 12 345″); и параметр «Skin» типа REG_SZ с записанным значением «Topaz».
SetValueString_REG_SZ (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools" ," Skin" ," Topaz");
В будущем пароль «password» и обложку «Skin» дозволено будет изменить.
При нажатии по кнопке «OK» начинается с создания класса «reg» и нужных переменных и сопоставление пароля.
TRegistry *reg = new TRegistry (KEY_ALL_ACCESS);
int ttt, i;
char reg_pas[100];
AnsiString st, pas; GetValueString (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools" ," password", reg_pas);
pas=reg_pas;
if (pas==sEdit1->Text && pas≠"").
Переменная «ttt» будет беречь итог параметров типа REG_DWORD, в переменную «st» записываются итоги чтения параметров типа REG_SZ, переменна «pas» хранит введённый пользователем пароль, в массив «mystr» будет записываться пароль программы прочитанный из реестра.
GetValueString (HKEY_LOCAL_MACHINE," SOFTWAREWindowsTools" ," password", mystr);
Позже создания переменных и чтения пароля из реестра производится сопоставление пароля введённого пользователем с паролем из реестра.
if (pas==sEdit1->Text && pas≠"").
При выполнении данные сопоставления начинается этап загрузки программы.