Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con process start c#

Estas en el tema de Ayuda con process start c# en el foro de .NET en Foros del Web. Hola gente hacía muuuuuucho tiempo que no paraba por aquí. Como hace casi 3 años.... Los abandone pq las cosas me fueron bien pero siempre ...
  #1 (permalink)  
Antiguo 15/01/2009, 04:02
Avatar de victoryiyo  
Fecha de Ingreso: mayo-2006
Mensajes: 187
Antigüedad: 17 años, 11 meses
Puntos: 0
Ayuda con process start c#

Hola gente hacía muuuuuucho tiempo que no paraba por aquí. Como hace casi 3 años.... Los abandone pq las cosas me fueron bien pero siempre que tengo un problema acudo a ustedes como todos. jajejejeje
Bueno les comento mi problema:
estoy haciendo una aplicacion para mi empresa y en el siguiente codigo no me deja abrir el notepad.exe o cualquier aplicacion cuando le meto el usuario y la contraseña. El error que me da es el siguiente:

System.ComponentModel.Win32Exception: Acceso denegado
en System.Diagnostics.Process.StartWithCreateProcess( ProcessStartInfo startInfo)
en System.Diagnostics.Process.Start()
en Vacolba.Protocolo.Comando(Int32 entero, String cadena)

y el código es el siguiente:

Código:
        public void Comando(int entero, string cadena)
        {
            switch (entero)
            {
                case 1:
                    Process proc = new Process();
                    if (cadena.Contains("|"))
                    {
                        if (cadena.Split('|').Length == 2)
                        {
                            logFile("Iniciando: " + cadena.Split('|')[0] + " / " + cadena.Split('|')[1]);
                            proc.StartInfo.FileName = cadena.Split('|')[0];
                            proc.StartInfo.Arguments = cadena.Split('|')[1];
                        }
                        else if (cadena.Split('|').Length == 4)
                        {
                            logFile("Iniciando: " + cadena.Split('|')[0] + " / " + cadena.Split('|')[1]);
                            proc.StartInfo.FileName = cadena.Split('|')[0];
                            if (!cadena.Split('|')[1].Equals(""))
                                proc.StartInfo.Arguments = cadena.Split('|')[1];
                            proc.StartInfo.UserName = cadena.Split('|')[2];

                            SecureString sectrs = new SecureString();
                            char[] clave = cadena.Split('|')[3].ToCharArray();
                            foreach (char c in clave)
                                sectrs.AppendChar(c);
                           
                            proc.StartInfo.Password = sectrs;
                            //proc.StartInfo.Domain = "PUESTO000";
                            proc.StartInfo.UseShellExecute = false;
                                                     
                        }
                    }
                    else
                    {
                        logFile("Iniciando: " + cadena);
                        proc.StartInfo.FileName = cadena;
                    }
                    try
                    {
                        proc.Start();
                    }
                    catch (Exception e)
                    {
                        logFile(e.ToString());
                    }
                break;
haber si me pueden echar una mano y prometo no volver a estar tanto tiempo sin pasar por estos lares. Un saludo
  #2 (permalink)  
Antiguo 22/02/2010, 18:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda con process start c#

Te adjunto una clase.

Peor yo tengo un problema parecedio logro que me ejecute la aplicacion con otro usuario pero lo que no puedo es hacer que imprima directo en tod caso te va servir la aplicacion.

Dim startInfo As New ProcessStartInfo("C:\Archivos de programa\Adobe\Reader 9.0\Reader\AcroRd32.exe", "C:\Prueba.pdf")
Dim impresora As String = "Generic PostScript Printer"
Dim usuario As String = "administrador"
Dim contraseña As String = "Password321"
Dim dominio As String = "f4tzlg1"
Dim password As New SecureString()
Dim c As Char
For Each c In contraseña
password.AppendChar(c)
Next c
startInfo.UseShellExecute = False
startInfo.WindowStyle = ProcessWindowStyle.Minimized
startInfo.UserName = usuario
startInfo.Password = password
startInfo.Domain = dominio
startInfo.Verb = "Print"
Process.Start(startInfo)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:41.