Autor Tema: Como Obtener el Texto de una Ventana en Japones? :P  (Leído 4739 veces)

0 Usuarios y 1 Visitante están viendo este tema.

RHL

  • Bytes
  • *
  • Mensajes: 26
  • Reputación: +3/-15
    • Ver Perfil
Como Obtener el Texto de una Ventana en Japones? :P
« en: Noviembre 08, 2011, 02:56:29 pm »
buenas tengo ese problema :/ no se como obtener el titulo de una ventana en japones
ya e probado con varios codigo obtengo los caracteres asi :  ????? ( el emoticono es ? x 3 )
y quiero obtener o hacer que mi aplicacion pueda leer y escribir caracteres de todos tipos
´pues  e probado tambien con GetWindowTextW y crei que me los devolveria pero mi resultado fue este:
 ? ? ? ? ?

como puedo hacer amigos?  :-\
« última modificación: Noviembre 08, 2011, 03:09:59 pm por raul100 »

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Como Obtener el Texto de una Ventana en Japones? :P
« Respuesta #1 en: Noviembre 08, 2011, 03:16:38 pm »
en efecto, tenes que usar GetWindowTextW. pero para poder displayarlo, tambien necesitas apis Wide.
Usar un string te puede servir (tenes que usar el doble de caracteres de lo que realmente son), pero igualmente no lo podes mostrar en VB tan facil
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

RHL

  • Bytes
  • *
  • Mensajes: 26
  • Reputación: +3/-15
    • Ver Perfil
Re:Como Obtener el Texto de una Ventana en Japones? :P
« Respuesta #2 en: Noviembre 08, 2011, 03:59:58 pm »
si, lo hago asi, pero los caracteres sigen asi  ? ? ? ? ? ?

Código: (vb) [Seleccionar]
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextW" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Sub Form_Load()
Dim CAD         As String

CAD = Space$(200)
Debug.Print GetWindowText(WHANDLE, CAD, 200)
End Sub

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Como Obtener el Texto de una Ventana en Japones? :P
« Respuesta #3 en: Noviembre 08, 2011, 04:10:08 pm »
son caracteres unicode por eso no los ves, para eso podes usar algo asi, fijate esta pregunta:

Caracteres Especiales en TextBox [Ayuda]


RHL

  • Bytes
  • *
  • Mensajes: 26
  • Reputación: +3/-15
    • Ver Perfil
Re:Como Obtener el Texto de una Ventana en Japones? :P
« Respuesta #4 en: Noviembre 08, 2011, 05:26:58 pm »
tiene algo rollo :/ bueno gracias ya vere como me arreglo con el codigo :)

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Como Obtener el Texto de una Ventana en Japones? :P
« Respuesta #5 en: Noviembre 08, 2011, 06:21:34 pm »
Lo puedes obtener bien, pero no puedes imprimirlo sobre una ventana que es ANSI :P trata de copiarlo al portapapeles y pegalo en el Notepad++ y te saldra :P

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Como Obtener el Texto de una Ventana en Japones? :P
« Respuesta #6 en: Noviembre 08, 2011, 08:48:23 pm »
hola Otra codigo por si te interesa con el caption de formulario.

Código: (Vb) [Seleccionar]
Private Declare Function DefWindowProc Lib "USER32" Alias "DefWindowProcW" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const WM_SETTEXT        As Long = &HC
Private Const WM_GETTEXT        As Long = &HD
Private Const WM_GETTEXTLENGTH  As Long = &HE

Public Property Let CaptionW(ByVal NewValue As String)
    DefWindowProc Me.hwnd, WM_SETTEXT, 0, ByVal StrPtr(NewValue)
End Property

Public Property Get CaptionW() As String
    Dim strLen As Long
    strLen = DefWindowProc(Me.hwnd, WM_GETTEXTLENGTH, 0, ByVal 0)
    CaptionW = Space(strLen)
    DefWindowProc Me.hwnd, WM_GETTEXT, Len(CaptionW) + 1, ByVal StrPtr(CaptionW)
End Property

RHL

  • Bytes
  • *
  • Mensajes: 26
  • Reputación: +3/-15
    • Ver Perfil
Re:Como Obtener el Texto de una Ventana en Japones? :P
« Respuesta #7 en: Noviembre 09, 2011, 06:13:25 pm »
Mil gracias lo guardo ;)