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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [80]
791  Programación / Programación Visual Basic / Re: Importar datos de una hoja de cálculo en: 29 Enero 2015, 18:04 pm
Veo que como yo, te has desesperado buscando...  :rolleyes:

Al final lo que voy ha hacer es crear un DataGridView, y cargar los datos en el mismo, ademas de poder modificarlos poder crear otro archivo excel o podificar el original


792  Programación / Programación Visual Basic / Re: Estoy buscando esto para vb6 (mouse move and click) en: 29 Enero 2015, 14:42 pm
Hola,
Para hacer eso necesitas recurrir a funciones  API de windows.

Para simular el evento del Clic del ratón has de llamar a la siguiente función:
Código
  1. Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

En este caso la constante que te interesa usar es:
Código
  1. Const MOUSEEVENTF_LEFTDOWN = &H2 '  botón izquierdo presionado

Para llamar a mouse_event y simular el CLIC del ratón se hace de la siguiente manera:

Código
  1. Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)


Para mover el cursor, es decir el puntero del ratón se usa la siguiente función:

Código
  1. Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
  2.  

Y la forma de llamarlo es:
Código
  1. Call SetCursorPos (X,Y)

Donde X e Y son las coordenadas en pixels del escritorio de windows. Así, si tu pantalla tiene una resolución de 1280x800 y quieres colocar el cursor justo en el centro de la pantalla pones:
Código
  1. Call SetCursorPos((1280/2), (800/2))


Ejemplo de programa

- Crea un módulo
- Un control PictureBox
- Un control Timer
- Un control CommandButton

En el módulo pega lo siguiente:
Código
  1. 'Definición de la API para mover el cursor
  2. Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
  3.  
  4.  
  5. 'Definición de la API para los eventos del ratón
  6. Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
  7. Const MOUSEEVENTF_MOVE = &H1 '  movimiento del mouse
  8. Const MOUSEEVENTF_LEFTDOWN = &H2 '  botón izquierdo presionado
  9. Const MOUSEEVENTF_LEFTUP = &H4 '  botón izquierdo soltado
  10. Const MOUSEEVENTF_RIGHTDOWN = &H8 '  botón derecho presionado
  11. Const MOUSEEVENTF_RIGHTUP = &H10 '  botón derecho soltado
  12. Const MOUSEEVENTF_MIDDLEDOWN = &H20 '  botón central presionado
  13. Const MOUSEEVENTF_MIDDLEUP = &H40 ' botón central soltado
  14. Const MOUSEEVENTF_ABSOLUTE = &H8000 '  movimiento absoluto
  15. Public Sub HacerClic()
  16. 'Simula el clic del boton izquierdo del ratón
  17. Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
  18. End Sub
  19.  
  20.  


En el Form pega lo siguiente:

Código
  1. 'Función API para determinar la posición de un control o formulario
  2. Private Type RECT
  3. Left As Long
  4. Top As Long
  5. Right As Long
  6. Bottom As Long
  7. End Type
  8. Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long
  9.  
  10.  
  11. Dim ColorTiza As Integer
  12. Dim PosPicture As RECT
  13. Dim r As Variant
  14. Dim X As Integer, Y As Integer
  15.  
  16. Private Sub Command1_Click()
  17. Timer1.Enabled = True
  18. End Sub
  19.  
  20. Private Sub Form_Load()
  21. ColorTiza = 0 'Color blanco por defecto al abrir el programa
  22. Timer1.Interval = 200
  23. 'Obtiene el centro del PictureBox
  24. Call GetWindowRect(Picture1.hWnd, PosPicture)
  25. X = PosPicture.Left + ((PosPicture.Right - PosPicture.Left) / 2)
  26. Y = PosPicture.Top + ((PosPicture.Bottom - PosPicture.Top) / 2)
  27.  
  28. 'Coloca el cursor en el centro del Picture
  29. Call SetCursorPos(X, Y)
  30.  
  31.  
  32. End Sub
  33.  
  34. Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  35. If Button = vbLeftButton Then
  36. Picture1.PSet (X, Y), QBColor(ColorTiza)
  37. End If
  38. End Sub
  39.  
  40. Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  41. If Button = vbLeftButton Then
  42. Picture1.DrawWidth = 5
  43. Picture1.Line -(X, Y), QBColor(ColorTiza)
  44. End If
  45. End Sub
  46.  
  47. Private Sub Timer1_Timer()
  48. Call GetWindowRect(Picture1.hWnd, PosPicture)
  49. r = (r + 0.5)
  50. X = X + Cos(Y) * r
  51. Y = Y + Sin(X) * r
  52.  
  53. 'Mueve el cursor
  54. Call SetCursorPos(X, Y)
  55. 'Simula el evento CLIC del ratón
  56. Call HacerClic
  57.  
  58. 'Para el proceso cuando el cursor se sale del control PictureBox
  59. If X > PosPicture.Right Or X < PosPicture.Left Then Timer1.Enabled = False
  60. If Y > PosPicture.Bottom Or Y < PosPicture.Top Then Timer1.Enabled = False
  61.  
  62. End Sub
  63.  

Saludos
793  Sistemas Operativos / Windows / Re: ¿como se puede quitar las correcciones de word? en: 29 Enero 2015, 11:42 am
Fácil  ;D
Haces clic sobre la palabra en cuestión con el botón DERECHO del ratón. Cuando se despliegue el menú, le das a 'Agregar al diccionario' y se quitará la raya roja.

Otra opción, sería acceder a "Herramientas/Opciones/[Ortografía y Gramática]" y desactivar la casilla "Revisar ortografía mientras escribe". Pero se entiende que no revisará más automáticamente la ortografía hasta que no actives de nuevo esta opción.

Esto es en Office 2003, no se como irá en 2010, si es tu caso.


794  Programación / Programación Visual Basic / Re: dibujar 3 puntos en un picturebox en: 28 Enero 2015, 19:03 pm
Hola,

Al decir tres puntos no especificas si lo quieres en un lugar concreto, de forma aleatoria, o bien los tres seguidos es decir "..."

Forma 1.
"Tres puntos seguidos ..." en VB6

Código
  1. With Picture1
  2. .AutoRedraw = True
  3. .Font = "Arial" 'tipo de fuente
  4. .Font.Size = 50 'tamaño de fuente
  5. .CurrentX = 200 'Posición 10 pixels de izquierda a derecha
  6. .CurrentY = 0 'Posición 10 pixels de arriba a abajo
  7. Picture1.Print "..."
  8. End With

Forma 1.
"Tres puntos seguidos ..." en VB.Net

Código
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.        PictureBox1.CreateGraphics.DrawString("...", New Font("Arial", 50, FontStyle.Bold, GraphicsUnit.Point, 2) _
  3.       , Brushes.Brown, 0, 0)
  4.    End Sub




Forma 2.
Esto dibuja tres puntos circulares de forma aleatoria dentro de un picture con VB. Net

Código
  1.    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.        Dim Lapiz As Object
  3.        Dim Grosor As Integer
  4.        Dim Color As Color
  5.        Dim PosicionX As Integer
  6.        Dim PosicionY As Integer
  7.        Grosor = 5 'Grosor del punto
  8.        Color = Color.HotPink 'Color del punto (rosa)
  9.        Lapiz = New Pen(Color, Grosor) 'Lapiz(pen) para pintar el punto
  10.  
  11.        PictureBox1.Refresh() 'Limpia el picture
  12.  
  13.        For I = 1 To 3
  14.            'Posición en el eje X, Y del punto de forma aleatoria
  15.            PosicionX = Int(Rnd() * PictureBox1.Width - 1) + 1 'obtiene una posición X dentro del picture
  16.            PosicionY = Int(Rnd() * PictureBox1.Height - 1) + 1 'obtiene una posición y dentro del picture
  17.  
  18.            'Dibuja el punto
  19.            PictureBox1.CreateGraphics.DrawEllipse(Lapiz, PosicionX, PosicionY, Grosor, Grosor)
  20.        Next I
  21.  
  22.    End Sub
795  Programación / Programación Visual Basic / Re: Importar datos de una hoja de cálculo en: 28 Enero 2015, 16:58 pm

Gracias  por la respuesta FranciskoAsdf  y no quiero ser quisquilloso... pero no es lo que busco.

El código que me has puesto es de Visual Basic 6.0 y como he explicado lo que quiero es hacerlo con Visual Basic 2010.  Que creo que también se le suele llamar VB.Net 2010

la función: OpenDatabase, no lo reconoce  VB2010, ya para empezar.

Y por último,  este código que me das, si no me equivoco es para acceder a una base de de datos *.mdb y no *.xls. Lo digo porque lo he probado en VB6 y me da error  3343, "No se reconoce el formato de base de datos..."

Saludos
796  Programación / Programación Visual Basic / Evitar que se ordenen la filas de DataGridView en VB2010 en: 28 Enero 2015, 16:32 pm
Hola

Después de mucho curiosear no encontré nada. Iba a preguntar, pero encontré la solución por mí mismo. Es la siguiente:


 
Código
  1. '//Se introducen los datos en el datagrid....
  2.  
  3. '//Desactivar 'reordenar las filas' al hacer clic en la cabecera de una columna
  4. For x = 0 To DataGridView1.ColumnCount - 1              
  5.      .Columns(x).SortModeDataGridViewColumnSortMode.NotSortable          
  6. Next x
  7.  


IMPORTANTE  :o: Debe introducirse DESPUÉS de introducir los datos en el datagrid. De lo contrario no funcionará, en cualquier caso, sólo en la primera columna.

Al poner "NotSortable" las cabeceras de las columnas no reaccionan al hacer clic, es decir no se comportan como botones.

Si quieres que las cabeceras hagan el efecto de clic (pero sin reordenar) entonces pones  "Programmatic"

Código
  1. For x = 0 To DataGridView1.ColumnCount - 1              
  2.      .Columns(x).SortModeDataGridViewColumnSortMode.Programmatic          
  3. Next x


Si quieres que NO reordene en una determinada columna  pones el índice de la columna en .columns(índice):


 DataGridView1.Columns(INDICE).SortModeDataGridViewColumnSortMode.NotSortable

ejemplo:

Código
  1. DataGridView1.Columns(0).SortModeDataGridViewColumnSortMode.NotSortable
  2.  

Espero que a álguien le sirva.
797  Programación / Programación Visual Basic / Importar datos de una hoja de cálculo en: 28 Enero 2015, 14:30 pm
Hola,
Antes de nada decir que antes usaba VB6 y he empezado a programar recientemente en VB2010.

Estoy transcribiendo un programa VB6 a VISUAL BASIC .NET 2010. No lo quiero convertir, puesto que quiero empezar desde el principio aprovechando las ventajas de vb2010. El programa creado con vb6, accedía a una hoja de cálculo Excel (*.xls)  de la siguiente manera (simplificada):


Importar referéncias:
'Microsoft DAO 3.51 Object Library"
'Microsoft ActiveX Data Objects 2.0 Library"


Código
  1. Dim SheetName As String
  2. Dim RecSet As ADODB.Recordset
  3.  
  4.  
  5. 'Abre la hoja de cálculo 01.xls
  6. With CreateObject("ADOX.Catalog")
  7.    .ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" _
  8.                      & "c:\01.xls';" _
  9.                      & "Extended Properties='Excel 8.0;HDR=yes'"
  10.    SheetName = .Tables(0).Name
  11.    Set RecSet = New ADODB.Recordset
  12.    Set RecSet.ActiveConnection = .ActiveConnection
  13. End With
  14. RecSet.Open "[" & SheetName & "]", , adOpenForwardOnly, adLockReadOnly, adCmdTable
  15.  
  16.  
  17. 'Lee el archivo
  18. RecSet.MoveFirst ' Se coloca al principio
  19. RecSet.MoveNext
  20. Valor = CStr(RecSet.Fields(1)) 'Obtiene un valor fila:1 y columna:1
  21.  
  22. RecSet.Close
  23.  

El caso es que llevo varios días buscando en la red y no consigo encontrar una forma clara de hacer lo mismo con vb2010. Porque yo no quiero acceder a todo el contenido, sino a una fila y columna concreta del archivo xls, según necesite.

Otra cosa que se me ha ocurrido es leer todo y meterlo en un DataGridView, para luego acceder a los datos desde el DataGridView.

Con los datos tengo que hacer cálculos matemáticos, por eso tengo que poder acceder a una información concreta de la tabla según necesite.

Espero que alguien me pueda ayudar  :P.

Saludos
Páginas: 1 ... 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [80]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines