2016-09-01 21 views
0

私はvb.netを作成してADから属性を取得し、ローカル変数を作成しました。 これは問題ありません。問題は、点滅するカーソルだけでコンソールウィンドウを開いたままにしておくことです。理想的には、変数を作成するとすぐに終了します。vbコンソールアプリケーションが閉じない

は、コンソールを閉じていない、なぜ私は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

さて、Environment.Exit(0)は動作しておらず、あなたはコンソールアプリケーション内にいますnを試してみてください

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 
は、私はあなたのコードを実行したとき、それは、タスクを完了していないので、それが閉じていない可能性がありますことをもう一つの理由がある

、それは完全なdidntの、私はこのエラー

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

あなたはdidnの以来を得ましたあなたの質問にこれを言及していない、あなたはこのエラーを取得didntを推測していますか?

+0

これは間違いなく機能しています。あなたはそれが機能するためにドメインに接続している間に、ドメインアカウントにログインしている間にそれを実行する必要があります。 あなたの提案に従えば同じ結果が得られます。 –

+0

行単位でステップ実行するとどうなりますか? – Werdna

+0

ありがとうWerdna。それが働いていることが判明し、私はちょっと待っていました。 –

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 

エンドモジュール

+0

_ "Environment.Exit(0)を追加しようとしました" _ –

0

はこれを試してみてください:

Application.Exit 

を、私はそれはあなたのプロジェクトの設定の原因だと思う、私はそのような問題があったことがない

+0

windows.formsをインポートしない限り、これはうまく動作しません。 – Werdna

0

私はちょっと待っていました。

関連する問題