Определение пути КПК

Кирилл

Команда форума
Администратор
Ассоциация VN
Сообщения
14,053
Решения
2
Реакции
5,746
Привет.
Суть вопроса...надо скриптом (либо fso) перекидывать файлы по маске с ПК на КПК.
Но сам КПК в командной строке не определяется.
Получаю редирект на
AppData\Local\Microsoft\Windows\INetCache\IE\устроиство
Есть идеи?
 
Есть парочку.

Давай покажи вывод команды

Код:
mountvol
2) Создай такой скрипт VBS:
VB.NET / VBA:
Const MY_COMPUTER = &H11&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_COMPUTER)
Set objFolderItem = objFolder.Self

WScript.Echo objFolderItem.Path

Set colItems = objFolder.Items

For Each objItem in colItems
    WScript.Echo objItem.Name
Next

Запусти в консольном режиме (запустить cmd, ввести cscript "путь\скрипт.VBS")
И выложи сюда вывод.
 
Последнее редактирование:
Через cscript вывод попадает в консоль. А если не копируется, то правый клик по заголовку cmd -> свойства -> настройки -> v Выделение мышью, v Быстрая вставка (в win 10 так по умолчанию должно быть, в остальных нужно самому настраивать).

upload_2016-7-5_22-32-5.webp

Еще вариант (не проверял): можно создать ярлык на одну из папок устройства.
И нужные файлы бросать на него.
А если через скрипт, то передавать аргументом:
Код:
ярлык.lnk "файл"
 
Последнее редактирование:
Не, у меня никак не перетаскивает.
:{20D24FE0-3AEA-1069-A2D8-08002B30309D} Такой и имя Устройства (и диски в пк, а так же папки музыка..)
 
Последнее редактирование:
Phoenix, теперь создавай VBS-файл:

Код:
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.Namespace("::{20D24FE0-3AEA-1069-A2D8-08002B30309D}")
objFolder.CopyHere(WScript.Arguments(0))

Затем перетащи на него какой-нибудь файл, который хочешь записать на свое устройство.
Учти, что файл возможно нельзя записать напрямую на устройство, а только в один из его подкаталогов. Тогда укажи этот подкаталог здесь ...08002B30309D}\подкаталог")
Также, вероятно там нужен 1 знак двоеточия, а не два ::{20D24FE0- (поэкспериментируй).
:{20D24FE0-3AEA-1069-A2D8-08002B30309D} Такой и имя Устройства (и диски в пк, а так же папки музыка..)
Стоп. Это не тот. Это GUID от "Мой компьютер". А этого устройства GUID не показывает? А оно вообще есть в папке "Мой компьютер" ?
Создай ярлык на одну из папок на этом устройстве и пришли мне его заархивированным.
 
Последнее редактирование:
CMD/BATCH:
  \\?\Volume{a23e3006-0d89-11e3-9fe4-806e6f6e6963}\
      C:\

  \\?\Volume{4316c567-65ba-11e4-989a-001f16fbdb97}\
      G:\

  \\?\Volume{a23e3008-0d89-11e3-9fe4-806e6f6e6963}\
      E:\

  \\?\Volume{7bece71e-602e-11e4-9882-806e6f6e6963}\
      *** НЕТ ТОЧЕК ПОДКЛЮЧЕНИЯ ***

  \\?\Volume{7bece71f-602e-11e4-9882-806e6f6e6963}\
      *** НЕТ ТОЧЕК ПОДКЛЮЧЕНИЯ ***

  \\?\Volume{4433ba21-f4fe-11e5-9aae-001f16fbdb97}\
      F:\
Запусти в консольном режиме (запустить cmd, ввести cscript "путь\скрипт.VBS")
И выложи сюда вывод.
CMD/BATCH:
"C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE\GNS0IHNK\"
Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.

C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE\GNS0IHNK>

Ярлык создать не могу...

Из вариантов подключения - mtp и ptp.
 
Вот это
\\?\Volume{7bece71e-602e-11e4-9882-806e6f6e6963}\
и это
\\?\Volume{7bece71f-602e-11e4-9882-806e6f6e6963}\
попробуй ввести в проводник. Что получишь?

"C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE\GNS0IHNK\"
Microsoft Windows [Version 6.3.9600]
(c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.

C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE\GNS0IHNK>
Это ты что-то неправильно сделал.
 
Попробую,как думаешь эти имена на всех пк будут соответствовать?
 
В режиме USB как обычный съёмный диск
\\?\Volume{35a0b298-37ea-11e6-93f0-6cf04949e3bc}\
D:\
Из вариантов подключения - mtp и ptp.
В шторке (свайп пальцем сверху вниз экрана) разве нет - usb подключение. Появится робот.
Screenshot_2016-07-05-22-12-16.webp Screenshot_2016-07-06-08-37-53.webp Screenshot_2016-07-06-08-50-47.webp
 
Стоп. Это не тот. Это GUID от "Мой компьютер". А этого устройства GUID не показывает? А оно вообще есть в папке "Мой компьютер" ?
--- Объединённое сообщение, Вчера, в 23:12 --- Создай ярлык на одну из папок на этом устройстве и пришли мне его заархивированным.
mypc.webpyaris.webp folder.webpusb.webp
В MTP ярлыки не создать, в USB можно, как с обычной флэшкой и проблем нет копировать через ярлык.
Второй скрипт не хочет.
На Yaris_M можно создать ярлык и копировать в него, точнее на внешний SD. На внутренние папки ярлык нельзя сделать.
 
Последнее редактирование:
Попробую,как думаешь эти имена на всех пк будут соответствовать?
Думаю, что на всех будут отличаться. Но если зацепится за какую-то константу или хотя бы метод определения, то вполне можно написать скрипт автоматического определения.

Phoenix, понятно. Все из-за протокола. Но если иконка высвечивается в папке "Мой компьютер", то каким-то образом все равно организуется связь с shell.
Жаль, у себя не на чем проверить.
 
попробуй ввести в проводник. Что получишь?
Получаю устроиство не готово - нет доступа.
Видимо защита стоит или имеется тип каталога с ограничениями?
upload_2016-7-6_23-37-18.webp
В шторке (свайп пальцем сверху вниз экрана) разве нет - usb подключение. Появится робот.
Ну нету...система обновлена.
Чушь какая то.
 
Видимо защита стоит или имеется тип каталога с ограничениями?
Скорее всего это от кард-ридера какого-то GUID.
2) Создай такой скрипт VBS:
Переделанный лог будет?
Koza Nozdri, давай так: сними отчет API Monitor-ом. В процессе мониторинга скопируй файл на это устройство.
И напиши здесь в теме имя файла + выложи сам отчёт.

А я как будет время гляну, как система это делает.
 
Я думаю надо искать через что происходит обмен,потому что проводник напрямую это не делает.
Еще что имеем:
Включено отображение скрытых файлов и папок,а папка C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE пуста.
При этом доступен каталог C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE\GNS0IHNK с кучей всяких файлов.

Мне кажется редирект где то тут происходит.
А я как будет время гляну, как система это делает.
Щас сделаю.
 
Включено отображение скрытых файлов и папок,а папка C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE пуста.
При этом доступен каталог C:\Users\Fire\AppData\Local\Microsoft\Windows\INetCache\IE\GNS0IHNK с кучей всяких файлов.
всего лишь временный кеш.
Я думаю надо искать через что происходит обмен,потому что проводник напрямую это не делает.
если там какой-то свой драйвер, то он все равно должен предоставлять какое-то API, даже если недокументированное.
 
не понятно как остановить захват и сохранить лог - такой пункт отсутствует в программе
А он и не начался. Я забыл написать, что мониторить нужно процесс Explorer.exe (окно "Running processes" -> правый клик по Explorer.exe -> Start Monitoring). По окончанию: File -> Pause monitoring.

Нашел как называются интерфейсы:
Windows MTP/WPD communication with Android device
Alternatives to WPD/WIA on Windows XP?

На WinXP, кстати, интересная ситуация, если установлен WMPlayer 11, то связь происходит по протоколу WPD/MTP, иначе PTP.

Осталось изучить доки. У M$ даже есть наглядный пример на C++.
Одно ясно: если дополнительно ничего не устанавливать в систему, то через скрипт, как ты хотел, это вряд ли можно реализовать.

Koza Nozdri, а тебе поддержка каких ОС нужна?
 
А он и не начался. Я забыл написать, что мониторить нужно процесс Explorer.exe (окно "Running processes" -> правый клик по Explorer.exe -> Start Monitoring). По окончанию: File -> Pause monitoring.
Я так и сделал,мониторинг начался,но в меню file нет вариантов кроме как начать мониторинг нового процесса и выход.
Проблема сбора лога именно в том,что непонятно как его сохранить.
Из за временных (надеюсь) проблем с dr.web я на сейчас вынужден приостановить попытки собрать информацию данной программой,в пятницу либо субботу реабилитируюсь.

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

Koza Nozdri, а тебе поддержка каких ОС нужна?
Давай объясню,что делаю.
Есть некоторая программка,которую использую,самописная.(сам собирал по местным советам)
Возникла техническая необходимость периодически заливать фото на десяток устройств.
Объем примерно 20 метров в неделю,имена уникальные (это около 150-200 фото).
Старые фото удалять нельзя,надо дополнять.
Дабы избежать тупежа проводника принято решение докидывать малыми порциями без графического интерфейса...для того скрипт и создается.
Не обязательно cmd,я и fso пробовал прилепить,и vbs и еще...но везде один гвоздь,в который я уперся в этой теме.
Может прочие идеи будут,не откажусь.
А os от хр до 8.1 вся линейка.

Похоже если с api не сработает,то придется оставить затею?
 
Похоже если с api не сработает,то придется оставить затею?
Команда adb push

Если вы хотите “сбросить” како-то файл на ваш андроид девайс программно, то вам надо использовать команду "adb push". Вам необходимо будет знать пару параметров, а именно полный путь к файлу который вы будете “пушить”, и полный путь куда вы будете “пушить” этот файл. Давайте потренируемся путем перемещения фото в папку с фото на вашем девайсе. Я сбросил фото “kote” в папку с android tools на диске С чтобы мне не надо было печатать длинный путь к этому фото на моём рабочем столе. Предлагаю вам поступить так же. Возвращаемся в командной строке и печатаем “adb push kote.jpg /storage/sdcard0/Pictures” и файл скопировался на мой SIII, прямо в папку с картинками.

196.webp

Если бы мы не сбросили картинку в папку с инструментами андроид (android tools), то нам пришлось бы набирать полный путь к папке, что-то вроде “D:\pics\photos\lol\kote.jpg”. В любом случае, и тот и другой способ подходят, но наш способ легче.

Вы так же должны указать полный путь к месту на вашем устройстве куда вы хотите скопировать файл. Можно использовать любой популярный файл эксплорер из гугл маркета чтобы определить путь. Пользователи Windows должны помнить что на андроиде используются обратный слэш ( / ) в отличие от Windows, потому что это Linux.

Правда в смарте надо отладку usb ставить. На постоянку оставлять, вроде не гоже.. Если есть вариант с рутом, то можно включить usb через файл system\build.prop (но надо потом права поставить какие были - 0644 (rw-r--r--)
ro.sys.usb.storage.type=mtp,mass_storage
если такой строки нет или она другая.
Вообще должен быть ярлык для usb подключения - он используется по умолчанию обычно - это безопаснее.
Правда ещё в ядре может быть прописано
/default.prop
persuist.sys.usb.config=mtp,mass_storage
У ядра приоритет.
Сделать это можно и в самом boot.img (если надо раскажу и покажу)
 
Последнее редактирование:
Назад
Сверху Снизу