Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
lesovick
14 / 14 / 0
Регистрация: 04.03.2009
Сообщений: 56
1

Как средствами API создать службу на удалённом компе?

23.04.2009, 12:29. Просмотров 1046. Ответов 1
Метки нет (Все метки)

Пытаюсь сделать так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            IntPtr schSCManager = OpenSCManager("winxp1-vm", null, (uint)(MyFlags.SC_MANAGER_CREATE_SERVICE));
            CreateService
 
                (
                    schSCManager,   // SCManager database       
                    "Service1",         // name of service          
                    "Service1",         // service name to display  
                    (uint)(SERVICE_ACCESS.SERVICE_ALL_ACCESS),        // desired access           
                    (uint)(MyFlags.SERVICE_WIN32_OWN_PROCESS) | (uint)(MyFlags.SERVICE_INTERACTIVE_PROCESS), // service type             
                    (uint)(MyFlags.SERVICE_AUTO_START),      // start type               
                    (uint)(MyFlags.SERVICE_ERROR_NORMAL),      // error control type      
                    "D:\\WindowsService1.exe",          // service's binary         
                    null,                      // no load ordering group   
                    null,                      // no tag identifier        
                    null,                      // no dependencies
                    null,                      // LocalSystem account      
                    null
                ));                     // no password
Если в параметрах OpenSCManager прописываю имя своего компа, то всё ОК, служба создаётся. Если в параметрах OpenSCManager прописываю имя удалённого компа из локалки, то schSCManager=0, службу создать не получается. Что не так? Вобще можно создавать так службу на удалённом компе?

SC_MANAGER_CREATE_SERVICE определяется так:

C#
1
2
3
4
5
        [Flags]
        enum MyFlags : uint
        {
            SC_MANAGER_CREATE_SERVICE = 0x0002,
        }
Функция OpenSCManager по Pinvoke.net подключается так:

C#
1
2
        [DllImport("advapi32.dll", EntryPoint = "OpenSCManagerW", ExactSpelling = true, CharSet = CharSet.Unicode, SetLastError = true)]
        public static extern IntPtr OpenSCManager(string machineName, string databaseName, uint dwAccess);
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2009, 12:29
Ответы с готовыми решениями:

Создать два потока: первый - средствами Windows API, второй - с использованием класса TThread
Создать два потока. Первый поток создать средствами Windows API, второй с использованием класса...

Как создать службу?
Добрый вечер! У меня есть программа. Как мне ее установить как службу? Что-бы она была не в...

Как создать службу в Linux?
Например, есть приложение, которое нужно запускать в Linux (Ubuntu 16), как службу в Windows. То...

Как рисовать средствами API на BITMAP?
Линия, нарисованная на контексте устройства PictureBox с помощью MoveToEx и LineTo, сотрётся если...

Как закачать файл на FTP средствами API
Привет Подскажите как закачать на FTP, ни как не получается этой функцией или ниже...

1
KoppeKTop
11 / 11 / 1
Регистрация: 20.04.2009
Сообщений: 26
23.04.2009, 21:18 2
Почитай здесь. Хорошо описываются права доступа и коды GetLastError().
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2009, 21:18

Как создать веб-службу, управляющую процессами сервера?
Cоздать веб-службу, управляющую процессами сервера. Должна поддерживаться отправка сигналов 9, 15,...

Как создать Windows Service (службу), если его нету в VS?
Здравствуйте! Поставил себе VS Professional 2013. Хотел создать Windows Service, но его там...

Как определить средствами VB (+ API наверно) полностью ли загрузилась страничка в IE
Поможите, люди добры! Как определить средствами VB (+ API, наверно) полностью ли загрузилась...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.