Windows Service

Тема в разделе "WASM.BEGINNERS", создана пользователем fragment, 30 авг 2010.

Статус темы:
Закрыта.
  1. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Где при создании сервиса указать его описание ?

    Код (Text):
    1. InstallService proc
    2.  
    3.     push 0F003Fh
    4.     push 0
    5.     push 0
    6.     call OpenSCManagerA
    7.  
    8.     mov schSCManager,eax
    9.    
    10.     cmp eax,0
    11.     jz @ret
    12.  
    13.     GetModuleFileNameA PROTO :DWORD,:DWORD,:DWORD
    14.     push 260
    15.     push offset szFileName
    16.     push 0
    17.     call GetModuleFileNameA
    18.  
    19.     CreateServiceA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    20.     push 0
    21.     push 0
    22.     push 0
    23.     push 0
    24.     push 0
    25.     push offset szFileName
    26.     push 00000001h
    27.     push 00000002h
    28.     push 00000110h
    29.     push 0F01FFh
    30.     push offset szDisplayName
    31.     push offset szServiceName
    32.     push schSCManager
    33.     call CreateServiceA
    34.  
    35.     cmp eax,0
    36.     je @exit
    37.    
    38.     push eax
    39.  
    40.     StartServiceA PROTO :DWORD,:DWORD,:DWORD
    41.     push 0
    42.     push 0
    43.     push eax
    44.     call StartServiceA
    45.  
    46.     call CloseServiceHandle
    47.     jmp @ret
    48.  
    49. @exit:
    50.     push schSCManager
    51.     call CloseServiceHandle
    52. @ret:
    53.     ret
    54.  
    55. InstallService endp
    не могу удалить созданый сервис

    Код (Text):
    1. .686
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. includelib library\kernel32.lib
    6. includelib library\user32.lib
    7. includelib library\shell32.lib
    8. includelib library\Advapi32.lib
    9.  
    10. .data?
    11.     schSCManager dd ?
    12. .data
    13.     szServiceName db "szServiceName",0
    14.  
    15. .code
    16. start:
    17.  
    18.     OpenSCManagerA PROTO :DWORD,:DWORD,:DWORD
    19.     push 0F003Fh
    20.     push 0
    21.     push 0
    22.     call OpenSCManagerA
    23.  
    24.     mov schSCManager,eax
    25.  
    26.     OpenServiceA PROTO :DWORD,:DWORD,:DWORD
    27.     push 10000h
    28.     push offset szServiceName
    29.     push schSCManager
    30.  
    31.     DeleteService PROTO :DWORD
    32.     push eax
    33.     call DeleteService
    34.    
    35.     CloseServiceHandle PROTO :DWORD
    36.     push schSCManager
    37.     call CloseServiceHandle
    38.  
    39.     ExitProcess PROTO :DWORD
    40.     push eax
    41.     call ExitProcess
    42.  
    43. end start
    с удаление разобрался а как вот добавить описане сервиса не савсем понятно
     
  2. LazzY

    LazzY New Member

    Публикаций:
    0
    Регистрация:
    6 мар 2006
    Сообщения:
    123
    Что значит где??
    После регистрации дерните ChangeServiceConfig и ChangeServiceConfig2 для установки дескрипшена.
     
  3. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Спасибо , тоесть я правильно панимаю, __in_opt LPVOID lpInfo указатель на строку описания ?

    BOOL WINAPI ChangeServiceConfig2(
    __in SC_HANDLE hService,
    __in DWORD dwInfoLevel,
    __in_opt LPVOID lpInfo
    );
     
  4. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Не совсем dwInfoLevel определяет на какую именно информацию указывает lpInfo.
    Если dwInfoLevel равен SERVICE_CONFIG_DESCRIPTION, то lpInfo должна указывать на SERVICE_DESCRIPTION .

    typedef struct _SERVICE_DESCRIPTION { LPTSTR lpDescription;
    } SERVICE_DESCRIPTION, *LPSERVICE_DESCRIPTION;
     
  5. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Спасибо , буду пробывать.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Срите дальше. Есчо скринов накидайте сюда. А матчасть изучать не нужно, есть ведь форум.
     
  7. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Помогите пожалуйста переписать, или хотябы намекните как делать, управляющую процедуру сервиса Windows без макросов IF и тд, мне нужно чтобы там были только команды cmp je jne и тд. Каму не сложно!

    Код (Text):
    1. CtrlHandler proc controlCode1:DWORD
    2.   LOCAL currentState:DWORD
    3.   LOCAL success:BOOL
    4.  
    5.   mov currentState, 0
    6.   mov eax, controlCode1
    7.  
    8.   .if ( eax == SERVICE_CONTROL_STOP )
    9.     SendSvcState SERVICE_STOP_PENDING
    10.     call StopServiceStatus
    11.     SendSvcState SERVICE_STOPPED
    12.   .elseif ( eax == SERVICE_CONTROL_PAUSE )
    13.     .if ( fRunning != FALSE && fPaused == FALSE )
    14.         SendSvcState SERVICE_PAUSE_PENDING
    15.  
    16.         call PauseService
    17.      
    18.         SendSvcState SERVICE_PAUSED
    19.     .endif
    20.  
    21.   .elseif ( eax == SERVICE_CONTROL_CONTINUE )
    22.     .if ( fRunning != FALSE && fPaused == TRUE )
    23.         SendSvcState SERVICE_CONTINUE_PENDING
    24.  
    25.         call ResumeService
    26.  
    27.         SendSvcState SERVICE_RUNNING
    28.     .endif
    29.  
    30.   .elseif ( eax == SERVICE_CONTROL_INTERROGATE )
    31.   .elseif ( eax == SERVICE_CONTROL_SHUTDOWN )
    32.   .endif
    33.   ret
    34. CtrlHandler endp
    очень сложная структура получается ни как не могу понять что куда сувать и как сравнивать по очерди :dntknw:
     
  8. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    модеры потрите этот топик, и забаньте это чудо.
     
  9. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    С чего бы это? о_О ты имеешь что-то против меня лично или вообще не даволен жизнью ?
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Имеем против. Вы задолбали своими тупыми вопросами WriteFile().. скрины и прочая ахинея. Вам повезло что админам способным банить пофиг.
     
  11. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Ну раскажи мне тогда зём какие вопросы решаются на этом форуме , наверное я просто ошибся адресом , и такое тоже бывает. Причем тут одна тема ? Я пишу программу и у меня возникают вопросы , я бы и писал бы в одну тему если бы её не закрыли.
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    fragment
    Я вам уже ответил раз 10%20. Более того вы рассово не желаете юзать отладчик http://www.wasm.ru/forum/viewtopic.php?pid=393883#p393883 и учить матчасть. Таких людей нужно удалять.
     
  13. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Да с отладчиком было бы горазда легче, но тогда зачем мне это нужно ?
    Я програмирую ради интереса и мне просто интересно самому переписать макросы. Прошу просто немного помощи и вашего совета.
     
  14. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    fragment
    Ну тогда вот ради интереса возьмите этот чертов отладчик в руки. Елки палки. Это последнее железное предупреждение.
     
Статус темы:
Закрыта.