Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2009, 04:02
Avatar de victoryiyo
victoryiyo
 
Fecha de Ingreso: mayo-2006
Mensajes: 187
Antigüedad: 18 años
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