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 - Eleкtro

#4911
@Tincopasan

Por favor, terminemos aquí de mezclar los temas de agradecimiento o desagradecimiento de los usuarios, entiendo que es algo que te desagrada, pero tú intención era debatir otro asunto que nada tiene que ver con eso.

Creo que en general te has alterado bastante al escribir todos los comentarios de este hilo por que te has desviado por varios caminos que poco tienen que ver... , te aseguro que por ser moderador yo no me considero con "poder" sobre el resto de humanos, ni de usuarios que visitan este foro, no miro a nadie por encima del hombro, y soy bastante meticuloso e imparcial en las decisiones que tomo, decisiones que debo tomar, y a veces son decisiones que obviamente no le pueden satisfacer a todo el mundo, cómo es el caso.

PERO LAS DECISIONES SE DEBEN RESPETAR.




@MCKSys

Cómo ya has comentado hablaremos por privado, solo me gustaría aclarar un detalle respecto a una cosa que se ha comentado en este hilo, la norma del código fuente.

Cómo todos sabemos, aparte de las normas generales dle foro (CAREN), los subforos tienen hilos con chincheta donde hay normas específicas para esa sección, que se han de cumplir por igual, y esto hace complejo recordar donde está cada cual...

He cometido el error de asumir que esa norma afectaba al subforo de Análisis y diseño de Malware... sinceramente ni me paré dos segundos a pensarlo, ahora que he comprobado que no es así, me resulta ilógico que siga sin existir esa norma para ese subforo, mientras que para el de Scripting si que existe, y al subforo de programación general le acabo de añadir dicha norma ...que tampoco existia.

Reconozco mi error respecto a eso, lo siento, pero me parece un error pequeño, ya que de todas formas existe una norma sobre la ética, y yo, personalmente, creo que la mayoría de personas que lean esto estarán de acuerdo condmigo, no considero ético publicar una hack-tool o herramienta relacionada con el análisis de malware, sin publicar el código fuente.

Saludos!
#4912
Cita de: dimitrix en 28 Junio 2015, 03:04 AMY I don't know, me he puesto a pensar, si es infantil hacer algún plan que no sea tan directo o si por el contrario (o a la par) lo infantil es tener que poner el pretexto del alcohol para acabar en la cama, con lo fácil que es decir "Cenamos y foll...".

La mayoría de mujeres no quieren parecer promiscuas a pesar de que lo son, prefieren disimular absurdamente con pretextos de ese tipo para convertir el tema sexual en un puzzle a resolver o un tabboo antes que parecer facilonas, ¿una española diciendo de ir a fo... directamente?, no, a menos que sea muy muy golfa no, también están las tias que dicen muchas cosas de ese tipo y luego na de na son unas santas (no se si debería llamarlas calienta po...), pues esto es al revés, ya deberías saberlo por lo que cuentas que tienes éxito entre las españolas entonces es de suponer que esto mismo ya te habrá pasado con otras españolas por que practicamente el 99,9% de ellas tinenen esa manera incoherente de pensar para preservar una falsa imagen de monja o mojigata.

Saludos!
#4913
Una refactorización de una Class que ya compartí para apagar, reiniciar, o desloguear un equipo local o en red.

Diagrama de Class:


Ejemplo de uso:
Código (vbnet) [Seleccionar]
   Sub Test()

       ' Restart the current computer in 30 seconds and wait for applications to close.
       ' Specify that the restart operation is planned because a consecuence of an installation.
       Dim success As Boolean =
           SystemRestarter.Restart("127.0.0.1", 30, "System is gonna be restarted quickly, go save all your data now...!",
                                   SystemRestarter.ShutdownMode.Wait,
                                   SystemRestarter.ShutdownReason.MajorOperatingSystem Or
                                   SystemRestarter.ShutdownReason.MinorInstallation,
                                   SystemRestarter.ShutdownPlanning.Planned)

       Console.WriteLine(String.Format("Restart operation initiated successfully?: {0}", CStr(success)))

       ' Abort the current operation.
       If success Then
           Dim isAborted As Boolean = SystemRestarter.Abort()
           Console.WriteLine(String.Format("Restart operation aborted   successfully?: {0}", CStr(isAborted)))
       Else
           Console.WriteLine("There is any restart operation to abort.")
       End If
       Console.ReadKey()

       ' Shutdown the current computer instantlly and force applications to close.
       ' ( When timeout is '0' the operation can't be aborted )
       SystemRestarter.Shutdown(Nothing, 0, Nothing, SystemRestarter.ShutdownMode.ForceSelf)

       ' LogOffs the current user.
       SystemRestarter.LogOff(SystemRestarter.LogOffMode.Wait)

   End Sub


Código fuente:
http://pastebin.com/FyH8U1ip
http://pastebin.com/3n9TbXB0 (corregido)

Fix:
El primer código no funcionaba, ya que al actualizar el código sin querer me equivoqué al escribir esto, lo dupliqué:
Citar
Código (vbnet) [Seleccionar]
Private Shared ReadOnly privilegeNameOfShutdown As String = "SeRemoteShutdownPrivilege"
Private Shared ReadOnly privilegeNameOfRemoteShutdown As String = "SeRemoteShutdownPrivilege"

Ya está corregido, resubido y testeado.
#4914
Scripting / Re: [Perl] Error al enviar Mail
27 Junio 2015, 23:39 PM
Cita de: YuseTist en 27 Junio 2015, 23:27 PMSupuestamente habrá que modificar el stmp no?

Lee el F.A.Q y/o la referencia y descripción del módulo antes de descargar y probar nada.

Cita de: http://search.cpan.org/~mivkovic/Mail-Sendmail-0.79/Sendmail.pmLIMITATIONS

No suport for the SMTP AUTH extension.

The SMTP server has to be set manually in Sendmail.pm or in your script, unless you have a mail server on localhost.

http://search.cpan.org/~mivkovic/Mail-Sendmail-0.79/Sendmail.pm




Cita de: YuseTist en 27 Junio 2015, 23:27 PM¿Y el stmp de gmail?

puerto SMTP = 587
SSL activado

también puedes usar este módulo que ya parece hacer esa tarea de forma automatizada:
http://search.cpan.org/~peco/Email-Send-SMTP-Gmail-0.1.1/lib/Email/Send/SMTP/Gmail.pm

Saludos!
#4915
Cita de: kub0x en 27 Junio 2015, 21:08 PMSolo concierne a la aplicación, vale pensé que era global.

Si te refieres a que si había implementado algún Hook para interceptar la eliminación de archivos de manera global o algo parecido... pues no.

En cambio, si lo dices por esto:
CitarNotifies the system of an event that an application has performed. An application should use this function if it performs an action that may affect the Shell.

...entonces no te dejes engañar confundir por lo que pone, si que afecta de manera global, por ejemplo si eliminas un archivo desde la consola de Windows y quieres refrescar los cambios de la carpeta donde se eliminó, puedes hacerlo llamando a esa función desde tu app.

Saludos!
#4916
Gracias por comentar.

Cita de: kub0x en 27 Junio 2015, 20:23 PM¿a caso estás hookeando algun módulo para que te chive que carpetas (por ejemplo) se han creado en X directorio?

Esos métodos de notificación son un simple wrapper de la función SHChangeNotify
Cita de: https://msdn.microsoft.com/en-us/library/windows/desktop/bb762118%28v=vs.85%29.aspxNotifies the system of an event that an application has performed. An application should use this function if it performs an action that may affect the Shell.

Los métodos de notificación están ahí para que cada uno quiera darle los propósitos que uno quiera, es útil por ejemplo al registrar una asociación de archivo, o tras modificar los iconos del sistema, o si tienes la ventana del explorer abierta en "Mi PC" y quieres refrescar los cambios de espacio libre en los labels, o si hookeas alguna función que crea carpetas y quieres notificar al sistema la carpeta creada por algún motivo cómo has mencionado, simplemente están ahí para cualquier uso.

Saludos!
#4917

ACTUALIZADO EL 27/JUNIO/2015




• ¿ Para que sirve esto ?

EnvironmentUtil.vb es una Class con un conjunto de Classes hijas que cumplen diversas funcionalidades relacionadas con el entorno de Windows, funcionalidades que mediante la librería de classes de .NET Framework no se pueden llevar a cabo, y en algunos casos para simplificar a éstas,
permite modificar muchos parámetros del sistema cómo por ejemplo la velocidad del mouse o del teclado, así cómo desde poder registrar una variable de entorno en el sistema, modificar el wallpaper del escritorio, mostrar u ocultar el escritorio o la barra de tareas, anclar o desanclar items en la barra de tareas o el menú de inicio, hasta iterar las ventanas del explorador de Windows o notificar ciertos eventos del sistema (y del registro) para afectar los cambios.

En resumen, sirve para todo un poco, ya que hace un poco de casi todo, pero obviamente le faltan muchísimas posibles funcionalidades adicionales.

La Class consta de más de 8.000 lineas de código, esto hace un poco compleja la manutención y depuración del código, es posible que haya algún bug que no he detectado todavía, sean tolerantes con esto y sean libres de reportarme cualquier problema para poder corregirlo.

Acepto cualquier tipo de crítica y/o petición para añadirle nuevas funcionalidades a este proyecto, ya que a pesar de ser tanto código lo cierto es que por ahora cumple poquitas funciones, si les ha gustado entonces dejen su omentario y no tienen más que decirme que característica les gustaría que implementase en esta class ...la única condición es que la característica debe estar relacionada con la temática de la Class :).




• ¿ Cómo lo hago funcionar ?

La Class contiene varias classes hijas cuyo nombre ya da una pista sobre el tipo de funcionalidades que se pueden encontrar:

  • EnvironmentUtil.EnvironmentVariables
  • EnvironmentUtil.FileSystem
  • EnvironmentUtil.OS
  • EnvironmentUtil.Programs
  • EnvironmentUtil.Shell
  • EnvironmentUtil.Shell.Desktop
  • EnvironmentUtil.Shell.Explorer
  • EnvironmentUtil.Shell.StartMenu
  • EnvironmentUtil.Shell.TaskBar
  • EnvironmentUtil.Theming

Algunas funcionalidades requieren que se añada algunas referencias al proyecto:

  • Microsoft Shell Controls And Automation (COM) (Interop.SHDocVw.dll)
  • Microsoft Internet Controls (COM) (Interop.Shell32.dll)

La Class se puede utilizar directamente copiando todo el código en una nueva Class, o también se puede compilar el código en una librería dinámica dll.

A cada miembro le añadí documentación XML para IntelliSense, para entender cual es el propósito de cada miembro, y cómo hacerlo funcionar explicando cada parámetro.

Además, abajo puedne ver el diagrama de Classes, y además también, en la cabecera de la Class, pueden encontrar una región que contiene un sumario de los miembros públicos de cada clase hija.

Importante:
Debo mencionar que yo he compartido la class "compactada" así muy "arrejuntada" o cómo quieran llamarlo pero solamente lo he hecho para que sea facil su distribuición en un único archivo.
Si van a usar/compilar este proyecto, entonces lo correcto sería separar las clases hijas en distintos archivos ...sobre todo para que el mantenimiento no se vuelva una pesadilla entre tantos miles de lineas de código.





• Código fuente:
http://pastebin.com/2WW6j3h8




• Lista de propiedades, métodos y funciones públicas (y los types que acepta cada overload)

Código (vbnet) [Seleccionar]
#Region " Public Members Summary "

#Region " Child Util-Classes "

EnvironmentUtil.EnvironmentVariables
EnvironmentUtil.FileSystem
EnvironmentUtil.OS
EnvironmentUtil.Programs
EnvironmentUtil.Shell
EnvironmentUtil.Shell.Desktop
EnvironmentUtil.Shell.Explorer
EnvironmentUtil.Shell.StartMenu
EnvironmentUtil.Shell.TaskBar
EnvironmentUtil.Theming

#End Region

#Region " Properties "

EnvironmentUtil.EnvironmentVariables.CurrentVariables(EnvironmentUtil.EnvironmentUser) As ReadOnlyCollection(Of EnvironmentUtil.EnvironmentVariables.EnvironmentVariableInfo)
EnvironmentUtil.OS.ActiveWindowTrackingEnabled As Boolean
EnvironmentUtil.OS.ActiveWindowTrackingTimeout As UShort
EnvironmentUtil.OS.BeepEnabled As Boolean
EnvironmentUtil.OS.BlockSendInputResetsEnabled As Boolean
EnvironmentUtil.OS.BorderMultiplierFactor As Integer
EnvironmentUtil.OS.CaretWidth As Integer
EnvironmentUtil.OS.CleartypeEnabled As Boolean
EnvironmentUtil.OS.ClientAreaAnimationEnabled As Boolean
EnvironmentUtil.OS.ComboBoxAnimationEnabled As Boolean
EnvironmentUtil.OS.CurrentArchitecture() As EnvironmentUtil.OS.Architecture
EnvironmentUtil.OS.CursorShadowEnabled As Boolean
EnvironmentUtil.OS.DoubleClickSize As Size
EnvironmentUtil.OS.DoubleClickTime As Integer
EnvironmentUtil.OS.DragFullWindowsEnabled As Boolean
EnvironmentUtil.OS.DragSize As Size
EnvironmentUtil.OS.DropShadowEnabled As Boolean
EnvironmentUtil.OS.FlatMenuEnabled As Boolean
EnvironmentUtil.OS.FocusBorderSize As Size
EnvironmentUtil.OS.FontSmoothingContrast As Integer
EnvironmentUtil.OS.FontSmoothingEnabled As Boolean
EnvironmentUtil.OS.ForegroundFlashCount As UShort
EnvironmentUtil.OS.ForegroundLockTimeout As UShort
EnvironmentUtil.OS.HotTrackingEnabled As Boolean
EnvironmentUtil.OS.HungAppTimeout As Integer
EnvironmentUtil.OS.IconSpacing As Size
EnvironmentUtil.OS.IconTitleWrappingEnabled As Boolean
EnvironmentUtil.OS.KeyboardDelay As Integer
EnvironmentUtil.OS.KeyboardSpeed As Integer
EnvironmentUtil.OS.ListBoxSmoothScrollingEnabled As Boolean
EnvironmentUtil.OS.MenuAccessKeysUnderlined As Boolean
EnvironmentUtil.OS.MenuAnimationEnabled As Boolean
EnvironmentUtil.OS.MenuFadeEnabled As Boolean
EnvironmentUtil.OS.MenuShowDelay As Integer
EnvironmentUtil.OS.MessageDuration As Long
EnvironmentUtil.OS.MouseButtonsSwapEnabled As Boolean
EnvironmentUtil.OS.MouseClickLockEnabled As Boolean
EnvironmentUtil.OS.MouseClickLockTime As Integer
EnvironmentUtil.OS.MouseHoverSize As Size
EnvironmentUtil.OS.MouseHoverTime As Integer
EnvironmentUtil.OS.MouseSonarEnabled As Boolean
EnvironmentUtil.OS.MouseSpeed As Integer
EnvironmentUtil.OS.MouseTrailAmount As Integer
EnvironmentUtil.OS.MouseVanishEnabled As Boolean
EnvironmentUtil.OS.MouseWheelScrollLines As Integer
EnvironmentUtil.OS.OverlappedContentEnabled As Boolean
EnvironmentUtil.OS.PopupMenuAlignment As LeftRightAlignment
EnvironmentUtil.OS.ScreensaverEnabled As Boolean
EnvironmentUtil.OS.ScreensaverPath As String
EnvironmentUtil.OS.ScreensaverTimeout As Integer
EnvironmentUtil.OS.ScreensaveSecureEnabled As Boolean
EnvironmentUtil.OS.SelectionFadeEnabled As Boolean
EnvironmentUtil.OS.SnapToDefaultEnabled As Boolean
EnvironmentUtil.OS.SystemDateTime As Date
EnvironmentUtil.OS.SystemLanguageBarEnabled As Boolean
EnvironmentUtil.OS.TitleBarGradientEnabled As Boolean
EnvironmentUtil.OS.ToolTipAnimationEnabled As Boolean
EnvironmentUtil.OS.UIEffectsEnabled As Boolean
EnvironmentUtil.OS.WaitToKillAppTimeout As Integer
EnvironmentUtil.OS.WaitToKillServiceTimeout As Integer
EnvironmentUtil.OS.WheelscrollChars As Integer
EnvironmentUtil.Programs.DefaultWebBrowser() As String
EnvironmentUtil.Programs.IExplorerVersion() As Version
EnvironmentUtil.Shell.Explorer.ExplorerWindows As ReadOnlyCollection(Of ShellBrowserWindow)
EnvironmentUtil.Shell.Explorer.ExplorerWindowsFolders As ReadOnlyCollection(Of Shell32.Folder2)
EnvironmentUtil.Shell.TaskBar.ClassName() As String
EnvironmentUtil.Shell.TaskBar.Hwnd() As Intptr
EnvironmentUtil.Theming.AeroEnabled() As Boolean
EnvironmentUtil.Theming.AeroSupported() As Boolean
EnvironmentUtil.Theming.CurrentTheme() As EnvironmentUtil.Theming.ThemeInfo
EnvironmentUtil.Theming.CurrentWallpaper() As String
EnvironmentUtil.Theming.WallpaperAsJpegIsSupported() As Boolean
EnvironmentUtil.Theming.WallpaperStylesFitFillAreSupported() As Boolean

#End Region

#Region " Types "

EnvironmentUtil.EnvironmentVariables.EnvironmentVariableInfo
EnvironmentUtil.Theming.ThemeInfo

#End Region

#Region " Functions "

EnvironmentUtil.EnvironmentVariables.GetValue(EnvironmentUtil.EnvironmentUser, String, Boolean) As String
EnvironmentUtil.EnvironmentVariables.GetVariableInfo(EnvironmentUtil.EnvironmentUser, String, Boolean) As EnvironmentUtil.EnvironmentVariables.EnvironmentVariableInfo
EnvironmentUtil.FileSystem.GetItemVerbs(String) As IEnumerable(Of FolderItemVerb)
EnvironmentUtil.FileSystem.ItemNameIsInvalid(String) As Boolean
EnvironmentUtil.FileSystem.ItemNameOrPathIsInvalid(String) As Boolean
EnvironmentUtil.FileSystem.ItemPathIsInvalid(String) As Boolean

#End Region

#Region " Methods "

EnvironmentUtil.EnvironmentVariables.RegisterVariable(EnvironmentUtil.EnvironmentUser, EnvironmentUtil.EnvironmentVariables.EnvironmentVariableInfo, Boolean)
EnvironmentUtil.EnvironmentVariables.RegisterVariable(EnvironmentUtil.EnvironmentUser, String, String, Boolean)
EnvironmentUtil.EnvironmentVariables.UnregisterVariable(EnvironmentUtil.EnvironmentUser, String, Boolean)
EnvironmentUtil.FileSystem.InvokeItemVerb(String, String)
EnvironmentUtil.OS.NotifyDirectoryAttributesChanged(String)
EnvironmentUtil.OS.NotifyDirectoryCreated(String)
EnvironmentUtil.OS.NotifyDirectoryDeleted(String)
EnvironmentUtil.OS.NotifyDirectoryRenamed(String, String)
EnvironmentUtil.OS.NotifyDriveAdded(String, Boolean)
EnvironmentUtil.OS.NotifyDriveRemoved(String)
EnvironmentUtil.OS.NotifyFileAssociationChanged()
EnvironmentUtil.OS.NotifyFileAttributesChanged(String)
EnvironmentUtil.OS.NotifyFileCreated(String)
EnvironmentUtil.OS.NotifyFileDeleted(String)
EnvironmentUtil.OS.NotifyFileRenamed(String, String)
EnvironmentUtil.OS.NotifyFreespaceChanged(String)
EnvironmentUtil.OS.NotifyMediaInserted(String)
EnvironmentUtil.OS.NotifyMediaRemoved(String)
EnvironmentUtil.OS.NotifyNetworkFolderShared(String)
EnvironmentUtil.OS.NotifyNetworkFolderUnshared(String)
EnvironmentUtil.OS.NotifyUpdateDirectory(String)
EnvironmentUtil.OS.NotifyUpdateImage()
EnvironmentUtil.OS.ReloadSystemCursors()
EnvironmentUtil.OS.ReloadSystemIcons()
EnvironmentUtil.OS.RunDateTime()
EnvironmentUtil.OS.RunExecuteDialog()
EnvironmentUtil.OS.RunFindComputer()
EnvironmentUtil.OS.RunFindFiles()
EnvironmentUtil.OS.RunFindPrinter()
EnvironmentUtil.OS.RunHelpCenter()
EnvironmentUtil.OS.RunSearchCommand()
EnvironmentUtil.OS.RunTrayProperties()
EnvironmentUtil.OS.RunWindowsSecurity()
EnvironmentUtil.OS.RunWindowSwitcher()
EnvironmentUtil.Shell.Desktop.CascadeWindows()
EnvironmentUtil.Shell.Desktop.Hide()
EnvironmentUtil.Shell.Desktop.Show()
EnvironmentUtil.Shell.Desktop.TileWindowsHorizontally()
EnvironmentUtil.Shell.Desktop.TileWindowsVertically()
EnvironmentUtil.Shell.Desktop.ToggleState()
EnvironmentUtil.Shell.Explorer.AddFileToRecentDocs(String)
EnvironmentUtil.Shell.Explorer.RefreshWindows()
EnvironmentUtil.Shell.StartMenu.PinItem(String)
EnvironmentUtil.Shell.StartMenu.UnpinItem(String)
EnvironmentUtil.Shell.TaskBar.Hide(Boolean)
EnvironmentUtil.Shell.TaskBar.PinItem(String)
EnvironmentUtil.Shell.TaskBar.Show(Boolean)
EnvironmentUtil.Shell.TaskBar.UnpinItem(String)
EnvironmentUtil.Theming.RemoveDesktopWallpaper()
EnvironmentUtil.Theming.SetDesktopWallpaper(String, EnvironmentUtil.Theming.WallpaperStyle)
EnvironmentUtil.Theming.SetSystemCursor(String, EnvironmentUtil.Theming.CursorType)

#End Region

#End Region


• Diagrama de Classes:













#4919
Cita de: Zitox en 25 Junio 2015, 22:07 PMAhora quiero cambiar eso y lo que quiero hacer es que, lea las pulsaciones del teclado, y las muestre en un textbox o listbox.

1. ¿Dentro, o fuera de la ventana de la aplicación?.

2. ¿Tecnología Windows Forms, o WPF?.

Doy por entendido que pretendes capturar las pulsaciones del teclado de manera global, ya que la app no parece ética... y... ¿donde está tú código?, aquí no se hacen tareas.

Necesitarás crear un Hook de bajo nivel del teclado, no es muy complejo, pero si tedioso, ya que necesitasrás P/Invokear bastante y si no te documentas bien sobre las funciones y el callback del teclado te puedes perder un poco.

Aparte de eso, si quieres que sea perfecto también necesitarías obtener y aplicar el layout del teclado actual (para interceptar correctamente teclas cómo la Ç o la Ñ) e implementar tu propia lógica con ello, e identificar los modificadores de tecla, que aparte de con la WinAPI, también los puedes identificar con las dos classes de WPF que menciono al final del todo de este post.

Te indico más o menos lo necesario para desarrollar un keylogger normalito:

Funciones:
SetWindowsHookEx + WH_KEYBOARD_LL Hook Type
CallNextHookEx
UnhookWindowsHookEx

Estructuras:
KBDLLHOOKSTRUCT

Callbacks/Delegados:
KeyboardProc

Mensajes de ventana:
WM_KEYDOWN
WM_KEYUP
WM_SYSKEYDOWN
WM_SYSKEYUP

Utilidades adicionales (que puedes usar en WinForms también):
System.Windows.Input.KeyInterop Class (para convertir un código de tecla virtual a tecla, y viceversa)
System.Windows.Input.KeyBoard Class (sustituye al P/Invoking de varias funciones como la mencionada en el comentario de arriba, GetAsyncKeyState, y tiene otros miembros muy útiles, la class Input en general)

Tienes faena :xD, en realidad te costaría mucho más aprenderlo, que poner en práctica lo aprendido, no es dificil y además con todos los ejemplos que puedes encontrar por Google, ánimo...

PD: Aparte hay una técnica mejor que la tradicional, RAWINPUT (que requieren gran cantidad de P/Invoking también), pero he preferido detallar la tecnica del hooking ya que te resultará más sencilla que esto:
About Raw Input

CitarThe raw input model is different from the original Windows input model for the keyboard and mouse. In the original input model, an application receives device-independent input in the form of messages that are sent or posted to its windows, such as WM_CHAR, WM_MOUSEMOVE, and WM_APPCOMMAND. In contrast, for raw input an application must register the devices it wants to get data from. Also, the application gets the raw input through the WM_INPUT message.

There are several advantages to the raw input model:

   An application does not have to detect or open the input device.
   An application gets the data directly from the device, and processes the data for its needs.
   An application can distinguish the source of the input even if it is from the same type of device. For example, two mouse devices.
   An application manages the data traffic by specifying data from a collection of devices or only specific device types.
   HID devices can be used as they become available in the marketplace, without waiting for new message types or an updated OS to have new commands in WM_APPCOMMAND.

Saludos!
#4920
Cita de: zonahurbana en 26 Junio 2015, 08:00 AM¿Y si compilo para x86 será compatible tanto para windows de 32 como 64 bits?

Si, un S.O de 64 Bits puede correr aplicaciones de 32 Bits.




Cita de: zonahurbana en 26 Junio 2015, 08:00 AMRespecto a modificar la arquitectura, por el contrario, no debería hacerlo, ¿verdad?

En tu caso no es necesario modificarla. deberías compilar en AnyCpu o en x86.




Cita de: zonahurbana en 26 Junio 2015, 08:00 AMUsted anteriormente comentó que si es de x64 no detecta correctamente las excepciones.

En conclusión, VB sí detecta las excepciones que ocurren y que no son controladas, pero no lo hace si dichas excepciones ocurren en el evento Load.

No dije eso exactamente, lo que intenté explicarte es que debido a la naturaleza por parte de cómo el compiler trabaja durante ese paso específico y bajo x64, si añades código "inseguro" en el método suscrito al evento Form.Load y se produce una excepción, aunque la exepción se intercepte internamente, no te saldrá ningún mensaje de error en Visual Studio, y con eso pretendía que entendieras que al hacer lo que estabas haciendo, estabas siguiendo una mala práctica que debes evitar.

De todas formas cabe mencionar que cuando eso ocurre, la linea de la instrucción se resaltará (se eligirá esa linea aunque no aparezca ningún mensaje de error), y siempre puedes revisar el call stack manualmente para analizar lo ocurrido e intentar depurarlo.

Pero simplemente no uses ese evento Form.Load para añadir código de ese tipo, usa el evento Form.Shown por ejemplo, cómo ya dije.




Cita de: zonahurbana en 26 Junio 2015, 08:00 AMPD: He creado una clase Conexion para usarla en todo lo referente a consultar/ejecutar operaciones sobre una BD en SqlServer. Tengo algunas preguntas sobre qué es lo más recomendable, creo que haré un nuevo hilo para ello.

No me manejo con SQL, pero espero que puedas resolver el problema que tengas.

Saludos!