Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - rigorvzla

#51
.NET (C#, VB.NET, ASP) / Material Design WPF
1 Septiembre 2019, 01:07 AM
Hola amigos, estoy por aqui con una intriga q me trae loco, quiero mejorar la interfaz de mi programa, vi videos de un tal Bunifu UI pero al parecer solo funciona con WinForms, luego tengo este otro Material Design UI este aplica a WPF, pero eh seguido los pasos de los videos q eh visto, y eh bajado el proyecto de github mas no se q hacer para poder compilarlo, ya que al abrirlo en el visual studios 2019 da error de carga y no logro compilarlo, alguien sabra como solucionar esto, y conoceran mas alternativas para mejorar la interfaz grafica de la aplicacion??
#52
CitarPara permitir seleccionar más de 1 elemento a la vez en el listbox, conviene cambiar el valor de la propiedad selectionMode del listbox.

Hombre! no sabia esto!! muchas gracias espero sea igual en wpf c#, si es asi como dices es innecesario crear un checkbox aparte como tu estas diciendo, y en efecto.
CitarUna vez que dicha propiedad esté activada (mejor en diseño) , puede seleccionarse múltiples ítems en el listbox y puede acudirse despés a un bucle, o bien para recorrerlos todos y ver cuales están seleccionados, o bien obtener previamente una colección mediante "SelectedIndices" ó SelectedItems" y recorrer solo esos... es trivial lo uno o lo otro.

CitarCada elemento en un listbox puede actuar como un checkbox... en VS6 incluso había una propiedad 'Style' en el control listbox, que permitía mostrar gráficamente el ítem como un checkbox. Cambiando el valor de la propiedad selectionMode, permite la selección múltiple (simple o compleja de selección), luego actúan como 'checkbox', sin ello los elementos del listbox actúan como 'radiobuttons', así puede seleccionarse múltiples elementos.
Te basta informar convenientemente al usuario, añade un label encima del listbox, indicando algo como:
"Seleccione a continuación los elementos que desea instalar de la lista (y luego pulse el botón de confirmación)".

este es mi pensar , al poder seleccionar dicho elemento con el checkbox, evaluar los q estan en tru y asi ejecutar la accion con un boton, me pondre a ver esa propiedad muchas gracias!!
#53
hola de nuevo, lo q deseo hacer es en un list box, en cada linea del list box , quiero agregar un checkbox para poder hacerle click marcarlo o desmarcarlo, para poder evaluar eso y permitir o no la accion que quiero (instalar dicho programa listado).

imagine que asi seria una forma de hacerlo pero ... no resulto.

lo otro es que no  tengo una cantidad estatica de cuantos checkbox necesitare , eso lo determina el for que se muestra en el codigo, osea si en el listbox se muestran 10 archivos seria 10 checkbox uno en cada linea.

ese es el objetivo que deseo lograr.
#54
Hola a todos, en este momento me encuentro con un asunto que no doy como solventarlo, necesito en un listbox, listar archivos, cosa que hace, mas necesito que al final me genere un checkbox con el cual evaluare si quiero o no instalar el programa

anexo el codigo que uso
private void CargaArchivos(string ruta)
       {
          System.Windows.Controls.CheckBox chb = new System.Windows.Controls.CheckBox();
           chb.Content = "Instalar";
           chb.IsChecked = false;
           chb.Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Green);
           
           listProgramas.Items.Add(chb);

           string[] ubicacion = Directory.GetFiles(Environment.CurrentDirectory + ruta);
           double f;

           for (int i = 0; i < ubicacion.Length; i++)
           {
               FileVersionInfo info = FileVersionInfo.GetVersionInfo(ubicacion[i]);
               FileInfo file = new FileInfo(ubicacion[i]);

               if (file.Length < 1048576)
               {
                   f = file.Length / 1024;
                   listProgramas.Items.Add(file.Name + " Version: " + info.FileVersion + " Peso: " + f.ToString() + " Kb" + chb);
                   listProgramas.Items.Add(chb);
               }
               else
               {
                   f = file.Length / 1024;
                   double q = f / 1024;
                   listProgramas.Items.Add(file.Name + " Version: " + info.FileVersion + " Peso: " + Math.Round(q, 2).ToString() + " Mb" + chb);
                   listProgramas.Items.Add(chb);
               }
               
           }
       }


como ven el puede agregar el combobox al principio, pero luego queda ocupado y salta un error de no poder generarlo de nuevo, por otro lado si comentamos " listProgramas.Items.Add(chb);"

Nos fijamos en esta linea
listProgramas.Items.Add(file.Name + " Version: " + info.FileVersion + " Peso: " + Math.Round(q, 2).ToString() + " Mb" + chb);
o esta
listProgramas.Items.Add(file.Name + " Version: " + info.FileVersion + " Peso: " + f.ToString() + " Kb" + chb);
y no genera el checkbox, lo coloca como si fuera un .ToString() , alguien sabra como poder solucionar eso?
#55
Hola de nuevo, estoy de nuevo por aqui , buscando una ayuda a lo siguiente, como menciono el amigo elektro Selenium a grandes escalas es un overkill rotundo, viendo eso empece a buscar informacion sobre su recomendacion,  
clase HttpWebRequest / WebRequest.

resulta que encontre gran cantidad de ejemplos los cuales empiezo apenas a entender, trate de recrear en c# el codigo de elektro y no pude hacerlo funcionar para loguearme aqui.

mi pregunta es, deacuerdo a los ejemplos que consegui, como puedo obtener el enlace web para que con un Process.Start() lo pueda ejecutar?

Ejemplo 1:
       private static void Metodo1()
       {
           const string baseurl = "https://foro.elhacker.net/index.php?action=login2";
           string user = "Usuario";
           string password = "Clave";
           HttpWebRequest req = (HttpWebRequest)WebRequest.Create(baseurl);
           CookieContainer cookie;
           req.Method = "POST";
           req.ContentType = "application/x-www-form-urlencoded";
           string login = string.Format("go=&Fuser={0}&Fpass={1}", user, password);
           byte[] postbuf = Encoding.ASCII.GetBytes(login);
           req.ContentLength = postbuf.Length;
           Stream rs = req.GetRequestStream();
           rs.Write(postbuf, 0, postbuf.Length);
           rs.Close();

           cookie = req.CookieContainer = new CookieContainer();

           WebResponse resp = req.GetResponse();
           resp.Close();
       }


Ejemplo 2:
public class CookieAwareWebClient : WebClient
   {
       public void Login(string loginPageAddress, NameValueCollection loginData)
       {
           CookieContainer container;

           var request = (HttpWebRequest)WebRequest.Create(loginPageAddress);

           request.Method = "POST";
           request.ContentType = "application/x-www-form-urlencoded";

           var query = string.Join("&",
             loginData.Cast<string>().Select(key => $"{key}={loginData[key]}"));

           var buffer = Encoding.ASCII.GetBytes(query);
           request.ContentLength = buffer.Length;
           var requestStream = request.GetRequestStream();
           requestStream.Write(buffer, 0, buffer.Length);
           requestStream.Close();

           container = request.CookieContainer = new CookieContainer();

           var response = request.GetResponse();
           response.Close();
           CookieContainer = container;
       }

       public CookieAwareWebClient(CookieContainer container)
       {
           CookieContainer = container;
       }

       public CookieAwareWebClient()
         : this(new CookieContainer())
       { }

       public CookieContainer CookieContainer { get; private set; }

       protected override WebRequest GetWebRequest(Uri address)
       {
           var request = (HttpWebRequest)base.GetWebRequest(address);
           request.CookieContainer = CookieContainer;
           return request;
       }

       public static void Start()
       {
           var loginAddress = "https://foro.elhacker.net/index.php?action=login2";
           var loginData = new NameValueCollection
           {
             { "username", "Usuario" },
             { "password", "Clave" }
           };

           var client = new CookieAwareWebClient();
           client.Login(loginAddress, loginData);
       }
   }


Ejemplo 3:
 public static CookieContainer Login()
       {
           string userName = "Usuario";
           string password = "Clave";

           ASCIIEncoding encoding = new ASCIIEncoding();
           string postData = "Username=" + userName + "&Password=" + password;
           byte[] postDataBytes = encoding.GetBytes(postData);

           HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("https://foro.elhacker.net/index.php?action=login2");

           httpWebRequest.Method = "POST";
           httpWebRequest.ContentType = "application/x-www-form-urlencoded";
           httpWebRequest.ContentLength = postDataBytes.Length;
           httpWebRequest.AllowAutoRedirect = false;

           using (var stream = httpWebRequest.GetRequestStream())
           {
               stream.Write(postDataBytes, 0, postDataBytes.Length);
               stream.Close();
           }

           var cookieContainer = new CookieContainer();

           using (var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
           {
               using (var streamReader = new StreamReader(httpWebResponse.GetResponseStream()))
               {
                   foreach (Cookie cookie in httpWebResponse.Cookies)
                   {
                       cookieContainer.Add(cookie);
                   }
               }
           }

           return cookieContainer;
       }


Ejemplo 4:
   public class CookieAwareWebClient : WebClient
   {
       public CookieContainer CookieContainer { get; private set; }

       public CookieAwareWebClient()
         : this(new CookieContainer())
       { }

       public CookieAwareWebClient(CookieContainer container)
       {
           CookieContainer = container;
       }


       public bool Login(string loginPageAddress, NameValueCollection loginData)
       {
           var request = (HttpWebRequest)WebRequest.Create(loginPageAddress);

           request.Method = "POST";
           request.ContentType = "application/x-www-form-urlencoded";
           request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36";

           var parameters = new StringBuilder();
           foreach (string key in loginData.Keys)
           {
               parameters.AppendFormat("{0}={1}&",
                   HttpUtility.UrlEncode(key),
                   HttpUtility.UrlEncode(loginData[key]));
           }
           parameters.Length -= 1;

           var buffer = Encoding.ASCII.GetBytes(parameters.ToString());
           request.ContentLength = buffer.Length;

           var requestStream = request.GetRequestStream();
           requestStream.Write(buffer, 0, buffer.Length);
           requestStream.Close();

           request.CookieContainer = new CookieContainer();

           var response = (HttpWebResponse)request.GetResponse();
           response.Close();

           CookieContainer = request.CookieContainer;
           return response.StatusCode == HttpStatusCode.OK;
       }

       Add cookies to WebRequest
       protected override WebRequest GetWebRequest(Uri address)
       {
           var request = (HttpWebRequest)base.GetWebRequest(address);
           request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36";
           request.CookieContainer = CookieContainer;
           return request;
       }
   }
   public class FacebookClient : CookieAwareWebClient
   {
       public bool Login(string email, string password)
       {
           var loginResult = this.Login("https://foro.elhacker.net/index.php?action=login2",
           new NameValueCollection
           {
         { "Usuario", email },
         { "Clave", password }
           });

           return loginResult;
       }

       public void GetHomePage()
       {
           Here's the magic.. Cookies are injected via an overriden
           var webRequest = GetWebRequest(new Uri("http://elhacker.net/"));

           string src = "";
           using (var webResponse = (HttpWebResponse)webRequest.GetResponse())
           {
               src = new StreamReader(webResponse.GetResponseStream()).ReadToEnd();
           }
       }
   }


Ejemplo Elektro C#:
// ***********************************************************************
// Author   : ElektroStudios
// Modified : 28-February-2018
// ***********************************************************************



// New()



// CookiesEnabled As Boolean
// Cookies As CookieContainer
// Timeout As Integer




using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
using System.ComponentModel;
using System.Drawing;
using System.Net;
using System.Runtime.InteropServices;
using System.Web;

namespace TestProject.DevCase.Core.NET
{

    /// ----------------------------------------------------------------------------------------------------
    ///         ''' <summary>
    ///         ''' A extended <see cref="WebClient"/> component, with support for cookies and requests timeout.
    ///         ''' </summary>
    ///         ''' ----------------------------------------------------------------------------------------------------
    ///         ''' <remarks>
    ///         ''' Original idea taken from: http://www.codingvision.net/tips-and-tricks/c-webclient-with-cookies
    ///         ''' </remarks>
    ///         ''' ----------------------------------------------------------------------------------------------------
    [DisplayName(nameof(DevWebClient))]
    [Description("A extended WebClient component, with support for cookies and requests timeout.")]
    [DesignTimeVisible(false)]
    [DesignerCategory(nameof(DesignerCategoryAttribute.Component))]
    //[ToolboxBitmap(typeof(Component), "Component.bmp")]
    [ToolboxItemFilter("System.Windows.Forms", ToolboxItemFilterType.Allow)]
    [ComVisible(true)]
    public class DevWebClient : WebClient
    {


        /// ----------------------------------------------------------------------------------------------------
        ///             ''' <summary>
        ///             ''' Gets or sets a value indicating whether cookies are enabled.
        ///             ''' <para></para>
        ///             ''' Default value is <see langword="False"/>.
        ///             ''' </summary>
        ///             ''' ----------------------------------------------------------------------------------------------------
        ///             ''' <value>
        ///             ''' <see langword="True"/> if cookies are enabled; otherwise, <see langword="False"/>.
        ///             ''' </value>
        ///             ''' ----------------------------------------------------------------------------------------------------
        public bool CookiesEnabled { get; set; }

        /// ----------------------------------------------------------------------------------------------------
        ///             ''' <summary>
        ///             ''' Gets or sets the cookies associated with this <see cref="DevWebClient"/>.
        ///             ''' </summary>
        ///             ''' ----------------------------------------------------------------------------------------------------
        ///             ''' <value>
        ///             ''' The cookies associated with this <see cref="DevWebClient"/>.
        ///             ''' </value>
        ///             ''' ----------------------------------------------------------------------------------------------------
        public CookieContainer Cookies { get; set; }

        /// ----------------------------------------------------------------------------------------------------
        ///             ''' <summary>
        ///             ''' Gets or sets the time interval, in milliseconds, until the
        ///             ''' requests made by this <see cref="DevWebClient"/> times out.
        ///             ''' </summary>
        ///             ''' ----------------------------------------------------------------------------------------------------
        ///             ''' <value>
        ///             ''' The time interval, in milliseconds, until the
        ///             ''' requests made by this <see cref="DevWebClient"/> times out,
        ///             ''' or <see cref="Global.System.Threading.Timeout.Infinite"/> to indicate that the
        ///             ''' request does not time out.
        ///             ''' </value>
        ///             ''' ----------------------------------------------------------------------------------------------------
        public int Timeout { get; set; } = global::System.Threading.Timeout.Infinite;



        /// ----------------------------------------------------------------------------------------------------
        ///             ''' <summary>
        ///             ''' Initializes a new instance of the <see cref="DevWebClient"/> class.
        ///             ''' </summary>
        ///             ''' ----------------------------------------------------------------------------------------------------
        public DevWebClient()
        {
            this.Cookies = new CookieContainer();
        }



        /// ----------------------------------------------------------------------------------------------------
        ///             ''' <summary>
        ///             ''' Returns a <see cref="WebRequest"/> object for the specified resource.
        ///             ''' </summary>
        ///             ''' ----------------------------------------------------------------------------------------------------
        ///             ''' <param name="address">
        ///             ''' A <see cref="Uri"/> that identifies the resource to request.
        ///             ''' </param>
        ///             ''' ----------------------------------------------------------------------------------------------------
        ///             ''' <returns>
        ///             ''' A new <see cref="WebRequest"/> object for the specified resource.
        ///             ''' </returns>
        ///             ''' ----------------------------------------------------------------------------------------------------
        protected override WebRequest GetWebRequest(Uri address)
        {
            WebRequest request = base.GetWebRequest(address);
            request.Timeout = this.Timeout;

            if ((this.CookiesEnabled) && (request is HttpWebRequest))
                (HttpWebRequest)request.CookieContainer = this.Cookies;

            return request;
        }
        public static void start()
        {
            Uri uri = new Uri("https://foro.elhacker.net/index.php?action=login2", UriKind.Absolute);
            NetworkCredential cred = new NetworkCredential("NOMBRE", "CONTRASEÑA");
            string query = HttpUtility.ParseQueryString($"cookielength=90&user={cred.UserName}&password={cred.Password}").ToString();

            using (DevWebClient client = new DevWebClient() { CookiesEnabled = true })
            {
                client.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");

                string response = client.UploadString(uri, "POST", query);
                Console.WriteLine(response);
            }
        }
    }
}




Siento que ahi tengo la respuesta, mas no la logro ver por no saber que busco realmente, espero puedan explicarme y ayudarme aprender y poder resolver este problema.

Replanteo lo que quiero lograr, quiero que en la pagina de login ya sea: facebook, elhacker, hotmail etc... (cualquier web con login)
pueda ingresar los datos (usuario y clave) para que al abrir el navegador solo dirija a la pagina luego del login osea : bandeja de entrada, pagina de inicio de facebook o lo que siga luego del login.

Entendi lo que me explicastes inicialmente elektro de q el usuario no debe ver si no es necesario lo q se hace, solamente se debe mostrar el resultado, en este caso lo siguiente a la pagina de login.

Agradezco la ayuda que puedan darme
#56
listo muuuchas gracias, a probar jeje
#57
ELEKTROOO!!! fantastico hombre y no lo habia hecho , no por q me daba igual, es q no lo entiendo (no es q entienda al 100 el codigo q dejastes) pero lo veo un poco mas claro, si entiendo tu punto y es muy cierto y claro, gracias que cone sto ya tengo madera para cortar.

Gracias!!

Una pregunta es posible que mi planteamiento est mal, pero lo q quiero lograr es , crear una aplicacion donde igrese el correo la contraseña y abra el explorador mostrandome la bandeja de entrada.

Basandome en esto use selenium aparte que fue lo unico que encontre y me recomendaron para lograr mi cometido, por otro lado quede a la espera de una solucion diferente y aqui tu gran explicacion. que no es necesario tal cosa, buscare una web para convertir tu codigo a wpf C# y me pondre a estudiar todo lo que explicastes gracias como siempre dando en el clavo. jeje
#58
esto me ha gustado elektro  y bueno en realidad lo necesito para loguear por ejemplo una cuenta ya sea de correo electronico twitter , o cualquier otra pagina web.

coloque google como ejemplo pero al parecer fue muy simple para el problema planteado jeje, por ejemplo  probe el selenium antes de ver tu respuesta y resulto lo que queria con google, mas si de otra manera es posible, seria muy interesante saber, y no eh probado aun con hotmail  por ejemploo twitter o gmail
#59
GUAOOOOOO eres un moustruo jajaja ahora todo mi paisaje cambia!!! muchas gracias hombre!! genialisimoooo
#60
hombre, me ha servido tremendamente, el unico limitante es que se debe tener el google chrome instalado, sacando eso esta de perlas jajaja muuchas gracias compa, aunque si existe otra alternativa a mi problema seria perfecta leerla. Muchas gracias nuevamente