Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   как порограммно узнать каким файлом запущена 7-ка (http://forums.kuban.ru/f1040/kak_porogrammno_uznat-_kakim_fajlom_zapushena_7-ka-4369646.html)

Струнин 18.06.2013 13:32

как порограммно узнать каким файлом запущена 7-ка
 
Имя EXE-шника, с помощью которого запущена программа, как узнать программно?
Без компонентов желательно :)
Спасибо :)

zaic 18.06.2013 14:43

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate**!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'ipviews.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next


Я так ipview снимаю на ХР, файл скрипта (vbs). Можно что-то подобное написать для разных 1cv7-файлов.

Helen1986 18.06.2013 15:22

чтото типа "КаталогПрограммы" "КаталогБазы" и т.д.
а там найти exe

просто 1це под руками нет

Струнин 18.06.2013 15:28

Всё.
Спасибо большое!

вот так работает:
WshShell = СоздатьОбъект("WScript.Shell");
oExec = WshShell.Exec("rundll32.exe kernel32,SleepEx");
Locator=СоздатьОбъект("WbemScripting.SWbemLocator");
Service=Locator.ConnectServer();
ProcessID=Service.Get("Win32_Process.Handle="+oExec.ProcessID).ParentProcessID;
oExec.Terminate();
Прог1с = СокрЛП(Строка(Service.Get("Win32_Process.Handle=" + ProcessID).ExecutablePath));
Сообщить("Программа : " + Прог1с);

Helen1986 18.06.2013 15:30

как много у нас любителей извращений

Helen1986 18.06.2013 15:34

КаталогПрограммы
Получить каталог программы.
Синтаксис:
КаталогПрограммы()
Англоязычный синоним:
BinDir
Возвращаемое значение:
Строковое значение, содержащее имя каталога программы.

Описание:
Функция КаталогПрограммы возвращает имя каталога, где размещены исполняемые файлы системы 1С:Предприятие.

Пример:
МояДирПрог = КаталогПрограммы();

Струнин 18.06.2013 15:43

Helen1986
ну я вначале так сделал вроде того...
потом, думаю, может оказаться не совсем точно...

кп = КаталогПрограммы();
Прог1С = "";
Если ФС.СуществуетФайл(кп+"1cv7s.exe") = 1 Тогда
Прог1С = кп+"1cv7s.exe";
ИначеЕсли ФС.СуществуетФайл(кп+"1cv7.exe") = 1 Тогда
Прог1С = кп+"1cv7.exe";
ИначеЕсли ФС.СуществуетФайл(кп+"1cv7l.exe") = 1 Тогда
Прог1С = кп+"1cv7l.exe";
КонецЕсли;

извиняюсь

Струнин 18.06.2013 15:44

Спасибо :)


Текущее время: 23:41. Часовой пояс GMT +3.