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

#5811
Cita de: laut3n en 17 Enero 2015, 07:52 AMAlguno que otro va a saltar diciendo que lo haga a mano por codigo pero mi idea es que sea dinamico y que se almacene en el listbox.

No me ha quedado muy claro lo que quieres hacer, ¿ambos datos, preguntas y respuestas, quieres mostrarlos en un ListBox?, ¿o solo quieres mostrar las preguntas y ligar las respuestas a cada pregunta?.

En el primer caso, un ListBox no está diseñado para almacenar/mostrar parejas de items, así que si pretendes mostrar ambos datos eso significa que le estás dándole el enfoque erroneo a tu aplicación, en su lugar puedes crear tu propio control, o utilizar un ListView por ejemplo, con 2 columnas, una para mostrar preguntas y en la otra respuestas.

En el segundo caso, una solución sería almacenar las preguntas y respuestas en una colección se strings, o por ejemplo un KeyValuePair o una Tupla (entre otras), o tambiénbien puedes crear tu propio Type, ejemplo:


VB.Net:
Código (vbnet) [Seleccionar]
   ''' <summary>
   ''' Implements a kind of Question/Answer KeyValuePair.
   ''' This class cannot be inherited.
   ''' </summary>
   Public NotInheritable Class QA

       ''' <summary>
       ''' Gets the question.
       ''' </summary>
       ''' <value>The question.</value>
       ReadOnly Property Question As String
           Get
               Return Me.mQuestion
           End Get
       End Property
       Private mQuestion As String

       ''' <summary>
       ''' Gets the answer.
       ''' </summary>
       ''' <value>The answer.</value>
       ReadOnly Property Answer As String
           Get
               Return Me.mAnswer
           End Get
       End Property
       Private mAnswer As String

       ''' <summary>
       ''' Initializes a new instance of the <see cref="QA"/> class.
       ''' </summary>
       ''' <param name="question">The question.</param>
       ''' <param name="answer">The answer.</param>
       ''' <exception cref="System.ArgumentNullException">
       ''' question;value cannot be empty.
       ''' or
       ''' answer;value cannot be empty.
       ''' </exception>
       Public Sub New(ByVal question As String, ByVal answer As String)

           If String.IsNullOrEmpty(question) Then
               Throw New ArgumentNullException("question", "value cannot be empty.")

           ElseIf String.IsNullOrEmpty(answer) Then
               Throw New ArgumentNullException("answer", "value cannot be empty.")

           Else
               Me.mQuestion = question
               Me.mAnswer = answer

           End If

       End Sub

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

   End Class

+
Código (vbnet) [Seleccionar]
Public Class TestForm

   ''' <summary>
   ''' The Question/Answer list.
   ''' </summary>
   Public ReadOnly QAlist As New List(Of QA) From {
       New QA(question:="pregunta1", answer:="7"),
       New QA(question:="pregunta2", answer:="9"),
       New QA(question:="pregunta3", answer:="5")
   }

   ''' <summary>
   ''' Handles the Load event of the TestForm form.
   ''' </summary>
   Private Sub TestForm_Load(ByVal sender As Object, ByVal e As EventArgs) _
   Handles MyBase.Load

       ' Add the questions into Listbox.
       Me.ListBox1.Items.AddRange((From qa As QA In QAlist Select qa.Question).ToArray)

   End Sub

   ''' <summary>
   ''' Handles the SelectedIndexChanged event of the ListBox1 control.
   ''' </summary>
   Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) _
   Handles ListBox1.SelectedIndexChanged

       Dim lb As ListBox = DirectCast(sender, ListBox)
       If Not lb.SelectionMode = SelectionMode.One Then
           Throw New NotImplementedException("SelectionMode is not implemented.")
       End If

       Dim qa As QA = QAlist.Find(Function(x As QA) x.Question.Equals(lb.SelectedItem.ToString))

       Debug.WriteLine(String.Format("Q: {0}", qa.Question))
       Debug.WriteLine(String.Format("A: {0}", qa.Answer))
       Debug.WriteLine(String.Empty)

   End Sub

End Class


CSharp:
Código (csharp) [Seleccionar]
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;

/// <summary>
/// Implements a kind of Question/Answer KeyValuePair.
/// This class cannot be inherited.
/// </summary>
public sealed class QA
{

/// <summary>
/// Gets the question.
/// </summary>
/// <value>The question.</value>
public string Question {
get { return this.mQuestion; }
}
private string mQuestion;

/// <summary>
/// Gets the answer.
/// </summary>
/// <value>The answer.</value>
public string Answer {
get { return this.mAnswer; }
}
private string mAnswer;

/// <summary>
/// Initializes a new instance of the <see cref="QA"/> class.
/// </summary>
/// <param name="question">The question.</param>
/// <param name="answer">The answer.</param>
/// <exception cref="System.ArgumentNullException">
/// question;value cannot be empty.
/// or
/// answer;value cannot be empty.
/// </exception>
public QA(string question, string answer)
{
if (string.IsNullOrEmpty(question)) {
throw new ArgumentNullException("question", "value cannot be empty.");

} else if (string.IsNullOrEmpty(answer)) {
throw new ArgumentNullException("answer", "value cannot be empty.");

} else {
this.mQuestion = question;
this.mAnswer = answer;

}

}

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

}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================

+
Código (csharp) [Seleccionar]
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;

public class TestForm
{

/// <summary>
/// The Question/Answer list.
/// </summary>
public readonly List<QA> QAlist = new List<QA> {
new QA(question: "pregunta1", answer: "7"),
new QA(question: "pregunta2", answer: "9"),
new QA(question: "pregunta3", answer: "5")

};

/// <summary>
/// Handles the Load event of the TestForm form.
/// </summary>
private void TestForm_Load(object sender, EventArgs e)
{
// Add the questions into Listbox.
this.ListBox1.Items.AddRange((from qa in QAlistqa.Question).ToArray);

}

/// <summary>
/// Handles the SelectedIndexChanged event of the ListBox1 control.
/// </summary>
private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox lb = (ListBox)sender;
if (!(lb.SelectionMode == SelectionMode.One)) {
throw new NotImplementedException("SelectionMode is not implemented.");
}

QA qa = QAlist.Find((QA x) => x.Question.Equals(lb.SelectedItem.ToString));

Debug.WriteLine(string.Format("Q: {0}", qa.Question));
Debug.WriteLine(string.Format("A: {0}", qa.Answer));
Debug.WriteLine(string.Empty);

}
public TestForm()
{
Load += TestForm_Load;
}

}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================




Debug Output:
Q: pregunta1
A: 7

Q: pregunta2
A: 9

Q: pregunta3
A: 5
#5812

Me quito el sombrero.





¡ Gracias por ilustrarnos con tus conocimientos !



 


EDITO:
Joder, ¡es que te lo has currado muchísimo!

Señores, ahí tienen el mejor buscador de duplicados de todos los tiempos, un aplauso a la mágia del compañero .:: Under ::.

PD: Sé que otra persona del foro intentó desempaquetar y craquear esa aplicación, ¡GRACIAS para esa persona flameante por intentarlo también! :)

Saludos
#5813
Cita de: Dsalomon en 17 Enero 2015, 08:06 AMbuen el caso que cuando el capitulo seleccionado se añade a la lista de reproducción no muestra el tiempo del vídeo, puedo solo especular que:

Esa información la extrae WinAmp de los archivos, puedes configurar en las opciones de WinAmp para que siempre obtenga los metadatos aunque los archivos aun no hayan sido procesados por el reproductor:



Por otro lado, como bien has deducido winamp no puede reconocer la duración de ciertos archivos de video, creo que la única solución es que mejoren/actualicen el programa en general... creo que para ese problema de la duración del video solo puedes intentar buscar una solución en el foro de winamp.

PD: Aunque en la opción de la imagen especifica que es para leer los títulos, lo cierto es que también es para leer la duración de los archivos.

Saludos
#5814
Cita de: delanoche86 en 17 Enero 2015, 05:20 AMquisiera saber como eliminarlo y que antispyware me recomiendan.

Puedes utilizar la versión gratuita de MalwareBytes: http://www.malwarebytes.org/lp/malware_lp_form/
Realiza un escaneo completo, con la base de virus actualizada a día de hoy, y con tu navegador cerrado.

MalwareBytes debería ser suficiente para detectarlo y eliminarlo, pero si eso no desinfecta el ad-aware específico con el que estás infectado, entonces puedes probar AdwCleaner como alternativa (es un proyecto que está algo verde y puede dar varios falsos positivos, pero es bueno):
https://toolslib.net/downloads/viewdownload/1-adwcleaner/

O también puedes recurrir a una desinfección manual, aquí puedes encontrar posibles soluciones:
http://lmgtfy.com/?q=Powered+by+Deal+removal

Saludos
#5815
Lo que tienes que arrastrar no es el Setup.exe, eso es el instalador, ¿no querrás que se inicie el instalador siempre que entres en Windows, verdad '¬¬?, arrastra el exe ya instalado (que estará en C:\Program Files\...)

Cita de: El_Andaluz en 17 Enero 2015, 05:14 AM
a continuación que deberia de pasar ? Aparecer la papelera del programa ?

no debe pasar nada, simplemente reinicias el PC o reinicias sesión y te saldrá el programa... quiero decir, la papelera esa.

saludos
#5816
A mi me va a funcionar, ya realicé las pruebas necesarias al programarlo :xD. no está muy clara la razón de porque no se te inicia, si por un problema de la app, por privilegios, o por que.

ve a la clave de registro que te he indicado, haz una captura de pantalla y muestrala, o añade el valor manualmente

no si, al final te tendré que hacer una cosa tan simple por teamviewer y todo '¬¬
#5817
Cita de: El_Andaluz en 17 Enero 2015, 04:37 AMSe supone que significa Archivo agregado con éxito a las ventanas de inicio pero no hace nada no se  :huh:
Supones bien.

El archivo se iniciará cuando vuelvas a iniciar sesión en Windows (de eso se trata...), ¿has reiniciado el PC?.

Mi aplicación ha determinado que la clave se agregó correctamente (hago un simple chequeo para verificar que la clave existe después de intentar añadirla), pero de todas formas si después de reiniciar el PC no se te inicia la app, abre el regedit.exe y ve a la clave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run, ahí debería encontrarse la clave que ha añadido el programa.

Y si, si no estás en la cuenta de Administrador debes ejecutar la app en modo administrador para modificar el registro.

Saludos
#5818
Cita de: El_Andaluz en 17 Enero 2015, 03:46 AM
Elektro: Y por que lo han puesto asín en vez de añadirle esa opción por que normalmente la mayoria de los programas se inicia junto a windows como tu dices sera por que el programa es antiguo o el que lo ha creado lo ha echo asín de mal verdad,muchas gracias por la explicación ahora si lo he entendido mejor.

Esas cosas siempre dependen del desarrollador, simplemente son detalles que algunos tienen en cuenta y otros no, quizás ni se les pasó por la cabeza o quizás consideraron que no era lo más adecuado, vete ha saber.

Cada uno tiene su estilo de programación y de elaboración de sus productos...
Yo tampoco habría añadido esa característica si la app fuese mía, lo considero mala idea, más que nada para reducir el riesgo de un uso inadecuado por los usuarios inexpertos o descerebrados o con malas intenciones al tratarse de una app que elimina archivos de forma permanente. (eso no lo digo por ti, tu eres consciente de porque lo quieres iniciar con Windows)

Saludos!
#5819
Cita de: El_Andaluz en 16 Enero 2015, 16:03 PMpor que dices que ejecutar un programa no es lo mismo que instalar para ejecutar un programa necesito instalarlo si no nunca se puede ejecutar verdad

Lo que intento que comprendas es que:
Hay una diferencia entre instalar el tal "FreeEraser", y que éste se ejecute siempre cada vez que reinicies el PC, ya que eso es una característica secundaria de cualquier programa, y es algo que lo puedes hacer por ejemplo como te indiqué.
En otras palabras, una cosa es instalar un programa, y otra muy distinta es iniciarla junto a Windows, tu has instalado el programa, pero no lo estás iniciando con Windows, por eso al loguearte en Windows no te aparece la "papelera" (quizás lo de ver una papelera en el esritorio te haya confundido, esa papelera simplemente es la interfaz de ese programa, si no ejecutas el programa manualmente entonces no vas a ver ninguna papelera mágica).

La opción "portable" no te va a añadir el programa al inicio de Windows, portabilizar una aplicación significa:
poder usar esa aplicación desde cualquier dispositivo sin necesidad de un instalador, por ejemplo desde un USB.
Si elijes la opción "portable" deduzco que el tal  "FreeEraser" simplemente almacenará su configuración en un archivo local (posiblemente .ini) junto al exe, todo en la misma carpeta, para que no requiera instalarlo y puedas copiarlo y usarlo desde un USB.
(portable tambien significa otras cosas relacionadas con programación y la arquitectura de un un programa, pero este no es el caso).

Saludos
#5820
No puedo verificarlo con un 100% de fiabilidad, pero según mi pequeño análisis (tras desempaquetar UPX), la aplicación parece estar desarrollada en Visual C++ (7.0).

GTA:SA es un juego muy explotado de forma "interna" debido a su demanda, así que a pesar de los años no creo que costase demasiado a día de hoy realizar una investigación via Google para encontrar documentación "underground" sobre los formatos privados de los recursos que utiliza eel juego, para saber cómo desempaquetarlos e identificar los archivos almacenados en su interior para leer/escribir bytes en dichos archivos;
Incluso quizás existan librerías de terceros para ayudar en dichas tareas.

Todo se basa en investigar para hallar las respuestas que buscas.
Pero creo que es bastante más dificil de lo que crees, ya que no estamos hablando de formatos conocidos cono un zip (o al menos eso supongo, no tengo el GTA:SA), y eso implicaría un mayor conocimiento sobre lo que intentas hacer.
El hecho de que hayas intentado elegir usar el mismo lenguaje en el que crees que ha sido desarrollada la aplicación (Vb.Net/C#/VC), y solo por pensar que así te sería más fácil, no creo que sea la mejor idea (ya que no dispones del source para tener una base de cómo hacerlo en es elenguaje).
Primero deberías aprender las bases de un lenguaje ...el que más te guste (en caso de que no sepas ninguno), y luego ya...

Saludos!