private void UnmapDriveButton_Click(object sender, EventArgs e) { var selectedDrive = DriveLetter.SelectedItem as WslMappedDriveInfo; if (selectedDrive == null) { return; } int flags = 0; if (PersistentConnection.Checked) { flags += NativeMethods.CONNECT_UPDATE_PROFILE; } var resultCode = NativeMethods.WNetCancelConnection2A(selectedDrive.DriveName, flags, Convert.ToInt32(false)); if (resultCode > 0) { var message = new Win32Exception(resultCode).Message; MessageBox.Show(this, message, Text, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); } DataSourceRefresher.RunWorkerAsync(); }
private void MapDriveButton_Click(object sender, EventArgs e) { var selectedDrive = DriveLetter.SelectedItem as WslMappedDriveInfo; if (selectedDrive == null) { return; } var targetDistro = TargetDistro.SelectedItem as string; if (string.IsNullOrWhiteSpace(targetDistro)) { return; } Process.Start(new ProcessStartInfo( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "wsl.exe"), $@"-d {targetDistro} -- exit") { UseShellExecute = false, WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), CreateNoWindow = true, }).WaitForExit(); var parameters = new NativeMethods.NetworkResource() { iScope = 2, iType = NativeMethods.RESOURCETYPE_DISK, iDisplayType = 3, iUsage = 1, sRemoteName = $@"\\wsl$\{TargetDistro.SelectedItem}", sLocalName = selectedDrive.DriveName, }; var flags = 0; if (PersistentConnection.Checked) { flags += NativeMethods.CONNECT_UPDATE_PROFILE; } var resultCode = NativeMethods.WNetAddConnection2A(ref parameters, null, null, flags); if (resultCode > 0) { var message = new Win32Exception(resultCode).Message; MessageBox.Show(this, message, Text, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); } else { Process.Start(new ProcessStartInfo(selectedDrive.DriveName) { UseShellExecute = true, }); } DataSourceRefresher.RunWorkerAsync(); }
private void MapAsDriveForm_Load(object sender, EventArgs e) { DataSourceRefresher.RunWorkerAsync(); }