Und für die, die es interessiert, der (inzwischen leicht unübersichtliche) SourceCode:
Code: Alles auswählen
Enumeration
#Window_Main
#Window_SetShortCut
EndEnumeration
Enumeration
#Gadget_Button_KILL
#Gadget_Test_Except
#Gadget_Button_Except_Add
#Gadget_Button_Except_Del
#Gadget_Button_Except_AddCurrent
#Gadget_List_Except
#Gadget_List_Current
#Gadget_Button_SetShortCut
#Gadget_Button_SetShortCut_OK
#Gadget_Text_ShortCut
EndEnumeration
Enumeration
#Image_SystrayIcon
EndEnumeration
#PROCESS_QUERY_INFORMATION = 1024
#PROCESS_VM_READ = 16
#PROCESS_TERMINATE = 1
#WH_KEYBOARD_LL = 13
NewList Exceptions.s()
NewList CurrentProcesses.s()
Dim ShortCut.w(3)
ShortCut(0) = #VK_CONTROL
ShortCut(1) = #VK_F12
Global hHook,k
Global SetShortCut
;{VK-Description
#VK_XBUTTON1 = $05
#VK_XBUTTON2 = $06
#VK_HANGUEL = $15
#VK_SLEEP = $5F
#VK_BROWSER_BACK = $A6
#VK_BROWSER_FORWARD = $A7
#VK_BROWSER_REFRESH = $A8
#VK_BROWSER_STOP = $A9
#VK_BROWSER_SEARCH = $AA
#VK_BROWSER_FAVORITES = $AB
#VK_BROWSER_HOME = $AC
#VK_VOLUME_MUTE = $AD
#VK_VOLUME_DOWN = $AE
#VK_VOLUME_UP = $AF
#VK_MEDIA_NEXT_TRACK = $B0
#VK_MEDIA_PREV_TRACK = $B1
#VK_MEDIA_STOP = $B2
#VK_MEDIA_PLAY_PAUSE = $B3
#VK_LAUNCH_MAIL = $B4
#VK_LAUNCH_MEDIA_SELECT = $B5
#VK_LAUNCH_APP1 = $B6
#VK_LAUNCH_APP2 = $B7
#VK_OEM_1 = $BA
#VK_OEM_PLUS = $BB
#VK_OEM_COMMA = $BC
#VK_OEM_MINUS = $BD
#VK_OEM_PERIOD = $BE
#VK_OEM_2 = $BF
#VK_OEM_3 = $C0
#VK_OEM_4 = $DB
#VK_OEM_5 = $DC
#VK_OEM_6 = $DD
#VK_OEM_7 = $DE
#VK_OEM_8 = $DF
#VK_OEM_102 = $E2
#VK_PACKET = $E7
#VK_ATTN = $F6
#VK_CRSEL = $F7
#VK_EXSEL = $F8
#VK_EREOF = $F9
#VK_PLAY = $FA
#VK_ZOOM = $FB
#VK_NONAME = $FC
#VK_PA1 = $FD
#VK_OEM_CLEAR = $FE
Dim VK_Description.s($FE)
VK_Description(#VK_LBUTTON) = "left mouse button"
VK_Description(#VK_RBUTTON) = "right mouse button"
VK_Description(#VK_CANCEL) = "Control-Break processing"
VK_Description(#VK_MBUTTON) = "Middle mouse button (three-button mouse)"
VK_Description(#VK_XBUTTON1) = "Windows 2000/XP: x1 mouse button"
VK_Description(#VK_XBUTTON2) = "Windows 2000/XP: x2 mouse button"
VK_Description(#VK_BACK) = "BACKSPACE key"
VK_Description(#VK_TAB) = "TAB key"
VK_Description(#VK_CLEAR) = "CLEAR key"
VK_Description(#VK_RETURN) = "ENTER key"
VK_Description(#VK_SHIFT) = "SHIFT key"
VK_Description(#VK_CONTROL) = "CTRL key"
VK_Description(#VK_MENU) = "ALT key"
VK_Description(#VK_PAUSE) = "PAUSE key"
VK_Description(#VK_CAPITAL) = "CAPS LOCK key"
VK_Description(#VK_KANA) = "Input Method Editor (IME) Kana mode"
VK_Description(#VK_HANGUEL) = "IME Hanguel mode (maintained For compatibility; use #VK_HANGUL)"
VK_Description(#VK_HANGUL) = "IME Hangul mode"
VK_Description(#VK_JUNJA) = "IME Junja mode"
VK_Description(#VK_FINAL) = "IME final mode"
VK_Description(#VK_HANJA) = "IME Hanja mode"
VK_Description(#VK_KANJI) = "IME Kanji mode"
VK_Description(#VK_ESCAPE) = "ESC key"
VK_Description(#VK_CONVERT) = "IME convert"
VK_Description(#VK_NONCONVERT) = "IME nonconvert"
VK_Description(#VK_ACCEPT) = "IME accept"
VK_Description(#VK_MODECHANGE) = "IME mode change request"
VK_Description(#VK_SPACE) = "SPACEBAR"
VK_Description(#VK_PRIOR) = "PAGE UP key"
VK_Description(#VK_NEXT) = "PAGE DOWN key"
VK_Description(#VK_END) = "End key"
VK_Description(#VK_HOME) = "HOME key"
VK_Description(#VK_LEFT) = "left ARROW key"
VK_Description(#VK_UP) = "UP ARROW key"
VK_Description(#VK_RIGHT) = "right ARROW key"
VK_Description(#VK_DOWN) = "DOWN ARROW key"
VK_Description(#VK_SELECT) = "Select key"
VK_Description(#VK_PRINT) = "PRINT key"
VK_Description(#VK_EXECUTE) = "EXECUTE key"
VK_Description(#VK_SNAPSHOT) = "PRINT SCREEN key"
VK_Description(#VK_INSERT) = "INS key"
VK_Description(#VK_DELETE) = "DEL key"
VK_Description(#VK_HELP) = "HELP key"
VK_Description(#VK_0) = "0 key"
VK_Description(#VK_1) = "1 key"
VK_Description(#VK_2) = "2 key"
VK_Description(#VK_3) = "3 key"
VK_Description(#VK_4) = "4 key"
VK_Description(#VK_5) = "5 key"
VK_Description(#VK_6) = "6 key"
VK_Description(#VK_7) = "7 key"
VK_Description(#VK_8) = "8 key"
VK_Description(#VK_9) = "9 key"
VK_Description(#VK_A) = "A key"
VK_Description(#VK_B) = "B key"
VK_Description(#VK_C) = "C key"
VK_Description(#VK_D) = "D key"
VK_Description(#VK_E) = "E key"
VK_Description(#VK_F) = "F key"
VK_Description(#VK_G) = "G key"
VK_Description(#VK_H) = "H key"
VK_Description(#VK_I) = "I key"
VK_Description(#VK_J) = "J key"
VK_Description(#VK_K) = "K key"
VK_Description(#VK_L) = "L key"
VK_Description(#VK_M) = "M key"
VK_Description(#VK_N) = "N key"
VK_Description(#VK_O) = "O key"
VK_Description(#VK_P) = "P key"
VK_Description(#VK_Q) = "Q key"
VK_Description(#VK_R) = "R key"
VK_Description(#VK_S) = "S key"
VK_Description(#VK_T) = "T key"
VK_Description(#VK_U) = "U key"
VK_Description(#VK_V) = "V key"
VK_Description(#VK_W) = "W key"
VK_Description(#VK_X) = "X key"
VK_Description(#VK_Y) = "Y key"
VK_Description(#VK_Z) = "Z key"
VK_Description(#VK_LWIN) = "left Windows key (Microsoft® Natural® keyboard)"
VK_Description(#VK_RWIN) = "right Windows key (Natural keyboard)"
VK_Description(#VK_APPS) = "Applications key (Natural keyboard)"
VK_Description(#VK_SLEEP) = "Computer Sleep key"
VK_Description(#VK_NUMPAD0) = "Numeric keypad 0 key"
VK_Description(#VK_NUMPAD1) = "Numeric keypad 1 key"
VK_Description(#VK_NUMPAD2) = "Numeric keypad 2 key"
VK_Description(#VK_NUMPAD3) = "Numeric keypad 3 key"
VK_Description(#VK_NUMPAD4) = "Numeric keypad 4 key"
VK_Description(#VK_NUMPAD5) = "Numeric keypad 5 key"
VK_Description(#VK_NUMPAD6) = "Numeric keypad 6 key"
VK_Description(#VK_NUMPAD7) = "Numeric keypad 7 key"
VK_Description(#VK_NUMPAD8) = "Numeric keypad 8 key"
VK_Description(#VK_NUMPAD9) = "Numeric keypad 9 key"
VK_Description(#VK_MULTIPLY) = "Multiply key"
VK_Description(#VK_ADD) = "Add key"
VK_Description(#VK_SEPARATOR) = "Separator key"
VK_Description(#VK_SUBTRACT) = "Subtract key"
VK_Description(#VK_DECIMAL) = "Decimal key"
VK_Description(#VK_DIVIDE) = "Divide key"
VK_Description(#VK_F1) = "F1 key"
VK_Description(#VK_F2) = "F2 key"
VK_Description(#VK_F3) = "F3 key"
VK_Description(#VK_F4) = "F4 key"
VK_Description(#VK_F5) = "F5 key"
VK_Description(#VK_F6) = "F6 key"
VK_Description(#VK_F7) = "F7 key"
VK_Description(#VK_F8) = "F8 key"
VK_Description(#VK_F9) = "F9 key"
VK_Description(#VK_F10) = "F10 key"
VK_Description(#VK_F11) = "F11 key"
VK_Description(#VK_F12) = "F12 key"
VK_Description(#VK_F13) = "F13 key"
VK_Description(#VK_F14) = "F14 key"
VK_Description(#VK_F15) = "F15 key"
VK_Description(#VK_F16) = "F16 key"
VK_Description(#VK_F17) = "F17 key"
VK_Description(#VK_F18) = "F18 key"
VK_Description(#VK_F19) = "F19 key"
VK_Description(#VK_F20) = "F20 key"
VK_Description(#VK_F21) = "F21 key"
VK_Description(#VK_F22) = "F22 key"
VK_Description(#VK_F23) = "F23 key"
VK_Description(#VK_F24) = "F24 key"
VK_Description(#VK_NUMLOCK) = "NUM LOCK key"
VK_Description(#VK_SCROLL) = "SCROLL LOCK key"
VK_Description(#VK_LSHIFT) = "left SHIFT key"
VK_Description(#VK_RSHIFT) = "right SHIFT key"
VK_Description(#VK_LCONTROL) = "left Control key"
VK_Description(#VK_RCONTROL) = "right Control key"
VK_Description(#VK_LMENU) = "left MENU key"
VK_Description(#VK_RMENU) = "right MENU key"
VK_Description(#VK_BROWSER_BACK) = "Windows 2000/XP: Browser Back key"
VK_Description(#VK_BROWSER_FORWARD) = "Windows 2000/XP: Browser Forward key"
VK_Description(#VK_BROWSER_REFRESH) = "Windows 2000/XP: Browser Refresh key"
VK_Description(#VK_BROWSER_STOP) = "Windows 2000/XP: Browser Stop key"
VK_Description(#VK_BROWSER_SEARCH) = "Windows 2000/XP: Browser Search key"
VK_Description(#VK_BROWSER_FAVORITES) = "Windows 2000/XP: Browser Favorites key"
VK_Description(#VK_BROWSER_HOME) = "Windows 2000/XP: Browser Start And HOME key"
VK_Description(#VK_VOLUME_MUTE) = "Windows 2000/XP: Volume Mute key"
VK_Description(#VK_VOLUME_DOWN) = "Windows 2000/XP: Volume DOWN key"
VK_Description(#VK_VOLUME_UP) = "Windows 2000/XP: Volume UP key"
VK_Description(#VK_MEDIA_NEXT_TRACK) = "Windows 2000/XP: Next Track key"
VK_Description(#VK_MEDIA_PREV_TRACK) = "Windows 2000/XP: Previous Track key"
VK_Description(#VK_MEDIA_STOP) = "Windows 2000/XP: Stop Media key"
VK_Description(#VK_MEDIA_PLAY_PAUSE) = "Windows 2000/XP: Play/PAUSE Media key"
VK_Description(#VK_LAUNCH_MAIL) = "Windows 2000/XP: Start Mail key"
VK_Description(#VK_LAUNCH_MEDIA_SELECT) = "Windows 2000/XP: Select Media key"
VK_Description(#VK_LAUNCH_APP1) = "Windows 2000/XP: Start Application 1 key"
VK_Description(#VK_LAUNCH_APP2) = "Windows 2000/XP: Start Application 2 key"
VK_Description(#VK_OEM_1) = "Used For miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the ';:' key"
VK_Description(#VK_OEM_PLUS) = "Windows 2000/XP: For any country/region, the '+' key"
VK_Description(#VK_OEM_COMMA) = "Windows 2000/XP: For any country/region, the ',' key"
VK_Description(#VK_OEM_MINUS) = "Windows 2000/XP: For any country/region, the '-' key"
VK_Description(#VK_OEM_PERIOD) = "Windows 2000/XP: For any country/region, the '.' key"
VK_Description(#VK_OEM_2) = "Used For miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '/?' key"
VK_Description(#VK_OEM_3) = "Used For miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '`~' key"
VK_Description(#VK_OEM_4) = "Used For miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '[{' key"
VK_Description(#VK_OEM_5) = "Used For miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the '\|' key"
VK_Description(#VK_OEM_6) = "Used For miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the ']}' key"
VK_Description(#VK_OEM_7) = "Used For miscellaneous characters; it can vary by keyboard. Windows 2000/XP: For the US standard keyboard, the 'single-quote/double-quote' key"
VK_Description(#VK_OEM_8) = "Used For miscellaneous characters; it can vary by keyboard."
VK_Description(#VK_OEM_102) = "Windows 2000/XP: Either the Angle bracket key Or the backslash key on the RT 102-key keyboard"
VK_Description(#VK_PROCESSKEY) = "Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME Process key"
VK_Description(#VK_PACKET) = "Windows 2000/XP: Used To pass Unicode characters as If they were keystrokes. the #VK_PACKET key is the low word of a 32-bit Virtual key Value Used For non-keyboard Input methods. For more information, see Remark In KEYBDINPUT, SendInput, WM_KEYDOWN, And WM_KEYUP"
VK_Description(#VK_ATTN) = "Attn key"
VK_Description(#VK_CRSEL) = "CrSel key"
VK_Description(#VK_EXSEL) = "ExSel key"
VK_Description(#VK_EREOF) = "Erase EOF key"
VK_Description(#VK_PLAY) = "Play key"
VK_Description(#VK_ZOOM) = "Zoom key"
VK_Description(#VK_NONAME) = "Reserved For future use"
VK_Description(#VK_PA1) = "PA1 key"
VK_Description(#VK_OEM_CLEAR) = "CLEAR key"
;}
Procedure WindowCallback(WindowID, message, wParam, lParam)
result.l = #PB_ProcessPureBasicEvents
Select message
Case #WM_SYSCOMMAND
Select wParam
Case #SC_MINIMIZE
HideWindow(#Window_Main,#True)
result = 0
EndSelect
EndSelect
ProcedureReturn result
EndProcedure
Procedure ForEachModule(Proc)
Protected *MemProcessIDs, Module, PIDsCount, PIDresult, result
PIDsCount = 8
If OpenLibrary(0,"PSAPI.DLL")
*MemProcessIDs = AllocateMemory(SizeOf(LONG)*PIDsCount)
If *MemProcessIDs
Repeat
If CallFunction(0,"EnumProcesses",*MemProcessIDs,SizeOf(LONG)*PIDsCount,@PIDresult) = 0
ProcedureReturn #False
EndIf
If PIDresult >= SizeOf(LONG)*PIDsCount
PIDsCount*2
*MemProcessIDs = ReAllocateMemory(*MemProcessIDs,SizeOf(LONG)*PIDsCount)
If *MemProcessIDs = 0
ProcedureReturn #False
EndIf
Else
Break
EndIf
ForEver
Debug PIDresult
For i = 0 To PIDresult/SizeOf(LONG)-1
lngHwndProcess = OpenProcess_(#PROCESS_QUERY_INFORMATION|#PROCESS_VM_READ|#PROCESS_TERMINATE, 0, PeekL(*MemProcessIDs+i*SizeOf(LONG)))
If lngHwndProcess
If CallFunction(0,"EnumProcessModules",lngHwndProcess,@Module,4,@result)
ModuleName.s = Space(#MAX_PATH)
If CallFunction(0,"GetModuleFileNameExA",lngHwndProcess, Module, ModuleName, #MAX_PATH)
CallFunctionFast(Proc,lngHwndProcess,ModuleName)
EndIf
EndIf
EndIf
Next
FreeMemory(*MemProcessIDs)
EndIf
CloseLibrary(0)
EndIf
EndProcedure
Procedure RefreshCurrentProcessList(lngHwndProcess,ModuleName.s)
AddGadgetItem(#Gadget_List_Current,-1,ModuleName)
CloseHandle_(lngHwndProcess)
EndProcedure
Procedure KILL(lngHwndProcess,ModuleName.s)
ForEach Exceptions()
If LCase(Exceptions()) = LCase(ModuleName)
CloseHandle_(lngHwndProcess)
ProcedureReturn #True
EndIf
Next
TerminateProcess_(lngHwndProcess,0)
ProcedureReturn #True
EndProcedure
Procedure.s GetShortCutText()
s.s = ""
For i = 0 To 3
If ShortCut(i)
s + VK_Description(ShortCut(i)) + " + "
EndIf
Next
ProcedureReturn SubStr(s,0,-3)
EndProcedure
Procedure KeyboardHook(idHook,wParam,lParam)
If idHook < 0
ProcedureReturn CallNextHookEx_(hHook, idHook, wParam, lParam)
Else
If SetShortCut = #False
If ShortCut(0)
For i = 0 To 3
If ShortCut(i) = 0
ForEachModule(@KILL())
Break
EndIf
If (GetKeyState_(ShortCut(i)) & $F0000000) = 0
Break
ElseIf i = 3
ForEachModule(@KILL())
EndIf
Next
EndIf
Else
NonePressed = #True
lk = k
For i = 1 To $FE
If VK_Description(i)
If GetKeyState_(i) & $F0000000
NonePressed = #False
If k < 4
For r = 0 To k-1
If ShortCut(r) = i
Goto ShortCut_key_already_exist
EndIf
Next
ShortCut(k) = i
k + 1
ShortCut_key_already_exist:
EndIf
EndIf
EndIf
Next
If NonePressed
k = 0
For i = 0 To 3
ShortCut(i) = 0
Next
ElseIf lk < k
SetGadgetText(#Gadget_Text_ShortCut,GetShortCutText())
EndIf
EndIf
ProcedureReturn CallNextHookEx_(hHook, idHook, wParam, lParam)
EndIf
EndProcedure
CatchImage(#Image_SystrayIcon,?SystrayIcon)
CreateGadgetList(OpenWindow(#Window_Main,0,0,400,200,#PB_Window_Invisible|#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget,"EasyKill"))
SetWindowCallback(@WindowCallback())
AddSysTrayIcon(0,WindowID(),ImageID())
ButtonGadget(#Gadget_Button_KILL,5,5,190,20,"",#PB_Text_Center|#PB_Text_Border)
TextGadget(#Gadget_Test_Except,5,30,95,20,"Exceptions")
ButtonGadget(#Gadget_Button_Except_Add,100,28,45,20,"Add")
ButtonGadget(#Gadget_Button_Except_Del,150,28,45,20,"Del")
ListViewGadget(#Gadget_List_Except,5,50,190,145)
ButtonGadget(#Gadget_Button_Except_AddCurrent,200,5,95,20,"<-")
ButtonGadget(#Gadget_Button_SetShortCut,300,5,95,20,"Set ShortCut")
ListViewGadget(#Gadget_List_Current,200,30,195,165)
If ReadFile(0,"EasyKill_Exceptions.txt")
ShortCut(0) = ReadWord()&$FF
ShortCut(1) = ReadWord()&$FF
ShortCut(2) = ReadWord()&$FF
ShortCut(3) = ReadWord()&$FF
While Eof(0) = 0
AddElement(Exceptions())
Exceptions() = ReadString()
AddGadgetItem(#Gadget_List_Except,-1,Exceptions())
Wend
CloseFile(0)
EndIf
SetGadgetText(#Gadget_Button_KILL,"KILL ("+GetShortCutText()+")")
hHook = SetWindowsHookEx_(#WH_KEYBOARD_LL,@KeyboardHook(),GetModuleHandle_(0),#Null)
Repeat
Select WaitWindowEvent()
Case #PB_Event_SysTray
HideWindow(#Window_Main,#False)
ClearGadgetItemList(#Gadget_List_Current)
ForEachModule(@RefreshCurrentProcessList())
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Gadget_Button_KILL
ForEachModule(@KILL())
Case #Gadget_Button_Except_AddCurrent
item = GetGadgetState(#Gadget_List_Current)
If item > -1
AddElement(Exceptions())
Exceptions() = GetGadgetItemText(#Gadget_List_Current,item,0)
AddGadgetItem(#Gadget_List_Except,-1,Exceptions())
EndIf
Case #Gadget_Button_Except_Add
FileName.s = OpenFileRequester("Choose a Module","","Executable/Dynamic Link Library|*.exe;*.dll|All Files|*",0)
If FileName
AddElement(Exceptions())
Exceptions() = FileName
AddGadgetItem(#Gadget_List_Except,-1,Exceptions())
EndIf
Case #Gadget_Button_Except_Del
item = GetGadgetState(#Gadget_List_Except)
If item > -1
ForEach Exceptions()
If Exceptions() = GetGadgetItemText(#Gadget_List_Except,item,0)
DeleteElement(Exceptions())
RemoveGadgetItem(#Gadget_List_Except,item)
Break
EndIf
Next
EndIf
Case #Gadget_Button_SetShortCut
CreateGadgetList(OpenWindow(#Window_SetShortCut,0,0,200,55,#PB_Window_ScreenCentered,"Press a key",WindowID(#Window_Main)))
TextGadget(#Gadget_Text_ShortCut,5,5,190,20,GetShortCutText(),#PB_Text_Center)
ButtonGadget(#Gadget_Button_SetShortCut_OK,70,30,60,20,"OK")
SetShortCut = #True
Case #Gadget_Button_SetShortCut_OK
SetGadgetText(#Gadget_Button_KILL,"KILL ("+GetShortCutText()+")")
CloseWindow(#Window_SetShortCut)
SetShortCut = #False
EndSelect
Case #PB_Event_SizeWindow
UseWindow(#Window_Main)
W_W = WindowWidth()
W_H = WindowHeight()
ResizeGadget(#Gadget_Button_KILL,5,5,W_W/2-10,20)
ResizeGadget(#Gadget_Test_Except,5,30,W_W/4-5,20)
ResizeGadget(#Gadget_Button_Except_Add,W_W/4,28,W_W/8-5,20)
ResizeGadget(#Gadget_Button_Except_Del,W_W/4+W_W/8,28,W_W/8-5,20)
ResizeGadget(#Gadget_List_Except,5,50,W_W/2-10,W_H-55)
ResizeGadget(#Gadget_Button_Except_AddCurrent,W_W/2,5,W_W/4-5,20)
ResizeGadget(#Gadget_Button_SetShortCut,W_W/2+W_W/4,5,W_W/4-5,20)
ResizeGadget(#Gadget_List_Current,W_W/2,30,W_W/2-5,W_H-35)
Case #PB_Event_CloseWindow
quit = 1
EndSelect
Until quit
CreateFile(0,"EasyKill_Exceptions.txt")
WriteWord(ShortCut(0))
WriteWord(ShortCut(1))
WriteWord(ShortCut(2))
WriteWord(ShortCut(3))
ForEach Exceptions()
WriteStringN(Exceptions())
Next
CloseFile(0)
DataSection
SystrayIcon: IncludeBinary "C:\Purebasic full\dot_red.ico"
EndDataSection
Die Beschreibung der Tasten hab ich aus dem PSDK geklaut, also bitte keine Beschwerden das die zu lang für die Felder sind