Сделать CD за один раз
Мы проводим мероприятие "Удивительная гонка" и думаем, что было бы здорово иметь компакт-диски, которые могли бы играть только один раз... как "это сообщение саморазрушится за 5 секунд..."
Любые мысли о том, как это сделать? Я думал, что это может быть скомпилированный HTML-сайт, который будет писать cookie и играть только один раз. Я не хочу писать в реестр (не хочу зависеть от окон, не хочу ничего устанавливать и т.д.).
Мне также все равно, если он взломан... Это одноразовое забавное событие, и мне не очень-то нужно, чтобы люди могли удалить cookie или что-то в этом роде.
Любые другие идеи?
Ответы
Ответ 1
Если содержимое HTML и выполняется внутри обычного окна браузера, cookie может работать, но есть оговорки:
- Пользователь запускает компакт-диск один раз, когда IE является браузером по умолчанию. Пользователь запускается позднее, когда Firefox является браузером по умолчанию, поэтому cookie не может быть проверен.
- Параметры безопасности браузера могут быть заблокированы, чтобы предотвратить использование script, поэтому cookie не может быть установлен (больше проблемы с IE).
Альтернативой может быть эквивалент Flash для файлов cookie, но если script был заблокирован, то это может быть верно для Flash.
Ответ 2
Если вы использовали Flash для создания контента, вы могли бы использовать программу-оболочку, такую как Zinc для создания кросс-платформенных исполняемых файлов содержание.
Затем Flash может использовать свою версию файлов cookie (локальные общие объекты), чтобы определить, когда содержимое было отображено, - напишите на LSO в первый раз и после этого прочитайте его.
Ответ 3
Я бы сказал, зашифровать (часть) содержимое диска с помощью уникальной одноразовой прокладки, которую вы запрашиваете с сервера, который читает напрямую, за которым следует удаление ключа дешифрования. Вы можете написать идентификатор на каждом диске, чтобы вы могли использовать несколько дисков, каждый с уникальным ключом.
Для этого требуется доступ к сети и некоторые инструменты шифрования, но очень простая реализация сделает то, что вы хотите, что это возможно, и это будет "нерушимым", если только один временной блок не будет захвачен и сохранен.
Если просто для удовольствия, это должно быть достаточно безопасным.
Ответ 4
Вы можете создать изменчивую запись реестра. Он будет существовать только до перезапуска компьютера. Это решение очень "взломанно", но оно простое и может быть достаточно для того, что вы хотите сделать.
Посмотрите на REG_OPTION_VOLATILE .
Ответ 5
Будут ли на компьютерах, на которых это выполняется, иметь доступ в Интернет? Вы можете легко загрузить удаленный url (выполнить 'start http://yoururl.com' из autorun.inf), сохранить файл cookie и предотвратить его загружается снова, если файл cookie существует.
Ответ 6
Если бы это разрешило быть взломанным, я бы просто пошел с простым решением HTML + JavaScript, требуя (скажем) GUID для ввода, с некоторой глупой запутанностью в коде для проверки GUID.
То, что я подразумеваю под глупой проверенной проверкой, - это что-то вроде объединения большого массива GUID ROT13'a, а затем добавления кода, чтобы принимать только Math.floor(PI * E + 32/(new DateTime()).getYear())
'-й GUID в массиве, а ROT13 - снова с использованием достаточно раскованного/нечеткого кода, затем проверьте ввод пользователя на результат. Делайте все это в одной строке для ударов или генерируйте GUID в некотором псевдослучайном порядке с использованием известного семени... вы получаете идею:).
Единственная ошибка может быть, если IE не разрешает локальный JavaScript? Хм, похоже, им нужно иметь дело с InfoBar: (.
Ответ 7
Вы также можете установить раздел реестра, который предотвратит воспроизведение, хотя это можно обойти.
Ответ 8
Я думаю, что лучше всего использовать для этого перезаписываемые носители. Вы можете легко создать приложение, например, на веб-сайте HTML или что-то в этом роде, и после последней ссылки или последней страницы, однако вы решите сделать это, вы можете выполнить script с помощью какой-либо командной строки, которая удалит перезаписываемый носитель или даже напишите ISO, который вы храните на компакт-диске с текстовым файлом или вспышкой, которая объясняет, что компакт-диск потерян навсегда.
Посмотрите на некоторые горелки командной строки. У Linux есть несколько, что не стоит здесь упоминать, для Windows вы можете использовать Cheetah CommandLine Burner среди нескольких других.
Если вы хотите сделать компакт-диск, в зависимости от установленной ОС, вы должны посмотреть LIVE CD. FreeDOS - это выбор для "совместимых с DOS приложений", или я предлагаю вам использовать Linux live CD.
Также у вас будет несколько вариантов для небольших HTTP-серверов, таких как lighthttpd и даже браузеры в нескольких вариантах от текстовых интерфейсов до графических.
Удачи в гонке: D. Отличная идея BTW!
Ответ 9
Сделайте приложение Java Swing. Это не потребует Интернета и работает на Mac, Windows и Linux. Вы можете записать в файловую систему для блокировки. System.getProperty( "user.home" ) дает вам домашний эквивалент для платформы. Возможно, вам придется включить jre на свой компакт-диск.
Ответ 10
Не совсем то, что вы ищете, но вы можете использовать перезаписываемые носители и иметь исполняемый файл over-write (или его часть).
Я не знаю, мог ли CD-RW делать это автоматически, или если вам придется искать дешевые USB-накопители.