我创建了一个vb.net来从AD中获取属性并创建一个局部变量。 它做得很好,问题是它使控制台窗口打开,只有一个闪烁的光标。理想情况下,它会在创建变量后立即关闭。
我尝试添加Environment.Exit(0)
Module Module1
Sub Main()
Dim objShell
Dim objUserEnv
Dim objADSysInfo
Dim objUser
objShell = CreateObject("WScript.Shell")
objUserEnv = objShell.Environment("USER")
objADSysInfo = CreateObject("ADSystemInfo")
objUser = GetObject("LDAP://" & objADSysInfo.UserName)
' This will create the variable %ipphone%
objUserEnv("ipphone") = objUser.ipPhone
End Sub
End Module
为什么它没有关闭控制台?
答案 0 :(得分:0)
模块MyApp
Sub Main()
' Attach the event handler method
AddHandler AppDomain.CurrentDomain.ProcessExit, AddressOf MyApp_ProcessExit
Dim objShell
Dim objUserEnv
Dim objADSysInfo
Dim objUser
objShell = CreateObject("WScript.Shell")
objUserEnv = objShell.Environment("USER")
objADSysInfo = CreateObject("ADSystemInfo")
objUser = GetObject("LDAP://" & objADSysInfo.UserName)
' This will create the variable %ipphone%
objUserEnv("ipphone") = objUser.ipPhone
Environment.Exit(0)
End Sub
Private Sub MyApp_ProcessExit(sender As Object, e As EventArgs)
Console.WriteLine("App Is Exiting...")
End Sub
结束模块
答案 1 :(得分:0)
试试这个:
Application.Exit
我认为这是你项目设置的原因,我从未有过这样的事情
答案 2 :(得分:0)
好的,由于Environment.Exit(0)
不起作用且您在控制台应用程序中,请尝试此操作,
转到Project
> Add Reference
> Assemblies
> Framework
并搜索System.Windows.Forms
,点击该复选框,然后点击Ok
,然后将其添加到您的代码中。
Imports System.Windows.Forms
Module Module1
Sub Main()
Dim objShell
Dim objUserEnv
Dim objADSysInfo
Dim objUser
objShell = CreateObject("WScript.Shell")
objUserEnv = objShell.Environment("USER")
objADSysInfo = CreateObject("ADSystemInfo")
objUser = GetObject("LDAP://" & objADSysInfo.UserName)
' This will create the variable %ipphone%
objUserEnv("ipphone") = objUser.ipPhone
Application.Exit()
End Sub
End Module
它可能没有关闭的另一个原因是因为它没有完成任务,当我运行你的代码时,它没有完成,我收到了这个错误
Additional information: No mapping between account names and security IDs was done. (Exception from HRESULT: 0x80070534)
由于你在问题中没有提到这一点,我猜你没有得到这个错误?
答案 3 :(得分:0)
原来我只是不耐烦了,如果给予足够的时间,它会关闭。