![]() |
|
Модераторы: Akina |
![]()
|
|
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
Проверить наличие файла.
If Dir("Files/Base.mdb") <> "" Then GoTo XXX200 ' если файл Base.mdb в папке Files есть то переход на строку xxx200 а как проверить наличие файла в папке Windows/system32 если заранее не знаешь на каком диске папка Windows/system32 и windows может быть установлена в папку не по умолчанию (windows), а например в папку winxp |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Есть API-шные функции GetWindowsDirectory и GetSystemDirectory. Они возвращают пути к папке винды и к ее системной папке.
|
|||
|
||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Тутанхамец |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
А нате вам!
Функции API - это дикая куча (больше двух тысяч) функций, поставляемых вместе с Windows в ее DLL. Поскольку функции эти внешние для VB-шной проги, то их надо объявить оператором Declare. Приблизительно так:
Выше объявляется функция GetSystemDirectory из библиотеки kernel32 (версия для ANSI). Подробнее про синтаксис Declare - погляди где-нибудь в книжках, хэлпах или, думаю, даже на этом форуме найдется. Чтоб ты каждый раз не парился с этими Declare, разработчики вижл-бейсика уже объявили все возможные функции и упрятали их объявления в текстовый файл, который поставляется вместе с VB. Там еще виндосовские типы данных и константы. В поставку VB6 (и VB5, и VB4...) входит прога API Viewer (посмотри в папке VB6 в меню "Программы2 кнопки "Пуск"). Запусти, нажми File->Load Text File и выбери win32api.exe. Там все функции API на момент издания VB6. С тех пор их, думаю, прибавилось, но для начала тебе хватит. Щелкни на функцию в списке, появится ее Declare. Находишь те объявления функций, которые тебе нужны, жмешь кнопку Copy и вставляешь их в модуль своей проги. Самое главное - знать, что делает каждая из этих функций (тут иронично А теперь пример. Узнаем системную директорию Винды:
Таким вот образом. Добавлено @ 21:35 Akina, ты меня сделал! |
||||
|
|||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
а создать там файл?
не работает. |
|||
|
||||
| Тутанхамец |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Интересно, что ты пытался сказать вот этим...
. Это сообщение отредактировал(а) Тутанхамец - 19.2.2006, 16:48 |
||||
|
|||||
| DrBoom |
|
|||
|
QIP VB-SDK Developer ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 19.2.2006 Репутация: нет Всего: нет |
А модуль FSO(File System Object) не пробывал использывать...
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
ArtNeoX, что именно не работает? поконкретнее плиз.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
Как системную директорию определить я понял.
А как сосдать туда файл и проверить наличие определенного файла в системной папке. Смысл вот в чем. 1. Пользователь запускает отдельную программу которая определяет системную папку и проверяет наличие там файла xxx.txt Если он там есть, то программа завершает работу, если его там нет файл с таким именем будет создан. 2. Пользователь запускает программу. Программа определяет системную папку и проверяет наличие там файла xxx.txt Если он там есть, программа запустится, если его там нет программа не запускается. То есть это такой способ защиты от копирования твоих трудов. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
не понял в чём проблема - ты же сам в первом посте писал это - токо путь был литералом записан - а ты его переменной напиши
узнаёш апишной функцией путь к систему - и дальше как обычно или я что-то пропустил? |
|||
|
||||
| kulibin |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
прикольную штуку Akina подсказал - я до этого был не в курсе
вот чего в мсдн на эту тему нашел:
а вот результат выполнения суперпрограммы:
меня пропёрло Akina - ты если ещё такое что знаеш - то колись давай |
||||
|
|||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Могу подсказать еще один простенький способ защиты трудов. При установке своей проги записывай в файл серийный номер диска. А защищаемый труд при запуске проверяет - если этот файл есть и в нём действительно записан номер диса, то запускаемся, а если нет - то и суда нет, и запускаться не будем. Так можно привязать своё творение к конкретному диску. И нет особой нужды писаться в системную папку. А то XP и 2000 не всегда дают это сделать, если, скажем, ты вошёл под "юзером".
Для получения номера диска - APIшная GetVolumeInformation. P.S. Нда, environ, оказывается, прикольная штука... Это сообщение отредактировал(а) Тутанхамец - 21.2.2006, 08:24 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Мониторинг изменений на диске и в реестре - и твоя защита отдыхает.
а MSDN вообще полезно проматривать
Некоторые - да. Но их можно изменить - причем в локальном сеансе, дабы не нарушить работоспособности системы. Остальные создаются программами и сервисами конкретной системы и на другой могут отсутствовать. Для получения тех же данных, но "заведомо верно", лучше исользовать WMI. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
Про мсдн согласен Я имелл ввиду, что к чему-то из этого тоже привязываться можно - к параметрам процессора например + ещё что-то(как самостоятельный вариант не рекоммендую). Чи не функция Но годится вообще то - как вы поняли я сам активно пользую |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |