Как определить существует ли папка
#1
Отправлено 30 сентября 2010 - 10:00
в 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"
да, в этой папке тоже будут папки. и тоже надо будет определить их существование =) так-же не представляю себе как это сделать.
#2
Отправлено 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" ? Если открыть "Мой компьютер", то команды "Создать" нет.
Если же вы собираетесь создавать папки в обычных папках, то в этом случае проблем не будет.
#3
Отправлено 30 сентября 2010 - 11:02
#4
Отправлено 30 сентября 2010 - 12:47
#5
Отправлено 30 сентября 2010 - 13:46
Похоже это все-таки не папка появляется, а монтируется устройство. Так ? т.е Вам нужно проверить , что появилось устройство такое-то и примонтировалось в папку с именем таким-тоне имею ни малейшего понятия каким образом там создается папка. она появляется в типе "Others", рядом с панелью управления. создается при инсталляции нашего ПО. из примеров могу привести ПО от Нокии/Самсунга. после их установки, рядом с панелью управления появляется папка для доступа к файлам на телефоне.
#6
Отправлено 30 сентября 2010 - 14:30
//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 <<<<< }
#7
Отправлено 01 октября 2010 - 08:26
да, похоже что это то что надо. а нет-ли какого-то метода для обхода папок не из дерева, а из правой части окна? тестирование предполагает использование как эксплорера так и обычного окна.Если надо проверить именно в My Computer, то можно просто взять элементы дерева непосредственно из окна - где-то так:
скриншоты выложить не могу, у нас строгая политика на счет неразглашения :/
подкидывали идею на счет WSH и жесткого скриптинга, но не получилось создать ActiveX компонент. выбрасывалась ошибка, связанная с настройками разрешения использования ActiveX.
#8
Отправлено 01 октября 2010 - 11:43
#9
Отправлено 06 октября 2010 - 11:59
нет там такого свойства ^| вроде есть, а во время выполнения скрипта пропадает.Точно так же как и с деревом - есть проперти wItem у парента правой части, только там несколько уровней у него wItem(i, j), где i - индекс чайлда, а j - описание (0 - name, 1 - type, 2 - total size, 3 - free space etc...но они, в зависимости от набора колонок и их порядка, могут меняться)
#10
Отправлено 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 Количество загрузок:
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных