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

#751
 ;DSinceramente, no tengo claro lo que quieres hacer. ¿Para qué pones en un combobox F1, NumPad0, etc?

¿Qué quieres, que cuando el usuario le de al F1, y esté usando el combo se selecciona F1 en la lista?¿o que?, No entiendo.  :-[

Lógicamente, si quieres que dentro de un Textbox se produzca un evento tendrás que poner lo mismo que en los ejemplos pero en el Evento del Textbox no en el del ComboBox, no se si me explico. Yo he puesto esos ejemplos, que son eso, ejemplos para ver como va, pero la programación es flexible y cada cual luego lo moldea y lo aplica como crea conveniente.

Para este código necesitas un Texbox y un ComboBox. Si en el ComboBox seleccionas "F1" cuando teclees 'F1' en el textBox aparecerá un mensaje. Como ves, he usado los mismos parámetros pero usado de forma distinta. Una vez tienes la base, luego lo aplicas como te de la gana. No se si es lo que buscas, espero que te sirva.  ::)

Código (vbnet) [Seleccionar]
Public Class Form1

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       ComboBox1.Items.Add(Keys.F1)
       ComboBox1.Items.Add(Keys.NumPad0)
       ComboBox1.Items.Add(Keys.Space)
       ComboBox1.Items.Add(Keys.ControlKey)
       ComboBox1.SelectedIndex = 0
       TextBox1.Focus()
   End Sub

   Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
       Dim N As String
       N = ""
       Select Case e.KeyCode
           Case 112 : N = "F1"
           Case 96 : N = "NumPad0"
           Case 32 : N = "Space"
           Case 17 : N = "ControlKey"
       End Select
       If ComboBox1.Text = N Then
           MsgBox("Ha presionado " & N)
       End If
   End Sub
End Class
#752
Si programas con VB, siempre vas a ser muy vulnerable a los hackeos, eso que no te quepa duda.

Si quieres evitarlo tendrás que encr1ptar la base de datos, con lo cual no te recomiendo usar base de datos basados en Office o VBScript. Vamos, ni se te ocurra.  En cuanto a como crear la base de datos, eso depende del tipo de datos. Puedes usar un sistema binario.
#753
A mi me parece una versión actualizada de "9 semanas y media"(1986). Cuando salió esta película ocurrió un fenómeno similar, especialmente entre las féminas.

Una cosa que me ha llamado la atención y curiosamente nadie comenta es el "CULTO AL DINERO" que hay en la película. No entiendo esa manía que tienen ahora en Hollywood de hacer películas sobre ricos. Los pobres también existimos  :¬¬

   
#754
Cita de: M1LL3R en 18 Febrero 2015, 22:43 PM
GRACIAS OKIK!!!
La verdad que me fue muy útil  ;D. Ahora tengo otro problema el cual es que al añadir F's o numeros del NumPad o teclas como Space o RControl no se sale el MsgBox.
Al ComboBox los añadi asi:
ComboBox1.Items.Add(Keys.F1)
ComboBox1.Items.Add(Keys.NumPad0)
ComboBox1.Items.Add(Keys.Space)


Gracias Nuevamente :D !!!!



Código (vbnet) [Seleccionar]
    Dim N As String
       N = ""
       If e.KeyCode = Keys.F1 Or e.KeyCode = Keys.NumPad0 Or e.KeyCode = Keys.Space Then
           Select e.KeyCode
               Case 112 : N = "F1"
               Case 96 : N = "NupPad0"
               Case 32 : N = "Espacio"
           End Select

           MsgBox("Ha presionado " & N)
       End If



http://127.0.0.1:47873/help/1-5212/ms.help?product=VS&productVersion=100&method=f1&query=System.Windows.Forms.KeyEventArgs.Modifiers&locale=es-ES&category=DevLang%3aVB%00TargetFrameworkMoniker%3a.NETFramework,Version%3Dv4.0


Código (vbnet) [Seleccionar]

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ComboBox1.Items.Add(Keys.F1)
        ComboBox1.Items.Add(Keys.NumPad0)
        ComboBox1.Items.Add(Keys.Space)
        ComboBox1.Items.Add(Keys.ControlKey)
    End Sub

    Private Sub ComboBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyUp
        Dim N As String
        N = ""
        If e.KeyCode = Keys.F1 Or e.KeyCode = Keys.NumPad0 Or e.KeyCode = Keys.Space Or e.KeyCode = Keys.ControlKey Then
            Select Case e.KeyCode
                Case 112 : N = "F1"
                Case 96 : N = "NumPad0"
                Case 32 : N = "Space"
                Case 17 : N = "ControlKey"
            End Select
            MsgBox("Ha presionado " & N)
        End If

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        Select Case ComboBox1.Text
            Case "F1"
                MsgBox("Keycode: " & Keys.F1)
            Case "NumPad0"
                MsgBox("Keycode: " & Keys.NumPad0)
            Case ("Space")
                MsgBox("Keycode: " & Keys.Space)
            Case "ControlKey"
                MsgBox("Keycode: " & Keys.ControlKey)
        End Select
    End Sub

End Class
#755
Cita de: engel lex en 18 Febrero 2015, 16:33 PM
okik entonces  tu dices que los metodos censurados son independientes de "condiciones, SO, Computadora, programa y hardware"? wow!
lo que digo es que más que información hay desinformación. Y cuando una información realmente funciona, es eliminada.

Es prácticamente imposible, por no decir imposible directamente, encontrar un sistema para hackear  casi cualquier cosa por ti mismo sin necesidad de algún programita ya creado, que como digo están llenos de malware. De lo que he conseguido hackear yo lo he conseguido por mí mismo, porque en la red (pública) no he encontrado  nada. Y cuando ya he sabido como hacerlo y he visto lo que hacen X programas, me ha dado la risa, ya que hacen más de lo que debieran .... y luego está como digo "la desinformación", "haz esto.... y listo". 

#756
Muchos de los métodos publicados en Internet, simplemente no funcionan o sólo funcionan en determinadas condiciones, es decir, con un determinado SO, Computadora, programa y hardware. Por no decir que los programas para hackear redes están plagados de malware...
#757
Pues si esto es cierto, lógicamente alguien le habrá enseñado como hacerlo porque buscando en internet, con la censura que hay hoy en día, no se yo, como ha obtenido esa información, para hacerlo.

#758
El número 'e' es el límite de la sucesión:

an= (1+1/n)n




luego es:

e= lim (1+1/n)n  -> cuando n tiende a infinito

De modo que cuanto mayor sea el valor de N más exacto será el valor de  'e'. Por ejemplo:

(1 + 1/100)100= 2.7048138294031855135...
(1 + 1/1000)1000= 2.7169239326424202463...
(1 + 1/10000)10000= 2.7181459268252250988...
(1 + 1/100000)100000=2.7182682371744897556...
(1 + 1/1000000)1000000=2.7182804693193768982...
(1 + 1/10000000)10000000=2.7182816925449640074...
...


Solamente se puede tener el número aproximado pues es un número irracional.

Si usas programas de cálculo, es posible que si da un número muy elevado a N te de como resultado 1 y no 2,71....

También sirve:



Aquí te dejo una manera de hacerlo con VB6, tendrás que pasarlo a C
Código (vb) [Seleccionar]
Private Sub Command1_Click()
Dim e As Variant
Dim i As Variant
For i = 0 To (100)
e = e + (1 / Factorial(i))
Next i
Print e
End Sub

Private Sub Command2_Click()
Dim e As Variant
e = (1 + 1 / 10000000000#) ^ 10000000000#
Print e
End Sub

Public Function Factorial(NumFactorizar As Variant) As Variant
Dim X As Variant
X = NumFactorizar
For i = 1 To NumFactorizar - 1
X = X * (NumFactorizar - i)
Next i
If X = 0 Then X = 1
Factorial = X
End Function


Seguramente haya una manera mejor, pero espero que te sirva de idea
#759
Código (vbnet) [Seleccionar]
   If e.KeyCode = Asc("L") Then
           MsgBox("Ha presionado ""L""")
       End If


En tu caso:

Código (vbnet) [Seleccionar]
   If e.KeyCode = Asc(ComboBox1.Text) Then
     Dim n$ = Chr(e.KeyCode)
           MsgBox("Ha presionado "  & n$)
       End If
#760
Es increible que con la de gente que ha entrado a ver este post sobre tu pregunta, nadie haya encontrado la razón de tu problema desde que lo planteaste.

Pues resulta que el problema es la composición del escritorio. Yo en el portatil tengo Vista sin la composición de escritorio y transparencia porque usa mucha memoria y el rendimiento es menor. Y en Windows 7 como lo instalé en VirtualBox no se puede habilitar la composición de escritorio ni las transparencias.

La composición de escritorio es lo que permite crear efectos de brillo de las ventanas y las trasparencias. Esto es en Vista y Windows7 si lo tienes con la mejor apariencia. Prueba a cambiar el tema del escritorio a windows clásico o quitar las transparéncias. Seguro que si haces eso no tienes problemas.


Ayer caí en la cuenta que si Chrome se ve transperente o con efecto de brillo por la composición de escritorio ¿que pasará cuando lo meta en el Picture en una aplicación creada con VB6?. Cuando lo incrusto en el Picture se pone negro, como tu decías. Además, no se incrusta en el Picture cuando ya se ha abierto previamente también como tu decías, pero sí la segunda vez. Así que el problema es por tener habilitada la composición de escritorio. Ocurre lo mismo con VB.net.

Por alguna razón que no entiendo, aunque encuentra el Handle no lo incrusta. Así que he recurrido a un código más pesado. He creado un Módulo con el siguiente código:

Código para un Módulo

Código (vb) [Seleccionar]

Option Explicit

'Constantes
'-----------------------------------
Const TH32CS_SNAPHEAPLIST = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPTHREAD = &H4
Const TH32CS_SNAPMODULE = &H8
Const TH32CS_SNAPALL = _
(TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or _
TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Const TH32CS_INHERIT = &H80000000
Const MAX_PATH As Integer = 260

Private Declare Function GetPriorityClass Lib "kernel32" _
(ByVal hProcess As Long) As Long

'Estructura para los procesos
'-----------------------------------
Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long ' Flags 'Reservado; no usar.
    szExeFile As String * MAX_PATH
End Type

'Funciones Api para listar los procesos
'--------------------------------------------------------
Private Declare Function CreateToolhelp32Snapshot Lib _
"kernel32" _
(ByVal lFlags As Long, _
ByVal lProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" _
(ByVal hSnapShot As Long, _
uProcess As PROCESSENTRY32) As Long
Private Declare Function _
Process32Next Lib "kernel32" _
(ByVal hSnapShot As Long, _
uProcess As PROCESSENTRY32) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
(ByVal hwnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) As Long
Private Declare Function IsWindow Lib "user32" _
(ByVal hwnd As Long) As Long



Public Const GW_HWNDNEXT = 2

Public Declare Function GetParent Lib "user32" _
(ByVal hwnd As Long) As Long
Public Declare Function GetWindow Lib "user32" _
(ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, _
ByVal lpString As String, ByVal cch As Long) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" _
(ByVal hwnd As Long, _
lpdwprocessid As Long) As Long

Public Function ProcIDFromWnd(ByVal hwnd As Long) As Long
   Dim idProc As Long
   GetWindowThreadProcessId hwnd, idProc
   ProcIDFromWnd = idProc
End Function

Public Function GetWinHandle(hInstance As Long) As Long
   Dim tempHwnd As Long
   tempHwnd = FindWindow(vbNullString, vbNullString)
   Do Until tempHwnd = 0
      If GetParent(tempHwnd) = 0 Then
         If hInstance = ProcIDFromWnd(tempHwnd) Then
            GetWinHandle = tempHwnd
            Exit Do
         End If
      End If
      tempHwnd = GetWindow(tempHwnd, GW_HWNDNEXT)
   Loop
End Function


Public Function BuscarHandleChrome() As Long
Dim F As Long, r As Long, x As Long
Dim sWindowText As String * 255 'Variable para introducir el texto de una barra con espacios
Dim sClassName As String * 255
Dim hSnapShot As Long
Dim Name As String * 255
Dim uProcess As PROCESSENTRY32
Dim elemento As ListBox
Dim sTextoBarra As String
Dim sNombreClase As String
Dim shwnd As Long
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
uProcess.dwSize = Len(uProcess)
r = Process32First(hSnapShot, uProcess)

Do While r > 0
    r = Process32Next(hSnapShot, uProcess)
    shwnd = GetWinHandle(uProcess.th32ProcessID)
    x = GetClassName(shwnd, sClassName, 255)
    sNombreClase = Left(sClassName, x) '<<----Nombre de Clase

If Trim(sNombreClase) <> "" Then
  If IsWindow(shwnd) = 1 Then 'si es una aplicación visible
    If IsWindow(shwnd) Then
        If sNombreClase = "Chrome_WidgetWin_1" Then BuscarHandleChrome = shwnd
    End If
End If
End If
Loop
End Function


Lo que hace es listar las aplicaciones que se están ejecutando y si encuentra una con el nombre de clase "Chrome_WidgetWin_1" entonces introduce el handle en la variable HWNDParent.


Para el Form el siguiente código:
- Añadir un Picture
- Añadir un Botón
- Añadir un control Timer

Código (vb) [Seleccionar]

Option Explicit
'Nombres de clase (ClassName) de Chrome
'Chrome_WidgetWin_1           <---Padre
'Chrome_RenderWidgetHostHWND  <---hijo

'//Funciones API para incrustar la aplicación en el picture
Private Declare Function SetParent Lib "user32" _
(ByVal hWndChild As Long, _
ByVal HWNDParent As Long) As Long
Private Declare Function ShowWindow Lib "user32" _
(ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Private Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, ByVal x As Long, _
ByVal Y As Long, ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long


'//Ejecuta el programa
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


'//Función para cerrar la aplicación incrustada
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long

Const SW_SHOWNORMAL = 1
Const SW_RESTORE = 9
Const SWP_NOZORDER = &H4

Const HWND_TOP = 0
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060&
    ' Función api SetWindowTheme
    Private Declare Function SetWindowTheme Lib "UxTheme.dll" ( _
        ByVal hwnd As Long, _
        ByVal pszSubAppName As Long, _
        ByVal pszSubIdList As Long) As Long
        Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long

'//////////////////////////////////////////////
'//'Variable para el handle padre de Chrome  //
'//Debe ser variable pública para que al     //
'//cerrar el form únicamente se cierre el    //
'//chrome incrustado en el picture y no      //
'//otra ventana externa de chrome         /////
        Dim HWNDParent As Long
'//////////////////////////////////////////////
Dim N&
Private Sub Command1_Click()

If N& = 0 Then ' Si no hay nada dentro del Picture ejecuta el código
   'ShellExecute Me.hWnd, "open", "chrome.exe", _
    "www.elhacker.net", Environ("programfiles") & "\Google\Chrome\Application\", SW_SHOWNORMAL
Shell Environ("programfiles") & "\Google\Chrome\Application\" & "chrome.exe", vbNormalFocus
   Do While HWNDParent = 0
   HWNDParent = BuscarHandleChrome
   DoEvents
Loop
   
Do While N& = 0
N& = SetParent(HWNDParent, Picture1.hwnd) 'Meter la apclicación en el picture
DoEvents
Loop

'Refresca Chrome por si no se visualiza correctamente
ShowWindow HWNDParent, SW_RESTORE

'Ajusta la ventana de Chrome al Picture
Call SetWindowPos(HWNDParent, HWND_TOP, 0, 0, _
Picture1.ScaleWidth, _
Picture1.ScaleHeight, _
SWP_NOZORDER)
End If

End Sub

Private Sub Cerrar_Chrome(hwnd As Long)
If HWNDParent <> 0 Then
    Call SetParent(HWNDParent, 0)  ' Libera el programa
    Call SendMessage(HWNDParent, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&) 'Cierra el programa
    HWNDParent = 0
End If
   End Sub
Private Sub Form_Load()
    Picture1.ScaleMode = 3 'pixels <-importante para mover _
    y establecer correctamente las dimensiones de la ventana _
    de chrome dentro del picture
    Timer1.Interval = 1
    Timer1.Enabled = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
   Call Cerrar_Chrome(HWNDParent) 'Cierra Chrome
   End
End Sub
Private Sub Timer1_Timer()
Dim x
x = IsWindow(HWNDParent)
If x = 0 Then
N& = 0
HWNDParent = 0
End If
End Sub




Ahora no falla. El problema que surge ahora es que se ve mal cuando está activada la composición de escritorio. Eso si que ya no tengo ni idea de como arreglarlo.

He probado usando  SetWindowTheme para cambiar el estilo de la ventana de Chrome a Windows Clásico. Pero ni por esas, porque aunque sí lo convierte a Windows clásico, continúa estando habilitada la composición de escritorio en la ventana de Chrome. Por eso se ve negro. Creo que la única manera de que se vea bien es utilizando algún código, si existe,  que quite la composición del escritorio sólo en la ventana incrustada.


Si te fijas he anulado ShellExecute porque da problemas. Compruebalo tu mismo.
si quieres que abra en un determinada página con shell, basta con añadir la página después de "Chrome.exe" separado por un espacio.

Ejemplo:

Shell Environ("programfiles") & "\Google\Chrome\Application\" & _
"chrome.exe www.google.co.uk", vbNormalFocus

También:

Shell Environ("programfiles") & "\Google\Chrome\Application\" & _
"chrome.exe "  & "www.google.co.uk", vbNormalFocus


Esta aplicación en principio no sirve para nada, se trata de un ejemplo y luego cada cual lo use, lo arregle, lo modifique y lo mejore como le de la gana si le sirve. A mí me ha servido para viejas apliaciones de 16bits que se me ejecutaban a patanalla completa: cursos de inglés y enciclopedias. Que aunque son viejas apliaciones contienen información muy útil y las sigo usando de vez en cuando. Según lo que sea  habrá que cambiar alguna cosa que otra del código. Las correcciones están pensadas para Chrome pero otras aplicaciones no dan los mismos problemas.


Pues así lo dejo para quien le sirva...