Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ через лок сеть. Сетевая и локальная версии 
:(
    Опции темы
AbekIn3D
  Дата 12.1.2010, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 31.10.2009

Репутация: нет
Всего: нет



Добры всем день!

1. Как сделать так, чтобы программу не могли открыть через локальную сеть? 
Т.е. пользователь установил ПО себе на компьютер, а сетевые пользователи не могли запустить ее через локальную сеть.

2. И еще, как делаются сетевые и локальные версии?
Заранее спасибо
PM MAIL   Вверх
Демо
Дата 12.1.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 7
Всего: 50



Цитата(AbekIn3D @  12.1.2010,  12:12 Найти цитируемый пост)
Т.е. пользователь установил ПО себе на компьютер, а сетевые пользователи не могли запустить ее через локальную сеть.


Для этого надо проверить, что путь запуска находится на локальном, а не сетевом диске.

Вот как неализовано получения типа логического диска в  TDriveComboBox:

Код

procedure TDriveComboBox.BuildList;
var
  DriveNum: Integer;
  DriveChar: Char;
  DriveType: TDriveType;
  DriveBits: set of 0..25;

  procedure AddDrive(const VolName: string; Obj: TObject);
  begin
    Items.AddObject(Format('%s: %s',[DriveChar, VolName]), Obj);
  end;

begin
  { fill list }
  Clear;
  Integer(DriveBits) := GetLogicalDrives;
  for DriveNum := 0 to 25 do
  begin
    if not (DriveNum in DriveBits) then Continue;
    DriveChar := Char(DriveNum + Ord('a'));
    DriveType := TDriveType(GetDriveType(PChar(DriveChar + ':\')));
    if TextCase = tcUpperCase then
      DriveChar := Upcase(DriveChar);

    case DriveType of
      dtFloppy:   Items.AddObject(DriveChar + ':', FloppyBMP);
      dtFixed:    AddDrive(VolumeID(DriveChar), FixedBMP);
      dtNetwork:  AddDrive(NetworkVolume(DriveChar), NetworkBMP);
      dtCDROM:    AddDrive(VolumeID(DriveChar), CDROMBMP);
      dtRAM:      AddDrive(VolumeID(DriveChar), RAMBMP);
    end;
  end;
end;



Это сообщение отредактировал(а) Демо - 12.1.2010, 13:04


--------------------
    
PM MAIL ICQ Skype   Вверх
Keeper89
Дата 12.1.2010, 13:55 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



А если просто проверить ParamStr(0) на наличие '\\?

Это сообщение отредактировал(а) Keeper89 - 12.1.2010, 13:55


--------------------
PM MAIL WWW   Вверх
AbekIn3D
Дата 12.1.2010, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 31.10.2009

Репутация: нет
Всего: нет



объясните, как это будет работать?smile
PM MAIL   Вверх
Keeper89
Дата 12.1.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



AbekIn3D
При запуске приложения проверяем, запущено оно с локального диска или с сетевого. Если второе - то выходим и можем что-нибудь написать пользователю типа "Для использования ПО по сети приобретите сетевую версию".

Это сообщение отредактировал(а) Keeper89 - 12.1.2010, 15:14


--------------------
PM MAIL WWW   Вверх
AbekIn3D
Дата 12.1.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 31.10.2009

Репутация: нет
Всего: нет



я новичок в этом деле smile 
Код
if AnsiPos(ParamStr(0), '//') <> 0 then
   show message('Buy this product')
else
  showmessage('Thank you!');

Так?
PM MAIL   Вверх
Keeper89
Дата 12.1.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Да, совсем примитивно как то так.

З.Ы. Только слеши обратные.


--------------------
PM MAIL WWW   Вверх
~FoX~
Дата 12.1.2010, 18:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



Цитата(AbekIn3D @  12.1.2010,  18:18 Найти цитируемый пост)
Так? 

Не подойдет, если сетевой диск при монтирован, то parmstr не вернет тебе "\\"

Добавлено @ 18:28
Код

uses FileCtrl;
//..............
procedure TForm1.FormCreate(Sender: TObject);
var
  DriveType: TDriveType;
  DriveLetter: PChar;
begin
  DriveLetter := PwideChar(ExtractFileDrive(Application.ExeName));
  DriveType := TDriveType(GetDriveType(DriveLetter));
  if DriveType = dtFixed then ShowMessage('Thank you!')
  else ShowMessage('Buy this product');
end;


Это сообщение отредактировал(а) ~FoX~ - 12.1.2010, 18:28


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
AbekIn3D
Дата 12.1.2010, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 31.10.2009

Репутация: нет
Всего: нет



Код
DriveLetter := PwideChar(ExtractFileDrive(Application.ExeName));

пишет [Error] Unit1.pas(30): Incompatible types: 'WideChar' and 'Char'
PM MAIL   Вверх
~FoX~
Дата 12.1.2010, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



Цитата(AbekIn3D @  12.1.2010,  20:40 Найти цитируемый пост)
пишет [Error] Unit1.pas(30): Incompatible types: 'WideChar' and 'Char' 

Ну замени PwideChar на PChar



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
AbekIn3D
Дата 13.1.2010, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 31.10.2009

Репутация: нет
Всего: нет



Спасибо всем большое!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1405 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.