Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Реестр windows7 не регистрируется вылитает ошибка


Автор: Volkogriz 5.5.2015, 10:42
Всем здравствуйте!
У меня при регистрации в реестр выбивает постоянно ошибку только в windows7 в xp всё отлично.
подскажите что ни так? систему переустанавливал и на чистой тоже не регистрирует
Код

function TForm2.RegPrograms:boolean;
begin   
Reg:=TRegistry.create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\Westwood\Emperor',true);
Reg.LazyWrite := True;
Reg.WriteString('InstallPath',GamePach+'Emperor.exe');
Reg.WriteString('FolderPath',GamePach);
Reg.WriteString('Serial','4731640249971650404194');
Reg.WriteString('HTMLPath',GamePach+'Data\HTML');
Reg.WriteString('Desktop',GetFolderLocation('Desktop') + '\' +ExtractFileName('Emperor.exe'));
Reg.WriteString('Programs',GetFolderLocation('Programs') + '\Westwood');
Reg.WriteString('Name','Emperor');
Reg.WriteInteger('Version', 00010009);
Reg.WriteInteger('AmountStart', 00000007);
Reg.WriteInteger('SKU', 7936);
Reg.WriteInteger('MyAssembly',78260781);
Reg.CloseKey;
result:=true;
end;

С уважением,
Денис!

Автор: Illusion Dolphin 5.5.2015, 11:41
Цитата

выбивает постоянно ошибку только в windows7 в xp всё отлично.
подскажите что ни так

[offtopic]Если у вас какая-то ошибка, попробуйте что-то исправить[/offtopic]
А теперь по теме - что за ошибка? Если с пермишнами то HKEY_LOCAL_MACHINE сюда только админы писать могут.

Автор: Volkogriz 5.5.2015, 12:16
Да я понял спасибо. Теперь думаю как записать от администратора не подскажите?
С уважением,
Денис!

Автор: Illusion Dolphin 5.5.2015, 12:30
В минифест:
Код

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <dependency>
        ...
    </dependency>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="requireAdministrator"></requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
        <application> 
            ...
        </application> 
    </compatibility>
</assembly>

Автор: Volkogriz 5.5.2015, 13:29
о монифесте думал)) никак без него нельзя?

Автор: Illusion Dolphin 5.5.2015, 22:14
Цитата

никак без него нельзя

Можно, но не нужно. То, что вы делаете - это установка программы в систему и делается инсталятором и требует прав администратора.

Автор: Zlo 9.5.2015, 03:59
Можно сделать проверку на то запущена ли программа с админскими правами или нет-прикрепил файл.
В файле dpr прописываю вот такие строки:
Код

if not IsUserAnAdmin then
     if MessageDlg('Программа запущена без прав Администратора,'+#10#13+
                   'программа может работать не правильно.'+#10#13+
                   'Желаете продолжить?',mtWarning,[mbYes, mbNo],0) = mrNo then
     Application.Terminate;
 
в uses не забыть добавить модуль.

Автор: Illusion Dolphin 9.5.2015, 10:04
Цитата

Программа запущена без прав Администратора,'+#10#13+
                   'программа может работать не правильно.'+#10#13+

Хаха и что теперь юзеру делать? У него округляются глаза и он удаляет программу smile 

Автор: Volkogriz 9.5.2015, 14:26
Всем спасибо! сдделал с манифестом) Праверка та точьно ненужна, эта программа устанавливает игру и регистрируется вреестре после. Illusion Dolphin прав на счёт:
Цитата
и что теперь юзеру делать? У него округляются глаза и он удаляет программу
 ))
С уважением,
Денис! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)