Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Здравствуйте,

У Mail.ru появилась программа Диск О. Она превращает облачные хранилища в локальные диски на ПК.
Я скачал программу ДИСК-О https://disk-o.cloud/ (появился виртуальный диск на компьютере под буквой Z:)

Но вот DirectoryExists('Z:') выдает False, как будто диска не существует.
Функция GetDriveType('Z:') выдает DRIVE_NO_ROOT_DIR = 1; (The root path is invalid)

Что делать, как программно увидеть это диск ?

Заранее благодарен.
6 июн 19, 05:59    [21903068]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 25955
GetLogicalDriveStrings тоже молчит?
6 июн 19, 07:42    [21903088]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Молчит, выводит все диски, кроме Z:
Всё то же самое, как будто диска Z не существует вообще.
6 июн 19, 08:00    [21903093]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 25955
m52
Молчит, выводит все диски, кроме Z:
Всё то же самое, как будто диска Z не существует вообще.

Значит криворукие писали.

Проще подключать диск встроенными средствами. Даже в семерке была поддержка webdav.
6 июн 19, 08:35    [21903111]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1579
Попробуйте поставить ApiMonitor и внедрится в процесс программы, посмотрите какие winapi функции вызывает. Иногда помогает узнать много нового и интересного. Может есть какие-то другие функции...
6 июн 19, 09:38    [21903167]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5215
m52,

скорее всего объект по типу специальных папок IShellItem
6 июн 19, 11:00    [21903258]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 30502

забей.
всё что делает мыло.рю - ГОВНО

Posted via ActualForum NNTP Server 1.5

6 июн 19, 11:35    [21903296]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Здравствуйте,

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

СТРАННОСТЬ: из программ, запущенных с повышенными правами (Run as Administrator), все сетевые диски не видны. Функция GetDriveType вернет 1=DRIVE_NO_ROOT_DIR (The root path is invalid). Кстати, DirectoryExists тоже не видит сетевой диск по букве по той же причине, видимо.

Но если программу с обычными правами, то будет все ОК.

Почему GetDriveType и DirectoryExists не работают, если программа запущена с повышенными правами?
13 июн 19, 05:12    [21907555]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Извините, я писал, что все сетевые диски не видны - это я поспешил. Похоже, что проблема только с ДискО, другие сетевые диски видны.
13 июн 19, 05:52    [21907566]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5215
m52
Почему GetDriveType и DirectoryExists не работают, если программа запущена с повышенными правами?
потому что это другой пользователь, и ему нужно подключать всё отдельно.
13 июн 19, 08:17    [21907622]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Ну почему же другой.
Эта же самая учетка, просто запустил так: правой кнопкой мышки на exe-файле, выбираю п.меню "Запуск от имени администратора" и в "Диспетчере задач" видно, что программа запущена от моей же учетки.
13 июн 19, 10:17    [21907717]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
alekcvp
Member

Откуда:
Сообщений: 1553
m52
Ну почему же другой.
Эта же самая учетка, просто запустил так: правой кнопкой мышки на exe-файле, выбираю п.меню "Запуск от имени администратора" и в "Диспетчере задач" видно, что программа запущена от моей же учетки.


Нет, с точки зрения сетевых подключений - это разные пользователи, так работает UAC.
Можете проверить на Total Commander, например. Подключить сетевой диск, потом запустить его от имени администратора - он этот диск не увидит.
13 июн 19, 10:32    [21907729]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
antox
Member

Откуда: РФ
Сообщений: 1050
Клал на диск-о базу access всё работало, подключался чз ado
13 июн 19, 16:27    [21908058]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
Василий 2
Member

Откуда:
Сообщений: 757
wadman
Проще подключать диск встроенными средствами. Даже в семерке была поддержка webdav.

Мылы вроде так и не сподобились на него
13 июн 19, 17:06    [21908108]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
alekcvp
Member

Откуда:
Сообщений: 1553
Василий 2
wadman
Проще подключать диск встроенными средствами. Даже в семерке была поддержка webdav.

Мылы вроде так и не сподобились на него


Прикольно, бесплатный NextCloud умеет из коробки, а мыло не шмогло?
13 июн 19, 21:50    [21908247]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Вот что удалось выяснить по данному вопросу.

Как правильно подсказал alekcvp (спасибо ему) любая программа,
- запущенная под пользователем "User1"
и
- запущенная под пользователем "User1" от имени администратора
это 2 разных пользователя с точки зрения сетевых соединений!

Чтобы любая программа увидела DiskO, она должна быть запущена под той же учеткой и с теми же правами, что и программа DiskO.exe. Т.е. если программу DiskO.exe запускаем от имени администратора под User1, то и программа (например, TotalCommander) должна быть запущена тоже от имени администратора под User1.
Это легко проверить на примере Total Commander.

У меня на ПК программа "DiskO.exe" подключает сетевой диск Z:

ОСТАЕТСЯ ВОПРОС НАСЧЕТ СЛУЖБЫ

Моя служба копирования файлов запускается от учетки User1
Перед копированием файлов служба запускает "C:\Users\User1\AppData\Local\Mail.Ru\Disk-O\vcurrent\DiskO.exe" и делает паузу 10 сек, чтобы диск Z: успел появиться и стал доступен для службы.

В Диспетчере задач процесс с именем "DiskO.exe" действительно появляется, он запущен ровно под той же учеткой, что и служба (это логично, т.к. его вызывает сама служба).

Но, после этого служба проверяет доступность диска Z: и оказывается, что диск Z: недоступен.

Да, я знаю, что для службы нужно самостоятельно подключать сетевые диски (обычно я это делаю с помощью Net Use), но ведь я уже запустил "DiskO.exe", разве не должен появиться сетевой диск Z: ? Может для подключения именно из под службы нужно его как-то по-другому подключать или дополнительно вызвать Net Use ... ? Как сделать, чтобы служба увидела сетевой диск Z: ?

Подскажите идею, если знаете.
14 июн 19, 08:07    [21908327]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5215
m52,

в sysInternals есть утилита которая позволяет программы запускать от пользователя System, запустите через неё тотал и тестите
14 июн 19, 09:48    [21908376]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
Василий 2
Member

Откуда:
Сообщений: 757
alekcvp
Прикольно, бесплатный NextCloud умеет из коробки, а мыло не шмогло?

Ну им же надо как-то впаривать свой говнософт. А ежели все будут подключаться по вебдаву штатными средствами, как они смогут получить себе прекрасные мылошные тулбары в браузер?
14 июн 19, 10:55    [21908451]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11196
m52
В Диспетчере задач процесс с именем "DiskO.exe" действительно появляется, он запущен ровно под той же учеткой, что и служба (это логично, т.к. его вызывает сама служба).

Но, после этого служба проверяет доступность диска Z: и оказывается, что диск Z: недоступен.
Вполне возможно, что не хватило прав на монтирование диска. У этой "DiskO.exe" есть логи? Смотрите их
14 июн 19, 13:57    [21908692]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
alekcvp
Member

Откуда:
Сообщений: 1553
m52
Подскажите идею, если знаете.


Запускать из службы его с максимальными привилегиями, в зависимости от того способа каким вы его запускаете (т.е. программный аналог "от администратора").
14 июн 19, 15:41    [21908797]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Здравствуйте.

В тех.поддержке Mail.ru мне ответили:

Вам необходимо запустить и службу и программу Диск-О: в рамках одной сессии и в рамках одного пользователя.

Моя служба запускается либо под Local System, либо под другой учеткой. Служба внутри себя вызывает CreateProcess для запуска внешнего приложения DiskO.exe. Понятно, что DiskO.exe запустится под той же самой учеткой, под которой работает служба.

А вот про сессию я не понял: это будет та же самая сессия или другая? Если другая, то как запустить в рамках тоже же сессии? И что вообще называется сессией?
6 июл 19, 15:21    [21922029]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 5215
m52,

Вход пользователя в систему
6 июл 19, 22:42    [21922125]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Ну тогда, что такое сессия, я знаю. Я думал, что имеется ввиду какая-то другая сессия.
А служба ведь стартует до входа пользователей и работает независимо. Получается, что из службы запустить DiskO.exe не получится?
7 июл 19, 05:45    [21922152]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
x1ca4064
Member

Откуда:
Сообщений: 1007
m52
Получается, что из службы запустить DiskO.exe не получится?


Если взаимодействует с пользователем, то не получится. В противном случае - можно.
7 июл 19, 08:53    [21922161]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка диска O (от mail.ru)  [new]
m52
Member

Откуда:
Сообщений: 721
Под взаимодействием с пользователем что имеется ввиду? Служба никак не взаимодействует с пользователями. Ну и как тогда запустить DiskO.exe из службы в той же сессии?
7 июл 19, 14:16    [21922227]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить