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

#2951
Cita de: JS3 en 15 Enero 2017, 00:53 AMSencillo, lo que tienes que hacer es ver la última fecha de modificación, seleccionar el archivo, copiarlo, después vas a tu disco D y los pegas.

Si no llega a ser por tu ayuda, creo que nadie más habría podido resolver un problema tan complejo ;-).

Te faltó decirle que no debe intentar seguir el procedimiento que le has indicado con el poder de la mente, hay que usar un ratón o un teclado (mouse y keyboard en Inglés, por si las dudas).




Ahora en serio, hay que comprender que este tipo de preguntas a veces resultan incómodas y tienden a generar ese tipo de respuestas/chistes/burlas por dos motivos muy simples: 1. Se ha formulado la misma pregunta y se ha resuelto cientos de veces, y 2. puedes buscar una de las cientos de soluciones por ti mismo en Google, y un 3er motivo adicional podría ser que lo estás pidiendo todo hecho sin mostrar un intento por tu parte... y eso no agrada demasiado en un foro o sección de programación :(.

Aparte de eso, no has especificado ningún lenguaje de scripting y eso supone que hagamos asunciones y podríamos estar perdiendo el tiempo al hacerlo si luego resulta qu eno te sirve "X" código de "X" lenguaje... como tampoco has especificado el dato más importante: el tipo de fecha (creación, modificación o último acceso) :-/

En fin, ya dejo de enrollarme, seré bueno y aunque ya han pasado algunos días y quizás hayas resuelto esto te mostraré una solución desarrollada en PowerShell que sirve para enumerar los archivos de forma recursiva, filtrarlos por un rango de fechas (de creación) y por último copiarlos al directorio de destino:

Código (vb) [Seleccionar]
$ext       = "pdf"
$srcDir    = "C:\"
$dstDir    = "D:\"
$startDate = "01/01/2017"
$endDate   = "01/31/2017"

$files = @(Get-ChildItem "$srcDir" -recurse -include @("*.$ext") |
          Where-Object { $_.CreationTime -ge $startDate -and
                   $_.CreationTime -le $endDate })

foreach ($file in $files) {
Echo $file.FullName
Copy-Item $file.FullName "$dstDir\$($file.Name)"
}

Exit(0)


PD: Lo puedes correr en Windows sin problemas.

Saludos!.
#2952
Hola.

No me considero el más cualificado para aconsejar sobre directrices de diseño en el lenguaje Python, más que nada por lo restrictivo (dogmático, odioso, pesado, cansino, feo) que me resulta, y la cantidad de cosas que ignoro a nivel avanzado sobre dicho lenguaje, sin embargo, desde un punto de vista objetivo con un enfoque global hacia los lenguajes de programación en si, yo te diría que implementases sobrecargas siempre que se diesen las circunstancias óptimas para hacerlo (por ejemplo si defines un método con la misma firma y propósito que un método built-in pero que toma un parámetro adicional), puesto que de esta manera estarías simplificando el modo de empleo de tu código, un gran beneficio productivo de cara a ti y al usuario final.

Si por ejemplo defines dos métodos con el mismo propósito de por ejemplo escribir un valor del mismo type en un archivo local, y los dos métodos tienen practicamente la misma firma/parametización pero con leves diferencias, entonces resultaría innecesario llamarlos por nombres distintos, uno debería ser la sobrecarga.

Un saludo!.
#2953
Scripting / Re: .exe a .bat? Posible
15 Enero 2017, 09:18 AM
Hola.

Los "convertidores" convencionales ya sean comerciales o no, suelen extraer el código fuente original, es decir el archivo.bat al directoro temporal del sistema, en cual caso ni siquiera necesitas conocimientos básicos de ingeniería inversa, sería suficiente con que utilices cualquier buen monitor de actividad de archivos para interceptar el evento de creacion del archivo.bat y así localizar la ruta exacta y obtener/copiar el archivo, todo en poco menos de 1 segundo.

Un saludo!.
#2954
Multimedia / Re: Programa para editar sonidos?
15 Enero 2017, 05:40 AM
Hola.

Para realizar todo tipo de ediciones en general y para eso que mencionaste de combinar/sobreponer canales/pistas de audio yo optaría por un software profesional como Sony SoundForge, el que ya mencionó el compañero @songoku, o en su defecto el Adobe Audition, en ambos es muy sencillo generar un proyecto multi-track con "X" canales por pista para llevar a cabo las tareas que necesites.

A mi personálmente el SoundForge me transmite una experiencia de usuario mucho más cómoda y amistosa, es muy sencillo de utilizar, sin embargo, cuando se trata de la necesidad de realizar operaciones complejas en la linea de tiempo con múltiples elementos/pistas al mismo tiempo, entonces casi mejor que optes por el Audition, ya que los softwares de edición de Adobe en sus últimas versiones proporcionan grandes ventajas de automatización (en selecciones de múltiples elementos en la linea de tiempo) en ese tipo de aspectos, ahorrándote así un tiempo considerablemente alto. Máxima comodidad o eficiencia óptima, o al menos esa es mi valoración personal, ¡tu decides!... yo tengo los dos y los uso según la ocasión.

PD: También puedes hecharle dedicación para aprender a hacer ese tipo de ediciones en un DAW, como FruityLoops, o Cubase si te ves preparado xD, siempre son una opción alternativa pero eso ya se sale de lo que viene siendo "ediciones generales"...

Un saludo!
#2955
Hola.

Tu mejor opción es intentar buscar o recordar el programa que utilizaste para generar la copia de seguridad, ese archivo con extensión .bak.

.bak es una extensión universal que hace referencia al término "backup" para que el usuario pueda identificarlo como "archivo temporal", ese es el principio y el fin de todo lo que es. Un archivo ".bak" puede ser cualquier cosa, ya que no es un formato universal que tenga una estructura de datos "fija" o única, el formato, los datos, depende de quien haya generado dicho archivo, es decir, depende del desarrollador de ese programa que perdiste, ya que el contenido del archivo puede ser desde un simple archivo de texto plano hasta un contenido cifrado, ¡quien sabe sin analizarlo primero!.

Un saludo!
#2956
Dudas Generales / Re: Editores de archivos CHM
15 Enero 2017, 05:10 AM
Hola.

Si buscas una herramienta de escritorio profesional, entonces esta es mi recomendación:

Si tu intención es crear un archivo Html de ayuda compilado (CHM) de una aplicación de software y/o web-app para documentarla y administrársela al usuario final, entonces la herramienta Dr. Explain es de lo mejorcito que encontrarás en este planeta, ya que puedes tomar una foto inicial de "X" ventana y automáticamente el programa detecta todas las ventanas hijas y controles y lo rellena todo con marcas/etiquetas y globos de texto (ballontips) vacíos ahorrándote un preciado tiempo en hacer lo mismo de manera profesional.

Si por lo contrario eres más de los que prefieren crear el archivo de documentación desde cero, entonces tienes esa y otras varias opciones profesionales, como Help And Manual, CHM Editor, Helpinator y WinCHM, mencionados por este orden de mi preferencia personal.


Un saludo!
#2957
Cita de: okik en  7 Enero 2017, 16:07 PMRespetando las formas del usuario que ha usado My, en tal caso debe compilar como x64. Que tras probar su ejemplo comprobé que era por eso, por compilar como AnyCPU.

Hola.

Pero vamos a ver, ¿yo hablo en Chino y no se me entiende?, jeje  :P. Como ya mencioné, los miembros de My.Computer.Registry son limitados, poco o nada personalizables, motivo por el cual esa metodología no funcionará;
una solución sería reemplazar su uso por la class Microsoft.Win32.RegistryKey, metodología que si funcionará indiferentemente de la arquitectura del ensamblado... siempre y cuando se le especifique apropiadamente el visor del registro como en el primer ejemplo que ya proporcioné en mi primer comentario. Ahí dejé un código perfectamente funcional, deberías probarlo antes de desconfiar, descartar y/o criticar que sea un código capaz de resolver el problema... macho.




Cita de: okik en  8 Enero 2017, 15:51 PMACCESO AL REGISTRO MEDIANTE VBSCRIPT

Disculpa por la siguiente corrección que voy a hacerte Okik, de verdad no lo hago a mala fe como si estuviese molestado por lo que he comentado arriba ni nada parecido, solo que considero que esto que voy a decir puede servir de ayuda para que un programador pueda aprender a diferenciar correctamente lo que está haciendo y así esa persona pueda hablar con la propiedad de la palabra en el futuro:

Ese bloque de código que has proporcionado no es VBScript, es VB.NET, ya que para elaborar el código estás usando el lenguaje VB.NET, estás compilando bajo .NET Framework, y estás corriendo código .NET administrado, excepto por que estás creando una instancia de un objeto COM, "WScript.Shell" (código no administrado), pero esto no convierte ese bloque de código en algo que se le pueda llamar VBS, más que nada por que ese código en VBS no lo puedes compilar, ni tampoco estás hibridando el código .NET con VBS, sino que simplemente estás usando un objeto COM que estamos acostumbrados a ver y utilizar en VBS, pero nada más, y esto es una diferencia muy importante.




@Tomas1982

Me he perdido en el hilo y ya no tengo demasiado claro si sigues teniendo algún problema o no, puesto que el compañero Okik parece que ya te resolvió todas o casi todas las dudas. Si falta algo por aclarar le echaré un ojo a este hilo de vez en cuando.

En general te diré que para utilizar ciertos miembros y classes, primero y según las circunstancias deberás añadir una referencia al ensamblado correspondiente (en el explorador de soluciones click derecho en donde pone "Referencias" > "Añadir Referencia" y entonces eliges el archivo.dll), y segunda y opcionálmente puedes utilizar la sentencia Imports (using en C#) para importar el espacio de nombres que contiene esa class y/o también para crear un Alias y así acortar el nombre, por ejemplo:

Código (vbnet) [Seleccionar]
Imports Microsoft.Win32
Imports Reg = Microsoft.Win32.Registry

Public Class Class1

   ' Simplemente te muestro tres maneras de hacer lo mismo:
   Sub Method()
       Microsoft.Win32.Registry.SetValue(...) ' Especificando el espacio de nombres completo.
       Registry.SetValue(...) ' Especificando solamente el nombre de la clase.
       Reg.SetValue(...) ' Especificando el Alias.
   End Sub

End Class


Dicho esto, cabe mencionar que algunos miembros solo están disponibles en las versiones más actuales de .NET Framework. Si te encuentras con un problema que consiste en que para poder importar una class y/o utilizar uno de sus miembros necesitas usar la versión 4.0 (o superior) de .NET Framework, entonces simplemente hazlo a menos que exista algún buen motivo que te impida hacerlo, ya que esa es la linea recta y más directa para resolver el problema, de lo contrario, si no haces eso, te encontrarás con la ineludible necesidad de buscar tediosas alternativas poco "naturales" como puedes comprobar en la investigación del compañero Okik con las alternatvas que te proporcionó (me refiero, eso es lo que uno puede tratar de hacer si uno no está dispuesto a compilar para .NET Framework 4.0), cuando simplemente podrías modificar el framework objetivo en las propiedades de tu proyecto a .NetFx 4.0 o superior y así ponerle una solución mucho más sencilla y amistosa al problema actual.

¡Un saludo a los dos!
#2958
Hola.

1. Como ya te han comentado, si realizas una conexión será visible, no solo mediante la decompilación del código de tu ensamblado, sino con cualquier monitor de conexiones entrantes/salientes, así que no tiene sentido ocultarla, por que a lo segundo no podrás ocultarle esa información (o al menos estoy casi seguro al 99% de que no, tampoco pongo la mano en el fuego pero creo que no se puede eludir que el S.O intercepte/notifique las conexiones salientes de tu dispositivo de red, vaya xD).

2. En el caso de que aún siendo cosnciente de esta información sigas deseando intentar ocultar la información en el código fuente como una forma de protección adicional para prevenir que lo puedan ver ciertos "intrusos" con un nivel de conocimiento básico/medio, pues a mi personálmente no me parece una mala idea, siempre viene bien cualquier tipo de protección aunque no sea infalible, pero entonces deberías utilizar un software profesional de ofuscación/cifrado para ensamblados .NET, tu mejor opción gratuita es ConfuserEx, pero yo te recomiendo que optases por la herramienta SmartAssembly de RedGate, que añade muchos más sofisticados niveles de protección de forma profesional.




Citarestoy empezando en esto asi que si veis algo raro por favor ayudame

El mejor consejo que te puedo dar es el siguiente:
Una persona, ya sea programador de .NET novato o avanzado, debería ser consciente de que está utilizando el framework más completo actualmente en el mundo de la programación, .NET Framework, y por ese motivo en lo respecto a cosas básicas (y no tan básicas) no le va a faltar de nada, no es necesario recurrir a copy&pastes de códigos home-made de terceros ni tampoco tratar de implementar nuestros propios algoritmos por que en la mayoría de ocasiones lo que estaremos haciendo es reinventar la rueda sin darnos cuenta, puesto que la librería de classes de .NET ya nos facilita la mayoría de todas esas y otras tareas complejas, así que se debe intentar siempre buscar una solución built-in y evitar los códigos "caseros"... aunque por otro lado claro está que las librerías de .NET Framework no cubren al 100% todas las necesidades que el programador pueda tener y en muchas ocasiones uno se verá obligado sin más remedio a implementar sus propios algoritmos (criptográficos, o de lo que sean), pero antes de rendirse y optar por esos medios, seguir buscando dentro de las librerías de .NET hasta encontrar lo que nos hace falta...

Por ejemplo, antes que ponerte a implementar algoritmos aleatorios caseros de cifrado básico de strings, tienes a tu disposición las classes criptográficas que forman parte de la librería de classes de .NET Framework en el namespace System.Security.Cryptography, como por ejemplo la class RijndaelManaged, AES, TripleDES, y una infinidad de proveedores de hashing, no necesitas más.

Aparte de los miembros ya mencionados, también tienes a tu disposición la class System.Security.SecureString, la cual es tan sencilla de usar como la class StringBuilder, y esta metodología añade un nivel adicional de seguridad a un string mediante su cifrado en un bloque de memoria no administrada, y el valor real solo puede ser accesible al cracker si uno sabe al 100% lo que hace al inspeccionar el código IL en la descompilación.

Un saludo!
#2959
Hola.

En realidad no es necesario que modifiques las propiedades de tu proyecto para compilarlo explicitamente a arquitectura de 64 Bits, puedes seguir compilando a modo neutral ("AnyCPU", con o sin preferencia por 32 Bits) o incluso a arquitectura x86. Simplemente debes dejar de utilizar los métodos de la infraestructura My, ya que son miembros con limitaciones, destinados a ser usados para tareas básicas que no requieran un control avanzado.

En su lugar, puedes usar la class Microsoft.Win32.RegistryKey, en la que podrás especificar el modo de representación del registro (32/64 Bit):

Código (vbnet) [Seleccionar]
Dim root As RegistryHive = RegistryHive.LocalMachine
Dim subkey As String = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows"
Dim value As String = "spooler"
Dim data As String = "no"

Using key As RegistryKey = RegistryKey.OpenBaseKey(root, RegistryView.Registry64)
   key.CreateSubKey(subkey, RegistryKeyPermissionCheck.ReadWriteSubTree).
       SetValue(value, data, RegistryValueKind.String)
End Using


Si en el algoritmo de arriba modificas RegistryView.Registry64 por RegistryView.Registry32, entonces escribirá el valor en la clave HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Windows. Teoricamente esto que acabo de decir no debería tener ningú efecto si inicias el executable compilado bajo un Windows de 32 Bits, me refiero, elijas el modo/visor que elijas el valor siempre se debería escribir en la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows bajo un Windows de 32 Bits.

Saludos!




Cita de: okik en  6 Enero 2017, 08:26 AMPor curiosidad ¿Para qué este cambio? ¿para que és "Spooler"?

El término spooler suele hacer referencia a la cola de impresión de la impresora, eso debería dar una pista junto al valor asignable yes/no. Yo tampoco se exactamente para que sirve ese cambio, no lo he buscado (seguro que habrá miles de resultados en Google xD), pero supongo que servirá para simular que no haya impresora conectada, o algo relacionado.

Saludos!
#2960
Windows / Re: Windows 10 copia( urgente)
4 Enero 2017, 04:00 AM
Hola. No se si mi respuesta te valdrá o no, pero considero que hay varias formas de ayudar a una persona...

A menos que seas rico, o el jefe de una oficina que esté obligado a instalar dicho sistema operativo para consumir software, entonces cuestionarse el hecho de gastarse 100 pavos en una copia original del Windows que sea es tan innecesario como querer comprar una pieza "artesanal" de trozo de papel de periódico arrancado... no se si se me entiende. Puedes hacértelo tu mismo y sin coste.

Un saludo!