Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Move Selected Files form Desktop to Another Location
Dear Friends

I looking to write a macro that can move selected files from my desktop to specific location.

I came up with the below code.
Select All      Help
key Cc
ARRAY(str) a
int i=0
    rep a.len
        cop a[i] "D:\Files\copied"
        del a[i]
    OnScreenDisplay "Done !!!"

but is't slow and most of the time is not working without any error message.

any help  Big Grin

Why copy and delete when you can just move the file?

try something like this 
select the files then run this function

Function MoveSelectedDesktopFiles
Select All      Help
spe 100
key Cc          ;; Ctrl+C
ARRAY(str) a
int i
,for i 0 a.len
,,ren+ a[i] "D:\Files\copied" 
,OnScreenDisplay "Done !!!"
,OnScreenDisplay "No files have been selected !!!"
Thank you Mr. Kevin. It works pretty well.

but as you know the code will minimize all the opened windows.

I used ArrangeWindows(0) at the end of the code to reverse the effect, but still I have this screen blinking.

Thank you Smile
Better way no need for ArrangeWindows(0) or GetClipboardFiles
tested on windows 10 and windows7

Function MoveSelectedDesktopFiles2
Select All      Help
spe 100
int hlv=FindDesktopListViewControl
int n=SendMessage(hlv LVM_GETSELECTEDCOUNT 0 0)
str s ss; int item=-1
rep n
,if(GetListViewItemText(hlv item &s 0 2 &item))
,,_s.format("$desktop$\%s[]" s)
,,ss +_s
if n
,ren+ ss "D:\Files\copied" 
,OnScreenDisplay "Done !!!"
,OnScreenDisplay "No files have been selected !!!"

needs this function as well

Function FindDesktopListViewControl
Select All      Help

;Returns the handle of the SysListView32 control that displays desktop icons.

int w=GetShellWindow
int c=child("" "SysListView32" w 0 "id=1")
if !c
,w=win("" "WorkerW" "" 0 F"threadId={GetWindowThreadProcessId(w 0)}"); if(!w) goto gErr
,c=child("" "SysListView32" w 0 "id=1"); if(!c) goto gErr

ret c
end "desktop window not found"

Forum Jump:

Users browsing this thread: 1 Guest(s)