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 - Psyke1

#961
Prueba con vbKeyF1 y con vbKeyEscape (investiga sobre las constantes vbKey), y tienes que definir la variable As Object, que si no lo tienes As Variant... :-\
Código (vb) [Seleccionar]
Option Explicit
Dim pulsacion As Object
Do
  Set pulsacion = CreateObject("WScript.Shell")
  WScript.Sleep 1000
  pulsacion.SendKeys vbKeyF1 ' o vbKeyEscape
Loop

No se si quieres hacer eso, pero con el Do ese que has puesto no saldria nunca y se bloquearia el programa...

Aqui tienes otra forma de hacerlo : http://foro.elhacker.net/programacion_visual_basic/problema_con_sendmessage_ayuda-t296261.0.html

Salu2!
#962
Concretamente para lo que queria hacer se me ocurrio esto:
Código (vb) [Seleccionar]

Option Explicit
Private Sub Aleatory_Comb(ByRef CharList() As String, ByVal iDigits As Integer, ByVal iNumber As Long)
   Dim sWord                       As String
   Dim lTotalChar                  As Long
   Dim x                           As Long
   Dim y                           As Long
   Dim Col                         As Collection
   Set Col = New Collection
   lTotalChar = UBound(CharList())
   If iNumber > (lTotalChar) ^ iDigits Then Exit Sub
   On Error Resume Next
   Do While y < iNumber
       For x = 1 To iDigits
           Randomize
           sWord = sWord + CharList((Rnd * (lTotalChar - 1)) + 1)
       Next
       Col.Add sWord, sWord
       If Err.Number = 0 Then
           Debug.Print sWord
           y = y + 1
       Else
           Debug.Print "Palabra duplicada : "; sWord 'Esta linea es solo para que veais que la detecta
           Err.Clear
       End If
       sWord = vbNullString
   Loop
   Set Col = Nothing
End Sub

Private Sub Form_Load()
   Dim Matriz() As String
   Matriz = Split("a,b,c", ",") ' Solo pongo 3 letras para que se repitan =)
   Call Aleatory_Comb(Matriz, 5, 7)
End Sub

Funcionar funciona... ;)

Salu2! :)
#963
Cita de: Maik33 en 15 Junio 2010, 13:15 PM
Me gusto, buena PsYke1, pero cuando pongo la velocidad negativa (-7) me da desbordamiento. Aun asi buena
Ahora esta corregido, es porque en la llamada puse Byte en vez de Long, y Byte no acepta numeros negativos... :P
Me alegro de que te guste... ;)

Salu2!
#964
JAJJAJAJJAJAJAJAAJA :laugh:
Ahora por tu culpa nadie lo usara! :¬¬   :xD

Salu2! ;)
#965
Hacer que tu ordenador te hable
Bueno investigando por el msdn sobre objetos y demas encontre el ojeto "Sapi.spVoice", el cual nos permite ponerle voz a nuestro ordenador...  :laugh:
Algo asi como el loquendo, pero en ingles...   :¬¬
Hice este sencillo procedimiento para que veais un ejemplo:

Código (vb) [Seleccionar]

' ////////////////////////////////////////////////////////////////
' // *Autor: *PsYkE1* (miguelin.majo@gmail.com)                 //
' // *Podeis agrandar o reducir el codigo, siempre y cuando se  //
' // respete la autoria y se me comuniquen esos cambios.        //
' // *Agradecimientos a BlackZeroX                              //
' // *Visita http://foro.rthacker.net                           //
' ////////////////////////////////////////////////////////////////
Option Explicit
Public Sub Computer_Talk(ByVal sText As String, Optional ByVal lVelocity As Long = 0)
   If lVelocity < -10 Or lVelocity > 10 Then Exit Sub
   Dim oTalkComputer As Object
   Set oTalkComputer = CreateObject("Sapi.spVoice")
   If oTalkComputer Is Nothing Then Exit Sub
   With oTalkComputer
       .Rate = lVelocity
       .Speak sText
   End With
   Set oTalkComputer = Nothing
End Sub


Lo divertido es que podemos regular laa velocidad a nuestro gusto... :D
Asi unos ejemplos de llamadas:
Código (vb) [Seleccionar]

   Call Computer_Talk("hello psyke1") ' Velocidad predeterminada 0


Código (vb) [Seleccionar]

   Call Computer_Talk("hello psyke1", 5) ' Más rapido(valor maximo 10)


Código (vb) [Seleccionar]

   Call Computer_Talk("hello psyke1", -7) ' Más lento (valor minimo -10)


Espero que os haya gustado... ;)

Salu2! :P
#966
Aunque el tema este solucionado queria hacer una recomendacion:
Cita de: Mr.Know en 15 Junio 2010, 11:08 AM
Hola

Perfecto creo que ya lo he entendido mejor  :P ahora haber que tal de esta manera:


Veis algun fallo importante en el codigo ?

Código (vb) [Seleccionar]

Public Final As String ' Esta variable la calcule en otra funcion, pero la necesito en varias funciones asique la declaro como publica
Sub leer_partido()
   Dim MasNumeros(1 To 19) As String ' Tengo que usar String porque 18 lineas son numeros y 1 es alfanumerica
   Dim i%
   Dim nFic%
   Dim inicial As Integer
   inicial = 1
   nFic = FreeFile
   Open Final For Input As nFic
   For i = 1 To 19
       Input #nFic, MasNumeros(i)
   Next
   Close nFic
   Contador1 = Val(Contador1) + Val(inicial) ' Necesito llevar la cuenta de cuantas veces se llama a esta funcion.
'Ahora voy volcando dato a dato del array en su correspondiente label
   Label1.Caption = MasNumeros(1) & vbCrLf
   Label2.Caption = MasNumeros(2) & vbCrLf
   Label3.Caption = MasNumeros(3) & vbCrLf
   Label4.Caption = MasNumeros(4) & vbCrLf
   Label5.Caption = MasNumeros(5) & vbCrLf
   Label6.Caption = MasNumeros(6) & vbCrLf
   Label7.Caption = MasNumeros(7) & vbCrLf
   Label8.Caption = MasNumeros(8) & vbCrLf
   Label9.Caption = MasNumeros(9) & vbCrLf
   Label10.Caption = MasNumeros(10) & vbCrLf
   Label11.Caption = MasNumeros(11) & vbCrLf
   Label12.Caption = MasNumeros(12) & vbCrLf
   Label13.Caption = MasNumeros(13) & vbCrLf
   Label14.Caption = MasNumeros(14) & vbCrLf
   Label15.Caption = MasNumeros(15) & vbCrLf
   Label16.Caption = MasNumeros(16) & vbCrLf
   Label17.Caption = MasNumeros(17) & vbCrLf
   Label18.Caption = MasNumeros(18) & vbCrLf
   resultados.AddItem = MasNumeros(19) & vbCrLf ' Esto es un listbox y le meto datos alfanumericos ( una frase con numeros )
End Sub
Creo que se podria simplificar haciendo una matriz de controles con los labels, ahorrarias mucho codigo, en una linea lo que haces en 18:
Código (vb) [Seleccionar]

For x = 1 to 18 : Label1(x).Caption = MasNumeros(x) & vbCrLf : Next


Salu2! :)

Citar
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
#967
Ok Gracias... ;D
#968
Código (vb) [Seleccionar]

'
'   /////////////////////////////////////////////////////////////
'   // Autor:   BlackZeroX ( Ortega Avila Miguel Angel )       //
'   //                                                         //
'   // Web:     http://InfrAngeluX.Sytes.Net/                  //
'   //                                                         //
'   //    |-> Pueden Distribuir Este Codigo siempre y cuando   //
'   // no se eliminen los creditos originales de este codigo   //
'   // No importando que sea modificado/editado o engrandesido //
'   // o achicado, si es en base a este codigo es requerido    //
'   // el agradacimiento al autor.                             //
'   /////////////////////////////////////////////////////////////
'
Rem Opciones.
Option Explicit

Rem Procesos/funciones
Sub MAIN()
Dim Cls_NewMainProc                             As New Cls_Main
Const Const_StrtoProc                           As String = "BlackZeroX"
   With Cls_NewMainProc
       With .ClsStrCmb
           '   //  .String_ = Const_StrtoProc
           Call .Start_(Const_StrtoProc)
       End With
       Debug.Print "Max Combinaciones {"; .ClsStrCmb.String_; "} son de"; .MaxConbinaciones
   End With
End Sub

Pero si no me equivoco esto unicamente te muestra la cantidad de combinaciones posibles, ¿no?  :huh:

Gracias y Salu2! ;)
#969
Pense eso ya, pero si genero 5000 palabras y cada una que genere tengo que buscarla en el array se demoraria mucho la cosa, no crees??  :silbar:

Salu2 y gracias!
#970
Hola!! ;D a ver si me podeiss ayudar, la duda es:
Tengo esto para generar palabras aleatorias:
Pero quiero que esas palabras no se puedan repetir... y ya esta, asi de simple... :laugh:
(No os asusteis que esta en sucio  ;))
Código (vb) [Seleccionar]

Private Sub Aleatory_Comb(ByRef CharList() As String, ByVal iDigits As Integer, ByVal iNumber As Long)
    Dim sWord As String
    Dim x     As Long
    Dim y     As Long
    For y = 1 To iNumber
        For x = 1 To iDigits
            Randomize
            sWord = sWord + CharList((Rnd * (UBound(CharList()) - 1) + 1))
        Next
        MsgBox sWord: sWord = ""
    Next
End Sub

Private Sub Form_Load()
    Dim Matriz() As String
    Matriz = Split("a,b,c,d,e,f,g,h,i,j,k,l,,m,ñ,o,p,q,r,s,t,u,v,w,x,y,z", ",")
    Call Aleatory_Comb(Matriz, 5, 7)
End Sub


Gracias!!