Skip to content

Instantly share code, notes, and snippets.

@San3ko
Created October 8, 2013 11:49
Show Gist options
  • Save San3ko/6883500 to your computer and use it in GitHub Desktop.
Save San3ko/6883500 to your computer and use it in GitHub Desktop.
получение pid в 1с
Функция ПолучитьPID()
Перем oLocator, oService, oShell, oApp, oChildProcess;
Перем чPID;
чPID = -1;
Попытка
oLocator = СоздатьОбъект("WbemScripting.SWbemLocator");
oService = oLocator.ConnectServer(".", "root\CIMV2");
// Запускаем дочерний rundll32.exe
oShell = СоздатьОбъект("WScript.Shell");
oApp = oShell.Exec("rundll32.exe kernel32,Sleep");
// Получаем rundll32 по PID'у
oChildProcess = oService.Get("Win32_Process.Handle=" + oApp.ProcessID);
// Получаем PID родительского процесса - 1с
чPID = oChildProcess.ParentProcessID;
// Завершаем rundll32, чтобы не мусорить
oChildProcess.Terminate();
Исключение
// нуу, может не быть прав на эти вещи, например.
КонецПопытки;
Возврат чPID;
КонецФункции // ПолучитьPID()
//________________________________________________________________________________
Процедура Сформировать()
Сообщить("PID: " + ПолучитьPID());
КонецПроцедуры // Сформировать()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment