2016-09-01 5 views
0

Ich erstellte ein vb.net, um ein Attribut von AD zu erfassen und eine lokale Variable zu erstellen. Das funktioniert ganz gut, das Problem ist, dass das Konsolenfenster nur mit einem blinkenden Cursor geöffnet bleibt. Im Idealfall würde es schließen, sobald es die Variable erstellt hat.vb Konsolenanwendung schließt nicht

Ich habe versucht Irgendwelche Ideen 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 

Hinzufügen, warum es nicht um die Konsole zu schließen?

Antwort

0

Ok, seit Environment.Exit(0) funktioniert nicht und Sie befinden sich in einer Konsolenanwendung n, versuchen Sie dies,

Zum Project>Add Reference>Assemblies>Framework und die Suche nach System.Windows.Forms klicken Sie auf das Kontrollkästchen und klicken Sie dann auf die Ok nach, dass diese an Ihrem Code hinzuzufügen.

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 

Ein weiterer Grund, dass es zu schließen möglicherweise nicht, weil es die Aufgabe nicht abgeschlossen wird, wenn ich Ihren Code lief, es hat nicht vollständig und ich habe diesen Fehler

Additional information: No mapping between account names and security IDs was done. (Exception from HRESULT: 0x80070534)

Da Sie didn Erwähnen Sie das nicht in Ihrer Frage, ich nehme an, Sie haben diesen Fehler nicht bekommen?

+0

Es funktioniert definitiv. Sie müssen es ausführen, während Sie bei einem Domänenkonto angemeldet sind, während Sie mit der Domäne verbunden sind, damit es funktioniert. Wenn Sie Ihrem Vorschlag folgen, erhalten Sie das gleiche Ergebnis. –

+0

Was passiert, wenn Sie Zeile für Zeile durchgehen? – Werdna

+0

Danke Werdna. Stellt sich heraus, es funktioniert und ich war nur ungeduldig. –

0

Modul MeineAnw

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 

End Module

+0

_ "Ich habe versucht, Environment.Exit (0)" _ –

0

Try this:

Application.Exit 

Ich denke, es ist Ursache für die Einstellungen Ihres Projekts ist, ich hatte noch nie so eine Sache

+0

dies wird nicht funktionieren, es sei denn er importiert windows.forms – Werdna

0

Stellt sich heraus, ich war nur ungeduldig und es schließt sich genügend Zeit.