Verfasst: 14.04.2008 18:17
				
				Auch schon älteren Datums und irgendwann und irgendwo hier beschrieben, mein Knecht Donc.
Als Desktop-Symbol (muss man selbst spendieren) lauert er und ist sofort zu Diensten, wenn man ihn braucht.
Im Win-Explorer irgendeine oder mehrere Dateien markieren und auf das Symbol ziehen. Ein Kling zur Quittung zeigt an, dass nun die vollen Pfad- und Dateinamen der Objekte im Clipboard stehen und leicht in Dokumente oder Quellen eingesetzt werden können.
			Als Desktop-Symbol (muss man selbst spendieren) lauert er und ist sofort zu Diensten, wenn man ihn braucht.
Im Win-Explorer irgendeine oder mehrere Dateien markieren und auf das Symbol ziehen. Ein Kling zur Quittung zeigt an, dass nun die vollen Pfad- und Dateinamen der Objekte im Clipboard stehen und leicht in Dokumente oder Quellen eingesetzt werden können.
Code: Alles auswählen
;/ JR's DONC : Dragged Object Names to Clipboard
;/ 070527
Define.s on, objects
Define.l idx, ndo, quit, hwnd
#Dir = -2
#BufferLength = 1000
#MEM_DROPFILES = 10
*Buffer = AllocateMemory(#BufferLength)
;/ Drag and Drop auf das Desktop-Symbol
ndo = CountProgramParameters()
If ndo
  While ndo > 0
    on = ProgramParameter()
    If FileSize(on) = #Dir : PathAddBackslash_(on) : EndIf
    objects + on + #CRLF$
    ndo - 1
  Wend
  PlaySound_("SystemAsterisk",0, #SND_ALIAS|#SND_NODEFAULT|#SND_NOWAIT|#SND_ASYNC) : Delay(200)
  SetClipboardText(objects)
  End
EndIf
;/ Drag and Drop auf das aufgerufene Fenster
hwnd = OpenWindow(0, 0, 0, 110, 0 , "JR's DONC", #PB_Window_BorderLess | #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If hwnd
  DragAcceptFiles_(hwnd, 1)
  Repeat
    Event= WaitWindowEvent()
    Select Event
      Case #PB_Event_CloseWindow
        quit = 1 
      Case #WM_DROPFILES
        *DropHandle = EventwParam() 
        If *DropHandle
          ndo = DragQueryFile_ (*DropHandle, $FFFFFFFF, *Buffer, #BufferLength)
          If ndo
            idx = 0
            While ndo
              DragQueryFile_(*DropHandle, idx, *Buffer, #BufferLength) 
              on = PeekS(*Buffer)
              If FileSize(on) = #Dir : PathAddBackslash_(on) : EndIf 
              objects + on + #CRLF$  
              ndo - 1 : idx + 1
            Wend
            DragFinish_(*DropHandle)
            SetClipboardText(objects)
            PlaySound_("SystemAsterisk",0, #SND_ALIAS|#SND_NODEFAULT|#SND_NOWAIT|#SND_ASYNC) : Delay(200) 
            quit = 1
          EndIf
        EndIf
    EndSelect
  Until quit = 1
EndIf
End