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

Тема в разделе "Другие языки программирования", создана пользователем Kиpилл, 5 июл 2016.

  1. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.197
    Симпатии:
    4.969
    Привет.
    Суть вопроса...надо скриптом (либо fso) перекидывать файлы по маске с ПК на КПК.
    Но сам КПК в командной строке не определяется.
    Получаю редирект на
    AppData\Local\Microsoft\Windows\INetCache\IE\устроиство
    Есть идеи?
     
  2. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.471
    Симпатии:
    4.303
    Есть парочку.

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

    Код (Text):
    mountvol
    --- Объединённое сообщение, 5 июл 2016 ---
    2) Создай такой скрипт VBS:
    Код (vb.net):
    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")
    И выложи сюда вывод.
     
    Последнее редактирование: 5 июл 2016
  3. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    Или подключить в режиме USB, а не MTP. Доступ будет только к SD карте.
    Если только скрин.
     
    Последнее редактирование: 5 июл 2016
    Dragokas нравится это.
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

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

    upload_2016-7-5_22-32-5.png
    --- Объединённое сообщение, 5 июл 2016 ---
    Еще вариант (не проверял): можно создать ярлык на одну из папок устройства.
    И нужные файлы бросать на него.
    А если через скрипт, то передавать аргументом:
    Код (Text):
    ярлык.lnk "файл"
     
    Последнее редактирование: 5 июл 2016
  5. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    Не, у меня никак не перетаскивает.
    :{20D24FE0-3AEA-1069-A2D8-08002B30309D} Такой и имя Устройства (и диски в пк, а так же папки музыка..)
     
    Последнее редактирование: 5 июл 2016
  6. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.471
    Симпатии:
    4.303
    Phoenix, теперь создавай VBS-файл:

    Код (Text):

    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.Namespace("::{20D24FE0-3AEA-1069-A2D8-08002B30309D}")
    objFolder.CopyHere(WScript.Arguments(0))
     
    Затем перетащи на него какой-нибудь файл, который хочешь записать на свое устройство.
    Учти, что файл возможно нельзя записать напрямую на устройство, а только в один из его подкаталогов. Тогда укажи этот подкаталог здесь ...08002B30309D}\подкаталог")
    Также, вероятно там нужен 1 знак двоеточия, а не два ::{20D24FE0- (поэкспериментируй).
    --- Объединённое сообщение, 5 июл 2016 ---
    Стоп. Это не тот. Это GUID от "Мой компьютер". А этого устройства GUID не показывает? А оно вообще есть в папке "Мой компьютер" ?
    --- Объединённое сообщение, 5 июл 2016 ---
    Создай ярлык на одну из папок на этом устройстве и пришли мне его заархивированным.
     
    Последнее редактирование: 5 июл 2016
    Phoenix нравится это.
  7. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.197
    Симпатии:
    4.969
    Код (DOS):

      \\?\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:\
    Код (DOS):
    "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.
     
  8. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.471
    Симпатии:
    4.303
    Вот это
    \\?\Volume{7bece71e-602e-11e4-9882-806e6f6e6963}\
    и это
    \\?\Volume{7bece71f-602e-11e4-9882-806e6f6e6963}\
    попробуй ввести в проводник. Что получишь?

    Это ты что-то неправильно сделал.
     
  9. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.197
    Симпатии:
    4.969
    Попробую,как думаешь эти имена на всех пк будут соответствовать?
     
  10. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    В режиме USB как обычный съёмный диск
    \\?\Volume{35a0b298-37ea-11e6-93f0-6cf04949e3bc}\
    D:\
    В шторке (свайп пальцем сверху вниз экрана) разве нет - usb подключение. Появится робот.
    Screenshot_2016-07-05-22-12-16.png Screenshot_2016-07-06-08-37-53.png Screenshot_2016-07-06-08-50-47.png
     
  11. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    mypc.png yaris.png folder.png usb.png
    В MTP ярлыки не создать, в USB можно, как с обычной флэшкой и проблем нет копировать через ярлык.
    Второй скрипт не хочет.
    На Yaris_M можно создать ярлык и копировать в него, точнее на внешний SD. На внутренние папки ярлык нельзя сделать.
     
    Последнее редактирование: 6 июл 2016
    Dragokas и Kиpилл нравится это.
  12. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.471
    Симпатии:
    4.303
    Думаю, что на всех будут отличаться. Но если зацепится за какую-то константу или хотя бы метод определения, то вполне можно написать скрипт автоматического определения.

    Phoenix, понятно. Все из-за протокола. Но если иконка высвечивается в папке "Мой компьютер", то каким-то образом все равно организуется связь с shell.
    Жаль, у себя не на чем проверить.
     
  13. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.197
    Симпатии:
    4.969
    Получаю устроиство не готово - нет доступа.
    Видимо защита стоит или имеется тип каталога с ограничениями?
    upload_2016-7-6_23-37-18.png
    --- Объединённое сообщение, 6 июл 2016, Дата первоначального сообщения: 6 июл 2016 ---
    Ну нету...система обновлена.
    Чушь какая то.
     
  14. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.471
    Симпатии:
    4.303
    Скорее всего это от кард-ридера какого-то GUID.
    Переделанный лог будет?
    --- Объединённое сообщение, 6 июл 2016 ---
    Koza Nozdri, давай так: сними отчет API Monitor-ом. В процессе мониторинга скопируй файл на это устройство.
    И напиши здесь в теме имя файла + выложи сам отчёт.

    А я как будет время гляну, как система это делает.
     
  15. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

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

    Мне кажется редирект где то тут происходит.
    --- Объединённое сообщение, 6 июл 2016 ---
    Щас сделаю.
     
  16. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.471
    Симпатии:
    4.303
    всего лишь временный кеш.
    если там какой-то свой драйвер, то он все равно должен предоставлять какое-то API, даже если недокументированное.
     
    Kиpилл нравится это.
  17. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.197
    Симпатии:
    4.969
    не понятно как остановить захват и сохранить лог - такой пункт отсутствует в программе

    то же самое
     
  18. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.471
    Симпатии:
    4.303
    А он и не начался. Я забыл написать, что мониторить нужно процесс 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, а тебе поддержка каких ОС нужна?
     
    Kиpилл нравится это.
  19. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.197
    Симпатии:
    4.969
    Я так и сделал,мониторинг начался,но в меню file нет вариантов кроме как начать мониторинг нового процесса и выход.
    Проблема сбора лога именно в том,что непонятно как его сохранить.
    Из за временных (надеюсь) проблем с dr.web я на сейчас вынужден приостановить попытки собрать информацию данной программой,в пятницу либо субботу реабилитируюсь.

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

    Похоже если с api не сработает,то придется оставить затею?
     
  20. Phoenix
    Оффлайн

    Phoenix Активный пользователь

    Сообщения:
    1.839
    Симпатии:
    1.829
    Команда adb push

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

    [​IMG]

    Если бы мы не сбросили картинку в папку с инструментами андроид (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 подключения - он используется по умолчанию обычно - это безопаснее.
    --- Объединённое сообщение, 7 июл 2016 ---
    Правда ещё в ядре может быть прописано
    /default.prop
    persuist.sys.usb.config=mtp,mass_storage
    У ядра приоритет.
    Сделать это можно и в самом boot.img (если надо раскажу и покажу)
     
    Последнее редактирование: 7 июл 2016
    Dragokas нравится это.

Поделиться этой страницей