Buenas :) hice un artículo de esto en la página "www.codeproject.com"... al final incluí un link a esta página :)... muchas gracias :)
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
#2
General Programadores / Creo que ya sé mas o menos como es...
16 de Agosto de 2007, 09:29:35 PM
Perdonen que los moleste tanto... es que no quería quedarme de brazos cruzados y descaradamente a ver que es lo que me dicen... ya que ya me han ayudado bastante...
Bueno según lo que he revisado.... poniendo en el Inicio->Ejecutar: msiexec
Me doy cuenta que:
- /i, /f y /x son opciones de instalación y van antes del path de mi "*.msi"
- /qn, /qb, /qr, etc.. son opciones de pantalla y van después del path de mi "*.msi"
Así que finalmente queda así... para instalar y para desinstalar...
private void instalarSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/i \"C:\\Aplicacion.msi\"/qn";
p.Start();
}
private void desinstalarSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/x \"C:\\Aplicacion.msi\"/qn";
p.Start();
}
Nuevamente muchas gracias por todo :)
jajaja y por cierto quien sepa para que son las demás opciones de "msiexec" de reinicio, registro, actualización y reparación... me indica por favor. Aunque mas o menos supongo para que son pero nunca estarán de mas sus consejos :)
:D ¡DIOS los bendiga! :D
Bueno según lo que he revisado.... poniendo en el Inicio->Ejecutar: msiexec
Me doy cuenta que:
- /i, /f y /x son opciones de instalación y van antes del path de mi "*.msi"
- /qn, /qb, /qr, etc.. son opciones de pantalla y van después del path de mi "*.msi"
Así que finalmente queda así... para instalar y para desinstalar...
private void instalarSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/i \"C:\\Aplicacion.msi\"/qn";
p.Start();
}
private void desinstalarSoftware()
{
Process p = new Process();
p.StartInfo.FileName = "msiexec.exe";
p.StartInfo.Arguments = "/x \"C:\\Aplicacion.msi\"/qn";
p.Start();
}
Nuevamente muchas gracias por todo :)
jajaja y por cierto quien sepa para que son las demás opciones de "msiexec" de reinicio, registro, actualización y reparación... me indica por favor. Aunque mas o menos supongo para que son pero nunca estarán de mas sus consejos :)
:D ¡DIOS los bendiga! :D
#3
General Programadores / Gracias
16 de Agosto de 2007, 09:08:34 PM
Gracias a todos ya me salió con el código que "shephiroth" mandó... .
Pero perdonen que sea tan insistente en este tema... y es que en sí estoy programando un hilo para que instale y desinstale sw (es parte de un pryecto mayor pero en fin...), por lo tanto cuando instalo SW, no pregunta nada y simplemente lo instala con el código que ya ha sido mostrado, realizando la instalación imperceptible al usuario...
No pasa así cuando desinstalo... sino que me muestra una ventana con:
- Título: "Windows Installer"
- Mensaje: "¿Está seguro que desea desinstalar este producto?"
- Botones de Sí y No
¿Cómo podría hacer para que esta ventana se omita y miexec sepa que la respuesta es sí, y que no salga ni siquiera la barra de progreso al desinstalar? (para que el usuario no se de cuenta que el hilo está trabajando)
Por ejemplo al instalar encontré estos parámetros que debía mandar para que no salga nada:
Parametros
/qn : No muestra interfaz de usuario
/qb : Muestra interfaz de usuario básica
/qr : Muestra interfaz de usuario reducida con un dialogo modal que se muestra al final de la instalación
etc...
(Por si a alguien le sirve... está en http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/msiexec.mspx?mfr=true)
Pero no encuentro un parametro que sea "/xn" por ejemplo...
Este problema también se me presenta al instalar instaladores , valga la redundancia, "*.msi" con mas preguntas... y lo que deseo es que todo lo ejecute el hilo sin que el usuario lo note.
Muchas gracias por todo.. me han ayudado bastante, perdonen que los siga molestando...
Pero perdonen que sea tan insistente en este tema... y es que en sí estoy programando un hilo para que instale y desinstale sw (es parte de un pryecto mayor pero en fin...), por lo tanto cuando instalo SW, no pregunta nada y simplemente lo instala con el código que ya ha sido mostrado, realizando la instalación imperceptible al usuario...
No pasa así cuando desinstalo... sino que me muestra una ventana con:
- Título: "Windows Installer"
- Mensaje: "¿Está seguro que desea desinstalar este producto?"
- Botones de Sí y No
¿Cómo podría hacer para que esta ventana se omita y miexec sepa que la respuesta es sí, y que no salga ni siquiera la barra de progreso al desinstalar? (para que el usuario no se de cuenta que el hilo está trabajando)
Por ejemplo al instalar encontré estos parámetros que debía mandar para que no salga nada:
Parametros
/qn : No muestra interfaz de usuario
/qb : Muestra interfaz de usuario básica
/qr : Muestra interfaz de usuario reducida con un dialogo modal que se muestra al final de la instalación
etc...
(Por si a alguien le sirve... está en http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/msiexec.mspx?mfr=true)
Pero no encuentro un parametro que sea "/xn" por ejemplo...
Este problema también se me presenta al instalar instaladores , valga la redundancia, "*.msi" con mas preguntas... y lo que deseo es que todo lo ejecute el hilo sin que el usuario lo note.
Muchas gracias por todo.. me han ayudado bastante, perdonen que los siga molestando...
Citar
#4
General Programadores / Ok muchas gracias :)
16 de Agosto de 2007, 04:53:03 PM
Ok muchas gracias :) cómo les dije cambie todo para que inserte como string... y luego cambie todo al original que fue con "datetime" e insertó normalmente... con el mismo código que puse al inicio... voy a revisar la url que me indicaron, muchas gracias... por cierto el "Boolean" (en C#) si me insertó al "Bit" (en SQL Server). Pero hay quie hacer lo mismo que acá... cambiar a string todo... y luego todo a bit y boolean... pero investigaré de sus sugerencias apra no tener que hacer esto... que en realidad no le encuentro un significado pero que sirve. Muchas gracias.
#5
General Programadores / Solucionado...
16 de Agosto de 2007, 02:33:06 AM
Bueno ya lo solucioné...pero quisiera que igual quien sepa el problema me saque de la duda...
Lo que hice fue esto...:
Cambié los datos de "DateTime's" por "string's" tanto en el programa como en la BD...
Jajaja pero no crean que eso no es solución... sólo lo hice para ver si la sentencia estaba mal... y no... ahí si insertó... pero bueno lo volví a poner tal y como lo he posteado en el anterior mensaje... y lo volví a correr y esta vez si insertó...
Díganme por favor... cuál es el problema... o por que me pasó esto. Es que no me gusta solucionar algo sin saber si realmente estará solucionado para siempre... no me gusta parchar las cosas....
Muchas gracias.
P.D.: Si saben como hacer con el "bit" escríbanlo por favor.
Lo que hice fue esto...:
Cambié los datos de "DateTime's" por "string's" tanto en el programa como en la BD...
Jajaja pero no crean que eso no es solución... sólo lo hice para ver si la sentencia estaba mal... y no... ahí si insertó... pero bueno lo volví a poner tal y como lo he posteado en el anterior mensaje... y lo volví a correr y esta vez si insertó...
Díganme por favor... cuál es el problema... o por que me pasó esto. Es que no me gusta solucionar algo sin saber si realmente estará solucionado para siempre... no me gusta parchar las cosas....
Muchas gracias.
P.D.: Si saben como hacer con el "bit" escríbanlo por favor.
#6
General Programadores / Solucionado...
16 de Agosto de 2007, 02:27:48 AM
Bueno ya lo solucioné...pero quisiera que igual quien sepa el problema me saque de la duda...
Lo que hice fue esto...:
Cambié los datos de "DateTime's" por "string's" tanto en el programa como en la BD...
Jajaja pero no crean que eso no es solución... sólo lo hice para ver si la sentencia estaba mal... y no... ahí si insertó... pero bueno lo volví a poner tal y como lo he posteado en el anterior mensaje... y lo volví a correr y esta vez si insertó...
Díganme por favor... cuál es el problema... o por que me pasó esto. Es que no me gusta solucionar algo sin saber si realmente estará solucionado para siempre... no me gusta parchar las cosas....
Muchas gracias.
Lo que hice fue esto...:
Cambié los datos de "DateTime's" por "string's" tanto en el programa como en la BD...
Jajaja pero no crean que eso no es solución... sólo lo hice para ver si la sentencia estaba mal... y no... ahí si insertó... pero bueno lo volví a poner tal y como lo he posteado en el anterior mensaje... y lo volví a correr y esta vez si insertó...
Díganme por favor... cuál es el problema... o por que me pasó esto. Es que no me gusta solucionar algo sin saber si realmente estará solucionado para siempre... no me gusta parchar las cosas....
Muchas gracias.
#7
General Programadores / C# - Insertar un DateTime en SQL Server
16 de Agosto de 2007, 02:04:55 AM
Buenas tardes
Disculpen que los moleste con algo tan sencillo, pero es que antes siempre cuando he insertardo un "DateTime" en la BD, con estas instrucciones ha entrado al "catch" (pero con otros tipos de datos no me genera este problema y excepto con el bit) y bueno hoy lo intenté después de mucho tiempo y me salió... pero ahora no sé que ha pasado que volvió a dejar de funcionar y ya estaba insertando bien, no creo haberle quitado nada... le he hecho seguimiento y no le encuentro explicación, si alguien le puede hacer alguna modificación que me ayude, se lo agradecería... y de paso si me enseñan a usar el bit, que según sé en el ".Net Framework" se toma como "Boolean", pero igual no funciona... muchas gracias por todo.
-------------------------------------------------------------------------------------
using System;
using System.Text;
using System.Collections;
using System.Data.SqlClient;
namespace SQL_Server_Sentences
{
class CPruebaSet
{
#region Variables
/*****************De conexión a la BD*****************/
SqlConnection mv_mySqlConnection = new SqlConnection(
"Server=localhost\\SQLEXPRESS;database=BDPrueba;Integrated Security=true;User Instance=false");
/*****************Campos de la tabla******************/
private DateTime mv_dtmFecha;
#endregion
#region Funciones
/***********Funciones de Asignación de Valores**********/
public void setFecha(DateTime p_dtmFecha)
{
mv_dtmFecha = p_dtmFecha;
}
/****************Función de Ingreso ******************/
public bool setRegistro()
{
try
{
string l_strSqlCmd = "INSERT INTO TBPrueba(cmpFecha) VALUES('" + mv_dtmFecha + "')";
SqlCommand l_mySqlCommand = new SqlCommand(l_strSqlCmd, mv_mySqlConnection);
mv_mySqlConnection.Open();
l_mySqlCommand.ExecuteScalar();
}
catch (SqlException)
{
return false;
}
finally
{
mv_mySqlConnection.Close();
}
return true;
}
#endregion
}
}
Disculpen que los moleste con algo tan sencillo, pero es que antes siempre cuando he insertardo un "DateTime" en la BD, con estas instrucciones ha entrado al "catch" (pero con otros tipos de datos no me genera este problema y excepto con el bit) y bueno hoy lo intenté después de mucho tiempo y me salió... pero ahora no sé que ha pasado que volvió a dejar de funcionar y ya estaba insertando bien, no creo haberle quitado nada... le he hecho seguimiento y no le encuentro explicación, si alguien le puede hacer alguna modificación que me ayude, se lo agradecería... y de paso si me enseñan a usar el bit, que según sé en el ".Net Framework" se toma como "Boolean", pero igual no funciona... muchas gracias por todo.
-------------------------------------------------------------------------------------
using System;
using System.Text;
using System.Collections;
using System.Data.SqlClient;
namespace SQL_Server_Sentences
{
class CPruebaSet
{
#region Variables
/*****************De conexión a la BD*****************/
SqlConnection mv_mySqlConnection = new SqlConnection(
"Server=localhost\\SQLEXPRESS;database=BDPrueba;Integrated Security=true;User Instance=false");
/*****************Campos de la tabla******************/
private DateTime mv_dtmFecha;
#endregion
#region Funciones
/***********Funciones de Asignación de Valores**********/
public void setFecha(DateTime p_dtmFecha)
{
mv_dtmFecha = p_dtmFecha;
}
/****************Función de Ingreso ******************/
public bool setRegistro()
{
try
{
string l_strSqlCmd = "INSERT INTO TBPrueba(cmpFecha) VALUES('" + mv_dtmFecha + "')";
SqlCommand l_mySqlCommand = new SqlCommand(l_strSqlCmd, mv_mySqlConnection);
mv_mySqlConnection.Open();
l_mySqlCommand.ExecuteScalar();
}
catch (SqlException)
{
return false;
}
finally
{
mv_mySqlConnection.Close();
}
return true;
}
#endregion
}
}
#8
General Programadores / ¿Entonces para instalar sería algo así?
15 de Agosto de 2007, 07:19:10 PM
Entonces para instalar sería algo así?... no estoy muy seguro... y bueno ahorita no estoy en mi casa sino en mi trabajo... y no tengo el VS aca... pero a penas llegue lo pruebo...
Process Instalador = new Process();
Instalador.StartInfo.FileName = @"/x\"C:\Aplicacion.msi\"";
Instalador.Start();
P.D.: Sin argumentos ni nada ... ¿?
Muchas gracias por tu respuesta shephiroth. :D
Process Instalador = new Process();
Instalador.StartInfo.FileName = @"/x\"C:\Aplicacion.msi\"";
Instalador.Start();
P.D.: Sin argumentos ni nada ... ¿?
Muchas gracias por tu respuesta shephiroth. :D
#9
General Programadores / y ahora ¿cómo desinstalo?
15 de Agosto de 2007, 02:55:38 AM
jajajaja por cierto... si alguien sabe omo desinstalar me avisa por fa... sé que es con un comando "msiexec /x", bueno al menos así dicen en todas partes... pero nadie pone código simplemente indican ese comando... en todo caso puse "/x" en vez de "/qn"... pero nada no me salió... y como es el mismo instalador... bueno fuera si fuera un uninstall... por que no habría que indicarle nada... pero acá hay que indicarle si se quiere "desinstalar" o "reparar" y por eso no me funciona :$ me avisan por favor :) gracias... por mi parte seguiré averiguando :)
#10
General Programadores / ¿Cómo instalo y desinstalo software con VC# 2005?
15 de Agosto de 2007, 01:35:29 AM
Ok :) aquí les va... :)
1- Esta es la forma que encontré en internet... gracias por hablarme de la instalación silenciosa y la de modo no atendido :) de no ser por esa clave pienso que no hubiese encontrado nada hasta ahora.
Process Installapp1 = new Process();
Installapp1.StartInfo = new ProcessStartInfo@"\\server\share\install.msi");
Installapp1.StartInfo.Arguments = "/qb";
Installapp1.Start();
2.- Esta es la forma en la que lo hice en mi aplicación...
Process Instalador = new Process();
Instalador.StartInfo.FileName = @"C:\Aplicacion.msi";
Instalador.StartInfo.Arguments = "/qn";
Instalador.Start();
Bueno en realidad no probé la forma que encontré en internet... jajaja y bueno sólo me faltaba esa línea:
- Instalador.StartInfo.Arguments = "/qn"
Pero... esto sólo funciona, bueno por lo menos hasta ahora con lo que he probado, con los instaladores "*.msi", que no sean tan complejos. Al parecer no funciona con los "*.exe" ya algo me habían hablado del "*.msi" ... supongo que con el tiempo dejarán de exisitir los "*.exe" para instaladores.
Gracias por todo :)
1- Esta es la forma que encontré en internet... gracias por hablarme de la instalación silenciosa y la de modo no atendido :) de no ser por esa clave pienso que no hubiese encontrado nada hasta ahora.
Process Installapp1 = new Process();
Installapp1.StartInfo = new ProcessStartInfo@"\\server\share\install.msi");
Installapp1.StartInfo.Arguments = "/qb";
Installapp1.Start();
2.- Esta es la forma en la que lo hice en mi aplicación...
Process Instalador = new Process();
Instalador.StartInfo.FileName = @"C:\Aplicacion.msi";
Instalador.StartInfo.Arguments = "/qn";
Instalador.Start();
Bueno en realidad no probé la forma que encontré en internet... jajaja y bueno sólo me faltaba esa línea:
- Instalador.StartInfo.Arguments = "/qn"
Pero... esto sólo funciona, bueno por lo menos hasta ahora con lo que he probado, con los instaladores "*.msi", que no sean tan complejos. Al parecer no funciona con los "*.exe" ya algo me habían hablado del "*.msi" ... supongo que con el tiempo dejarán de exisitir los "*.exe" para instaladores.
Gracias por todo :)
#11
General Programadores / ¿Cómo instalo y desinstalo software con VC# 2005?
12 de Agosto de 2007, 07:51:37 AM
Muchas gracias por sus respuestas, aún no he averiguado pues acabo de leerlas pero me animan mucho, así que a investigar con lo que me han proporcionado. Muchas gracias. :)
#12
General Programadores / ¿Cómo instalo y desinstalo software con VC# 2005?
10 de Agosto de 2007, 08:18:11 PM
Buenos días... perdonen tantas preguntas, es que estoy haciendo una investigación, es por esto que hago esta pregunta... necesito saber si conocen alguna forma de instalar o desintalar un software con C#, abrir el "Setup.exe" o el "Uninstall.exe" es fácil, pero mi problema es... como le doy el "Siguiente/Next" ... hasta el "Finalizar", y bueno siendo un poco mas profundos aunque no es necesario como elijo opciones como "personalizado/completo", debe haber alguna forma de emular clicks sobre aplicaciones con C#... pero no sé... si alguien sabe, agradecería mucho que me indiquen como y si no igualmente muchas gracias por prestar atención a este post.
#13
General Programadores / Demonio en C#
08 de Agosto de 2007, 02:32:06 PM
Muchas gracias, ya me salió, pero igual voy a probar de la forma en que me indica.
#14
General Programadores / Demonio en C#
08 de Agosto de 2007, 01:08:30 AM
Buenas noches...
Quisiera saber si alguien me puede proporcionar código en Visual C# 2005, sobre un agente/demonio simple (supongo que se hace con hilos), que se mantenga corriendo siempre a la escucha de alguna acción, por ejemplo que esté corriendo y abriendo una carpeta siempre esperando que alguien copie un .txt o alguien escriba algo en el .txt ya sea una persona u otro agente...
Si saben con que nombre lo puedo buscar en internet ayúdenme por favor, por que como demonio no lo encuentro, y cuando hago hilos, me consumen el procesamiento... no puedo ejecutar otro programa mientras mi programa de hilos se ejecuta... supongo que hay que ponerlo a background no?... pero no sé mucho de eso... pero he ahí mi duda, cualquier información que sirva se los agradeceré mucho.
Quisiera saber si alguien me puede proporcionar código en Visual C# 2005, sobre un agente/demonio simple (supongo que se hace con hilos), que se mantenga corriendo siempre a la escucha de alguna acción, por ejemplo que esté corriendo y abriendo una carpeta siempre esperando que alguien copie un .txt o alguien escriba algo en el .txt ya sea una persona u otro agente...
Si saben con que nombre lo puedo buscar en internet ayúdenme por favor, por que como demonio no lo encuentro, y cuando hago hilos, me consumen el procesamiento... no puedo ejecutar otro programa mientras mi programa de hilos se ejecuta... supongo que hay que ponerlo a background no?... pero no sé mucho de eso... pero he ahí mi duda, cualquier información que sirva se los agradeceré mucho.
#15
General Programadores / Live Hotmail
01 de Agosto de 2007, 02:22:46 PM
Si bueno en realidad he buscado para hotmail y no para Live Hotmail, y ahora que leí esa respuesta se me encendió una esperanza :D , pero ahora entré a un correo que tengo en Live Hotmail y mandé a propósito un correo erroneo para ver el smtp... y bueno me salió...
Delivery Status Notification (Failure)
De: postmaster@mail.hotmail.com
Perdón si estoy equivocado pero en algún lugar en internet leí que eso me indicaba el smtp, y bueno al parecer es el mismo, bueno pero no importa. En todo caso... alguien sabe ¿De qué otra forma puedo enviar correos de hotmail a hotmail y de cualquier otro a cualquier otro?... muchas gracias... :)
Delivery Status Notification (Failure)
De: postmaster@mail.hotmail.com
Perdón si estoy equivocado pero en algún lugar en internet leí que eso me indicaba el smtp, y bueno al parecer es el mismo, bueno pero no importa. En todo caso... alguien sabe ¿De qué otra forma puedo enviar correos de hotmail a hotmail y de cualquier otro a cualquier otro?... muchas gracias... :)