timer loop?

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 19 дек 2008.

  1. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Как в win32 заморозить биос часы? =)
    Наверное варианты есть разные... у меня под дос был какой-то исходник, хотя там это только как часть кода была, причём "нехорошего" как автор заявлял.
    Однако, мне какраз и надо хотя бы сбрасывать через каждую минуту, например в 00:00?
     
  2. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    Если тебе для одной проги, то перехвати и перепиши API ф-цию используя detours:
    http://research.microsoft.com/en-us/projects/detours/
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Имеешь ввиду cmos-часы. Остановить нельзя. [PIT, туплю] использует ось, cmos не зависит от него. Нужно знать зачем тебе это. Не зная точно цель, предложу решение - подвеситсо на прерывание и из него сбрасывать часы. Но это в виндоз не нужно, наверняка есть лучший путь. Вот на cmos даташит хороший: http://openfile.ru/156114/
     
  4. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Я просто хочу "баловство" для себя зделать, я не люблю когда "время идёт", кстати могли бы и предусмотреть, чтоб запускать часы только когда надо.
    Хотя может это даже чревато глюками windows? Я уже сталкивался, что утилита make гонит если
    часы не правильно )) но gnu make в часности мало пока волнует.
     
  5. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Код (Text):
    1. format PE GUI 5.0
    2. include '%fasm%\win32a.inc'
    3.  
    4. section '.code' code readable executable
    5.  
    6. invoke ShellExecute,0,0,exe,opt,0,0
    7. invoke  ExitProcess,0
    8.  
    9. exe db 'cmd.exe',0
    10. opt db '/k time 00',0
    11.  
    12. data import
    13.  
    14. library kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL'
    15. import kernel32,ExitProcess,'ExitProcess'
    16. import shell32,ShellExecute,'ShellExecuteA'
    17.  
    18. end data
    19.  
    20. section '.rsrc' resource data readable
    21.  
    22. directory RT_ICON,icons,RT_GROUP_ICON,group_icons
    23. resource icons,1,LANG_NEUTRAL,icon_data
    24. resource group_icons,17,LANG_NEUTRAL,main_icon
    25.  
    26. icon main_icon,icon_data,'CD.ico'
    осталось зациклить :)
     
  6. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Время по идее не считывается из CMOS постоянно. Оно считывается при старте системы, а потом может изредка считываться для корректировки или вообще не считываться - это зависит от точности подсчета времени, который ведет система, а также от используемого метода подсчета (ну, я по крайней мере делаю так). Методы подсчета основываются на поступлении периодических прерываний либо от таймера, либо от RTC.
     
  7. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Ну наверное не просто управлять прерываниями ядра... привелегий не хватит :)

    offtop: развлекаемся ещо -
    Код (Text):
    1. section '.code' code readable executable
    2.  
    3. invoke ShellExecute,0,0,exe,opt,0,0
    4. invoke ShellExecute,0,0,exf,opf,0,0
    5. invoke  ExitProcess,0
    6.  
    7. exe db 'cmd.exe',0
    8. opt db '/k echo Hello World! >c:\{20D04FE0-3AEA-1069-A2D8-08002B30309D} & exit',0
    9.  
    10. exf db 'notepad.exe',0
    11. opf db 'c:\{20D04FE0-3AEA-1069-A2D8-08002B30309D}',0
    мне теперь этого скрипта на много фантазий хватит ))))
    жаль кнопки нельзя нажимать ничем, без подключения js / vbs =)
     
  8. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Код (Text):
    1. format PE GUI 5.0
    2. include '%fasm%\win32a.inc'
    3.  
    4. section '.code' code readable executable
    5.  
    6. start:
    7.  
    8. invoke ShellExecute,0,0,exe,opt,0,0
    9. ;invoke  ExitProcess,0
    10. jmp start
    11.  
    12. exe db 'cmd.exe',0
    13. opt db '/k time 00 & exit',0
    14. ...
    15. versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,LANG_ENGLISH+SUBLANG_DEFAULT,0,\
    16.               'FileDescription','Skew Clock',\
    17.               'LegalCopyright','2001-2005 GmbH',\
    18.               'FileVersion','1.0.0.0',\
    19.               'ProductVersion','1.0.0.0',\
    20.               'OriginalFilename','looptime.exe',\
    21.               'Company','Semiono'
    Вируз! =)

    -=-=-=-=- offtop:
    А почему такое не работать хочет?
    opt db '/k time "%1" %* & exit',0

    а через "api" нельзя реализовать stdin > туда? :$