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

#41
hola

La verdad, este problema me suena que se preguntó antes, la imagen esa del cuadrado ese me suena de haberla visto antes.

De todos modos a ver si te sirve esto.





Instrucciones:
- Crea un Nuevo Proyecto
- Selecciona Aplicación de Windows Forms
- Deja todo en blanco y  copia y pega el siguiente código:

Código (vbnet) [Seleccionar]

'//Programado por Lekim//
Option Strict Off

Imports System.Drawing.Graphics
Imports System.IO


Public Class Form1
   Dim picCuadrado As New PictureBox
   Dim hScrollGrados As New HScrollBar
   Dim ButtonPaste As New Button
   ''' <summary>
   ''' Permite mostrar el radio inicial a 0 grados al inicio de la aplicación
   ''' </summary>
   ''' <param name="e"></param>
   ''' <remarks></remarks>
   Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(e)

       Actualizar_Radio()
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.Size = CType(New Point(430, 360), Drawing.Size)

       '//Crea un control Picture
       Me.Controls.Add(picCuadrado)
       With picCuadrado
           picCuadrado.BorderStyle = BorderStyle.FixedSingle
           picCuadrado.Size = CType(New Point(300, 300), Drawing.Size)
       End With
       Me.Controls.Add(ButtonPaste)
       With ButtonPaste
           .Text = "Pegar"
           .Location = New Point(Me.picCuadrado.Width + 20, 10)
           AddHandler .Click, AddressOf ButtonPaste_Click
       End With

       '//Crea un control HScrollBar
       Me.Controls.Add(hScrollGrados)
       With hScrollGrados
           .Width = 300
           .Top = picCuadrado.Height '+ hScrollGrados.Height
           .Minimum = 0
           .Maximum = 360
           .SmallChange = 1
           .LargeChange = 1
           'Eventos para hScrollGrados
           AddHandler .Scroll, AddressOf hScroll_Scroll
           AddHandler .ValueChanged, AddressOf hScroll_ValueChanged
       End With


   End Sub

   Private Sub hScroll_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs)
       Actualizar_Radio()
       Me.Refresh()
   End Sub

   Private Sub hScroll_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs)
       Actualizar_Radio()
       Me.Refresh()
   End Sub

   Sub Actualizar_Radio()
       picCuadrado.Refresh()
       '//Dibuja el radio
       DIBUJAR_RADIO(picCuadrado, hScrollGrados.Value, System.Drawing.Color.Blue, 5)
       '//Muestra los grados

       Me.CreateGraphics.DrawString(hScrollGrados.Value & "º", New Font("Arial", 30, _
                                                                                 FontStyle.Bold, _
                                                                                 GraphicsUnit.Point, 2) _
 , Brushes.Blue, picCuadrado.Width + 15, 250)

   End Sub
   Private Sub ButtonPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

       '//Obtiene imagen desde internet
       ' Dim Client As New System.Net.WebClient()
       ' Client = New System.Net.WebClient
       ' Dim BinData As Byte() = Client.DownloadData("http://image.prntscr.com/image/c22000d107b945968d7d232228a3bcba.png") 'descarga el archivo como byte
       ' Dim imgStream As New MemoryStream(BinData) 'Convierte la imagen a stream
       ' Dim img As New Bitmap(Image.FromStream(imgStream))
       ' Dim img2 As New Bitmap(img, picCuadrado.Width, picCuadrado.Height)
       ' picCuadrado.Image = img2

       '//Obtiene desde archivo
       'Dim img As New Bitmap(Image.FromFile("C:\User\Documents\c22000d107b945968d7d232228a3bcba.png"))
       'Dim img2 As New Bitmap(img, picCuadrado.Width, picCuadrado.Height)
       'picCuadrado.Image = img2

       '//Obtiene imagen desde el portapapeles
       If Clipboard.GetImage IsNot Nothing Then
           Dim img As New Bitmap(Clipboard.GetImage)
           Dim img2 As New Bitmap(img, picCuadrado.Width, picCuadrado.Height)
           picCuadrado.Image = img2
       End If

       Actualizar_Radio()
   End Sub

   ''' <summary>
   ''' Función para dibujar un radio
   ''' </summary>
   ''' <param name="objPicture"></param>
   ''' <param name="Grados"></param>
   ''' <param name="mColor"></param>
   ''' <param name="Grosor"></param>
   ''' <returns></returns>
   ''' <remarks></remarks>
   Public Function DIBUJAR_RADIO(ByVal objPicture As PictureBox, _
                                   ByVal Grados As Integer, _
                                   ByVal mColor As Color, _
                                   ByVal Grosor As Integer) As Boolean
       Dim X1 As Integer
       Dim Y1 As Integer
       Dim X2 As Integer
       Dim Y2 As Integer
       Dim Angulo As Integer 'Ángulo en grados
       Dim RadioLong As Integer 'Longitud del radio
       'CENTRO IMAGEN
       X1 = CInt(picCuadrado.Width / 2)
       Y1 = CInt(picCuadrado.Height / 2)

       'ÁNGULO
       Angulo = Grados
       RadioLong = picCuadrado.Width

       'COORDENADA X E Y
       X2 = CInt(Int((RadioLong * Math.Cos((360 - Angulo) * (Math.PI / 180))) + X1))
       Y2 = CInt(Int((RadioLong * Math.Sin((360 - Angulo) * (Math.PI / 180))) + Y1))

       'DIBUJA EL RADIO
       Dim Radio As Graphics = objPicture.CreateGraphics
       Dim pen As New Drawing.Pen(mColor, Grosor)

       Radio.DrawLine(pen, X1, Y1, X2, Y2)
       Return Nothing
   End Function
End Class



Como funciona:
- Copia la imagen en el portapapeles
- Haz Clic sobre el botón Pegar
- Mueve el HscrollBar para aumentar los grados del radio, hasta que coincida con el de la imagen.

Puedes usar las flechitas del HScrollBar para hacerlo de 1 en 1.


NOTA:
En el evento ButtonPaste_Click he puesto tres opciones distintas para pegar la imagen en el PictureBox pero dos de ellas están deshabilitadas.

Lo he puesto para que lo haga desde el portapapeles pero si quieres lo puedes cambiar


Otra opción es que uses un transportador de ángulos en la pantalla XD. No se, solo se me ocurre este programilla que he hecho.

s2s
#42
Cita de: bettu en 24 Julio 2016, 20:54 PM
Hola,

Creo que redimensionastes mal. Quizá la partición de 1MB no se te creó a raíz de la partición del Recovery, sino de la C: o de la D:. Tocaste la partición del Recovery y lo jodistes xDD

¿Qué sistema operativo usas y qué marca de ordenador es?

Normalmente, suelen traer dentro de Windows un programa para crear un backup de la partición del recovery. Búscalo e intenta hacer el backup en un pendrive o algo. A partir de ahí, puedes hacer lo que quieras con esa partición, eliminarla o no será decisión tuya aunque, lo mejor de todo y antes de eliminar dicha partición de recovery, es comprobar que ese backup funciona.

Saludos ;)

Ok, gracias

Si tengo el disco de instalación, y si quiero puedo formatear y reconstruir todo, cuando ya no ande bien entonces lo haré.

Como tengo un backup guardado una vez recontruído lo restauraré y listo.

s2s
#43
Hola

Recientemente usé un Linux Live, con el estuve navegando, incluso instalé un programa para probarlo.

Tras esto vi que se habían creado dos particiones extrañas, libres y sin letra y una carpeta protegida llamada file.0000 o algo así.  Desde fuera de windows utilizando un administrador de discos bootable, comprobé el file.000 y eran archivos de linux. Borré la carpeta.

Las particiones extrañas, un estaba junto a la partición del recovery del portátil y otra al lado de una partición normal. Redimensióné la partición del recovery para eliminar la partición extraña de 1 mb o algo así y ahora no se inicia el recovery al pulsar F11

La opción de pulsar F11 aparece al arrancar el portátil pero al darle a F11 se queda congelado y no hace nada.

Le di una letra y desde windows vi que la partición tiene todos sus archivos, le he quitado la letra y lo configurado como oculto, pero no funciona.

La tengo como Primaria.

Lo extraño es que aunque esté oculto, se ve desde el Administrador de discos de Windows y no debería.

¿Qué debo hacer? ¿Por qué no funciona?

s2s
#44
Cita de: ASOUKU en 23 Julio 2016, 16:24 PM
No me vas a ayudar porque no te quieres registrar?  :¬¬

XD, parece que has contestado mientras modificaba mi último post. A ver si te sirve el ejemplo.

S2s



me he liado un poco editandolo, mira otra vez
#45
Cita de: ASOUKU en 22 Julio 2016, 18:43 PM
Es ese precisamente jaja sisi. Cliente sin sonido. Y si, te tenes que registrar  :xD ahora voy a probar el programa que me dijiste recien..

Pues que quiere que te diga no me pienso registrar :-\
En cuanto al AutoHotKey, error mío, no sirve. Según he leído "Los scripts de AutoHotkey se pueden utilizar para iniciar programas, abrir documentos, enviar pulsaciones de teclas y enviar clics y movimientos del ratón"

He mirado por ahí tutoriales y no veo como enviar las pulsaciones, solo crear acceso rápido a tareas mediante teclado.





Pues nada prueba esto. Es un ejemplo. Para usar con la calculadora de windows y el Notepad.

Hay varias maneras de enviar mensajes a una ventana, prueba esta a ver si te sirve con ese juego.

- Crea dos botones y añade el siguiente código:

para VB6

Código (vb) [Seleccionar]
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" _
(ByVal Hwnd As Long, _
ByVal wFlag As Long) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal Hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
    Const VK_NUMPAD1 = &H61
    Const WM_KEYUP = &H101
    Const WM_KEYDOWN = &H100
    Const NILL = 0&
    Const WM_SYSCOMMAND = &H112
    Const SC_CLOSE = &HF060
    Const GW_HWNDNEXT = 2
    Const GW_CHILD = 5
Private Sub Form_Load()
Shell ("Notepad")
Shell ("Calc")

End Sub

Private Sub Command1_Click()
Dim Hwnd As Long
'Windows Vista/XP
Hwnd = FindWindow("SciCalc", vbNullString)

'Windows 7
'Hwnd = FindWindow("CalcFrame", vbNullString)

    Me.Caption = Hwnd
       '//Envia la pulsación de la tecla 2 (del teclado alfabético)
       Call PostMessage(Hwnd, WM_KEYDOWN And WM_KEYUP , vbKey2, NILL)
End Sub

Private Sub Command2_Click()
Dim Hwnd As Long
Dim HwndChild As Long
Hwnd = FindWindow("Notepad", vbNullString)
    Me.Caption = Hwnd
    HwndChild = GetNextWindow(Hwnd, GW_CHILD)
       '//Envia la pulsación de la tecla 2 (del teclado alfabético)
       Call PostMessage(HwndChild, WM_KEYDOWN And WM_KEYUP, vbKeyQ, NILL)
End Sub



EXPLICACIÓN:
FindWindow obtiene un número que es el identificador de ventana (handle). La mayoría de los procesos de windows tienen su handle. La barra de tareas de windows por  ejemplo también tiene su handle.

Sin embargo algunas ventanas tienen ventanas "hijas", como es el caso del Notepad, donde la ventana hija es el cuadro de texto donde se escribe. Por esta razón en el segundo botón he puesto GetNextWindow, para obtener la ventana "hija" y enviar el mensaje de pulsación a esta ventana.  Podría ser que este juego tenga una ventana hijo.

SciCalc/CalcFrame, Notepad. Son nombres de clase (ClassName). Necesarios para obtener el Handle o Identificador de ventana. También es posible el nombre de la ventana, por ejemplo "Sin títuo - Bloc de notas" o "Calculadora"


Hwnd = FindWindow(vbNullString, "Calculadora")

Hwnd = FindWindow(vbNullString, "Sin título - Bloc de notas")


O ambos, útil para mismo proceso con idénticos nombres de clase pero con distinto nombre de ventana.


Hwnd = FindWindow("SciCalc", "Calculadora")

Hwnd = FindWindow("Notepad", "Sin título - Bloc de notas")



Para obtener el "Class Name" puedes usar la herramienta Spy++ incluída en VB6 o VB.NET. Al que puedes acceder desde el menú inicio de windows. Pulsa buscar ventana y arrastra la diana hasta la ventana que quieras identificar y  Spy++ te mostrará el nombre de clase y el identificador (en hexadecimal).


He metido    Me.Caption = Hwnd para que se vea el identificador, si es 0, es que no has obtenido ningún identificador.  Porque has escrito mal el nombre de clase o el de la ventana.

Para VB.NET

Código (vbnet) [Seleccionar]

Imports System.Runtime.InteropServices
Imports System.Security

Public Class Form1
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       '//Abre el notepad y la calculadora
       Process.Start("Notepad")
       Process.Start("Calc")
       Button1.Text = "2 a Calculadora"
       Button2.Text = "Q a Notepad"
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       '//Obtiene el identificador de la ventana de la Calculadora

       'Windows Vista/XP
       Dim Hwnd As IntPtr = NativeMethods.FindWindow("SciCalc", Nothing)

       'Windows 7
       'Dim Hwnd As IntPtr = NativeMethods.FindWindow("CalcFrame", Nothing)

       Me.Text = Hwnd
       '//Envia la pulsación de la tecla 2 (del teclado alfabético)
       NativeMethods.PostMessage(Hwnd,   NativeMethods.WM_KEYDOWN And NativeMethods.WM_KEYUP, Keys.D2, NativeMethods.NILL)
   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       '//Obtiene el identificador de la ventana del Notepad
       Dim Hwnd As IntPtr = NativeMethods.FindWindow("Notepad", Nothing)
       '//Obtiene el identificador de la ventana "hijo" del Notepad (ClassName="Edit")
       Dim hwndChild As IntPtr = NativeMethods.GetNextWindow(Hwnd, NativeMethods.GW_CHILD)

       Me.Text = Hwnd
       '//Envia la pulsación de la tecla 'Q'
       NativeMethods.PostMessage(hwndChild,NativeMethods.WM_KEYDOWN And NativeMethods.WM_KEYUP , Keys.Q, NativeMethods.NILL)
   End Sub
End Class

<SuppressUnmanagedCodeSecurity()>
Friend NotInheritable Class NativeMethods
   Private Sub New()
   End Sub
   <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
   Friend Shared Function FindWindow( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As IntPtr
   End Function

   <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto, EntryPoint:="GetWindow")> _
   Friend Shared Function GetNextWindow(ByVal hwnd As IntPtr, ByVal wFlag As Integer) As Integer
   End Function

   <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
   Friend Shared Function FindWindowEx(ByVal hWnd1 As IntPtr, _
                                       ByVal hWnd2 As IntPtr, _
                                       ByVal lpsz1 As String, _
                                       ByVal lpsz2 As String) As Integer

   End Function


   <DllImport("user32.dll", CharSet:=CharSet.Auto, Entrypoint:="PostMessageA")> _
   Friend Shared Function PostMessage(ByVal hwnd As IntPtr, ByVal wMsg As Integer, _
                                                                          ByVal wParam As Integer, _
                                                                           ByVal lParam As Integer) As Integer
   End Function
   Public Const VK_NUMPAD1 = &H61
   Public Const WM_KEYUP = &H101
   Public Const WM_KEYDOWN = &H100
   Public Const NILL = 0&
   Public Const WM_SYSCOMMAND = &H112
   Public Const SC_CLOSE = &HF060
   Public Const GW_HWNDNEXT = 2
   Public Const GW_CHILD = 5

End Class



La idea es que obtengas el nombre de clase de  la ventana del juego y pruebes desde el programa pulsando el botón a ver envía la pulsación. Si funciona pues en lugar del botón puedes usar un Timer, para que envíe una pulsación cada X segundos de forma automática.
#46
Cita de: Adrialmend en 22 Julio 2016, 18:47 PM
Revisando por google he encontrado esto

https://cloud.google.com/translate/docs/

Echale un ojo a ver si te sirve.

Un saludo.



CitarCon API de Google Translate, puede traducir texto de forma dinámica entre miles de pares de idiomas. La API de Google Translate permite a los sitios web y programas de integración con Google Translate API de programación. Traductor Google API está disponible como un servicio de pago. Ver las tarifas y FAQ páginas para obtener más detalles. Para la traducción de sitios web, echa un vistazo a sitios web de Google Traductor Gadget .

¿Como un servicio de pago? pues va a ser que no  :xD

Ya veo porqué ahora no funciona. Gracias
#47
Cita de: Adrialmend en 22 Julio 2016, 16:50 PM
Creo que han cambiado, ahora es así

https://translate.google.com/#en/es/SF

donde #en es el idioma que escribes y es el idioma donde se traducira.
SF es el texto


Espero que te sirva.
Un saludo.

que va no sirve me devuelve " CTYPE html><html><head><meta content="

he puesto: "http://translate.google.com/#en/es/hello"

gracias

#48
Hola
He probado este servidor que antes funcionaba pero lo han debido de cambiar y ahora ya no me funciona:

http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=es


obtengo el siguiente error :

"Error en el servidor remoto: (503) Servidor no disponible."

Bueno, he estado mirando por ahí, y parece que ya no es tan simple  :(





#49
Cita de: ASOUKU en 21 Julio 2016, 17:30 PM
Lekim, el juego es Mu 99c una version viejita ya, yo lo ejecuto en modo ventana pero tambien tiene pantalla completa, emm me podrias ayudar a programar el auto-pot? Yo lo intente pero no me funciona :(

¿Es este?
http://mupirata.com.ar/99c/index.php

Me lo estoy descargando desde mega, ¿Es Cliente99cConSonido.exe?

Más que nada es para probar porque cada juego es un mundo. Así, no hay que hacer 30 posts

Imagino que es para PC ¿Es online?

Espero no tener que registrarme ni nada de eso  :¬¬



Nunca he usado pero he visto en foros que hay programas ya echos para esto como uno llamado AutoHotkey
Que envía pulsaciones de teclas de forma automática.

No lo he probado pero podrías probar, a lo mejor te sirve.

http://ahkscript.org/
#50
Hola

No dices para que tipo de juego, de ventana, Internet, pantalla completa. Los de Mame32 no dejan. Lo digo por si quieres que dispare constantemente. Para enviar en mensaje sólo a ese juego yo primero obtendría el handle de la ventana y enviaría el mensaje de pulsación de tecla a esa ventana.

Pero esto lo he hecho con juegos que tienen algún tipo de identificador para poder enviar el mensaje. Nunca lo he hecho por ejemplo con juegos de internet. En este caso no se si sería enviarlo a la ventana de navegador.

Si lo quieres para VB6 si quieres te lo pongo, pero puedes encontrar un porrón de ejemplos en Internet.

s2s