Отправляет email-рассылки с помощью сервиса Sendsay

Delphi для профессионалов

  Все выпуски  

Delphi для профессионалов - Раздел ''Вопрос-ответ''


Информационный Канал Subscribe.Ru


eServer.ru :: Хостинг без ограничений!

Рассылка: Delphi для профессионалов

Количество подписчиков: 2412
Рассылка 'Delphi для профессионалов'

Выберите действие:
Заглавие (одной строкой) :
Содержание :

От кого :
Не показывать мой e-mail другим пользователям


Раздел "Вопрос-ответ"

 

Результаты

Вопрос №2: Управление устройствами через порты
Можно ли в Дельфи реализовать управление устройствами через порты (СОМ, USB)? Если да, то как? Мож какие ссылки есть по этой теме?
Предполагаемое решение: На сайте www.torry.net я видел компонент управления USB.

Ответ №1 (Алена Мысливцева): Управление устройствами через COM порт - http://www.happytown.ru/prog/practika/com_win32.html.
Для USB тоже используются CreateFile, ReadFile, WriteFile..., но необходим драйвер устройства : - )
Можно попробовать Driverwizard.

Ответ №2 (Stat): Не знаю насчёт USB, давно ищу сам информацию по железу на эту тему, а COM, LPT портами можно управлять как душе угодно.
Сам для Delphi не писал, но писал для C++ Builder.
(Вообще хорошо прочитать инструкцию Win32 Programmers Reference Раздел Communications, там в принципе понятно написано)
А ещё находил компонентик для Delphi. Скачал откуда не помню, весит 58662 байта:
// TComPort component ver. 2.00 for Delphi 2, 3, 4, 5
// written by Dejan Crnila, 1998 - 1999
// email: dejancrn@yahoo.com

Вопрос №3: Установка Interbase
Как сделать инсталятор, который прописывал бы пользователя в Interbase? BDE при этом не нужна совсем.

Ответ №1 (Denis Alexandrovich Ivanov): Без проблем:
1. При помощи InstallShieldExpress формируется проект, который включает в себя установку Interbase Server.
2. После установки Interbase запускаешь программу, написанную на Delphi 6, которая добавляет нового пользователя Interbase
Пример программы см. ниже:

(************************************************************************
Проект       : ....
Автор        : Иванов Д.А.
Назначение   : Выжимки из библиотеки функций для работы со справочником
               пользователей
               Note: You must install InterBase 6 to use this feature.
Дата создания: 11.13.2002
История      :
************************************************************************)
unit usr;
interface
uses IBCustomDataSet,IBDataBase,IBServices;
type
  TUsrInfo = record
    Usr:string ; //login
    Uid:integer; //уникальный идентификатор, если программа ведет
                 //справочник пользователей в своей БД - его можно
                 //брать оттуда по секвенции
    Grp:integer; //Group
    Pas:string ; //password
  end;

  TUsrClass = class(TObject)
  private
    { Private declarations }
  public
    UsrData:TUsrInfo;
    dbSec  :TIBSecurityService;
    // добавляет или редактирует пользователя в Interbase
    function UpdateUser: string;
  end;

  TUsrLib = class(TUsrClass)
  private
    { Private declarations }
  public
    procedure AddNewUserToInterbase;
  end;

var
  clUsr:TUsrLib;

implementation
uses SysUtils,Controls,db,windows,QDialogs;

(***************** Добавляет или редактирует пользователя ***************)
function TUsrClass.UpdateUser: string;
                               //Usrid = 0 - новый пользователь
  var Edes:string; //Описание ошибок
begin
  try
    if UsrData.Usr = '' then Edes:= 'не указан login пользователя';
    if UsrData.Uid = 0  then Edes:= 'не указан id пользователя';
    if UsrData.Grp = 0  then Edes:= 'не указана группа пользователя';
    if UsrData.Pas = '' then Edes:= 'не указан пароль пользователя';
    if EDes <> '' then raise Exception.Create(Edes);
    //Добавляем пользователя в interbase
    with dbSec do begin
      if not Active then Active := True;
      UserName  := UsrData.Usr;
      UserID    := UsrData.Uid;
      GroupID   := UsrData.Grp;
      Password  := UsrData.Pas;
      try
        DisplayUser(UserName);
        if UserInfo[0] = nil then AddUser else ModifyUser;
      except
        Edes:='Ошибка добавления пользователя в interbase security';
        raise Exception.Create(Edes);
      end;
      //раздача если нужно права доступа пользователя на таблицы
      (* EDes:= GrantData(UsrData.Usr);
         if EDes <> '' then raise Exception.Create(Edes);
      *)
    end;
  except
    if EDes = '' then EDes:= 'Ошибка добавления пользователя в interbase security';
  end;
  Result:= EDes;
end;

procedure TUsrLib.AddNewUserToInterbase;
  var Edes:string; //Описание ошибок
begin
  UsrData.Usr := 'ida' ;
  UsrData.Uid := 123   ;
  UsrData.Grp := 1     ;
  UsrData.Pas := 'pass';
  EDes:= UpdateUser;
  if EDes <> '' then raise Exception.Create(Edes);
end;

begin
  clUsr:=TUsrLib.Create;
end.

Ответ №2 (Луценко Александр): Установку Interbase 6.0 я пробовал делать двумя системами создания инсталляций:
- InstallShield
- Wise Install Builder.
Для обоих использовал готовые скрипты с сайта http://ibinstall.defined.net/.
По результатам могу сказать, что Wise удобнее и проще в инсталляции.
Кроме того у него есть текстовый редактор скрипта, что нашему брату шибко нравится.
Установка и запуск IBGuard проходит как и в фирменном варианте сразу (Silent Install).

 

Новые вопросы

Вопрос №5: Шифрование базы IB
...есть ли надстройки или прочие возможности позволяющие шифровать IB базу?
Можно ли как простейшую альтернативу шифрованию защитить базу тем, что при создании указывать для каждой базы отдельного пользователя и пароль.
Мне необходимо защитить IB базу от вскрытия в случае кражи.

Предложить свой вариант решения можно здесь или воспользовавшись формой обратной связи (для HTML-формата).

Вопрос №6: NT-based списки пользователей
Как узнать список всех пользователей?
Предложить свой вариант решения можно здесь или воспользовавшись формой обратной связи (для HTML-формата).

Вопрос №7: Работа в локальной сети по TCP/IP из DOS
Может у когонибудь есть описание, документация или примеры программ, рабрты с Microsoft Sockets for DOS (sockets.exe)? Заранее спасибо.
Предложить свой вариант решения можно здесь или воспользовавшись формой обратной связи (для HTML-формата).

Вопрос №8: Process Handle
Как могу я получить Дескриптор Процесса с помощью WinAPI, если известно его название?
Предполагаемое решение: Это поволяет сделать функция FindWindow из WinAPI.

Справка WinAPI:
HWND FindWindow(

LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name

);

Предложить свой вариант решения можно здесь или воспользовавшись формой обратной связи (для HTML-формата).

Вопрос №9: Delphi 7
Как в Delphi7 редактировать Code Insight(Tools/Editor Options), вставить в проект(в других версиях Delphi - по-Ctrl+J)?
Предложить свой вариант решения можно здесь или воспользовавшись формой обратной связи (для HTML-формата).

 


Все вопросы присылайте по адресу: delphi-ask@igp.org.ua
Все ответы присылайте по адресу: delphi-reply@igp.org.ua
Все подсказки присылайте по адресу: delphi-hint@igp.org.ua

Со всем списком советов можно познакомиться по адресу: http://igp.org.ua/delphine/.
Наш проект Delphine можно найти по следующей ссылке: http://igp.org.ua/products/delphine/.

Заходите в наш форум: Форум Delphi-профессионалов. Адрес: http://igp.org.ua/cgi-bin/yabb/yabb.pl.
Здесь Вы найдете ответы на все Ваши вопросы!

Выберите действие:
Заглавие (одной строкой) :
Содержание :

От кого :
Не показывать мой e-mail другим пользователям



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное