我如何获得进程用户名

时间:2014-11-09 12:13:02

标签: vb.net process

我想尝试p.StartInfo.UserName获取进程用户名,但它返回空字符串 我从Windows服务运行此代码,因为我需要知道用户如何从服务登录PC并编写事件日志

2 个答案:

答案 0 :(得分:0)

Public Function GetUserName(ByVal ProcessName As String)
        Dim selectQuery As SelectQuery = New SelectQuery("Win32_Process")
        Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher(selectQuery)
        Dim y As System.Management.ManagementObjectCollection
        y = searcher.Get
        For Each proc As ManagementObject In y
            Dim s(1) As String
            proc.InvokeMethod("GetOwner", CType(s, Object()))
            Dim n As String = proc("Name").ToString()
            If n = ProcessName & ".exe" Then
                Return ("User: " & s(1) & "\\" & s(0))
            End If
        Next
    End Function

答案 1 :(得分:0)

Me.txtDomain.Text = Environment.UserDomainName

var report = SpreadsheetApp.getActive(); var pdfName = "Angebot"; var sheetName = "Angebot"; var sourceSheet = report.getSheetByName(sheetName); SpreadsheetApp.getActiveSpreadsheet().toast('Creating the PDF'); // export url var url = 'https://docs.google.com/spreadsheets/d/'+report.getId()+'/export?exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx + '&size=A4' // paper size legal / letter / A4 + '&portrait=true' // orientation, false for landscape + '&fitw=true' // fit to page width, false for actual size + '&sheetnames=false&printtitle=false' // hide optional headers and footers + '&pagenumbers=false&gridlines=false' // hide page numbers and gridlines + '&fzr=false' // do not repeat row headers (frozen rows) on each page + '&gid='+sourceSheet.getSheetId(); // the sheet's Id + '&top_margin=0' + '&left_margin=0' + '&right_margin=0' + '&bottom_margin=0' var token = ScriptApp.getOAuthToken(); // request export url var response = UrlFetchApp.fetch(url, { headers: { 'Authorization': 'Bearer ' + token } }); var theBlob = response.getBlob().setName(pdfName+'.pdf'); //var attach = {fileName:'Monthly Report.pdf',content:pdf, mimeType:'application/pdf'}; var name = report.getRange("H1:H1").getValues(); // Get Name var emailTo = report.getRange("H2:H2").getValues(); // Get email var period = report.getRange("H3:H3").getValues(); // Get Reporting Period var subject = " - TEST Monthly Report - " + period; // Construct the Subject Line var message = "Hi " + name + ", here is your latest report for " + period; // email body text // download pdf }