ich habe hier ein Screenshotprogramm veröffentlicht, welches ich selber einsetze. Die Routinen habe ich aus verschiedenen Programmen entwendet... Vielleicht kann jemand dieses Programm gebrauchen.
P.S. Wer Rechtschreibfehler findet darf diese behalten...
Gruß Michael
Code: Alles auswählen
;-TOP
; Kommentar : Einfaches Screenshot
; Version : v.1.00
; Author : Michael Paulwitz
;
; Datei : Screenshot.pb
; Erstellt : 06.06.2008
; Geändert :
; Sprache : Purebasic 4.0 und höher
; ***************************************************************************************
UseJPEGImageEncoder()
ExamineDesktops()
Hilfetext.s = " Einfaches Screenshotprogramm von MP aus Berlin v1.00" + Chr(10)+Chr(10)
Hilfetext.s = Hilfetext.s + "Ein Screenshot wird durch die Taste <Druck> oder durch das gleichzeitige drücken"+Chr(10)
Hilfetext.s = Hilfetext.s + "der Taste <Alt> + <Druck> erstellt. Durch die <Druck> Taste wird eine Screenshot"+Chr(10)
Hilfetext.s = Hilfetext.s + "des Desktops und durch <Alt> + <Druck> wird ein Screenshot des aktiven Fensters"+Chr(10)
Hilfetext.s = Hilfetext.s + "gespeichert. Das Speicherformat ist JPG und wird automatisch fortlaufend nummeriert."+Chr(10)+Chr(10)
Hilfetext.s = Hilfetext.s + "Viel Spaß wünscht Euch Michael."
For k=1 To 255 : GetAsyncKeyState_(k) : Next ; Clear all
CreatePopupMenu(0)
MenuItem(1, "Erstelle Screenshot vom Desktop @MP Berlin")
MenuBar()
MenuItem(2, "Info")
MenuBar()
MenuItem(3, "Ende")
OpenWindow(0, 10, 10, 10, 10, "Screenshot", #PB_Window_Invisible)
;assign a taskbar icon to the above hidden window.
AddSysTrayIcon(1, WindowID(0), CatchImage(0, ?Screenshoticon))
SysTrayIconToolTip(1, "Screenshot Programm, Start über <Druck> oder <Alt><Druck> Taste")
Repeat
; wait for the user to do something....
Event=WindowEvent()
If GetAsyncKeyState_(44) = -32768 Or Use = 1
If use = 1
use = 0
Delay (10)
hImage = CreateImage(0,DesktopWidth(0),DesktopHeight(0))
hDC = StartDrawing(ImageOutput(0))
DeskDC = GetDC_(GetDesktopWindow_())
BitBlt_(hDC,0,0,DesktopWidth(0),DesktopHeight(0),DeskDC,0,0,#SRCCOPY)
StopDrawing()
ReleaseDC_(GetDesktopWindow_(),DeskDC)
SetActiveWindow(0)
Else
GetClipboardImage(0)
EndIf
shot + 1
StandardFile$ = "C:\Screenshot"+Right("000"+Str(Shot),4)+".jpg" ; anfänglichen Pfad + Dateiname festlegen
Pattern$ = "JPG Grafikdatei (*.jpg)|*jpg"
Pattern = 0 ; wir verwenden den ersten von drei möglichen Pattern als Standard
File$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", StandardFile$, Pattern$, Pattern)
If File$
If GetExtensionPart(File$) = ""
File$ = File$ + ".jpg"
EndIf
SaveImage(0, File$,#PB_ImagePlugin_JPEG)
Else
MessageRequester("Information", "Screen wurde nicht gespeichert", 0)
EndIf
EndIf
; is the "event" over the system tray ?
If Event = #PB_Event_SysTray
Select EventType()
Case #PB_EventType_RightClick ; was it a right mouse click ?
DisplayPopupMenu(0, WindowID(0)) ; then display the popup menu
EndSelect
EndIf
; Ereigniss vom Menü erzeugt?
If Event = #PB_Event_Menu
Select EventMenu()
Case 1 ; Screenshot erzeugen
use=1
Case 2 ; Hilfe
MessageRequester("Info", Hilfetext.s, #PB_MessageRequester_Ok)
Case 3 ; Quit
Quit=1
EndSelect
EndIf
Delay (10)
; keep doing the above until user chooses a delay time or the quit option
Until Quit=1
End
DataSection
Screenshoticon:
Data.b 0,0,1,0,1,0,32,32,4,0,0,0,0,0,-24,2,0,0,22,0,0,0,40,0,0,0,32,0,0,0,64,0
Data.b 0,0,1,0,4,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,-128,0,0,-128,0,0,0,-128,-128,0,-128,0,0,0,-128,0,-128,0,-128,-128,0,0,-64,-64,-64,0
Data.b -128,-128,-128,0,0,0,-1,0,0,-1,0,0,0,-1,-1,0,-1,0,0,0,-1,0,-1,0,-1,-1,0,0,-1,-1,-1
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-120,-120,-128,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,-120,-120,-120,-120,0,0,0,0,0,0,0,0,0,0,0,0,-120,-120,-120,-120
Data.b -128,0,0,0,0,0,0,-128,0,0,0,0,-120,-128,0,0,-120,0,0,0,8,0,0,-120,0,0,0,8,-120,-128,-120
Data.b -120,-120,-128,0,0,-120,0,0,-120,0,0,0,-120,-120,-120,119,119,-128,-120,0,0,-120,0,0,-120,0,0,8,-121,-120,-120
Data.b 127,-9,-128,-120,-128,0,-120,0,0,-120,0,0,8,-121,-120,-120,-121,-9,-128,-120,-128,0,-120,0,0,-120,0,0,8,-121,-120
Data.b -120,-120,119,-128,-120,-128,0,-120,0,0,-120,-120,-128,8,-121,-120,-120,-120,-120,0,-120,-128,0,-120,0,0,-120,-120,-120,0,-120
Data.b -120,-120,-120,-120,-120,-120,-128,0,-120,0,0,-120,8,-120,0,-120,0,-120,-120,-120,-120,-120,0,0,-120,0,0,-128,0,-128,0
Data.b -120,0,-120,-120,-120,-120,-120,0,0,8,0,0,0,0,0,0,0,-120,-121,119,120,-128,0,0,0,0,0,0,0,0,0
Data.b 0,0,-120,-120,-120,-120,0,0,0,0,0,0,0,0,0,0,0,0,0,8,-120,-128,0,-120,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,-120,-128,0,0,0,0,0,0,0,0,0,0,0,0,0,-120,-120,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,-120,0,0,0,0,0,0,0,0,0,0,0,0,8,-120,-120,-120,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,-120,-120,-120,0,0,0,0,0,0,0,0,0,0,0,0,0,8,-120,-128,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
Data.b -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-64,0,0,3,-64,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-13,-64,0,51,-13,-64,0,51,-13,-16,3
Data.b -1,-13,-16,3,-1,-1,-4,15,-1,-1,-4,15,-1,-1,-1,-1,-1,-1,-1,-1,-1
EndDataSection