NSIS使用SHFileOperation函数移动文件夹

SHFileOperation是一种外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构--SHFILEOPSTRUCT,告诉Windows执行什么样的操作,以及其它重要信息就行了。SHFileOperation()的特别之处在于它是一个高级外壳函数,不同于低级文件处理。当调用SHFileOperation操作文件时,相应的外壳拷贝处理器(如果有的话)被调用。

    #NSIS使用SHFileOperation函数移动文件夹
  
XPStyle on
  
#D:\abc被移动文件夹
  #c:\def目标文件夹
  
OutFile "NSIStest.exe"
  
Name "test"
  
Section "test"
    
System::Call "*(i $HWNDPARENT, i 0x0001, t 'D:\abc',t 'c:\def', i 0x0008|0x0004|0x0200|0x0010|0x0400, i0,i0,i0,&t${NSIS_MAX_STRLEN} r0,&t1 0)i .r0"
    
System::Call "shell32::SHFileOperation(i r0)i .r1"
    
System::Free $0
  
SectionEnd



posted @ 2022-08-12 19:30  水晶石  阅读(181)  评论(0编辑  收藏  举报