Screen Speichern>>>>
Verfasst: 10.12.2007 10:27
Hallo ich wollte ma nen kleines Screen programm machen,so klappt alles leider ist mir aufgefalle das wenn wenn ich nicht das window angeklickt habe,das er den den screen nicht abspeichert vielleicht könnte das ja jemand für mich machen,weil ich hätt doch ganz gerne ma endlich nen eigenes programm fertig ^^
MfG
XCorE
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
#SRCCOPY = $CC0020
#DLLID_User32 = 0
#DLLID_GDI32 = 1
#ImageID = 0
#ERRMSG="Error"
Enumeration
#Hyperlink_0
#Text_0
#Text_2
#Text_3
#Text_4
#Text_5
#Frame3D_0
#Button_0
#Button_2
#Frame3D_1
#CheckBox_1
#CheckBox_2
#CheckBox_3
EndEnumeration
Enumeration
#StatusBar_0
EndEnumeration
Global FontID1
FontID1 = LoadFont(1, "Blade Runner Movie Font", 12, #PB_Font_Bold | #PB_Font_Italic)
Global FontID2
FontID2 = LoadFont(2, "Lucida Console", 10)
Procedure Open_Window_0()
If OpenWindow(#Window_0, 399, 81, 333, 228, "X-Snapper v.1.0", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateStatusBar(#StatusBar_0, WindowID(#Window_0))
EndIf
If CreateGadgetList(WindowID(#Window_0))
HyperLinkGadget(#Hyperlink_0, 70, 0, 170, 20, "www.xsoft.de.ms", RGB(0, 600, 600))
SetGadgetFont(#Hyperlink_0, FontID1)
TextGadget(#Text_0, 30, 150, 280, 10, "Drücke F12 um ein Screen zu machen")
SetGadgetFont(#Text_0, FontID2)
TextGadget(#Text_2, 30, 170, 70, 20, "Speichern als :")
TextGadget(#Text_3, 160, 170, 20, 20, ".jpg")
TextGadget(#Text_4, 280, 170, 30, 20, ".bmp")
TextGadget(#Text_5, 220, 170, 20, 20, ".gif")
Frame3DGadget(#Frame3D_0, 10, 160, 310, 40, "")
ButtonGadget(#Button_0, 20, 110, 80, 30, "Screens")
ButtonGadget(#Button_2, 230, 110, 80, 30, "Alle löschen")
Frame3DGadget(#Frame3D_1, 10, 20, 310, 80, "")
CheckBoxGadget(#CheckBox_1, 130, 170, 20, 20, "")
CheckBoxGadget(#CheckBox_2, 200, 170, 20, 20, "")
CheckBoxGadget(#CheckBox_3, 260, 170, 20, 20, "")
EndIf
EndIf
EndProcedure
Procedure.l ScreenShot(Path.s)
Protected hWnd.l
Protected hDC.l
Protected DeviceContext.l
If Not OpenLibrary(#DLLID_User32,"User32.dll") Or Not OpenLibrary(#DLLID_GDI32,"GDI32.dll")
ProcedureReturn #False
Else
hWnd = CallFunction(#DLLID_User32,"GetDesktopWindow")
hDC = CallFunction(#DLLID_User32,"GetDC",hWnd)
ExamineDesktops()
CreateImage(#ImageID,DesktopWidth(0),DesktopHeight(0))
DeviceContext = StartDrawing(ImageOutput(#ImageID)) ;>
CallFunction(#DLLID_GDI32,"BitBlt",DeviceContext,0,0,ImageWidth(#ImageID),ImageHeight(#ImageID),hDC,0,0,#SRCCOPY)
StopDrawing() ;<
SaveImage(#ImageID,Path)
FreeImage(#ImageID)
CloseLibrary(#DLLID_GDI32)
CloseLibrary(#DLLID_User32)
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Open_Window_0()
AddKeyboardShortcut(#Window_0,#PB_Shortcut_F12,1)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Menu
Select EventMenu()
Case 1
If GetGadgetState(#CheckBox_1) = 1
Screenshot(GetCurrentDirectory()+"Screens\"+"Screen.jpg"+erweiterung$)
EndIf
If GetGadgetState(#CheckBox_2) = 1
Screenshot(GetCurrentDirectory()+"Screens\"+"Screen.gif"+erweiterung$)
EndIf
If GetGadgetState(#CheckBox_3) = 1
Screenshot(GetCurrentDirectory()+"Screens\"+"Screen.bmp"+erweiterung$)
EndIf
EndSelect
EndIf
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = #Hyperlink_0
ElseIf GadgetID = #Button_0
ElseIf GadgetID = #Button_2
DeleteFile(GetCurrentDirectory()+"Screens\"+"Screen"+erweiterung$)
ElseIf GadgetID = #CheckBox_1
If GetGadgetState(#CheckBox_1) = 1
MessageRequester("Hinweis:","Screen wird nun als .jpg gespeichert")
EndIf
ElseIf GadgetID = #CheckBox_2
If GetGadgetState(#CheckBox_2) = 1
MessageRequester("Hinweis:","Screen wird nun als .gif gespeichert")
EndIf
ElseIf GadgetID = #CheckBox_3
If GetGadgetState(#CheckBox_3) = 1
MessageRequester("Hinweis:","Screen wird nun als .bmp gespeichert")
EndIf
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
End
XCorE
