|
v7: Как определить, что подключение через OLE | ☑ | ||
---|---|---|---|---|
0
droff
10.12.11
✎
12:20
|
Добрый день, коллеги.
Может быть кто-то поможет советом. Мне необходимо определить в ПриНачалеРаботыСистемы(), что текущий сеанс открыт через OLE. |
|||
1
Дядя Васька
10.12.11
✎
12:22
|
лучше сразу уточни зачем, а то может не так уж и необходимо...
|
|||
2
droff
10.12.11
✎
12:28
|
Хочу, если подключение через OLE некоторые компоненты не подгружать.
|
|||
3
miki
10.12.11
✎
12:30
|
возможно, это то, что ты ищешь:
Как определить источник обращения по OLE? |
|||
4
Дядя Васька
10.12.11
✎
12:33
|
Хм... а разве по оле не работают транзакции? Никогда бы не подумал...
|
|||
5
droff
10.12.11
✎
12:33
|
(3) Большое спасибо. Попробую.
|
|||
6
miki
10.12.11
✎
12:34
|
(4)от места зависит, как я понял...
|
|||
7
droff
10.12.11
✎
12:49
|
(3) Не работает такой вариант. =(
|
|||
8
miki
10.12.11
✎
12:51
|
сорри, не проверял...
|
|||
9
droff
10.12.11
✎
12:52
|
(8) Других идей нет?
|
|||
10
miki
10.12.11
✎
12:54
|
(9)разные пользователи для разных режимов, как вариант.
|
|||
11
droff
10.12.11
✎
12:56
|
Спасибо. Думал над этим, но не гибко получается.
|
|||
12
DJ Anthon
10.12.11
✎
13:32
|
ШелСкрипт = СоздатьОбъект("WScript.Shell");
Локатор=СоздатьОбъект("wbemscripting.swbemlocator"); Сервис=Локатор.ConnectServer(Компьютер,"root\cimv2"); Выполнение=ШелСкрипт.Exec("rundll32.exe kernel32,Sleep"); Процесс=Сервис.Get("Win32_Process.Handle="+Выполнение.ProcessID); ПроцессИД=Процесс.ParentProcessID; Процесс.Terminate(); Процесс=Сервис.Get("Win32_Process.Handle="+ПроцессИД); Если Найти(Процесс.CommandLine,"-Embedding")>0 Тогда //Это ОЛЕ Иначе Сообщить("Нифига не ОЛЕ"); КонецЕсли; |
|||
13
DJ Anthon
10.12.11
✎
13:33
|
если сработает, то скажешь спасибо абрахамсу ))
|
|||
14
droff
10.12.11
✎
13:33
|
Может быть кому-нибудь пригодится.
Нашел на старой мисте: locator=СоздатьОбъект("wbemscripting.swbemlocator"); service=locator.connectserver(); WSHShell=createobject("WScript.Shell"); oExec=WSHShell.Exec("rundll32 kernel32,SleepEx"); ProcessId=service.Get("Win32_Process.Handle="+oExec.ProcessId).ParentProcessId; oExec.Terminate(); CommandLine=service.Get("Win32_Process.Handle="+ProcessId).CommandLine; ТипЗапуска=""; Если Найти(CommandLine,"-Embedding")>0 Тогда ТипЗапуска="OLE"; Иначе ТипЗапуска="Не OLE"; КонецЕсли; Сообщить(ТипЗапуска+" "+CommandLine); Огромный привет и благодарность smaharbA. |
|||
15
droff
10.12.11
✎
13:34
|
Блин, опередили. =)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |