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

#6621
1) pon el código entero que estás usando

2) a la variable FixedValues asignale manualmente los numeros que tocan ( que no lo tenga q hacer yo porque no los se :-/ ) para probar el For.

3) pon el output que debería dar al menos las primeras 3 combinaciones para saber por donde corregir el problema...

saludos!
#6622
Los índices empiezan por Cero en .Net, así que debes descontarle un 1 a FixedValues.Count (no debes aumentar nada)

Código (vbnet) [Seleccionar]
For Num As Integer = IndexCounter To (FixedValues.Count - 1I) Step NumStep

Supongo que eso debería solucionar el problema, quizás haya más cosas a tener en cuenta (IndexCounter, NumStep), pero de momento prueba lo que te dije a ver si te da el resultado que tu esperas.

Saludos!
#6623
Código (vbnet) [Seleccionar]
       FixedValues =
           (Result1.Concat(Result2).Concat(Result3)).
           Distinct.
           Select(Function(Value As Integer)
                      Return If(Value < MAX, Value, Rand.Next(0, MAX))
                  End Function).ToArray


PD: esto ponlo fuera del sub
Citar
Código (vbnet) [Seleccionar]
       Dim Rand As New Random
#6624
Citar
Código (vbnet) [Seleccionar]
   Private Sub Test() Handles MyBase.Shown

¿Eso no te dice nada?

Todo lo que hay en el interior de ese bloque se ejecuta en el evento Shown.

La finalidad (según me parece a mi tu intención) sería quitarlo de ahí para meterlo/adaptarlo en el bloque del sub Sumar.

Saludos

EDITO: por lo que dices, quizás pueda ser algo como esto:

Código (vbnet) [Seleccionar]
Imports System.IO
Public Class Form1

   Dim maximum As Short = 99
   Dim x As Integer = 0
   Dim Número As Double
   Private TextBoxes As TextBox() = {Nothing}
   Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32()
   Private _textBox As Object
   Private Property ListBox1Count As Integer
   ReadOnly MAX As Integer = 99
   ReadOnly Randomizer As New Random
   Dim Combo As List(Of Integer) = Nothing
   Dim Combos As New List(Of List(Of Integer))

   Dim FixedValues As Integer() = Nothing
   ReadOnly RandomValues As Integer() =
       Enumerable.Range(0, 99).ToArray


   Private Property Calcular As Object

   Private Property TextBoX(ByVal TextBoxCount As Short) As Object
       Get
           Return _textBox
       End Get
       Set(ByVal value As Object)
           _textBox = value
       End Set
   End Property

   Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
       ' evitar letras
       If Char.IsDigit(e.KeyChar) Then
           e.Handled = False
       ElseIf Char.IsControl(e.KeyChar) Then
           e.Handled = False
       ElseIf Char.IsSeparator(e.KeyChar) Then
           e.Handled = False
       Else
           e.Handled = True
       End If

   End Sub


   ReadOnly Property Num1 As Int32
       Get
           Return CInt(TextBox1.Text)
       End Get
   End Property

   ReadOnly Property Num2 As Int32
       Get
           Return CInt(TextBox2.Text)
       End Get
   End Property
   ReadOnly Property Num3 As Int32
       Get
           Return CInt(TextBox3.Text)
       End Get
   End Property


   Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click

       Result1 = {Num1 + 1, Num1 + 2, Num1 + 4, Num1 + 6, Num1 - 4, Num1 - 1} _
                 .Distinct().ToArray ' Elimino duplicados

       Result2 = {Num2 + 1, Num2 + 2, Num2 + 3, Num2 - 1, Num2 - 2, Num1 - 3} _
                 .Distinct().ToArray ' Elimino duplicados

       Result3 = {Num3 - 1, Num3 - 2, Num3 - 3, Num3 + 2, Num3 + 3, Num3 + 5} _
                 .Distinct().ToArray ' Elimino duplicados

       Dim Rand As New Random
       FixedValues =
           (Result1.Concat(Result2).Concat(Result3)).
           Distinct.
           Select(Function(Value As Integer)
                      Return If(Value < MAX, Value, Rand.Next(0, MAX))
                  End Function)

       Dim IndexCounter As Integer = FixedValues.First ' 1
       Dim LenCounter As Integer = 0I

       Const NumStep As Integer = 5I
       Const NumLen As Integer = 6I

       Do Until IndexCounter > FixedValues.Last

           Combo = New List(Of Integer)

           For Num As Integer = IndexCounter To (FixedValues.Count) Step NumStep

               LenCounter += 1I
               Combo.Add(FixedValues(Num - 1I))

               If LenCounter >= NumLen Then
                   Exit For
               End If

           Next Num

           If LenCounter < NumLen Then

               For RandomNum As Integer = 1I To (NumLen - LenCounter)

                   Dim n As Integer = Randomizer.Next(RandomValues.First, RandomValues.Last)

                   Do Until Not Combo.Contains(n)
                       n = Randomizer.Next(RandomValues.First, RandomValues.Last)
                   Loop

                   Combo.Add(n)

               Next ' RandomNum

           End If ' LenCounter < NumLen

#If DEBUG Then ' #Debug
           Debug.WriteLine(String.Join(", ", Combo))
           ' Stop
#End If
           Combo.Sort()
           Combos.Add(Combo)
           IndexCounter += 1I
           LenCounter = 0I

       Loop ' IndexCounter >= FixedValues.Last

       ' ******** ordenamiento-------------
       '  Dim values As Integer() = (From n As Integer In Combos Order By n Ascending).ToArray

       ' ********
       ' Listbox:
       ' ********
       Combos.ForEach(Sub(comb As List(Of Integer))

                          ' Convierto la Lista a 'String', le añado los ceros, y añado el string formateado al Listbox.
                          ListBox1.Items.Add(String.Join(", ",
                                                         From value As String In comb
                                                         Select If(value.Length = 1I,
                                                                   value.Insert(0I, "0"c),
                                                                   value)))
                          ListBox1.Sorted = True



                      End Sub)

   End Sub


End Class


Cosas a tener en cuenta:

1. No le asignes un nombre reservado a una propiedad (TextBox), y asignale el Type de retorno adecuado (no Object)

2. Intenta organizar ese código, es un desastre visual, métodos en medio de propiedades y luego más propiedades, constantes dentro de métodos, algoritmos largos dentro del bloque de un event-handler (aunque bueno, estu último lo añadi yo xD pero ya habia algo ahí de antes), un desastre.

#6625
Cita de: luis456 en 28 Agosto 2014, 13:23 PMSolucionado ;)

Bien, pero debes intentar interactuar lo más mínimo con la UI.

Código (vbnet) [Seleccionar]
Combos.Count

Saludos
#6626
Windows / Re: MSSQL$MSSMLIBZ
28 Agosto 2014, 05:30 AM
Cita de: skan en 27 Agosto 2014, 21:47 PM¿piensas que puede ser necesario para algún producto de Office?.
No lo se, nunca habia visto antes ese servicio en particular, y practicamente no hay documentacion sobre ese servicio en Google, pero si dices que tu novia no utiliza SQL, y si tampoco utiliza aplicaciones que dependan de MSSQL pues... creo que lo más lógico es pensar que no es necesario.

Cita de: skan en 27 Agosto 2014, 22:23 PM¿Hay algún modo de saber que aplicación (ejecutable) hace uso de ese servidor SQL?
Con ProcessExplorer (de SysInternals) puedes comprobar los servicios que están registrados a las aplicaciones actualmente en ejecución.

Inicias los programas de Microsoft (o los que consideres), inicias ProcessExplorer, haces doble click en cada programa y miras la pestaña "Services".

Saludos
#6627
Windows / Re: MSSQL$MSSMLIBZ
27 Agosto 2014, 15:40 PM
Si, por el nombre queda claro que es de SQL (MSSQL = Microsoft SQL) y lo más probable es que se te haya instalado sin ningún tipo de aviso junto a algún producto de Microsoft, como por ejemplo VisualStudio, Outlook, Office, no se, algo que te hayas instalado ultimamente (muy típico por parte de Microsoft instalar basura adicional, en fin), deberías poder deshabilitar dicho servicio sin problemas.

Saludos
#6628
Cita de: owl-eyes en 27 Agosto 2014, 06:47 AMSí, estoy totalmente de acuerdo con ambos, porque la gente se va a venir a meter solo por puntos y esa va a ser su únca meta, subir de rango aunque comente bien todos los temas del foro.

Si uno se sintiera superior por recibir más likes sinceramente me la pela, si hubiera un sistema de puntos pues hallá cada uno con su ignorancia y su felicidad,
a mi lo que más me preocuparía serían los haters, esos Trolls que le darían dislikes a todo el usuario que le caiga mal solo pro esa razón, o a todos los usuarios sin razón alguna como suele pasar en cualquier página con puntos frecuentado por gente digamos... "joven" (por no decir infantil o inmadura), se romperían los bonitos vínculos que existen ahora entre los participantes del foro y se generaría una especie de adversidad, competitividad y mal ambiente, me imagino muchas cosas malas, no me gusta para nada esa sistema.

En su dia ya se habló sobre implementar un sistema de puntos, pero si no recuerdo mal solo los miembros del staff podrían votar a los usuarios (no se si moderadores también) y solo con votos positivos, al parecer no llegaron a implementarlo, pero se habló, y mientras no hubiese votos negativos entonces yo aprovaría esa idea (aunque mi opinión no importa practicamente nada xD), ya que en mi opinión ningún comentario/publicación se merecería una valaración negativa por mucho que nos pueda sangrar los ojos al leerla.

PD: Por poner un ejemplo, no se si viene mucho al tema pero en una web un tanto peculiar que frecuento desde hace años (yonkis.com) han implementado un sistema de puntos hace unos días, lo curioso es que si te dan 5 negativos ocultan tu comentario, y claro, toda la gente hace la gracia de intentar ocultar intencionadamente los comentarios por trollear, en fin, no creo que un sistema de puntos sea una idea positiva en ninguna circunstancia, a menos que solo sea de puntos positivos.

Saludos!
#6629
Cita de: luis456 en 27 Agosto 2014, 05:31 AMLo que me refiero es que cada combinación este ordenada de menor a mayor

Entonces, antes de añadir la combinación (Combo) a la lista de combinaciones (Combos), ordénala usando el método Sort.

Código (vbnet) [Seleccionar]
Combo.Sort() ' <---- aquí ordeno la combinación actual.

Combos.Add(Combo) ' <---- aquí añado la combinación ordenada al resto de combinaciones.

' y aquí sigo con el código como estaba...
IndexCounter += 1I
LenCounter = 0I
etc...


saludos
#6630
Cita de: paniicO en 27 Agosto 2014, 02:48 AM¿Cual es la acción que abre el menú de inicio en Windows?

¿Acción?, el menú de inicio se puede abrir enviando la pulsación de la tecla "WIN" (Windows), ahora, internamente se procesan messages de Windows.

Cita de: paniicO en 27 Agosto 2014, 02:48 AM¿Os suena que sea un ejecutable o una funcion privada del sistema?

Puedes utilizar la función keybd_event así como SendKeys de la WinAPI para simular la pulsación.

O también puedes utilizar las funciones FindWindow + FindWindowEx + PostMessage para obtener el handle del botón, y enviar el message BM_CLICK (0x00F5) de windows para abrir el menú.

Puedes usar cualquier aplicación de tipo Spy (Ej: WinSPy++, Nektra SpyStudio, Microsoft Inspect) para obtener el nombre de la class, el nombre de la ventana, y el handle.
El botón de inicio está dentro de la ventana de la barra de tareas así que lo más correcto sería acceder por ahí (y no directamente al botón), el nombre de la class del TaskBar es "Shell_TrayWnd", el nombre de la class del botón-inicio es "Button", y en la versión castellana de Windows el título de la ventana del botón-inicio es "Inicio" (en inglés es "Start").

Ahora, no uso rainmeter, desconozco si puedes implementar snippets de programación y usar la winAPI, pero preguntaste por la función de windows y ahí te respondí.

Saludos