EnumerationX
This is an upgrade of my EnumerationX program that enumerates the parent windows and child windows inside them. You can minimize,maximize, or restore, close, hide , show any parent window by right clicking on its handle. You can see the text written on any child window, also the text behind ******* password fields. It can spy and fetch the 'menus' of any application and captures there menus in a tree view, when you click there menu items inside EnumerationX actual menus of the application gets accessed. See the readme file inside it before spying on menus.
Riepilogo AI: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.
Upload
============================================================
STEP 1: SAVE THE FOLLOWING CODE AS cAspImage.asp:
============================================================
<%
'============================================================
' MODULE: cAspImage.asp
' AUTHOR: © www.u229.no
' CREATED: May 2005
'============================================================
' COMMENT:
' Read Image Properties from BMP, GIF, PNG and JPG files.
' Requirements: Microsoft Data Access Components installed on Web Server.
' PLEASE NOTE: Some JPEG files contain Thumbnails. In those cases this code will fail because
' it will think that the thumbnail's width/height are the "real" values.
' If this is a concern see more info on line 151.
'============================================================
' TODO:
'============================================================
' ROUTINES:
' - Private Sub Class_Initialize()
' - Private Sub Class_Terminate()
' - Public Function ReadImage(sFullPath)
' - Private Function ReadByteArray(sFullPath)
' - Private Sub EmptyVariables()
'============================================================
Class cAspImage
'// MODULE VARIABLES
Private m_arrBytes '// Byte array holding the image file
Private m_lWidth '// Width in pixels
Private m_lHeight '// Height in pixels
Private m_iColorDepth '// Color Depth (BitsPerPixel)
Private m_lImageSize '// # Bytes in image
Private m_sDateCreated '// Date Created
Private m_sLastModified '// Date last saved
Private m_sImageType '// PNG, JPG, GIF87a/GIF89a, BMP
Private m_sErrorMsg '// Error message: Check this if ReadImage returns false
'// PROPERTIES
Public Property Get Width()
Width = m_lWidth
End Property
Public Property Get Height()
Height = m_lHeight
End Property
Public Property Get ColorDepth()
ColorDepth = m_iColorDepth
End Property
Public Property Get ImageSize()
ImageSize = m_lImageSize
End Property
Public Property Get DateCreated()
DateCreated = m_sDateCreated
End Property
Public Property Get DateLastModified()
DateLastModified = m_sLastModified
End Property
Public Property Get ImageType()
ImageType = m_sImageType
End Property
Public Property Get ErrorMessage()
ErrorMessage = m_sErrorMsg
End Property
'------------------------------------------------------------------------------------------------------------
' Comment: Init module variables.
'------------------------------------------------------------------------------------------------------------
Private Sub Class_Initialize()
On Error Resume Next
Call EmptyVariables
End Sub
'------------------------------------------------------------------------------------------------------------
' Comment: Clean up.
'------------------------------------------------------------------------------------------------------------
Private Sub Class_Terminate()
End Sub
'------------------------------------------------------------------------------------------------------------
' Comment: Main routine returning the image properties.
'------------------------------------------------------------------------------------------------------------
Public Function ReadImage(sFullPath)
' On Error Resume Next
Dim oFSO
Dim oFile
Dim i
Dim bStop
Dim lTmpHeight
Dim lTmpWidth
Dim iTmpDepth
'// These 3 are created to speed up the looping.
Dim i4
Dim byteTmp
Dim lSafeSize
Call EmptyVariables
bStop = False
If IsEmpty(oFSO) Then Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(sFullPath) Then
Set oFile = oFSO.GetFile(sFullPath)
m_lImageSize = oFile.Size
m_sDateCreated = FormatDateTime(oFile.DateCreated, 2)
m_sLastModified = FormatDateTime(oFile.DateLastModified, 2)
If Not ReadByteArray(sFullPath) Then m_sErrorMsg = "Error Reading Image File"
'---------------------------- GIF
If AscB(MidB(m_arrBytes, 1, 1)) = 71 And AscB(MidB(m_arrBytes, 2, 1)) = 73 And AscB(MidB( _
m_arrBytes, 3, 1)) = 70 Then
m_sImageType = "GIF89a"
If AscB(MidB(m_arrBytes, 5, 1)) = 55 Then m_sImageType = "GIF87a"
m_lWidth = CLng(AscB(MidB(m_arrBytes, 7, 1)) + (AscB(MidB(m_arrBytes, 8, 1)) * 256))
m_lHeight = CLng(AscB(MidB(m_arrBytes, 9, 1)) + (AscB(MidB(m_arrBytes, 10, 1)) * 256))
m_iColorDepth = 2 ^ ((Asc(CStr(AscB(MidB(m_arrBytes, 11, 1)))) And 7) + 1)
bStop = True
End If
'---------------------------- JPG
If Not bStop Then
If AscB(MidB(m_arrBytes, 1, 1)) = 255 And AscB(MidB(m_arrBytes, 2, 1)) = 216 And AscB(MidB( _
m_arrBytes, 3, 1)) = 255 And AscB(MidB(m_arrBytes, 4, 1)) = 224 Then
m_sImageType = "JPG"
lSafeSize = (m_lImageSize - 1)
For i = 5 To lSafeSize
If AscB(MidB(m_arrBytes, i, 1)) = 255 Then
byteTmp = AscB(MidB(m_arrBytes, i + 1, 1))
If (byteTmp > 191) And (byteTmp < 208) Then
i4 = AscB(MidB(m_arrBytes, i + 4, 1))
'=============================================================================================
'// Some JPEG files contain Thumbnails. In those cases this code will fail because it will think that the thumbnail's width/height are the "real" values.
'// If you care about the "thumbnail problem" you may comment existing code/uncomment the other lines below.
'// Be aware that this will dramatically slow down the looping time because we then will have to loop through the whole file(s)
m_lHeight = CLng(AscB(MidB(m_arrBytes, i + 6, 1)) + (AscB(MidB(m_arrBytes, i + 5, 1)) * 256))
m_lWidth = CLng(AscB(MidB(m_arrBytes, i + 8, 1)) + (AscB(MidB(m_arrBytes, i + 7, 1)) * 256))
m_iColorDepth = CInt(i4) * CInt(AscB(MidB(m_arrBytes, i + 9, 1)))
' lTmpHeight = CLng(AscB(MidB(m_arrBytes, i + 6, 1)) + (AscB(MidB(m_arrBytes, i + 5, 1)) * 256))
' lTmpWidth = CLng(AscB(MidB(m_arrBytes, i + 8, 1)) + (AscB(MidB(m_arrBytes, i + 7, 1)) * 256))
' iTmpDepth = CInt(i4) * CInt(AscB(MidB(m_arrBytes, i + 9, 1)))
'
If m_iColorDepth > 0 And (i4 > 1 And i4 < 17) Then
' If iTmpDepth > 0 And (i4 > 1 And i4 < 17) Then
' If (lTmpHeight > m_lHeight) Or (lTmpWidth > m_lWidth) Then
' m_lHeight = lTmpHeight
' m_lWidth = lTmpWidth
' m_iColorDepth = iTmpDepth
Exit For
' End If
End If
'=============================================================================================
End If
End If
Next
bStop = True
End If
End If
'---------------------------- PNG
If Not bStop Then
If AscB(MidB(m_arrBytes, 1, 1)) = 137 And AscB(MidB(m_arrBytes, 2, 1)) = 80 And AscB( _
MidB(m_arrBytes, 3, 1)) = 78 And AscB(MidB(m_arrBytes, 4, 1)) = 71 _
And AscB(MidB(m_arrBytes, 5, 1)) = 13 And AscB(MidB(m_arrBytes, 6, _
1)) = 10 And AscB(MidB(m_arrBytes, 7, 1)) = 26 And AscB(MidB(m_arrBytes, 8, 1)) = 10 Then
m_sImageType = "PNG"
m_lWidth = CLng(AscB(MidB(m_arrBytes, 20, 1)) + (AscB(MidB(m_arrBytes, 19, 1)) * 256))
m_lHeight = CLng(AscB(MidB(m_arrBytes, 24, 1)) + (AscB(MidB(m_arrBytes, 23, 1)) * 256))
Select Case CInt(AscB(MidB(m_arrBytes, 26, 1))) '// Get Bit Depth
Case 0
m_iColorDepth = CInt(AscB(MidB(m_arrBytes, 25, 1))) '// Grayscale
Case 2
m_iColorDepth = CInt(AscB(MidB(m_arrBytes, 25, 1))) * 3 '// RGB encoded
Case 3
m_iColorDepth = 8 '// Palette based, 8 bpp
Case 4
m_iColorDepth = CInt(AscB(MidB(m_arrBytes, 25, 1))) * 2 '// greyscale with alpha
Case 6
m_iColorDepth = CInt(AscB(MidB(m_arrBytes, 25, 1))) * 4 '// RGB encoded with alpha
Case Else
End Select
bStop = True
End If
End If
'---------------------------- BMP
If Not bStop Then
If AscB(MidB(m_arrBytes, 1, 1)) = 66 And AscB(MidB(m_arrBytes, 2, 1)) = 77 Then
m_sImageType = "BMP"
m_lWidth = CLng(AscB(MidB(m_arrBytes, 19, 1)) + (AscB(MidB(m_arrBytes, 20, 1)) * 256))
m_lHeight = CLng(AscB(MidB(m_arrBytes, 23, 1)) + (AscB(MidB(m_arrBytes, 24, 1)) * 256))
m_iColorDepth = CInt(AscB(MidB(m_arrBytes, 29, 1)))
bStop = True
End If
End If
'----------------------------
Else
m_sErrorMsg = "Error in File Path: " & sFullPath
End If
Set oFile = Nothing
Set oFSO = Nothing
ReadImage = (Err.Number = 0)
End Function
'------------------------------------------------------------------------------------------------------------
' Comment: Read image into byte array.
'------------------------------------------------------------------------------------------------------------
Private Function ReadByteArray(sFullPath)
On Error Resume Next
Dim oStream
If IsEmpty(oStream) Then Set oStream = Server.CreateObject("ADODB.Stream")
With oStream
.Type = 1 '// adTypeBinary
.Open
.LoadFromFile sFullPath
m_arrBytes = .Read
End With
oStream.Close
Set oStream = Nothing
ReadByteArray = (Err.Number = 0)
End Function
'------------------------------------------------------------------------------------------------------------
' Comment: Set module variables empty.
'------------------------------------------------------------------------------------------------------------
Private Sub EmptyVariables()
On Error Resume Next
m_lWidth = 0
m_lHeight = 0
m_iColorDepth = 0
m_lImageSize = 0
m_sDateCreated = ""
m_sLastModified = ""
m_sImageType = "Unknown"
m_sErrorMsg = ""
End Sub
End Class
%>
===========================================
STEP 2: SAVE THE FOLLOWING AS start.asp IN THE SAME FOLDER AS ABOVE.
ALSO PUT A GIF FILE INTO THE SAME FOLDER AND NAME IT test.gif.
THEN POINT YOUR BROWSER TO start.asp.
===========================================
<% @Language="VBScript" %>
<%
Option Explicit
'On Error Resume Next
%>
<!--#include file="cAspImage.asp"-->
<%
'// HOW TO USE THIS CODE:
Dim oAspImg
Set oAspImg = New cAspImage
With oAspImg
.ReadImage(Server.MapPath("test.gif"))
Response.Write "ImageSize: " & .ImageSize & "<br />"
Response.Write "Date Created: " & .DateCreated & "<br />"
Response.Write "Date Last Modified: " & .DateLastModified & "<br />"
Response.Write "ColorDepth: " & .ColorDepth & "<br />"
Response.Write "Width: " & .Width & "<br />"
Response.Write "Height: " & .Height & "<br />"
Response.Write "ImageType: " & .ImageType & "<br />"
Response.Write "Error Message: " & .ErrorMessage & "<br />"
End With
Set oAspImg = Nothing
%>