elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 [822] 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 ... 1236
8211  Programación / Scripting / Re: Ocultar la ventana emergente de un .exe en: 15 Septiembre 2013, 19:16 pm
Con puro Batch no puedes, pero puedes utilizar aplicaciones externas como NirCMD para ejecutar el proceso de manera oculta:

-> NirCMD

O también puedes utilizar CMDOW para ocultar la ventana principal de un proceso activo especificando el handle de la ventana o el nombre de la barra título del proceso.

-> CMDOW

PD: El handle es un número que identifica a cada objeto del sistema.

Saludos
8212  Programación / Scripting / Re: Crear un mensaje que aparezca después de finalizar una aplicación. en: 15 Septiembre 2013, 16:26 pm
Necesito el código final
estoy segura que lo sacaréis.

Me he callado antes al principio con el comentario de tu primer post, pero es que tienes un morro que te lo pisas.

Otro desafio XD.

PD: El desafio todavía no ha sido superado y el del otro hilo tampoco XD

Será desafio para cualquier otra persona menos tú, ¿verdad?, porque yo veo mucho pedir y poco intentar hacerlo por ti misma.

No sé si es que quizás estarás acostumbrada a que te lo hagan todo por ser mujer, pero aquí no se entregan trabajos, se ayuda a completarlos. Aunque cualquier compañero del foro es libre también de hacer el trabajo por ti, pero al menos yo no lo voy a hacer.

Arriba te puse todo lo que necesitas, puedes leer y buscar lo que no entiendas o lo que no sepas en google, o puedes preguntar(nos) tus dudas al respecto aqui mismo que con gusto te aclararemos,
si fuese una tarea dificil de realizar entonces si que te daría un código de ayuda o uno completo, pero te he explicado que es algo facil, y la verdad es muy facil de hacer en menos de 5 minutos, esfuérzate un poquito tu misma.

Saludos!
8213  Programación / Scripting / Re: Crear un mensaje que aparezca después de finalizar una aplicación. en: 15 Septiembre 2013, 10:49 am
Si, se puede.



1. Monitorizar la ejecución del proceso para controlar la salida del executable.

· Lenguajes necesarios: Batch

· Comandos necesarios:

Código
  1. TASKLIST /?
  2. Find /?
  3. Ping /? | Timeout /?

+ Un búcle.



2. Ejecutar la ventana emergente.

· Lenguajes necesarios: VisualBasicScript

· Funciones necesarias:

Código
  1. MsgBox()
http://msdn.microsoft.com/en-us/library/sfw6660x%28v=vs.84%29.aspx



Otro desafio XD.

Es muy facil de hacer, te he dado toda la información necesaria.

Saludos
8214  Programación / Scripting / [APORTE] [BATCH] Añadir las opciones de "Modo Seguro" en el BootLoader de Win 8 en: 15 Septiembre 2013, 07:42 am
Hola


He codeado este util script para añadir 3 nuevas opciones en el BootLoader de Windows 8 y Windows 8.1

· Modo Seguro

· Modo seguro con funciones de Red

· Modo Seguro con consola








Código:
@echo off & SetLocal EnableDelayedExpansion



Title Easy Add SafeModes in Windows 8
REM   By Elektro H@cker



::: Customize your safe mode descriptions here:
:::
Set "SafeMode_Description=Windows 8 Modo Seguro"
Set "SafeModeNetrowk_Description=Windows 8 Modo Seguro con funciones de Red"
Set "SafeModeShell_Description=Windows 8 Modo Seguro con Consola"
:::



REM [ STEP 1 ]
REM Add the new Boot loader entries

Echo [+] Adding Boot Loader entries... | MORE

:: Add the entries and make sure they are not already added
(
Bcdedit /Enum /V | FINDSTR /I "^Descrip" | FIND /I "%SafeMode_Description%" 1>NUL && (
Echo [X] Duplicate found: "%SafeMode_Description%")
) || (
Echo [+] Adding: "%SafeMode_Description%"
Bcdedit /Copy {current} /D "%SafeMode_Description%" 1>NUL
)

(
Bcdedit /Enum /V | FINDSTR /I "^Descrip" | FIND /I "%SafeModeNetrowk_Description%" 1>NUL && (
Echo [X] Duplicate found: "%SafeModeNetrowk_Description%")
) || (
Echo [+] Adding: "%SafeModeNetrowk_Description%"
Bcdedit /Copy {current} /D "%SafeModeNetrowk_Description%" 1>NUL

)

(
Bcdedit /Enum /V | FINDSTR /I "^Descrip" | FIND /I "%SafeModeShell_Description%" 1>NUL && (
Echo [X] Duplicate found: "%SafeModeShell_Description%")
) || (
Echo [+] Adding: "%SafeModeShell_Description%"
Bcdedit /Copy {current} /D "%SafeModeShell_Description%" 1>NUL
)



REM [ STEP 2 ]
REM Store the necessary values

Echo+ & Echo [+] Getting Boot Loader Information... | MORE

:: Get the boot loader identifiers
For /F "Tokens=2" %%# in (
'Bcdedit /Enum /V ^| FINDSTR /I "^Identif"'
) do (
SET /A ID_INDEX+=1
Set "ID!ID_INDEX!=%%#"
)

:: Get the boot loader descriptions
For /F "Tokens=1,*" %%A in (
'Bcdedit /Enum /V ^| FINDSTR /I "^Descrip"'
) do (
SET /A DES_INDEX+=1
Set "DES!DES_INDEX!=%%B"
)



REM [ STEP 3 ]
REM Set the boot config parametters

:: Set the Boot config parametters
Echo [+] Setting Boot Loader parametters... | MORE

For /L %%X in (1, 1, %ID_INDEX%) do (

If /I "!DES%%X!" EQU "%SafeMode_Description%" (
Bcdedit /Set "!ID%%X!" safeboot Minimal 1>NUL
)

If /I "!DES%%X!" EQU "%SafeModeNetrowk_Description%" (
Bcdedit /Set "!ID%%X!" safeboot Network 1>NUL
)

If /I "!DES%%X!" EQU "%SafeModeShell_Description%" (
Bcdedit /Set "!ID%%X!" safeboot Minimal           1>NUL
Bcdedit /Set "!ID%%X!" safebootalternateshell Yes 1>NUL
)

)



SetLocal DisableDelayedExpansion
Echo [+] Done! | MORE
Pause&Exit
:: END



EDITO:

Pueden eliminar las nuevas entradas de forma sencilla desde la utilidad MSCONFIG.exe (Ver la última imagen de arriba) o con el Switch "/Delete" del comando Bcdedit:

Código
  1. Bcdedit /Delete "Identificador"
  2. REM Nota: Se debe usar un identificador, no una descripción.

También pueden modificar el tiempo de espera que se muestran las entradas con este comando:

Código
  1. bcdedit /timeout 10
  2. REM Nota: El valor son segundos, no milisegundos.

O pueden desactivar el Boot Loader o el tiempo de espera en las opciones avanzadas de "Inicio y recuperación" de las propiedades del sistema:


8215  Programación / Scripting / Re: Busco código en Bat para deshabilitar o bloquear la tecla de TAB y la de Windows en: 15 Septiembre 2013, 06:49 am
En el registro de Windows puedes mapear cualquier tecla del keyboard para desactivarla, este es el código para desactivar la tecla Tabulación y las dos teclas de Windows:

Código
  1. :: Converted with REG2BAT by Elektro H@cker
  2.  
  3. @Echo OFF
  4. REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /V "Scancode Map" /T "REG_BINARY" /D "00000000000000000400000000005be000005ce000000f0000000000" /F 1>NUL

Para reactivar las teclas es tan simple como eliminar la clave de registro:

Código
  1. :: Converted with REG2BAT by Elektro H@cker
  2.  
  3. @Echo OFF
  4. REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /V "Scancode Map" /F >NUL 2>&1


PD: Los dos cambios requieren un reinicio del PC o de la sesión del usuario.


Y para hacer tus propios mapeos personalizados puedes usar la aplicación SharpKeys.


EDITO:
También me gustaría saber si es peligrosa esta acción ya que podría hacerlo bastantes veces en el dia...

Peligroso no es porque siempre puedes reactivarlas, es sencillo de reactivar si en algún momento te arrepientes de desactivarlas.


Saludos!
8216  Programación / Scripting / Re: [Autoplay media studio 8] Ayuda con codigos script en: 15 Septiembre 2013, 02:21 am
La aplicación está reálmente muy bien dentro de su temática, con su sistema de scripts integrado y tal, aunque me he fijado en el video que los controles tienen una cantidad ínfima de eventos, algunos controles solo tienen hasta 2 eventos, esto no lo puedo criticar ya que al programa no se le puede pedir más, pues no es un lenguaje de programación orientado a objetos, pero la diferencia se puede apreciar con claridad, es una aplicación muy limitada (aunque quizás sea la mejor dentro de las aplicaciones del mismo tipo).

Por otro lado debo decir que es lo más cutre que he visto, no se en que estaría pensando el autor del video al poner "Curso de sistemas y bases de datos" enseñando como hacer una aplicación de facturación con un programa de ese estilo, a mi me ha resultado patético, muy muy cutre y nada interesante, ya que lo que hagas con ese programa va a estar muy limitado y no vale la pena aprender eso, no te servirá para mucho, no es programación ...aunque cada uno que aprenda lo que le guste.

Mírate este otro video, sería mucho más util para ti que aprendieses así:


Saludos!
8217  Programación / Scripting / Re: [Autoplay media studio 8] Ayuda con codigos script en: 14 Septiembre 2013, 13:41 pm
Conoces alguno con el que poder hacer algo parecido?

Es que desde un principio lo que planteas me resulta muy extraño xD

¿Te das cuenta que estás intentando desarrollar una aplicación de contabilidad usando un "DVD Menu Builder"?

No digo que no se puede ...vaya, si tiene su propio lenguaje de scripting incorporado entonces podrá sumar, restar, dividir y multiplicar, pero... no se puede comparar, el caso es que sigue siendo una aplicación para crear menues, no programas.

Si lo que quieres es desarrollar una aplicación con su GUI (su interface gráfica, con sus botones, etc) entonces diréctamente te recomiendo que empieces a aprender un lenguaje compilado de los "simples" como VB6, aunque si quieres empezar fuerte pues VB.NET, C#, o Java ...pero si el código del tal AutoPlay MediaStudio te cuesta entenderlo entonces te aseguro que esto otro te costaría muchísimo más.

Perdona si me equivoco pero me da la sensación de que no sabes donde te has metido,
no puedes crear una aplicación de contabilidad en un dia y con el típico programa para crear menus, hazlo bien, primero has de aprender y conocer un lenguaje de programación con el que manejarte.

Saludos!
8218  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cómo usar Postmessage y Sendmessage? en: 14 Septiembre 2013, 07:07 am
Hola

Yo te puedo ayudar a resolver alguna que otra duda, pero no todas las que tienes, ya que yo tampoco he experimentado lo de enviar e interceptar mensajes entre dos ensamblados mios.

Lo primero de todo a lo que voy a hacer referencia es a los tipos de declaraciones que has usado:

Código
  1.    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
  2.  
  3.    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA"(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Se puede apreciar con claridad que no son para VB.NET, sinó para VB6, no copies todo lo que veas en internet a la ligera, fíjate mejor en las cosas importantes, el tipo "Any" es obsoleto, no existe en VB.NET y te daría un error de compilación (eso demuestra que no los has probado xD), además los Integers también se podrían decir que son obsoletos para esa función en particular ya que si usas un entero en wParam o lParam no te va a funcionar en equipos con arquitectura de 64 Bit.

Así que lo primero de todo, debes especificar corréctamente los datatypes para VB.NET:

Código
  1. Imports System.Runtime.InteropServices
  2.  
  3. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  4. Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
  5. End Function
  6.  
  7. <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  8. Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean
  9. End Function





Creo saber cómo sacar el handle de una ventana usando FindWindow por eso no pregunté por el parámetro
Código
  1. Dim hWnd1 As Int32 = FindWindow(vbNullString, "Nombre_de_la_ventana")

De nuevo estás usando el tipo incorrecto, el handle no es un Integer, sinó un IntPtr:
Citar
IntPtr: platform-specific type that is used to represent a pointer or a handle.

Hasta donde yo sé si devuelves el valor de tipo Integer (Int32) el handle funciona en los casos en los que he testeado, yo también empecé usando Integer para casi todo xD, pero una insignificancia o un descuido tán pequeño podría repercutir en equipos de 64 Bit como es en el caso de los tipos incorrectos de las funciones PostMessage y SendMessage, y vete a saber los otros posibles problemas técnicos que puede ocasionar por usar un integer en lugar del tipo específico para el valor.

Te aconsejo que para obtener el Handle lo hagas de la siguiente manera (además me parece más sencillo ya que lo busco por el nombre del proceso en lugar de por el nombre de la ventana):


Código
  1. #Region " Get Process Handle "
  2.  
  3.    ' [ Get Process Handle Function ]
  4.    '
  5.    ' // By Elektro H@cker
  6.    '
  7.    ' Examples :
  8.    ' MsgBox(Get_Process_Handle("cmd"))
  9.    ' MsgBox(Get_Process_Handle("cmd.exe"))
  10.  
  11.    Private Function Get_Process_Handle(ByVal ProcessName As String) As IntPtr
  12.  
  13.        ProcessName = IIf(ProcessName.ToLower.EndsWith(".exe"), _
  14.                          ProcessName.Substring(0, ProcessName.LastIndexOf(".")), _
  15.                          ProcessName)
  16.  
  17.        Try
  18.            Return Process.GetProcessesByName(ProcessName)(0).MainWindowHandle
  19.        Catch ex As Exception
  20.            Return IntPtr.Zero
  21.        End Try
  22.  
  23.    End Function
  24.  
  25. #End Region




a) wMsg: ¿dónde consulto todas las constantes que pudieran existir?;

Aquí:

Código:
Public Const WM_USER = &H400&
Public Const CB_GETEDITSEL = &H140
Public Const CB_LIMITTEXT = &H141
Public Const CB_SETEDITSEL = &H142
Public Const CB_ADDSTRING = &H143
Public Const CB_DELETESTRING = &H144
Public Const CB_DIR = &H145
Public Const CB_GETCOUNT = &H146
Public Const CB_GETCURSEL = &H147
Public Const CB_GETLBTEXT = &H148
Public Const CB_GETLBTEXTLEN = &H149
Public Const CB_INSERTSTRING = &H14A
Public Const CB_RESETCONTENT = &H14B
Public Const CB_FINDSTRING = &H14C
Public Const CB_SELECTSTRING = &H14D
Public Const CB_SETCURSEL = &H14E
Public Const CB_SHOWDROPDOWN = &H14F
Public Const CB_GETITEMDATA = &H150
Public Const CB_SETITEMDATA = &H151
Public Const CB_GETDROPPEDCONTROLRECT = &H152
Public Const CB_SETITEMHEIGHT = &H153
Public Const CB_GETITEMHEIGHT = &H154
Public Const CB_SETEXTENDEDUI = &H155
Public Const CB_GETEXTENDEDUI = &H156
Public Const CB_GETDROPPEDSTATE = &H157
Public Const CB_FINDSTRINGEXACT = &H158
Public Const CB_SETLOCALE = &H159
Public Const CB_GETLOCALE = &H15A
Public Const CB_GETTOPINDEX = &H15B
Public Const CB_SETTOPINDEX = &H15C
Public Const CB_GETHORIZONTALEXTENT = &H15D
Public Const CB_SETHORIZONTALEXTENT = &H15E
Public Const CB_GETDROPPEDWIDTH = &H15F
Public Const CB_SETDROPPEDWIDTH = &H160
Public Const CB_INITSTORAGE = &H161
Public Const CB_MSGMAX = &H162
Public Const EM_CANUNDO = &HC6
Public Const EM_EMPTYUNDOBUFFER = &HCD
Public Const EM_FMTLINES = &HC8
Public Const EM_FORMATRANGE As Long = WM_USER + 57
Public Const EM_GETFIRSTVISIBLELINE = &HCE
Public Const EM_GETHANDLE = &HBD
Public Const EM_GETLINE = &HC4
Public Const EM_GETLINECOUNT = &HBA
Public Const EM_GETMODIFY = &HB8
Public Const EM_GETPASSWORDCHAR = &HD2
Public Const EM_GETRECT = &HB2
Public Const EM_GETSEL = &HB0
Public Const EM_GETTHUMB = &HBE
Public Const EM_GETWORDBREAKPROC = &HD1
Public Const EM_LIMITTEXT = &HC5
Public Const EM_LINEFROMCHAR = &HC9
Public Const EM_LINEINDEX = &HBB
Public Const EM_LINELENGTH = &HC1
Public Const EM_LINESCROLL = &HB6
Public Const EM_REPLACESEL = &HC2
Public Const EM_SCROLL = &HB5
Public Const EM_SCROLLCARET = &HB7
Public Const EM_SETHANDLE = &HBC
Public Const EM_SETMODIFY = &HB9
Public Const EM_SETPASSWORDCHAR = &HCC
Public Const EM_SETREADONLY = &HCF
Public Const EM_SETRECT = &HB3
Public Const EM_SETRECTNP = &HB4
Public Const EM_SETSEL = &HB1
Public Const EM_SETTABSTOPS = &HCB
Public Const EM_SETTARGETDEVICE As Long = WM_USER + 72
Public Const EM_SETWORDBREAKPROC = &HD0
Public Const EM_UNDO = &HC7
Public Const HDS_HOTTRACK = &H4
Public Const HDI_BITMAP = &H10
Public Const HDI_IMAGE = &H20
Public Const HDI_ORDER = &H80
Public Const HDI_FORMAT = &H4
Public Const HDI_TEXT = &H2
Public Const HDI_WIDTH = &H1
Public Const HDI_HEIGHT = HDI_WIDTH
Public Const HDF_LEFT = 0
Public Const HDF_RIGHT = 1
Public Const HDF_IMAGE = &H800
Public Const HDF_BITMAP_ON_RIGHT = &H1000
Public Const HDF_BITMAP = &H2000
Public Const HDF_STRING = &H4000
Public Const HDM_FIRST = &H1200
Public Const HDM_SETITEM = (HDM_FIRST + 4)
Public Const LB_ADDFILE = &H196
Public Const LB_ADDSTRING = &H180
Public Const LB_CTLCODE = 0&
Public Const LB_DELETESTRING = &H182
Public Const LB_DIR = &H18D
Public Const LB_ERR = (-1)
Public Const LB_ERRSPACE = (-2)
Public Const LB_FINDSTRING = &H18F
Public Const LB_FINDSTRINGEXACT = &H1A2
Public Const LB_GETANCHORINDEX = &H19D
Public Const LB_GETCARETINDEX = &H19F
Public Const LB_GETCOUNT = &H18B
Public Const LB_GETCURSEL = &H188
Public Const LB_GETHORIZONTALEXTENT = &H193
Public Const LB_GETITEMDATA = &H199
Public Const LB_GETITEMHEIGHT = &H1A1
Public Const LB_GETITEMRECT = &H198
Public Const LB_GETLOCALE = &H1A6
Public Const LB_GETSEL = &H187
Public Const LB_GETSELCOUNT = &H190
Public Const LB_GETSELITEMS = &H191
Public Const LB_GETTEXT = &H189
Public Const LB_GETTEXTLEN = &H18A
Public Const LB_GETTOPINDEX = &H18E
Public Const LB_INSERTSTRING = &H181
Public Const LB_MSGMAX = &H1A8
Public Const LB_OKAY = 0
Public Const LB_RESETCONTENT = &H184
Public Const LB_SELECTSTRING = &H18C
Public Const LB_SELITEMRANGE = &H19B
Public Const LB_SELITEMRANGEEX = &H183
Public Const LB_SETANCHORINDEX = &H19C
Public Const LB_SETCARETINDEX = &H19E
Public Const LB_SETCOLUMNWIDTH = &H195
Public Const LB_SETCOUNT = &H1A7
Public Const LB_SETCURSEL = &H186
Public Const LB_SETHORIZONTALEXTENT = &H194
Public Const LB_SETITEMDATA = &H19A
Public Const LB_SETITEMHEIGHT = &H1A0
Public Const LB_SETLOCALE = &H1A5
Public Const LB_SETSEL = &H185
Public Const LB_SETTABSTOPS = &H192
Public Const LB_SETTOPINDEX = &H197
Public Const LBN_DBLCLK = 2
Public Const LBN_ERRSPACE = (-2)
Public Const LBN_KILLFOCUS = 5
Public Const LBN_SELCANCEL = 3
Public Const LBN_SELCHANGE = 1
Public Const LBN_SETFOCUS = 4
Public Const LVM_FIRST = &H1000
Public Const LVM_GETHEADER = (LVM_FIRST + 31)
Public Const LVM_GETBKCOLOR = (LVM_FIRST + 0)
Public Const LVM_SETBKCOLOR = (LVM_FIRST + 1)
Public Const LVM_GETIMAGELIST = (LVM_FIRST + 2)
Public Const LVM_SETIMAGELIST = (LVM_FIRST + 3)
Public Const LVM_GETITEMCOUNT = (LVM_FIRST + 4)
Public Const LVM_GETITEMA = (LVM_FIRST + 5)
Public Const LVM_GETITEM = LVM_GETITEMA
Public Const LVM_SETITEMA = (LVM_FIRST + 6)
Public Const LVM_SETITEM = LVM_SETITEMA
Public Const LVM_INSERTITEMA = (LVM_FIRST + 7)
Public Const LVM_INSERTITEM = LVM_INSERTITEMA
Public Const LVM_DELETEITEM = (LVM_FIRST + 8)
Public Const LVM_DELETEALLITEMS = (LVM_FIRST + 9)
Public Const LVM_GETCALLBACKMASK = (LVM_FIRST + 10)
Public Const LVM_SETCALLBACKMASK = (LVM_FIRST + 11)
Public Const LVM_GETNEXTITEM = (LVM_FIRST + 12)
Public Const LVM_FINDITEMA = (LVM_FIRST + 13)
Public Const LVM_FINDITEM = LVM_FINDITEMA
Public Const LVM_GETITEMRECT = (LVM_FIRST + 14)
Public Const LVM_SETITEMPOSITION = (LVM_FIRST + 15)
Public Const LVM_GETITEMPOSITION = (LVM_FIRST + 16)
Public Const LVM_GETSTRINGWIDTHA = (LVM_FIRST + 17)
Public Const LVM_GETSTRINGWIDTH = LVM_GETSTRINGWIDTHA
Public Const LVM_HITTEST = (LVM_FIRST + 18)
Public Const LVM_ENSUREVISIBLE = (LVM_FIRST + 19)
Public Const LVM_SCROLL = (LVM_FIRST + 20)
Public Const LVM_REDRAWITEMS = (LVM_FIRST + 21)
Public Const LVM_ARRANGE = (LVM_FIRST + 22)
Public Const LVM_EDITLABELA = (LVM_FIRST + 23)
Public Const LVM_EDITLABEL = LVM_EDITLABELA
Public Const LVM_GETEDITCONTROL = (LVM_FIRST + 24)
Public Const LVM_GETCOLUMNA = (LVM_FIRST + 25)
Public Const LVM_GETCOLUMN = LVM_GETCOLUMNA
Public Const LVM_SETCOLUMNA = (LVM_FIRST + 26)
Public Const LVM_SETCOLUMN = LVM_SETCOLUMNA
Public Const LVM_INSERTCOLUMNA = (LVM_FIRST + 27)
Public Const LVM_INSERTCOLUMN = LVM_INSERTCOLUMNA
Public Const LVM_DELETECOLUMN = (LVM_FIRST + 28)
Public Const LVM_GETCOLUMNWIDTH = (LVM_FIRST + 29)
Public Const LVM_SETCOLUMNWIDTH = (LVM_FIRST + 30)
Public Const LVM_CREATEDRAGIMAGE = (LVM_FIRST + 33)
Public Const LVM_GETVIEWRECT = (LVM_FIRST + 34)
Public Const LVM_GETTEXTCOLOR = (LVM_FIRST + 35)
Public Const LVM_SETTEXTCOLOR = (LVM_FIRST + 36)
Public Const LVM_GETTEXTBKCOLOR = (LVM_FIRST + 37)
Public Const LVM_SETTEXTBKCOLOR = (LVM_FIRST + 38)
Public Const LVM_GETTOPINDEX = (LVM_FIRST + 39)
Public Const LVM_GETCOUNTPERPAGE = (LVM_FIRST + 40)
Public Const LVM_GETORIGIN = (LVM_FIRST + 41)
Public Const LVM_UPDATE = (LVM_FIRST + 42)
Public Const LVM_SETITEMSTATE = (LVM_FIRST + 43)
Public Const LVM_GETITEMSTATE = (LVM_FIRST + 44)
Public Const LVM_GETITEMTEXTA = (LVM_FIRST + 45)
Public Const LVM_GETITEMTEXT = LVM_GETITEMTEXTA
Public Const LVM_SETITEMTEXTA = (LVM_FIRST + 46)
Public Const LVM_SETITEMTEXT = LVM_SETITEMTEXTA
Public Const LVM_SETITEMCOUNT = (LVM_FIRST + 47)
Public Const LVM_SORTITEMS = (LVM_FIRST + 48)
Public Const LVM_SETITEMPOSITION32 = (LVM_FIRST + 49)
Public Const LVM_GETSELECTEDCOUNT = (LVM_FIRST + 50)
Public Const LVM_GETITEMSPACING = (LVM_FIRST + 51)
Public Const LVM_GETISEARCHSTRINGA = (LVM_FIRST + 52)
Public Const LVM_GETISEARCHSTRING = LVM_GETISEARCHSTRINGA
Public Const LVM_SETICONSPACING = (LVM_FIRST + 53)
Public Const LVM_SETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 54)
Public Const LVM_GETEXTENDEDLISTVIEWSTYLE = (LVM_FIRST + 55)
Public Const LVM_GETSUBITEMRECT = (LVM_FIRST + 56)
Public Const LVM_SUBITEMHITTEST = (LVM_FIRST + 57)
Public Const LVM_SETCOLUMNORDERARRAY = (LVM_FIRST + 58)
Public Const LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59)
Public Const LVM_SETHOTITEM = (LVM_FIRST + 60)
Public Const LVM_GETHOTITEM = (LVM_FIRST + 61)
Public Const LVM_SETHOTCURSOR = (LVM_FIRST + 62)
Public Const LVM_GETHOTCURSOR = (LVM_FIRST + 63)
Public Const LVM_APPROXIMATEVIEWRECT = (LVM_FIRST + 64)
Public Const LVS_EX_FULLROWSELECT = &H20
Public Const LVSCW_AUTOSIZE As Long = -1
Public Const LVSCW_AUTOSIZE_USEHEADER As Long = -2
Public Const WM_ACTIVATE = &H6
Public Const WM_ACTIVATEAPP = &H1C
Public Const WM_ASKCBFORMATNAME = &H30C
Public Const WM_CANCELJOURNAL = &H4B
Public Const WM_CANCELMODE = &H1F
Public Const WM_CHANGECBCHAIN = &H30D
Public Const WM_CHAR = &H102
Public Const WM_CHARTOITEM = &H2F
Public Const WM_CHILDACTIVATE = &H22
Public Const WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1)
Public Const WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102)
Public Const WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101)
Public Const WM_CLEAR = &H303
Public Const WM_CLOSE = &H10
Public Const WM_COMMAND = &H111
Public Const WM_COMMNOTIFY = &H44' no longer suported
Public Const WM_COMPACTING = &H41
Public Const WM_COMPAREITEM = &H39
Public Const WM_CONVERTREQUESTEX = &H108
Public Const WM_COPY = &H301
Public Const WM_COPYDATA = &H4A
Public Const WM_CREATE = &H1
Public Const WM_CTLCOLORBTN = &H135
Public Const WM_CTLCOLORDLG = &H136
Public Const WM_CTLCOLOREDIT = &H133
Public Const WM_CTLCOLORLISTBOX = &H134
Public Const WM_CTLCOLORMSGBOX = &H132
Public Const WM_CTLCOLORSCROLLBAR = &H137
Public Const WM_CTLCOLORSTATIC = &H138
Public Const WM_CUT = &H300
Public Const WM_DDE_FIRST = &H3E0
Public Const WM_DDE_ACK = (WM_DDE_FIRST + 4)
Public Const WM_DDE_ADVISE = (WM_DDE_FIRST + 2)
Public Const WM_DDE_DATA = (WM_DDE_FIRST + 5)
Public Const WM_DDE_EXECUTE = (WM_DDE_FIRST + 8)
Public Const WM_DDE_INITIATE = (WM_DDE_FIRST)
Public Const WM_DDE_LAST = (WM_DDE_FIRST + 8)
Public Const WM_DDE_POKE = (WM_DDE_FIRST + 7)
Public Const WM_DDE_REQUEST = (WM_DDE_FIRST + 6)
Public Const WM_DDE_TERMINATE = (WM_DDE_FIRST + 1)
Public Const WM_DDE_UNADVISE = (WM_DDE_FIRST + 3)
Public Const WM_DEADCHAR = &H103
Public Const WM_DELETEITEM = &H2D
Public Const WM_DESTROY = &H2
Public Const WM_DESTROYCLIPBOARD = &H307
Public Const WM_DEVMODECHANGE = &H1B
Public Const WM_DRAWCLIPBOARD = &H308
Public Const WM_DRAWITEM = &H2B
Public Const WM_DROPFILES = &H233
Public Const WM_ENABLE = &HA
Public Const WM_ENDSESSION = &H16
Public Const WM_ENTERIDLE = &H121
Public Const WM_ENTERMENULOOP = &H211
Public Const WM_ERASEBKGND = &H14
Public Const WM_EXITMENULOOP = &H212
Public Const WM_FONTCHANGE = &H1D
Public Const WM_GETFONT = &H31
Public Const WM_GETDLGCODE = &H87
Public Const WM_GETHOTKEY = &H33
Public Const WM_GETMINMAXINFO = &H24
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE
Public Const WM_HOTKEY = &H312
Public Const WM_HSCROLL = &H114
Public Const WM_HSCROLLCLIPBOARD = &H30E
Public Const WM_ICONERASEBKGND = &H27
Public Const WM_IME_CHAR = &H286
Public Const WM_IME_COMPOSITION = &H10F
Public Const WM_IME_COMPOSITIONFULL = &H284
Public Const WM_IME_CONTROL = &H283
Public Const WM_IME_ENDCOMPOSITION = &H10E
Public Const WM_IME_KEYDOWN = &H290
Public Const WM_IME_KEYLAST = &H10F
Public Const WM_IME_KEYUP = &H291
Public Const WM_IME_NOTIFY = &H282
Public Const WM_IME_SELECT = &H285
Public Const WM_IME_SETCONTEXT = &H281
Public Const WM_IME_STARTCOMPOSITION = &H10D
Public Const WM_INITDIALOG = &H110
Public Const WM_INITMENU = &H116
Public Const WM_INITMENUPOPUP = &H117
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYFIRST = &H100
Public Const WM_KEYLAST = &H108
Public Const WM_KEYUP = &H101
Public Const WM_KILLFOCUS = &H8
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_MBUTTONDBLCLK = &H209
Public Const WM_MBUTTONDOWN = &H207
Public Const WM_MBUTTONUP = &H208
Public Const WM_MDIACTIVATE = &H222
Public Const WM_MDICASCADE = &H227
Public Const WM_MDICREATE = &H220
Public Const WM_MDIDESTROY = &H221
Public Const WM_MDIGETACTIVE = &H229
Public Const WM_MDIICONARRANGE = &H228
Public Const WM_MDIMAXIMIZE = &H225
Public Const WM_MDINEXT = &H224
Public Const WM_MDIREFRESHMENU = &H234
Public Const WM_MDIRESTORE = &H223
Public Const WM_MDISETMENU = &H230
Public Const WM_MDITILE = &H226
Public Const WM_MEASUREITEM = &H2C
Public Const WM_MENUCHAR = &H120
Public Const WM_MENUSELECT = &H11F
Public Const WM_MOUSEACTIVATE = &H21
Public Const WM_MOUSEFIRST = &H200
Public Const WM_MOUSELAST = &H209
Public Const WM_MOUSEMOVE = &H200
Public Const WM_MOVE = &H3
Public Const WM_NCACTIVATE = &H86
Public Const WM_NCCALCSIZE = &H83
Public Const WM_NCCREATE = &H81
Public Const WM_NCDESTROY = &H82
Public Const WM_NCHITTEST = &H84
Public Const WM_NCLBUTTONDBLCLK = &HA3
Public Const WM_NCLBUTTONDOWN = &HA1
Public Const WM_NCLBUTTONUP = &HA2
Public Const WM_NCMBUTTONDBLCLK = &HA9
Public Const WM_NCMBUTTONDOWN = &HA7
Public Const WM_NCMBUTTONUP = &HA8
Public Const WM_NCMOUSEMOVE = &HA0
Public Const WM_NCPAINT = &H85
Public Const WM_NCRBUTTONDBLCLK = &HA6
Public Const WM_NCRBUTTONDOWN = &HA4
Public Const WM_NCRBUTTONUP = &HA5
Public Const WM_NEXTDLGCTL = &H28
Public Const WM_NULL = &H0
Public Const WM_OTHERWINDOWCREATED = &H42' no longer suported
Public Const WM_OTHERWINDOWDESTROYED = &H43 ' no longer suported
Public Const WM_PAINT = &HF
Public Const WM_PAINTCLIPBOARD = &H309
Public Const WM_PAINTICON = &H26
Public Const WM_PALETTECHANGED = &H311
Public Const WM_PALETTEISCHANGING = &H310
Public Const WM_PARENTNOTIFY = &H210
Public Const WM_PASTE = &H302
Public Const WM_PENWINFIRST = &H380
Public Const WM_PENWINLAST = &H38F
Public Const WM_POWER = &H48
Public Const WM_PSD_ENVSTAMPRECT = (WM_USER + 5)
Public Const WM_PSD_FULLPAGERECT = (WM_USER + 1)
Public Const WM_PSD_GREEKTEXTRECT = (WM_USER + 4)
Public Const WM_PSD_MARGINRECT = (WM_USER + 3)
Public Const WM_PSD_MINMARGINRECT = (WM_USER + 2)
Public Const WM_PSD_PAGESETUPDLG = (WM_USER)
Public Const WM_PSD_YAFULLPAGERECT = (WM_USER + 6)
Public Const WM_QUERYDRAGICON = &H37
Public Const WM_QUERYENDSESSION = &H11
Public Const WM_QUERYNEWPALETTE = &H30F
Public Const WM_QUERYOPEN = &H13
Public Const WM_QUEUESYNC = &H23
Public Const WM_QUIT = &H12
Public Const WM_RBUTTONDBLCLK = &H206
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RENDERALLFORMATS = &H306
Public Const WM_RENDERFORMAT = &H305
Public Const WM_SETCURSOR = &H20
Public Const WM_SETFOCUS = &H7
Public Const WM_SETFONT = &H30
Public Const WM_SETHOTKEY = &H32
Public Const WM_SETREDRAW = &HB
Public Const WM_SETTEXT = &HC
Public Const WM_SHOWWINDOW = &H18
Public Const WM_SIZE = &H5
Public Const WM_SIZECLIPBOARD = &H30B
Public Const WM_SPOOLERSTATUS = &H2A
Public Const WM_SYSCHAR = &H106
Public Const WM_SYSCOLORCHANGE = &H15
Public Const WM_SYSCOMMAND = &H112
Public Const WM_SYSDEADCHAR = &H107
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
Public Const WM_TIMECHANGE = &H1E
Public Const WM_TIMER = &H113
Public Const WM_UNDO = &H304
Public Const WM_VKEYTOITEM = &H2E
Public Const WM_VSCROLL = &H115
Public Const WM_VSCROLLCLIPBOARD = &H30A
Public Const WM_WINDOWPOSCHANGED = &H47
Public Const WM_WINDOWPOSCHANGING = &H46
Public Const WM_WININICHANGE = &H1A
Public Const WS_BORDER = &H800000
Public Const WS_CAPTION = &HC00000 ' WS_BORDER Or WS_DLGFRAME
Public Const WS_CHILD = &H40000000
Public Const WS_CHILDWINDOW = (WS_CHILD)
Public Const WS_CLIPCHILDREN = &H2000000
Public Const WS_CLIPSIBLINGS = &H4000000
Public Const WS_DISABLED = &H8000000
Public Const WS_DLGFRAME = &H400000
Public Const WS_EX_ACCEPTFILES = &H10&
Public Const WS_EX_DLGMODALFRAME = &H1&
Public Const WS_EX_NOPARENTNOTIFY = &H4&
Public Const WS_EX_TOPMOST = &H8&
Public Const WS_EX_TRANSPARENT = &H20&
Public Const WS_GROUP = &H20000
Public Const WS_HSCROLL = &H100000
Public Const WS_MINIMIZE = &H20000000
Public Const WS_ICONIC = WS_MINIMIZE
Public Const WS_MAXIMIZE = &H1000000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_MINIMIZEBOX = &H20000
Public Const WS_SYSMENU = &H80000
Public Const WS_THICKFRAME = &H40000
Public Const WS_OVERLAPPED = &H0&
Public Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION _
Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
Public Const WS_POPUP = &H80000000
Public Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
Public Const WS_SIZEBOX = WS_THICKFRAME
Public Const WS_TABSTOP = &H10000
Public Const WS_TILED = WS_OVERLAPPED
Public Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
Public Const WS_VISIBLE = &H10000000
Public Const WS_VSCROLL = &H200000
Public Const LBS_DISABLENOSCROLL = &H1000&
Public Const LBS_EXTENDEDSEL = &H800&
Public Const LBS_HASSTRINGS = &H40&
Public Const LBS_MULTICOLUMN = &H200&
Public Const LBS_MULTIPLESEL = &H8&
Public Const LBS_NODATA = &H2000&
Public Const LBS_NOINTEGRALHEIGHT = &H100&
Public Const LBS_NOREDRAW = &H4&
Public Const LBS_NOTIFY = &H1&
Public Const LBS_OWNERDRAWFIXED = &H10&
Public Const LBS_OWNERDRAWVARIABLE = &H20&
Public Const LBS_SORT = &H2&
Public Const LBS_STANDARD = (LBS_NOTIFY Or LBS_SORT Or WS_VSCROLL _
Or WS_BORDER)
Public Const LBS_USETABSTOPS = &H80&
Public Const LBS_WANTKEYBOARDINPUT = &H400&
Public Const LBSELCHSTRING = "commdlg_LBSelChangedNotify"
Public Const TB_ENABLEBUTTON = (WM_USER + 1)
Public Const TB_CHECKBUTTON = (WM_USER + 2)
Public Const TB_PRESSBUTTON = (WM_USER + 3)
Public Const TB_HIDEBUTTON = (WM_USER + 4)
Public Const TB_INDETERMINATE = (WM_USER + 5)
Public Const TB_MARKBUTTON = (WM_USER + 6)
Public Const TB_ISBUTTONENABLED = (WM_USER + 9)
Public Const TB_ISBUTTONCHECKED = (WM_USER + 10)
Public Const TB_ISBUTTONPRESSED = (WM_USER + 11)
Public Const TB_ISBUTTONHIDDEN = (WM_USER + 12)
Public Const TB_ISBUTTONINDETERMINATE = (WM_USER + 13)
Public Const TB_ISBUTTONHIGHLIGHTED = (WM_USER + 14)
Public Const TB_SETSTATE = (WM_USER + 17)
Public Const TB_GETSTATE = (WM_USER + 18)
Public Const TB_ADDBITMAP = (WM_USER + 19)
Public Const TB_ADDBUTTONSA = (WM_USER + 20)
Public Const TB_INSERTBUTTONA = (WM_USER + 21)
Public Const TB_ADDBUTTONS = (WM_USER + 20)
Public Const TB_INSERTBUTTON = (WM_USER + 21)
Public Const TB_DELETEBUTTON = (WM_USER + 22)
Public Const TB_GETBUTTON = (WM_USER + 23)
Public Const TB_BUTTONCOUNT = (WM_USER + 24)
Public Const TB_COMMANDTOINDEX = (WM_USER + 25)
Public Const TB_SAVERESTOREA = (WM_USER + 26)
Public Const TB_SAVERESTOREW = (WM_USER + 76)
Public Const TB_CUSTOMIZE = (WM_USER + 27)
Public Const TB_ADDSTRINGA = (WM_USER + 28)
Public Const TB_ADDSTRINGW = (WM_USER + 77)
Public Const TB_GETITEMRECT = (WM_USER + 29)
Public Const TB_BUTTONSTRUCTSIZE = (WM_USER + 30)
Public Const TB_SETBUTTONSIZE = (WM_USER + 31)
Public Const TB_SETBITMAPSIZE = (WM_USER + 32)
Public Const TB_AUTOSIZE = (WM_USER + 33)
Public Const TB_GETTOOLTIPS = (WM_USER + 35)
Public Const TB_SETTOOLTIPS = (WM_USER + 36)
Public Const TB_SETPARENT = (WM_USER + 37)
Public Const TB_SETROWS = (WM_USER + 39)
Public Const TB_GETROWS = (WM_USER + 40)
Public Const TB_SETCMDID = (WM_USER + 42)
Public Const TB_CHANGEBITMAP = (WM_USER + 43)
Public Const TB_GETBITMAP = (WM_USER + 44)
Public Const TB_GETBUTTONTEXTA = (WM_USER + 45)
Public Const TB_GETBUTTONTEXTW = (WM_USER + 75)
Public Const TB_REPLACEBITMAP = (WM_USER + 46)
Public Const TB_SETINDENT = (WM_USER + 47)
Public Const TB_SETIMAGELIST = (WM_USER + 48)
Public Const TB_GETIMAGELIST = (WM_USER + 49)
Public Const TB_LOADIMAGES = (WM_USER + 50)
Public Const TB_GETRECT = (WM_USER + 51) ' wParam is the Cmd instead of index
Public Const TB_SETHOTIMAGELIST = (WM_USER + 52)
Public Const TB_GETHOTIMAGELIST = (WM_USER + 53)
Public Const TB_SETDISABLEDIMAGELIST = (WM_USER + 54)
Public Const TB_GETDISABLEDIMAGELIST = (WM_USER + 55)
Public Const TB_SETSTYLE = (WM_USER + 56)
Public Const TB_GETSTYLE = (WM_USER + 57)
Public Const TB_GETBUTTONSIZE = (WM_USER + 58)
Public Const TB_SETBUTTONWIDTH = (WM_USER + 59)
Public Const TB_SETMAXTEXTROWS = (WM_USER + 60)
Public Const TB_GETTEXTROWS = (WM_USER + 61)
Public Const TBSTYLE_BUTTON = &H0
Public Const TBSTYLE_SEP = &H1
Public Const TBSTYLE_CHECK = &H2
Public Const TBSTYLE_GROUP = &H4
Public Const TBSTYLE_CHECKGROUP = (TBSTYLE_GROUP Or TBSTYLE_CHECK)
Public Const TBSTYLE_DROPDOWN = &H8
Public Const TBSTYLE_AUTOSIZE = &H10 ' automatically calculate the cx of the button '
Public Const TBSTYLE_NOPREFIX = &H20 ' If this button should not have accel prefix '
Public Const TBSTYLE_TOOLTIPS = &H100
Public Const TBSTYLE_WRAPABLE = &H200
Public Const TBSTYLE_ALTDRAG = &H400
Public Const TBSTYLE_FLAT = &H800
Public Const TBSTYLE_LIST = &H1000
Public Const TBSTYLE_CUSTOMERASE = &H2000
Public Const TBSTYLE_REGISTERDROP = &H4000
Public Const TBSTYLE_TRANSPARENT = &H8000
Public Const TBSTYLE_EX_DRAWDDARROWS = &H1







b) ¿Cuál correspondería para el caso de enviar los clic a la otra aplicación?

Para simular el evento MouseClick completo, primero tienes que simular el evento MouseDown y luego el MouseUp, así que estas son las constantes que debes enviar para hacer un click del botón izquierdo del mouse:

Código:
WM_LBUTTONDOWN
WM_LBUTTONUP







d) wParam y lParam: ¿qué son exactamente y de dónde saco estos valores?

El uso exacto de los parámetros wParam y lParam dependen del tipo de mensaje que envies,
por ejemplo si quieres simular el evento KeyPress, primero mandas el valor para simular el evento KeyDown (constante WM_KEYDOWN), entonces en wParam debes especificar el KeyCode de la letra que quieres simular (presionar), y como no tenemos ninguna información adicional que enviar entonces el parámetro lParam lo especificas como nulo (IntPtr.Zero) 0.


EDITO:
Para el uso de WM_LBUTTONDOWN en el parámetro wParam debes especificar una o una combinación de teclas virtuales para presionar, que en tu caso sería esta constante:

Citar
Código:
MK_LBUTTON
0x0001

The left mouse button is down.

Y como parámetro de lParam debes especificar las coordenadas x.y donde se va a simular el click, así que en teoría me imagino que sería así:

Código
  1. Dim Coordenada_X As IntPtr = "&H" & Hex$(50)
  2. Dim Coordenada_Y As IntPtr = "&H" & Hex$(100)
  3.  
  4. SendMessage(Handle, &H201, &H1, Coordenada_X Or Coordenada_Y)

Ahora, debemos enviar el mensaje de la constante "WM_LBUTTONUP", donde requerimos un pequeño cambio al especificar el parámetro wParam, debemos pasarlo nulo para indicar que no estamos manteniendo presionado ninguna tecla virtual (para que lo entiendas un caso totálmente contrario podría ser si quesieramos enviar un mensaje de "Shift+LeftButton" y usar distintas coordenadas aquí, de ese modo estaríamos simulando que seleccionamos algunos elementos mientras mantenemos la tecla shift presionada):

Código
  1. SendMessage(Handle, &H202, IntPtr.Zero, Coordenada_X Or Coordenada_Y)

PD: Si no te funcionase con intptr.zero prueba especificando el código hexadecimal de Windows: &H0


En fín, el tema de SendMessage es MUUUUY extenso (y yo no se tanto si es lo que puede parecer), ya has visto la inmensa cantidad de constantes que puse arriba, y cada una de ellas contiene una buena cantidad de posibles valores para wParam y lParam,
no esperes conseguir mucha ayuda acerca de este tema, en ningún sitio (te lo digo por experiencia), porque es muy cansado de aprender, de contestar, y de almacenar toda esa información en la memoria, así que yo te aconsejo que te intereses sólamente en la información para el tipo de evento que quieres enviar, no más, porque como ya digo es muy extenso.

Aunque por otro lado todo eso está documentado tanto de forma oficial como no oficial, para serte sincero en el MSDN tienes todo lo que necesitas, desde los valores que debes especificar como lParam y wParam para simular cada tipo de evento, como códigos de ejemplo en C# y VB.NET que postea la gente al final de la página, lo que pasa es que muchos no leen hasta abajo del todo... pero abajo del todo siempre suele estar ese código que nos salva la vida cuando no entendemos del todo como codearlo nosotros mismos xD :P

Y para cuando te aburras del MSDN, siempre puedes mirar pinvoke.net, es otra página excelente donde encontrarás mucha información acerca de todos los parámetros relacionados con PostMessage y SendMessage y en general toda la ayuda necesaria para todas las funciones de la API de Windows.


PD: Se que no te he aclarado como enviar e interceptar un click a un botón en particular, porque nunca he intentado clickar un botón entre aplicaicón y aplicación y no me quiero equivocar dándote ideas, sincéramente yo solo lo he usado para cosas que no están del todo relacionadas con tu problema, como por ejemplo enviar keystrokes (pulsaciones dle teclado).



EDITO:


Leí bastantes códigos hechos en otros lugares, hasta en la MSDN pero no logro comprenderlos así que de última recurrí aquí. Lo peor es que me van a seguir saliendo dudas sobre esto y no quisiera abusar así que solo les pido un poco de orientación para ver si los puedo hacer yo.

Sería bueno que posteases uno de los códigos que no comprendes, así te ayudamos a que lo comprendas y vas avanzando en el uso de SendMessage.


Saludos.
8219  Programación / .NET (C#, VB.NET, ASP) / Re: Librería de Snippets !! (Posteen aquí sus snippets) en: 14 Septiembre 2013, 05:42 am
· Colorear los items de un ListBox.





Código
  1. #Region " [ListBox] Colorize Items "
  2.  
  3.  
  4.  
  5. ' [ [ListBox] Colorize Items ]
  6. '
  7. ' // By Elektro H@cker
  8. '
  9. ' Examples :
  10. '
  11. ' Set Drawmode to "OwnerDrawFixed" to make this work.
  12. ' ListBox1.DrawMode = DrawMode.OwnerDrawFixed
  13. '
  14. ' Colorize only selected item:
  15. ' Colorize_Item(ListBox1, Colorize_ListBox_Items.Selected, Brushes.YellowGreen)
  16. '
  17. ' Colorize all Non-Selected items
  18. ' Colorize_Item(ListBox1, Colorize_ListBox_Items.Non_Selected, Brushes.Red)
  19. '
  20. ' Colorize all items:
  21. ' Colorize_Item(ListBox1, Colorize_ListBox_Items.All, Brushes.Yellow)
  22. '
  23. ' Colorize any item:
  24. ' Colorize_Item(ListBox1, Colorize_ListBox_Items.None, Nothing)
  25. '
  26. ' Colorize specific items:
  27. ' Colorize_Item(ListBox1, {0, (ListBox1.Items.Count \ 2), (ListBox1.Items.Count - 1)}, Brushes.HotPink)
  28.  
  29.  
  30.  
  31.    ' Stores the brush color to paint
  32.    Dim ListBox_Color As Brush = Brushes.AliceBlue
  33.  
  34.    Private Enum Colorize_ListBox_Items As Short
  35.        Selected = 0
  36.        Non_Selected = 1
  37.        All = 2
  38.        None = 3
  39.    End Enum
  40.  
  41.    Private Sub Colorize_Item(ByVal ListBox As ListBox, _
  42.                              ByVal Items As Colorize_ListBox_Items, _
  43.                              ByVal Brush_Color As Brush)
  44.  
  45.        ' Stores the Enum value
  46.        ListBox.Tag = Items.ToString
  47.  
  48.        ' Stores the brush color
  49.        ListBox_Color = Brush_Color
  50.  
  51.        ListBox.Invalidate() ' Refresh changes
  52.  
  53.    End Sub
  54.  
  55.    Private Sub Colorize_Item(ByVal ListBox As ListBox, _
  56.                              ByVal Items As Integer(), _
  57.                              ByVal Brush_Color As Brush)
  58.  
  59.        ' Stores the index items
  60.        ListBox.Tag = String.Join(ChrW(Keys.Space), Items)
  61.  
  62.        ' Stores the brush color
  63.        ListBox_Color = Brush_Color
  64.  
  65.        ListBox.Invalidate() ' Refresh changes
  66.  
  67.    End Sub
  68.  
  69.    Private Sub ListBox_DrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs) _
  70.    Handles ListBox1.DrawItem
  71.  
  72.        e.DrawBackground()
  73.  
  74.        Select Case sender.tag
  75.  
  76.            Case Colorize_ListBox_Items.Selected.ToString ' Colorize Selected Items
  77.  
  78.                If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
  79.                    e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  80.                End If
  81.  
  82.            Case Colorize_ListBox_Items.Non_Selected.ToString ' Colorize Non-Selected Items
  83.  
  84.                If (e.State And DrawItemState.Selected) = DrawItemState.None Then
  85.                    e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  86.                End If
  87.  
  88.            Case Colorize_ListBox_Items.All.ToString ' Colorize all
  89.  
  90.                e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  91.  
  92.            Case Colorize_ListBox_Items.None.ToString ' Colorize none
  93.  
  94.                Dim DefaultColor As SolidBrush = New SolidBrush(ListBox.DefaultBackColor)
  95.                e.Graphics.FillRectangle(DefaultColor, e.Bounds)
  96.                DefaultColor.Dispose()
  97.  
  98.            Case Else ' Colorize at specific index
  99.  
  100.                If Not String.IsNullOrEmpty(sender.tag) _
  101.                AndAlso sender.tag.ToString.Split.Contains(e.Index.ToString) Then
  102.  
  103.                    e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  104.  
  105.                End If
  106.  
  107.        End Select
  108.  
  109.        Using b As New SolidBrush(e.ForeColor)
  110.            e.Graphics.DrawString(ListBox1.GetItemText(ListBox1.Items(e.Index)), e.Font, b, e.Bounds)
  111.        End Using
  112.  
  113.        e.DrawFocusRectangle()
  114.  
  115.    End Sub
  116.  
  117. #End Region
8220  Programación / .NET (C#, VB.NET, ASP) / Re: [C#] Cambiar color de un item [NO seleccionado] en un ListBox en: 14 Septiembre 2013, 05:32 am
Básicamente es lo que te ha comentado $Edu$, hacer la comparación inversa de como lo estés haciendo, pero un ListBox no contiene atributos para modificar lo que requieres. Sólamente puedes modificar el color de fondo dibujando manuálmente los items, y si encima quieres extender la funcionalidad para colorear ciertos Items eso requiere un poco más de código.

Yo te recomiendo que te olvides del ListBox y utilices un ListView, ya que se puede asemejar bastante a un ListBox si lo configuras corréctamente, y además puedes modificar el color de los item(s) que quieras sin necesidad de handlear los eventos de dibujo:





Código
  1.    Dim Random_Color As New Random ' No es necesario, pero lo usaré en este ejemplo para colorear de forma aleatoria.
  2.  
  3.    Private Sub Test() ' Handles MyBase.Load
  4.  
  5.        ' Selecciono la vista "Detalles"
  6.        ListView1.View = View.Details
  7.  
  8.        ' Agrego una columna
  9.        ListView1.Columns.Add("Items:")
  10.  
  11.        ' Agrego unos cuantos items
  12.        ListView1.Items.AddRange("A B C D E F".Split().Select(Function(x) New ListViewItem(x)).ToArray)
  13.  
  14.        ' Coloreo cada item de forma aleatoria:
  15.        For Each Item As ListViewItem In ListView1.Items
  16.            Item.BackColor = Color.FromArgb(Random_Color.Next(1, 999999999))
  17.        Next
  18.  
  19.    End Sub


Código:
Item.BackColor = Color

Así de facil.






Pero bueno, si prefieres hacerlo con un ListBox, aquí te muestro un ejemplo que hice en VB.NET:





Código
  1.    Public Class Form1
  2.  
  3.    ' Para seleccionar de forma rápida los items que quiero colorear
  4.    Private Enum Colorize_ListBox_Items As Short
  5.        Selected = 0
  6.        Non_Selected = 1
  7.        All = 2
  8.        None = 3
  9.    End Enum
  10.  
  11.    ' Aquí almaceno el color que usaré.
  12.    Dim ListBox_Color As Brush
  13.  
  14.    Private Sub Test() Handles MyBase.Shown
  15.  
  16.        ' Añado unos cuantos Items
  17.        ListBox1.Items.AddRange("A B C D E".Split())
  18.  
  19.        ' Selecciono un item
  20.        ListBox1.SelectedIndex = (ListBox1.Items.Count \ 2)
  21.  
  22.        ' Seteo el modo de dibujo manual
  23.        ListBox1.DrawMode = DrawMode.OwnerDrawFixed
  24.  
  25.        ' Coloreo el item seleccionado
  26.        Colorize_Item(ListBox1, Colorize_ListBox_Items.Selected, Brushes.YellowGreen)
  27.  
  28.        ' ...O coloreo los items NO seleccionados
  29.        Colorize_Item(ListBox1, Colorize_ListBox_Items.Non_Selected, Brushes.Red)
  30.  
  31.        ' ...O coloreo todos los items
  32.        Colorize_Item(ListBox1, Colorize_ListBox_Items.Non_Selected, Brushes.Yellow)
  33.  
  34.        ' ...O no coloreo ningun item
  35.        Colorize_Item(ListBox1, Colorize_ListBox_Items.None, Nothing)
  36.  
  37.        ' ...O coloreo algunos Items específicos
  38.        Colorize_Item(ListBox1, {0, (ListBox1.Items.Count \ 2), (ListBox1.Items.Count - 1)}, Brushes.HotPink)
  39.  
  40.    End Sub
  41.  
  42.    Private Sub Colorize_Item(ByVal ListBox As ListBox, _
  43.                              ByVal Items As Colorize_ListBox_Items, _
  44.                              ByVal Brush_Color As Brush)
  45.  
  46.        ' En la propiedad "Tag" almaceno el valor de la enumeración.
  47.        ListBox.Tag = Items.ToString
  48.  
  49.        ' Almaceno el color
  50.        ListBox_Color = Brush_Color
  51.  
  52.        ListBox.Invalidate() ' Refresco los cambios
  53.  
  54.    End Sub
  55.  
  56.    Private Sub Colorize_Item(ByVal ListBox As ListBox, _
  57.                              ByVal Items As Integer(), _
  58.                              ByVal Brush_Color As Brush)
  59.  
  60.        ' En la propiedad "Tag" almaceno los índices de los items.
  61.        ListBox.Tag = String.Join(ChrW(Keys.Space), Items)
  62.  
  63.        ' Almaceno el color
  64.        ListBox_Color = Brush_Color
  65.  
  66.        ListBox.Invalidate() ' Refresco los cambios
  67.  
  68.    End Sub
  69.  
  70.    Private Sub ListBox1_DrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs) _
  71.    Handles ListBox1.DrawItem
  72.  
  73.        e.DrawBackground()
  74.  
  75.        Select Case sender.tag
  76.  
  77.            Case Colorize_ListBox_Items.Selected.ToString ' Colorize Selected Items
  78.  
  79.                If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
  80.                    e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  81.                End If
  82.  
  83.            Case Colorize_ListBox_Items.Non_Selected.ToString ' Colorize Non-Selected Items
  84.  
  85.                If (e.State And DrawItemState.Selected) = DrawItemState.None Then
  86.                    e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  87.                End If
  88.  
  89.            Case Colorize_ListBox_Items.All.ToString ' Colorize all
  90.  
  91.                e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  92.  
  93.            Case Colorize_ListBox_Items.None.ToString ' Colorize none
  94.  
  95.                Dim DefaultColor As SolidBrush = New SolidBrush(ListBox.DefaultBackColor)
  96.                e.Graphics.FillRectangle(DefaultColor, e.Bounds)
  97.                DefaultColor.Dispose()
  98.  
  99.            Case Else ' Colorize at specific index
  100.  
  101.                If Not String.IsNullOrEmpty(sender.tag) _
  102.                AndAlso sender.tag.ToString.Split.Contains(e.Index.ToString) Then
  103.  
  104.                    e.Graphics.FillRectangle(ListBox_Color, e.Bounds)
  105.  
  106.                End If
  107.  
  108.        End Select
  109.  
  110.        Using b As New SolidBrush(e.ForeColor)
  111.            e.Graphics.DrawString(ListBox1.GetItemText(ListBox1.Items(e.Index)), e.Font, b, e.Bounds)
  112.        End Using
  113.  
  114.        e.DrawFocusRectangle()
  115.  
  116.    End Sub
  117.  
  118. End Class


Ahora es tu trabajo intentar traducirlo a C# (Hay cnvertidores online), o esperar la respuesta de NovLucker o alguno de los grandes de C#.


Saludos!
Páginas: 1 ... 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 [822] 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines