Como inicio um processo, como iniciar uma URL quando o usuário clica em um botão?
Como inicio um processo, como iniciar uma URL quando o usuário clica em um botão?
Respostas:
Conforme sugerido por Matt Hamilton, a abordagem rápida em que você tem controle limitado sobre o processo é usar o método Start estático na classe System.Diagnostics.Process ...
using System.Diagnostics;
...
Process.Start("process.exe");
A alternativa é usar uma instância da classe Process. Isso permite muito mais controle sobre o processo, incluindo agendamento, o tipo de janela em que ele será executado e, mais útil para mim, a capacidade de aguardar a conclusão do processo.
using System.Diagnostics;
...
Process process = new Process();
// Configure the process using the StartInfo properties.
process.StartInfo.FileName = "process.exe";
process.StartInfo.Arguments = "-n";
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.Start();
process.WaitForExit();// Waits here for the process to exit.
Este método permite muito mais controle do que eu mencionei.
Você pode usar o método System.Diagnostics.Process.Start para iniciar um processo. Você pode até passar um URL como uma string e ele iniciará o navegador padrão.
Assim como Matt diz, use Process.Start .
Você pode passar um URL ou um documento. Eles serão iniciados pelo aplicativo registrado.
Exemplo:
Process.Start("Test.Txt");
Isso iniciará o Notepad.exe com o Text.Txt carregado.
Win32Exception
(0x80004005) "Nenhum aplicativo está associado ao arquivo especificado para esta operação"
Eu usei o seguinte no meu próprio programa.
Process.Start("http://www.google.com/etc/etc/test.txt")
É um pouco básico, mas faz o trabalho para mim.
Você pode usar esta sintaxe para executar qualquer aplicativo:
System.Diagnostics.Process.Start("Example.exe");
E o mesmo para um URL. Basta escrever seu URL entre este()
.
Exemplo:
System.Diagnostics.Process.Start("http://www.google.com");
Use a classe Process . A documentação do MSDN tem um exemplo de como usá-lo.
class ProcessStart
{
static void Main(string[] args)
{
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "ProcessStart.cs";
notePad.Start();
}
}
Declare isso
[DllImport("user32")]
private static extern bool SetForegroundWindow(IntPtr hwnd);
[DllImport("user32")]
private static extern bool ShowWindowAsync(IntPtr hwnd, int a);
E coloque isso dentro da sua função (observe que "checkInstalled" é opcional, mas se você o usar, precisará implementá-lo)
if (ckeckInstalled("example"))
{
int count = Process.GetProcessesByName("example").Count();
if (count < 1)
Process.Start("example.exe");
else
{
var proc = Process.GetProcessesByName("example").FirstOrDefault();
if (proc != null && proc.MainWindowHandle != IntPtr.Zero)
{
SetForegroundWindow(proc.MainWindowHandle);
ShowWindowAsync(proc.MainWindowHandle, 3);
}
}
}
NOTA: Não tenho certeza se isso funciona quando mais de uma instância do .exe está em execução.
Inclua o using System.Diagnostics;
.
E então chame isso Process.Start("Paste your URL string here!");
Tente algo como isto:
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;
namespace btnproce
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string t ="Balotelli";
Process.Start("http://google.com/search?q=" + t);
}
}
}
Observe que é uma página de amostra do ASP.NET como exemplo. Você deve tentar improvisar um pouco.
Para iniciar o Microsoft Word, por exemplo, use este código:
private void button1_Click(object sender, EventArgs e)
{
string ProgramName = "winword.exe";
Process.Start(ProgramName);
}
Para mais explicações, confira este link .
Se estiver usando no Windows
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.Start();
Funciona para o .Net Framework, mas para o Net core 3.1, também é necessário definir o UseShellExecute como true
Process process = new Process();
process.StartInfo.Filename = "Test.txt";
process.StartInfo.UseShellExecute = true;
process.Start();