Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
запуск_с_флешки [2015/02/17 14:53] root |
запуск_с_флешки [2018/08/06 22:51] (текущий) will |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | <file> | + | |
| FSC, ну логично слямздить идею у работающих проэктов. Не помню где но встречал прогу которая запускалась при наличие флэшки с файлами. Но там был не перезаписуемый флэш накопитель. Ну а вам можно просто в обычную флэш закинуть файлик и проверять дату его изменения (что бы не накопировали гору таких флэш) или спрятать на флэшке какой нибудь файлик и всё. А потом при запуске проги сканировать все корневые каталоги дисков на наличие вашего файла. | FSC, ну логично слямздить идею у работающих проэктов. Не помню где но встречал прогу которая запускалась при наличие флэшки с файлами. Но там был не перезаписуемый флэш накопитель. Ну а вам можно просто в обычную флэш закинуть файлик и проверять дату его изменения (что бы не накопировали гору таких флэш) или спрятать на флэшке какой нибудь файлик и всё. А потом при запуске проги сканировать все корневые каталоги дисков на наличие вашего файла. | ||
| Строка 5: | Строка 5: | ||
| но одна проблема встала: как мне серийный номер привязать к букве флешки? | но одна проблема встала: как мне серийный номер привязать к букве флешки? | ||
| + | <file> | ||
| Код C++ | Код C++ | ||
| - | |||
| - | 1 | ||
| - | 2 | ||
| - | 3 | ||
| - | 4 | ||
| - | 5 | ||
| - | 6 | ||
| - | 7 | ||
| - | 8 | ||
| - | 9 | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | 16 | ||
| - | 17 | ||
| - | 18 | ||
| - | 19 | ||
| - | 20 | ||
| - | 21 | ||
| - | 22 | ||
| - | 23 | ||
| - | 24 | ||
| - | 25 | ||
| - | 26 | ||
| - | 27 | ||
| - | 28 | ||
| - | 29 | ||
| - | 30 | ||
| - | 31 | ||
| - | 32 | ||
| - | 33 | ||
| - | 34 | ||
| - | 35 | ||
| - | 36 | ||
| - | 37 | ||
| - | 38 | ||
| - | 39 | ||
| - | 40 | ||
| - | 41 | ||
| - | 42 | ||
| - | 43 | ||
| - | 44 | ||
| - | 45 | ||
| - | 46 | ||
| - | 47 | ||
| - | 48 | ||
| - | 49 | ||
| - | 50 | ||
| - | 51 | ||
| - | 52 | ||
| - | 53 | ||
| - | 54 | ||
| - | 55 | ||
| - | 56 | ||
| - | 57 | ||
| - | |||
| Строка 125: | Строка 67: | ||
| //--------------------------------------------------------------------------- | //--------------------------------------------------------------------------- | ||
| + | |||
| + | </file> | ||
| программа возвращает VID, PID и серийный номер в виде USB\VID_XXXX_PID_YYYY\ZZZZ, где XXXX-VID, YYYY-PID, ZZZZ-Серийный номер (Аппаратный!!!!!! который я так долго искал) | программа возвращает VID, PID и серийный номер в виде USB\VID_XXXX_PID_YYYY\ZZZZ, где XXXX-VID, YYYY-PID, ZZZZ-Серийный номер (Аппаратный!!!!!! который я так долго искал) | ||
| Программный серийный номер можно легко достать функцией GetVolumeInformation | Программный серийный номер можно легко достать функцией GetVolumeInformation | ||
| Строка 131: | Строка 75: | ||
| + | <file> | ||
| Код C++ | Код C++ | ||
| - | |||
| - | 1 | ||
| - | 2 | ||
| - | 3 | ||
| - | 4 | ||
| - | 5 | ||
| - | 6 | ||
| - | 7 | ||
| - | 8 | ||
| - | 9 | ||
| - | 10 | ||
| - | 11 | ||
| - | 12 | ||
| - | 13 | ||
| - | 14 | ||
| - | 15 | ||
| - | 16 | ||
| - | 17 | ||
| - | 18 | ||
| - | 19 | ||
| - | 20 | ||
| - | 21 | ||
| - | 22 | ||
| - | 23 | ||
| - | 24 | ||
| - | 25 | ||
| - | 26 | ||
| - | 27 | ||
| - | 28 | ||
| - | 29 | ||
| - | 30 | ||
| - | 31 | ||
| - | 32 | ||
| - | 33 | ||
| - | 34 | ||
| - | 35 | ||
| - | 36 | ||
| - | 37 | ||
| - | 38 | ||
| - | 39 | ||
| - | 40 | ||
| - | 41 | ||
| - | 42 | ||
| - | 43 | ||
| - | 44 | ||
| - | 45 | ||
| - | 46 | ||
| - | 47 | ||
| - | 48 | ||
| - | 49 | ||
| - | 50 | ||
| - | 51 | ||
| - | 52 | ||
| - | |||
| Строка 241: | Строка 132: | ||
| } | } | ||
| + | </file> | ||
| Строка 265: | Строка 157: | ||
| DRIVE_RAMDISK - 6 : виртуальный диск, созданный в оперативной памяти | DRIVE_RAMDISK - 6 : виртуальный диск, созданный в оперативной памяти | ||
| + | |||
| + | <file> | ||
| C/C++ | C/C++ | ||
| Строка 276: | Строка 170: | ||
| lpRootPathName: PChar //путь к диску | lpRootPathName: PChar //путь к диску | ||
| ): UINT; stdcall; | ): UINT; stdcall; | ||
| + | |||
| + | </file> | ||
| Замечание: Если в качестве параметра указать для С/С++ NULL, а для Delphi - nil то тип устройства будет определяться для текущего диска (с которого была запущена программа). | Замечание: Если в качестве параметра указать для С/С++ NULL, а для Delphi - nil то тип устройства будет определяться для текущего диска (с которого была запущена программа). | ||
| Строка 282: | Строка 178: | ||
| C/C++ | C/C++ | ||
| + | |||
| + | <file> | ||
| BOOL WINAPI GetVolumeInformation( | BOOL WINAPI GetVolumeInformation( | ||
| LPCTSTR lpRootPathName, //путь к сетевому или локальному | LPCTSTR lpRootPathName, //путь к сетевому или локальному | ||
| Строка 309: | Строка 207: | ||
| nFileSystemNameSize: DWORD //размер буфера под название ФС | nFileSystemNameSize: DWORD //размер буфера под название ФС | ||
| ): BOOL; stdcall; | ): BOOL; stdcall; | ||
| + | |||
| + | |||
| + | </file> | ||
| Замечание: Если в качестве первого параметра указать для С/С++ NULL, а для Delphi - nil то функция будет выполняется для текущего диска (с которого была запущена программа). | Замечание: Если в качестве первого параметра указать для С/С++ NULL, а для Delphi - nil то функция будет выполняется для текущего диска (с которого была запущена программа). | ||
| Строка 314: | Строка 215: | ||
| Ну а теперь собственно для пущего интересу приведу пример, как привязать программу к устройству. В данном примере будем привязывать программу к флешке. Смотрим пример: | Ну а теперь собственно для пущего интересу приведу пример, как привязать программу к устройству. В данном примере будем привязывать программу к флешке. Смотрим пример: | ||
| C/C++ | C/C++ | ||
| + | |||
| + | |||
| + | <file> | ||
| #include | #include | ||
| Строка 386: | Строка 290: | ||
| readln; | readln; | ||
| end. | end. | ||
| + | |||
| + | |||
| + | </file> | ||
| Замечание: Может возникнуть вопрос, а как узнать серийник диска, чтобы знать с чем сравнивать? Очень просто, для этого пишем тестовую прогу, в которой пишем следующий код: | Замечание: Может возникнуть вопрос, а как узнать серийник диска, чтобы знать с чем сравнивать? Очень просто, для этого пишем тестовую прогу, в которой пишем следующий код: | ||
| Строка 422: | Строка 329: | ||
| - | </file> | ||
