powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / соединение с сервером
23 сообщений из 23, страница 1 из 1
соединение с сервером
    #39663151
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня такая задача: найти файл, который находится в одной из множества папок множества подпапок и выбрать этот файл.
функцией рекурсивного поиска FindRecursive ('\\server-nas\GOST-FA\', '*.*') находится нужный файл, opendialog выбирает файл из получившейся директории (директория в Edit):
Код: sql
1.
2.
if Edit2.Text<>'' then
OpenDialog1.InitialDir:= ExtractFilePath(Edit2.Text);


директория \\server-nas\GOST-FA\...., по которому я выбираю к.-л. файл, заблокирована (логин/пароль).
у меня возникло 2 вопроса:
1. почему при выборе файла в программе не появляется окно с вводом логина и пароля (доступ к серверу);
2. как перейти к нужному файлу, не вводя предварительно логин и пароль на сервере?
...
Рейтинг: 0 / 0
соединение с сервером
    #39663153
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
обработчик кнопки:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TForm1.Button1Click(Sender: TObject);
begin
FindRecursive ('\\server-nas\GOST-FA\', '*.*');
OpenDialog1.Title:='Выберите файл';
OpenDialog1.Filter:='Все файлы|*.*';
if Edit2.Text<>'' then
OpenDialog1.InitialDir:= ExtractFilePath(Edit2.Text);
if OpenDialog1.Execute then ShowMessage(openDialog1.FileName);
end;
...
Рейтинг: 0 / 0
соединение с сервером
    #39663172
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina1. почему при выборе файла в программе не появляется окно с вводом логина и пароля (доступ
к серверу);
2. как перейти к нужному файлу, не вводя предварительно логин и пароль на сервере?

1. Окно уже появлялось при входе в Windows. Повторять не имеет смысла.
2. Никак. Это основы компьютерной безопасности.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
соединение с сервером
    #39663176
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при загрузке Windows я пароля не ввожу. пароль используется только тогда , когда мне нужно зайти на сервер nas. это я делаю в своей программе, но пароль почему-то не запрашивается и opendialog выбирает не ту директорию.
...
Рейтинг: 0 / 0
соединение с сервером
    #39663189
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaopendialog выбирает не ту директорию
opendialog сам ничего не выбирает. На то он и диалог. Диалог с пользователем, т.е. с тобой. Ты выбираешь директорию, файл. Если ты выбираешь не ту директорию - спрашивай у себя, зачем ты выбираешь не ту директорию.
...
Рейтинг: 0 / 0
соединение с сервером
    #39663190
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

Если же речь об OpenDialog1.InitialDir, то в справке написано, что
If no value is assigned to InitialDir, or if the specified directory does not exist, the initial directory is controlled by the global ForceCurrentDirectory variable. If ForceCurrentDirectory is true, the dialog opens with the current working directory displayed. Otherwise, the dialog opens with either the current working directory or the My Documents directory, depending on the version of Windows.
http://docwiki.embarcadero.com/Libraries/Seattle/en/Vcl.Dialogs.TOpenDialog.InitialDir
...
Рейтинг: 0 / 0
соединение с сервером
    #39663191
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

а директория, на которую нет прав, как раз "not exist"
...
Рейтинг: 0 / 0
соединение с сервером
    #39663208
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaпри загрузке Windows я пароля не ввожу. пароль используется только тогда , когда мне нужно
зайти на сервер nas.

Тем, кто не ввёл пароль при загрузку Windows системный администратор, очевидно, запрещает
доступ к NAS. Общайтесь с ним на эту тему.

Ну или RTFM WNetAddConnection2/3().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
соединение с сервером
    #39663214
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function ConnectToNetworkDrive(APath:string):integer;  
var rc:TNetResource;
    PPass,PUser:PChar;
    UName,Pass:string;
    Err:integer;
begin
  ZeroMemory(@rc, sizeof(rc));
  rc.dwType := RESOURCETYPE_DISK;
  rc.lpLocalName := nil;
  rc.lpRemoteName := PChar(APath);
  rc.lpProvider := nil;
  if LoginDialog('Connect to network drive','User name','Password',UName,Pass) then  // тут диалог запроса логин/пароль
     begin
       if (Trim(Pass)<>'') then PPass:=PChar(Pass) else PPass:=nil;
       if (Trim(UName)<>'') then PUser:=PChar(UName) else PUser:=nil;
       Err:=WNetAddConnection2(rc,PPass,PUser,CONNECT_UPDATE_PROFILE);
       if Err = NO_ERROR then Result:=0   // success
       else Result:=1;                    // error
     end
   else Result:=2;                         // canceled
end;



Т.е. если тебе нужно обращаться к запароленным шарам:
1) Проверить, можно ли сменить директорию на \\share_name\
2) Если не удалось - выполнить ConnectToNetworkDrive() и посмотреть на результат
3) Если все ок - сменить директорию и звать свой OpenDialog()
...
Рейтинг: 0 / 0
соединение с сервером
    #39663375
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

то есть нужно использовать ForceCurrentDirectory?
...
Рейтинг: 0 / 0
соединение с сервером
    #39663387
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaYuRock,

то есть нужно использовать ForceCurrentDirectory?

Гм... ForceCurrent.... - это откуда такой зверь выполз? Вы в одну корзинку все не валите
...
Рейтинг: 0 / 0
соединение с сервером
    #39663391
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

1) Проверить, можно ли сменить директорию на \\share_name\

нельзя.
...
Рейтинг: 0 / 0
соединение с сервером
    #39663401
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

Ну так зови WNetAddConnection2() и смотри на результат. Логин и пароль ты знаешь.
...
Рейтинг: 0 / 0
соединение с сервером
    #39663457
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMaster,

Вы знаете, я сделала так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Procedure Tform1.AddDisk;
Var
nr: NETRESOURCE;
lpLogin, lpPassword:PChar;
Begin
ZeroMemory (@nr, SizeOf (nr));
nr.dwType := RESOURCEType_DISK;
nr.lpLocalName := nil;
nr.lpRemoteName := '\\server\***';
nr.lpProvider := Nil;
lpLogin:='***';
lpPassword:='***';
If WNetAddConnection2 (nr,lpLogin, lpPassword, CONNECT_UPDATE_PROFILE) <> NO_ERROR
Then begin
ShowMessage ('Ошибка подключения к серверу.');
exit;
end;
End;


все работает, но все равно при первом обращении в программе в серверу-nas opendialog открывает диалоговое окно с каталогом Мои документы. программу нужно остановить. при дальнейших обращениях все работает нормально - открывается нужная директория. что такое?
...
Рейтинг: 0 / 0
соединение с сервером
    #39663461
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaто есть нужно использовать ForceCurrentDirectory?Не знаю, что это
...
Рейтинг: 0 / 0
соединение с сервером
    #39663475
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockTsYekaterina,

the global ForceCurrentDirectory variable
...
Рейтинг: 0 / 0
соединение с сервером
    #39663480
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

Отлично, к серверу вы подключились. А теперь просто установите InitialDirectory (как-то так, не помню точное название проперти) в своем OpenFileDialog в имя шары перед его вызовом.

Код: pascal
1.
2.
3.
  MyOpenFileDialog.InitialDirectory:='\\my_share_name\needFolderName';
  if  MyOpenFileDialog.Execute then 
     // --- что-то там делаем
...
Рейтинг: 0 / 0
соединение с сервером
    #39663535
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaчто такое?

Вы так и не уволили безмозглых программистов, которые не в состоянии вызывать функции в
нужном порядке, а не от балды.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
соединение с сервером
    #39663542
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS: Если бы в конторе был нормальный сисадмин, "Мои документы" уже давно уехали бы на NAS
целиком с помощью доменных политик и не пришлось бы мучить программистов изготовлением
костылей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
соединение с сервером
    #39663560
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

nas - файловой хранилище другой программы, и нет смысла вывозить "Мои документы" на сервер.
...
Рейтинг: 0 / 0
соединение с сервером
    #39663563
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimonka,

о откуда Вы знаете, что я ввела то, что используется?:-)
...
Рейтинг: 0 / 0
соединение с сервером
    #39663568
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimonkaТак больше не делай! Иначе ДаркМастер залезет к дяде Караеву на его расшаренный диск :-)Поздно, "побывали уже в глазах твоих, и всё, что нам нужно, взяли" (с)
...
Рейтинг: 0 / 0
соединение с сервером
    #39663597
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо всем за помощь!
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / соединение с сервером
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]