elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 3 [4]
31  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Alguna manera de enviar mensajes desde C# a WhatsApp? en: 21 Febrero 2024, 06:43 am
Para WhatsApp, existen soluciones comerciales.

Si estás dispuesto a pagar una tarifa de uso entonces puedes usar esta API en C# basada en Whatsapp Business Cloud API de META:

 - https://github.com/gabrieldwight/Whatsapp-Business-Cloud-Api-Net?tab=readme-ov-file#capabilities

O también la API de ultramsg.com. Aquí tienes una demo oficial en C#:

 - https://github.com/ultramsg/csharp-whatsapp-chatbot

No he usado estas APIs (ni ninguna otra para WhatsApp), solo te ofrezco información basándome en las capacidades descritas en la documentación de dichas APIs.



también puede ser Telegram

Para automatizar el envío de mensajes desde el cliente Telegram, sin lugar a dudas te recomiendo la API (gratuita) de WTelegramClient:

 - https://github.com/wiz0u/WTelegramClient

Esta API si que la he utilizado bastante.

Pruébala, échale un vistazo a los ejemplos de uso oficiales:

 - send-a-message-to-someone-by-username
 - forward-or-copy-a-message-to-another-chat

Y si te surgen dudas específicas, no dudes en formularlas.

Aténtamente,
Elektro.
32  Programación / .NET (C#, VB.NET, ASP) / Re: Progress bar reutilizable en: 21 Febrero 2024, 06:19 am
Es un poco irrelevante poner código. Una explicación para algo tan sencillo es más que suficiente...

En la biblioteca, simplemente añades una clase que ampare 3 propiedades (Max, Min y Value), un evento ('ValueChanged(valor)') y un método 'Reset (max, valor=-1, min=0)

Cuando vayas a usarlo, invocas el método 'Reset, para pasar el valor máximo del progressBar, el mínimo (por defecto 0) y el valor inicial (-1 indicaría que tome el valor mínimo sea éste cual sea).
Después mientras actúa, simplemente vas cambiando el valor (si el incremento es siempre unitario, puede remplazar la propiedad 'set Valor' por un método 'increment()' que simplemente sume uno al valor actual: _Valor +=1
...y acto seguido dispare el evento ValueChanged, evento al que está suscrito la interfaz y que modifica el valor de progresbar1.value = valor

Quizás fuere conveniento otro evento de 'finalizado(max)', que sucedería cuando valor = max, es decir en esta condición dispararía 'finalizado' en vez de 'valuechanged', en el código de la interfaz se haría: progressbar1.value = max, y ahí (tras ese código en el evento recibido), haces otras cosas que sean las naturales al término de la tarea.

@emmanuelgc17: Atendiendo de forma superficial a tu petición de "¿Podéis mostrarme un código?", permíteme decirte que si le entregas esas brillantes instrucciones de @Serapis a ChatGPT, y junto al generoso comentario de @Daniel, estoy convencido de que ChatGPT será capaz de elaborar un código que te permita hacerte mejor idea y adaptarlo a tu entorno.

La implementación de una barra de progreso reutilizable no supone un problema, pero el requisito de que la implementación (el código) se adapte especificamente a tu escenario / aplicación puede resultar tedioso y dar lugar a complicaciones, factores que no se toman en cuenta y posibles mal entendidos. En estos casos yo optaría por probar con ChatGPT, o proporcionarnos una muestra  clara y concisa del código relevante que estás utilizando.
 
Aténtamente,
Elektro.
33  Programación / .NET (C#, VB.NET, ASP) / Re: Por que pasa esto? C# diseño de windows form en VS en: 21 Febrero 2024, 05:58 am
El mensaje de advertencia te indica que tu sistema operativo está configurado para mostrar elementos al 125% de su tamaño normal. Esta es una configuración común utilizada para hacer que el texto y otros elementos sean más grandes y legibles en pantallas de alta resolución.

Seguidamente, el mensaje de advertencia además te sugiere una posible solución: considerar abrir el Diseñador de Windows Forms en modo sin DPI o "DPI-Unaware", esto es, un modo en el que el Diseñador de Windows Forms administra el tamaño de los elementos visuales sin tener en cuenta el escalado DPI de tu pantalla.

Entonces, para solucionar el problema se me ocurren dos opciones:

Opción 1:
    Accede a la configuración de panralla en tu sistema y cambia el escalado (DPI) a 100%.

Opción 2:
    Inicia Visual Studio en modo DPI-Unaware. Para ello, puedes seguir las siguientes indicaciones:

 - https://learn.microsoft.com/es-es/visualstudio/designers/disable-dpi-awareness?view=vs-2022#restart-visual-studio-as-a-dpi-unaware-process

Si estás usando Visual Studio 2022, versión 17.8 o superior, puedes establecer la propiedad ForceDesignerDPIUnaware con valor true en el archivo de tu proyecto (*.csproj):

 - https://learn.microsoft.com/es-es/visualstudio/designers/disable-dpi-awareness?view=vs-2022

Citar
Código
  1. <PropertyGroup>
  2.  ...
  3.  <ForceDesignerDPIUnaware>true</ForceDesignerDPIUnaware>
  4. </PropertyGroup>

Aténtamente,
Elektro.
34  Programación / .NET (C#, VB.NET, ASP) / Re: CefSharp Cookies en: 21 Febrero 2024, 05:34 am
En realidad, y para tu escenario en particular, lo único que debes hacer es establecer el valor true para la propeidad CefSettings.PersistSessionCookies (https://cefsharp.github.io/api/63.0.0/html/P_CefSharp_CefSettings_PersistSessionCookies.htm) al inicializar Cefsharp. Esto simplifica y evita la adición de código adicional para guardar y cargar cookies de forma arbitraria.

Aquí puedes encontrar un ejemplo en VB.NET:
 - https://github.com/ElektroStudios/Markdown-Toolbox/blob/main/solution/Markdown%20ToolBox/Model/CefSharpUtil.vb#L69

Un ejemplo mucho más reducido usando C#:

Código
  1. public bool InitializeCefSharp() {
  2.    var settings = new CefSettings {
  3.        PersistSessionCookies = true
  4.    };
  5.  
  6.    return Cef.Initialize(settings, performDependencyCheck: true);
  7. }

Dicho esto, debes tener en cuenta que la función Cef.Initialize debes llamarla ANTES de haber inicializado ningún navegador (por lo general, una instancia de la clase ChromiumWebBrowser). Esto es, por lo general, antes de cargar y mostrar el form de tu aplicación:

Código
  1. internal static class Program {
  2.    /// <summary>
  3.    /// The main entry point for the application.
  4.    /// </summary>
  5.    [STAThread]
  6.    static void Main() {
  7.        Application.EnableVisualStyles();
  8.        Application.SetCompatibleTextRenderingDefault(false);
  9.        InitializeCefSharp();
  10.        Application.Run(new Form1());
  11.    }
  12. }

Aténtamente,
Elektro.
Páginas: 1 2 3 [4]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines