Перейти к содержимому

Фотография

Как определить существует ли папка


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 Qwertylolman

Qwertylolman

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Кузнецов Евгений Геннадиевич

Отправлено 30 сентября 2010 - 10:00

TC 7.52 JScript
в My Computer должна создавать папка на подобии "Control Panel". как определить её существование? пути вида "C:\foldername" у неё нет.

пробовал Aliases.Explorer.wndCabinetWClass.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.Exists("foldername") но выдает эксепшн "Object doesn't support this property or method"

да, в этой папке тоже будут папки. и тоже надо будет определить их существование =) так-же не представляю себе как это сделать.
  • 0

#2 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 30 сентября 2010 - 10:53

TC 7.52 JScript
в My Computer должна создавать папка на подобии "Control Panel". как определить её существование? пути вида "C:\foldername" у неё нет.

пробовал Aliases.Explorer.wndCabinetWClass.SHELLDLL_DefView.DUIViewWndClassName.DirectUIHWND.CtrlNotifySink.FolderView.Exists("foldername") но выдает эксепшн "Object doesn't support this property or method"

да, в этой папке тоже будут папки. и тоже надо будет определить их существование =) так-же не представляю себе как это сделать.


А как Вы собираетесь создавать папку в окне "My Computer" ? Если открыть "Мой компьютер", то команды "Создать" нет.
Если же вы собираетесь создавать папки в обычных папках, то в этом случае проблем не будет.
  • 0

#3 Qwertylolman

Qwertylolman

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Кузнецов Евгений Геннадиевич

Отправлено 30 сентября 2010 - 11:02

не имею ни малейшего понятия каким образом там создается папка. она появляется в типе "Others", рядом с панелью управления. создается при инсталляции нашего ПО. из примеров могу привести ПО от Нокии/Самсунга. после их установки, рядом с панелью управления появляется папка для доступа к файлам на телефоне.
  • 0

#4 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 30 сентября 2010 - 12:47

Можете запостить сюда скриншоты Explorer'а с My Computer и с содержимым этой вашей папки?
  • 0

#5 Tuchka_84

Tuchka_84

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • ФИО:Маша

Отправлено 30 сентября 2010 - 13:46

не имею ни малейшего понятия каким образом там создается папка. она появляется в типе "Others", рядом с панелью управления. создается при инсталляции нашего ПО. из примеров могу привести ПО от Нокии/Самсунга. после их установки, рядом с панелью управления появляется папка для доступа к файлам на телефоне.

Похоже это все-таки не папка появляется, а монтируется устройство. Так ? т.е Вам нужно проверить , что появилось устройство такое-то и примонтировалось в папку с именем таким-то
  • 0

#6 NightSpirit

NightSpirit

    Новый участник

  • Members
  • Pip
  • 29 сообщений


Отправлено 30 сентября 2010 - 14:30

Если надо проверить именно в My Computer, то можно просто взять элементы дерева непосредственно из окна - где-то так:

//Run My Computer folder (by default window is opened with focus on My Computer item)
Win32API.WinExec(Sys.OSInfo.WindowsDirectory+"\\explorer.exe /E,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", SW_NORMAL); 
Delay(2000);
//get tree object
testWindow = Sys.Process("Explorer").Window("ExploreWClass", "My Computer", 1).Window("BaseBar", "", 1).Window("ReBarWindow32", "", 1).Window("SysTreeView32", "", 1); 
//walk through tree elements
for (i=0; i<testWindow.wItemCount; i++) {
  Log.Message(testWindow.wItem(i));
//>>>>> insert your verification here <<<<<
}

  • 0

#7 Qwertylolman

Qwertylolman

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Кузнецов Евгений Геннадиевич

Отправлено 01 октября 2010 - 08:26

Если надо проверить именно в My Computer, то можно просто взять элементы дерева непосредственно из окна - где-то так:

да, похоже что это то что надо. а нет-ли какого-то метода для обхода папок не из дерева, а из правой части окна? тестирование предполагает использование как эксплорера так и обычного окна.

скриншоты выложить не могу, у нас строгая политика на счет неразглашения :/

подкидывали идею на счет WSH и жесткого скриптинга, но не получилось создать ActiveX компонент. выбрасывалась ошибка, связанная с настройками разрешения использования ActiveX.
  • 0

#8 NightSpirit

NightSpirit

    Новый участник

  • Members
  • Pip
  • 29 сообщений


Отправлено 01 октября 2010 - 11:43

Точно так же как и с деревом - есть проперти wItem у парента правой части, только там несколько уровней у него wItem(i, j), где i - индекс чайлда, а j - описание (0 - name, 1 - type, 2 - total size, 3 - free space etc...но они, в зависимости от набора колонок и их порядка, могут меняться)
  • 0

#9 Qwertylolman

Qwertylolman

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Кузнецов Евгений Геннадиевич

Отправлено 06 октября 2010 - 11:59

Точно так же как и с деревом - есть проперти wItem у парента правой части, только там несколько уровней у него wItem(i, j), где i - индекс чайлда, а j - описание (0 - name, 1 - type, 2 - total size, 3 - free space etc...но они, в зависимости от набора колонок и их порядка, могут меняться)

нет там такого свойства ^| вроде есть, а во время выполнения скрипта пропадает.
  • 0

#10 NightSpirit

NightSpirit

    Новый участник

  • Members
  • Pip
  • 29 сообщений


Отправлено 06 октября 2010 - 12:26

странно...
у меня работает без проблем:
testWindow =    Sys.Process("Explorer").Window("CabinetWClass", "My Computer", 1).Window("SHELLDLL_DefView", "", 1).Window("DUIViewWndClassName", "", 1).Window("DirectUIHWND", "", 1).Window("CtrlNotifySink", "", 1).Window("SysListView32", "FolderView", 1);
  itemcount =     testWindow.wItemCount;
  columncount =   testWindow.wColumnCount
  for (i=0; i<itemcount; i++) {    
    sOut = "";
    for (j=0; j<columncount; j++) {
      sOut = sOut+testWindow.wItem(i, j)+" ";  
    } 
    Log.Message(sOut);           
  }
получаю в логе:
Прикрепленный файл  10-6-2010 3-23-35 PM.png   11,08К   11 Количество загрузок:
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных