Есть ли рабочий пример в коде Clarion получения SID (GUID) и Login имени текущего локального и доменного пользователя Windows из приложения Clarion без прав администратора?

Модератор: Дед Пахом
Developer
kreator
Разграничение доступа и протокол: кто, когда и что делал и под каким логином был зарегистрирован пользователь работавший с приложением Clarion с SQL серверомkreator писал(а): 15 Декабрь 2018, 16:05Eсть функция getUserName. Без домена, кажется.С доменом надо разбираться отдельно. Могу посмотреть, что есть у нас. На память - из реестра вытаскивается. Но могу ошибаться. А зачем?
Developer
Код: Выделить всё
mOcx = Create(0, CREATE:ole)
mOcx{PROP:Create} = 'ADSystemInfo'
If mOcx{PROP:Object} Then
tcs = mOcx{'UserName'}
mOcx{PROP:Release} = 1
mOcx{PROP:deactivate} = 1
End
Destroy(mOcx)
if clip(tcs)<>''
objConnection = Create(0, CREATE:ole)
objConnection{PROP:Create} = 'ADODB.Connection'
If objConnection{PROP:Object} Then
objConnection{'Provider'} = 'ADsDSOObject'
objConnection{'Open'}
objRecordset = objConnection{'Execute("SELECT sAMAccountName, CN FROM ''LDAP://' & clip(tcs) &'''")'}
LOC:UserName=clip(objConnection{objRecordset &'.Fields.Item("sAMAccountName").Value'})
objConnection{PROP:Release} = 1
objConnection{PROP:deactivate} = 1
end
end
Destroy(objConnection)
RaFaeL
Developer
Ну так запускай утилиту из клариона. Вывод перенаправь в файл и потом можно парсить его.Через системные утилиты есть такая возможность, а вот из кода Clarion пока не обнаружил
morkovin
Код: Выделить всё
GLO:TempPath = GETTEMPPATH()
LOC:TempString = ''
GetRegSubKeys(REG_LOCAL_MACHINE , 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces' , LOC:RegSubKeysQueue)
loop i#=1 to records(LOC:RegSubKeysQueue)
get(LOC:RegSubKeysQueue , i#)
s" = GetReg(REG_LOCAL_MACHINE , 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\' & clip(LOC:RegSubKeysQueue.LOC:RegSubKeyName), 'IPAddress')
if s"[1:7]<>'0.0.0.0'
LOC:TempString = clip(LOC:TempString) & ' ' & clip(s")
end
s" = GetReg(REG_LOCAL_MACHINE , 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\' & clip(LOC:RegSubKeysQueue.LOC:RegSubKeyName), 'DhcpIPAddress')
if s"[1:7]<>'0.0.0.0'
LOC:TempString = clip(LOC:TempString) & ' ' & clip(s")
end
end
LOC:TempString = LOC:TempString[2:len(clip(LOC:TempString))]
GLO:IPAddresses = LOC:TempString
GLO:UserName = GetUserName()
GLO:ComputerName = GetReg(REG_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' , 'NV Hostname')
GLO:Domain = GetReg(REG_LOCAL_MACHINE , 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' , 'NV Domain')
kreator
Developer
Игорь, спасибо за отклик и предложение, но я сторонник по возможности, быть более независимым от сторонних утилитmorkovin писал(а): 16 Декабрь 2018, 5:17Ну так запускай утилиту из клариона. Вывод перенаправь в файл и потом можно парсить его.Через системные утилиты есть такая возможность, а вот из кода Clarion пока не обнаружил
https://docs.microsoft.com/en-us/sysint ... psloggedon
Developer
OddJob also provides the ability to pass data to a started process (via the Standard Input as well as on the command line), which allows command line applications to be run and data passed to them, as well as retrieving the result back from the process. This opens up a huge number of command line tools to your application, from simple command line clients, to command line server, compilers and even batch files.
morkovin
Очевидно, что такую информацию надо получать через веб-интерфейс из любой точки мира. Кларион тут не подходит.кто, когда и что делал и под каким логином был зарегистрирован пользователь работавший с приложением Clarion с SQL сервером
morkovin
Вернуться в «CLARION for Windows»
Создано на основе phpBB® Forum Software © phpBB Limited
Time: 0.057s | Peak Memory Usage: 1.25 МБ | GZIP: Off