У меня есть задание, и у него (среди прочего) два требования:
- сделать установщик
- сделайте так, чтобы если он был установлен на одном компьютере, любой, кто попытается запустить те же файлы на другом компьютере, потерпит неудачу.
Я использую VS9 (2008) express, я думаю, что могу выполнить часть установки, но я не уверен, как сделать часть «безопасности». Мне не нужны какие-либо сложные меры безопасности, просто глупое условие, которое не позволит большинству пользователей скопировать файлы на другой компьютер. (Как проверка MAC-адреса).
РЕДАКТИРОВАТЬ:
Я хочу проверить MAC-адрес, но хочу, чтобы программа была завершена во время установки. Это означает, что после установки я не могу перенести программу на другую машину. Это также не обязательно должно быть очень умным или сложным состоянием, просто минимум. Я просто не знаю, как это сделать в установке.
РЕДАКТИРОВАТЬ:
Печально, что у меня нет полной версии VS, тогда я смогу сделать это легко.
Как настроить два монитора в Windows 10
Nefzen 1 Июл 2009 в 19:55
9 ответов
Лучший ответ
Если вы ищете способ пометить первый компьютер как «авторизованный», тогда вам понадобится какая-то внешняя служба, у которой вы можете запросить разрешение на запуск.
Первому, кто попросит разрешения, будет разрешено, остальным — воспрепятствовать.
Вам также необходимо придумать способ идентификации конкретного экземпляра вашего приложения, который отличается для каждой установки.
Если ваше приложение должно быть авторизовано для машины, вам нужно будет вычислить некоторый отпечаток пальца для машины, которую он может использовать каждый раз (например, при установке).
[Изменить] Этот подход полезен, когда вы беспокоитесь о распространении копий установщика. Вы указали, что его можно установить на нескольких машинах, поэтому в этом случае Подход MasterMind превосходит другие. Он будет работать и не требует стороннего сервера
[Изменить 2] Если вы ищете информацию о том, как создать собственный установщик, попробуйте здесь
Community 23 Май 2017 в 15:24
Прежде всего, придумайте какую-нибудь функцию для генерации уникальной подписи ПК, как это делает Windows для активации.
Ваш установщик создаст эту подпись и запишет ее в локальный файл (лучше зашифрованный). Вы можете создать простой исполняемый файл консоли для создания этого файла и включить этот исполняемый файл в пакет установщика, настроив его на автоматический запуск после успешной установки.
Ваша программа при запуске будет снова создавать подпись, используя тот же алгоритм, и сравнивать ее с подписью, созданной во время установки. Если новая подпись отличается от исходной или файл подписи отсутствует, выйдите, не загружая пользовательский интерфейс.
ДОБАВЛЕНО: если вам это не нужно, вы можете просто выбрать несколько уникальных значений, таких как предложенный вами MAC-адрес, возможно, серийный номер жесткого диска, серийный номер материнской платы, объединить их в одну строку и сгенерировать хэш из Это.
Как настроить несколько дисплеев в Windows 7/8/10
Такой подход позволит запускать неограниченное количество копий (но каждая установка будет работать только на одном компьютере, на котором она была установлена). Если вы будете придерживаться идентификации по оборудованию (или ключу продукта ОС), то приложение может работать на разных установках ОС на одном компьютере.
Однако эта стратегия подразумевает, что вы контролируете все установки (или выполняете их самостоятельно) или полностью доверяете своему клиенту не устанавливать дополнительные копии где-либо еще или распространять ваш установщик. Если вам также нужна такая защита, вам следует подумать об активации продукта. Это может быть довольно сложно, если вы сделаете это самостоятельно. Однако есть сторонние продукты, которые могут вам помочь. Некоторые предлагают услуги активации продукта: Google: служба активации
User 1 Июл 2009 в 20:55
Если у вас есть приличный отпечаток пальца, все остальное легко. Лично я бы взял что-то вроде MAC-адреса и идентификатора продукта Windows (в HKLM Software Microsoft Windows CurrentVersion ProductId) и использовал алгоритм хеширования, чтобы получить что-то достаточно непонятное.
Вот вопрос, который показывает, как получить свой MAC-адрес в виде строки: Чтение MAC-адреса с сетевого адаптера в .NET
Затем возьмите свой идентификатор продукта Windows (в случае, если у них нет сетевого адаптера) из указанного выше раздела реестра. Объедините обе строки и выполните GetHashCode () (или используйте свой любимый алгоритм хеширования) для результата. Это простой способ получить UID для компьютера.
Запишите хэш в файл или в запись реестра во время выполнения программы установки и проверьте его при запуске программы.
Community 23 Май 2017 в 15:24
Рассмотрите возможность использования двух или более значений, которые потенциально могут идентифицировать машину, например
- Код продукта Windows
- Серийный номер тома диска C:
- MAC-адрес интерфейса Ethernet
И если только одно из этих изменений, но другие совпадают, обновите это одно значение в реестре и продолжайте работать в обычном режиме. Жесткие диски заменяются (регулярно), Windows обновляется (иногда), адаптеры Ethernet заменяются (редко, но это случается). Когда старое программное обеспечение перестает работать из-за этого, может быть очень неприятно.
finnw 1 Июл 2009 в 20:10
Минимальный ответ, предполагая, что единственное требование здесь — это программное обеспечение должно работать, если оно установлено с помощью установщика, и не будет запускаться при копировании на другой компьютер:
Напишите простой ключ в реестр. Скорее всего, это номер версии вашего продукта, если они скопируют на компьютер более новую версию, у него будет другой номер, который нужно проверить.
В вашем программном обеспечении просто убедитесь, что это значение реестра существует.
Для установки пакетов мне нравится использовать NSIS, который имеет простые методы записи в реестр.
Will Eddins 1 Июл 2009 в 20:23
Мне нравится идея проверить MAC-адрес.
Я также видел комбинации ключа продукта / онлайн-активации, когда вы вводите ключ продукта, и программное обеспечение связывается с веб-службой, которая регистрирует ключ продукта и количество установок.
Andy Webb 1 Июл 2009 в 20:00
Это не самый безопасный вариант или что-то в этом роде, но вы сказали, что это не обязательно должно быть умным .
При установке вы можете установить программную переменную как имя компьютера (или его хеш, если хотите).
myProgram.Properties.Settings.Default.Machine = System.Environment.MachineName; myProgram.Properties.Settings.Default.Save();
Затем проверьте это при запуске:
if (System.Environment.MachineName != myProgram.Properties.Settings.Default.Machine)
Steven Evers 1 Июл 2009 в 20:12
Чтобы программа установки работала только на одной машине, вам в значительной степени придется собрать ее для целевой машины. Я не думаю, что можно было бы сделать установщик, который предполагает, что первая машина, которую он увидит, — это мама и прикреплена на всю жизнь.
Neil N 1 Июл 2009 в 21:36
-1 за приверженность устаревшей политике ограничения лицензий, что в целом является плохой практикой. Аппаратные ключи и «обнаружение устройств» — это SO 1990.
Люди владеют более чем одним компьютером. Они покупают новые компьютеры. Они обновляют свои компьютеры. Компьютеры ломаются, что приводит к замене материнских плат или сетевых карт.
Все это, с учетом вашего дизайна, приведет к тому, что честные платящие клиенты будут заблокированы от того, за что они заплатили, и им придется звонить вам для поддержки, чтобы «сбросить» их активацию.
И каждый раз, когда вы это делаете, накладные расходы будут увеличиваться, скорее всего, больше, чем фактическая стоимость лицензии.
Я не предлагаю вам сдаться и просто отправить свое приложение на торрент-вселенную, но вам следует подумать более творчески о том, как дать клиентам свободу использовать то, за что они заплатили, снизить ваши расходы на поддержку , и отпугнуть пиратов.
Одним из творческих решений было бы кэшировать настройки пользователя на вашем сервере , привязанные к их серийному номеру, и синхронизировать их каждый раз, когда приложение запускается и подключается к сети.
Это позволит пользователю установить приложение, скажем, как на ноутбук, так и на настольный компьютер, и на самом деле будет дополнительным преимуществом для клиентов, поскольку их настройки синхронизируются между устройствами.
Но он активно отговаривает пользователей делиться своим лицензионным ключом, поскольку это будет означать, что они будут делиться своими настройками с каждым пиратским пользователем или что им придется не забывать оставаться отключенными от Интернета, когда они открывают или закрывают приложение.
Источник: question-it.com
Как сделать, чтобы программа базы данных работала только на одном компьютере?
Всем привет, подскажите, как сделать, чтобы программа базы данных работала только на одном компьютере?
Не имею представление как это сделать
26.03.2009, 14:30
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,718
Вы сказали Спасибо: 4
Поблагодарили 277 раз(а) в 263 сообщениях
Репутация: 52347
Всем привет, подскажите, как сделать, чтобы программа базы данных работала только на одном компьютере?
Не имею представление как это сделать
Несколько подробнее, т.к. непонятно что вы хотите.
Сделать сетевую БД на одном компе?
Защититить БД от копирования?
Или что-то другое?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
26.03.2009, 14:39
Регистрация: 11.10.2008
Сообщения: 88
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
да я хочу чтобы программка работала только на моем компьютере, даже если ее у меня кто скопирует то он не должна работать у другиих , а вот кикие способы Вы посоветуете и как по проще это организовать?
26.03.2009, 17:39
Регистрация: 30.10.2008
Адрес: Улан-Удэ
Сообщения: 81
Вы сказали Спасибо: 0
Поблагодарили 2 раз в 1 сообщении
Репутация: 10
В Интернете видел исходник для выяснения IP-адреса компьютера. Можно реализовать через это.
Узнаев свой IP-адрес компьютера, включаете этот сурс в код программы. После идет сравнение с IP-адресом, если несовпадает, то выход.
Вообщем узнать IP можно так WinSock в Uses
После сравниваете уже с известным вам IP.
Вообщем должно работать Я с помощью IP делал привязанность программы к одному компьютеру (делал что-то вроде «регистрационного ключа»).
Источник: delphisources.ru
Как сделать так, чтобы программа открывалась на определенном мониторе в Windows 10
Если при открытии приложения или программы Windows 10 они открываются на другом или неправильном мониторе в настройке с несколькими мониторами, этот пост поможет вам решить проблему. Вы можете использовать одно и то же руководство, чтобы заставить программу открываться на определенном мониторе, если у вас два или более мониторов.
Сделать программу открытой на определенном мониторе в Windows 10
Чтобы Windows 10 не открывала приложения на неправильном мониторе и заставляла их открываться на определенном мониторе в Windows 10 при установке нескольких мониторов, следуйте этим советам:
- Переместите приложения на нужный монитор
- Используйте метод изменения размера
- Установить основной дисплей
Windows 10 открывает приложения не на том мониторе
1]Переместите приложения на нужный монитор
Вероятно, это самый простой способ заставить приложение открываться на определенном мониторе. Независимо от того, есть ли у вас два / три или любое количество мониторов, вы можете виртуально установить дисплей по умолчанию для любого приложения. Это может быть сторонняя программа или встроенное приложение.
Для этого сначала откройте приложение на своем компьютере. Затем перетащите или переместите его на нужный монитор, на котором вы хотите его открыть. После этого закройте приложение, нажав кнопку Закрывать или кнопку красного креста.
После этого он будет все время открываться на последнем открытом мониторе. Однако, если это не сработает, лучше попробовать второй способ.
2]Используйте метод изменения размера
Иногда ваш компьютер не может обнаружить перемещение (очень необычный случай) между мониторами. Если это произойдет, приложения будут все время открываться на одном мониторе.
Чтобы избавиться от этой проблемы, откройте приложение на своем компьютере и измените размер окна. Убедитесь, что он никоим образом не развернут или не свернут.
После этого переместите окно на другой монитор, на котором вы хотите открыть.
Теперь закройте окно приложения, не изменяя его размер и не увеличивая его снова. После этого вы без проблем сможете открыть программу на желаемом мониторе.
Иногда программа определяет, можно ли открыть ее на основном или дополнительном мониторе. Если вы думаете, что приложение всегда открывается на правом мониторе, а не на левом (например), и вы хотите, чтобы все было по-другому, вы должны установить правильный монитор в качестве основного дисплея.
Читать: Как переместить меню «Пуск» на второй монитор.
3]Настройте основной дисплей
Нажмите Win + I, чтобы открыть настройки Windows на вашем компьютере. После этого перейдите к Система> Дисплей. Нажать на Идентифицировать кнопку, чтобы найти номер дисплея.
После выбора отметьте Сделайте это моим основным дисплеем кнопка.
В следующий раз приложения будут открываться на основном дисплее.
Это предложение работает только в том случае, если программа настроена на открытие на основном дисплее.
КОНЧИК: WinKey + Shift + влево / вправо переместит открытое окно на другой монитор в том же относительном положении.
Источник: zanz.ru