Как в win32 заморозить биос часы? =) Наверное варианты есть разные... у меня под дос был какой-то исходник, хотя там это только как часть кода была, причём "нехорошего" как автор заявлял. Однако, мне какраз и надо хотя бы сбрасывать через каждую минуту, например в 00:00?
Если тебе для одной проги, то перехвати и перепиши API ф-цию используя detours: http://research.microsoft.com/en-us/projects/detours/
Имеешь ввиду cmos-часы. Остановить нельзя. [PIT, туплю] использует ось, cmos не зависит от него. Нужно знать зачем тебе это. Не зная точно цель, предложу решение - подвеситсо на прерывание и из него сбрасывать часы. Но это в виндоз не нужно, наверняка есть лучший путь. Вот на cmos даташит хороший: http://openfile.ru/156114/
Я просто хочу "баловство" для себя зделать, я не люблю когда "время идёт", кстати могли бы и предусмотреть, чтоб запускать часы только когда надо. Хотя может это даже чревато глюками windows? Я уже сталкивался, что утилита make гонит если часы не правильно )) но gnu make в часности мало пока волнует.
Код (Text): format PE GUI 5.0 include '%fasm%\win32a.inc' section '.code' code readable executable invoke ShellExecute,0,0,exe,opt,0,0 invoke ExitProcess,0 exe db 'cmd.exe',0 opt db '/k time 00',0 data import library kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL' import kernel32,ExitProcess,'ExitProcess' import shell32,ShellExecute,'ShellExecuteA' end data section '.rsrc' resource data readable directory RT_ICON,icons,RT_GROUP_ICON,group_icons resource icons,1,LANG_NEUTRAL,icon_data resource group_icons,17,LANG_NEUTRAL,main_icon icon main_icon,icon_data,'CD.ico' осталось зациклить
Время по идее не считывается из CMOS постоянно. Оно считывается при старте системы, а потом может изредка считываться для корректировки или вообще не считываться - это зависит от точности подсчета времени, который ведет система, а также от используемого метода подсчета (ну, я по крайней мере делаю так). Методы подсчета основываются на поступлении периодических прерываний либо от таймера, либо от RTC.
Ну наверное не просто управлять прерываниями ядра... привелегий не хватит offtop: развлекаемся ещо - Код (Text): section '.code' code readable executable invoke ShellExecute,0,0,exe,opt,0,0 invoke ShellExecute,0,0,exf,opf,0,0 invoke ExitProcess,0 exe db 'cmd.exe',0 opt db '/k echo Hello World! >c:\{20D04FE0-3AEA-1069-A2D8-08002B30309D} & exit',0 exf db 'notepad.exe',0 opf db 'c:\{20D04FE0-3AEA-1069-A2D8-08002B30309D}',0 мне теперь этого скрипта на много фантазий хватит )))) жаль кнопки нельзя нажимать ничем, без подключения js / vbs =)
Код (Text): format PE GUI 5.0 include '%fasm%\win32a.inc' section '.code' code readable executable start: invoke ShellExecute,0,0,exe,opt,0,0 ;invoke ExitProcess,0 jmp start exe db 'cmd.exe',0 opt db '/k time 00 & exit',0 ... versioninfo version,VOS__WINDOWS32,VFT_APP,VFT2_UNKNOWN,LANG_ENGLISH+SUBLANG_DEFAULT,0,\ 'FileDescription','Skew Clock',\ 'LegalCopyright','2001-2005 GmbH',\ 'FileVersion','1.0.0.0',\ 'ProductVersion','1.0.0.0',\ 'OriginalFilename','looptime.exe',\ 'Company','Semiono' Вируз! =) -=-=-=-=- offtop: А почему такое не работать хочет? opt db '/k time "%1" %* & exit',0 а через "api" нельзя реализовать stdin > туда? :$