Запретить юзеру изменение системной даты

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

14 апр 2008, 23:25

BBB писал(а):Во, блин! Оказывается, EXE-шники и с таким расширениями бывают! :lol:

UPD. Хотя не все так просто оказалось. Переименовал timedate.cpl в timedate.cpl.exe, кликаю по нему, а он мне говоит, что "timedate.сpl.EXE не является приложением Win32".


Вы бы еще DLL запустить попробовали :) .
Ни что так не ограничивает фантазию программиста, как компилятор...
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

15 апр 2008, 09:47

CPL файлы по сути и есть DLL-ки, но у них всего одна экспортируемая функция, называемая CPLApplet. Если есть желание, можно написать свои CPL-ки заместо стандартных виндовых.
It's a long way to the top if you wanna rock'n'roll
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

15 апр 2008, 11:22

Serge_Bliznykov писал(а):BBB, а с чего вы решили, что это EXE-шник?! ;-))
ПОтому что a) внутри нее написано "MZР This program cannot be run in DOS mode." b) если кликнуть на файле timedate.cpl, то оно запускается
MOTOCoder писал(а):Вы бы еще DLL запустить попробовали :) .
Если кликнуть на файле timedate.cpl, то оно запускается. А если кликнуть на файле *.DLL - то нет.
somewhere писал(а):CPL файлы по сути и есть DLL-ки, но у них всего одна экспортируемая функция, называемая CPLApplet.
А каков ее формат? (набор и типы параметров, тип возвращаемого результата)
Если есть желание, можно написать свои CPL-ки заместо стандартных виндовых.
А что, интереснон направлеие для творчества. Тогда VictorM может и в самом деле сделать подмену, и когда зловредный юзер, предвкушая подмену даты, кликнет на часики в систрее, вдруг выскочит окошко с сообщением "Сколько раз можно повторять! Здесь рыбы нет!" ((c) "Ералаш")
:lol:
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

15 апр 2008, 13:39

&quot писал(а):А каков ее формат? (набор и типы параметров, тип возвращаемого результата)
Ну, типа, как в SendMessage

Код: Выделить всё

function CPlApplet(hWndCPL: hWnd; Message: Integer; lParam1: DWord;  lParam2: DWord): Dword
Эту функцию зовет ОС, в парам. Message говорит что ей надо, а param1 и param2 - используются как параметры к конкретной команде. Команды посылаются CPL_INIT - сообщение, которым CPlApplet вызывается первый раз, т.н. инициализация. Возвращать надо TRUE для продолжения процесса загрузки, CPL_GETCOUNT,СPL_INQUIRE, CPL_SELECT, CPL_DBLCLK ну и т.д. Все мессаги анализирует код и выполняет требуемые действие - например показывает часики, когда ему приходит CPL_DBLCLK. Там команд штук 10 - все простые до безобразия.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

15 апр 2008, 14:18

BBB,
Тогда VictorM может и в самом деле сделать подмену, и когда зловредный юзер, предвкушая подмену даты, кликнет на часики в систрее, вдруг выскочит окошко с сообщением "Сколько раз можно повторять! Здесь рыбы нет!" ((c) "Ералаш")
эх, умел бы я эти CPL-ки писать, обязательно бы такое сделал :) ;)
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

15 апр 2008, 14:27

somewhere, Спасибо.
Сунулся сейчас в MSDN, есть там описание этой CPlApplet. Весьма внушительное [s](и все на английком... ссобака такая... :) )[/s]

VictorM, так вон, somewhere, пишет, что несложно это. Тем более, если вся задача программки будет сводиться к выводу сообщения "Не пущу". А никаких часиков и прочего функционала рисовать не нужно.

Интуитивно предполагаю, что достаточно будет лишь обрабатывать CPL_DBLCLK, выводя ругательный MessageBox, а остальные сообщения игнорировать (ну, в смысле, без каких-либо действий сразу делать return).

Если я прав в своем предположении, то вся программа будет состоять из одной проэкспортированной ф-ии, тело которой будет состоять из одного switch-a (или даже достаточно будет if ... else...), и единственного MessageBox (...).
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

15 апр 2008, 14:57

BBB,
VictorM, так вон, somewhere, пишет, что несложно это
а если я этим никогда не занимался...
Чем хоть его открыть посмотреть "а что тут у вас внутри".?
Блокнот не берет, Notepad++ тоже. Только в самом конце можно увидеть нормальный текст :confused:
Soppy, конечно, я в этом полный дуб :(
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

15 апр 2008, 15:57

Нормальный тескт для обычного человека там все-равно не увидеть. Лично я смотрю обычно Lister'ом который входит в состав Total Commander. Сам тотал - удобная штука, а с этим плагином ваще конфетка. Листер кроме ехе-шников смотрит доки, граф. файлы, веб-странички и любые мультемедийные.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
VictorM
Сообщения: 787
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

15 апр 2008, 16:02

somewhere,
Лично я смотрю обычно Lister'ом который входит в состав Total Commander.
так, на домашнем компе у меня этот плагин стоит. Спасибо. Посмотрим.

p.s.
Нормальный тескт для обычного человека там все-равно не увидеть
да уж :confused:
окрыл я его Lister-ом, конечно, увидеть можно больше, но кроме текстов всевозможных сообщений и путей больше ничего не понял. :(
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Zercv
Сообщения: 1
Зарегистрирован: 06 сен 2008, 09:07

06 сен 2008, 09:09

Код: Выделить всё

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoControlPanel"=dword:00000001

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000001
У себя на работе сделал так ) Еще выставил пароль на БИОС
(Отключил Панель Управление, Отключил cmd)
Ответить