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 - Eleкtro

#2492
Hola.

Las preguntas sobre C# van en el subforo de programación .NET.

Para lo que pides hacer se requiere mucho tiempo y dedicación implementando mucho P/invoking; mediante las funciones Win32 SetWindowsHookEx, CallNextHookEx y UnhookWindowsHookEx puedes crear un hook de bajo nivel del mouse para capturar una pulsación del botón izquierdo (mensaje de ventana WM_LButtonDown), posteriormente puedes utilizar la función GetCursorPos para obtener las coordenadas del puntero del mouse, pasándole esas coordenadas a la función WindowFromPoint para obtener el handle de la ventana del control de edición donde se haya pulsado el botón izquierdo del ratón, entonces esperarías al mensaje de ventana WM_LButtonUp para determinar cuando ha finalizado la selección del mouse y acto seguido utilizarías la función SendMessage para enviar el mensaje de ventana WM_Copy a la ventana del control de edición con el que copiarías el texto seleccionado al portapapeles de Windows... y ya con la función administrada Clipboard.GetText() de la librería de clases de .NET framework obtendrías el texto

Eso sería una de las posibles formas de llevarlo a cabo. Otra forma, la cual evitaría la implementación de la mayor parte del P/Invoking (excepto el hook) sería mediante el uso de las clases de Microsoft UI Automation de la librería de clases de .NET Framework, lo cual como ventaja tendría una implementación administrada, mucho más sencilla, y eficiente, pero como desventaja resultaría excesivamente lento para esta tarea y aportaría menor compatibilidad con cierto tipos de aplicaciones y jerarquía de ventanas.

Nótese que he omitido algunos pasos importantes pero irrelevantes para un resumen, como por ejemplo las comprobaciones de ventana... que no sean nulos, comprobar que entre el mensaje de ventana WM_LButtonDown y WM_LButtonUp se haya realizado una selección y que esa selección sea de tipo textual (es decir, que contenga texto), y comprobar si existe algún texto u otro elemento guardado en el portapapales antes de reemplazarlo por nuestro texto seleccionado, y en caso afirmativo restaurar el elemento original del portapapeles al finalizar la operación.

Aquí tienes un proyecto en C# que podrías adaptar a tus necesidades:
CitarDynamically catches selected texts where any window you on(pdf/browser/word etc.) and translates including words.
(no lo he probado)
Nótese que el autor hace uso de la función Win32 SetClipboardViewer la cual está obsoleta (solo existe por compatibilidad), en su lugar se debería utilizar GetClipboardSequenceNumber y AddClipboardFormatListener.

¡Saludos!
#2493
Cita de: Randomize en 23 Abril 2017, 19:10 PMEleкtro espero que algún día me presentes a tu hijo para saber cómo es un hijo tuyo.

No tengo hijos, pero si tuviese uno procuraría de no dejar que tú le pusieras nombre... ¿a quien se le ocurre bautizar a un Doberman con un nombre como Pooky?. :xD ya puestos haber dicho Snoopy. ¡Nah!, eso es de mariquitas; un bicharraco de esas características debe llamarse Rompe Huesos, Lucifer, Mala Sangre, Machacador, o algo parecido... que intimide a los curiosos.

:P

¡Saludos!
#2494
Cita de: arnauesteban en 23 Abril 2017, 18:44 PMSe puede citar a una persona en concreto? es decir si hay una persona que me ha contestado a mi pregunta pero no estoy seguro de algo, puedo responderle de tal manera a que cuand oél se conecte reciba una notificacion de que yo le he preguntado algo?

Para que un usuario reciba notificaciones de nuevas respuesta a un hilo, primeramente ese usuario debe haberse subscrito a las notificaciones del hilo donde le respondiste; tal subscripción se realiza mediante el botón , de otra manera no le llegará notificación alguna.

Cita de: arnauesteban en 23 Abril 2017, 18:44 PMestá permitido enviarle un mensaje privado al moderador que ha contestado o esta prohibido por las normas?

Está permitido pero puede resultarle incómodido a dicho moderador. Un moderador suele leer todos los posts de las secciones donde modere (aunque no publique una respuesta en cierto tema), así que no veo necesario notificarle nada, si no ha respondido probablemente será por que haya tenido motivos para no hacerlo.

Aparte, ten en cuenta que mucha gente suele escribirnos para pedirnos favores y a veces cosas sin sentido del tipo "¿me ayudas a hackear una cuenta de Facebook?" y solemos ignorar ese tipo de peticiones, supongo que depende de la persona... claro está, el caso es que puede resultar un poco cansino que tambien nos "avisen" de respuestas en los temas que ya estamos moderando.

¡Saludos!
#2495
Cita de: mr-gothic en 21 Abril 2017, 20:54 PMlas teclas Windows+D, quisiera saber como desactivarlas y que no funcionen de ninguna manera, ya sea editando algo o algún programa.

Algo que no todo el mundo sabe es que las teclas de un teclado se pueden remapear mediante el valor ScanCode en la clave de registro HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout y HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout del registro de Windows. Para evitar el uso de una tecla, sencillamente puedes modificar ese valor del registro para desactivar/invalidar una tecla específica.

Dicho valor de registro probablemente no existirá en ninguno de tus equipos, puesto que nunca habrás asignado un mapeo de teclas, así que primero debes crear el valor y seguir la estructura de datos con la que se ha definido: http://smallvoid.com/article/winnt-scancode-map.html

Para asignar un mapeo de teclas personalizado hay aplicaciones gratuitas como SharpKeys que te ayudarán a hacerlo de forma guiada:

Para el caso que nos concierne, desactivar las teclas de Windows (izquierda, y derecha), puedes instalar el siguiente script de registro en tus equipos:
Código (ini) [Seleccionar]
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,5c,e0,00,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,5c,e0,00,00,00,00

( Nótese que es necesario reiniciar sesión/reiniciar el PC para que los cambios tengan efecto. )

Y en el caso de que quieras deshacer los cambios del remapeo de teclas entonces simplemente puedes eliminar los valores creados. Si deseas hacerlo de forma automatizada puedes utilizar este otro script de registro:
Código (ini) [Seleccionar]
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout]
"Scancode Map"=-

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=-


Para que un usuario pueda bypassear esta técnica, primero debe conocer esta funcionalidad de Windows para ubicar el valor de registro y eliminarlo (y posteriormente reiniciar sesión o reiniciar el PC), cosa improbable en la media común de usuarios, pero de todas formas para una protección adicional siempre puedes activar una política global de usuario en Windows para impedir el uso de las teclas de Windows, activando el valor NoWinKeys en la clave de registro HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer:
Código (ini) [Seleccionar]
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoWinKeys"=dword:00000001


Además también puedes añadir otra política de usuario para desactivar la ejecución del programa REGEDIT.exe, activando el valor DisableRegistryTools en la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Código (ini) [Seleccionar]
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=dword:00000001


Y para una protección todavía mayor también puedes modificar los permisos de usuarios de la clave HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout y HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout para evitar que se pueda modificar el valor de forma tradicional. Para llevar a cabo los cambios de permiso de usuario puedes utilizar REGEDIT; para hacerlo de forma automatizada puedes utilizar la aplicación REGINI de Microsoft (incluida en Windows):
...Sin embargo REGINI es bastante tedioso de utilizar además de tener funcionalidad limitada, así que yo te recomiendo utilizar una aplicación gratuita de terceros llamada SetACL:
(o SetACL Studio en el caso de que prefieras usar un programa con interfáz gráfica)

¡Saludos!
#2496
Foro Libre / Re: Busco un video
23 Abril 2017, 17:41 PM
Cita de: Randomize en 23 Abril 2017, 17:24 PMEs de los B 52's y si no recuerdo mal era de los 90 y muchos, se llamaba "Foam"

¿Estás completamente seguro de que el título de la canción es "Foam"?; en la discografía registrada en la Wikipedia no aparece ningún álbum que contenga una pista llamada "Foam":


EDITO: Tampoco en la discografía de discogs.com:

Según estos datos oficiales, el grupo The B-52's nunca produjo un single llamado "Foam" :-\

¡Saludos!
#2497
Dudas Generales / Re: Para que sirve este hash
23 Abril 2017, 17:12 PM
El distribuidor de una ISO suele calcular un hash (de tipo SHA256 en este caso) de la ISO generada y proveer el hash junto a la descarga de dicha ISO para proporcionar un método de checksum o suma de control de datos. Antiguamente el estándar para la verificación de checksum era el CRC332, pero un hash al ser un cálculo más complejo supuestamente otorga una capa de seguridad adicional.

¿Qué es un checksum?:
Cita de: https://en.wikipedia.org/wiki/ChecksumA checksum is a small-sized datum derived from a block of digital data for the purpose of detecting errors which may have been introduced during its transmission or storage.

Puedes calcular el hash de la ISO descargada en tu PC y compararlo con el hash correspondiente que ha sido proporcionado por el distribuidor para verificar que la ISO descargada no esté corrupta, o en el caso de que te descargues la ISO desde un proveedor no-oficial para comprobar que la ISO sea legítima (que no tenga un "regalito" malicioso) haciendo coincidir los hashes.

¿Cómo calcular el hash desde mi PC?:
Tú que eres programador bien puedes hacerlo con las clases criptográficas de  .NET, pero no merece la pena puesto que ya existen cientos de aplicaciones gratuitas dedicadas a ese propósito como por ejemplo Hasher:


...E incluso extensiones para la shell de Windows, como HashCheck:


¡Saludos!
#2498
Dudas Generales / Re: rastrear localizacion
23 Abril 2017, 16:58 PM
Añado:
Hay una aplicación command-line muy buena para automatizar la extracción, modificación y/o eliminación de los metadatos EXIF de imágenes, ExifTool: http://www.sno.phy.queensu.ca/~phil/exiftool/

¡Saludos!
#2499
Un renombrado es en realidad una copia + eliminación.

En Batch puedes utilizar el comando externo REG para copiar una clave con todas sus subclaves y valores, y posteriormente eliminar la clave original:

Código (dos) [Seleccionar]
@Echo OFF

Set "keyPath=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
Set "oldSubKeyName=S-1-5-21-1883650716-811015797-4219985817-500.bak"
Set "newSubKeyName=S-1-5-21-1883650716-811015797-4219985817-500"
Set "registryView=64"

REG.exe Copy "%keyPath%\%oldSubKeyName%" "%keyPath%\%newSubKeyName%" /S /F /REG:%registryView%
If %ErrorLevel% EQU 0 (
 REG.exe Delete "%keyPath%\%oldSubKeyName%" /F /REG:%registryView%
)

Pause & Exit /B 0


¡Saludos!
#2500
Multimedia / Re: Convertir WMV <> WMV
21 Abril 2017, 23:50 PM
Cita de: MCKSys Argentina en 21 Abril 2017, 17:54 PMPersonalmente uso Format Factory, que es un wrapper de ffmpeg.

Quizás te sea de utilidad.

Saludos!

Gracias. No me quedo muy satisfecho con el resultado pero me conformo, así que doy el tema por solucionado, pero quiero dar mi opinión sobre el Format Factory:

Este programa es horrible para reconvertir un video en formato WMV. El resultado es un video de pésima calidad, muuuuuy pixelado en comparación con el programa que yo usaba (SUPER), a pesar de haber elegido el perfil de alta calidad y de haber DOBLADO el bitrate (y por ende el tamaño), produce un video mucho peor en comparación. No lo recomiendo en absoluto para tratar videos en formato WMV.

¡Saludos!