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 - Mohicano

#1
Multimedia / Re: Firestick, mirror, teclado y power
28 Diciembre 2021, 13:46 PM
Cita de: huerto123 en 28 Diciembre 2021, 11:47 AM
unable to connect to 192.168.1.64:5555

Hay que activar alguna aplicación para activar ese puerto? Algo en las opciones de developer.

En la pestaña "configurar" del apps2fire imagino que ya habrás buscado la IP de tu fire tv con el botón "buscar fire tv" y lo tendrás configurado así.

Y al parecer ya activaste lo que había que activar en las opciones de la interfaz del fire tv, así que no se que decirte por que en principio debería poder establecer la conexión con tu dispositivo. De todas formas y por si acaso te has saltado algún paso o alguna opción, te dejo este tutorial, aunque en Inglés, lo explican muy detalladamente:

https://mashtips.com/sideload-apps-on-fire-tv-with-android/
#2
Multimedia / Re: Firestick, mirror, teclado y power
27 Diciembre 2021, 21:35 PM
Lo que has de usar es 'apps2fire': https://play.google.com/store/apps/details?id=mobi.koni.appstofiretv

Busca algún tutorial de esa app. Yo la he usado para transferir todo tipo de apps descargadas del Googleplay, al FireTV. Incluso emuladores de videojuegos como la app DIG.

Pero ten en cuenta que no todas las apps van a ser compatibles con el sistema operativo del FireTV (Fire OS), por ejemplo yo instalé la app de DMax ( https://www.discoveryplus.com/es ) que no está disponible para FireTV, y la pude instalar con el 'apps2fire' pero la interfaz de la app no funciona nada bien, ni con teclado inalámbrico, es un horror intentar usarla. Así que si una app no te va bien puede que simplemente no sea del todo compatible, ya que para empezar no está pensada para ser instalada en el Fire OS.

#3
Cita de: aketxe63 en 26 Diciembre 2021, 12:09 PM
La idea es integrar un formulario de Python dentro de otro formulario de C#, es decir, he creado un formulario de Python con extensión *.py y otro formulario de C# con extensión *.cs, quiero insertar el formulario de Python dentro de un contenedor tipo panel alojado en el formulario de C# y que se puedan entender entre ellos, que la información captura en el formulario de Python la pueda tratar el formulario de C#.

Hasta donde yo se, diría que no existe ninguna herramienta, ni integrada ni de terceros, que permita establecer ese tipo de integración en Visual Studio para alojar algo reconocible como "form de Python" en un control o form de .NET Framework. Creo que eso es lo que estás preguntando, ¿verdad?, algo así como lo haríamos para interoperar entre controles de WinForms y WPF mediante la clase / control ElementHost ( https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.integration.elementhost ) como en los siguientes ejemplos:

- Hosting a WPF Composite Control in Windows Forms
- Hosting a Windows Forms Control in WPF

Entonces, e insisto, hasta donde yo se, lo máximo a integración en interoperabilidad entre Python y .NET, y para Visual Studio, sería IronPython ( https://ironpython.net/ ).

Aquí tienes un ejemplo de como iniciarse con IronPython:
[youtube=640,360]https://www.youtube.com/watch?v=B8YAdY-NvDY[/youtube]

Por cierto, he leido que, al usar IronPython para crear una aplicación de Windows Forms, la caja de herramientas de controles y el diseñador de forms en Windows Forms no aparecen disponibles (es decir, todo el formulario lo deberías diseñar mediante Python), pero en la tecnología WPF si que está disponible, así que quizás sería más conveniente crear una aplicación WPF con IronPython. Al menos eso dicen aquí: https://developercommunity.visualstudio.com/t/usar-windows-forms-con-python/905441

Aparte de eso, y por si no lo sabías, esta extensión para Visual Studio quizás te podría servir de ayuda para mejorar la experiencia en lo relacionado al análisis y desarrollo de código de Python en Visual Studio:

- Python Tools for Visual Studio (PTVS)

PD: las características de esa extensión ya vienen integradas como parte del conjunto de paquetes 'Python development' y 'Data science and analytical applications' en el instalador de Visual Studio.

Espero haberte ayudado.
#4
La función Console.ReadLine() tiene implícito ese límite de 256 caracteres (254 sin CarriageReturn + LineFeed). Ese es el límite del tamaño del búfer del que hace uso al adquirir el flujo de entrada estándar o std-in especificado en la función Console.OpenStandardInput.

Puedes incrementar dicho límite a 32.767(-2) caracteres de la siguiente manera:
Código (csharp) [Seleccionar]
Console.SetIn(new StreamReader(Console.OpenStandardInput(Int16.MaxValue), Console.InputEncoding, false, Int16.MaxValue));

O a 65.535(-2) caracteres si lo prefieres:
Código (csharp) [Seleccionar]
Console.SetIn(new StreamReader(Console.OpenStandardInput(UInt16.MaxValue), Console.InputEncoding, false, UInt16.MaxValue));

El límite máximo teórico es Int32.MaxValue ( Maximum length of byte[]? + <gcAllowVeryLargeObjects> element ), pero llegar a esos extremos para este tipo de escenario lo veo totalmente innecesario.

La llamada al método Console.SetIn() puedes acomodarlo de forma reutilizable como en el siguiente ejemplo de clase, y simplemente llamar al método SetInBufferSize() cuando sea necesario:

Código (vbnet) [Seleccionar]
Public NotInheritable Class ConsoleUtil

#Region " Constructors "

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Prevents a default instance of the <see cref="ConsoleUtil"/> class from being created.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   <DebuggerNonUserCode>
   Private Sub New()
   End Sub

#End Region

#Region " Private Members "

   ''' <summary>
   ''' The underlying standard input stream (stdin) used for <see cref="ConsoleUtil.SetInBufferSize"/> method.
   ''' </summary>
   Private Shared stdIn As StreamReader

#End Region

#Region " Public Methods "

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' Sets the buffer size of the standard input stream (std-in)
   ''' acquired from the <see cref="System.Console.OpenStandardInput"/> function.
   ''' <para></para>
   ''' So the <see cref="Console.ReadLine()"/> function can benefit from a larger buffer size.
   ''' <para></para>
   ''' Default buffer size is 256.
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="bufferSize">
   ''' Minimum value is: 256.
   ''' <para></para>
   ''' Note that the last two characters in the buffer are reserved for
   ''' <see cref="ControlChars.Cr"/> + <see cref="ControlChars.Lf"/>.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   <DebuggerStepThrough>
   Public Shared Sub SetInBufferSize(bufferSize As Integer)
       If bufferSize < 256 Then
           Throw New ArgumentException(NameOf(bufferSize), message:="Value must be equal or greater than 256.")
       End If

       ConsoleUtil.stdIn?.Close()
       ConsoleUtil.stdIn = New StreamReader(Console.OpenStandardInput(bufferSize), Console.InputEncoding, False, bufferSize)
       Console.SetIn(ConsoleUtil.stdIn)
   End Sub

#End Region

End Class

#End Region


Traducción a C#:
Código (csharp) [Seleccionar]
public sealed class ConsoleUtil {

#region  Constructors

/// ----------------------------------------------------------------------------------------------------
/// <summary>
/// Prevents a default instance of the <see cref="ConsoleUtil"/> class from being created.
/// </summary>
/// ----------------------------------------------------------------------------------------------------
[DebuggerNonUserCode]
private ConsoleUtil() { }

#endregion

#region  Private Members

/// <summary>
/// The underlying standard input stream (stdin) used for <see cref="ConsoleUtil.SetInputBufferSize"/> method.
/// </summary>
private static StreamReader stdIn;

#endregion

#region  Public Methods

/// ----------------------------------------------------------------------------------------------------
/// <summary>
/// Sets the buffer size of the standard input stream (std-in)
/// acquired from the <see cref="System.Console.OpenStandardInput"/> function.
/// <para></para>
/// So the <see cref="Console.ReadLine()"/> function can benefit from a larger buffer size.
/// <para></para>
/// Default buffer size is 256.
/// </summary>
/// ----------------------------------------------------------------------------------------------------
/// <param name="bufferSize">
/// Minimum value is: 256.
/// <para></para>
/// Note that the last two characters in the buffer are reserved for
/// <see cref="ControlChars.Cr"/> + <see cref="ControlChars.Lf"/>.
/// </param>
/// ----------------------------------------------------------------------------------------------------
[DebuggerStepThrough]
public static void SetInBufferSize(int bufferSize) {
if (bufferSize < 256) {
throw new ArgumentException(nameof(bufferSize), message:"Value must be equal or greater than 256.");
}

ConsoleUtil.stdIn?.Close();
ConsoleUtil.stdIn = new StreamReader(Console.OpenStandardInput(bufferSize), Console.InputEncoding, false, bufferSize);
Console.SetIn(ConsoleUtil.stdIn);
}

#endregion

}

#endregion


----------------------

Como alternativa a lo de arriba, en caso de que prefieras no reemplazar el flujo de entrada estándar, puedes definir una función como esta de aquí abajo, que puedes añadir a la clase de arriba, para que sirva como reemplazo de la función Console.ReadLine().

VB.NET:
Código (vbnet) [Seleccionar]
''' ----------------------------------------------------------------------------------------------------
''' <summary>
''' Reads the next line of characters from the standard input stream.
''' <para></para>
''' This function attempts to be a improved replacement for <see cref="System.Console.ReadLine()"/> function.
''' </summary>
''' ----------------------------------------------------------------------------------------------------
''' <param name="bufferSize">
''' The character limit to read in the next line of characters from the standard input stream.
''' <para></para>
''' Minimum value is: 256.
''' <para></para>
''' Default value is: <see cref="Short.MaxValue"/> (32767).
''' <para></para>
''' Note that the last two characters in the buffer are reserved for
''' <see cref="ControlChars.Cr"/> + <see cref="ControlChars.Lf"/>.
''' </param>
''' ----------------------------------------------------------------------------------------------------
''' <returns>
''' The next line of characters from the input stream,
''' or <see langword="Nothing"/> if no more lines are available.
''' </returns>
''' ----------------------------------------------------------------------------------------------------
<DebuggerStepThrough>
Public Shared Function ReadLine(Optional bufferSize As Integer = Short.MaxValue) As String
   If bufferSize < 256 Then
       Throw New ArgumentException(NameOf(bufferSize), message:="Value must be equal or greater than 256.")
   End If

   Dim inputStream As Stream = Console.OpenStandardInput(bufferSize)
   Dim bytes(bufferSize - 1) As Byte
   Dim outputLength As Integer = inputStream.Read(bytes, 0, bufferSize)
   Dim chars As Char() = Console.InputEncoding.GetChars(bytes, 0, outputLength)

   Return New String(chars).TrimEnd({ControlChars.Cr, ControlChars.Lf})
End Function


Traducción a C#
Código (csharp) [Seleccionar]

/// ----------------------------------------------------------------------------------------------------
/// <summary>
/// Reads the next line of characters from the standard input stream.
/// <para></para>
/// This function attempts to be a improved replacement for <see cref="System.Console.ReadLine()"/> function.
/// </summary>
/// ----------------------------------------------------------------------------------------------------
/// <param name="bufferSize">
/// The character limit to read in the next line of characters from the standard input stream.
/// <para></para>
/// Minimum value is: 256.
/// <para></para>
/// Default value is: <see cref="Short.MaxValue"/> (32767).
/// <para></para>
/// Note that the last two characters in the buffer are reserved for
/// <see cref="ControlChars.Cr"/> + <see cref="ControlChars.Lf"/>.
/// </param>
/// ----------------------------------------------------------------------------------------------------
/// <returns>
/// The next line of characters from the input stream,
/// or <see langword="Nothing"/> if no more lines are available.
/// </returns>
/// ----------------------------------------------------------------------------------------------------
[DebuggerStepThrough]
public static string ReadLine(int bufferSize = short.MaxValue) {
if (bufferSize < 256) {
throw new ArgumentException(nameof(bufferSize), message:"Value must be equal or greater than 256.");
}

Stream inputStream = Console.OpenStandardInput(bufferSize);
byte[] bytes = new byte[bufferSize];
int outputLength = inputStream.Read(bytes, 0, bufferSize);
char[] chars = Console.InputEncoding.GetChars(bytes, 0, outputLength);

return (new string(chars)).TrimEnd(new[] {'\r', '\n'});
}


Modo de empleo en C#:
Código (csharp) [Seleccionar]
// Copy very long string to clipboard.
string longString = new string('0', short.MaxValue);
Clipboard.SetText(longString);

// Manually paste the string here...
string line = ConsoleUtil.ReadLine(bufferSize:ushort.MaxValue);

Console.WriteLine();
Console.WriteLine($"String Length: {line.Length}");

Console.WriteLine("Press any key to exit...");
Console.ReadKey();

Environment.Exit(0);
#5
Ya hay extensiones para el navegador que cumplen con esta demanda de forma óptima, sin que el usuario tenga que idear scripts ni toquetear javascript ni trastear con detección OCR ni historias semejantes.

Absolute Enable Right Click & Copy:
https://addons.mozilla.org/en-US/firefox/addon/absolute-enable-right-click/
Citar★ Features :
→ Remove Copy Text Protection On All Website
→ Force Enable Right Click Button
→ Allow Copy And Highlight
→ Disable Annoying Dialog Message (Not Able To Copy Content On This Webpage)
→ Re-Enable Context Menu
→ Include "Absolute Mode" To Force Remove Any Type Of Protection

No solo te permite usar click derecho, sino también seleccionar el texto con click izquierdo, como pone en la cita. Lo bueno de que sea una extensión es que puedes alternar entre activar y desactivar con un simple click, y nunca la pierdes al tenerla ya instalada.

Para Chrome también hay este tipo de extensiones. Hay varias, como las hay para Firefox.

Espero haberte ayudado.

PD: la extensión que yo uso en Firefox se llama 'Enable Right Click & Copy', sin el 'Absolute', pero parece que ya no está listada en la página de Mozilla. Imagino que esa extensión servirá igual e incluso mejor que la que yo uso.
#6
Multimedia / Re: Grabar música
23 Diciembre 2021, 20:47 PM
Cita de: Wolfyez77 en 10 Noviembre 2021, 18:54 PM
algunos discos vienen con hasta 130 canciones :( entonces cómo le hacen?

Ajustando (reduciendo) el bitrate de codificación de los archivos.

Cuanto mayor sea la calidad de codificación de los archivos de música, menos archivos te cabrán en el CD. Depende también de la duración de los archivos en general.

Un bitrate aceptable y común por la mayoría suele ser 128 kbps, al menos para casos donde se le debe dar prioridad a la cantidad de archivos almacenados, que a la calidad de audio de los mismos.

Así que puedes (re)codificar tus archivos a ese bitrate, y probablemente te cabrá casi el triple de canciones de las que te caben actualmente, ya que hoy en día la mayoría de música en formato MP3 se distribuye a 320 kbps, así que probablemente todos o casi todos tus archivos de música estarán codificados a 320 kbps, y eso es casi 3 veces el tamaño de un archivo codificado en 128 kbps.

Si la calidad de audio codificada en 128 kbps no te convence, puedes optar por codificarla a 192 kbps, y dependiendo del dispositivo donde la reproduzcas no deberías notar una gran diferencia en comparación con archivos codificados a 320 kbps.

Para codificar archivos de música yo te recomiendo el programa dbPoweramp:
https://www.dbpoweramp.com/

Y al (re)codificar un archivo, usando el codec LAME, en el programa que sea, asegúrate de que el programa te permita especificar la máxima calidad de codificación en los parámetros de LAME, es decir: "-q 0" (0 = máxima calidad, 10 = la peor calidad posible). Por defecto los programas suelen usar un valor de "1" (-q 1), pero depende del programa. Esto no aumenta el tamaño del archivo, simplemente hace una codificación en mejor calidad. Y muchos dirán que de '-q 1' a '-q 0' no hay diferencia, pero eso da exactamente igual, no cuesta nada usar '-q 0' en vez de '-q 1' para obtener esa mejora ínfima de calidad que prácticamente no implica nada de tiempo adicional de codificación en un PC de hoy en día.
#7
Multimedia / Re: Firestick, mirror, teclado y power
23 Diciembre 2021, 04:46 AM
Cita de: huerto123 en 22 Diciembre 2021, 08:15 AM
Hola

Y porque soy capaz d ver otros monitores q no son el mio? Me refiero a q tengo q tener Bluetooth y WiFi activo y veo el monitor d una tal Lucía.


Se le puede cambiar el.nombre? No quiero q vean mi nombre

Una cosa es que te aparezcan las redes / dispositivos disponibles del alcance de tu wifi, y otra muy distinta es que te puedas conectar a ellos (a menos que sepas la contraseña).

De todas formas no soy el más indicado para dar enseñanzas sobre temas de redes y conectividad, puedo equivocarme en muchas cosas. No es mi fuerte.

Con respecto a lo de cambiar el nombre, prueba a hacer lo siguiente.

Si vives en España, te diriges a esta url:
https://www.amazon.es/hz/mycd/digital-console/alldevices
(para EEUU es la misma url pero cambiando el dominio .es por .com )

Seleccionas tu dispositivo:


Y le das a "editar" para cambiar el nombre a mostrar:


Creo que se puede hacer también desde la configuración de la interfaz del FireTV, pero me da pereza ponerme a indagar como.

Espero haberte ayudado. :)
#8
Cita de: FreddyKrueger en 23 Diciembre 2021, 00:55 AM
Simplemente me dijo que el era Jason, yo era Freddy Krueger.

Cita de: FreddyKrueger en 23 Diciembre 2021, 00:55 AMme dijo que iba a abrir las puertas del infierno.

Con esa clase de comentarios, se le ve una persona simpática y agradable al tal Jason...



Cita de: FreddyKrueger en 23 Diciembre 2021, 00:55 AMy aunque sea tarde me gustaría pedirle perdón

Entonces, ¿Jason ganó?.

Cita de: El_Andaluz en 23 Diciembre 2021, 01:08 AM
de todas manera haya pasado lo que aya pasado has tenido que esperar mas de un año para pedir disculpas ??  :huh:

Será el tiempo que ha de pasar en el infierno hasta que te den la libertad condicional.

------

Ahora en serio, yo creo que los hilos de "bromistas" simpáticos le dan vida a un foro. A mi por lo menos me ha sacado unas carcajadas y eso que estoy preocupado por una cosa que me ha sucedido esta noche. Pero para la próxima habría que mejorar el guion... ¿Freddy vs. Jason?, es que... jajajjaa, así de descarado no le va a durar mucho la broma.
#9
.NET (C#, VB.NET, ASP) / Re: Powershell Ayuda
22 Diciembre 2021, 04:56 AM
Ese script no te va a funcionar ya que tienes fallos de sintaxis.

Regla básica y fundamental en el uso de parámetros por linea de comandos para cualquier programa:
- Los argumentos con espacios en blanco hay que encerrarlos entre comillas.

Ej.
Programa.exe /Parametro "Valor con espacios"

Aparte, el símbolo y nombre de un parámetro se escribe sin espacios en blanco: "/Nombre", no "/ Nombre"

De todas formas todo eso daría igual, ya que si vas a utilizar PowerShell lo más lógico es utilizar sus funcionalidades integradas, no recurrir y depender de programas externos como REG.exe. El compañero EdePC te ha mostrado un ejemplo de cómo hacerlo.

Aun así, si quieres utilizar REG.exe, lo podrías hacer de la siguiente manera:

Código (csharp) [Seleccionar]
function AddRegistryValue {

   param (
       [Parameter(Mandatory, Position=0, HelpMessage="Enter the registry path.")]
       [string]$path,

       [Parameter(Mandatory, Position=1, HelpMessage="Enter the name of the registry value.")]
       [AllowEmptyString()]
       [string]$value,

       [Parameter(Mandatory, Position=2, HelpMessage="Enter the value type.")]
       [string]$type,

       [Parameter(Mandatory, Position=3, HelpMessage="Enter the value data.")]
       [AllowEmptyString()]
       [string]$data
   )

   [int32]$result = 0

   $p = New-Object System.Diagnostics.Process
   $p.StartInfo.FileName  = "REG.exe"
   $p.StartInfo.Arguments = "ADD ""$path"" /V ""$value"" /T ""$type"" /D ""$data"" /F"
   $p.StartInfo.UseShellExecute = $false
   $p.StartInfo.CreateNoWindow  = $false
   $p.StartInfo.RedirectStandardOutput = $true
   $p.StartInfo.RedirectStandardError  = $true

   $p.Start() | Out-Null
   $stdOut = $p.StandardOutput.ReadToEnd()
   $stdErr = $p.StandardError.ReadToEnd()
   $p.WaitForExit()
   $result = $p.ExitCode
   $p.Close()

   Write-Host $p.StartInfo.FileName $p.StartInfo.Arguments
    Write-Host $stdOut
   Write-Host $stdErr

   return $result
}

function Pause {
   param (
       [Parameter(Mandatory=$false, Position=0, HelpMessage="Enter the message to display.")]
       [string]$message = "Press any key to continue..."
   )

   $console = [System.Console]
   $console::WriteLine($message)
   $console::ReadKey($true) | Out-Null

}  

AddRegistryValue -Path  'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device' `
                -Value 'DevicePasswordLessBuildVersion' `
                -Type  'REG_DWORD' `
                -Data  '0' `
                | Out-Null

Pause
Exit(0)
#10
Multimedia / Re: Firestick, mirror, teclado y power
22 Diciembre 2021, 02:59 AM
Cita de: huerto123 en 21 Diciembre 2021, 19:24 PM
es posible protegerlo con aluna contraseña?

Ya está protegido por la contraseña de tu wifi, ¿no?.

Cita de: huerto123 en 21 Diciembre 2021, 19:24 PM
un tecaldo inalambrico funcionaría conectado al monitor con este dispositivo?

Este es el que yo tengo para el Fire TV Stick. Funciona genial.

https://www.amazon.es/gp/product/B07RQBRRR7