Arrancar Cliente de Mail predeterminado

31/08/2004 - 10:10 por Oriol | Informe spam
Hola a todos,

En mi aplicacion WinForms con C# quiero abrir el cliente de correo por
defecto de la maquina. Me explico, En el formulario tengo un campo que
contiene el email de la empresa en cuestion, y un boton al lado con la
intencion que no tengan que copiar el email, sino que directamente puedan
enviar un correo.

El codigo que uso es este, pero el problema es que me deja una ventana del
iExplorer abierta.

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Maximized;
startInfo.Arguments = "mailto:" + this.txtEmail.Text;
Process.Start(startInfo);

Lo que quiero es que no sea dependiente de un programa en concreto, sino que
sea como un enlace web, que abre el cliente por defecto. Sin tener que
configurar cuentas ni nada de eso.

Gracias.

Saludos a todos,
Oriol.

Preguntas similare

Leer las respuestas

#6 Oriol
01/09/2004 - 10:37 | Informe spam
Hola de nuevo,

Realmente no se si me falta alguna Referencia en el proyecto o que pasa,
pero ahora me de este error:

System.ComponentModel.Win32Exception: La sección solicitada no estaba
presente en el contexto de activación
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo
startInfo)
at System.Diagnostics.Process.Start()
at PrevenControl.frmSubClienteDetalle.btnEnviar_Click(Object sender,
EventArgs e) in d:\codi font\frmsubclientedetalle.cs:line 1408
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg,
IntPtr wparam, IntPtr lparam)

Alguna idea mas? Realmente a mi se me han acabado las ideas con eso. Tambien
he probado lo que me comento Vyacheslav, y me da justamente el mismo error.

Saludos y gracias a todos.
Oriol.

"Jose Alfredo" escribió en el mensaje
news:
Prueba esto

a mi me trabaja perfecto

exeProcess=new Process();

exeProcess.StartInfo.FileName= "mailto:";

exeProcess.StartInfo.UseShellExecute = true;

exeProcess.Start();

Saludos



Jose Alfredo





"Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
news:
> Hola Jose Alfredo,
>
> El articulo es muy interesante, pero el problema no viene con el uso del
> "mailto", sino en como hacer la llamada en C#.
>
> Lo que realmente me fastidia del codigo es que me queda una ventana de
> IExplorer abierta despues de abrir el Cliente de correo y mandar el


mail.
No
> es una forma limpia de hacerlo. Me gustaria abrir directamente el


cliente
de
> correo y no el explorer.
>
> Gracias de todas formas.
>
> Saludos,
> Oriol.
>
> "Jose Alfredo" escribió en el mensaje
> news:
> > Hola!
> >
> > Fijate en el siguiente enlace, creo que tiene lo que te hace falta
> >
> > http://developer.netscape.com/views...ailto.html
> >
> > Saludos
> >
> > Jose Alfredo
> >
> >
> > "Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
> > news:
> > > Hola a todos,
> > >
> > > En mi aplicacion WinForms con C# quiero abrir el cliente de correo


por
> > > defecto de la maquina. Me explico, En el formulario tengo un campo


que
> > > contiene el email de la empresa en cuestion, y un boton al lado con


la
> > > intencion que no tengan que copiar el email, sino que directamente
> puedan
> > > enviar un correo.
> > >
> > > El codigo que uso es este, pero el problema es que me deja una


ventana
> del
> > > iExplorer abierta.
> > >
> > > ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
> > > startInfo.WindowStyle = ProcessWindowStyle.Maximized;
> > > startInfo.Arguments = "mailto:" + this.txtEmail.Text;
> > > Process.Start(startInfo);
> > >
> > > Lo que quiero es que no sea dependiente de un programa en concreto,
sino
> > que
> > > sea como un enlace web, que abre el cliente por defecto. Sin tener


que
> > > configurar cuentas ni nada de eso.
> > >
> > > Gracias.
> > >
> > > Saludos a todos,
> > > Oriol.
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#7 Jose Alfredo
01/09/2004 - 11:03 | Informe spam
Hola!

Tienes predeterminado un cliente de email? Que estas usando de cliente de
email?
Has hecho algún cambio con el explorador? Es decir tienes algo que no es
Microsoft?
Has una prueba, agarra un editor de HTLM, (el mismo VS) crea una página con
un link mailto: y mira a ver que abre.
Falta de referencia la debería cantar en compilación.
A mi no se me ocurre nada más tampoco, el código que te envíe trabaja
perfecto en una PC con w2000 server, framework 1.1 mi email predeterminado
es OExpress y uso IE6

Saludos

Jose Alfredo


"Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
news:eDUYe7$
Hola de nuevo,

Realmente no se si me falta alguna Referencia en el proyecto o que pasa,
pero ahora me de este error:

System.ComponentModel.Win32Exception: La sección solicitada no estaba
presente en el contexto de activación
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo
startInfo)
at System.Diagnostics.Process.Start()
at PrevenControl.frmSubClienteDetalle.btnEnviar_Click(Object sender,
EventArgs e) in d:\codi font\frmsubclientedetalle.cs:line 1408
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg,
IntPtr wparam, IntPtr lparam)

Alguna idea mas? Realmente a mi se me han acabado las ideas con eso.


Tambien
he probado lo que me comento Vyacheslav, y me da justamente el mismo


error.

Saludos y gracias a todos.
Oriol.

"Jose Alfredo" escribió en el mensaje
news:
> Prueba esto
>
> a mi me trabaja perfecto
>
> exeProcess=new Process();
>
> exeProcess.StartInfo.FileName= "mailto:";
>
> exeProcess.StartInfo.UseShellExecute = true;
>
> exeProcess.Start();
>
> Saludos
>
>
>
> Jose Alfredo
>
>
>
>
>
> "Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
> news:
> > Hola Jose Alfredo,
> >
> > El articulo es muy interesante, pero el problema no viene con el uso


del
> > "mailto", sino en como hacer la llamada en C#.
> >
> > Lo que realmente me fastidia del codigo es que me queda una ventana de
> > IExplorer abierta despues de abrir el Cliente de correo y mandar el
mail.
> No
> > es una forma limpia de hacerlo. Me gustaria abrir directamente el
cliente
> de
> > correo y no el explorer.
> >
> > Gracias de todas formas.
> >
> > Saludos,
> > Oriol.
> >
> > "Jose Alfredo" escribió en el mensaje
> > news:
> > > Hola!
> > >
> > > Fijate en el siguiente enlace, creo que tiene lo que te hace falta
> > >
> > > http://developer.netscape.com/views...ailto.html
> > >
> > > Saludos
> > >
> > > Jose Alfredo
> > >
> > >
> > > "Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
> > > news:
> > > > Hola a todos,
> > > >
> > > > En mi aplicacion WinForms con C# quiero abrir el cliente de correo
por
> > > > defecto de la maquina. Me explico, En el formulario tengo un campo
que
> > > > contiene el email de la empresa en cuestion, y un boton al lado


con
la
> > > > intencion que no tengan que copiar el email, sino que directamente
> > puedan
> > > > enviar un correo.
> > > >
> > > > El codigo que uso es este, pero el problema es que me deja una
ventana
> > del
> > > > iExplorer abierta.
> > > >
> > > > ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
> > > > startInfo.WindowStyle = ProcessWindowStyle.Maximized;
> > > > startInfo.Arguments = "mailto:" + this.txtEmail.Text;
> > > > Process.Start(startInfo);
> > > >
> > > > Lo que quiero es que no sea dependiente de un programa en


concreto,
> sino
> > > que
> > > > sea como un enlace web, que abre el cliente por defecto. Sin tener
que
> > > > configurar cuentas ni nada de eso.
> > > >
> > > > Gracias.
> > > >
> > > > Saludos a todos,
> > > > Oriol.
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 Oriol
01/09/2004 - 11:08 | Informe spam
Hola Jose Alfredo,

Te cuento. Uso WinXP Pro, FrameWork 1.1, VS2003, IE6 y Outlook 2002. Lo de
los mailto, me funciona correctamente, y me abre una ventana de Outlook
2002. Con el codigo antiguo ya funcionaba, pero dejaba abierta una ventana
de IE.

Lo de las referencias, lo imagino que en tiempo de ejecucion deberia dar el
error, pero tampoco lo da.

Espero encontrar alguna solucion, sino tendre que buscar otras formas de
hacerlo.

Gracias por toda la ayuda.

Saludos,
Oriol

"Jose Alfredo" escribió en el mensaje
news:%
Hola!

Tienes predeterminado un cliente de email? Que estas usando de cliente de
email?
Has hecho algún cambio con el explorador? Es decir tienes algo que no es
Microsoft?
Has una prueba, agarra un editor de HTLM, (el mismo VS) crea una página


con
un link mailto: y mira a ver que abre.
Falta de referencia la debería cantar en compilación.
A mi no se me ocurre nada más tampoco, el código que te envíe trabaja
perfecto en una PC con w2000 server, framework 1.1 mi email predeterminado
es OExpress y uso IE6

Saludos

Jose Alfredo


"Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
news:eDUYe7$
> Hola de nuevo,
>
> Realmente no se si me falta alguna Referencia en el proyecto o que pasa,
> pero ahora me de este error:
>
> System.ComponentModel.Win32Exception: La sección solicitada no estaba
> presente en el contexto de activación
> at


System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo
> startInfo)
> at System.Diagnostics.Process.Start()
> at PrevenControl.frmSubClienteDetalle.btnEnviar_Click(Object sender,
> EventArgs e) in d:\codi font\frmsubclientedetalle.cs:line 1408
> at System.Windows.Forms.Control.OnClick(EventArgs e)
> at System.Windows.Forms.Button.OnClick(EventArgs e)
> at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
> at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
> button, Int32 clicks)
> at System.Windows.Forms.Control.WndProc(Message& m)
> at System.Windows.Forms.ButtonBase.WndProc(Message& m)
> at System.Windows.Forms.Button.WndProc(Message& m)
> at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
> at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
> at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg,
> IntPtr wparam, IntPtr lparam)
>
> Alguna idea mas? Realmente a mi se me han acabado las ideas con eso.
Tambien
> he probado lo que me comento Vyacheslav, y me da justamente el mismo
error.
>
> Saludos y gracias a todos.
> Oriol.
>
> "Jose Alfredo" escribió en el mensaje
> news:
> > Prueba esto
> >
> > a mi me trabaja perfecto
> >
> > exeProcess=new Process();
> >
> > exeProcess.StartInfo.FileName= "mailto:";
> >
> > exeProcess.StartInfo.UseShellExecute = true;
> >
> > exeProcess.Start();
> >
> > Saludos
> >
> >
> >
> > Jose Alfredo
> >
> >
> >
> >
> >
> > "Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
> > news:
> > > Hola Jose Alfredo,
> > >
> > > El articulo es muy interesante, pero el problema no viene con el uso
del
> > > "mailto", sino en como hacer la llamada en C#.
> > >
> > > Lo que realmente me fastidia del codigo es que me queda una ventana


de
> > > IExplorer abierta despues de abrir el Cliente de correo y mandar el
> mail.
> > No
> > > es una forma limpia de hacerlo. Me gustaria abrir directamente el
> cliente
> > de
> > > correo y no el explorer.
> > >
> > > Gracias de todas formas.
> > >
> > > Saludos,
> > > Oriol.
> > >
> > > "Jose Alfredo" escribió en el mensaje
> > > news:
> > > > Hola!
> > > >
> > > > Fijate en el siguiente enlace, creo que tiene lo que te hace falta
> > > >
> > > > http://developer.netscape.com/views...ailto.html
> > > >
> > > > Saludos
> > > >
> > > > Jose Alfredo
> > > >
> > > >
> > > > "Oriol" <intranet[arroba]rvsa-itv.com> schrieb im Newsbeitrag
> > > > news:
> > > > > Hola a todos,
> > > > >
> > > > > En mi aplicacion WinForms con C# quiero abrir el cliente de


correo
> por
> > > > > defecto de la maquina. Me explico, En el formulario tengo un


campo
> que
> > > > > contiene el email de la empresa en cuestion, y un boton al lado
con
> la
> > > > > intencion que no tengan que copiar el email, sino que


directamente
> > > puedan
> > > > > enviar un correo.
> > > > >
> > > > > El codigo que uso es este, pero el problema es que me deja una
> ventana
> > > del
> > > > > iExplorer abierta.
> > > > >
> > > > > ProcessStartInfo startInfo = new


ProcessStartInfo("IExplore.exe");
> > > > > startInfo.WindowStyle = ProcessWindowStyle.Maximized;
> > > > > startInfo.Arguments = "mailto:" + this.txtEmail.Text;
> > > > > Process.Start(startInfo);
> > > > >
> > > > > Lo que quiero es que no sea dependiente de un programa en
concreto,
> > sino
> > > > que
> > > > > sea como un enlace web, que abre el cliente por defecto. Sin


tener
> que
> > > > > configurar cuentas ni nada de eso.
> > > > >
> > > > > Gracias.
> > > > >
> > > > > Saludos a todos,
> > > > > Oriol.
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida