Библиотека DLL является «под названием» при использовании его функции. Поэтому, если у вас есть проект DLL с несколькими классами и несколькими функциями внутри ваших классов, просто add the DLL as a reference в ваш сервисный проект и вызовите соответствующие функции.
Возможно, вы захотите использовать this library для создания службы Windows. Причина в том, что при создании службы Windows с использованием шаблона Visual Studio результирующая сборка не выполняется «run». Полученная сборка - это служба Windows, которая должна быть установлена, а затем started using the Services Snap-In. Но используя пользовательскую библиотеку Windows Service для Hoytsoft, ваша служба автоматически установит себя, а затем автоматически запустится - как обычное приложение Windows Form.
Чтобы убедиться, что ваша служба запущена при запуске, не забудьте настроить класс службы AutoStart (как описано в его статье CodeProject). Чтобы ваша служба работала непрерывно, даже когда процесс был убит, вы можете добавить этот удобный хак реестра, который устанавливает флаги Restart Service для немедленного перезапуска.
Этот Реестр Hack ==
Registry Hack:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Services\<YOUR_SERVICE_NAME_HERE>", true);
key.SetValue("FailureActions", new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, Microsoft.Win32.RegistryValueKind.Binary);
key.Close();
Поймите, что любой пользователь с правами администратора может все еще убить процесс, просто отключить ваш сервис.
Это потрясающий Джейсон, но я не уверен, что HoytSoft.dll работает на моей тестовой среде - 64 бит. – Usher
Хм, у вас есть конкретная ошибка? – Jason
Я еще не тестировал в своей тестовой среде до развертывания там, просто хочу убедиться, что он поддерживает и 64-битную. – Usher