Выключить монитор

Тема в разделе "WASM.BEGINNERS", создана пользователем ostapas, 4 янв 2011.

  1. ostapas

    ostapas New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2010
    Сообщения:
    4
    Привет всем,
    сам монитор прекрасно выключается с помощю API SendMessage(ValidHWND, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_STATE), но никто неподскажет, как это сделать так, чтоб при активности мыши/клавиатуры он не включился обратно? Кажется, мелкая проблема, но никак немогу решать. Спасибо.
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    ostapas
    это нужно только для подлянок ) займись чем нить полезным
     
  3. ostapas

    ostapas New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2010
    Сообщения:
    4
    Спс за мнение
     
  4. Clyde

    Clyde New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    154
    мб просто делать SendMessage в цикле?
    PS Согласен, что применять можно только во вредоносных целях
     
  5. ostapas

    ostapas New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2010
    Сообщения:
    4
    Да, пробовал в цикле, с разными интервалами, но все таки монитор мерцает как светофор.

    P.S. Цели не совсем мирные, но вроде на форуме разрешается обсуждать такое? Или надо было создать топик в разделе Virology?
     
  6. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    вирологи :)
     
  7. bug1z

    bug1z New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2008
    Сообщения:
    228
    Отловите движение мыши, и нажатие клавиш. И в том случае если координаты мыши изменились, или нажата какая то клавиша снова вызывайте SendMessage().
     
  8. pr0mix

    pr0mix New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    107
    Может попробовать поставить глобальные хуки на мышь, клаву. И/или если координаты изменились, то снова выдавать SC_MONITORPOWER.
    В самом просто варианте можно сделать BlockInput. Для мыши возможно поможет
     
  9. ostapas

    ostapas New Member

    Публикаций:
    0
    Регистрация:
    1 сен 2010
    Сообщения:
    4
    Благодарю за ответы! С наблюдением координат мыши все таки получается тоже самое, что и с циклом - монитор мерцает. BlockInput помогает, но по некоторым причинам мне и самому нужна рабочая мышь.. Тоже пробовал отключить вот это http://img189.imageshack.us/img189/7008/46304316.png , никак.. Может у кого есть еще идеи?
     
  10. kernel16

    kernel16 Human Vl

    Публикаций:
    0
    Регистрация:
    29 окт 2010
    Сообщения:
    316
    А может просто вывесить полно экранное окошко чёренкое и отслеживать потерю фокуса на окно, и снова давать его окну, или ещё прибивать новые окошка, на которые попадёт фокус активности.
     
  11. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    чёрное окно и выключенный моник это совсем разные вещи - разница между ними заметна так же как разница между ботинком и утюгом
     
  12. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    ostapas
    Да написать свой скринсейвер, с выходом по комбинации клавиш.
    Исходник могу сбросить.
     
  13. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    скринсейвер (пусть даже и в виде чёрного окна) = включенный монитор. Включенный монитор != выключенный монитор. снова бред. вы про подсветку же забываете господа!
     
  14. kernel16

    kernel16 Human Vl

    Публикаций:
    0
    Регистрация:
    29 окт 2010
    Сообщения:
    316
    Тогда может драйвер. Он отрубит драйвер видеокарты и сам "Влезит" на его место и отрубит монитор, в то же время будет отвечать на запросы Windows (как бы) (хотя не знаю что насчёт акселератора и 3d). А когда нужно, восстановит на место драйвер видеокарты.
     
  15. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.738
    блокируй мышь и клаву а затем гаси монитор.
     
  16. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    ostapas
    Перевод в текстовый режим - как вариант.
    И выход по комбинации клавиш.
    Ну с этим и смириться можно )
     
  17. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    Вот написал. На висте и хр работает, исходники приложу позже. Пока потестируй :). Единичку в конце сотри это для того что бы фаил отправить, а то exe не отправляются
     
  18. kernel16

    kernel16 Human Vl

    Публикаций:
    0
    Регистрация:
    29 окт 2010
    Сообщения:
    316
    А в чём смысл? Монитор не гаснет WinXP 3 sp
     
  19. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    kernel16
    А запускаете с правами администратора? Видеокарта должна поддерживать режим DPMS VESA
     
  20. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    вобщем вот исходники MASM32: драйвер
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap:none
    4. include ntstatus.inc
    5. include ntddk.inc
    6. include hal.inc
    7. includelib hal.lib
    8. registrstruc struc
    9.      Eaxr dd 4F10h
    10.      Ecxr dd ?
    11.      Edxr dd ?
    12.      Ebxr dd 0401h
    13.      Ebpr dd ?
    14.      Esir dd ?
    15.      Edir dd ?
    16.      SegDs dw ?
    17.      SegEs dw ?
    18. registrstruc ends
    19. .data
    20. realreg registrstruc<>
    21. .code
    22.  
    23. DriverEntry proc pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING
    24.     invoke x86BiosCall, 10h,addr realreg
    25.     ret
    26. DriverEntry endp
    27. end DriverEntry
    и FASM:установщик драйвера
    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3. include 'c:\fasm\include\win32ax.inc'
    4. include 'C:\Users\Павел\Documents\fasmw16924\INCLUDE\MACRO\if.inc'
    5.  
    6. define SC_MANAGER_ALL_ACCESS       0xF003F
    7. define SC_MANAGER_CREATE_SERVICE   0x0002
    8. define SERVICE_ERROR_IGNORE    00000000h
    9. define SERVICE_AUTO_START      00000002h
    10. define SERVICE_KERNEL_DRIVER       0x00000001
    11. define SERVICE_ALL_ACCESS      000F01FFh
    12. section '.data' data readable writeable
    13. lpBinaryPathName db 'C:\Windows\System32\drivers\new.sys', 0
    14. comen db 'драйвер видео',0
    15. serviss db 'сервис успешно запущен',0
    16. regiss db 'video',0
    17. hSCManager dd ?
    18. hService dd ?
    19. no_reg db 'Сервес не запущен',0
    20. no_men db 'Не удалось открыть менеджер сервисов',0
    21. oshbka dd ?
    22. hFout dd ?
    23. n dd ?
    24. section '.code' code readable executable
    25. start:
    26.  
    27.     invoke CreateFile,lpBinaryPathName,GENERIC_WRITE,NULL,NULL,\
    28.            CREATE_ALWAYS,FILE_ATTRIBUTE_SYSTEM,NULL
    29.       mov [hFout],eax
    30.     invoke WriteFile,[hFout],LoadMeHere,864,n,NULL
    31.     invoke CloseHandle,[hFout]
    32.     invoke OpenSCManager, NULL, NULL,SC_MANAGER_ALL_ACCESS
    33.     .if eax <> NULL
    34.     mov [hSCManager], eax
    35.     invoke CreateService, [hSCManager], regiss , comen,\
    36.            SERVICE_ALL_ACCESS,  SERVICE_KERNEL_DRIVER, SERVICE_AUTO_START,\
    37.            SERVICE_ERROR_IGNORE,lpBinaryPathName, NULL, NULL, NULL, NULL, NULL
    38.     .if eax <> NULL
    39.         mov [hService], eax
    40.         invoke StartService, [hService], 0, NULL
    41.         invoke MessageBox, NULL,serviss, NULL, MB_ICONSTOP
    42.         invoke DeleteService, [hService]
    43.         invoke CloseServiceHandle,[hService]
    44.     .else
    45.         invoke MessageBox, NULL,no_reg,oshbka, MB_ICONSTOP
    46.     .endif
    47.     invoke CloseServiceHandle, [hSCManager]
    48.     .else
    49.     invoke MessageBox, NULL,no_men,NULL,MB_ICONSTOP
    50.     .endif
    51.     invoke ExitProcess, 0
    52.    LoadMeHere:
    53. file  'E:\Prog\драйвер\newdrive\new.sys'
    54.  section '.idata' import data readable writeable
    55.   library kernel32,'kernel32.dll',\
    56.       user32,'user32.dll',\
    57.       gdi32,'gdi32.dll',\
    58.       advapi32,'advapi32.dll'
    59.   include 'C:\Users\Павел\Documents\fasmw16924\INCLUDE\API\kernel32.inc'
    60.   include 'C:\Users\Павел\Documents\fasmw16924\INCLUDE\API\user32.inc'
    61.   include 'C:\Users\Павел\Documents\fasmw16924\INCLUDE\API\gdi32.inc'
    62.   include 'C:\Users\Павел\Documents\fasmw16924\INCLUDE\API\advapi32.inc'
    писал впопыхах так что не обессутьте