Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2019, 09:45   #1
cb251132
Пользователь
 
Регистрация: 29.06.2008
Сообщений: 23
По умолчанию Подключение принтера

В рамках локальной сети после каждого нового входа в ОС Windows 7 для возможности печати требуется вручную по логину и паролю подключать принтер другого ПК. Как-то можно это организовать программно средствами Delphi 7?
cb251132 вне форума Ответить с цитированием
Старый 08.11.2019, 12:29   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Принтер на другом компа расшарен и подключен по USB, >2 ПК в сети. По имени компа через \\<имя компа к которому подключен принтер>-> подключить завязывается как устройство в "устройствах и принтерах"? ПОсле перезагрузки принтер отваливается у пользователя с той же учеткой или с использованием другой?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 08.11.2019, 12:40   #3
cb251132
Пользователь
 
Регистрация: 29.06.2008
Сообщений: 23
По умолчанию

Да, действительно, принтер на другом компе подключен по USB. Расшарен - да, иначе подключения не были бы успешными и нельзя бы было пользоваться принтером. Да, в сети более чем 2 ПК. Используется практически весь диапазон 192.168.0.1-255.
Да по имени компа путем обращения через \\<имя компа к которому подключен принтер> принтер завязывается в "Устройствах и принтерах".
После перезагрузки принтер действительно отваливается у текущего пользователя, но подключающегося к принтеру через другую учетку.

Последний раз редактировалось cb251132; 08.11.2019 в 14:56. Причина: подтверждение уточняющих вопросов
cb251132 вне форума Ответить с цитированием
Старый 08.11.2019, 18:39   #4
cb251132
Пользователь
 
Регистрация: 29.06.2008
Сообщений: 23
По умолчанию

Нашел способ подключения сетевого диска:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  WNetConnectionDialog(Handle,RESOURCETYPE_DISK)
end;

//Так же можно подключить и принтер
procedure TForm1.Button1Click(Sender: TObject);
begin
  WNetConnectionDialog(Handle,RESOURCETYPE_PRINT)
end;

//либо можно использовать следующий код
procedure TForm1.Button2Click(Sender: TObject);
var
NetResource: TNetResource;
begin
  { заполняем структуру TNetResource }
  NetResource.dwType       := RESOURCETYPE_DISK;
  NetResource.lpLocalName  := 'S:';
  NetResource.lpRemoteName := '\\myserver\public';
  NetResource.lpProvider   := '';

  { подключаем сетевой ресурс, используя структуру TNetResource }
  If ( WNetAddConnection2(NetResource,
                         '', {Password (if needed) or empty}
                         '', {User name (if needed) or empty}
                         CONNECT_UPDATE_PROFILE)<>NO_ERROR) Then
     Raise Excepcion.Create('unable to map drive')
  //так же существуют другие константы для определения возникшей ошибки
  //ERROR_ACCESS_DENIED, ERROR_ALREADY_ASSIGNED, и т.д.
end;

//так же можно и отключить сетевой ресурс...
procedure TForm1.Button2Click(Sender: TObject);
begin
  if WNetCancelConnection2( 'S:',0,TRUE) <> NO_ERROR then
    Raise Exception.create('Error disconnecting map drive');
  //соответственно можно использовать другие константы для определения ошибки
  //ERROR_DEVICE_IN_USE, ERROR_NOT_CONNECTED, и т.д.
end;
cb251132 вне форума Ответить с цитированием
Старый 09.11.2019, 09:24   #5
cb251132
Пользователь
 
Регистрация: 29.06.2008
Сообщений: 23
По умолчанию

Но с принтером, не прокатывает.
cb251132 вне форума Ответить с цитированием
Старый 09.11.2019, 22:20   #6
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от cb251132 Посмотреть сообщение
Нашел способ подключения сетевого диска:
Принтер который подключен по USB он как сервер ! должен всегда включен и потом настроить " общего доступ в локальной сети " на ОС...!
1) Delphi здесь ни причём.
2) и нечего не надо писать.
xxbesoxx вне форума Ответить с цитированием
Старый 10.11.2019, 07:16   #7
cb251132
Пользователь
 
Регистрация: 29.06.2008
Сообщений: 23
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Принтер который подключен по USB он как сервер ! должен всегда включен и потом настроить " общего доступ в локальной сети " на ОС...!
1) Delphi здесь ни причём.
2) и нечего не надо писать.
Он именно так и настроен. Однако рабочая станция к нему подключается не с текущей учеткой и не авторизована в домене в противовес тому, что рабочая станция с принтером авторизована в домене. Поэтому каждый раз приходится выполнять одну и ту же нудную операцию вручную по подключению к рабочей станции для возможности пользования ее принтером путем клика на ярлыке принтера, который уже находится на рабочем столе. Сразу при этом появляется диалоговое окно, где нужно указать данные другой учетной записи, отличной от текущей для возможности подключения к рабочей станции. После этого еще раз нажать "подключить" на иконке появившегося среди расшаренных ресурсов этой рабочей станции принтера. И вуаля - печать на этом принтере снова активна! Вот эти действия нужно связать и автоматизировать. И почему же это нельзя сделать средствами Delphi, если это делается вручную? Можно, только знаний не хватает.

Последний раз редактировалось cb251132; 10.11.2019 в 10:10.
cb251132 вне форума Ответить с цитированием
Старый 10.11.2019, 12:06   #8
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от cb251132 Посмотреть сообщение
И почему же это нельзя сделать средствами Delphi
да. А вы этого посмотрите пожалуйста https://www.youtube.com/watch?v=BDLzRxhgvsg
xxbesoxx вне форума Ответить с цитированием
Старый 10.11.2019, 16:29   #9
cb251132
Пользователь
 
Регистрация: 29.06.2008
Сообщений: 23
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
да. А вы этого посмотрите пожалуйста https://www.youtube.com/watch?v=BDLzRxhgvsg
Данный пример - это заурядная штатная ситуация, когда все легко и просто решается. У меня ситуация нештатная, условия обозначены и изменить их из-за отсутствия администраторских прав на рабочей станции с принтером не представляется возможным. Спасибо за уделенное внимание.
cb251132 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение по сети принтера на Windows 7 IgoreKMaN Windows 13 01.02.2018 15:35
Установка принтера на ноутбук с Winows vs Установка принтера на ноутбук с Ubuntu Alar Свободное общение 12 29.11.2015 08:40
Подключение принтера чеков i_Alishka Общие вопросы Delphi 7 02.04.2012 08:12
подключение двух компьютеров к интернет через одно подключение Chudo4258 Помощь студентам 3 30.03.2010 16:07
Подключение принтера к ноутбуку! Николай_ Компьютерное железо 4 07.03.2010 18:51