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


 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección.


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 1002
41  Sistemas Operativos / Windows / Re: desinstalar directx en: 17 Julio 2017, 18:47
gracias por nada

No hombre, gracias por nada a ti, sobre todo por el sentido común de haber mostrado la información esencial de los logs cuando te lo han pedido para intentar ayudarte de forma óptima/eficiente. Y también por tu gratitud al compartir la solución, gracias también por eso, como ya te dijo @Randomize.

En fin, en el mundo tiene que haber todo tipo de personas y este problema ya está resuelto, ¿verdad?, pues cierro el tema.
42  Programación / Scripting / Re: Se puede ejecutar un .bat como admin automaticamente? en: 17 Julio 2017, 02:45
windows tiene crontab?

La respuesta es NO, al menos no como tal. El equivalente en Windows serían las tareas programadas del sistema, archivo: TaskSchd.msc, pudiendo además utilizar su versión CLI, archivo: SchTasks.exe para crear, modificar y eliminar tareas de forma programática, pero SchTasks no puede ayudar en nada a la pregunta que el usuario ha formulado, a menos que la intención fuese iniciar el script con privilegios de administrador a una hora determinada o al inicio de sesión del usuario o cuando se produjese otro evento específico en el sistema operativo.

Una solución sencilla de implementar sería utilizando el comando externo RunAs.exe, declarando en el script un argumento que sirva como señal para determinar si el script necesita "reiniciarse" usando el comando RunAs para obtener privilegios de administrador. Puedes intentar probar así:

( Lo escribí al vuelo, no lo he testeado por tener el UAC desactivado. De todas formas en Google deberías poder encontrar miles de ejemplos parecidos al mio. )
Código
  1. @Echo OFF
  2.  
  3. Set "accountName=Administrador"
  4.  
  5. Set "elevatedArg=%~1"
  6. If "%elevatedArg%" NEQ "elevated" (
  7.    Start "" CMD /K "RunAs.exe /User:"%accountName%" "CMD.exe /C \"\"%~f0\" \"elevated\"\"""
  8.    Exit /B 1
  9. )
  10.  
  11. :: Tu código aquí...
  12.  
  13. Exit /B 0

...Sin embargo, esta metodología de "reiniciar el script" con RunAs tiene un contratiempo, y es que es necesario introducir la contraseña manualmente, es así por defecto, no se puede ignorar este paso por motivos de seguridad en Windows/RunAs.

Si te resulta incómodo tener que escribir el password cada vez, entonces puedes optar por otras soluciones alternativas, de código... pero son mucho más tediosas, como por ejemplo esta:

O también puedes utilizar herramientas de terceros como el comando "Elevate" de la aplicación command´line NirCMD (lo que te ahorraría muchos quebraderos de cabeza, pero dependerías de aplicacioens de terceros):

...Y también puedes hacerlo con alguna aplicación del paquete PSTools, pero no recuerdo ahora mismo exactamente cual era, ¿PSExec.exe quizás?, puedes buscarlo en Google.

Saludos.
43  Programación / Ingeniería Inversa / Re: Una duda sobre un programa con "Codigo fuente" en: 16 Julio 2017, 23:46
Madre del amor hermoso, vaya un código, en el peor sentido posible... ¡qué código!. En el form1.vb hay +18.000 lineas de código, cualquier modificación de 1 solo caracter me tarda 1 minuto en aplicarse xD (en un disco SSD).

La hipótesis de que este código lo hayan generado mediante una herramienta que analice las instrucciones IL y mediante Reflection y tal represente el código en el lenguaje VB.NET, a mi no me convence demasiado, por que yo veo bastantes incongluencias las cuales considero que ese tipo de herramientas no generarían de forma intencionada, sin ir más lejos el echo de asignar un valor entero y otro hexadecimal en los argumentos de un constructor: point = New Point(280, &H98), pero bueno, quizás me equivoco.
En mi opinión, cabe la posibilidad de que simplemente hayan usado cualquier herramienta de automatización de traducción de C# a VB.NET para convertir el proyecto original escrito en C#, a VB.NET, y de ahí tantos errores de compilación, un completo desorden de estructurización del código, la completa ausencia de la clausula Handles, y otras cosas varias...

En el código fuente que has compartido, el tamaño y posición de los controles se estaba especificando mediante una variable llamada "point", y otra "size", esta última entraba en conflicto con la propiedad Form.Size. Las referencias de los controles, así como la asociación de eventos de los controles, estaban definidos mediante propiedades, lo cual es muy típico de ver en conversores de código C# a VB.NET.

En fin, he corregido todos los errores de compilación (no eran muchos), he reconstruido la parte del diseñador de Forms, y las asociaciones de eventos de los controles. Los warnings en el código fuente que has compartido, los cuales eran cerca de 850 los he ignorado todos, muchos de ellos se deben a estar utilizando miembros considerados obsoletos en la librería de clases de .NET Framework y a fin de cuentas no parecen entrar en conflicto con el funcionamiento de la aplicación.

...Casi toda la reconstrucción consistió en escribir pequeños algoritmos de parsing y edición de texto.

Este es el resultado final en el diseñador de Forms:



Y así es como se ve la interfáz de usuario tras compilar y ejecutar:



( por los colores oscuros no te preocupes, se ven así por que estoy utilizando un tema visual de terceros en Windows ... )

Aquí tienes el proyecto con las modificaciones que he realizado, en Visual Studio 2017.


Que aproveche ;).

Saludos!
44  Programación / .NET / Re: Paquete de codigos fuentes en C# en: 16 Julio 2017, 15:07
Hola!

Me he asustado al ver esto escrito en uno de tus programas: "Elektronisches Post"... no me me entero del Alemán :P, pero ya veo que eso significa "Correo electrónico".

En fin, todo lo que sea compartir me parece estupendo :), gracias por tu colaboración. Eso sí, los que no entiendan de Alemán... lo van a tener dificil para comprender y analizar algunas partes de tu código, jeje.

Saludos!
45  Programación / .NET / Re: C# Problemas con un tipo de guardado en: 16 Julio 2017, 14:16
Es mi naturaleza no entender codigos. Es mi naturaleza tratar de seguir programando, sin entender  codigos. Perdon. Yo no tuve la posibilidad de hacer un curso. Tu si? Elektro?

Te limitaste bastante en hacerme criticas.

¿En realidad eso es lo que te pareció, que te hice críticas?. Dime que cosa te he criticado yo en todo el comentario que te respondí, de verdad, vuelve a leerlo, y dímelo, por que yo no consigo verlo.

Aquí estamos para intentar ayudar a los demás en su aprendizaje o a resolver problemas en sus códigos, no para criticar a nadie. Otra cosa bien distinta es que para que un programador pueda mejorar en lo que hace, hay que resaltarle los fallos que ha cometido en su código ...o las cosas que podría mejorar de éste, aunque eso tampoco sería una crítica como tal, sino una recomendación, pero claro, si a ti te da por tomártelo de forma negativa como si te estuviesen criticando, pues... macho, no era mi intención.

Es posible que el compañero @NEBIRE se haya excedido un poquito en hacer críticas, pero no me metas a mi en el mismo saco cuando sabes perfectamente que no te he criticado, y además a fin de cuentas las críticas de @NEBIRE fueron con la intención de ayudarte (y son comprensibles, por que simplemente hiciste un copy&paste del código que yo te mostré, sin saber muy bien lo que estabas haciendo, y ojo, no estoy criticando, solo estoy explicando el motivo de por qué me parece comprensiva su reacción).



Revisar las librerias de Visual Studio? No las entiendo.

En la página web de MSDN (Microsoft Developer Network), que es la referencia online oficial de la API/lirbería de clases de .NET Framework, y un lugar para el aprendizaje de todos los conceptos relacionados con la programación en general, aparte del aprendizaje completo de .NET Framework y de los lenguajes soportados por éste, pues allí te explican punto por punto el propósito/funcionalidad de cada uno de los miembros existentes en la librería de clases de .NET Framework, y en la mayoría de las ocasiones además incluyen ejemplos de código y documentados al pie de página. Por ese motivo, el echo de "no entender" no es una excusa aceptable teniendo a nuestra entera disposición una fuente de información y recursos tan amplia y detallada como la MSDN.

Te recomiendo echarle un vistazo a este comentario en donde encontrarás recursos de información para iniciarse en el aprendizaje de C# y .NET en general:

( no te pierdas tampoco los enlaces a la librería de códigos de Microsoft, donde encontrarás muchos códigos profesionales escritos en C#, que puedes analizar para aprender buenos hábitos y técnicas avanzadas de programación en general. )



Depurar el codigo? No puedo. Aprender eso? Tampoco.

¿No puedes, o no sabes, o quizás no te apetece?; en el segundo caso siempre puedes empezar a aprender... con tiempo y dedicación, y tampoco mucho empeño, no te creas, en realidad la depuración no es algo que te vaya a resultar muy complejo de entender y de efectuar... al menos de forma básica, y eso ya te será de mucha utilidad.

Me remito a las palabras que ya dije más arriba: el echo de "no poder" o no saber, no es un motivo aceptable teniendo la MSDN.

Te dejo por aquí unas guías de introducción con las que puedes aprenderlo todo lo relacionado con la depuración y el depurador de código en Visual Studio de principio a fin:




Es mi naturaleza tratar de seguir programando, sin entender  codigos.

Quizás me puedo equivocar al decirte lo siguiente, por que obviamente no te conozco ni puedo leerte el pensamiento, lo siento, pero no es una crítica:

Por todo lo que has dicho y de la manera en la que lo expresas, me transmites la sensación de que tú prefieres aprender a base de fallos, o dicho de otra manera aprender mediante el ensayo y error (o trial and error), me explico: encontrarse con un nuevo problema a resolver (ej. añadir elementos a una lista), en el que debes recurrir a la utilización de un miembro/método/concepto desconocido para ti, y al ponerlo en práctica ves que te sale mal, te da un fallo o no te da el resultado esperado, y entonces te ves en la necesidad de recurrir a la experiencia/ayuda de otras personas, entonces copias y pegas códigos esperando que eso resuelva tu problema específico, y si no lo resuelve y te da fallo entonces ponerte a buscar otro "parche" hasta poder resolverlo definitivamente, y esa no es ni de lejos una forma práctica de aprender ni de programar. Primero deberías documentarte sobre "X", comprender su propósito y todo lo que lo esté relacionado con su implementación (por ejemplo, si quisieramos documentarnos sobre el uso de la clase List, empezariamos por leer por encima las descripciones de todos los miembros/métodos públicos expuestos en dicha clase para tener una pequeña idea de qué podemos hacer con todo ello, y documentarnos más en profundidad sobre colecciones, Generics, enumeradores, y tampoco estaría de más: LINQ/LINQ to Objects), leer todo lo que haya que leer sobre él, vaya, y luego (no antes) poner en práctica lo estudiado sobre ese "X".



De verdad, no me gustaría que este tema se "cerrase" de una forma tan negativa por el tema que dijiste de las criticas, me sabe mal. @TickTack, no se muy bien si realmente debo darme aludido en el tema de criticarte, por que no me queda claro si te diriges a mi, o a @NEBIRE, o a los dos, pero bueno, no te he criticado, y lo que haya hecho o dicho @NEBIRE te lo habrá dicho con buena intención. Si tienes cualquier otra duda aquí estare(mos) para intentar ayudarte, no lo dudes.

Un saludo!
46  Programación / .NET / Re: hacer split y almacenarlo en una matriz en vb.net en: 16 Julio 2017, 12:18
ahora como le hago para meter lo que contiene el array v a una matrix de (9,9) en una fila  como en la foto

Por mi parte ya he escrito y te he mostrado un código (en forma de extensión de método) que hace exactamente eso. ¿lo leiste?.

tampoco quiero convertirlo a integer que es el código que me pusistes Elecktro

Irrelevante. El primer código de ejemplo que te mostré, es eso, un ejemplo que puedes adaptar a tus necesidades, pero de todas formas en el ejemplo que deberías fijarte es en el segundo ejemplo que te mostré... con las tres primeras lineas resaltadas en otro color.

Saludos
47  Programación / .NET / Re: hacer split y almacenarlo en una matriz en vb.net en: 16 Julio 2017, 02:41
declaro una matriz de 1x10 así

Código
  1. dim matriz(1,9) as string
  2.  

En realidad eso no es 1x10, sino 2x10 (2 filas, 10 columnas). Ten presente que el índice siempre empieza por Cero para cualquier dimensión del Array e indexador en general ( collection(indexer) ).

Antes de proseguir con más explicaciones ...¿estás seguro de que no será esto lo que realmente pretendes lograr?:

Código
  1. Dim str As String = "0-1-2-3-4-5-6-7-8-9"
  2. Dim arr As Integer() = Array.ConvertAll(str.Split({"-"c}, StringSplitOptions.RemoveEmptyEntries), Function(s As String) Integer.Parse(s))

Es decir, partir una cadena de texto en base a un caracter delimitador, y transformar la secuencia de elementos resultantes en un Array unidimensional de enteros (una secuencia de diez elementos, arr(0) hasta arr(9)).

Me da la sensación de que eso es lo que en realidad quieres conseguir pero le diste demasiadas vueltas de tuerca innecesarias, por que básicamente la idea de construir un Array 2D con solo 1 índice o fila, tendrá practicamente el mismo efecto que si creases un array unidimensional ( Dim arr As Integer() = {1, 2, 3, etc...} ). A lo mejor me equivoco y realmente lo que pretendes es crear un Array 2D con más de 1 "fila", no lo se, simplemente te propongo la sugerencia de arriba por que yo no le encuentro sentido práctico alguno a hacer lo que estás haciendo en el ejemplo de código que has mostrado... pero puede que el código original no lo hayas mostrado y sea bien distinto (donde realmente si que necesites usar un array bidimensional), como ya digo, no lo sé.



¿Cual es el problema que le encuentras a tener que escribir tres miserables lineas para un búcle?; en la mayoría de los casos la escritura de un búcle es la forma más eficiente de que implementemos ciertos algoritmos (y en este caso, probablemente sea la única forma también). Si me dijeras que la escritura de ese búcle es una tarea repetitiva que debes escribir en otras partes del código fuente, pues aun te entendería, pero al parecer das a entender que solo lo tienes que escribir una única vez ese búcle en tu código fuente...
De todas formas si te incomoda tener que escribir tres lineas para un For, entonces siempre puedes decorar la lógica del algoritmo en una función rehutilizable de uso genérico para no tener que volver a escribirlo en el futuro nunca más y así optimizar tu productividad, por ejemplo de esta forma que he ideado para ti:

Código
  1. <HideModuleName>
  2. Public Module RectangularIndexedArrayExtensions ' Two dimensional indexed array extensions
  3.  
  4.    ''' ----------------------------------------------------------------------------------------------------
  5.    ''' <summary>
  6.    ''' Fills the indices (or columns) of the specified index bound (or row) of the source array,
  7.    ''' using the given collection of elements.
  8.    ''' </summary>
  9.    ''' ----------------------------------------------------------------------------------------------------
  10.    ''' <typeparam name="T">
  11.    ''' The <see cref="Type"/> of the source array.
  12.    ''' </typeparam>
  13.    '''
  14.    ''' <param name="sender">
  15.    ''' The source array.
  16.    ''' </param>
  17.    '''
  18.    ''' <param name="boundIndex">
  19.    ''' The bound index (or row) of the first dimension in the source array.
  20.    ''' </param>
  21.    '''
  22.    ''' <param name="collection">
  23.    ''' A collection of elements to fill the indices (or columns) of the second dimension in the source array.
  24.    ''' </param>
  25.    ''' ----------------------------------------------------------------------------------------------------
  26.    ''' <exception cref="IndexOutOfRangeException">
  27.    ''' The specified 'boundIndex' value is greater than the bounds of the first dimension in the source array.
  28.    ''' or
  29.    ''' The amount of elements in 'collection' is greater than the bounds of the second dimension in the source array.
  30.    ''' </exception>
  31.    ''' ----------------------------------------------------------------------------------------------------
  32.    <Extension>
  33.    Public Sub FillBounds(Of T)(ByRef sender As T(,), ByVal boundIndex As Integer, ByVal collection As T())
  34.  
  35.        Dim dim2Length As Integer = sender.GetLength(1)
  36.  
  37.        If (sender.GetUpperBound(0) < boundIndex) Then
  38.            Throw New IndexOutOfRangeException(
  39.                message:="The specified 'boundIndex' value is greater than the bounds of the first dimension in the source array.")
  40.        End If
  41.  
  42.        If (dim2Length < collection.Count) Then
  43.            Throw New IndexOutOfRangeException(
  44.                message:="The amount of elements in 'collection' is greater than the bounds of the second dimension in the source array.")
  45.        End If
  46.  
  47.        For i As Integer = 0 To (dim2Length - 1)
  48.            sender(boundIndex, i) = collection(i)
  49.        Next i
  50.  
  51.    End Sub
  52.  
  53. End Module

Modo de empleo:
Código
  1. Dim str As String = "0-1-2-3-4-5-6-7-8-9"
  2. Dim arr2D(0, 9) As String
  3. arr2D.FillBounds(0, str.Split({"-"c}, StringSplitOptions.RemoveEmptyEntries))
  4.  
  5. For i As Integer = 0 To (arr2D.GetLength(1) - 1)
  6.    Debug.WriteLine(arr2D(0, i))
  7. Next

Flamer, en serio, yo te sugiero intentar no caer en el error o malos habitos de querer evitar la escritura de búcles como tal, eso son gilipolleces. Con la simplificación de código, en el sentido de los búcles, ganarás elegancia, reduciras la escritura de algunas lineas de código, pero al mismo tiempo perderás eficiencia (en terminos de velocidad de ejecución de código) y también las ventajas de poder realizar una correcta depuración de código con o sin breakpoints... por ejemplo al simplificar el bloque de código de un búcle de 5 lineas, a una consulta LINQ equivalente y de 1 linea.

Bueno, espero que el código de arriba te haya servido de ayuda, y con todo lo demás que ya te dijo el compañero @NEBIRE.

EDITO:
NEBIRE no me entendiste?
sin un bucle for
y si es posible meterlo ala matriz con el comando split

Disculpadme los dos por entrometerme en vuestra conversación, pero... Flamer, sinceramente a mi me parece que ni tan siquiera has llegado a leer el post de @NEBIRE... o el que no lo has entendido en todo caso eres tú, por que basicamente él te da respuesta y explicación detallada a todas esas dudas. Si yo fuese él, me cabrearía si alguien me respondiese lo que has respondido tú xD.

Saludos!
48  Programación / Scripting / Re: crear explorador de archivos y carpetas en bath? en: 15 Julio 2017, 20:12
Un explorador dices... ¿como el explorador de Windows?.

Batch es tan solo una herramienta ordinaria, la cual se basa en el uso de los llamados 'comandos internos' (ej. el comando Copy), y 'comandos externos' (léase: aplicaciones command-line externas, como XCopy.exe) que en conjunto forman un pequeño núcleo con el que poder automatizar tareas básicas y cotidianas del usuario (ej. buscar archivos, o copiarlos, o leer y escribir ficheros, y aún así tampoco es capaz de cumplir de forma eficiente con ese tipo de tareas), no le pidas más, por que ese es su propósito, y con ello, sus limitaciones por naturaleza.
Batch no provee ningún framework con controles que te permitan desarrollar una interfáz de usuario gráfica (o GUI), esto quiere decir que Batch está totálmente incapacitado para cumplir con esa tarea. Solución: aprender a utilizar un lenguaje de verdad, como ya te ha dicho el compañero @Engel Lex.

Lo único que puedes conseguir mediante Batch, y no por si solo, sería escribir de forma programática un script de VBS desde un Batch-script, y luego ejecutar el código VBS mediante WSH para reproducir exactamente lo mismo que ya dices saber hacer en VBS... vamos, que sería algo completamente absurdo hacerlo, una pérdida de tiempo innecesaria, vaya.
 
Tampoco podrías reproducir las características de un explorador de archivos en modo consola (CLI) con actualizaciones en tiempo real, debido a que Batch no proporciona ningún sistema/paradigma de programación que te permita hacer eso como por ejemplo se haria mediante la utilización de la POO (programación orientada a objetos) junto a eventos de sincronización o notificación de cambios, y lo poco que pudieras llegar a simular/reproducir del concepto "explorador de archivos" en Batch, sería muy, muy tedioso de llevar a cabo en una herramienta tan limiada como es Batch. Vamos, que lo mires como lo mires, no merece la pena ni tan siquiera plantearse la idea de como podrías intentar implementar el concepto "explorador de archivos" en Batch... créeme.

Y suponiendo que todo lo que acabo de explicar no haya servido de nada, por que siempre cabe la posibilidad de que tal vez te hayas expresado sin propiedad de la palabra y realmente lo único que quieras hacer sea mostrar una ventanita en la que poder seleccionar un archivo, pues déjame aclararte que a eso se le denomina diálogo (o también caja de diálogo), no explorador de archivos, y es algo que lo puedes llevar a cabo perfectamente en VBS ... o en cualquier otro lenguaje que no sea Batch.

Saludos!
49  Programación / .NET / Re: C# Problemas con un tipo de guardado en: 15 Julio 2017, 14:04
Esperaba que solo salieran los nombres.

Yo lo que queria hacer era recoger las rutas y los nombres con el OpenFileDialog. Y cada vez que le doy al boton abrir, que esas canciones junto con sus rutas se amonten al final de la lista del listBox.

Voy en mal camino?

Si no entiendo mal, ¿estás diciendo que quieres hacer algo así?:



Eso a simple vista carece de sentido, aparte de ser muy poco práctico, poco amistoso. El concepto de ListBox es representar una secuencia de elementos... de un Array unidimensional (ej. un Array de String, o un Array de Imágenes...aunque esto último requiere algo más de trabajo), pero tu tienes dos elementos (nombre de archivo, y ruta absoluta del archivo) por ende sería más apropiado usar un control con rejilla como un ListView o DataGridView para representar la información en filas y columnas....



...O bien si lo prefieres puedes seguir usando un ListBox y usar un tipo específico (en este ejemplo de aquí abajo un diccionario, pero puedes usar el tipo que prefieras) para "recojer" el nombre del archivo y la ruta absoluta, ambos datos (es decir, una colección de Arrays), pero representar solamente uno de esos dos elementos en el ListBox:

Código
  1. Dictionary<string, string> fileDict = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
  2.  
  3. using (OpenFileDialog ofd = new OpenFileDialog { Multiselect = true }) {
  4.  
  5.    if (ofd.ShowDialog() == DialogResult.OK) {
  6.        for (int x = 0; x <= (ofd.FileNames.Count() - 1); x++) {
  7.            if (!fileDict.ContainsKey(ofd.FileNames[x])) {
  8.                fileDict.Add(ofd.FileNames[x], ofd.SafeFileNames[x]);
  9.            }
  10.        }
  11.        listBox1.BeginUpdate();
  12.        listBox1.Items.AddRange(fileDict.Values.ToArray());
  13.        listBox1.EndUpdate();
  14.    }
  15.  
  16. }
...Luego sencillamente te encargarías de controlar el evento ListBox.SelectedIndexChanged para obtener el valor (la ruta absoluta, o el nombre del archivo) del objeto (fileDict) que recojió ambos datos, y hacer lo que desees con esa información...

Saludos
50  Foros Generales / Foro Libre / Re: Sobre la nueva exclavitud. en: 15 Julio 2017, 04:11
Cierro el tema para evitar que se desvie.

PD: Randomize, céntrate.
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 1002
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines