Login
`
Templates, Tools and Utilities
|
||
Add a comment to an Icetips ArticlePlease add your comments to this article.
Please note that you must provide both a name and a valid email address in order
for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!
Back to article list Search Articles Add Comment Printer friendly Direct link Windows API: Save screenshot of web page 2006-04-13 -- Menno De Ruiter Editors note: This contains over 800 lines of code, most of which are commented out. Some
lines are long and may break. This is posted as is and
no editing or testing/verification of the code has been made.
>I want to scale down a web page (determined by a URL) and display it as an
>image on a Clarion control of some sort - maybe I am dreaming !
.. in combination with Capesoft FileExplorer i use this..
MakeDC Routine
Data
TV Group,pre(),Dim(2)
TV_X long
TV_Y long
TV_R ushort
TV_G ushort
TV_B ushort
TV_A ushort
End
RV Group,pre()
RV_X ULong
RV_Y ULong
End
returnval long
Code
barsSheet_BkGndDCHnd = GetWindowDC(ThisIEWin{Prop:Handle})
TBar_BkGndDCHnd = CreateCompatibleDC(barsSheet_BkGndDCHnd)
R# = ReleaseDC(ThisIEWin{Prop:Handle},barsSheet_BkGndDCHnd)
X# = SetMapMode(TBar_BkGndDCHnd,MM_TEXT)
TBar_BFH.TBar_BFHType = 19778
TBar_BFH.TBar_BFHSize = 0
TBar_BFH.TBar_BFHReserved1 = 0
TBar_BFH.TBar_BFHReserved2 = 0
TBar_BFH.TBar_BFHOffBits = 54
TBar_BIH.TBar_BIHSize = Size(TBar_BIH)
TBar_BIH.TBar_BIHWidth = ?feControl{Prop:Width} - 20
TBar_BIH.TBar_BIHHeight = TotalPages * 800
TBar_BIH.TBar_BIHPlanes = 1
TBar_BIH.TBar_BIHBitCount = 24
TBar_BIH.TBar_BIHCompression = 0
TBar_BIH.TBar_BIHSizeImage = 0
TBar_BIH.TBar_BIHXPelsPerMeter = 0
TBar_BIH.TBar_BIHYPelsPerMeter = 0
TBar_BIH.TBar_BIHClrUsed = 0
TBar_BIH.TBar_BIHClrImportant = 0
TBar_DIBSectionHnd =
CreateDIBSection(TBar_BkGndDCHnd,Address(TBar_BIH),0,Address(TBar_Ptr_DIBits),0,0)
ReturnVal = SelectObject(TBar_BkGndDCHnd,TBar_DIBSectionHnd)
...and something like this in the time (look at the bitblt)
!!! If IndexFilesFromProxyFilesBOOL = True
!!! Do IndexFilesFromProxyFilesLOOP
!!! End
!If GoPrn = True
If SendStop = True
SendStop = False
ThisViewer2.Stop()
End
If TotalPages <> 3
TotalPages = 3
End
If DoBitBlt = False
Case StartPrinting
Of 1
SavedPage = False
CurrentPage = 0
Do MakeDC
StartPrinting = 2
CurrentPage = 1
NewPage = CurrentPage
Of TotalPages
Do SaveDC
StartPrinting = 0
CurrentPage = 0
SavedPage = True
NewPage = CurrentPage
ThisIEWin{Prop:YPos} = DefaultY
Else
If StartPrinting > 0 And StartPrinting < TotalPages
HeightNow = 800
! Execute CurrentPage
ThisIEWin{Prop:YPos} = DefaultY
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*1)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*2)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*3)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*4)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*5)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*6)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*7)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*8)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*9)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*10)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*11)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*12)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*13)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*14)
! ThisIEWin{Prop:YPos} = DefaultY-(HeightNow*15)
! End
DoBitBltTimeOut = Clock() + 30
DoBitBlt =True
NewPage = CurrentPage
End
End
End
If DoBitBlt = True And DoBitBltTimeOut < Clock() And StillLoading = False
DoBitBlt = False
barsSheet_BkGndDCHnd = GetDC(ThisIEWin{Prop:Handle})
X# =
BitBlt(TBar_BkGndDCHnd,0,0,TBar_BIH.TBar_BIHWidth,TBar_BIH.TBar_BIHHeight,barsSheet_BkGndDCHnd,0,0,SRCCOPY)
! Y# = 0
! C# = 0
! Loop 18 Times
! C# = C# + 1
! If C# = (CurrentPage)
! If TBar_BkGndDCHnd <> 0
! !If CurrentPage = 1
! ! X# =
BitBlt(TBar_BkGndDCHnd,0,(CurrentPage*800)-800-4,TBar_BIH.TBar_BIHWidth-8,800,barsSheet_BkGndDCHnd,0,(CurrentPage*800)-800-4,SRCCOPY)
! !Else
! X# =
BitBlt(TBar_BkGndDCHnd,0,0,TBar_BIH.TBar_BIHWidth,TBar_BIH.TBar_BIHHeight,barsSheet_BkGndDCHnd,0,0,SRCCOPY)
! !End
! PrintScreened = PrintScreened + 1
! Else
! message('dc error')
! End
! Break
! End
! End
R# = ReleaseDC(ThisIEWin{Prop:Handle},barsSheet_BkGndDCHnd)
StartPrinting = StartPrinting + 1
CurrentPage = CurrentPage + 1
End
If NewSiteNumber > 0
If NewSiteNumber <> OldSiteNumber
OldSiteNumber = NewSiteNumber
Scanned = False
!?ListQSites{Prop:Selected} = NewSiteNumber
Get(QSites,NewSiteNumber)
! Sit:Number = QSit:Number
! Share(Sites)
! Get(Sites,Sit:IX_Sites_Number)
! !Sit:IX_Sites_URL
! TheFolderNow = Clip(Sit:URL)
! !Do cBulletinCreate2
URL2Go = Clip(QSit:URL)
Change(?fePath, URL2Go)
ThisViewer2.Load (URL2Go)
ThisViewer2.fe_Path = Clip(URL2Go)
StillLoading = True
End
End
!End
! If ScreenPrinted = False
! If ScreenPrintTimeOut < Clock()
! ScreenPrinted = True
! Do PrintScreenIE
! End
! End
!! If RetrieveFileData = True
! SearchString = '.js'
! !G = 0
! Loop 1 Times
! G = G + 1
! If G > 1000
! StartRetrieveFileData = 0
! Break
! End
! Get(QTasks,G)
!
! Dos64kFileName = URL2Go
!
! Share(Dos64kFile)
! Set(Dos64kFile)
!
! Clear(ReadData)
! T# = 1
! S# = Bytes(Dos64kFile)
! Loop
! Next(Dos64kFile)
! If Errorcode() <> 0
! ef# = True
! End
! ReadData[T# : T# + 64000 -1] = Dos64kPre:Line
! If ef# = True
! break
! End
! T# = T# + 64000
! If T# + 64000 > Size(ReadData) then break.
! End
!
! QFFiles:QSitesNumber = QSit:Number
!
!!!! QFFiles:FileAndPathName = Clip(Left(QFFiles:FileAndPathName))
!! QSit:Number = QFFiles:QSitesNumber
!! Get(QSites,+QSit:Number)
!
!
! V# = False
! P = 0
! l2# = len(clip(ReadData))
! L = Len(clip(SearchString))
! Loop
! P = P + 1
! If P > l2#
! Break
! End
! If Lower(Clip(SearchString)) = Lower(ReadData[P : P + L-1])
! QFFiles:FileAndPathName = ''
! P2# = P + L - 1
! Loop
! P2# = P2# - 1
! If P2# = 0 then break.
! If ReadData[P2#] = '"' Or ReadData[P2#] = '''' Or ReadData[P2#] = '='
! QFFiles:FileAndPathName = ReadData[P2# +1 : P + L-1]
! Break
! End
! End
!
!
!
!!! P2# = Len(Clip(QFFiles:FileAndPathName)) + 1
!!! Loop
!!! P2# = P2# - 1
!!! If P2# = 0
!!! Break
!!! End
!!! If QFFiles:FileAndPathName[P2#] = '/'
!!! Break
!!! End
!!! End
!!!
!!!! S# = 0
!!!! Loop
!!!! S# = S# + 1
!!!! If S# > len(clip(QFFiles:FolderName)) then break.
!!!! If Lower(QSit:URL[1 : S#]) <> Lower(QFFiles:FileAndPathName[1 : S#])
!!!! Break
!!!! End
!!!! End
!!!! If S# > 1
!!!! QFFiles:FileAndPathName = QFFiles:FileAndPathName[S# :
Size(QFFiles:FileAndPathName)]
!!!! End
!!!
!!!
!!! QFFiles:FileName = ''
!!! QFFiles:FolderName = ''
!!! If P2# > 1
!!! QFFiles:FileName = QFFiles:FileAndPathName[P2# + 1 :
Size(QFFiles:FileAndPathName)]
!!! QFFiles:FolderName = QFFiles:FileAndPathName[1 : P2# -1]
!!! Else
!!! QFFiles:FileName = QFFiles:FileAndPathName
!!! End
!!!
!!! QFFiles:QSitesNumber = QTasks:ForumNumber
!!!!! QFFiles:FileAndPathName = Clip(Left(QFFiles:FileAndPathName))
!!! QSit:Number = QFFiles:QSitesNumber
!!! Get(QSites,+QSit:Number)
!
!
! QFFiles:URL = QSit:URL
! If Lower(QFFiles:URL[1 : 11]) <> 'http://www.'
! If Lower(QFFiles:FileAndPathName[1 : 11]) = 'http://www.'
! QFFiles:FileAndPathName = 'http://' & QFFiles:FileAndPathName[12 :
Size(QFFiles:FileAndPathName)]
! End
! End
! If Lower(QFFiles:FileAndPathName[1 : 7]) <> 'http://'
! QFFiles:FileAndPathName = Clip(QSit:URL) & Clip(QFFiles:FileAndPathName)
! End
!! If QFFiles:FileAndPathName[1 : 2] = '//'
!! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 2 :
Size(QFFiles:FileAndPathName)]
!! End
! If QFFiles:FileAndPathName[1] = '/'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 3 :
Size(QFFiles:FileAndPathName)]
! End
! If QFFiles:FileAndPathName[1 : 3] = '../'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 4 :
Size(QFFiles:FileAndPathName)]
! End
! If QFFiles:FileAndPathName[1 : 2] = '..'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 3 :
Size(QFFiles:FileAndPathName)]
! End
!
!
! P# = 8
! L# = Len(Clip(QFFiles:FileAndPathName))
! Loop
! P# = P# + 1
! If (P# + 1) > L#
! break
! End
! If QFFiles:FileAndPathName[P# : P# + 1] = '//'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[1 : P#] &
QFFiles:FileAndPathName[P# + 2 : Size(QFFiles:FileAndPathName)]
! P# = 8
! End
! End
!
!
!
!!!
!!! Get(QFFiles,QFFiles:QSitesNumber,QFFiles:FileAndPathName)
!!! F# = False
!!! If QFFiles:FileAndPathName[1 : 3] = '../'
!!! QFFiles:FileAndPathName = Clip(QSit:URL) & Clip(QFFiles:FileAndPathName[4 :
Size(QFFiles:FileAndPathName)])
!!! F# = True
!!! End
!!! If QFFiles:FileAndPathName[1] = '/'
!!! QFFiles:FileAndPathName = Clip(QSit:URL) & Clip(QFFiles:FileAndPathName[2 :
Size(QFFiles:FileAndPathName)])
!!! F# = True
!!! End
!!!
!!!
!!!!!! If F# = False
!!!!!! If lower(QFFiles:FileAndPathName[1 : 4]) <> 'http'
!!!!!! QFFiles:FileAndPathName = Clip(QSit:URL) &
Clip(QFFiles:FileAndPathName[1 : Size(QFFiles:FileAndPathName)])
!!!!!! F# = True
!!!!!! End
!!!!!! End
!!!! If Clip(Lower(QTasks:Folder)) = Lower(QFFiles:FolderName[1 :
len(clip(QTasks:Folder))])
!!!! QFFiles:FolderName = QFFiles:FolderName[len(clip(QTasks:Folder)) + 1 :
Size(QFFiles:FolderName) ]
!!!! End
!!!
!!!
! S# = 0
! Loop
! S# = S# + 1
! If S# > len(clip(QFFiles:FileAndPathName)) then break.
! If Lower(QSit:URL[1 : S#]) <> Lower(QFFiles:FileAndPathName[1 : S#])
! Break
! End
! End
! If S# > 1
! QFFiles:FolderName = QFFiles:FileAndPathName[S# :
Size(QFFiles:FileAndPathName)]
! End
!
!
!
!
! P2# = Len(Clip(QFFiles:FolderName)) + 1
! Loop
! P2# = P2# - 1
! If P2# = 0
! Break
! End
! If QFFiles:FolderName[P2#] = '/'
! Break
! End
! End
! QFFiles:FileName = ''
! If P2# > 1
! QFFiles:FileName = QFFiles:FolderName[P2# + 1 : Size(QFFiles:FolderName)]
! QFFiles:FolderName = QFFiles:FolderName[1 : P2# -1]
! Else
! QFFiles:FileName = QFFiles:FolderName
! QFFiles:FolderName = ''
! End
!
!
! L# = Len(Clip(QSit:URL))
!
! If Lower(QSit:URL[1 : L#]) = Lower(QFFiles:FileAndPathName[1 : L#])
! Get(QFFiles,QFFiles:QSitesNumber,QFFiles:FileAndPathName)
! If Errorcode() <> 0
! QFFiles:Number = QFFiles:Number + 1
!! If QFFiles:FileAndPathName[1:4] = 'http'
! QFFiles:URL = QFFiles:FileAndPathName
!! Else
!! QFFiles:URL = Clip(QSit:URL) & '/' & QFFiles:FileAndPathName
!! End
! Add(QFFiles,+QFFiles:QSitesNumber,+QFFiles:FileAndPathName)
!
!!!! ForTas:Number = ForTas:NumberMax + 1
!!!! ForTas:Number = ForTas:NumberMax
!!!! ForTas:ToDo = True
!!!! ForTas:Doing = 0
!!!! ForTas:Done = 0
!!!! ForTas:Failed = 0
!!!! ForTas:Pending = 0
!!!! ForTas:Started = 0
!!!! ForTas:Succeeded = 0
!!!! ForTas:ToTwa = 0
!!!! ForTas:Deployed = 0
!!!! ForTas:IE = 0
!!!! ForTas:IECustom = 0
!!!! ForTas:NW = True
!!!! ForTas:NWCustom = 0
!!!! ForTas:ForumNumber = Sit:Number
!!!!
!!!! ForTas:FileName = QFFiles:FileName
!!!! ForTas:PROXYFileName = QFFiles:FileName
!!!!
!!!!! Clear(InterString512)
!!!!! Clear(ForURL)
!!!!!
!!!!!! ForTas:FileName = 'index.php'
!!!!!! ForTas:PROXYFileName = 'index.htm'
!!!!!
!!!!! Sit:URL = Clip(Sit:URL)
!!!!! ForURL = Sit:URL
!!!!!
!!!!!
!!!!! P# = 0
!!!!! TP# = 1
!!!!! Loop Len(Clip(ForURL)) Times
!!!!! P# = P# + 1
!!!!! If Val(ForURL[P#]) = 32
!!!!! InterString512[TP#] = Chr(32)
!!!!! TP# = TP# + 1
!!!!! Cycle
!!!!! End
!!!!! If Val(UPPER(ForURL[P#])) >= 65 And Val(UPPER(ForURL[P#])) =< 90
!!!!! InterString512[TP#] = ForURL[P#]
!!!!! TP# = TP# + 1
!!!!! Else
!!!!! If Val(UPPER(ForURL[P#])) >= 30h And Val(UPPER(ForURL[P#])) =<
39h
!!!!! InterString512[TP#] = ForURL[P#]
!!!!! TP# = TP# + 1
!!!!! Else
!!!!! InterString512[TP#] = '_'
!!!!! TP# = TP# + 1
!!!!! End
!!!!! End
!!!!! End
!!!!! N" = Format(ForTas:ForumNumber,@N08)
!!!!
!!!! ForTas:Folder = QTasks:Folder & '/' & QFFiles:FolderName
!!!! ForTas:Parameters = ''
!!!! ForTas:FunctionName = 'RetrieveToProxy'
!!!! ForTas:PostURL = Clip(Sit:URL) & '/' & QFFiles:FolderName
!!!! ForTas:InstructionLine = ''
!Clip(ForTas:FunctionName) & '(' & Clip(Sit:URL) & Clip(ForTas:FileName) & ',' & DRIVE & ':\Proxy\' &
Clip(ForTas:Folder) & '\' & Clip(ForTas:FileName) & ')'
!!!! Add(Forum_Tasks)
!!!! Cycle
!!!! End
!!!! Flush(Forum_Tasks)
!!!! Message('done')
!!!!
!!!!
!
!
! End
! Else
! Cycle
! End
! End
! End
!
! Close(Dos64kFile)
! End
! End
!
!
! End
! If StartRetrieveFileData = True
! SearchString = '.js'
! !G = 0
! Loop 1 Times
! G = G + 1
! If G > 1000
! StartRetrieveFileData = 0
! Break
! End
! Get(QTasks,G)
!
! Dos64kFileName = DRIVE & ':\Proxy\' & Clip(QTasks:Folder) & '\' &
Clip(QTasks:PROXYFileName)
!
! Share(Dos64kFile)
! Set(Dos64kFile)
!
! Clear(ReadData)
! T# = 1
! S# = Bytes(Dos64kFile)
! Loop
! Next(Dos64kFile)
! If Errorcode() <> 0
! ef# = True
! End
! ReadData[T# : T# + 64000 -1] = Dos64kPre:Line
! If ef# = True
! break
! End
! T# = T# + 64000
! If T# + 64000 > Size(ReadData) then break.
! End
!
! QFFiles:QSitesNumber = QTasks:ForumNumber
!!! QFFiles:FileAndPathName = Clip(Left(QFFiles:FileAndPathName))
! QSit:Number = QFFiles:QSitesNumber
! Get(QSites,+QSit:Number)
!
!
! V# = False
! P = 0
! l2# = len(clip(ReadData))
! L = Len(clip(SearchString))
! Loop
! P = P + 1
! If P > l2#
! Break
! End
! If Lower(Clip(SearchString)) = Lower(ReadData[P : P + L-1])
! QFFiles:FileAndPathName = ''
! P2# = P + L - 1
! Loop
! P2# = P2# - 1
! If P2# = 0 then break.
! If ReadData[P2#] = '"' Or ReadData[P2#] = '''' Or ReadData[P2#] = '='
! QFFiles:FileAndPathName = ReadData[P2# +1 : P + L-1]
! Break
! End
! End
!
!!! P2# = Len(Clip(QFFiles:FileAndPathName)) + 1
!!! Loop
!!! P2# = P2# - 1
!!! If P2# = 0
!!! Break
!!! End
!!! If QFFiles:FileAndPathName[P2#] = '/'
!!! Break
!!! End
!!! End
!!!
!!!! S# = 0
!!!! Loop
!!!! S# = S# + 1
!!!! If S# > len(clip(QFFiles:FolderName)) then break.
!!!! If Lower(QSit:URL[1 : S#]) <> Lower(QFFiles:FileAndPathName[1 : S#])
!!!! Break
!!!! End
!!!! End
!!!! If S# > 1
!!!! QFFiles:FileAndPathName = QFFiles:FileAndPathName[S# :
Size(QFFiles:FileAndPathName)]
!!!! End
!!!
!!!
!!! QFFiles:FileName = ''
!!! QFFiles:FolderName = ''
!!! If P2# > 1
!!! QFFiles:FileName = QFFiles:FileAndPathName[P2# + 1 :
Size(QFFiles:FileAndPathName)]
!!! QFFiles:FolderName = QFFiles:FileAndPathName[1 : P2# -1]
!!! Else
!!! QFFiles:FileName = QFFiles:FileAndPathName
!!! End
!!!
!!! QFFiles:QSitesNumber = QTasks:ForumNumber
!!!!! QFFiles:FileAndPathName = Clip(Left(QFFiles:FileAndPathName))
!!! QSit:Number = QFFiles:QSitesNumber
!!! Get(QSites,+QSit:Number)
!
!
! QFFiles:URL = QSit:URL
! If Lower(QFFiles:URL[1 : 11]) <> 'http://www.'
! If Lower(QFFiles:FileAndPathName[1 : 11]) = 'http://www.'
! QFFiles:FileAndPathName = 'http://' & QFFiles:FileAndPathName[12 :
Size(QFFiles:FileAndPathName)]
! End
! End
! If Lower(QFFiles:FileAndPathName[1 : 7]) <> 'http://'
! QFFiles:FileAndPathName = Clip(QSit:URL) & Clip(QFFiles:FileAndPathName)
! End
!! If QFFiles:FileAndPathName[1 : 2] = '//'
!! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 2 :
Size(QFFiles:FileAndPathName)]
!! End
! If QFFiles:FileAndPathName[1] = '/'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 3 :
Size(QFFiles:FileAndPathName)]
! End
! If QFFiles:FileAndPathName[1 : 3] = '../'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 4 :
Size(QFFiles:FileAndPathName)]
! End
! If QFFiles:FileAndPathName[1 : 2] = '..'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[ 3 :
Size(QFFiles:FileAndPathName)]
! End
!
!
! P# = 8
! L# = Len(Clip(QFFiles:FileAndPathName))
! Loop
! P# = P# + 1
! If (P# + 1) > L#
! break
! End
! If QFFiles:FileAndPathName[P# : P# + 1] = '//'
! QFFiles:FileAndPathName = QFFiles:FileAndPathName[1 : P#] &
QFFiles:FileAndPathName[P# + 2 : Size(QFFiles:FileAndPathName)]
! P# = 8
! End
! End
!
!
!
!!!
!!! Get(QFFiles,QFFiles:QSitesNumber,QFFiles:FileAndPathName)
!!! F# = False
!!! If QFFiles:FileAndPathName[1 : 3] = '../'
!!! QFFiles:FileAndPathName = Clip(QSit:URL) & Clip(QFFiles:FileAndPathName[4 :
Size(QFFiles:FileAndPathName)])
!!! F# = True
!!! End
!!! If QFFiles:FileAndPathName[1] = '/'
!!! QFFiles:FileAndPathName = Clip(QSit:URL) & Clip(QFFiles:FileAndPathName[2 :
Size(QFFiles:FileAndPathName)])
!!! F# = True
!!! End
!!!
!!!
!!!!!! If F# = False
!!!!!! If lower(QFFiles:FileAndPathName[1 : 4]) <> 'http'
!!!!!! QFFiles:FileAndPathName = Clip(QSit:URL) &
Clip(QFFiles:FileAndPathName[1 : Size(QFFiles:FileAndPathName)])
!!!!!! F# = True
!!!!!! End
!!!!!! End
!!!! If Clip(Lower(QTasks:Folder)) = Lower(QFFiles:FolderName[1 :
len(clip(QTasks:Folder))])
!!!! QFFiles:FolderName = QFFiles:FolderName[len(clip(QTasks:Folder)) + 1 :
Size(QFFiles:FolderName) ]
!!!! End
!!!
!!!
! S# = 0
! Loop
! S# = S# + 1
! If S# > len(clip(QFFiles:FileAndPathName)) then break.
! If Lower(QSit:URL[1 : S#]) <> Lower(QFFiles:FileAndPathName[1 : S#])
! Break
! End
! End
! If S# > 1
! QFFiles:FolderName = QFFiles:FileAndPathName[S# :
Size(QFFiles:FileAndPathName)]
! End
!
!
!
!
! P2# = Len(Clip(QFFiles:FolderName)) + 1
! Loop
! P2# = P2# - 1
! If P2# = 0
! Break
! End
! If QFFiles:FolderName[P2#] = '/'
! Break
! End
! End
! QFFiles:FileName = ''
! If P2# > 1
! QFFiles:FileName = QFFiles:FolderName[P2# + 1 : Size(QFFiles:FolderName)]
! QFFiles:FolderName = QFFiles:FolderName[1 : P2# -1]
! Else
! QFFiles:FileName = QFFiles:FolderName
! QFFiles:FolderName = ''
! End
!
!
! L# = Len(Clip(QSit:URL))
!
! If Lower(QSit:URL[1 : L#]) = Lower(QFFiles:FileAndPathName[1 : L#])
! Get(QFFiles,QFFiles:QSitesNumber,QFFiles:FileAndPathName)
! If Errorcode() <> 0
! QFFiles:Number = QFFiles:Number + 1
!! If QFFiles:FileAndPathName[1:4] = 'http'
! QFFiles:URL = QFFiles:FileAndPathName
!! Else
!! QFFiles:URL = Clip(QSit:URL) & '/' & QFFiles:FileAndPathName
!! End
! Add(QFFiles,+QFFiles:QSitesNumber,+QFFiles:FileAndPathName)
!
!!!! ForTas:Number = ForTas:NumberMax + 1
!!!! ForTas:Number = ForTas:NumberMax
!!!! ForTas:ToDo = True
!!!! ForTas:Doing = 0
!!!! ForTas:Done = 0
!!!! ForTas:Failed = 0
!!!! ForTas:Pending = 0
!!!! ForTas:Started = 0
!!!! ForTas:Succeeded = 0
!!!! ForTas:ToTwa = 0
!!!! ForTas:Deployed = 0
!!!! ForTas:IE = 0
!!!! ForTas:IECustom = 0
!!!! ForTas:NW = True
!!!! ForTas:NWCustom = 0
!!!! ForTas:ForumNumber = Sit:Number
!!!!
!!!! ForTas:FileName = QFFiles:FileName
!!!! ForTas:PROXYFileName = QFFiles:FileName
!!!!
!!!!! Clear(InterString512)
!!!!! Clear(ForURL)
!!!!!
!!!!!! ForTas:FileName = 'index.php'
!!!!!! ForTas:PROXYFileName = 'index.htm'
!!!!!
!!!!! Sit:URL = Clip(Sit:URL)
!!!!! ForURL = Sit:URL
!!!!!
!!!!!
!!!!! P# = 0
!!!!! TP# = 1
!!!!! Loop Len(Clip(ForURL)) Times
!!!!! P# = P# + 1
!!!!! If Val(ForURL[P#]) = 32
!!!!! InterString512[TP#] = Chr(32)
!!!!! TP# = TP# + 1
!!!!! Cycle
!!!!! End
!!!!! If Val(UPPER(ForURL[P#])) >= 65 And Val(UPPER(ForURL[P#])) =< 90
!!!!! InterString512[TP#] = ForURL[P#]
!!!!! TP# = TP# + 1
!!!!! Else
!!!!! If Val(UPPER(ForURL[P#])) >= 30h And Val(UPPER(ForURL[P#])) =<
39h
!!!!! InterString512[TP#] = ForURL[P#]
!!!!! TP# = TP# + 1
!!!!! Else
!!!!! InterString512[TP#] = '_'
!!!!! TP# = TP# + 1
!!!!! End
!!!!! End
!!!!! End
!!!!! N" = Format(ForTas:ForumNumber,@N08)
!!!!
!!!! ForTas:Folder = QTasks:Folder & '/' & QFFiles:FolderName
!!!! ForTas:Parameters = ''
!!!! ForTas:FunctionName = 'RetrieveToProxy'
!!!! ForTas:PostURL = Clip(Sit:URL) & '/' & QFFiles:FolderName
!!!! ForTas:InstructionLine = ''
!Clip(ForTas:FunctionName) & '(' & Clip(Sit:URL) & Clip(ForTas:FileName) & ',' & DRIVE & ':\Proxy\' &
Clip(ForTas:Folder) & '\' & Clip(ForTas:FileName) & ')'
!!!! Add(Forum_Tasks)
!!!! Cycle
!!!! End
!!!! Flush(Forum_Tasks)
!!!! Message('done')
!!!!
!!!!
!
!
!
! End
! Else
! Cycle
! End
! End
! End
!
! Close(Dos64kFile)
! End
! End
!
!
and to save the image to disk
SaveDC Routine
TBar_DIBitsSize = Int((TBar_BIH.TBar_BIHWidth + 3)/4) * 4 *
TBar_BIH.TBar_BIHHeight * 4
TBar_DIBits &= New( String(TBar_DIBitsSize) )
TBar_DIBitsPointer = Address(TBar_DIBits)
TBar_BMPSize = Size(TBar_BFH) + Size(TBar_BIH) + TBar_DIBitsSize
TBar_BMPFile &= NEW(String(TBar_BMPSize))
TBar_BMPPointer = Address(TBar_BMPFile)
R# =
GetDIBits(TBar_BkGndDCHnd,TBar_DIBSectionHnd,0,TBar_BIH.TBar_BIHHeight,TBar_DIBitsPointer,Address(TBar_BIH),0)
TBar_BMPFile[1 : Size(TBar_BFH)] = TBar_BFH
TBar_BMPFile[Size(TBar_BFH) + 1 : Size(TBar_BFH) + Size(TBar_BIH)] = TBar_BIH
TBar_BMPFile[Size(TBar_BFH) + 1 + Size(TBar_BIH) : Size(TBar_BFH) + Size(TBar_BIH) +
TBar_DIBitsSize] = TBar_DIBits[1 : TBar_DIBitsSize]
!?Img2{PROP:ImageBits} = TBar_BMPFile[1 : TBar_BMPSize]
TheGlobalFile = DRIVE & ':\' & Clip(QSit:ProxyFolderName) & '\' &
Format(QSit:ProxyFoldersNumber,@N08) & '.Bmp'
L# = Len(Clip(TheGlobalFile))
P# = 1
Loop L# Times
If TheGlobalFile[P#] = '/'
TheGlobalFile[P#] = '\'
End
P# = P# + 1
End
Dos64kFileName = Clip(TheGlobalFile)
Create(Dos64kFile)
Share(Dos64kFile)
!Send(Dos64kFile,'FILEBUFFERS=10000')
k64s# = Int(((Size(TBar_BMPFile))/64000))
P# = 1
Loop k64s# Times
Dos64kPre:Line = TBar_BMPFile[P# : P# + 63999]
Add(Dos64kFile)
P# = P# + 64000
End
Close(Dos64kFile)
!TheGlobalFile = 'raar'
! DF1bName = Dos64kFileName
! Share(DF1b)
! Send(DF1b,'FILEBUFFERS=10000')
! T# = (Size(TBar_BMPFile))- k64s#
! P = k64s# * 64000
! Loop T# Times
! P = P + 1
! Dos1b:Line = Val(TBar_BMPFile[P])
! Add(DF1b)
! Cycle
! End
! Close(DF1b)
R# = DeleteObject(TBar_LogBrushHnd)
R# = DeleteObject(TBar_FontHandle)
R# = DeleteObject(TBar_DIBSectionHnd)
R# = DeleteDC(TBar_BkGndDCHnd)
Dispose(TBar_BMPFile)
Dispose(TBar_DIBits)
Today is November 21, 2024, 6:53 am This article has been viewed 35202 times. Google search has resulted in 23 hits on this article since January 25, 2004.
|
|