Обещал C#? Будет C#
Добрый день. Помните программу для автозамены ключей Nod32? Если нет, посмотрите на 2 поста назад.
Освежили знания? Итак, я переписал ее на C# (заодно изменив и серверную часть). В конце статьи я приложу архив с программой и серверным скриптом. А сейчас хочу рассказать о некоторых тонкостях.
Я уже не помню, делал ли отдельный поток в версии на Delphi, но кажется, что нет. А в новой версии на C# сделал. Создал класс Checker, которому при создании передаются адрес для запроса к серверу, старый ключ и пароль к этому ключу. Таймер, который проверяет наличие новых ключей создает поток таким вот образом:
Checker checker = new Checker(server, username, password); Thread thread = new Thread(new ThreadStart(checker.Check)); thread.Start();
Ну и собственно весь прикол потока.
Далее немаловажный момент. Я сейчас использую Windows 7 x64. И 4 часа я убил на выяснение того, почему же вся ветка реестра HKEY_LOCAL_MACHINE у меня в программе не читается, пока не оказалось, что 32-битные приложения не могут работать с ней напрямую. Собрав 64-битную версию, я получил то, чего хотел — возможность чтения/записи информации из ветки реестра, в которой НОД хранит информацию о ключе:
RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Profiles\@My profile", true);
username = (string)regKey.GetValue("Username");
Для автозагрузки проги:
regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
if (regKey != null)
{
regKey.SetValue("AVActive", Application.ExecutablePath);
}
Ну вот вроде и все с тонкостями. Ниже можно скачать исходники.
P.S. В этой версии нет необходимости вручную добавлять ключи в базу. Когда серверный скрипт видит, что программа запущена не в первый раз и ключа, который она использует, отсутствует в базе, скрипт добавляет этот ключ в базу и в течение трех часов этот ключ оказывается установленным на все компьютеры, использующие программу.
Ммммм а мне нечем скопмелировать исходники ((( нету визуала базика ((
Там же СИ исходники лежат верно? не сщитая php и sql…
Исходники проекта на C# там лежат. Можно же использовать Microsoft Visual C# Express http://www.microsoft.com/express/Downloads/, или же бесплатный Mono Develop http://monodevelop.com/Download/, или даже SharpDevelop http://www.sharpdevelop.com/OpenSource/SD/
А C# от других языков не особо сильно отличается. Знаешь один язык — знаешь все остальные подобные. Так что если вы PHP знаете, то на C# перейдете без проблем
я в C# туг НО я со временем догоню )))
не хрена я не понимаю ((((((((((( вот блин.
я извиняюсь а программкой можно?
А какой смысл в такой программе без исходников. Из того, что я выложил, программу собрать легко, изменив разве что значение сервера по-умолчанию, даже знания C# не требуется.
А если брать готовую версию, то придется перенастраивать сервер по-умолчанию в реестре — все-таки она писалась для внутренних нужд, а не для распространения.