Download
Code: Alles auswählen
Enumeration
#Window
#dir
#search
#format
#comp
#c_txt
#state
#Icon
#Qwin
#Qbut
#Qtrak
EndEnumeration
Global typ.l, Selected.w
NewList text.s()
UseJPEGImageEncoder()
UsePNGImageEncoder()
Procedure popup()
If CreatePopupMenu(0)
MenuItem(1, "aktiv")
SetMenuItemState(0,1,1)
MenuItem(2, "Pfad")
MenuItem(7, "Qualität")
OpenSubMenu("Format")
MenuItem(3, "bmp")
MenuItem(4, "png")
MenuItem(5, "jpg")
CloseSubMenu()
If CountList(text())<>0
MenuBar()
OpenSubMenu("Kopierter text")
ForEach text()
MenuItem(9+ListIndex(text()),Left(Trim(text()),10)+"...")
Next
SetMenuItemState(0,Selected,1)
CloseSubMenu()
MenuItem(8,"löschen")
EndIf
MenuBar()
MenuItem( 6, "Quit")
SetMenuItemState(0,3+GetGadgetState(#format),1)
Select GetGadgetState(#format)
Case 0
DisableMenuItem(7,1)
Case 1
DisableMenuItem(7,1)
Case 2
DisableMenuItem(7,0)
EndSelect
EndIf
EndProcedure
Procedure WatchClipbrd(Count)
Repeat
Delay(100)
daten=GetClipboardData(#PB_ClipboardImage)
text.s=GetClipboardText()
If daten<>0
Count=0
comp=0
directory$=GetGadgetText(#dir)
format$=GetGadgetText(#format)
If format$=".jpg"
comp=GetGadgetState(#comp)
EndIf
ExamineDirectory(0,directory$,"*"+format$)
Repeat
type=NextDirectoryEntry()
If type=1
Count+1
EndIf
Until type=0
ExamineDesktops()
CreateImage(0,DesktopWidth(0),DesktopHeight(0))
StartDrawing(ImageOutput())
DrawImage(daten,0,0)
StopDrawing()
SaveImage(0,directory$+"\screenshot"+Str(Count)+format$,typ,comp)
SetGadgetText(#state,"screenshot"+Str(Count)+format$+" gespeichert")
FreeImage(0)
ClearClipboard()
EndIf
If Len(text)>0
found=0
ForEach text()
If text()=text
found=1
Break
EndIf
Next
If found=0
AddElement(text())
text()=text
ForEach text()
SetMenuItemState(0,ListIndex(text())+9,0)
Next
SetMenuItemState(0,CountList(text())+8,1)
Selected=CountList(text())+8
popup()
EndIf
EndIf
ForEver
EndProcedure
Procedure SaveSettings()
DeleteFile("settings.dat")
OpenFile(0,"settings.dat")
WriteStringN(GetGadgetText(#dir))
WriteByte(GetGadgetState(#format))
WriteByte(GetGadgetState(#comp))
CloseFile(0)
EndProcedure
Procedure Qualwahl()
OpenWindow(#Qwin,DesktopMouseX(),DesktopMouseY(),100,20,#PB_Window_BorderLess,"Qualität",WindowID(#Window))
CreateGadgetList(WindowID())
TrackBarGadget(#Qtrak,1,1,60,17,0,10,#PB_TrackBar_Ticks)
ButtonGadget(#Qbut,62,1,20,17,"OK")
SetGadgetState(#Qtrak,GetGadgetState(#comp))
Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_Gadget
GadgetID=EventGadgetID()
EndIf
Until GadgetID=#Qbut
SetGadgetState(#comp,GetGadgetState(#Qtrak))
SaveSettings()
SetGadgetText(#c_txt,"Qualität:"+Str(GetGadgetState(#comp)))
CloseWindow(#Qwin)
EndProcedure
hWnd.l=OpenWindow(#Window,100,100,100,100,#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered,"ClipIt!")
CreateGadgetList(WindowID())
StringGadget(#dir,1,1,90,20,"C:\")
ButtonGadget(#search,92,1,18,20,"..")
ComboBoxGadget(#format,1,22,50,70)
AddGadgetItem(#format,0,".bmp")
AddGadgetItem(#format,1,".png")
AddGadgetItem(#format,2,".jpg")
SetGadgetState(#format,0)
TextGadget(#c_txt,1,45,50,15,"Qualität:7")
TrackBarGadget(#comp,55,45,60,15,0,10,#PB_TrackBar_Ticks)
SetGadgetState(#comp,7)
TextGadget(#state,1,70,98,40," bereit")
ClearClipboard()
OpenFile(0,"settings.dat")
SetGadgetText(#dir,ReadString())
SetGadgetState(#format,ReadByte())
SetGadgetState(#comp,ReadByte())
CloseFile(0)
SetGadgetText(#c_txt,"Qualität:"+Str(GetGadgetState(#comp)))
CatchImage(1,?icon)
AddSysTrayIcon(#Icon,WindowID(#Window),ImageID())
SysTrayIconToolTip(#Icon, "Zwischenablage wird überwacht")
popup()
ThreadID=CreateThread(@WatchClipbrd(),0)
ThreadPriority(ThreadID,10)
Goto enablecomp
While WindowEvent():Wend
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
GadgetID=EventGadgetID()
If GadgetID=#search
path$=PathRequester("Pfad wählen",GetGadgetText(#dir))
If Len(path$)>0
SetGadgetText(#dir,path$)
SaveSettings()
EndIf
ElseIf GadgetID=#comp
SetGadgetText(#c_txt,"Qualität:"+Str(GetGadgetState(#comp)))
SaveSettings()
ElseIf GadgetID=#format
enablecomp:
Select GetGadgetText(#format)
Case ".bmp"
DisableGadget(#comp,1)
DisableMenuItem(7,1)
typ=#PB_ImagePlugin_BMP
SetMenuItemState(0,3,1)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,0)
Case ".png"
DisableGadget(#comp,1)
DisableMenuItem(7,1)
typ=#PB_ImagePlugin_PNG
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,1)
SetMenuItemState(0,5,0)
Case ".jpg"
DisableGadget(#comp,0)
DisableMenuItem(7,0)
typ=#PB_ImagePlugin_JPEG
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,1)
EndSelect
SaveSettings()
ElseIf GadgetID=#dir
SaveSettings()
EndIf
ElseIf EventID=#PB_Event_SysTray
EventType=EventType()
If EventType=#PB_EventType_RightClick
DisplayPopupMenu(0, WindowID())
ElseIf EventType=#PB_EventType_LeftClick
state=(state-1)/-1
HideWindow(#Window,state)
popup()
EndIf
ElseIf EventID=#PB_Event_Menu
EvMID= EventMenuID() ; To see which menu has been selected
If EvMID= 1 ; aktiv
If GetMenuItemState(0,1)=1
SetMenuItemState(0,1,0)
PauseThread(ThreadID)
SetGadgetText(#state,"inaktiv")
SysTrayIconToolTip(#Icon,"Überwachung der Zwischenablage angehalten")
Else
SetMenuItemState(0,1,1)
ResumeThread(ThreadID)
SetGadgetText(#state,"bereit")
SysTrayIconToolTip(#Icon,"Zwischenablage wird überwacht")
EndIf
ElseIf EvMID= 2 ; pfad
path$=PathRequester("Pfad wählen",GetGadgetText(#dir))
If Len(path$)>0
SetGadgetText(#dir,path$)
SaveSettings()
EndIf
ElseIf EvMID= 3
SetGadgetState(#format,0)
DisableGadget(#comp,1)
DisableMenuItem(7,1)
typ=#PB_ImagePlugin_BMP
SetMenuItemState(0,3,1)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,0)
SaveSettings()
ElseIf EvMID= 4
SetGadgetState(#format,1)
DisableMenuItem(7,1)
DisableGadget(#comp,1)
typ=#PB_ImagePlugin_PNG
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,1)
SetMenuItemState(0,5,0)
SaveSettings()
ElseIf EvMID= 5
SetGadgetState(#format,2)
DisableGadget(#comp,0)
DisableMenuItem(7,0)
typ=#PB_ImagePlugin_JPEG
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,1)
SaveSettings()
ElseIf EvMID= 6 ; Quit
KillThread(ThreadID)
End
ElseIf EvMID=7
Qualwahl()
ElseIf EvMID=8
SetMenuItemState(0,Selected,0)
SelectElement(text(),Selected-9)
DeleteElement(text(),1)
Selected=CountList(text())+8
ClearClipboard()
popup()
ElseIf EvMID>8
ForEach text()
SetMenuItemState(0,ListIndex(text())+9,0)
Next
SelectElement(text(),EvMID-9)
SetMenuItemState(0,EvMID,1)
Selected=EvMID
SetClipboardText(text())
EndIf
EndIf
If IsIconic_(hWnd.l) = 1 And state=0
state=(state-1)/-1
HideWindow(#Window,state)
popup()
EndIf
Until EventID=#PB_Event_CloseWindow
KillThread(ThreadID)
End
DataSection
icon:IncludeBinary "icon.ico"
EndDataSection