Process.Start 이용한 네트워크 드라이브 연결 & 콘솔창 숨기기

교교 2014.04.25 10:17:54 *: Public Class Form1
Dim StartCMD As New ProcessStartInfo("CMD.EXE")
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
StartCMD.WindowStyle = ProcessWindowStyle.Minimized
StartCMD.WindowStyle = ProcessWindowStyle.Hidden
StartCMD.CreateNoWindow = True
StartCMD.UseShellExecute = False
StartCMD.Arguments = "/c NET USE M: \\192.168.137.117\vb_test /PERSISTENT:YES"
Process.Start(StartCMD)
End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
StartCMD.WindowStyle = ProcessWindowStyle.Minimized
StartCMD.WindowStyle = ProcessWindowStyle.Hidden
StartCMD.CreateNoWindow = True
StartCMD.UseShellExecute = False
StartCMD.Arguments = "/c net use M: /del"
Process.Start(StartCMD)
End Sub
End Class

탐색기에서 특정 드라이브 숨기기

 

레지스트리를 수정하면 되는데 그 정보는 다음과 같다.

Registry Settings

User Key: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

System Key: [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

Value Name: NoDrives

Data Type: REG_DWORD (DWORD Value)

NoDrives 라는 값에 대해서 주의해야 한다. 이 값은 32비트 워드로 컴퓨터에 있는 로컬 및 네트워크 드라이브를 정의하는데 사용된다. 32비트 중 하위 26비트는 A드라이브 부터 Z드라이브까지를 의미한다. 각 비트를 0으로 설정하면 드라이브가 보이게 되고 1로 설정하면 안보이게 된다.

16진수가 어렵다면 다음의 10진수를 알아두도록 한다.

A: 1, B: 2, C: 4, D: 8, E: 16, F: 32, G: 64, H: 128, I: 256, J: 512, K: 1024, L: 2048, M: 4096, N: 8192, O: 16384, P: 32768, Q: 65536, R: 131072, S: 262144, T: 524288, U: 1048576, V: 2097152, W: 4194304, X: 8388608, Y: 16777216, Z: 33554432, ALL: 67108863

예를 들어, A 와 D 드라이브를 숨기고 싶다면 1 + 8 하면 된다. 즉 9가 답이다.

만약 모든 드라이브를 안보이게 하고 싶다면 "67108863"으로 설정하면 된다.