Не нашел (или плохо искал) как получить в срипте имя компьютера на котором выполняется срипт?
Скрипты синхронизирую между всеми компами, но нужно некоторые вещи делать по-разному.
Первое что приходит на ум - проверять существвоввание какого то файла. Но "разбрасывать" флаги не хочу.
Нужно как то определить где запускается скрипт. Пододйет не только имя компа. можно получать UID пользователя, под которым выполняется FAR.
Какой ID и как можно получитьв LUA?
Получить имя компьютера из lua
- Kerberos464
- Posts: 1239
- Joined: Wed 29 Jul, 2009 20:24
- Location: Saint-Petersburg
- Has thanked: 19 times
- Been thanked: 1 time
Получить имя компьютера из lua
не силён в луа, но вроде можно делать так:
os.getenv("computername")
os.getenv("computername")
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Получить имя компьютера из lua
Не силён, а самое простое решение нашёл. Правда не знаю, будет ли это работать, если в имени есть юникод, например буквы из китайского и греческого.
Вот 2 "юникодных" решения:
(1)
win.GetEnv("computername")
и (2)
Code: Select all
local ffi=require'ffi'
ffi.cdef [[ BOOL GetComputerNameW(wchar_t* lpBuffer, DWORD* lpnSize); ]]
local wbuf = ffi.new("wchar_t[256]")
local size = ffi.new("DWORD[1]", 256)
local name = ffi.C.GetComputerNameW(wbuf, size)~=0 and win.Utf16ToUtf8(ffi.string(wbuf, 2*size[0]))
far.Show(name)