![]() |
Neste artigo vou mostrar uma aplicação Windows Forms que realiza algumas operações do Windows usando o namespace System.Diagnostics e o método Process.Start. |
![]() |
Os namespaces filhos contêm tipos para interagir com ferramentas de análise de código, oferecer suporte a contratos, estender o suporte em tempo de design para a instrumentação e monitoramento de aplicativos, registrar dados de eventos usando o subsistema de Rastreamento de Eventos para Windows (ETW), ler e gravar logs de evento, coletar dados de desempenho e ler e gravar informações de símbolos de depuração.
O método Process.Start inicia um recurso de processo e o associa um componente Process que fornece acesso a processos locais e remotos e permite que você inicie e pare os processos do sistema local.
Pois vamos usar esses recursos em uma aplicação Windows Forms para realizar operações no Windows.
Recursos Usados
Criando o projeto Windows Forms
Abra o VS 2017 Community e crie um novo projeto (File-> New Project) usando a linguagem C# e o template Windows Forms App (.NET Framework).
Informe um nome a seu gosto. Eu vou usar o nome OperacoesWindows;
No formulário Form1 do projeto vamos usar basicamente os controles : Label, TextBox, GroupBox, Button e ListBox.
Disponha os controles conforme o leiaute da figura abaixo:
![]() |
A seguir inclua no formulário os seguintes namespaces:
using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.Drawing.Printing;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
A seguir temos o código completo do formulário
Form1.cs :
public partial class Form1 : Form
{
enum RecycleFlags : uint
{
SHERB_NOCONFIRMATION = 0x00000001,
SHERB_NOPROGRESSUI = 0x00000001,
SHERB_NOSOUND = 0x00000004
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
label2.Text = "Nome do Computador : " + Environment.MachineName;
}
[DllImport("Shell32.dll", CharSet = CharSet.Unicode)]
static extern uint SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath,RecycleFlags dwFlags);
private void btnDesligar_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("ShutDown", "/s");
}
private void btnReiniciar_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("ShutDown", "/r");
}
private void btnDesligarWindows_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("ShutDown", "/l");
}
[DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi)]
protected static extern int mciSendString(string lpstrCommand,StringBuilder lpstrReturnString,
int uReturnLength,IntPtr hwndCallback);
private void btnLimparLixeira_Click(object sender, EventArgs e)
{
uint result = SHEmptyRecycleBin(IntPtr.Zero, null, 0);
}
private void btnEjetarCDRom_Click(object sender, EventArgs e)
{
int ret = mciSendString("set cdaudio door open", null, 0, IntPtr.Zero);
}
private void btnFecharCdRoom_Click(object sender, EventArgs e)
{
int ret = mciSendString("set cdaudio door closed", null, 0, IntPtr.Zero);
}
private void btnPararInternet_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("rasdial", "/disconnect");
}
private void btnAbrirNavegador_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("iexplore.exe", textBox1.Text.Trim () );
}
private void btnListaImpressoras_Click(object sender, EventArgs e)
{
GetImpressorasInstaladas();
}
private void GetImpressorasInstaladas()
{
foreach (string nomeImpressora in PrinterSettings.InstalledPrinters)
lbImpressoras.Items.Add(nomeImpressora);
}
private void btnPaginaInicial_Click(object sender, EventArgs e)
{
RegistryKey user = Registry.CurrentUser;
RegistryKey change = user.OpenSubKey("Software", true).OpenSubKey("Microsoft", true)
.OpenSubKey("Internet Explorer", true).OpenSubKey("Main", true);
change.SetValue("Start Page", textBox2.Text.ToString () );
MessageBox.Show("Sua Home Page : " + textBox2.Text);
}
private void btnEncerrar_Click(object sender, EventArgs e)
{
DialogResult Result = MessageBox.Show("Deseja sair ?", "Sair", MessageBoxButtons.YesNo);
if (Result == DialogResult.Yes)
this.Close();
}
private void btnExecutarComandos_Click(object sender, EventArgs e)
{
AbrirJanelaComandos();
}
private static void AbrirJanelaComandos()
{
// Define uma instancia da classe ProcessStartInfo
ProcessStartInfo pro = new ProcessStartInfo();
//Define o FileName a ser iniciado
pro.FileName = "cmd.exe";
Process proStart = new Process();
// Define o nome do Processo
proStart.StartInfo = pro;
// Chama o método Start da clase Process
proStart.Start();
}
} |
Simples e funcional...
Pegue
o projeto completo aqui :
OperacoesWindows.zip
"Com o
ouvir dos meus ouvidos ouvi, mas agora te vêem os meus olhos.
Por isso me abomino e me arrependo no pó e na cinza. "
Jó 42:5,6
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
Terminal de linha de comando - Macoratti
Criando um serviço do Windows - Macoratti
C# - Tratando com serviços do Windows - Macoratti
C# - Agendando Tarefas no Windows - Macoratti
C# - Criando serviços para Windows com o TopShelf - Macoratti