Имя: Пароль:
1C
 
Узнаем много интересного об файле запуска 1С, даже незная его файловое имя.
0 Ковычки
 
14.10.05
16:34
Перем Свойства[34];
WshShell = CreateObject("WScript.Shell");
FSO=CreateObject("Scripting.FileSystemObject");
oExec=WshShell.exec("rundll32.exe kernel32,SleepEx");
Locator=CreateObject("WbemScripting.SWbemLocator");
Service=Locator.ConnectServer();
ProcessID=Service.Get("Win32_Process.Handle="+oExec.ProcessID).ParentProcessID;    
oExec.Terminate();
NameExe=Service.Get("Win32_Process.Handle="+ProcessID).ExecutablePath;
CommandLine=Service.Get("Win32_Process.Handle="+ProcessID).CommandLine;
Path=FSO.GetParentFolderName(NameExe);
objShell = CreateObject("Shell.Application");
objFolder = objShell.Namespace(КаталогПрограммы());
Для к=1 По 34 Цикл
   Свойства[к] = objFolder.GetDetailsOf(objFolder.Items(), к-1);
КонецЦикла;
oIE = СоздатьОбъект("InternetExplorer.Application");
oIE.navigate("about:blank");
oIE.visible = 0;
oIE.Document.write("<script language='vbscript'>
|Function GetItemPath(Obj,NumItem)
|i=Clng(NumItem)
|GetItemPath=Obj.Items().Item(i).Path
|End Function
|Function GetDetailsOf(Obj,NumItem,NumProp)
|i=Clng(NumItem)
|GetDetailsOf=obj.GetDetailsOf(Obj.Items().Item(i),NumProp)
|End Function
|</script>");
Пока oIE.Busy=-1 Цикл
   Состояние("Ждем...");
КонецЦикла;
Для i=0 По objFolder.Items().count-1 Цикл
   СвойстваФайла="";
   Если Врег(oIE.Document.script.GetItemPath(objFolder,i))=Врег(NameExe) Тогда
       СвойстваФайла="Файл - "+oIE.Document.script.GetItemPath(objFolder,i)+РазделительСтрок;
       СвойстваФайла=СвойстваФайла+"Строка запуска 1С - "+CommandLine+РазделительСтрок;
       СвойстваФайла=СвойстваФайла+"ProcessID - "+ProcessID+РазделительСтрок;
       Для к=1 По 34 Цикл
           СвойстваФайла=СвойстваФайла+""+Свойства[к]+" - "+oIE.Document.script.GetDetailsOf(objFolder,i, к-1)+РазделительСтрок;
       КонецЦикла;
       Предупреждение(СвойстваФайла);
   КонецЕсли;
КонецЦикла;
oIE.Quit();
...
Кстати тут и способ как работать с колекцией vbs из 1С
1 Волшебник
 
модератор
14.10.05
16:36
(0) Всё-таки постараюсь еще раз соблазнить тебя базой знаний. Ведь там можно сделать статью, а здесь дать ссылку на нее, как сделал romix со своей статьей. Атипичное использование компоненты УРБД (статья);

Скоро в базе знаний тоже заработает форматирование кода 1С.
2 oPIRATor
 
14.10.05
16:38
вот они... змеи искусители...
3 Ковычки
 
14.10.05
16:39
Конечно создам статью, но извини тут тоже буду публиковать
Хороший понт - дороже денег...(с)
4 Ветеран
 
14.10.05
16:39
(0) Ты б полезного чего-нибудь сделал ...
Хватит уже выставлять на показ своё достоинство ...
5 Волшебник
 
модератор
14.10.05
16:41
(3) Можно публиковать и здесь, и там. Не возбраняется.
На 4-й пост, кстати, тоже можно обратить внимание. Скромность украшает человека. :)
6 Ковычки
 
14.10.05
16:43
Дак что полезного то можно сделать, хотся за бабло, но неумею к сожалению, да и из деревни мы (почти правда, городишко 48 т.), сейчас правда работаю в другой месности, но живу все в "деревне"
7 oPIRATor
 
14.10.05
16:43
а можно я тоже... ченить полезное сделаю
8 romix
 
модератор
14.10.05
16:45
(4) Это примеры скриптов - их будет находить поиск.
Совет: будьте требовательны к себе... :-)
9 ДенисЧ
 
14.10.05
16:46
CommandLine=Service.Get("Win32_Process.Handle="+ProcessID).CommandLine;
{D:\1CBASES\LOCALTRADE\EXTFORMS\СЛУЖЕБНЫЕ\СВОЙСТВА1С.ERT(12)}: Поле агрегатного объекта не обнаружено (CommandLine)
10 Ковычки
 
14.10.05
16:47
Кстати, или нет, с Item 1С неработает, потомучто там нужен Long, а в 1С его нет :(
11 Ковычки
 
14.10.05
16:48
(9) Может буковки околорусского написания поменялись? или выкинь, я 2003 опробовал, попробую на 2000 и ХР но потом
12 ДенисЧ
 
14.10.05
16:53
(11) Не взлетела. Win3k S
13 LOD
 
14.10.05
16:53
(11) В ХР работает
14 Ковычки
 
14.10.05
16:55
Собиру весь свой хлам на той неделе опробую на 2000 и доработаю напильником
Тогда наверно и в статью
15 romix
 
14.10.05
16:59
(14) В kb.mista.ru допускается редактирование своих и чужих статей (все правки видны).