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

#3691
Debes declarar bastantes más definiciones de la WinAPI para poder identificar la ventana objetivo a la que pretendes enviar la pulsación del mouse, y las dimensiones/rectángulo de dicha ventana para saber en que punto en concreto de la pantalla realizar el "click". Si por lo contrario ya conoces el punto exacto donde realizar el "click", entonces explica que problema encuentras (y si se trata de un videojuego online).

Aquí tienes la referencia online de las funciones implicadas para lo que quieres hacer (Findwindow, FindWindowEx, EnumChildwindows, GetWindowRect, etc):

Hay muchísima información, artículos y extensos ejemplos sobre ello que puedes encontrar en los resultados de Google, los códigos ya los encontrarás hechos y en C#, intenta buscar un poco.

Por lo general deberías enumerar los elementos de la UI, pero para evitar y simplificar esa tarea siempre puedes utilizar herramientas como "Microsoft Inspect":




De todas formas, estás utilizando una metodología deprecada desde hace muchos años (mouse_event), aunque te servirá igualmente y sin darte ningún problema, pero quizás en el futuro quieras considerar implementar las definiciones de la API "Raw Input":
(en mi API gratuita "ElektroKit" puedes encontrar todas las definiciones necesarias y ejemplos de uso, pero en Vb.Net)

Aparte de lo ya mencionado, y dependiendo de cuales sean tus verdaderas intenciones, quizás no deba ser necesario recurrir al código no administrado, por que siempre puedes utilizar el framework de Microsoft UI Automation para inspeccionar los elementos de cualquier interfáz gráfica para obtener toda la información de cualquier ventana de la UI, y realizar acciones como por ejemplo invocar un control ...lo que sería una simulación de "click" sobre un control.
(también puedes aplicar esta metodología bajo tecnología WindowsForms, solo debes referenciar los ensamblados relacionados con WPF y UI Automation)

Saludos
#3693
Hola.

Como poder, podría hacerlo, pero es bastante desagradable invertir tiempo en el desarrollo de un código para no recibir ni un miserable "gracias", esto obviamente no lo digo por ti, sino por el usuario al que iba dirigido el código de arriba.

Aparte, no es solo por eso, sino que además no veo que hayas mostrado ningún código donde lo hayas intentado hacer por ti mismo, ten en cuenta que aquí no estamos para regalar las tareas ya hechas a nadie, sino para ayudar en los obstáculos para que al final puedas lograr el objetivo por ti mismo.

De todas formas, creeme lo siguiente que te voy a decir, es una completa pérdida de tiempo llevarlo a cabo en una herramienta tan limitada como Batch, hacerlo supone muchas trabas (y pereza) por tiempo invertido y tediosas limitaciones, y conseguirlo supone muchas fisuras que no se pueden controlar correctamente en caso de posible error de cualquier tipo debido a las limitaciones del lenguaje una vez mas.

En cualquier otro lenguaje podrías elaborar un sofisticado algoritmo de búsqueda de archivos, filtrado por fechas y exclusión en 5-10 minutos (bueno, más tiempo si no tienes conocimientos previos de dicho lenguaje), no pierdas el tiempo con Batch ni pidiendo que te regalen el código...

Saludos.
#3694
Con el uso de la interfáz Win32 que mencioné en el comentario anterior, esto sería una implementación orientada a las páginas del panel de control de Windows 10, utilizando la siguiente enumeración para hacerlo más amistoso en tiempo de diseño:

(yo escogí una Enum, pero podriamos usar un diccionario o lo que más nos guste para darle otro enfoque distinto de usabilidad al código ...claro está)

Código (vbnet) [Seleccionar]
   Public Enum ControlPanelItems As Integer
       ActionCenter
       ActionCenter_ArchivedMessages
       ActionCenter_AutomaticMaintenance
       ActionCenter_ProblemReportingSettings
       ActionCenter_ProblemReports
       ActionCenter_ReliabilityMonitor
       AdministrativeTools
       AutoPlay
       BiometricDevices
       BitLockerDriveEncryption
       ColorManagement
       CredentialManager
       CredentialManager_WindowsCredentials
       DateAndTime
       DateAndTime_Additionalclocks
       DefaultPrograms
       DefaultPrograms_SetAssociations
       DefaultPrograms_SetDefaultPrograms
       DeviceManager
       DevicesAndPrinters
       Display
       Display_ScreenResolution
       EaseOfAccessCenter
       EaseOfAccessCenter_GetRecommendationsToMakeYourComputerEasierToUse_Cognitive
       EaseOfAccessCenter_GetRecommendationsToMakeYourComputerEasierToUse_Eyesight
       EaseOfAccessCenter_MakeTheComputerEasierToSee
       EaseOfAccessCenter_MakeTheKeyboardEasierToUse
       EaseOfAccessCenter_MakeTheMouseEasierToUse
       EaseOfAccessCenter_SetUpFilterKeys
       EaseOfAccessCenter_UseTextOrVisualAlternativesForSounds
       EaseOfAccessCenter_UseTheComputerWithoutADisplay
       EaseOfAccessCenter_UseTheComputerWithoutAMouseOrKeyboard
       FamilySafety
       FamilySafety_ChooseAUserAndSetUpFamilySafety
       FileHistory
       FolderOptions
       Fonts
       HomeGroup
       IndexingOptions
       Infrared
       InternetOptions
       InternetOptions_Advanced
       InternetOptions_Connections
       InternetOptions_Content
       InternetOptions_Privacy
       InternetOptions_Programs
       InternetOptions_Security
       ISCSIInitiator
       ISNSServer
       Keyboard
       Language
       LocationSettings
       Mouse
       Mouse_Hardware
       Mouse_PointerOptions
       Mouse_Pointers
       Mouse_Wheel
       MPIOConfiguration
       NetworkAndSharingCenter
       NetworkAndSharingCenter_AdvancedSharingSettings
       NetworkAndSharingCenter_MediaStreamingOptions
       NotificationAreaIcons
       PenAndTouch
       PenAndTouch_Flicks
       PenAndTouch_Handwriting
       Personalization
       Personalization_ColorAndAppearance
       Personalization_DesktopBackground
       PhoneAndModem
       PowerOptions
       PowerOptions_EditPlanSettings
       PowerOptions_SystemSettings
       ProgramsAndFeatures
       ProgramsAndFeatures_InstalledUpdates
       Recovery
       Region
       Region_Administrative
       Region_Location
       RemoteAppAndDesktopConnections
       Sound
       SpeechRecognition
       StorageSpaces
       SyncCenter
       System
       TabletPCSettings
       TaskbarAndNavigation
       Troubleshooting
       Troubleshooting_History
       TSAppInstall
       UserAccounts
       WindowsAnytimeUpgrade
       WindowsDefender
       WindowsFirewall
       WindowsFirewall_AllowedApps
       WindowsMobilityCenter
       WindowsToGo
       WindowsUpdate
       WindowsUpdate_ChangeSettings
       WindowsUpdate_ViewUpdateHistory
       WorkFolders
   End Enum


Ahora solo debemos crear un método como este de aquí abajo donde controlar el valor de la enumeración que le pasemos a dicho método:

Código (vbnet) [Seleccionar]
   Public NotInheritable Class ControlPanelUtil

       <DebuggerNonUserCode>
       Private Sub New()
       End Sub

       ''' <summary>
       ''' Opens the Control Panel.
       ''' </summary>
       <DebuggerStepThrough>
       Public Shared Sub Open()
           ControlPanel.OpenControlPanelItem(Nothing, Nothing)
       End Sub

       ''' <summary>
       ''' Opens a Control Panel Item.
       ''' </summary>
       <DebuggerStepThrough>
       Public Shared Sub Open(ByVal item As ControlPanelItems)

           Select Case item

               Case ControlPanelItems.ActionCenter
                   ControlPanel.OpenControlPanelItem("Microsoft.ActionCenter", Nothing)

               Case ControlPanelItems.ActionCenter_ArchivedMessages
                   ControlPanel.OpenControlPanelItem("Microsoft.ActionCenter", "pageResponseArchive")

               Case ControlPanelItems.ActionCenter_AutomaticMaintenance
                   ControlPanel.OpenControlPanelItem("Microsoft.ActionCenter", "MaintenanceSettings")

               Case ControlPanelItems.ActionCenter_ProblemReportingSettings
                   ControlPanel.OpenControlPanelItem("Microsoft.ActionCenter", "pageSettings")

               Case ControlPanelItems.ActionCenter_ProblemReports
                   ControlPanel.OpenControlPanelItem("Microsoft.ActionCenter", "pageProblems")

               Case ControlPanelItems.ActionCenter_ReliabilityMonitor
                   ControlPanel.OpenControlPanelItem("Microsoft.ActionCenter", "pageReliabilityView")

               Case ControlPanelItems.AdministrativeTools
                   ControlPanel.OpenControlPanelItem("Microsoft.AdministrativeTools", Nothing)

               Case ControlPanelItems.AutoPlay
                   ControlPanel.OpenControlPanelItem("Microsoft.AutoPlay", Nothing)

               Case ControlPanelItems.BiometricDevices
                   ControlPanel.OpenControlPanelItem("Microsoft.BiometricDevices", Nothing)

               Case ControlPanelItems.BitLockerDriveEncryption
                   ControlPanel.OpenControlPanelItem("Microsoft.BitLockerDriveEncryption", Nothing)

               Case ControlPanelItems.ColorManagement
                   ControlPanel.OpenControlPanelItem("Microsoft.ColorManagement", Nothing)

               Case ControlPanelItems.CredentialManager
                   ControlPanel.OpenControlPanelItem("Microsoft.CredentialManager", Nothing)

               Case ControlPanelItems.CredentialManager_WindowsCredentials
                   ControlPanel.OpenControlPanelItem("Microsoft.CredentialManager", "?SelectedVault=CredmanVault")

               Case ControlPanelItems.DateAndTime
                   ControlPanel.OpenControlPanelItem("Microsoft.DateAndTime", Nothing)

               Case ControlPanelItems.DateAndTime_Additionalclocks
                   ControlPanel.OpenControlPanelItem("Microsoft.DateAndTime", "1")

               Case ControlPanelItems.DefaultPrograms
                   ControlPanel.OpenControlPanelItem("Microsoft.DefaultPrograms", Nothing)

               Case ControlPanelItems.DefaultPrograms_SetAssociations
                   ControlPanel.OpenControlPanelItem("Microsoft.DefaultPrograms", "pageFileAssoc")

               Case ControlPanelItems.DefaultPrograms_SetDefaultPrograms
                   ControlPanel.OpenControlPanelItem("Microsoft.DefaultPrograms", "pageDefaultProgram")

               Case ControlPanelItems.DeviceManager
                   ControlPanel.OpenControlPanelItem("Microsoft.DeviceManager", Nothing)

               Case ControlPanelItems.DevicesAndPrinters
                   ControlPanel.OpenControlPanelItem("Microsoft.DevicesAndPrinters", Nothing)

               Case ControlPanelItems.Display
                   ControlPanel.OpenControlPanelItem("Microsoft.Display", Nothing)

               Case ControlPanelItems.Display_ScreenResolution
                   ControlPanel.OpenControlPanelItem("Microsoft.Display", "Settings")

               Case ControlPanelItems.EaseOfAccessCenter
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", Nothing)

               Case ControlPanelItems.EaseOfAccessCenter_GetRecommendationsToMakeYourComputerEasierToUse_Cognitive
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageQuestionsCognitive")

               Case ControlPanelItems.EaseOfAccessCenter_GetRecommendationsToMakeYourComputerEasierToUse_Eyesight
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageQuestionsEyesight")

               Case ControlPanelItems.EaseOfAccessCenter_MakeTheComputerEasierToSee
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageEasierToSee")

               Case ControlPanelItems.EaseOfAccessCenter_MakeTheKeyboardEasierToUse
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageKeyboardEasierToUse")

               Case ControlPanelItems.EaseOfAccessCenter_MakeTheMouseEasierToUse
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageEasierToClick")

               Case ControlPanelItems.EaseOfAccessCenter_SetUpFilterKeys
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageFilterKeysSettings")

               Case ControlPanelItems.EaseOfAccessCenter_UseTextOrVisualAlternativesForSounds
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageEasierWithSounds")

               Case ControlPanelItems.EaseOfAccessCenter_UseTheComputerWithoutADisplay
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageNoVisual")

               Case ControlPanelItems.EaseOfAccessCenter_UseTheComputerWithoutAMouseOrKeyboard
                   ControlPanel.OpenControlPanelItem("Microsoft.EaseOfAccessCenter", "pageNoMouseOrKeyboard")

               Case ControlPanelItems.FamilySafety
                   ControlPanel.OpenControlPanelItem("Microsoft.ParentalControls", Nothing)

               Case ControlPanelItems.FamilySafety_ChooseAUserAndSetUpFamilySafety
                   ControlPanel.OpenControlPanelItem("Microsoft.ParentalControls", "pageUserHub")

               Case ControlPanelItems.FileHistory
                   ControlPanel.OpenControlPanelItem("Microsoft.FileHistory", Nothing)

               Case ControlPanelItems.FolderOptions
                   ControlPanel.OpenControlPanelItem("Microsoft.FolderOptions", Nothing)

               Case ControlPanelItems.Fonts
                   ControlPanel.OpenControlPanelItem("Microsoft.Fonts", Nothing)

               Case ControlPanelItems.HomeGroup
                   ControlPanel.OpenControlPanelItem("Microsoft.HomeGroup", Nothing)

               Case ControlPanelItems.IndexingOptions
                   ControlPanel.OpenControlPanelItem("Microsoft.IndexingOptions", Nothing)

               Case ControlPanelItems.Infrared
                   ControlPanel.OpenControlPanelItem("Microsoft.Infrared", Nothing)

               Case ControlPanelItems.InternetOptions
                   ControlPanel.OpenControlPanelItem("Microsoft.InternetOptions", Nothing)

               Case ControlPanelItems.InternetOptions_Advanced
                   ControlPanel.OpenControlPanelItem("Microsoft.InternetOptions", "6")

               Case ControlPanelItems.InternetOptions_Connections
                   ControlPanel.OpenControlPanelItem("Microsoft.InternetOptions", "4")

               Case ControlPanelItems.InternetOptions_Content
                   ControlPanel.OpenControlPanelItem("Microsoft.InternetOptions", "3")

               Case ControlPanelItems.InternetOptions_Privacy
                   ControlPanel.OpenControlPanelItem("Microsoft.InternetOptions", "2")

               Case ControlPanelItems.InternetOptions_Programs
                   ControlPanel.OpenControlPanelItem("Microsoft.InternetOptions", "5")

               Case ControlPanelItems.InternetOptions_Security
                   ControlPanel.OpenControlPanelItem("Microsoft.InternetOptions", "1")

               Case ControlPanelItems.ISCSIInitiator
                   ControlPanel.OpenControlPanelItem("Microsoft.iSCSIInitiator", Nothing)

               Case ControlPanelItems.ISNSServer
                   ControlPanel.OpenControlPanelItem("Microsoft.iSNSServer", Nothing)

               Case ControlPanelItems.Keyboard
                   ControlPanel.OpenControlPanelItem("Microsoft.Keyboard", Nothing)

               Case ControlPanelItems.Language
                   ControlPanel.OpenControlPanelItem("Microsoft.Language", Nothing)

               Case ControlPanelItems.LocationSettings
                   ControlPanel.OpenControlPanelItem("Microsoft.LocationSettings", Nothing)

               Case ControlPanelItems.Mouse
                   ControlPanel.OpenControlPanelItem("Microsoft.Mouse", Nothing)

               Case ControlPanelItems.Mouse_Hardware
                   ControlPanel.OpenControlPanelItem("Microsoft.Mouse", "4")

               Case ControlPanelItems.Mouse_PointerOptions
                   ControlPanel.OpenControlPanelItem("Microsoft.Mouse", "2")

               Case ControlPanelItems.Mouse_Pointers
                   ControlPanel.OpenControlPanelItem("Microsoft.Mouse", "1")

               Case ControlPanelItems.Mouse_Wheel
                   ControlPanel.OpenControlPanelItem("Microsoft.Mouse", "3")

               Case ControlPanelItems.MPIOConfiguration
                   ControlPanel.OpenControlPanelItem("Microsoft.MPIOConfiguration", Nothing)

               Case ControlPanelItems.NetworkAndSharingCenter
                   ControlPanel.OpenControlPanelItem("Microsoft.NetworkAndSharingCenter", Nothing)

               Case ControlPanelItems.NetworkAndSharingCenter_AdvancedSharingSettings
                   ControlPanel.OpenControlPanelItem("Microsoft.NetworkAndSharingCenter", "Advanced")

               Case ControlPanelItems.NetworkAndSharingCenter_MediaStreamingOptions
                   ControlPanel.OpenControlPanelItem("Microsoft.NetworkAndSharingCenter", "ShareMedia")

               Case ControlPanelItems.NotificationAreaIcons
                   ControlPanel.OpenControlPanelItem("Microsoft.NotificationAreaIcons", Nothing)

               Case ControlPanelItems.PenAndTouch
                   ControlPanel.OpenControlPanelItem("Microsoft.PenAndTouch", Nothing)

               Case ControlPanelItems.PenAndTouch_Flicks
                   ControlPanel.OpenControlPanelItem("Microsoft.PenAndTouch", "1")

               Case ControlPanelItems.PenAndTouch_Handwriting
                   ControlPanel.OpenControlPanelItem("Microsoft.PenAndTouch", "2")

               Case ControlPanelItems.Personalization
                   ControlPanel.OpenControlPanelItem("Microsoft.Personalization", Nothing)

               Case ControlPanelItems.Personalization_ColorAndAppearance
                   ControlPanel.OpenControlPanelItem("Microsoft.Personalization", "pageColorization")

               Case ControlPanelItems.Personalization_DesktopBackground
                   ControlPanel.OpenControlPanelItem("Microsoft.Personalization", "pageWallpaper")

               Case ControlPanelItems.PhoneAndModem
                   ControlPanel.OpenControlPanelItem("Microsoft.PhoneAndModem", Nothing)

               Case ControlPanelItems.PowerOptions
                   ControlPanel.OpenControlPanelItem("Microsoft.PowerOptions", Nothing)

               Case ControlPanelItems.PowerOptions_EditPlanSettings
                   ControlPanel.OpenControlPanelItem("Microsoft.PowerOptions", "pagePlanSettings")

               Case ControlPanelItems.PowerOptions_SystemSettings
                   ControlPanel.OpenControlPanelItem("Microsoft.PowerOptions", "pageGlobalSettings")

               Case ControlPanelItems.ProgramsAndFeatures
                   ControlPanel.OpenControlPanelItem("Microsoft.ProgramsAndFeatures", Nothing)

               Case ControlPanelItems.ProgramsAndFeatures_InstalledUpdates
                   ControlPanel.OpenControlPanelItem("Microsoft.ProgramsAndFeatures", "::{D450A8A1-9568-45C7-9C0E-B4F9FB4537BD}")

               Case ControlPanelItems.Recovery
                   ControlPanel.OpenControlPanelItem("Microsoft.Recovery", Nothing)

               Case ControlPanelItems.Region
                   ControlPanel.OpenControlPanelItem("Microsoft.RegionAndLanguage", Nothing)

               Case ControlPanelItems.Region_Administrative
                   ControlPanel.OpenControlPanelItem("Microsoft.RegionAndLanguage", "2")

               Case ControlPanelItems.Region_Location
                   ControlPanel.OpenControlPanelItem("Microsoft.RegionAndLanguage", "1")

               Case ControlPanelItems.RemoteAppAndDesktopConnections
                   ControlPanel.OpenControlPanelItem("Microsoft.RemoteAppAndDesktopConnections", Nothing)

               Case ControlPanelItems.Sound
                   ControlPanel.OpenControlPanelItem("Microsoft.Sound", Nothing)

               Case ControlPanelItems.SpeechRecognition
                   ControlPanel.OpenControlPanelItem("Microsoft.SpeechRecognition", Nothing)

               Case ControlPanelItems.StorageSpaces
                   ControlPanel.OpenControlPanelItem("Microsoft.StorageSpaces", Nothing)

               Case ControlPanelItems.SyncCenter
                   ControlPanel.OpenControlPanelItem("Microsoft.SyncCenter", Nothing)

               Case ControlPanelItems.System
                   ControlPanel.OpenControlPanelItem("Microsoft.System", Nothing)

               Case ControlPanelItems.TabletPCSettings
                   ControlPanel.OpenControlPanelItem("Microsoft.TabletPCSettings", Nothing)

               Case ControlPanelItems.TaskbarAndNavigation
                   ControlPanel.OpenControlPanelItem("Microsoft.Taskbar", Nothing)

               Case ControlPanelItems.Troubleshooting
                   ControlPanel.OpenControlPanelItem("Microsoft.Troubleshooting", Nothing)

               Case ControlPanelItems.Troubleshooting_History
                   ControlPanel.OpenControlPanelItem("Microsoft.Troubleshooting", "HistoryPage")

               Case ControlPanelItems.TSAppInstall
                   ControlPanel.OpenControlPanelItem("Microsoft.TSAppInstall", Nothing)

               Case ControlPanelItems.UserAccounts
                   ControlPanel.OpenControlPanelItem("Microsoft.UserAccounts", Nothing)

               Case ControlPanelItems.WindowsAnytimeUpgrade
                   ControlPanel.OpenControlPanelItem("Microsoft.WindowsAnytimeUpgrade", Nothing)

               Case ControlPanelItems.WindowsDefender
                   ControlPanel.OpenControlPanelItem("Microsoft.WindowsDefender", Nothing)

               Case ControlPanelItems.WindowsFirewall
                   ControlPanel.OpenControlPanelItem("Microsoft.WindowsFirewall", Nothing)

               Case ControlPanelItems.WindowsFirewall_AllowedApps
                   ControlPanel.OpenControlPanelItem("Microsoft.WindowsFirewall", "pageConfigureApps")

               Case ControlPanelItems.WindowsMobilityCenter
                   ControlPanel.OpenControlPanelItem("Microsoft.MobilityCenter", Nothing)

               Case ControlPanelItems.WindowsToGo
                   ControlPanel.OpenControlPanelItem("Microsoft.PortableWorkspaceCreator", Nothing)

               Case ControlPanelItems.WindowsUpdate
                   ControlPanel.OpenControlPanelItem("Microsoft.WindowsUpdate", Nothing)

               Case ControlPanelItems.WindowsUpdate_ChangeSettings
                   ControlPanel.OpenControlPanelItem("Microsoft.WindowsUpdate", "pageSettings")

               Case ControlPanelItems.WindowsUpdate_ViewUpdateHistory
                   ControlPanel.OpenControlPanelItem("Microsoft.WindowsUpdate", "pageUpdateHistory")

               Case ControlPanelItems.WorkFolders
                   ControlPanel.OpenControlPanelItem("Microsoft.WorkFolders", Nothing)

               Case Else
                   Throw New InvalidEnumArgumentException(argumentName:="item",
                                                          invalidValue:=item,
                                                          enumClass:=GetType(ControlPanelItems))

           End Select

       End Sub

       <DebuggerStepThrough>
       Private Shared Sub OpenControlPanelItem(ByVal name As String,
                                               ByVal page As String)

           Dim cp As IOpenControlPanel = DirectCast(New OpenControlPanel, IOpenControlPanel)
           cp.Open(name, page, Nothing)
           Marshal.FinalReleaseComObject(cp)

       End Sub

   End Class


Actualmente todo esto y mucho más forma parte de mi API gratuita conocida como ElektroKit, que pueden encontrar en GitHub por ese mismo nombre.

Créditos: Elektro (y MSDN :P).

Saludos
#3695
Cita de: bybaal en  9 Mayo 2016, 05:44 AM
Código (vbnet) [Seleccionar]
Dim pictureBytes As New MemoryStream(vrPicHolder)
PicutureBox1.Image = Image.FromStream(pictureBytes)

Hola

No se cual es el propósito de tu código, pero imagino que ya sabrás que puedes cargar directamente una imagen desde un archivo local con la función Image.FromFile().

Bien, aparte de eso, solo quiero comentarte que el código que has mostrado no es del todo correcto, puedes optimizarlo de la siguiente manera:

Código (vbnet) [Seleccionar]

Dim img As Image
Dim imgPath As String = "C:\Imagen.ext"

Using fs As New FileStream(imgPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
   img = Image.FromStream(fs)
End Using

PictureBox1.Image = img
' ...Llamar al método "img.Dispose()" para liberarlo cuando ya no lo necesites.


Saludos
#3696
Hola.

Para volver a habilitar la visibilidad del dropdown al que te refieres, sigue estas instrucciones...

1. Dirígete a las opciones de Visual Studio:
Tools -> Options

2. Despliega las opciones del editor de código de Vb.Net:
Text Editor -> Basic

3. Activa la casilla donde pone "Navigation Bar".



Saludos.
#3697
Hola

El proyecto se carga correctamente en Visual Studio 2015. lo he probado bajo Windows 10 (con la edición de VS Professional, no la Community).

Lo que te ocurre es un típico caso de error en los algoritmos de depuración de Visual Studio al migrar el proyecto, en este caso esos errores del compiler son todos "falsos positivos" por así decirlo.

Intenta limpiar el proyecto y reconstruirlo utilizando las opciones del menú de la IDE:

  • Build > Clean Solution
  • Build > Rebuild solution




Si después de eso sigue sin funcionarte, sigue estas instrucciones:

1. En el explorador de archivos de la solución de Visual Studio, abre la class del designer del Form1 (Form1.Designer.vb).

2. Dirígete al método InitializeComponent, y selecciona con el ratón las siguientes instrucciones:

Cita de: Form1.Designer.vb
Código (vbnet) [Seleccionar]
       Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
       Me.Timer2 = New System.Windows.Forms.Timer(Me.components)
       Me.Web = New System.Windows.Forms.WebBrowser()
       Me.Button1 = New System.Windows.Forms.Button()
       Me.Label1 = New System.Windows.Forms.Label()
       Me.TextBox1 = New System.Windows.Forms.TextBox()

Y al final del archivo, esto otro:
Citar
Código (vbnet) [Seleccionar]
   Friend WithEvents Timer1 As System.Windows.Forms.Timer
   Friend WithEvents Timer2 As System.Windows.Forms.Timer
   Friend WithEvents Web As System.Windows.Forms.WebBrowser
   Friend WithEvents Button1 As System.Windows.Forms.Button
   Friend WithEvents Label1 As System.Windows.Forms.Label
   Friend WithEvents TextBox1 As System.Windows.Forms.TextBox

3. Ahora simplemente corta y pega esas lineas sin moverlas del sitio (CORTAR, no copiar) con CTRL+X y CTRL+V.
(Eso debería servir para obligar a que se actualice correctamente en Visual Studio lo que esté causando que se muestren esos falsos errores del compiler.)

4. Limpia y reconstruye el proyecto.




Si en este punto todavía sigues sin poder compilarlo, vuelve a descargar el archivo de Flamer, pero esta vez, antes de intentar cargarlo, elimina el archivo oculto con extensión .suo, la carpeta temporal con nombre "obj", y los archivos de información de depuración con extensión .pdb, y entonces intenta cargarlo en Visual Studio.

Saludos
#3698
Hola

Buen aporte Lekim. Añadiré algunos detalles importantes a lo que has explicado:

1.
La enumeración Environment.SpecialFolder recopila muchas de las carpetas especiales o virtuales del sistema.

2.
Para quien tenga la curiosidad de saberlo:
Al usar la aplicacion Rundll32 como en este ejemplo de aquí abajo, el primer parámetro especifica el nombre de la dll, el segundo parámetro especifica el nombre de la función (tiene que ser COM visible), y el resto de parámetros son los parámetros de dicha función, donde el último parámetro en este caso especifica la página o pestaña que queremos abrir con un índice basado en cero, siendo así el valor "0" la primera página.
RunDll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,0

3.
Se puede reemplazar el uso de Rundll32 por la aplicación Control para evitar tener que especificar el nombre de la dll y el nombre de la función, simplificando así el código.
De esto:
RunDll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,0
A esto otro:
control.exe appwiz.cpl,,0

4.
En realidad el uso de GUIDs o CLSIDs para acceder a elementos del panel de control está deprecado, ya que a partir de Windows Vista se pueden utilizar nombres canónicos, lo que hace más legible el código y más facil de recordar.
De esto:
explorer.exe "shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}\8\::{17cd9488-1228-4b2f-88ce-4298e93e0966}\pageFileAssoc"
A esto otro:
control.exe /name Microsoft.DefaultPrograms /page pageFileAssoc

Más info al respecto:

La lista completa de nombres canónicos de elementos del panel de control:

5.
En lo referente a la programación bajo la plataforma .Net Framework, usar aplicaciones externas supone desventajas en las que no quiero entrar mucho en detalle pero serían una ausencia completa de control de errores (más que el código de salida...y no siempre) y un impacto negativo en el rendimiento de nuestra aplicación (iniciar un proceso y esperar el código de salida, consume muucho tiempo de ejecución en comparación),
por ese motivo podemos y deberíamos evitar el uso de aplicaciones externas y dependientes del sistema como Explorer, RunDll32 o Control ya que en .Net podemos hacer uso directo de la API de Windows implementando la interfáz IOpenControlPanel para reemplazar la funcionalidad que deseamos de los exe mencionados anteriormente, con las ventajas que eso supone.

Estas serían las definiciones para Visual Basic.Net:

Código (vbnet) [Seleccionar]
Friend NotInheritable Class NativeMethods

   Enum ControlPanelView As Integer
       Classic = 0
       Category = 1
   End Enum

   <ComImport()>
   <Guid("06622D85-6856-4460-8DE1-A81921B41C4B")>
   Class COpenControlPanel
   End Class

   <ComImport()>
   <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)>
   <Guid("D11AD862-66DE-4DF4-BF6C-1F5621996AF1")>
   Interface IOpenControlPanel

       <PreserveSig()>
       Function Open(<MarshalAs(UnmanagedType.BStr)> ByVal name As String,
                     <MarshalAs(UnmanagedType.BStr)> ByVal page As String,
                                                     ByVal punkSite As IntPtr
       ) As Integer

       <PreserveSig()>
       Function GetPath(<MarshalAs(UnmanagedType.BStr)> ByVal name As String,
                      <MarshalAs(UnmanagedType.LPWStr)> ByVal path As StringBuilder,
                                                        ByVal bufferSize As Integer
       ) As Integer

       <PreserveSig()>
       Function GetCurrentView(ByRef refView As ControlPanelView
       ) As Integer

   End Interface

End Class


Ejemplo de uso:
Código (vbnet) [Seleccionar]
Dim cp As IOpenControlPanel = DirectCast(New COpenControlPanel, IOpenControlPanel)
cp.Open("Microsoft.DefaultPrograms", "pageFileAssoc", Nothing)
Marshal.FinalReleaseComObject(cp)


Más info al respecto:

Saludos
#3699
Scripting / Re: javascript deobfuscation
5 Mayo 2016, 16:29 PM
Cita de: Progmasterbr en  4 Mayo 2016, 23:36 PMHere is original code: http://pastebin.com/KRQWffhr

obfuscated and I had used this site http://javascriptbeautifier.com/ and he made half of deobfuscation and this is final result: http://pastebin.com/Laipv8ND

Hi

What more you are expecting to acchieve from the resulting deobfuscated code that you have?.

Take into account that the variable names recovery is not possible since they are lost after obfuscation, that's it, things starting with "_0x" are the new variable names that the obfuscation algorithm assigns to each found var, the original variable names are replaced with new hexadecimal values like that, but they are just that, hex values, they aren't encoded values that contain the old variable name, so you can't rollback something that doesn't exists anymore, in resume, the resulting code that you have should work as expected with those names.

So basically seems that you have totally deobfuscated the code up to the max that it can be done without having the original code.

For variable names as I said it's impossible (the methodology to rollback a replacement is doing another replacement knowing the old data), so what you can do at this point is pick up your favorite text editor and perform a word replacement of all "_0xb257" for whichever friendlly variable name being more readable than the hexadecimal one.




For interest I will explain you that things starting with "\x" are just a escape secuence of characters that are very easy to decode. The rest part after the "\x" is a hex value that you can convert it to decimal then retrieve the corresponding char from ASCII table;
so for example if we have "\x4D", then we remove/ignore the "\x" (because is just trash information), so we have the "4D" that translated into decimal it is "77", which corresponds to the "M" character.

So for example this value can be translated as "Message : " string.
"\x4D\x65\x73\x73\x61\x67\x65\x20\x3A\x20"

Regards.
#3700
Citar
Código (dos) [Seleccionar]
set ERRORLEVEL =
Eso es totalmente inapropiado y erroneo, es un claro ejemplo de malas prácticas de uso.


  • La variable ERRORLEVEL ya está definida de forma nativa, es una variable dinámica, no necesitas redeclararla.
  • Si declaras una variable usando un mismo nombre de variable dinámica, lo único que vas a conseguir es sustituir la variable dinámica por tu variable local (por lo que jamás obtendrás el valor de la variable dinámica).
  • Entre el nombre de la variable y el símbolo de asignación de valor (=) no debe existir ningún espacio, por que de lo contrario ese espacio se suma al nombre de tu variable, esto quiere decir que el nombre real de tu variable es "ERRORLEVEL ", no "ERRORLEVEL". Esto quiere decir además que en tu código nunca estás accediendo a tu variable local, sino a la variable dinámica.
  • Aparte de lo mencionado, deberías encerrar entre comillas dobles el nombre y el valor de la variable para prevenir otros tipos de errores (de sintaxis):
Código (dos) [Seleccionar]
Set "Var=Value"

    (lo mismo se aplica a variables numéricas)[/li]

En resumen, debes eliminar esa variable, por que aparte de no necesitarla tampoco le estás dando ningún uso (ni podrías dárselo correctamente con la intención de sustituir la variable dinámica y aun así esperar obtener el mismo valor...)

Saludos.