├── .gitignore ├── Compil ├── Languages │ ├── Deutsch.lng │ ├── Español.lng │ ├── Français.lng │ ├── Português.lng │ └── Tieng Viet.lng ├── LisezMoi.txt ├── ReadMe.txt ├── SuperCopier2.rar └── test.bat ├── Components └── SFXTeam │ ├── SCComponent.dof │ ├── SCComponent.dpk │ ├── SCComponent.dproj │ ├── SCComponent.dproj.2007 │ ├── SCComponent.res │ ├── SCFileNameLabel.pas │ ├── SCOutlinedLabel.pas │ ├── SCProgessBar.pas │ ├── ScPopupButton.pas │ ├── ScSystray.pas │ └── test_compo │ ├── Project1.dof │ ├── Project1.dpr │ ├── Project1.res │ ├── Unit1.ddp │ ├── Unit1.dfm │ └── Unit1.pas ├── Install └── SC2.nsi ├── LICENSE ├── README.md ├── Resources └── progicon.ico ├── SC2C++ ├── DDShellExt.cpp ├── DDShellExt.h ├── Release │ ├── reg.bat │ └── unreg.bat ├── SC2C++.sln ├── SC2ShellExt.cpp ├── SC2ShellExt.def ├── SC2ShellExt.rc ├── SC2ShellExt.rgs ├── SC2ShellExt.vcproj ├── SC2ShellExt.vcxproj ├── SC2ShellExt.vcxproj.filters ├── SC2ShellExt64.rgs ├── SCAPIClient.cpp ├── SCAPIClient.h ├── UpgradeLog.XML ├── resource.h ├── stdafx.cpp ├── stdafx.h └── x64 │ └── Release │ ├── reg.bat │ └── unreg.bat ├── SC2Config.dof ├── SC2Config.dpr ├── SC2Config.dproj ├── SC2Config.dproj.2007 ├── SC2Config.res ├── SCAPI.pas ├── SCAPIClient.pas ├── SCAPICommon.pas ├── SCAboutForm.ddp ├── SCAboutForm.dfm ├── SCAboutForm.pas ├── SCAnsiBufferedCopier.pas ├── SCBaseList.pas ├── SCBaseListQueue.pas ├── SCBuildConfig.inc ├── SCCollisionForm.ddp ├── SCCollisionForm.dfm ├── SCCollisionForm.pas ├── SCCollisionRenameForm.ddp ├── SCCollisionRenameForm.dfm ├── SCCollisionRenameForm.pas ├── SCCommon.pas ├── SCConfig.pas ├── SCConfigForm.ddp ├── SCConfigForm.dfm ├── SCConfigForm.pas ├── SCConfigShared.pas ├── SCCopier.pas ├── SCCopyErrorForm.ddp ├── SCCopyErrorForm.dfm ├── SCCopyErrorForm.pas ├── SCCopyForm.ddp ├── SCCopyForm.dfm ├── SCCopyForm.pas ├── SCCopyThread.pas ├── SCDirList.pas ├── SCDiskSpaceForm.ddp ├── SCDiskSpaceForm.dfm ├── SCDiskSpaceForm.pas ├── SCFileList.pas ├── SCLocEngine.pas ├── SCLocStrings.pas ├── SCMainForm.ddp ├── SCMainForm.dfm ├── SCMainForm.pas ├── SCObjectThreadList.pas ├── SCProcessPrivileges.pas ├── SCWideUnbufferedCopier.pas ├── SCWin32.pas ├── SCWorkThread.pas ├── SCWorkThreadList.pas ├── SuperCopier2.bpg ├── SuperCopier2.dof ├── SuperCopier2.dpr ├── SuperCopier2.dproj ├── SuperCopier2.dproj.2007 ├── SuperCopier2.groupproj ├── SuperCopier2.res ├── ana sc.txt └── todo sc.txt /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | *.bak 71 | *.bk1 72 | *.bk2 73 | *.dcr 74 | *.DCR 75 | *.prf 76 | *.db 77 | /Compil/Compil.rar 78 | -------------------------------------------------------------------------------- /Compil/Languages/Deutsch.lng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Compil/Languages/Deutsch.lng -------------------------------------------------------------------------------- /Compil/Languages/Español.lng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Compil/Languages/Español.lng -------------------------------------------------------------------------------- /Compil/Languages/Français.lng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Compil/Languages/Français.lng -------------------------------------------------------------------------------- /Compil/Languages/Português.lng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Compil/Languages/Português.lng -------------------------------------------------------------------------------- /Compil/Languages/Tieng Viet.lng: -------------------------------------------------------------------------------- 1 |  2 | [-Header-] 3 | IsUTF8=1 4 | 5 | [-Strings-] 6 | 1=Copy tập tin %s sang thư mục %s 7 | 2=Chuyển tập tin từ thư mục %s sang %s 8 | 3=Copy tập tin %s 9 | 4=Copie (%d) de %s 10 | 5=Thêm danh sách tập tin cần copy vào tác vụ hiện thời ? 11 | 6=Khởi tạo danh sách tập tin và thư mục: 12 | 7=Chọn thư mục đích: 13 | 8=Tập tin %d/%d, Tổng số: %s 14 | 9=%s, %s 15 | 10=%n KB/giây 16 | 11=còn lại %s 17 | 12=Hủy bỏ - %s 18 | 13=Tạm dừng - %s 19 | 14=Trạng thái chờ - %s 20 | 15=%s, Thay đổi: %s 21 | 16=Đổi tên tập tin 22 | 17=Xóa tập tin 23 | 18=Lập danh sách 24 | 19=Copy 25 | 20=Cập nhật ngày tháng 26 | 21=Cập nhật thuộc tính 27 | 22=Cập nhật thuộc tính an ninh 28 | 23=Bytes 29 | 24=KB 30 | 25=MB 31 | 26=GB 32 | 27=Chọn thư mục cần thêm vào: 33 | 28=Trợ giúp về đổi tên tập tin 34 | 29=Các thẻ hợp lệ:| : tên đầy đủ của tập tin kể cả phần mở rộng| : tên tập tin không kể phần mở rộng| : phần mở rộng (không tính dấu chấm)|<#>,<##>,<#...#> : cách đánh số thứ tự, ví dụ: # thể hiện 1, ## thể hiện01, ... 35 | 30=Trợ giúp về các thông số mở rộng 36 | 31=Kích thước vùng đệm:| Taille de chaque bloc de données lues et écrites, vous ne devriez pas modifier cela.|Intervalle de màj de la fenêtre de copie:| Intervalle entre deux rafraichissements de la fenêtre de copie, plus la valeur est basse, plus la CPU est utilisée.|Moyennage de la vitesse de copie sur:| La vitesse de copie affichée est la moyenne sur cet intervalle.|Intervalle de régulation de la copie:| Résolution de la limite de vitesse, une grande valeur rends la limitation plus précise, une petite valeur rends la limitation plus homogène. 37 | 32=Un fichier existe déjà 38 | 33=%s|Fichier: %s 39 | 34=Il y a eu une erreur de copie 40 | 35=%s|Fichier: %s|Erreur: %s 41 | 36=Il y a eu une erreur non bloquante 42 | 37=%s|Action: %s|Cible: %s|Erreur: %s 43 | 38=Fin de copie 44 | 39=%s|Vitesse de fin: %s 45 | 40=SuperCopier2 ne peut pas être lancé 46 | 41=SuperCopier2 n'a pu s'attacher aux processus, ceci est normal si vous l'avez lancé plusieurs fois. 47 | 48 | [TConfigForm] 49 | -Caption-=Tham số 50 | lvSections=,"Ngôn ngữ",Khởi động,"Giao diện","Tùy chọn mặc định","Thông số khác","Danh sách lỗi","Liên kết tới các chương trình","Tham số mở rộng" 51 | gbLanguage=Ngôn ngữ 52 | llLanguage=Ngôn ngữ giao diện người sử dụng: 53 | llLanguageInfo=(Lựa chọn tiếng Anh (ngôn ngữ mặc định) chỉ có tác dụng từ lần chạy chương trình tiếp theo.) 54 | gbStartup=Khởi động 55 | chStartWithWindows=Khởi động cùng Windows 56 | chActivateOnStart=Kích hoạt SuperCopier khi khởi động 57 | gbTaskbar=Thanh tác vụ && khay hệ thống 58 | llMinimizedEventHandling=Quand il y a un évènement et que la fenêtre est réduite: 59 | chTrayIcon=Afficher l'icône de SuperCopier dans le system tray 60 | cbMinimize="Réduire les fenêtres dans le system tray et les laisser toujours visibles","Réduire les fenêtres dans la barre des tâches" 61 | cbMinimizedEventHandling="Ne rien faire (attendre que la fenêtre soit restorée)","Afficher une bulle de notification (ne marche pas sous Windows 95,98 & NT4)","Afficher la fenêtre de l'évènement" 62 | gbCWAppearance=Apparence de la fenêtre de copie 63 | chCWSavePosition=Sauvegarder la position de la fenêtre de copie 64 | chCWSaveSize=Sauvegarder la taille de la fenêtre de copie 65 | chCWStartMinimized=Lancer les copies avec la fenêtre de copie réduite 66 | gbSizeUnit=Unité de taille 67 | llSizeUnit=La taille des fichiers sera affichée en: 68 | cbSizeUnit="Unité auto",Octets,"Ko (Kilooctets)","Mo (Mégaoctets)","Go (Gigaoctets)" 69 | gbProgressrar=Barres de progression 70 | llProgressFG=Couleurs d'avant-plan: 71 | llProgressBG=Couleurs d'arrière-plan: 72 | llProgressBorder=Couleur du bord: 73 | llProgressText=Couleurs du texte: 74 | btProgressFG1=Bords 75 | bgProgressFG2=Milieu 76 | btProgressBG1=Bords 77 | btProgressBG2=Milieu 78 | btProgressBorder=Bord 79 | btProgressOutline=Contour 80 | btProgressText=Texte 81 | gbCopyEnd=Fin de la copie 82 | llCopyEnd=A la fin de la copie: 83 | cbCopyEnd="Fermer la fenêtre","Ne pas fermer la fenêtre","Ne pas fermer si il y a eu des erreurs" 84 | gbSpeedLimit=Limite de vitesse 85 | llSpeedLimitKB=Ko 86 | chSpeedLimit=Limiter la vitesse de copie à: 87 | gbCollisions=Collisions de fichiers 88 | llCollisions=Quand un fichier existe déjà, toujours: 89 | cbCollisions="Demander quoi faire","Annuler la copie entière",Passer,"Reprendre le transfert",Ecraser,"Ecraser si différent","Renommer le nouveau fichier","Renommer l'ancien fichier" 90 | gbCopyErrors=Erreurs de copie 91 | llCopyErrors=En cas d'erreur de copie, toujours: 92 | llRetryInterval=Temps d'attente entre deux essais: 93 | llRetryIntervalUnit=Millisecondes 94 | cbCopyError="Demander quoi faire","Annuler la copie entière",Passer,Rééssayer,"Mettre le fichier à la fin de la liste" 95 | edCopyErrorRetry=2000 96 | gbCLHandling=Gestion des nouvelles listes de copie 97 | llCLHandling=Ajouter les nouvelles listes de copie à celles déjà en train de copier quand: 98 | llCLHandlingInfo=(même source veut dire, par exemple, même disque physique) 99 | cbCLHandling=Jamais,Toujours,"La source est la même","La destination est la même","La source et la destination sont les mêmes","La source ou la destination sont les mêmes" 100 | chCLHandlingConfirm=Demander confirmation avant d'ajouter 101 | gbAttributes=Attributs && sécurité 102 | chSaveAttributesOnCopy=Copier les attributs et la sécurité quand un fichier est copié 103 | chSaveAttributesOnMove=Copier les attributs et la sécurité quand un fichier est déplacé 104 | gbDeleting=Suppression 105 | chDeleteUnfinishedCopies=Supprimer les fichiers qui ne sont pas copiés entièrement 106 | chDontDeleteOnCopyError=Ne pas les supprimer si ça a été causé par une erreur de copie 107 | gbRenaming=Renommage 108 | llRenameOld=Motif de renommage des anciens fichiers: 109 | llRenameNew=Motif de renommage des nouveaux fichiers: 110 | btRenamingHelp=Aide 111 | gbErrorLog=Journal des erreurs 112 | llErrorLogAutoSaveMode=Sauvegarder dans: 113 | llErrorLogFileName=Nom de fichier (et peut être dossier): 114 | cbErrorLogAutoSaveMode="Le dossier de destination","Le dossier source","Un dossier spécial" 115 | chErrorLogAutoSave=Sauvegarder automatiquement le journal des erreurs 116 | gbHandledProcesses=Processus pris en charge 117 | llHandledProcessses=Liste des processus (shells ou autres) que SuperCopier doit prendre en charge: 118 | btAddProcess=Ajouter 119 | btRemoveProcess=Enlever 120 | gbPriority=Priorité 121 | llPriority=Priorité du processus SuperCopier: 122 | cbPriority=Basse,Normale,Haute 123 | gbAdvanced=Paramètres avancés: 124 | llCopyBufferSize=Taille du tampon de copie: 125 | llCopyBufferSizeUnit=Octets 126 | llCopyWindowUpdateInterval=Intervalle de màj de la fenêtre de copie: 127 | llCopyWindowUpdateIntervalUnit=Millisecondes 128 | llCopySpeedAveragingInterval=Moyennage de la vitesse de copie sur: 129 | llCopySpeedAveragingIntervalUnit=Millisecondes 130 | llCopyThrottleInterval=Intervalle de régulation de la copie: 131 | llCopyThrottleIntervalUnit=Millisecondes 132 | chFastFreeSpaceCheck=Calcul de l'espace libre rapide (défauts possibles avec les points de montage NTFS) 133 | chFailSafeCopier=Utiliser un copieur sans-échec (copie bufferisée et pas de support de l'unicode) 134 | gbConfigLocation=Emplacement des paramètres 135 | llConfigLocation=Sauvegarder les paramètres dans: 136 | cbConfigLocation="La base des registres","Un fichier .ini" 137 | btAdvancedHelp=Aide 138 | btCancel=Annuler 139 | btOk=OK 140 | btApply=Appliquer 141 | odLog=Tous les fichiers (*.*) 142 | odProcesses=Processus (*.exe)|*.exe 143 | 144 | [TMainForm] 145 | miActivate=Bật 146 | miDeactivate=Tắt 147 | miNewThread=Tạo tác vụ mới 148 | miNewCopyThread=Copy... 149 | miNewMoveThread=Chuyển... 150 | miThreadList=Danh sách tác vụ 151 | miCancelThread=Hủy 152 | miCancelAll=Hủy bỏ mọi tác vụ 153 | miConfig=Tham số... 154 | miAbout=Giới thiệu chương trình... 155 | miExit=Thoát 156 | 157 | [TAboutForm] 158 | -Caption-=A propos de SuperCopier 159 | llStaffTitle=Staff: 160 | llStaff1=GliGli: Code principal, Yogi: Copieur NT Originel, 161 | llThanksTitle=Remerciements: 162 | llThanks1=TntWare (composants unicode), Tal Sella (icônes), 163 | llThanks2=Mathias Rauen (bibliothèque de hook). 164 | llStaff2=ZeuS: Composants graphiques. 165 | btOk=Ok 166 | btReadme=LisezMoi.txt 167 | 168 | [TCopyForm] 169 | llFromTitle=De: 170 | llToTitle=Vers: 171 | tsCopyList=Liste de copie 172 | btFileTop=,"Mettre les fichiers au début" 173 | btFileUp=,"Monter les fichiers" 174 | btFileDown=,"Descendre les fichiers" 175 | btFileBottom=,"Mettre les fichiers à la fin" 176 | btFileAdd=,"Ajouter des fichiers" 177 | btFileRemove=,"Enlever des fichiers" 178 | btFileSave=,"Sauvegarder la liste de copie" 179 | btFileLoad=,"Charger une liste de copie" 180 | lvFileList=Source,Taille,Destination 181 | tsErrors=Journal des erreurs 182 | btErrorClear=,"Effacer le journal" 183 | btErrorSaveLog=,"Sauvegarder le journal" 184 | lvErrorList=Heure,Action,Cible,"Texte de l'erreur" 185 | tsOptions=Options 186 | gbSpeedLimit=Limite de vitesse 187 | llSpeedLimitKB=Ko 188 | chSpeedLimit=Limiter la vitesse de copie à: 189 | cbSpeedLimit=64,128,256,512,1024,2048,4096,8192,16384,32768 190 | gbCollisions=Collisions de fichiers 191 | llCollisions=Quand un fichier existe déjà, toujours: 192 | cbCollisions="Demander quoi faire","Annuler la copie entière",Passer,"Reprendre le transfert",Ecraser,"Ecraser si différent","Renommer le nouveau fichier","Renommer l'ancien fichier" 193 | gbCopyErrors=Erreurs de copie 194 | llCopyErrors=En cas d'erreur de copie, toujours: 195 | cbCopyError="Demander quoi faire","Annuler la copie entière",Passer,Rééssayer,"Mettre le fichier à la fin de la liste" 196 | gbCopyEnd=Fin de la copie 197 | llCopyEnd=A la fin de la copie: 198 | cbCopyEnd="Fermer la fenêtre","Ne pas fermer la fenêtre","Ne pas fermer si il y a eu des erreurs" 199 | btSaveDefaultCfg=Enregistrer comme options par défaut 200 | btCancel=Hủy, 201 | btSkip=Passer, 202 | btPause=Pause, 203 | btResume=Reprise, 204 | btUnfold=Déplier, 205 | btFold=Replier, 206 | miTop=Mettre en haut 207 | miUp=Monter 208 | miDown=Descendre 209 | miBottom=Mettre en bas 210 | miRemove=Enlever 211 | miSelectAll=Selectionner tout 212 | miInvert=Inverser la sélection 213 | miDefaultDest=Utiliser le dossier de destination par défaut () 214 | miChooseDest=Choisir de dossier de destination... 215 | miChooseSetDefault=Choisir de dossier de destination et en faire celui par défaut... 216 | miCancel=Annuler 217 | odCopyList=Liste de copie SuperCopier2 (*.scl)|*.scl 218 | sdCopyList=Liste de copie SuperCopier2 (*.scl)|*.scl 219 | sdErrorLog=Fichier texte (*.txt)|*.txt 220 | odFileAdd=Tous les fichiers (*.*) 221 | miAddFiles=Ajouter des fichiers... 222 | miAddFolder=Ajouter un dossier... 223 | miStResume=Reprise 224 | miStPause=Pause 225 | miStCancel=Annuler 226 | 227 | [TCollisionForm] 228 | -Caption-= - Un fichier existe déjà 229 | llCollisionText1=Le fichier suivant existe déjà: 230 | llSourceTitle=Source: 231 | llDestiationTitle=Destination: 232 | llCollisionText2=Que voulez-vous faire? 233 | btCancel=Annuler, 234 | Skip1=Passer 235 | Alwaysskip1=Toujours passer 236 | Resume1=Reprendre 237 | Alwaysresume1=Toujours reprendre 238 | Overwrite1=Ecraser 239 | Overwtiteisdifferent1=Ecraser si différent 240 | Alwaysoverwrite1=Toujours écraser 241 | Alwaysoverwriteifdifferent1=Toujours écraser si différent 242 | Rename1=Renommer 243 | Renameoldfile1=Renommer l'ancien fichier 244 | Customrename1=Renommage spécial 245 | Alwaysrename1=Toujours renommer 246 | Alwaysrenameoldfile1=Toujours renommer l'ancien fichier 247 | 248 | [TCollisionRenameForm] 249 | -Caption-=Renommage spécial 250 | rbRenameNew=Renommer le nouveau fichier 251 | rbRenameOld=Renommer l'ancien fichier 252 | llOriginalNameTitle=Renommer de: 253 | llNewNameTitle=Vers: 254 | btCancel=Annuler, 255 | btRename=Renommer, 256 | 257 | [TCopyErrorForm] 258 | -Caption-= - Erreur de copie 259 | llCopyErrorText3=Que voulez-vous faire? 260 | llCopyErrorText1=La copie de: 261 | llCopyErrorText2=à été interrompue poue la raison suivante: 262 | btCancel=Annuler, 263 | Retry1=Rééssayer 264 | Alwaysretry1=Toujours rééssayer 265 | Endoflist1=Fin de liste 266 | Alwaysputtoendoflist1=Toujours mettre en fin de liste 267 | Skip1=Passer 268 | Alwaysskip1=Toujours passer 269 | 270 | [TDiskSpaceForm] 271 | -Caption-= - Pas assez de place libre 272 | llDiskSpaceText1=Il n'y a pas assez de place sur les volumes suivants: 273 | llDiskSpaceText2=Que voulez-vous faire? 274 | lvDiskSpace=Volume,Taille,Libre,Manque 275 | btCancel=Annuler, 276 | btForce="Forçer la copie", 277 | 278 | -------------------------------------------------------------------------------- /Compil/LisezMoi.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Compil/LisezMoi.txt -------------------------------------------------------------------------------- /Compil/ReadMe.txt: -------------------------------------------------------------------------------- 1 | SuperCopier 2.2 beta 2 | ==================== 3 | 4 | SuperCopier2 is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | SuperCopier2 is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | Website: 15 | http://supercopier.sfxteam.org 16 | 17 | E-Mail: 18 | supercopier@sfxteam.org (preferably put the 'SuperCopier' word in the e-mail 19 | subject) 20 | 21 | Staff: 22 | GliGli: Main code, 23 | Yogi: Original NT Copier, 24 | ZeuS: Graphical components. 25 | 26 | Special thanks to: 27 | TntWare http://www.tntware.com/ (unicode components), 28 | Tal Sella http://www.virtualplastic.net/scrow/ (icons). 29 | 30 | Description: 31 | ============ 32 | 33 | SuperCopier replaces Windows explorer file copy and adds many features: 34 | - Transfer resuming 35 | - Copy speed control 36 | - No bugs if You copy more than 2GB at once 37 | - Copy speed computation 38 | - Better copy progress display 39 | - A little faster 40 | - Copy list editable while copying 41 | - Error log 42 | - Copy list saving/loading 43 | - ... 44 | 45 | Compatibility: Windows NT4/2000/XP/Vista/Seven and 64 bit / Server flavors. 46 | 47 | History: 48 | ======== 49 | 50 | - v2 beta 1: 51 | Complete rewrite. 52 | ... So many new things but it's too long to enumerate :) 53 | 54 | - v2 beta 1.9: 55 | - Better handling of transfer resume (overwrite if resume is not possible 56 | and new option to force resume without file age verification). 57 | - Pause can now be used during waiting state or during copy list creation. 58 | - Better handling of temporization on retry after copy errors 59 | - Added a notification balloon for insufficient disk space windows. 60 | - Corrected speed issues with networked copies (especially on upload). 61 | - Fixed bug with handled processes name case. 62 | - Fixed bug with language files loading. 63 | - Fixed one bug with files larger than 4GB (one more :). 64 | - Fixed bug while cancelling the insufficient disk space window. 65 | - Fixed bug with renaming on file names containing dots. 66 | - Fixed bug with 'Always overwrite if different' option for file collisions. 67 | - GUI bug fixes and enhancements: 68 | - Lowered CPU usage. 69 | - Fixed blinking problem with themes. 70 | - Fixed problem with copy window minimize button click. 71 | - Better handling of copy window buttons focus. 72 | - Hopefully fixed the problem with systray progress bars for copy 73 | windows. 74 | 75 | - v2.2 beta: 76 | - Complete rewrite of the copy interception system, adds support for 77 | Windows Vista, Seven and all 64 bit Windows. For now, compatibility with 78 | Windows 95, 98 and Millenium has been dropped and 'handled processes' is 79 | deactivated. 80 | - Added options to sort the copy list. You can either click on the column headers 81 | or use the 'Sort' context menu item. 82 | - Separated attributes copy from security copy. 83 | - User interface improvements, including: 84 | - Reintroduced Supercopier 1.35 like cursor for copy speed limitation. 85 | - Popup menus from file collision and file error windows now automatically 86 | popup when the button is hovered. 87 | - Copy window is no more a tool window, so now it has standard buttons like 88 | minimize, maximize and system menu. This should also fix problems with 89 | non standard themes. 90 | - Many bugfixes (about 100 bugs were treated). 91 | 92 | About the author: 93 | ================= 94 | Tanks for all the replies I got from my job search, I now have a good delphi job. 95 | 96 | -------------------------------------------------------------------------------- /Compil/SuperCopier2.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Compil/SuperCopier2.rar -------------------------------------------------------------------------------- /Compil/test.bat: -------------------------------------------------------------------------------- 1 | :1 2 | testapi 3 | goto 1 -------------------------------------------------------------------------------- /Components/SFXTeam/SCComponent.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=1 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=0 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription=Composants de supercopier 92 | [Directories] 93 | OutputDir= 94 | UnitOutputDir= 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols 98 | Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;Picone 99 | Conditionals= 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Language] 109 | ActiveLang= 110 | ProjectLang= 111 | RootDir=G:\prog\Borland\Delphi7\Bin\ 112 | [Version Info] 113 | IncludeVerInfo=1 114 | AutoIncBuild=0 115 | MajorVer=1 116 | MinorVer=0 117 | Release=0 118 | Build=0 119 | Debug=0 120 | PreRelease=0 121 | Special=0 122 | Private=0 123 | DLL=0 124 | Locale=1036 125 | CodePage=1252 126 | [Version Info Keys] 127 | CompanyName= 128 | FileDescription= 129 | FileVersion=1.0.0.0 130 | InternalName= 131 | LegalCopyright= 132 | LegalTrademarks= 133 | OriginalFilename= 134 | ProductName= 135 | ProductVersion=1.0.0.0 136 | Comments= 137 | [Excluded Packages] 138 | c:\program files\borland\delphi7\Bin\dclnet70.bpl=Composant Internet Borland 139 | c:\program files\borland\delphi7\Bin\dclsoap70.bpl=Composants SOAP Borland 140 | c:\program files\borland\delphi7\Bin\dcldbx70.bpl=Composants dbExpress Borland 141 | c:\program files\borland\delphi7\Bin\dcldbxcds70.bpl=Composant SimpleDataset Borland (DBX) 142 | c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Paquet Expert Web Borland 143 | c:\program files\borland\delphi7\Bin\dclwbm70.bpl=Composants InternetExpress Borland 144 | c:\program files\borland\delphi7\Bin\dclie70.bpl=Composants Internet Explorer 145 | c:\program files\borland\delphi7\Bin\dclwebsnap70.bpl=Composants WebSnap Borland 146 | c:\program files\borland\delphi7\Bin\dclIntraweb_50_70.bpl=Paquet de conception Intraweb 5.0 pour Delphi 7 147 | c:\program files\borland\delphi7\bin\dclRave70.bpl=Paquet Rave Reports BE 5.0 148 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JclDebugIde70.bpl=JCL Debug IDE extension for Delphi 7 149 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\ProjectAnalyzer70.bpl=JCL Project Analyzer for Delphi 7 150 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\IdeOpenDlgFavorite70.bpl=JCL Open and Save IDE dialogs with favorite folders for Delphi 7 151 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JVCL200_D70.bpl=JEDI-VCL Components 152 | c:\program files\borland\delphi7\Projects\Bpl\dclusr70.bpl=Composants utilisateur Borland 153 | c:\program files\borland\delphi7\Bin\dcloffice2k70.bpl=Composants Wrapper Serveur Automation MS Office 2000 154 | C:\Program Files\madCollection\madBasic\Delphi 7\madBasic_.bpl=madBasic 1.1i - www.madshi.net 155 | C:\Program Files\madCollection\madBasic\Delphi 7\madHelp_.bpl=madHelp 1.1a - www.madshi.net 156 | C:\Program Files\madCollection\madDisAsm\Delphi 7\madDisAsm_.bpl=madDisAsm 2.1b - www.madshi.net 157 | c:\program files\borland\delphi7\Projects\Bpl\VirtualTreesD7D.bpl=Virtual Treeview 158 | [HistoryLists\hlDebugSourcePath] 159 | Count=1 160 | Item0=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols\ 161 | [HistoryLists\hlUnitAliases] 162 | Count=1 163 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 164 | [HistoryLists\hlSearchPath] 165 | Count=1 166 | Item0=.\Components\Other\tntunicodecontrols;.\Components\SFXTeam 167 | [HistoryLists\hlUnitOutputDirectory] 168 | Count=2 169 | Item0=.\Compil 170 | Item1=Compil 171 | [HistoryLists\hlOutputDirectorry] 172 | Count=2 173 | Item0=.\Compil 174 | Item1=Compil 175 | [HistoryLists\hlBPLOutput] 176 | Count=1 177 | Item0=Compil 178 | [HistoryLists\hlDCPOutput] 179 | Count=1 180 | Item0=Compil 181 | -------------------------------------------------------------------------------- /Components/SFXTeam/SCComponent.dpk: -------------------------------------------------------------------------------- 1 | package SCComponent; 2 | 3 | {$R *.res} 4 | {$ALIGN 8} 5 | {$ASSERTIONS ON} 6 | {$BOOLEVAL OFF} 7 | {$DEBUGINFO ON} 8 | {$EXTENDEDSYNTAX ON} 9 | {$IMPORTEDDATA ON} 10 | {$IOCHECKS ON} 11 | {$LOCALSYMBOLS ON} 12 | {$LONGSTRINGS ON} 13 | {$OPENSTRINGS ON} 14 | {$OPTIMIZATION ON} 15 | {$OVERFLOWCHECKS OFF} 16 | {$RANGECHECKS OFF} 17 | {$REFERENCEINFO ON} 18 | {$SAFEDIVIDE OFF} 19 | {$STACKFRAMES OFF} 20 | {$TYPEDADDRESS OFF} 21 | {$VARSTRINGCHECKS ON} 22 | {$WRITEABLECONST OFF} 23 | {$MINENUMSIZE 1} 24 | {$IMAGEBASE $400000} 25 | {$DESCRIPTION 'Composants de supercopier'} 26 | {$IMPLICITBUILD ON} 27 | 28 | requires 29 | rtl, 30 | vcl; 31 | 32 | contains 33 | SCProgessBar in 'SCProgessBar.pas', 34 | ScSystray in 'ScSystray.pas', 35 | SCFileNameLabel in 'SCFileNameLabel.pas', 36 | ScPopupButton in 'ScPopupButton.pas', 37 | SCOutlinedLabel in 'SCOutlinedLabel.pas'; 38 | 39 | end. 40 | 41 | -------------------------------------------------------------------------------- /Components/SFXTeam/SCComponent.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D01DDAE4-BDD3-466C-97B2-AAE315C3DB25} 4 | SCComponent.dpk 5 | Debug 6 | DCC32 7 | 12.0 8 | 9 | 10 | true 11 | 12 | 13 | true 14 | Base 15 | true 16 | 17 | 18 | true 19 | Base 20 | true 21 | 22 | 23 | C:\Documents and Settings\All Users\Documents\RAD Studio\6.0\Bpl\SCComponent.bpl 24 | 00400000 25 | F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols;$(DCC_UnitSearchPath) 26 | WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias) 27 | x86 28 | Composants de supercopier 29 | 1 30 | true 31 | false 32 | true 33 | false 34 | true 35 | false 36 | false 37 | 38 | 39 | false 40 | RELEASE;$(DCC_Define) 41 | 0 42 | false 43 | 44 | 45 | DEBUG;$(DCC_Define) 46 | 47 | 48 | 49 | MainSource 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | Base 60 | 61 | 62 | Cfg_2 63 | Base 64 | 65 | 66 | Cfg_1 67 | Base 68 | 69 | 70 | 71 | 72 | Delphi.Personality.12 73 | Package 74 | 75 | 76 | 77 | SCComponent.dpk 78 | 79 | 80 | False 81 | True 82 | False 83 | 84 | 85 | True 86 | False 87 | 1 88 | 0 89 | 0 90 | 0 91 | False 92 | False 93 | False 94 | False 95 | False 96 | 1036 97 | 1252 98 | 99 | 100 | 101 | 102 | 1.0.0.0 103 | 104 | 105 | 106 | 107 | 108 | 1.0.0.0 109 | 110 | 111 | 112 | 113 | 12 114 | 115 | 116 | -------------------------------------------------------------------------------- /Components/SFXTeam/SCComponent.dproj.2007: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D01DDAE4-BDD3-466C-97B2-AAE315C3DB25} 4 | SCComponent.dpk 5 | Debug 6 | DCC32 7 | 8 | 9 | true 10 | 11 | 12 | true 13 | Base 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | C:\Documents and Settings\All Users\Documents\RAD Studio\6.0\Bpl\SCComponent.bpl 23 | 00400000 24 | vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;Picone 25 | F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols;$(DCC_UnitSearchPath) 26 | WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias) 27 | x86 28 | Composants de supercopier 29 | 1 30 | true 31 | false 32 | true 33 | false 34 | true 35 | false 36 | false 37 | 38 | 39 | false 40 | RELEASE;$(DCC_Define) 41 | 0 42 | false 43 | 44 | 45 | DEBUG;$(DCC_Define) 46 | 47 | 48 | 49 | MainSource 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | Base 67 | 68 | 69 | Cfg_2 70 | Base 71 | 72 | 73 | Cfg_1 74 | Base 75 | 76 | 77 | 78 | 79 | Delphi.Personality.12 80 | Package 81 | 82 | 83 | 84 | SCComponent.dpk 85 | 86 | 87 | False 88 | True 89 | False 90 | 91 | 92 | True 93 | False 94 | 1 95 | 0 96 | 0 97 | 0 98 | False 99 | False 100 | False 101 | False 102 | False 103 | 1036 104 | 1252 105 | 106 | 107 | 108 | 109 | 1.0.0.0 110 | 111 | 112 | 113 | 114 | 115 | 1.0.0.0 116 | 117 | 118 | 119 | 120 | 12 121 | 122 | 123 | -------------------------------------------------------------------------------- /Components/SFXTeam/SCComponent.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/SCComponent.res -------------------------------------------------------------------------------- /Components/SFXTeam/SCFileNameLabel.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/SCFileNameLabel.pas -------------------------------------------------------------------------------- /Components/SFXTeam/SCOutlinedLabel.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/SCOutlinedLabel.pas -------------------------------------------------------------------------------- /Components/SFXTeam/SCProgessBar.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of SuperCopier2. 3 | 4 | SuperCopier2 is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | SuperCopier2 is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | } 14 | 15 | unit SCProgessBar; 16 | 17 | interface 18 | 19 | uses 20 | Windows,Controls,Messages,SysUtils,Classes,Graphics,ComCtrls,SCOutlinedLabel; 21 | 22 | type 23 | 24 | TSCProgessBar = class(TProgressBar) 25 | private 26 | FPercentLabel: TSCOutlinedLabel; 27 | FRemainingLabel: TSCOutlinedLabel; 28 | FMax: Int64; 29 | FMin: Int64; 30 | FPosition: Int64; 31 | procedure UpdateProgress; 32 | procedure SetMax(const Value: Int64); 33 | procedure SetMin(const Value: Int64); 34 | procedure SetPosition(const Value: Int64); 35 | public 36 | constructor Create(AOwner:TComponent);override; 37 | published 38 | property PercentLabel:TSCOutlinedLabel read FPercentLabel; 39 | property RemainingLabel:TSCOutlinedLabel read FRemainingLabel; 40 | 41 | property Min: Int64 read FMin write SetMin; 42 | property Max: Int64 read FMax write SetMax; 43 | property Position: Int64 read FPosition write SetPosition; 44 | end; 45 | 46 | procedure Register; 47 | 48 | implementation 49 | 50 | uses Types; 51 | 52 | procedure Register; 53 | begin 54 | RegisterComponents('SFX Team', [TSCProgessBar]); 55 | end; 56 | 57 | { TSCProgessBar } 58 | 59 | constructor TSCProgessBar.Create(AOwner: TComponent); 60 | begin 61 | inherited Create(AOwner); 62 | FPercentLabel:=TSCOutlinedLabel.Create(Self); 63 | FRemainingLabel:=TSCOutlinedLabel.Create(Self); 64 | 65 | PercentLabel.Name:='PercentLabel'; 66 | PercentLabel.Align:=alClient; 67 | PercentLabel.Transparent:=True; 68 | PercentLabel.Alignment:=taCenter; 69 | PercentLabel.Parent:=Self; 70 | 71 | RemainingLabel.Name:='RemainingLabel'; 72 | RemainingLabel.Align:=alClient; 73 | RemainingLabel.Transparent:=True; 74 | RemainingLabel.Alignment:=taRightJustify; 75 | RemainingLabel.Parent:=Self; 76 | 77 | inherited Max:=MaxInt; 78 | 79 | FMin:=0; 80 | FMax:=100; 81 | FPosition:=0; 82 | UpdateProgress; 83 | end; 84 | 85 | procedure TSCProgessBar.SetMax(const Value: Int64); 86 | begin 87 | FMax := Value; 88 | UpdateProgress; 89 | end; 90 | 91 | procedure TSCProgessBar.SetMin(const Value: Int64); 92 | begin 93 | FMin := Value; 94 | UpdateProgress; 95 | end; 96 | 97 | procedure TSCProgessBar.SetPosition(const Value: Int64); 98 | begin 99 | FPosition := Value; 100 | UpdateProgress; 101 | end; 102 | 103 | procedure TSCProgessBar.UpdateProgress; 104 | var Pct:Double; 105 | begin 106 | Pct:=0.0; 107 | if (FPosition>=FMin) and (FMax>FMin) then 108 | Pct:=(FPosition-FMin)/(FMax-FMin); 109 | 110 | inherited Position:=Round(Pct*inherited Max); 111 | PercentLabel.Caption:=IntToStr(Round(Pct*100))+' %'; 112 | end; 113 | 114 | end. 115 | -------------------------------------------------------------------------------- /Components/SFXTeam/ScPopupButton.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/ScPopupButton.pas -------------------------------------------------------------------------------- /Components/SFXTeam/ScSystray.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/ScSystray.pas -------------------------------------------------------------------------------- /Components/SFXTeam/test_compo/Project1.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=0 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=0 19 | P=1 20 | Q=1 21 | R=1 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=0 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription= 92 | [Directories] 93 | OutputDir= 94 | UnitOutputDir= 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols 98 | Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP;Picone 99 | Conditionals= 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Language] 109 | ActiveLang= 110 | ProjectLang= 111 | RootDir=G:\prog\Borland\Delphi7\Bin\ 112 | [Version Info] 113 | IncludeVerInfo=0 114 | AutoIncBuild=0 115 | MajorVer=1 116 | MinorVer=0 117 | Release=0 118 | Build=0 119 | Debug=0 120 | PreRelease=0 121 | Special=0 122 | Private=0 123 | DLL=0 124 | Locale=1036 125 | CodePage=1252 126 | [Version Info Keys] 127 | CompanyName= 128 | FileDescription= 129 | FileVersion=1.0.0.0 130 | InternalName= 131 | LegalCopyright= 132 | LegalTrademarks= 133 | OriginalFilename= 134 | ProductName= 135 | ProductVersion=1.0.0.0 136 | Comments= 137 | [Excluded Packages] 138 | c:\program files\borland\delphi7\Projects\Bpl\VirtualTreesD7D.bpl=Virtual Treeview design time package 139 | c:\program files\borland\delphi7\Projects\Bpl\dclusr70.bpl=Composants utilisateur Borland 140 | c:\program files\borland\delphi7\Bin\dclnet70.bpl=Composant Internet Borland 141 | c:\program files\borland\delphi7\Bin\dclsoap70.bpl=Composants SOAP Borland 142 | c:\program files\borland\delphi7\Bin\dcldbx70.bpl=Composants dbExpress Borland 143 | c:\program files\borland\delphi7\Bin\dcldbxcds70.bpl=Composant SimpleDataset Borland (DBX) 144 | c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Paquet Expert Web Borland 145 | c:\program files\borland\delphi7\Bin\dclwbm70.bpl=Composants InternetExpress Borland 146 | c:\program files\borland\delphi7\Bin\dclie70.bpl=Composants Internet Explorer 147 | c:\program files\borland\delphi7\Bin\dclwebsnap70.bpl=Composants WebSnap Borland 148 | c:\program files\borland\delphi7\Bin\dcloffice2k70.bpl=Composants Wrapper Serveur Automation MS Office 2000 149 | c:\program files\borland\delphi7\Bin\dclIntraweb_50_70.bpl=Paquet de conception Intraweb 5.0 pour Delphi 7 150 | c:\program files\borland\delphi7\bin\dclRave70.bpl=Paquet Rave Reports BE 5.0 151 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JclDebugIde70.bpl=JCL Debug IDE extension for Delphi 7 152 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\ProjectAnalyzer70.bpl=JCL Project Analyzer for Delphi 7 153 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\IdeOpenDlgFavorite70.bpl=JCL Open and Save IDE dialogs with favorite folders for Delphi 7 154 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JVCL200_D70.bpl=JEDI-VCL Components 155 | [HistoryLists\hlUnitAliases] 156 | Count=1 157 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 158 | [HistoryLists\hlSearchPath] 159 | Count=1 160 | Item0=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols 161 | -------------------------------------------------------------------------------- /Components/SFXTeam/test_compo/Project1.dpr: -------------------------------------------------------------------------------- 1 | program Project1; 2 | 3 | uses 4 | Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TForm1, Form1); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /Components/SFXTeam/test_compo/Project1.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/test_compo/Project1.res -------------------------------------------------------------------------------- /Components/SFXTeam/test_compo/Unit1.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/test_compo/Unit1.ddp -------------------------------------------------------------------------------- /Components/SFXTeam/test_compo/Unit1.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Components/SFXTeam/test_compo/Unit1.pas -------------------------------------------------------------------------------- /Install/SC2.nsi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Install/SC2.nsi -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc., 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SuperCopier 2.2 beta 2 | 3 | SuperCopier2 is free software; you can redistribute it and/or modify 4 | it under the terms of the GNU General Public License as published by 5 | the Free Software Foundation; either version 2 of the License, or 6 | (at your option) any later version. 7 | 8 | SuperCopier2 is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | ## Website: 14 | http://supercopier.sfxteam.org 15 | 16 | ## E-Mail: 17 | supercopier@sfxteam.org (preferably put the 'SuperCopier' word in the e-mail subject) 18 | 19 | ## Staff: 20 | GliGli: Main code, 21 | Yogi: Original NT Copier, 22 | ZeuS: Graphical components. 23 | 24 | ## Special thanks to: 25 | TntWare http://www.tntware.com/ (unicode components), 26 | Tal Sella http://www.virtualplastic.net/scrow/ (icons). 27 | 28 | # Description: 29 | 30 | SuperCopier replaces Windows explorer file copy and adds many features: 31 | * Transfer resuming 32 | * Copy speed control 33 | * No bugs if You copy more than 2GB at once 34 | * Copy speed computation 35 | * Better copy progress display 36 | * A little faster 37 | * Copy list editable while copying 38 | * Error log 39 | * Copy list saving/loading 40 | * ... 41 | 42 | _Compatibility:_ Windows NT4/2000/XP/Vista/Seven and 64 bit / Server flavors. 43 | -------------------------------------------------------------------------------- /Resources/progicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/Resources/progicon.ico -------------------------------------------------------------------------------- /SC2C++/DDShellExt.cpp: -------------------------------------------------------------------------------- 1 | // DDShellExt.cpp : Implementation of CDDShellExt 2 | 3 | #include "stdafx.h" 4 | #include "DDShellExt.h" 5 | #include "SCApiClient.h" 6 | 7 | bool isWinNT4(){ 8 | OSVERSIONINFO version; 9 | 10 | version.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); 11 | 12 | GetVersionEx(&version); 13 | 14 | return ((version.dwPlatformId==VER_PLATFORM_WIN32_NT) && (version.dwMajorVersion==4)); 15 | }; 16 | 17 | 18 | // CDDShellExt 19 | 20 | #ifndef _M_X64 21 | const CLSID CLSID_DDShellExt = {0x68D44A27,0xFFB6,0x4B89,{0xA3,0xE5,0x7B,0x0E,0x50,0xA7,0xAB,0x33}}; 22 | #else 23 | const CLSID CLSID_DDShellExt = {0x68ff37c4,0x51bc,0x4c2a,{0xa9,0x92,0x7e,0x39,0xbc,0xe,0x70,0x6f}}; 24 | #endif 25 | 26 | int CDDShellExt::fBaselistHandle=SC2_API_INVALID_HANDLE; 27 | 28 | STDMETHODIMP CDDShellExt::Initialize(LPCITEMIDLIST pidlFolder,LPDATAOBJECT pDO,HKEY hProgID){ 29 | 30 | APIClient->connect(); 31 | if (!APIClient->getConnected()) 32 | return E_FAIL; 33 | 34 | if(!APIClient->isAPIAlive()){ 35 | APIClient->disconnect(); 36 | return E_FAIL; 37 | } 38 | 39 | if(fBaselistHandle!=SC2_API_INVALID_HANDLE){ 40 | SCObjectFree(fBaselistHandle); 41 | fBaselistHandle=SC2_API_INVALID_HANDLE; 42 | } 43 | 44 | FORMATETC fmt={CF_HDROP,NULL,DVASPECT_CONTENT,-1,TYMED_HGLOBAL}; 45 | STGMEDIUM stg={TYMED_HGLOBAL}; 46 | HDROP hDrop; 47 | 48 | fDestDir[0]=0; 49 | if (!SHGetPathFromIDList(pidlFolder,fDestDir)) 50 | return E_FAIL; 51 | 52 | // Detect if it's explorer that started the operation by enumerating available 53 | // clipboard formats and searching for one that only explorer uses 54 | IEnumFORMATETC *en; 55 | FORMATETC fmt2; 56 | WCHAR fmtName[256]=L"\0"; 57 | fFromExplorer=false; 58 | pDO->EnumFormatEtc(DATADIR_GET,&en); 59 | while(en->Next(1,&fmt2,NULL)==S_OK){ 60 | GetClipboardFormatName(fmt2.cfFormat,fmtName,256); 61 | if (!wcscmp(fmtName,CFSTR_SHELLIDLIST)) fFromExplorer=true; 62 | } 63 | en->Release(); 64 | 65 | // Look for CF_HDROP data in the data object. If there 66 | // is no such data, return an error back to Explorer. 67 | if (FAILED(pDO->GetData(&fmt,&stg))) 68 | return E_INVALIDARG; 69 | 70 | // Get a pointer to the actual data. 71 | hDrop=(HDROP)GlobalLock(stg.hGlobal); 72 | 73 | // Make sure it worked. 74 | if (hDrop==NULL) 75 | return E_INVALIDARG; 76 | 77 | UINT numFiles,i; 78 | WCHAR fn[MAX_PATH]=L""; 79 | 80 | numFiles=DragQueryFile(hDrop,0xFFFFFFFF,NULL,0); 81 | 82 | if(numFiles){ 83 | fBaselistHandle=SCNewBaseList(); 84 | 85 | for(i=0;ilpVerb)) 135 | return E_INVALIDARG; 136 | 137 | switch(LOWORD(pInfo->lpVerb)){ 138 | case 0: 139 | SCProcessBaseList(fBaselistHandle,FO_COPY,fDestDir); 140 | fBaselistHandle=SC2_API_INVALID_HANDLE; // handle will be freed by SC2 141 | break; 142 | case 1: 143 | SCProcessBaseList(fBaselistHandle,FO_MOVE,fDestDir); 144 | fBaselistHandle=SC2_API_INVALID_HANDLE; // handle will be freed by SC2 145 | break; 146 | } 147 | 148 | return S_OK; 149 | } 150 | -------------------------------------------------------------------------------- /SC2C++/DDShellExt.h: -------------------------------------------------------------------------------- 1 | // DDShellExt.h : Declaration of the CDDShellExt 2 | 3 | #pragma once 4 | #include "resource.h" // main symbols 5 | #include "shlobj.h" 6 | 7 | // CDDShellExt 8 | 9 | extern const CLSID CLSID_DDShellExt; 10 | 11 | class ATL_NO_VTABLE CDDShellExt : 12 | public CComObjectRootEx, 13 | public CComCoClass, 14 | public IShellExtInit, 15 | public IContextMenu 16 | { 17 | private: 18 | static int fBaselistHandle; 19 | bool fFromExplorer; 20 | WCHAR fDestDir[MAX_PATH]; 21 | public: 22 | BEGIN_COM_MAP(CDDShellExt) 23 | COM_INTERFACE_ENTRY(IShellExtInit) 24 | COM_INTERFACE_ENTRY(IContextMenu) 25 | END_COM_MAP() 26 | 27 | DECLARE_REGISTRY_RESOURCEID(IDR_SC2SHELLEXT) 28 | 29 | // IShellExtInit 30 | STDMETHODIMP Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY); 31 | 32 | // IContextMenu 33 | STDMETHODIMP GetCommandString(UINT_PTR idCmd,UINT uFlags,UINT* pwReserved,LPSTR pszName,UINT cchMax){return E_NOTIMPL;}; 34 | STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO); 35 | STDMETHODIMP QueryContextMenu(HMENU,UINT,UINT,UINT,UINT); 36 | }; -------------------------------------------------------------------------------- /SC2C++/Release/reg.bat: -------------------------------------------------------------------------------- 1 | regsvr32 sc2shellext.dll -------------------------------------------------------------------------------- /SC2C++/Release/unreg.bat: -------------------------------------------------------------------------------- 1 | regsvr32 /u sc2shellext.dll -------------------------------------------------------------------------------- /SC2C++/SC2C++.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SC2ShellExt", "SC2ShellExt.vcxproj", "{36984E63-DAE8-4348-9762-395E3A8C7BF7}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Win32 = Debug|Win32 9 | Debug|x64 = Debug|x64 10 | Release|Win32 = Release|Win32 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Debug|Win32.ActiveCfg = Debug|Win32 15 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Debug|Win32.Build.0 = Debug|Win32 16 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Debug|x64.ActiveCfg = Debug|x64 17 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Debug|x64.Build.0 = Debug|x64 18 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Release|Win32.ActiveCfg = Release|Win32 19 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Release|Win32.Build.0 = Release|Win32 20 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Release|x64.ActiveCfg = Release|x64 21 | {36984E63-DAE8-4348-9762-395E3A8C7BF7}.Release|x64.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt.cpp: -------------------------------------------------------------------------------- 1 | // SC2ShellExt.cpp : Implementation of DLL Exports. 2 | 3 | 4 | #include "stdafx.h" 5 | #include "resource.h" 6 | #include "DDShellExt.h" 7 | #include "SCApiClient.h" 8 | 9 | CComModule _AtlModule; 10 | 11 | BEGIN_OBJECT_MAP(ObjectMap) 12 | OBJECT_ENTRY(CLSID_DDShellExt, CDDShellExt) 13 | END_OBJECT_MAP() 14 | 15 | // DLL Entry Point 16 | extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) 17 | { 18 | hInstance; 19 | 20 | switch(dwReason){ 21 | case DLL_PROCESS_ATTACH: 22 | APIClient=new TAPIClient(); 23 | break; 24 | case DLL_PROCESS_DETACH: 25 | delete APIClient; 26 | break; 27 | } 28 | 29 | return _AtlModule.DllMain(hInstance, dwReason, lpReserved,ObjectMap,NULL); 30 | } 31 | 32 | 33 | // Used to determine whether the DLL can be unloaded by OLE 34 | STDAPI DllCanUnloadNow(void) 35 | { 36 | return _AtlModule.DllCanUnloadNow(); 37 | } 38 | 39 | 40 | // Returns a class factory to create an object of the requested type 41 | STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) 42 | { 43 | return _AtlModule.DllGetClassObject(rclsid, riid, ppv); 44 | } 45 | 46 | 47 | // DllRegisterServer - Adds entries to the system registry 48 | STDAPI DllRegisterServer(void) 49 | { 50 | // registers object, typelib and all interfaces in typelib 51 | HRESULT hr = _AtlModule.DllRegisterServer(FALSE); 52 | return hr; 53 | } 54 | 55 | 56 | // DllUnregisterServer - Removes entries from the system registry 57 | STDAPI DllUnregisterServer(void) 58 | { 59 | HRESULT hr = _AtlModule.DllUnregisterServer(FALSE); 60 | return hr; 61 | } 62 | 63 | -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt.def: -------------------------------------------------------------------------------- 1 | ; SC2ShellExt.def : Declares the module parameters. 2 | 3 | LIBRARY "SC2ShellExt.DLL" 4 | 5 | EXPORTS 6 | DllCanUnloadNow PRIVATE 7 | DllGetClassObject PRIVATE 8 | DllRegisterServer PRIVATE 9 | DllUnregisterServer PRIVATE 10 | -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Generated from the TEXTINCLUDE 2 resource. 9 | // 10 | #include "afxres.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | #undef APSTUDIO_READONLY_SYMBOLS 14 | 15 | ///////////////////////////////////////////////////////////////////////////// 16 | // English (U.S.) resources 17 | 18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 19 | #ifdef _WIN32 20 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 21 | #pragma code_page(1252) 22 | #endif //_WIN32 23 | 24 | ///////////////////////////////////////////////////////////////////////////// 25 | // 26 | // Version 27 | // 28 | 29 | VS_VERSION_INFO VERSIONINFO 30 | FILEVERSION 2,0,0,0 31 | PRODUCTVERSION 2,0,0,0 32 | FILEFLAGSMASK 0x3fL 33 | #ifdef _DEBUG 34 | FILEFLAGS 0x1L 35 | #else 36 | FILEFLAGS 0x0L 37 | #endif 38 | FILEOS 0x4L 39 | FILETYPE 0x2L 40 | FILESUBTYPE 0x0L 41 | BEGIN 42 | BLOCK "StringFileInfo" 43 | BEGIN 44 | BLOCK "040904e4" 45 | BEGIN 46 | VALUE "CompanyName", "SFX TeAm" 47 | VALUE "FileDescription", "SuperCopier 2 Shell Extension" 48 | VALUE "FileVersion", "2.0.0.0" 49 | VALUE "InternalName", "SC2ShellExt.dll" 50 | VALUE "LegalCopyright", "GNU GPL" 51 | VALUE "OriginalFilename", "SC2ShellExt.dll" 52 | VALUE "ProductName", "SuperCopier 2" 53 | VALUE "ProductVersion", "2" 54 | END 55 | END 56 | BLOCK "VarFileInfo" 57 | BEGIN 58 | VALUE "Translation", 0x409, 1252 59 | END 60 | END 61 | 62 | 63 | ///////////////////////////////////////////////////////////////////////////// 64 | // 65 | // REGISTRY 66 | // 67 | 68 | #ifndef _M_X64 69 | IDR_SC2SHELLEXT REGISTRY "SC2ShellExt.rgs" 70 | #else 71 | IDR_SC2SHELLEXT REGISTRY "SC2ShellExt64.rgs" 72 | #endif 73 | 74 | ///////////////////////////////////////////////////////////////////////////// 75 | // 76 | // String Table 77 | // 78 | 79 | STRINGTABLE 80 | BEGIN 81 | IDS_PROJNAME "SC2ShellExt" 82 | END 83 | 84 | #endif // English (U.S.) resources 85 | ///////////////////////////////////////////////////////////////////////////// 86 | 87 | 88 | ///////////////////////////////////////////////////////////////////////////// 89 | // French (France) resources 90 | 91 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) 92 | #ifdef _WIN32 93 | LANGUAGE LANG_FRENCH, SUBLANG_FRENCH 94 | #pragma code_page(1252) 95 | #endif //_WIN32 96 | 97 | #ifdef APSTUDIO_INVOKED 98 | ///////////////////////////////////////////////////////////////////////////// 99 | // 100 | // TEXTINCLUDE 101 | // 102 | 103 | 1 TEXTINCLUDE 104 | BEGIN 105 | "resource.\0" 106 | END 107 | 108 | 109 | 3 TEXTINCLUDE 110 | BEGIN 111 | "\r\0" 112 | END 113 | 114 | #endif // APSTUDIO_INVOKED 115 | 116 | #endif // French (France) resources 117 | ///////////////////////////////////////////////////////////////////////////// 118 | 119 | 120 | 121 | #ifndef APSTUDIO_INVOKED 122 | ///////////////////////////////////////////////////////////////////////////// 123 | // 124 | // Generated from the TEXTINCLUDE 3 resource. 125 | // 126 | 127 | 128 | ///////////////////////////////////////////////////////////////////////////// 129 | #endif // not APSTUDIO_INVOKED 130 | 131 | -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt.rgs: -------------------------------------------------------------------------------- 1 | HKCR 2 | { 3 | NoRemove CLSID 4 | { 5 | ForceRemove {68D44A27-FFB6-4B89-A3E5-7B0E50A7AB33} = s 'SC2ShellExt Class' 6 | { 7 | InprocServer32 = s '%MODULE%' 8 | { 9 | val ThreadingModel = s 'Apartment' 10 | } 11 | } 12 | } 13 | NoRemove Drive 14 | { 15 | NoRemove shellex 16 | { 17 | NoRemove DragDropHandlers 18 | { 19 | ForceRemove SC2ShellExt = s {68D44A27-FFB6-4B89-A3E5-7B0E50A7AB33} 20 | } 21 | } 22 | } 23 | NoRemove Directory 24 | { 25 | NoRemove shellex 26 | { 27 | NoRemove DragDropHandlers 28 | { 29 | ForceRemove SC2ShellExt = s {68D44A27-FFB6-4B89-A3E5-7B0E50A7AB33} 30 | } 31 | } 32 | } 33 | NoRemove Folder 34 | { 35 | NoRemove shellex 36 | { 37 | NoRemove DragDropHandlers 38 | { 39 | ForceRemove SC2ShellExt = s {68D44A27-FFB6-4B89-A3E5-7B0E50A7AB33} 40 | } 41 | } 42 | } 43 | } 44 | HKLM 45 | { 46 | NoRemove Software 47 | { 48 | NoRemove Microsoft 49 | { 50 | NoRemove Windows 51 | { 52 | NoRemove CurrentVersion 53 | { 54 | NoRemove 'Shell Extensions' 55 | { 56 | NoRemove Approved 57 | { 58 | ForceRemove val {68D44A27-FFB6-4B89-A3E5-7B0E50A7AB33} = s 'SC2ShellExt' 59 | } 60 | } 61 | } 62 | } 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt.vcproj: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 17 | 18 | 19 | 20 | 21 | 30 | 33 | 36 | 39 | 42 | 55 | 67 | 70 | 76 | 79 | 89 | 92 | 95 | 98 | 101 | 104 | 107 | 110 | 113 | 114 | 123 | 126 | 129 | 132 | 135 | 147 | 159 | 162 | 168 | 171 | 180 | 183 | 186 | 189 | 192 | 195 | 198 | 201 | 204 | 205 | 215 | 218 | 221 | 224 | 227 | 240 | 251 | 254 | 260 | 263 | 276 | 279 | 282 | 285 | 288 | 291 | 294 | 297 | 300 | 301 | 311 | 314 | 317 | 320 | 323 | 335 | 346 | 349 | 355 | 358 | 370 | 373 | 376 | 379 | 382 | 385 | 388 | 391 | 394 | 395 | 396 | 397 | 398 | 399 | 404 | 407 | 408 | 411 | 412 | 415 | 416 | 419 | 420 | 423 | 426 | 430 | 431 | 434 | 438 | 439 | 442 | 446 | 447 | 450 | 454 | 455 | 456 | 457 | 462 | 465 | 466 | 469 | 470 | 473 | 474 | 477 | 478 | 479 | 484 | 487 | 488 | 491 | 492 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Debug 10 | x64 11 | 12 | 13 | Release 14 | Win32 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {36984E63-DAE8-4348-9762-395E3A8C7BF7} 23 | SC2ShellExt 24 | AtlProj 25 | 26 | 27 | 28 | DynamicLibrary 29 | false 30 | Static 31 | Unicode 32 | 33 | 34 | DynamicLibrary 35 | Dynamic 36 | Unicode 37 | 38 | 39 | DynamicLibrary 40 | false 41 | Static 42 | Unicode 43 | 44 | 45 | DynamicLibrary 46 | Dynamic 47 | Unicode 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | <_ProjectFileVersion>10.0.30319.1 67 | $(Configuration)\ 68 | $(Configuration)\ 69 | true 70 | true 71 | $(Platform)\$(Configuration)\ 72 | $(Platform)\$(Configuration)\ 73 | true 74 | true 75 | $(Configuration)\ 76 | $(Configuration)\ 77 | true 78 | false 79 | false 80 | $(Platform)\$(Configuration)\ 81 | $(Platform)\$(Configuration)\ 82 | true 83 | false 84 | false 85 | AllRules.ruleset 86 | 87 | 88 | AllRules.ruleset 89 | 90 | 91 | AllRules.ruleset 92 | 93 | 94 | AllRules.ruleset 95 | 96 | 97 | 98 | 99 | 100 | _DEBUG;%(PreprocessorDefinitions) 101 | false 102 | Win32 103 | true 104 | $(IntDir)SC2ShellExt.tlb 105 | SC2ShellExt.h 106 | 107 | 108 | SC2ShellExt_i.c 109 | SC2ShellExt_p.c 110 | false 111 | 112 | 113 | Disabled 114 | WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions) 115 | true 116 | EnableFastChecks 117 | MultiThreadedDebugDLL 118 | Use 119 | Level3 120 | EditAndContinue 121 | 122 | 123 | _DEBUG;%(PreprocessorDefinitions) 124 | 0x0409 125 | $(IntDir);%(AdditionalIncludeDirectories) 126 | 127 | 128 | true 129 | .\SC2ShellExt.def 130 | true 131 | Windows 132 | MachineX86 133 | 134 | 135 | 136 | 137 | _DEBUG;%(PreprocessorDefinitions) 138 | false 139 | X64 140 | true 141 | $(IntDir)SC2ShellExt.tlb 142 | SC2ShellExt.h 143 | 144 | 145 | SC2ShellExt_i.c 146 | SC2ShellExt_p.c 147 | 148 | 149 | Disabled 150 | WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions) 151 | true 152 | EnableFastChecks 153 | MultiThreadedDebugDLL 154 | Use 155 | Level3 156 | ProgramDatabase 157 | 158 | 159 | _DEBUG;%(PreprocessorDefinitions) 160 | 0x0409 161 | $(IntDir);%(AdditionalIncludeDirectories) 162 | 163 | 164 | .\SC2ShellExt.def 165 | true 166 | Windows 167 | MachineX64 168 | 169 | 170 | 171 | 172 | NDEBUG;%(PreprocessorDefinitions) 173 | false 174 | Win32 175 | true 176 | $(IntDir)SC2ShellExt.tlb 177 | SC2ShellExt.h 178 | 179 | 180 | SC2ShellExt_i.c 181 | SC2ShellExt_p.c 182 | false 183 | 184 | 185 | MaxSpeed 186 | Size 187 | WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions) 188 | MultiThreaded 189 | Use 190 | Level3 191 | ProgramDatabase 192 | 193 | 194 | NDEBUG;%(PreprocessorDefinitions) 195 | 0x0409 196 | $(IntDir);%(AdditionalIncludeDirectories) 197 | 198 | 199 | true 200 | .\SC2ShellExt.def 201 | true 202 | Windows 203 | true 204 | true 205 | MachineX86 206 | 207 | 208 | 209 | 210 | NDEBUG;%(PreprocessorDefinitions) 211 | false 212 | X64 213 | true 214 | $(IntDir)SC2ShellExt.tlb 215 | SC2ShellExt.h 216 | 217 | 218 | SC2ShellExt_i.c 219 | SC2ShellExt_p.c 220 | 221 | 222 | MaxSpeed 223 | Size 224 | WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions) 225 | MultiThreaded 226 | Use 227 | Level3 228 | ProgramDatabase 229 | 230 | 231 | NDEBUG;_M_X64;%(PreprocessorDefinitions) 232 | 0x0409 233 | $(IntDir);%(AdditionalIncludeDirectories) 234 | 235 | 236 | .\SC2ShellExt.def 237 | true 238 | Windows 239 | true 240 | true 241 | MachineX64 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | Create 250 | Create 251 | Create 252 | Create 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | 32 | 33 | Source Files 34 | 35 | 36 | Resource Files 37 | 38 | 39 | Resource Files 40 | 41 | 42 | 43 | 44 | Header Files 45 | 46 | 47 | Header Files 48 | 49 | 50 | Header Files 51 | 52 | 53 | Header Files 54 | 55 | 56 | 57 | 58 | Resource Files 59 | 60 | 61 | -------------------------------------------------------------------------------- /SC2C++/SC2ShellExt64.rgs: -------------------------------------------------------------------------------- 1 | HKCR 2 | { 3 | NoRemove CLSID 4 | { 5 | ForceRemove {68FF37C4-51BC-4c2a-A992-7E39BC0E706F} = s 'SC2ShellExt Class' 6 | { 7 | InprocServer32 = s '%MODULE%' 8 | { 9 | val ThreadingModel = s 'Apartment' 10 | } 11 | } 12 | } 13 | NoRemove Drive 14 | { 15 | NoRemove shellex 16 | { 17 | NoRemove DragDropHandlers 18 | { 19 | ForceRemove SC2ShellExt64 = s {68FF37C4-51BC-4c2a-A992-7E39BC0E706F} 20 | } 21 | } 22 | } 23 | NoRemove Directory 24 | { 25 | NoRemove shellex 26 | { 27 | NoRemove DragDropHandlers 28 | { 29 | ForceRemove SC2ShellExt64 = s {68FF37C4-51BC-4c2a-A992-7E39BC0E706F} 30 | } 31 | } 32 | } 33 | NoRemove Folder 34 | { 35 | NoRemove shellex 36 | { 37 | NoRemove DragDropHandlers 38 | { 39 | ForceRemove SC2ShellExt64 = s {68FF37C4-51BC-4c2a-A992-7E39BC0E706F} 40 | } 41 | } 42 | } 43 | } 44 | HKLM 45 | { 46 | NoRemove Software 47 | { 48 | NoRemove Microsoft 49 | { 50 | NoRemove Windows 51 | { 52 | NoRemove CurrentVersion 53 | { 54 | NoRemove 'Shell Extensions' 55 | { 56 | NoRemove Approved 57 | { 58 | ForceRemove val {68FF37C4-51BC-4c2a-A992-7E39BC0E706F} = s 'SC2ShellExt64' 59 | } 60 | } 61 | } 62 | } 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /SC2C++/SCAPIClient.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SC2C++/SCAPIClient.cpp -------------------------------------------------------------------------------- /SC2C++/SCAPIClient.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | const WCHAR SC2_API_ID[]=L"SuperCopier2 API"; 5 | const WCHAR SC2_API_MUTEX_ID[]=L"Mutex"; 6 | const WCHAR SC2_API_FILEMAPPING_ID[]=L"FileMapping"; 7 | const WCHAR SC2_API_CLIENTEVENT_ID[]=L"ClientEvent"; 8 | const WCHAR SC2_API_APIEVENT_ID[]=L"APIEvent"; 9 | 10 | const int SC2_API_FILEMAPPING_SIZE=128*1024; 11 | 12 | const int SC2_API_TIMEOUT=500; //ms 13 | 14 | const int SC2_API_INVALID_HANDLE=-1; 15 | 16 | typedef enum ApiErrorEnum {aeNone=0,aeBadHandle=1,aeWrongHandleType=2,aeEmptyBaseList=3,aeBadLocStringId=4} TApiError; 17 | 18 | typedef enum ApiFunctionEnum {afNone=0,afObjectFree=1,afGetLastError=2,afErrorMessage=3,afObjectExists=4,afGetLocString=5, 19 | afNewBaseList=10,afBaselistAddItem=11, 20 | afIsEnabled=20,afProcessBaseList=21,afIsSameVolumeMove=22, 21 | afNewCopy=30,afCopyAddBaseList=31} TApiFunction; 22 | 23 | typedef enum SeekOriginEnum {soFromBeginning=0,soFromCurrent=1,soFromEnd=2} TSeekOrigin; 24 | 25 | typedef enum BaselistAddModeEnum {amDefaultDir=0,amSpecifyDest=1,amPromptForDest=2,amPromptForDestAndSetDefault=3} TBaselistAddMode; 26 | 27 | class TFileMappingStream { 28 | private: 29 | void * fFileMapping; 30 | int fSize; 31 | int fPosition; 32 | public: 33 | TFileMappingStream(HANDLE aHandle,int aSize); 34 | virtual ~TFileMappingStream(); 35 | 36 | void read(void * aBuffer,int aCount); 37 | void write(const void * aBuffer,int aCount); 38 | void seek(int aOffset,TSeekOrigin aOrigin); 39 | 40 | void writeInteger(int aValue); 41 | void writeWideString(const WCHAR * aValue); 42 | int readInteger(); 43 | void readWideString(WCHAR * aValue,int aCount); 44 | }; 45 | 46 | class TAPIClient { 47 | private: 48 | HANDLE fMutex; 49 | HANDLE fFileMapping; 50 | HANDLE fClientEvent; 51 | HANDLE fAPIEvent; 52 | TFileMappingStream * fFileMappingStream; 53 | bool fConnected; 54 | TApiError fLastError; 55 | 56 | void retrieveLastError(); 57 | 58 | public: 59 | TAPIClient(); 60 | virtual ~TAPIClient(); 61 | 62 | void connect(); 63 | void disconnect(); 64 | bool isAPIAlive(); 65 | 66 | void begin(TApiFunction aFuntion); 67 | void end(); 68 | void sendAndWaitResult(); 69 | 70 | TFileMappingStream * getFileMappingStream(){return fFileMappingStream;}; 71 | bool getConnected(){return fConnected;}; 72 | TApiError getLastError(){return fLastError;}; 73 | }; 74 | 75 | extern TAPIClient * APIClient; 76 | 77 | void sessionUniqueAPIIdentifier(const WCHAR * aObject,WCHAR * aOutput,int aOutputCount); 78 | 79 | //****************************************************************************** 80 | // Fonctions de l'API 81 | //****************************************************************************** 82 | 83 | void SCObjectFree(int aHandle); 84 | int SCGetLastError(); 85 | void SCErrorMessage(int aError,WCHAR * aOutput,int aOutputCount); 86 | bool SCObjectExists(int aHandle); 87 | void SCGetLocString(int aLocStringId,WCHAR * aOutput,int aOutputCount); 88 | 89 | int SCNewBaseList(); 90 | void SCBaselistAddItem(int aBaseListHandle,WCHAR * aItemName); 91 | 92 | bool SCIsEnabled(); 93 | int SCProcessBaseList(int aBaseListHandle,int aOperation,WCHAR * aDestDir); 94 | bool SCIsSameVolumeMove(int aBaseListHandle,WCHAR * aDestDir); 95 | 96 | int SCNewCopy(bool aIsMove); 97 | void SCCopyAddBaseList(int aCopyHandle,int aBaseListHandle,int aMode,WCHAR * aDestDir); 98 | -------------------------------------------------------------------------------- /SC2C++/UpgradeLog.XML: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /SC2C++/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by SC2ShellExt.rc 4 | // 5 | #define IDS_PROJNAME 100 6 | #define IDR_SC2SHELLEXT 101 7 | #define IDR_DDSHELLEXT 102 8 | 9 | // Next default values for new objects 10 | // 11 | #ifdef APSTUDIO_INVOKED 12 | #ifndef APSTUDIO_READONLY_SYMBOLS 13 | #define _APS_NEXT_RESOURCE_VALUE 201 14 | #define _APS_NEXT_COMMAND_VALUE 32768 15 | #define _APS_NEXT_CONTROL_VALUE 201 16 | #define _APS_NEXT_SYMED_VALUE 103 17 | #endif 18 | #endif 19 | -------------------------------------------------------------------------------- /SC2C++/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // SC2ShellExt.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | -------------------------------------------------------------------------------- /SC2C++/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, 3 | // but are changed infrequently 4 | 5 | #pragma once 6 | 7 | #ifndef STRICT 8 | #define STRICT 9 | #endif 10 | 11 | #define _ATL_NO_UUIDOF 12 | 13 | // Modify the following defines if you have to target a platform prior to the ones specified below. 14 | // Refer to MSDN for the latest info on corresponding values for different platforms. 15 | #ifndef WINVER // Allow use of features specific to Windows XP or later. 16 | #define WINVER 0x0400 // Change this to the appropriate value to target other versions of Windows. 17 | #endif 18 | 19 | #ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. 20 | #define _WIN32_WINNT 0x0400 // Change this to the appropriate value to target other versions of Windows. 21 | #endif 22 | 23 | #ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later. 24 | #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later. 25 | #endif 26 | 27 | #ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later. 28 | #define _WIN32_IE 0x0500 // Change this to the appropriate value to target other versions of IE. 29 | #endif 30 | 31 | #define _ATL_APARTMENT_THREADED 32 | #define _ATL_NO_AUTOMATIC_NAMESPACE 33 | 34 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit 35 | 36 | 37 | #include "resource.h" 38 | #include 39 | #include 40 | 41 | using namespace ATL; -------------------------------------------------------------------------------- /SC2C++/x64/Release/reg.bat: -------------------------------------------------------------------------------- 1 | regsvr32 sc2shellext.dll -------------------------------------------------------------------------------- /SC2C++/x64/Release/unreg.bat: -------------------------------------------------------------------------------- 1 | regsvr32 /u sc2shellext.dll -------------------------------------------------------------------------------- /SC2Config.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=1 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=0 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription= 92 | [Directories] 93 | OutputDir=.\Compil 94 | UnitOutputDir=.\Compil 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath= 98 | Packages=vclx;vcl;rtl;indy;dsnapcon;dsnap;dbrtl;vcldb;VclSmp;bdertl;vcldbx;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclaxserver;TntUnicodeVcl_R70;SCComponent 99 | Conditionals= 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Language] 109 | ActiveLang= 110 | ProjectLang= 111 | RootDir= 112 | [Version Info] 113 | IncludeVerInfo=0 114 | AutoIncBuild=0 115 | MajorVer=1 116 | MinorVer=0 117 | Release=0 118 | Build=0 119 | Debug=0 120 | PreRelease=0 121 | Special=0 122 | Private=0 123 | DLL=0 124 | Locale=1036 125 | CodePage=1252 126 | [Version Info Keys] 127 | CompanyName= 128 | FileDescription= 129 | FileVersion=1.0.0.0 130 | InternalName= 131 | LegalCopyright= 132 | LegalTrademarks= 133 | OriginalFilename= 134 | ProductName= 135 | ProductVersion=1.0.0.0 136 | Comments= 137 | [Excluded Packages] 138 | c:\program files\borland\delphi7\Bin\dclnet70.bpl=Composant Internet Borland 139 | c:\program files\borland\delphi7\Bin\dclsoap70.bpl=Composants SOAP Borland 140 | c:\program files\borland\delphi7\Bin\dcldbx70.bpl=Composants dbExpress Borland 141 | c:\program files\borland\delphi7\Bin\dcldbxcds70.bpl=Composant SimpleDataset Borland (DBX) 142 | c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Paquet Expert Web Borland 143 | c:\program files\borland\delphi7\Bin\dclwbm70.bpl=Composants InternetExpress Borland 144 | c:\program files\borland\delphi7\Bin\dclie70.bpl=Composants Internet Explorer 145 | c:\program files\borland\delphi7\Bin\dclwebsnap70.bpl=Composants WebSnap Borland 146 | c:\program files\borland\delphi7\Bin\dclIntraweb_50_70.bpl=Paquet de conception Intraweb 5.0 pour Delphi 7 147 | c:\program files\borland\delphi7\bin\dclRave70.bpl=Paquet Rave Reports BE 5.0 148 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JclDebugIde70.bpl=JCL Debug IDE extension for Delphi 7 149 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\ProjectAnalyzer70.bpl=JCL Project Analyzer for Delphi 7 150 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\IdeOpenDlgFavorite70.bpl=JCL Open and Save IDE dialogs with favorite folders for Delphi 7 151 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JVCL200_D70.bpl=JEDI-VCL Components 152 | c:\program files\borland\delphi7\Projects\Bpl\dclusr70.bpl=Composants utilisateur Borland 153 | c:\program files\borland\delphi7\Bin\dcloffice2k70.bpl=Composants Wrapper Serveur Automation MS Office 2000 154 | C:\Program Files\madCollection\madBasic\Delphi 7\madBasic_.bpl=madBasic 1.1i - www.madshi.net 155 | C:\Program Files\madCollection\madBasic\Delphi 7\madHelp_.bpl=madHelp 1.1a - www.madshi.net 156 | C:\Program Files\madCollection\madDisAsm\Delphi 7\madDisAsm_.bpl=madDisAsm 2.1b - www.madshi.net 157 | c:\program files\borland\delphi7\Projects\Bpl\VirtualTreesD7D.bpl=Virtual Treeview 158 | [HistoryLists\hlDebugSourcePath] 159 | Count=1 160 | Item0=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols\ 161 | [HistoryLists\hlUnitAliases] 162 | Count=1 163 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 164 | [HistoryLists\hlSearchPath] 165 | Count=1 166 | Item0=.\Components\Other\tntunicodecontrols;.\Components\SFXTeam 167 | [HistoryLists\hlUnitOutputDirectory] 168 | Count=2 169 | Item0=.\Compil 170 | Item1=Compil 171 | [HistoryLists\hlOutputDirectorry] 172 | Count=2 173 | Item0=.\Compil 174 | Item1=Compil 175 | [HistoryLists\hlBPLOutput] 176 | Count=1 177 | Item0=Compil 178 | [HistoryLists\hlDCPOutput] 179 | Count=1 180 | Item0=Compil 181 | -------------------------------------------------------------------------------- /SC2Config.dpr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SC2Config.dpr -------------------------------------------------------------------------------- /SC2Config.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {63182A17-8501-46D8-A374-C88ECB2B81B8} 4 | SC2Config.dpr 5 | Debug 6 | DCC32 7 | 12.0 8 | 9 | 10 | true 11 | 12 | 13 | true 14 | Base 15 | true 16 | 17 | 18 | true 19 | Base 20 | true 21 | 22 | 23 | Compil\SC2Config.exe 24 | 00400000 25 | vclx;vcl;rtl;indy;dsnapcon;dsnap;dbrtl;vcldb;VclSmp;bdertl;vcldbx;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclaxserver;TntUnicodeVcl_R70;SCComponent 26 | WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias) 27 | x86 28 | .\Compil 29 | 1 30 | false 31 | true 32 | false 33 | .\Compil 34 | false 35 | false 36 | 37 | 38 | false 39 | RELEASE;$(DCC_Define) 40 | 0 41 | false 42 | 43 | 44 | DEBUG;$(DCC_Define) 45 | 46 | 47 | 48 | MainSource 49 | 50 | 51 | 52 | Base 53 | 54 | 55 | Cfg_2 56 | Base 57 | 58 | 59 | Cfg_1 60 | Base 61 | 62 | 63 | 64 | 65 | Delphi.Personality.12 66 | VCLApplication 67 | 68 | 69 | 70 | SC2Config.dpr 71 | 72 | 73 | False 74 | True 75 | False 76 | 77 | 78 | False 79 | False 80 | 1 81 | 0 82 | 0 83 | 0 84 | False 85 | False 86 | False 87 | False 88 | False 89 | 1036 90 | 1252 91 | 92 | 93 | 94 | 95 | 1.0.0.0 96 | 97 | 98 | 99 | 100 | 101 | 1.0.0.0 102 | 103 | 104 | 105 | 106 | 12 107 | 108 | 109 | -------------------------------------------------------------------------------- /SC2Config.dproj.2007: -------------------------------------------------------------------------------- 1 |  2 | 3 | {63182A17-8501-46D8-A374-C88ECB2B81B8} 4 | SC2Config.dpr 5 | Debug 6 | DCC32 7 | 8 | 9 | true 10 | 11 | 12 | true 13 | Base 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | Compil\SC2Config.exe 23 | 00400000 24 | vclx;vcl;rtl;indy;dsnapcon;dsnap;dbrtl;vcldb;VclSmp;bdertl;vcldbx;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;dclaxserver;TntUnicodeVcl_R70;SCComponent 25 | WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias) 26 | x86 27 | .\Compil 28 | 1 29 | false 30 | true 31 | false 32 | .\Compil 33 | false 34 | false 35 | 36 | 37 | false 38 | RELEASE;$(DCC_Define) 39 | 0 40 | false 41 | 42 | 43 | DEBUG;$(DCC_Define) 44 | 45 | 46 | 47 | MainSource 48 | 49 | 50 | 51 | Base 52 | 53 | 54 | Cfg_2 55 | Base 56 | 57 | 58 | Cfg_1 59 | Base 60 | 61 | 62 | 63 | 64 | Delphi.Personality.12 65 | VCLApplication 66 | 67 | 68 | 69 | SC2Config.dpr 70 | 71 | 72 | False 73 | True 74 | False 75 | 76 | 77 | False 78 | False 79 | 1 80 | 0 81 | 0 82 | 0 83 | False 84 | False 85 | False 86 | False 87 | False 88 | 1036 89 | 1252 90 | 91 | 92 | 93 | 94 | 1.0.0.0 95 | 96 | 97 | 98 | 99 | 100 | 1.0.0.0 101 | 102 | 103 | 104 | 105 | 12 106 | 107 | 108 | -------------------------------------------------------------------------------- /SC2Config.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SC2Config.res -------------------------------------------------------------------------------- /SCAPI.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCAPI.pas -------------------------------------------------------------------------------- /SCAPIClient.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCAPIClient.pas -------------------------------------------------------------------------------- /SCAPICommon.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCAPICommon.pas -------------------------------------------------------------------------------- /SCAboutForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCAboutForm.ddp -------------------------------------------------------------------------------- /SCAboutForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCAboutForm.pas -------------------------------------------------------------------------------- /SCAnsiBufferedCopier.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCAnsiBufferedCopier.pas -------------------------------------------------------------------------------- /SCBaseList.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCBaseList.pas -------------------------------------------------------------------------------- /SCBaseListQueue.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of SuperCopier2. 3 | 4 | SuperCopier2 is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | SuperCopier2 is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | } 14 | 15 | unit SCBaseListQueue; 16 | 17 | interface 18 | uses 19 | windows,messages,classes,contnrs,SCCommon,SCBaseList; 20 | 21 | type 22 | 23 | TBaseListQueueItem=class 24 | public 25 | BaseList:TBaseList; 26 | DestDir:WideString; 27 | end; 28 | 29 | TBaseListQueue=class(TObjectQueue) 30 | private 31 | FLock:TRTLCriticalSection; 32 | public 33 | constructor Create; 34 | destructor Destroy;Override; 35 | 36 | procedure Lock; 37 | procedure Unlock; 38 | 39 | function Pop: TBaseListQueueItem; 40 | function Peek: TBaseListQueueItem; 41 | end; 42 | 43 | implementation 44 | 45 | { TBaseListQueue } 46 | 47 | constructor TBaseListQueue.Create; 48 | begin 49 | inherited; 50 | 51 | InitializeCriticalSection(FLock); 52 | end; 53 | 54 | destructor TBaseListQueue.Destroy; 55 | begin 56 | DeleteCriticalSection(FLock); 57 | 58 | inherited; 59 | end; 60 | 61 | procedure TBaseListQueue.Lock; 62 | begin 63 | EnterCriticalSection(FLock); 64 | end; 65 | 66 | procedure TBaseListQueue.Unlock; 67 | begin 68 | LeaveCriticalSection(FLock); 69 | end; 70 | 71 | function TBaseListQueue.Pop: TBaseListQueueItem; 72 | begin 73 | Result:=(inherited Pop) as TBaseListQueueItem; 74 | end; 75 | 76 | function TBaseListQueue.Peek: TBaseListQueueItem; 77 | begin 78 | Result:=(inherited Peek) as TBaseListQueueItem; 79 | end; 80 | 81 | end. 82 | -------------------------------------------------------------------------------- /SCBuildConfig.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCBuildConfig.inc -------------------------------------------------------------------------------- /SCCollisionForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCollisionForm.ddp -------------------------------------------------------------------------------- /SCCollisionForm.dfm: -------------------------------------------------------------------------------- 1 | object CollisionForm: TCollisionForm 2 | Left = 406 3 | Top = 100 4 | HorzScrollBar.Visible = False 5 | VertScrollBar.Visible = False 6 | BorderIcons = [biSystemMenu] 7 | BorderStyle = bsToolWindow 8 | Caption = ' - File already exists' 9 | ClientHeight = 147 10 | ClientWidth = 400 11 | Color = clBtnFace 12 | Constraints.MinWidth = 408 13 | Font.Charset = DEFAULT_CHARSET 14 | Font.Color = clWindowText 15 | Font.Height = -11 16 | Font.Name = 'MS Sans Serif' 17 | Font.Style = [] 18 | FormStyle = fsStayOnTop 19 | OldCreateOrder = False 20 | Position = poOwnerFormCenter 21 | OnCloseQuery = FormCloseQuery 22 | OnCreate = FormCreate 23 | DesignSize = ( 24 | 400 25 | 147) 26 | PixelsPerInch = 96 27 | TextHeight = 13 28 | object imIcon: TTntImage 29 | Left = 8 30 | Top = 8 31 | Width = 32 32 | Height = 32 33 | Picture.Data = { 34 | 055449636F6E0000010001002020200000000000A80800001600000028000000 35 | 2000000040000000010008000000000000000000000000000000000000000000 36 | 0000000000000000FFFFFF0000000000D6A78900EAD2C200FFFBF800EDBC9400 37 | F4D2B500E5C5AA00F7E0CD00F8E2D000F7C49600B09A8700B6A89C00FDF4EC00 38 | FCF3EB00FFCE9C00FBCA9A00FFCF9F00FFCFA000FFD0A200FFD1A300FFD2A400 39 | FFD3A700FFD4A900FFD5AB00FFD6AC00FFD7AF00FFD8B100FFD9B300FFDBB700 40 | FFDDBB00FFE1C300FFE5CB00FFECD900FFEEDD00FDEEDF00FBEDDF00FFF2E500 41 | FFF9F300FFFBF700FFFCF900FFD19E00F5CC9F00FFE9D200FFF6EC00FFBF7300 42 | FFD4A100FFDDB400FFF1E100FEB65500FFD9A600EECEA600FFDEAB00FFE0AD00 43 | FFECCF00FFE8B600FFEFBC00FFF5C200FFFFE900FFFFF200D4D5BC00BBBFAE00 44 | D7DED30031513100647764000DA61A00479050004461470014AD2900B7C7BA00 45 | 1FB83D0058B76B005BBB6E0025BA490025A24200278A3E0027C04D0029BF5200 46 | 2CC5570035CB66003DD6700045DD77004AE37D0057F08A0061BD7F002BAE5900 47 | 30B25D0047C07B00BEE3D400088A5C00B0DDD100EDF8F7008FF5EF0099FFFF00 48 | A5FFFF00A8FFFF00AAFEFF00ADFFFF00B3FFFF00BDFEFF00C3FFFF00D3FFFF00 49 | D6FFFF00DBFFFF00F4FFFF00EFF5F500FAFFFF0086ECEF0097FDFF0096F3F600 50 | 99F5F700AAFCFF00CBFEFF00E4FEFF0093F9FF00AEFBFF0099F8FF0098F1F800 51 | 7EB3B700CDF6F90073E6F2007EE6F2007FE5EF008BF2FE008EF4FF0091E4EE00 52 | B9F7FE00D7FBFF0085EEFC008CF2FF00A1F4FF0089EFFF00D2F9FF00DFF2F500 53 | 50A9BC0075D9EC0083E9FF0085EAFF0086ECFF009AEEFF00B2F2FF00EDFBFE00 54 | 80E6FF0099CFDB00C2F1FC003BB9DC0046C4E70069D8F50076DFFC007CE2FF00 55 | 7EE4FF007EE3FF0080E5FF0084E6FF0080DDF50083DFF9008AE4FE001093BE00 56 | 1386AB001BA1CA0023A3CC0026AFDC001B7B9A002EB4DC001F75910032B7E100 57 | 31ACD40035BAE10032A0C40025728B0042BFE80051C9ED0042A2C1003C92AC00 58 | 4DB7DA0056B8D800336D800063D3F4006FD9FC0056A5BF0074DDFC0078DEFF00 59 | 457F92007ADFFF007BE1FF0070C6E200426975008CD3EA009DD9EC00BFE6F200 60 | CFECF5000099CC000B8AB50016A5D5001593BE001BA7D9001CA6D5001DA8DA00 61 | 21AADC0022A9D90024ABDD0026A9D6002CADDD002176930047B9DF0050BBE200 62 | 51B9DC005CCDF40064D1F9005CBFE2005DBEDF0060BFDF0073D9FF0066C2E200 63 | 76DBFF0077DDFF00386473007FCCE700B2EBFF00AFDFEF0055656B00D4EFF900 64 | DFF2F9002DAFE20030B1E30038B5E8003DB8EA0059C6F40062CEF9006DD3FE00 65 | 70D6FF006BCAF200A2E4FF004E5D63004ABEF00052C1F30062C6F20066C8F200 66 | 6A737700E2F4FC005AC6F90063CBFE0066CCFF0080D4FC0086D6FE008FD9FE00 67 | 99DEFF00747474006C6C6C006B6B6B006767670064646400626262005E5E5E00 68 | FFFFFF0002020202020202020202020202020202020202020202020202020202 69 | 0202020202020202020202020202020202020202020202020202020202020202 70 | 0202020202020202020202020202020202020202020202020202020202020202 71 | 020202020202FBFA020202020202020202020202020202020202020202020202 72 | 0202020202FBCEA3B1BBFBFA0202020202020202020202020202020202020202 73 | 0202020202CEDCF5D0E3A79FB1BBFBFA02020202020202020202020202020202 74 | 0202020202CEDADBD5D5D5D5D1EBA79FB1BBFBFB020202020202020202020202 75 | 0202020202CECE72B8B8B8B8B8B8B8B894ACA7AAF80202020202020202020202 76 | 0202020202CEE4BF848A8A8A8A8A8A8A8A8A8AABEA0202020202020202020202 77 | 0202020202CEF3DA7F7D7D7D7D7D7D7D7C7D7D8FB7F902020202020202020202 78 | 0202020202CEE8CE677373737373737373ACCAA8A1EAFDF8F802020202020202 79 | 0202020202CEE6EBDF5E5E5E5E5E5E5E5EACBAF5E5ABA79FB1BBFBF802020202 80 | 0202020202CEF4F3BD67645F5F5F5F5F5F94CDDBB6B6B6B694ACA79FB1BBF902 81 | 0202020202CE9DD5ACBCBCBE728E656564CEE3DC8F8F8F8F8F8F8F8FB5ACA3F8 82 | 0202020202CE9D99998F8FB5ACD2726868CEEDBC84848484848484978499CEEA 83 | 0202020202CE7D8282827C58886CD6BDBECEE8CE8D7D7D7D7D7D9C907C8BCEB1 84 | F802020202CE5E5E5E5E77424A5D5E5E81CEF3CB715E5E5E5E6C3D10BD8283A9 85 | FD02020202CE5F6D6D544545454E5D5E5ECEF4ECBC605E5F733D2F332B6C8DCE 86 | D9F8020202CE665E774747474747577865CEF5E7A6BABDE98030333836089168 87 | CEFD02020202CECE4E4F4F4F4F4F4F5677CE9D999999BA0D77BD30333935088E 88 | CEEAF8020202020202024F505056020202CE7D827D7E3E141577BADADCBF2C0F 89 | DFCEF8020202020202024E515143020202CE5E5E5E46171710131210CECECECE 90 | CECE02020202020202024F525243020202CE626D4614221C14141410142C2207 91 | 06020202020202020202024F5453430202CE8506342226311A121515151F2406 92 | 0202020202020202020202024F5443020202CECE06252D2D311815121B270602 93 | 020202020202020202020202024F4E4343020202020629292922161231060202 94 | 02020202020202020202020202020202020202020202060101291F2206020202 95 | 020202020202020202020202020202020202020202020206272E270602020202 96 | 0202020202020202020202020202020202020202020202020606060202020202 97 | 0202020202020202020202020202020202020202020202020202020202020202 98 | 0202020202020202020202020202020202020202020202020202020202020202 99 | 0202020202020202020202020202020202020202020202020202020202020202 100 | 02020202FFFFFFFFFFFFFFFFFFFFFFFFCFFFFFFF80FFFFFF800FFFFF8000FFFF 101 | 80007FFF80007FFF80003FFF800007FF800000FF8000001F8000000F8000000F 102 | 80000007800000078000000380000003C0000001FC380001FC380003FC380007 103 | FE18000FFF1C001FFF87803FFFFFC07FFFFFE0FFFFFFF1FFFFFFFFFFFFFFFFFF 104 | FFFFFFFF} 105 | Transparent = True 106 | end 107 | object llCollisionText1: TTntLabel 108 | Left = 48 109 | Top = 8 110 | Width = 148 111 | Height = 13 112 | Caption = 'The following file already exists:' 113 | end 114 | object llSourceTitle: TTntLabel 115 | Left = 48 116 | Top = 56 117 | Width = 37 118 | Height = 13 119 | Caption = 'Source:' 120 | end 121 | object llDestiationTitle: TTntLabel 122 | Left = 48 123 | Top = 72 124 | Width = 56 125 | Height = 13 126 | Caption = 'Destination:' 127 | end 128 | object llCollisionText2: TTntLabel 129 | Left = 48 130 | Top = 96 131 | Width = 281 132 | Height = 13 133 | Caption = 'What would you like to to? (hover buttons for more options)' 134 | end 135 | object llSourceData: TTntLabel 136 | Left = 112 137 | Top = 56 138 | Width = 281 139 | Height = 13 140 | Anchors = [akLeft, akTop, akRight] 141 | AutoSize = False 142 | Caption = 'llSourceData' 143 | ShowAccelChar = False 144 | end 145 | object llDestinationData: TTntLabel 146 | Left = 112 147 | Top = 72 148 | Width = 281 149 | Height = 13 150 | Anchors = [akLeft, akTop, akRight] 151 | AutoSize = False 152 | Caption = 'llDestinationData' 153 | ShowAccelChar = False 154 | end 155 | object llFileName: TSCFileNameLabel 156 | Left = 47 157 | Top = 32 158 | Width = 346 159 | Height = 13 160 | Anchors = [akLeft, akTop, akRight] 161 | AutoSize = False 162 | Caption = 'llFileName' 163 | ShowAccelChar = False 164 | end 165 | object btCancel: TScPopupButton 166 | Left = 323 167 | Top = 119 168 | Width = 73 169 | Height = 25 170 | TabOrder = 4 171 | TabStop = True 172 | Anchors = [akLeft, akBottom] 173 | ItemIndex = 0 174 | Caption = 'Cancel' 175 | ImageIndex = 6 176 | ImageList = MainForm.ilGlobal 177 | OnClick = btCancelClick 178 | end 179 | object btSkip: TScPopupButton 180 | Left = 243 181 | Top = 119 182 | Width = 73 183 | Height = 25 184 | TabOrder = 3 185 | TabStop = True 186 | Anchors = [akLeft, akBottom] 187 | ItemIndex = 0 188 | Popup = pmSkip 189 | ImageIndex = -1 190 | OnClick = btSkipClick 191 | end 192 | object btOverwrite: TScPopupButton 193 | Left = 3 194 | Top = 119 195 | Width = 73 196 | Height = 25 197 | TabOrder = 0 198 | TabStop = True 199 | Anchors = [akLeft, akBottom] 200 | ItemIndex = 0 201 | Popup = pmOverwrite 202 | ImageIndex = -1 203 | OnClick = btOverwriteClick 204 | end 205 | object btResume: TScPopupButton 206 | Left = 83 207 | Top = 119 208 | Width = 73 209 | Height = 25 210 | TabOrder = 1 211 | TabStop = True 212 | Anchors = [akLeft, akBottom] 213 | ItemIndex = 0 214 | Popup = pmResume 215 | ImageIndex = -1 216 | OnClick = btResumeClick 217 | end 218 | object btRename: TScPopupButton 219 | Left = 163 220 | Top = 119 221 | Width = 73 222 | Height = 25 223 | TabOrder = 2 224 | TabStop = True 225 | Anchors = [akLeft, akBottom] 226 | ItemIndex = 0 227 | Popup = pmRename 228 | ImageIndex = -1 229 | OnClick = btRenameClick 230 | end 231 | object pmSkip: TTntPopupMenu 232 | AutoHotkeys = maManual 233 | Images = MainForm.ilGlobal 234 | TrackButton = tbLeftButton 235 | Left = 248 236 | Top = 72 237 | object Skip1: TTntMenuItem 238 | Caption = 'Skip' 239 | ImageIndex = 19 240 | Visible = False 241 | end 242 | object Alwaysskip1: TTntMenuItem 243 | Caption = 'Always skip' 244 | end 245 | end 246 | object pmResume: TTntPopupMenu 247 | AutoHotkeys = maManual 248 | Images = MainForm.ilGlobal 249 | TrackButton = tbLeftButton 250 | Left = 88 251 | Top = 72 252 | object Resume1: TTntMenuItem 253 | Caption = 'Resume' 254 | ImageIndex = 21 255 | Visible = False 256 | end 257 | object Alwaysresume1: TTntMenuItem 258 | Caption = 'Always resume' 259 | end 260 | end 261 | object pmOverwrite: TTntPopupMenu 262 | AutoHotkeys = maManual 263 | Images = MainForm.ilGlobal 264 | TrackButton = tbLeftButton 265 | Left = 8 266 | Top = 72 267 | object Overwrite1: TTntMenuItem 268 | Caption = 'Overwrite' 269 | ImageIndex = 22 270 | Visible = False 271 | end 272 | object Overwtiteisdifferent1: TTntMenuItem 273 | Caption = 'Overwrite if different' 274 | end 275 | object Alwaysoverwrite1: TTntMenuItem 276 | Caption = 'Always overwrite' 277 | end 278 | object Alwaysoverwriteifdifferent1: TTntMenuItem 279 | Caption = 'Always overwrite if different' 280 | end 281 | end 282 | object pmRename: TTntPopupMenu 283 | AutoHotkeys = maManual 284 | Images = MainForm.ilGlobal 285 | TrackButton = tbLeftButton 286 | Left = 168 287 | Top = 72 288 | object Rename1: TTntMenuItem 289 | Caption = 'Rename' 290 | ImageIndex = 20 291 | Visible = False 292 | end 293 | object Renameoldfile1: TTntMenuItem 294 | Caption = 'Rename old file' 295 | end 296 | object Customrename1: TTntMenuItem 297 | Caption = 'Custom rename' 298 | end 299 | object Alwaysrename1: TTntMenuItem 300 | Caption = 'Always rename' 301 | end 302 | object Alwaysrenameoldfile1: TTntMenuItem 303 | Caption = 'Always rename old file' 304 | end 305 | end 306 | end 307 | -------------------------------------------------------------------------------- /SCCollisionForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCollisionForm.pas -------------------------------------------------------------------------------- /SCCollisionRenameForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCollisionRenameForm.ddp -------------------------------------------------------------------------------- /SCCollisionRenameForm.dfm: -------------------------------------------------------------------------------- 1 | object CollisionRenameForm: TCollisionRenameForm 2 | Left = 385 3 | Top = 102 4 | BorderStyle = bsToolWindow 5 | Caption = 'Custom rename' 6 | ClientHeight = 147 7 | ClientWidth = 400 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | FormStyle = fsStayOnTop 15 | OldCreateOrder = False 16 | Position = poOwnerFormCenter 17 | OnCreate = TntFormCreate 18 | DesignSize = ( 19 | 400 20 | 147) 21 | PixelsPerInch = 96 22 | TextHeight = 13 23 | object llOriginalNameTitle: TTntLabel 24 | Left = 8 25 | Top = 48 26 | Width = 66 27 | Height = 13 28 | Caption = 'Rename from:' 29 | end 30 | object llOriginalName: TTntLabel 31 | Left = 80 32 | Top = 48 33 | Width = 313 34 | Height = 13 35 | AutoSize = False 36 | Caption = 'llOriginalName' 37 | end 38 | object llNewNameTitle: TTntLabel 39 | Left = 8 40 | Top = 80 41 | Width = 16 42 | Height = 13 43 | Caption = 'To:' 44 | end 45 | object rbRenameNew: TTntRadioButton 46 | Left = 8 47 | Top = 8 48 | Width = 201 49 | Height = 17 50 | Caption = 'Rename new file' 51 | Checked = True 52 | TabOrder = 0 53 | TabStop = True 54 | end 55 | object rbRenameOld: TTntRadioButton 56 | Left = 208 57 | Top = 8 58 | Width = 193 59 | Height = 17 60 | Caption = 'Rename old file' 61 | TabOrder = 1 62 | end 63 | object edNewName: TTntEdit 64 | Left = 80 65 | Top = 76 66 | Width = 313 67 | Height = 21 68 | TabOrder = 2 69 | Text = 'edNewName' 70 | OnChange = edNewNameChange 71 | OnKeyPress = edNewNameKeyPress 72 | end 73 | object btCancel: TScPopupButton 74 | Left = 320 75 | Top = 120 76 | Width = 75 77 | Height = 25 78 | TabOrder = 4 79 | TabStop = True 80 | Anchors = [akRight, akBottom] 81 | ItemIndex = 0 82 | Caption = 'Cancel' 83 | ImageIndex = 6 84 | ImageList = MainForm.ilGlobal 85 | OnClick = btCancelClick 86 | end 87 | object btRename: TScPopupButton 88 | Left = 240 89 | Top = 120 90 | Width = 75 91 | Height = 25 92 | TabOrder = 3 93 | TabStop = True 94 | Anchors = [akRight, akBottom] 95 | ItemIndex = 0 96 | Caption = 'Rename' 97 | ImageIndex = 20 98 | ImageList = MainForm.ilGlobal 99 | OnClick = btRenameClick 100 | end 101 | end 102 | -------------------------------------------------------------------------------- /SCCollisionRenameForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCollisionRenameForm.pas -------------------------------------------------------------------------------- /SCCommon.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCommon.pas -------------------------------------------------------------------------------- /SCConfig.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCConfig.pas -------------------------------------------------------------------------------- /SCConfigForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCConfigForm.ddp -------------------------------------------------------------------------------- /SCConfigForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCConfigForm.pas -------------------------------------------------------------------------------- /SCConfigShared.pas: -------------------------------------------------------------------------------- 1 | { 2 | This file is part of SuperCopier2. 3 | 4 | SuperCopier2 is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | SuperCopier2 is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | } 14 | 15 | unit SCConfigShared; 16 | 17 | interface 18 | uses Messages; 19 | 20 | const 21 | WM_OPENDIALOG = WM_USER + 2; 22 | OD_CONFIG = 0; 23 | OD_ABOUT = 1; 24 | OD_QUIT = 2; 25 | OD_ONOFF = 3; 26 | OD_SHOWMENU = 4; 27 | SC2_MAINFORM_CAPTION='SuperCopier2 MainForm'; 28 | 29 | 30 | implementation 31 | 32 | end. 33 | -------------------------------------------------------------------------------- /SCCopier.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCopier.pas -------------------------------------------------------------------------------- /SCCopyErrorForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCopyErrorForm.ddp -------------------------------------------------------------------------------- /SCCopyErrorForm.dfm: -------------------------------------------------------------------------------- 1 | object CopyErrorForm: TCopyErrorForm 2 | Left = 633 3 | Top = 100 4 | HorzScrollBar.Visible = False 5 | VertScrollBar.Visible = False 6 | BorderIcons = [biSystemMenu] 7 | BorderStyle = bsToolWindow 8 | Caption = ' - Copy error' 9 | ClientHeight = 147 10 | ClientWidth = 400 11 | Color = clBtnFace 12 | Constraints.MinWidth = 408 13 | Font.Charset = DEFAULT_CHARSET 14 | Font.Color = clWindowText 15 | Font.Height = -11 16 | Font.Name = 'MS Sans Serif' 17 | Font.Style = [] 18 | FormStyle = fsStayOnTop 19 | OldCreateOrder = False 20 | Position = poOwnerFormCenter 21 | OnCreate = FormCreate 22 | DesignSize = ( 23 | 400 24 | 147) 25 | PixelsPerInch = 96 26 | TextHeight = 13 27 | object imIcon: TTntImage 28 | Left = 8 29 | Top = 8 30 | Width = 32 31 | Height = 32 32 | Picture.Data = { 33 | 055449636F6E0000010001002020200000000000A80800001600000028000000 34 | 2000000040000000010008000000000000000000000000000000000000000000 35 | 0000000061607900D6D6A600C1C19B00CBCBA500BDBD9B00CBCBAB00C1C1A500 36 | E0E0C100C5C5AA00D6D6BB00E8E8CB00F5F5DA00E0E0C800DDDDC500ECECD400 37 | F8F8E800FFFFF300FFFFF500FFFFF600FFFFF900FFFFFA00FFFFFD0000000000 38 | 01020F000000F6000000F1000000EC000000EB000000E9000000E5000000E000 39 | 0000DD000000D6000000D4000000D2000000D1000000CB000000C9000000C600 40 | 0000C5000000C2000000BD000000BA000000B9000000B7000000B5000000B300 41 | 0000B1000000AF000000AC000000A7000000A5000000A2000000A10000009F00 42 | 00009D0000009A00000098000000970000009500000093000000900000008F00 43 | 00008C0000008B00000089000000860000008500000082000000800000007F00 44 | 0101CE000101C1000101AA000101A9000202DA000202B8000202B0000202AD00 45 | 010178000101740001016D0001015D000303D5000303D2000303CB000303C100 46 | 0202A6000202A50002029E0002029B0002029400020293000202910002028C00 47 | 020289000101550001014A000303BE000303BB000303B6000303B2000303A300 48 | 0303A100010138000505F3000505DB000404BE000404BB000606F5000606E800 49 | 0505CA000505C8000505C5000505C3000505B9000404A3000707FD000606D000 50 | 0606CE000606C9000505B3000505A9000505A6000707D4000606B6000606AE00 51 | 0808CF000707BB000707B8000909D4000808C6000808C200060690000A0AD900 52 | 0808B5000C0CFE000B0BE1000A0ACA000B0BD2000A0ABC000E0EF3000D0DDC00 53 | 0D0DDA000C0CC2001010F6000F0FE3000D0DCE000E0ED0001212FF001010D200 54 | 0F0FC7001313EB001212D6001111C1001515E2001313CF001818FE001616DC00 55 | 1515D5001919E9001B1BF3001D1DFF001919D9001919D6001C1CE40012129200 56 | 2121FE002020F8002020F6002121EC002424FF002626FA002727FF001F1FCB00 57 | 2525EB001F1FC1002B2BFE002C2CFA002E2EFF002D2DF6002828D2003131FF00 58 | 3333FF003636FF003838FF002929BA003434E7002727AE003B3BFF003B3BF800 59 | 3F3FFE003D3DF4004242FF004646FF003B3BD7003A3ACC003131AC004949FF00 60 | 4B4BFF004D4DFF004C4CFB001F1F67004F4FFF004141CC004646D9003A3AB300 61 | 5353FE005656FF004E4EE5005A5AFE004648C5005D5DFF005353DB004D4DCA00 62 | 6161FB005F5FF7006363FF004848BA006464FF006464FC006666FF006868FF00 63 | 6A6AFB006161E5006D6DFF007272FF006060D5005959C5007575FF006E6EF000 64 | 7979FF007E7EFF008181FF007F80FB004E4E97008C8CFF005F5FA8009393FF00 65 | 7272BF009A9AFF00A2A2FF0017172400A5A5FF008C8CD2006B6B950076769B00 66 | 8585AE00575771002C2C37006B6B820076768B005F5F6F004E4E5100FFFFFF00 67 | 00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 68 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52515050515261FFFFFFFFFFFFFFFFFF 69 | FFFFFFFFFFFFFFFFFFFFFFFFFF50424143444445454544445168FFFFFFFFFFFF 70 | FFFFFFFFFFFFFFFFFFFFFF4F5D404343434342424344454644435068FFFFFFFF 71 | FFFFFFFFFFFFFFFFFFFF3C3E41413F3F3E3D3D3D3E4040424446444461FFFFFF 72 | FFFFFFFFFFFFFFFFFF593E3F3E3C3B3938393838393A3B3E404244464152FFFF 73 | FFFFFFFFFFFFFFFF585D3D3B3C3A3734343434343536383A3F404043464060FF 74 | FFFFFFFFFFFFFF575B3B3839DAE437324A49494A4A333438E4CE404042444068 75 | FFFFFFFFFFFFBC59383535BC14FED6333030304D303133DAFEFEBC3E3D414045 76 | 17FFFFFFFFFF65593349C50910FEFECC312E2E2E2E31DA0EFEFEFEC53B3C405C 77 | 60FFFFFFFFBA6658312EFB0315FEFEFED6302D2C2EDA0B13FEFE0BF734375B5D 78 | 5E17FFFFFF747B4E2E292FFC08FEFEFEFECC2F2ED60B12FEFE0AF64A31335A5C 79 | 5A68FFFFFF7B7E646348472BF806FEFEFEFEC4D51411FEFE0CF52E2B2F493438 80 | 5951FFFFE37E7D6C727055222A0008FEFEFEFEFEFEFEFE0AF62C28294C654959 81 | 595FF2FFC4878071787776472129FA09FEFEFEFEFEFE0BF729272756624C4D57 82 | 6759F2FFB08C848A7F827C54232128F70FFE1515FE13F428252626717162644E 83 | 667EF2FF9A908A8B868E8653222221D30FFEFEFEFE12C4262425556F6F716B65 84 | 7A73F2FFAE97948F9292894B2021CC0E14FEFEFEFE1513CD262447767F78727D 85 | 7E81F2FFC39C999B9898921E1FCC0E12FEFE1110FEFEFEFECD24227C827F8380 86 | 8779F9FFE09F9BA0A1A18D1BCD0E11FEFE0EF7F70D15FEFEFED1226A8F8B8A8C 87 | 8C7BFDFFFFA4A5A1A7A275D10A10FEFE0AF62021FB05FEFEFEFED11D898F9390 88 | 9785FFFFFF9EAAACADABE30711FEFE07F61F1C1C230006FEFEFE14D56E929697 89 | 93CAFFFFFFBBAFB3B6B3F609FEFE07F51E1C1D1D1A21F804FE1501EF919B9F9C 90 | 90FCFFFFFFFFAAB6BDBFBEF60909F519181C1D1C1C181FF80402ED9D9DA5A39E 91 | A6FFFFFFFFFFC0B3BFC7CBC9FAFAAC95887569696D8888A1FCEBABADACAAA596 92 | FBFFFFFFFFFFFFA8BDC8D4DDDCD8D0C1B6A79D9DA2ABB6B8C0B9B8B7B2AFA0EB 93 | FFFFFFFFFFFFFFFFB1C2D4E1E7E9E9E5DDD0C6C2C6C8CFD0CBC6BFB9B4A9BAFF 94 | FFFFFFFFFFFFFFFFFFB3C8DDE8ECEEEEEEECE8E7E2E2E1DBD2CBC1B8ADB5FFFF 95 | FFFFFFFFFFFFFFFFFFFFB1C8DEE8EEF1F3F3F1F0ECE9E5DED2C7BDADCDFFFFFF 96 | FFFFFFFFFFFFFFFFFFFFFFBFC2D9E7ECF0F3F1F0ECE8E1D4C7B9AAF4FFFFFFFF 97 | FFFFFFFFFFFFFFFFFFFFFFFFFFBFC2DBE5E9E9E8E2D9CFBFB2E6FFFFFFFFFFFF 98 | FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFD2CFCBCFD7EAFFFFFFFFFFFFFFFFFF 99 | FFFFFFFFFFFFFFFFFFF01FFFFF8003FFFE0000FFFC00007FF800003FF000001F 100 | E000000FC0000007C00000078000000380000003800000030000000100000001 101 | 0000000100000001000000010000000100000001800000038000000380000003 102 | C0000007C0000007E000000FF000001FF800003FFC00007FFE0000FFFF8003FF 103 | FFF01FFF} 104 | Transparent = True 105 | end 106 | object llCopyErrorText3: TTntLabel 107 | Left = 48 108 | Top = 96 109 | Width = 281 110 | Height = 13 111 | Caption = 'What would you like to to? (hover buttons for more options)' 112 | end 113 | object llCopyErrorText1: TTntLabel 114 | Left = 48 115 | Top = 8 116 | Width = 60 117 | Height = 13 118 | Caption = 'The copy of:' 119 | end 120 | object llCopyErrorText2: TTntLabel 121 | Left = 48 122 | Top = 40 123 | Width = 187 124 | Height = 13 125 | Caption = 'was interrupted for the following reason:' 126 | end 127 | object llFileName: TSCFileNameLabel 128 | Left = 48 129 | Top = 24 130 | Width = 345 131 | Height = 13 132 | Anchors = [akLeft, akTop, akRight] 133 | AutoSize = False 134 | Caption = 'llFileName' 135 | ShowAccelChar = False 136 | end 137 | object mmErrorText: TTntMemo 138 | Left = 48 139 | Top = 56 140 | Width = 345 141 | Height = 32 142 | Anchors = [akLeft, akTop, akRight] 143 | ReadOnly = True 144 | ScrollBars = ssVertical 145 | TabOrder = 4 146 | end 147 | object btRetry: TScPopupButton 148 | Left = 3 149 | Top = 119 150 | Width = 94 151 | Height = 25 152 | TabOrder = 0 153 | TabStop = True 154 | Anchors = [akLeft, akBottom] 155 | ItemIndex = 0 156 | Popup = pmRetry 157 | ImageIndex = -1 158 | OnClick = btRetryClick 159 | end 160 | object btEndOfList: TScPopupButton 161 | Left = 103 162 | Top = 119 163 | Width = 94 164 | Height = 25 165 | TabOrder = 1 166 | TabStop = True 167 | Anchors = [akLeft, akBottom] 168 | ItemIndex = 0 169 | Popup = pmEndOfList 170 | ImageIndex = -1 171 | OnClick = btEndOfListClick 172 | end 173 | object btSkip: TScPopupButton 174 | Left = 203 175 | Top = 119 176 | Width = 94 177 | Height = 25 178 | TabOrder = 2 179 | TabStop = True 180 | Anchors = [akLeft, akBottom] 181 | ItemIndex = 0 182 | Popup = pmSkip 183 | ImageIndex = -1 184 | OnClick = btSkipClick 185 | end 186 | object btCancel: TScPopupButton 187 | Left = 303 188 | Top = 119 189 | Width = 94 190 | Height = 25 191 | TabOrder = 3 192 | TabStop = True 193 | Anchors = [akLeft, akBottom] 194 | ItemIndex = 0 195 | Caption = 'Cancel' 196 | ImageIndex = 6 197 | ImageList = MainForm.ilGlobal 198 | OnClick = btCancelClick 199 | end 200 | object pmRetry: TTntPopupMenu 201 | AutoHotkeys = maManual 202 | Images = MainForm.ilGlobal 203 | TrackButton = tbLeftButton 204 | Left = 8 205 | Top = 80 206 | object Retry1: TTntMenuItem 207 | Caption = 'Retry' 208 | ImageIndex = 21 209 | Visible = False 210 | end 211 | object Alwaysretry1: TTntMenuItem 212 | Caption = 'Always retry' 213 | end 214 | end 215 | object pmEndOfList: TTntPopupMenu 216 | AutoHotkeys = maManual 217 | Images = MainForm.ilGlobal 218 | TrackButton = tbLeftButton 219 | Left = 104 220 | Top = 80 221 | object Endoflist1: TTntMenuItem 222 | Caption = 'To end of list' 223 | ImageIndex = 13 224 | Visible = False 225 | end 226 | object Alwaysputtoendoflist1: TTntMenuItem 227 | Caption = 'Always put to end of list' 228 | end 229 | end 230 | object pmSkip: TTntPopupMenu 231 | AutoHotkeys = maManual 232 | Images = MainForm.ilGlobal 233 | TrackButton = tbLeftButton 234 | Left = 208 235 | Top = 80 236 | object Skip1: TTntMenuItem 237 | Caption = 'Skip' 238 | ImageIndex = 19 239 | Visible = False 240 | end 241 | object Alwaysskip1: TTntMenuItem 242 | Caption = 'Always skip' 243 | end 244 | end 245 | end 246 | -------------------------------------------------------------------------------- /SCCopyErrorForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCopyErrorForm.pas -------------------------------------------------------------------------------- /SCCopyForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCopyForm.ddp -------------------------------------------------------------------------------- /SCCopyForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCopyForm.pas -------------------------------------------------------------------------------- /SCCopyThread.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCCopyThread.pas -------------------------------------------------------------------------------- /SCDirList.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCDirList.pas -------------------------------------------------------------------------------- /SCDiskSpaceForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCDiskSpaceForm.ddp -------------------------------------------------------------------------------- /SCDiskSpaceForm.dfm: -------------------------------------------------------------------------------- 1 | object DiskSpaceForm: TDiskSpaceForm 2 | Left = 597 3 | Top = 103 4 | BorderStyle = bsToolWindow 5 | Caption = ' - Not enough free space' 6 | ClientHeight = 147 7 | ClientWidth = 400 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | FormStyle = fsStayOnTop 15 | OldCreateOrder = False 16 | Position = poOwnerFormCenter 17 | OnCloseQuery = FormCloseQuery 18 | OnCreate = FormCreate 19 | DesignSize = ( 20 | 400 21 | 147) 22 | PixelsPerInch = 96 23 | TextHeight = 13 24 | object llDiskSpaceText1: TTntLabel 25 | Left = 48 26 | Top = 8 27 | Width = 270 28 | Height = 13 29 | Caption = 'There is not enough free space on the following volumes:' 30 | end 31 | object llDiskSpaceText2: TTntLabel 32 | Left = 48 33 | Top = 104 34 | Width = 126 35 | Height = 13 36 | Caption = 'What would you like to to?' 37 | end 38 | object imIcon: TTntImage 39 | Left = 8 40 | Top = 8 41 | Width = 32 42 | Height = 32 43 | Picture.Data = { 44 | 055449636F6E0000010001002020200000000000A80800001600000028000000 45 | 2000000040000000010008000000000000000000000000000000000000000000 46 | 000000002218270000000000514750004F273D008F104200543843003E001500 47 | 47031B00611A31006821370043101D0030000A0069081B00A64E5D00FFB2BE00 48 | 5D323500603032005F30320045000200603031007C0000006A00000032000000 49 | 2E000000220000001B0000001600000012000000090000000700000004000000 50 | 01000000622E2E0060323200554646006A1F1C0064292800622C2B007B0E0900 51 | 73130D006F181300652724006A302D007F0C0400850F0600740D060083110900 52 | 82190B00851E0F00841E10009A351D00A33A1E00A53F2200AA442400A3442500 53 | AB4A2800A9482700A4472700AC4C2900AB4C2A00A84D2C00AD512E00C5603100 54 | A7563300000000007D907F007C9280004F535100729D8A0064A997005AB3A000 55 | 50BCA80038D5C7000FF7F50000FDFF0000FFFF0000F6F90000F3F30000EAEB00 56 | 03FFFF0003FAFD0007FFFF0009FFFF000BFFFF000DFEFF000EFFFF0011FFFF00 57 | 13FFFF0015FFFF0016FFFF0017FDFE0018FFFF0011A6A7001CFFFF001EFFFF00 58 | 22FFFF001AC1C20024FFFF0025FDFF0023E2E3002AFFFF0031FFFF0068FFFF00 59 | 00F7FF0000F8FF0000FAFF0000EBF20000E6EA0000E1E50001E1E90003F7FE00 60 | 04F4F9000DF7FF000EF6FF0013FBFF0015F9FF0016F7FF001AF8FF001DF9FF00 61 | 5E989A0000F5FF0000F3FF0000F1FF0000F0FC0000E3F20000DBE90000DDE700 62 | 02B8C30003F5FF0003F0FF000DF0FF000EF4FF0011F1FF0012F5FF0019F2FF00 63 | 1FACB30000EFFF0000EBFF0000EDFF0001D4E60003E8FA0004E5F80005EAFF00 64 | 08EAFF000AD3E20011EEFF0014ECFF001CEFFF002898A20000E7FF0000E4FF00 65 | 00E8FF0000E5FB0000E1F90000D5EB0000CEE50000BCD00001DAF20001A3B400 66 | 02CCE30006E7FF0008E7FE000ECBE10011E8FF0014E9FF0015C6DA0000E3FF00 67 | 00DFFF0000E1FF0000DEFA0000DBF80000D5F30000CDEC0000CFE90000CAE600 68 | 06E2FE000AE4FF000BDEFE000DE2FF0010E3FF0000DBFF0000D9FF0000DDFF00 69 | 00D6FC0000D2F30000C9E80000C6E80001D6F90001CAED0003DCFF0005DAFF00 70 | 05C5E70006DDFF001BBAD50025B0C8001D7B8C002C89980036A3B60000D3FF00 71 | 00D5FF0000D6FF0000D5FD0000CEF50000C9F10000C6EC0000C1EA0000BFE500 72 | 02D0F70006D5FE0007D1FC0006ABCC000FA5C3001590A80031809000539EAD00 73 | 00D1FF0000CFFE0000CBFC0000CBFA0000CCF90000C7F60000C8F60000C1F100 74 | 00C5F10000C1EF0000BAE50000B8E30000B6E20000B4E00000B3DF0000B5DE00 75 | 00B1DA0000ACD60000A7CF0000A5CE0000A6CD0000A4CD0001CAF70001C7F500 76 | 01C9F50002B2DD0002A5CB00154959003D97B3003575880021698300366B8100 77 | 225973002E4D5C0032506400223B4F00060A1000111924005A627A004E4E5800 78 | FFFFFF00010101013E37373A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3B 79 | 3C3D01010101013F2A1310101010101010111111111110101010101010130F20 80 | 272301010101C5E7F1ECEBECECECECEBECEAE9E9EAEAEBEBECECEBECECEAE8F0 81 | F62723010177E8E7E6E5E5E5E5E5E5E5E3E1DAD9DEE3E4E5E5E5E5E5E5E4E2E0 82 | D802280101C2E6E1DFDCEEEFEFEEEFEDD7B5F5FDF3C6DADDEFEEEFEEDDDDDFE0 83 | C6F42D0101E2E2CDD0BEC8C8C8C8C8B595FA1A0C0ED696C8C8C8C8C7C8B2D0DD 84 | C8FE040101CECECDD1B2C8C6C6C6C6B5A71E1B080CFD8AC8C6C6C6C6BE93D0D8 85 | CB2804010101C1CECBB3C0C7C6C8C8B497FC1F1916F77AC8C8C7C7C7A493DBA8 86 | F43101010101CECECCB1A3B5C8C8B5B489D21B1D00B7A8B5B5C8C7BD62B1C6CA 87 | 20390101010101BFBACF92B0B5B5B4B4A7898A788997B4B4B4B5C88662C9A6C4 88 | 2F010101010101BABABCB191B6B4B4B4B6A896D396A8B4B4B6B5AF64B0B7B624 89 | 3701010101010101A5B9B891A1B6B6A7A796BB0AA797A7B6B6B47576BB97D530 90 | 0101010101010101AEAEACAF84A8A7A7A87AD312BC88A8A7B6A061AFB6AB2538 91 | 010101010101010101A2AEAB918FA6A6964AC315D26896A8A87475BB97C42F01 92 | 010101010101010101AEAEADA1829696974BF214D46995A6A05EA1AAA6293901 93 | 01010101010101010101A59B9D858E957A97000DF9789796835EA988C42F0101 94 | 010101010101010101019B9B9A8270974A9C180D05698A975E85A69921360101 95 | 01010101010101010101018B8B8D72814B9E1709039F677061957A942C010101 96 | 01010101010101010101018B8B9D71544BF2170707D44B5E7398792034010101 97 | 010101010101010101010101907D8C574FFB190612F74F618A67942E01010101 98 | 0101010101010101010101018B8B7C55531F1A0712FA58598979053301010101 99 | 010101010101010101010101017D7D81571D1C0B16F85E7969872B0101010101 100 | 010101010101010101010101017D7D7C555C1F1F1C63577B6922320101010101 101 | 01010101010101010101010101016D6D80576E7F525F684B8726010101010101 102 | 01010101010101010101010101017E7E6A55524B5D59784A2232010101010101 103 | 0101010101010101010101010101016D6B6F565264684B602D01010101010101 104 | 0101010101010101010101010101016C6C6A5B655F4C4B223201010101010101 105 | 010101010101010101010101010101016B4E5A66544B60260101010101010101 106 | 010101010101010101010101010101014E4E50644B4B43340101010101010101 107 | 01010101010101010101010101010101014D4C4B4B6035010101010101010101 108 | 0101010101010101010101010101010101014951483E01010101010101010101 109 | 0101010101010101010101010101010101010101010101010101010101010101 110 | 01010101F0000003E0000003C000000180000001800000018000000180000001 111 | C0000003C0000003E0000007E0000007F000000FF000000FF800001FF800001F 112 | FC00003FFC00003FFE00007FFE00007FFF0000FFFF0000FFFF8001FFFF8001FF 113 | FFC003FFFFC003FFFFE007FFFFE007FFFFF00FFFFFF00FFFFFF81FFFFFFC3FFF 114 | FFFFFFFF} 115 | Transparent = True 116 | end 117 | object lvDiskSpace: TTntListView 118 | Left = 48 119 | Top = 23 120 | Width = 345 121 | Height = 79 122 | Columns = < 123 | item 124 | Caption = 'Volume' 125 | Width = 131 126 | end 127 | item 128 | Alignment = taRightJustify 129 | Caption = 'Size' 130 | Width = 70 131 | end 132 | item 133 | Alignment = taRightJustify 134 | Caption = 'Free' 135 | Width = 70 136 | end 137 | item 138 | Alignment = taRightJustify 139 | Caption = 'Lacking' 140 | Width = 70 141 | end> 142 | ColumnClick = False 143 | ReadOnly = True 144 | RowSelect = True 145 | TabOrder = 0 146 | ViewStyle = vsReport 147 | end 148 | object btCancel: TScPopupButton 149 | Left = 296 150 | Top = 120 151 | Width = 99 152 | Height = 25 153 | TabOrder = 1 154 | TabStop = True 155 | Anchors = [akRight, akBottom] 156 | ItemIndex = 0 157 | Caption = 'Cancel' 158 | ImageIndex = 6 159 | ImageList = MainForm.ilGlobal 160 | OnClick = btCancelClick 161 | end 162 | object btForce: TScPopupButton 163 | Left = 192 164 | Top = 120 165 | Width = 99 166 | Height = 25 167 | TabOrder = 2 168 | TabStop = True 169 | Anchors = [akRight, akBottom] 170 | ItemIndex = 0 171 | Caption = 'Force copy' 172 | ImageIndex = 1 173 | ImageList = MainForm.ilGlobal 174 | OnClick = btForceClick 175 | end 176 | end 177 | -------------------------------------------------------------------------------- /SCDiskSpaceForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCDiskSpaceForm.pas -------------------------------------------------------------------------------- /SCFileList.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCFileList.pas -------------------------------------------------------------------------------- /SCLocEngine.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCLocEngine.pas -------------------------------------------------------------------------------- /SCLocStrings.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCLocStrings.pas -------------------------------------------------------------------------------- /SCMainForm.ddp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCMainForm.ddp -------------------------------------------------------------------------------- /SCMainForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCMainForm.pas -------------------------------------------------------------------------------- /SCObjectThreadList.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCObjectThreadList.pas -------------------------------------------------------------------------------- /SCProcessPrivileges.pas: -------------------------------------------------------------------------------- 1 | unit SCProcessPrivileges; 2 | 3 | interface 4 | 5 | uses Windows,SysUtils; 6 | 7 | // NT Defined Privileges from winnt.h 8 | 9 | const 10 | SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege'; 11 | SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege'; 12 | SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege'; 13 | SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege'; 14 | SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege'; 15 | SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege'; 16 | SE_TCB_NAME = 'SeTcbPrivilege'; 17 | SE_SECURITY_NAME = 'SeSecurityPrivilege'; 18 | SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege'; 19 | SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege'; 20 | SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege'; 21 | SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege'; 22 | SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege'; 23 | SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege'; 24 | SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege'; 25 | SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege'; 26 | SE_BACKUP_NAME = 'SeBackupPrivilege'; 27 | SE_RESTORE_NAME = 'SeRestorePrivilege'; 28 | SE_SHUTDOWN_NAME = 'SeShutdownPrivilege'; 29 | SE_DEBUG_NAME = 'SeDebugPrivilege'; 30 | SE_AUDIT_NAME = 'SeAuditPrivilege'; 31 | SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege'; 32 | SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege'; 33 | SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege'; 34 | SE_UNDOCK_NAME = 'SeUndockPrivilege'; 35 | SE_SYNC_AGENT_NAME = 'SeSyncAgentPrivilege'; 36 | SE_ENABLE_DELEGATION_NAME = 'SeEnableDelegationPrivilege'; 37 | SE_MANAGE_VOLUME_NAME = 'SeManageVolumePrivilege'; 38 | 39 | function ProcessSetPrivilege(sPrivilege: string; bEnabled: Boolean): Boolean; 40 | 41 | implementation 42 | 43 | { 44 | For some functions you need to get the right privileges 45 | on a Windows NT machine. 46 | (e.g: To shut down or restart windows with ExitWindowsEx or 47 | to change the system time) 48 | The following code provides a procedure to adjust the privileges. 49 | The AdjustTokenPrivileges() function enables or disables privileges 50 | in the specified access token. 51 | } 52 | 53 | // Enables or disables privileges depending on the bEnabled 54 | function ProcessSetPrivilege(sPrivilege: string; bEnabled: Boolean): Boolean; 55 | var 56 | hToken: THandle; 57 | TokenPriv: TOKEN_PRIVILEGES; 58 | PrevTokenPriv: TOKEN_PRIVILEGES; 59 | ReturnLength: Cardinal; 60 | begin 61 | Result := True; 62 | // Only for Windows NT/2000/XP and later. 63 | if not (Win32Platform = VER_PLATFORM_WIN32_NT) then Exit; 64 | 65 | // obtain the processes token 66 | if OpenProcessToken(GetCurrentProcess(), 67 | TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then 68 | begin 69 | try 70 | // Get the locally unique identifier (LUID) . 71 | if LookupPrivilegeValue(nil, PChar(sPrivilege), 72 | TokenPriv.Privileges[0].Luid) then 73 | begin 74 | TokenPriv.PrivilegeCount := 1; // one privilege to set 75 | 76 | case bEnabled of 77 | True: TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; 78 | False: TokenPriv.Privileges[0].Attributes := 0; 79 | end; 80 | 81 | ReturnLength := 0; // replaces a var parameter 82 | PrevTokenPriv := TokenPriv; 83 | 84 | // enable or disable the privilege 85 | 86 | AdjustTokenPrivileges(hToken, False, TokenPriv, SizeOf(PrevTokenPriv), 87 | PrevTokenPriv, ReturnLength); 88 | end; 89 | finally 90 | CloseHandle(hToken); 91 | end; 92 | end; 93 | // test the return value of AdjustTokenPrivileges. 94 | Result := GetLastError = ERROR_SUCCESS; 95 | end; 96 | 97 | end. 98 | -------------------------------------------------------------------------------- /SCWideUnbufferedCopier.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCWideUnbufferedCopier.pas -------------------------------------------------------------------------------- /SCWin32.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCWin32.pas -------------------------------------------------------------------------------- /SCWorkThread.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCWorkThread.pas -------------------------------------------------------------------------------- /SCWorkThreadList.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SCWorkThreadList.pas -------------------------------------------------------------------------------- /SuperCopier2.bpg: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------ 2 | VERSION = BWS.01 3 | #------------------------------------------------------------------------------ 4 | !ifndef ROOT 5 | ROOT = $(MAKEDIR)\.. 6 | !endif 7 | #------------------------------------------------------------------------------ 8 | MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** 9 | DCC = $(ROOT)\bin\dcc32.exe $** 10 | BRCC = $(ROOT)\bin\brcc32.exe $** 11 | #------------------------------------------------------------------------------ 12 | PROJECTS = SCComponent.bpl SC2Config.exe SuperCopier2.exe 13 | #------------------------------------------------------------------------------ 14 | default: $(PROJECTS) 15 | #------------------------------------------------------------------------------ 16 | 17 | SCComponent.bpl: Components\SFXTeam\SCComponent.dpk 18 | $(DCC) 19 | 20 | SC2Config.exe: SC2Config.dpr 21 | $(DCC) 22 | 23 | SuperCopier2.exe: SuperCopier2.dpr 24 | $(DCC) 25 | 26 | 27 | -------------------------------------------------------------------------------- /SuperCopier2.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=0 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=2 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=0 37 | UnitLibrary=1 38 | UnitPlatform=0 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=0 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription= 92 | [Directories] 93 | OutputDir=.\Compil 94 | UnitOutputDir=.\Compil 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath=.\Components\Other\tntunicodecontrols;.\Components\SFXTeam 98 | Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOffice2k 99 | Conditionals= 100 | DebugSourceDirs=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols\;C:\Program Files\TntWare\Delphi Unicode Controls\Source\ 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | RemoteHost=gligli7 109 | RemotePath=C:\SCTest\supercopier2.exe 110 | [Language] 111 | ActiveLang= 112 | ProjectLang= 113 | RootDir= 114 | [Version Info] 115 | IncludeVerInfo=1 116 | AutoIncBuild=1 117 | MajorVer=2 118 | MinorVer=2 119 | Release=0 120 | Build=651 121 | Debug=0 122 | PreRelease=0 123 | Special=0 124 | Private=0 125 | DLL=0 126 | Locale=1036 127 | CodePage=1252 128 | [Version Info Keys] 129 | CompanyName=SFX TEAM 130 | FileDescription=SuperCopier 2 (explorer file copy replacement) 131 | FileVersion=2.2.0.651 132 | InternalName=SuperCopier2 133 | LegalCopyright=GNU GPL 134 | LegalTrademarks= 135 | OriginalFilename= 136 | ProductName= 137 | ProductVersion=2 138 | [Excluded Packages] 139 | c:\program files\borland\delphi7\Bin\dclnet70.bpl=Composant Internet Borland 140 | c:\program files\borland\delphi7\Bin\dclsoap70.bpl=Composants SOAP Borland 141 | c:\program files\borland\delphi7\Bin\dcldbx70.bpl=Composants dbExpress Borland 142 | c:\program files\borland\delphi7\Bin\dcldbxcds70.bpl=Composant SimpleDataset Borland (DBX) 143 | c:\program files\borland\delphi7\Bin\DBWEBXPRT.BPL=Paquet Expert Web Borland 144 | c:\program files\borland\delphi7\Bin\dclwbm70.bpl=Composants InternetExpress Borland 145 | c:\program files\borland\delphi7\Bin\dclie70.bpl=Composants Internet Explorer 146 | c:\program files\borland\delphi7\Bin\dclwebsnap70.bpl=Composants WebSnap Borland 147 | c:\program files\borland\delphi7\Bin\dcloffice2k70.bpl=Composants Wrapper Serveur Automation MS Office 2000 148 | c:\program files\borland\delphi7\Bin\dclIntraweb_50_70.bpl=Paquet de conception Intraweb 5.0 pour Delphi 7 149 | c:\program files\borland\delphi7\bin\dclRave70.bpl=Paquet Rave Reports BE 5.0 150 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JclDebugIde70.bpl=JCL Debug IDE extension for Delphi 7 151 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\ProjectAnalyzer70.bpl=JCL Project Analyzer for Delphi 7 152 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\IdeOpenDlgFavorite70.bpl=JCL Open and Save IDE dialogs with favorite folders for Delphi 7 153 | C:\Program Files\Borland\Delphi7\\Projects\Bpl\JVCL200_D70.bpl=JEDI-VCL Components 154 | [HistoryLists\hlDebugSourcePath] 155 | Count=2 156 | Item0=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols\;C:\Program Files\TntWare\Delphi Unicode Controls\Source\ 157 | Item1=F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols\ 158 | [HistoryLists\hlUnitAliases] 159 | Count=1 160 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 161 | [HistoryLists\hlSearchPath] 162 | Count=1 163 | Item0=.\Components\Other\tntunicodecontrols;.\Components\SFXTeam 164 | [HistoryLists\hlUnitOutputDirectory] 165 | Count=2 166 | Item0=.\Compil 167 | Item1=Compil 168 | [HistoryLists\hlOutputDirectorry] 169 | Count=2 170 | Item0=.\Compil 171 | Item1=Compil 172 | [HistoryLists\hlBPLOutput] 173 | Count=1 174 | Item0=Compil 175 | [HistoryLists\hlDCPOutput] 176 | Count=1 177 | Item0=Compil 178 | -------------------------------------------------------------------------------- /SuperCopier2.dpr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SuperCopier2.dpr -------------------------------------------------------------------------------- /SuperCopier2.dproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D258EC00-E5F1-4E32-91BE-EBD1E31AD835} 4 | SuperCopier2.dpr 5 | Debug 6 | DCC32 7 | 12.0 8 | 9 | 10 | true 11 | 12 | 13 | true 14 | Base 15 | true 16 | 17 | 18 | true 19 | Base 20 | true 21 | 22 | 23 | Compil\SuperCopier2.exe 24 | .\Components\Other\tntunicodecontrols;.\Components\SFXTeam;$(DCC_UnitSearchPath) 25 | false 26 | 00400000 27 | WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias) 28 | false 29 | .\Compil 30 | x86 31 | vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOffice2k 32 | false 33 | false 34 | false 35 | true 36 | false 37 | F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols\;C:\Program Files\TntWare\Delphi Unicode Controls\Source\;$(DebugSourcePath) 38 | false 39 | .\Compil 40 | 41 | 42 | false 43 | RELEASE;$(DCC_Define) 44 | 0 45 | false 46 | 47 | 48 | DEBUG;$(DCC_Define) 49 | 50 | 51 | 52 | MainSource 53 | 54 | 55 |
MainForm
56 |
57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
CopyForm
69 |
70 | 71 | 72 | 73 |
DiskSpaceForm
74 |
75 | 76 |
CollisionForm
77 |
78 | 79 |
CollisionRenameForm
80 |
81 | 82 |
CopyErrorForm
83 |
84 | 85 |
ConfigForm
86 |
87 | 88 |
AboutForm
89 |
90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | File 100 | 101 | 102 | File 103 | 104 | 105 | File 106 | 107 | 108 | File 109 | 110 | 111 | File 112 | 113 | 114 | Base 115 | 116 | 117 | Cfg_2 118 | Base 119 | 120 | 121 | Cfg_1 122 | Base 123 | 124 |
125 | 126 | 127 | Delphi.Personality.12 128 | VCLApplication 129 | 130 | 131 | 132 | SuperCopier2.dpr 133 | 134 | 135 | False 136 | True 137 | False 138 | 139 | 140 | True 141 | True 142 | 2 143 | 2 144 | 0 145 | 651 146 | False 147 | False 148 | False 149 | False 150 | False 151 | 1036 152 | 1252 153 | 154 | 155 | SFX TEAM 156 | SuperCopier 2 (explorer file copy replacement) 157 | 2.2.0.651 158 | SuperCopier2 159 | GNU GPL 160 | 161 | 162 | 163 | 2 164 | 165 | 166 | 167 | 12 168 | 169 |
170 | -------------------------------------------------------------------------------- /SuperCopier2.dproj.2007: -------------------------------------------------------------------------------- 1 |  2 | 3 | {D258EC00-E5F1-4E32-91BE-EBD1E31AD835} 4 | SuperCopier2.dpr 5 | Debug 6 | DCC32 7 | 8 | 9 | true 10 | 11 | 12 | true 13 | Base 14 | true 15 | 16 | 17 | true 18 | Base 19 | true 20 | 21 | 22 | Compil\SuperCopier2.exe 23 | .\Components\Other\tntunicodecontrols;.\Components\SFXTeam;$(DCC_UnitSearchPath) 24 | false 25 | 00400000 26 | WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias) 27 | false 28 | .\Compil 29 | x86 30 | vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOffice2k 31 | false 32 | false 33 | false 34 | true 35 | false 36 | F:\Projects\SuperCopier2\Components\Other\tntunicodecontrols\;C:\Program Files\TntWare\Delphi Unicode Controls\Source\;$(DebugSourcePath) 37 | false 38 | .\Compil 39 | 40 | 41 | false 42 | RELEASE;$(DCC_Define) 43 | 0 44 | false 45 | 46 | 47 | DEBUG;$(DCC_Define) 48 | 49 | 50 | 51 | MainSource 52 | 53 | 54 | File 55 | 56 | 57 | File 58 | 59 | 60 | File 61 | 62 | 63 | File 64 | 65 | 66 | File 67 | 68 | 69 |
MainForm
70 |
71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 |
CopyForm
83 |
84 | 85 | 86 | 87 |
DiskSpaceForm
88 |
89 | 90 |
CollisionForm
91 |
92 | 93 |
CollisionRenameForm
94 |
95 | 96 |
CopyErrorForm
97 |
98 | 99 |
ConfigForm
100 |
101 | 102 |
AboutForm
103 |
104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | Base 114 | 115 | 116 | Cfg_2 117 | Base 118 | 119 | 120 | Cfg_1 121 | Base 122 | 123 |
124 | 125 | 126 | Delphi.Personality.12 127 | VCLApplication 128 | 129 | 130 | 131 | SuperCopier2.dpr 132 | 133 | 134 | False 135 | True 136 | False 137 | 138 | 139 | True 140 | True 141 | 2 142 | 2 143 | 0 144 | 651 145 | False 146 | False 147 | False 148 | False 149 | False 150 | 1036 151 | 1252 152 | 153 | 154 | SFX TEAM 155 | SuperCopier 2 (explorer file copy replacement) 156 | 2.2.0.651 157 | SuperCopier2 158 | GNU GPL 159 | 160 | 161 | 162 | 2 163 | 164 | 165 | 166 | 12 167 | 168 |
169 | -------------------------------------------------------------------------------- /SuperCopier2.groupproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | {45080CFC-E1ED-4E28-A541-2A3F86B01608} 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | Default.Personality.12 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /SuperCopier2.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/SuperCopier2.res -------------------------------------------------------------------------------- /ana sc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/ana sc.txt -------------------------------------------------------------------------------- /todo sc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gligli/SuperCopier2/861e9dd173ffd74f9218b0ec2733ba05ee683189/todo sc.txt --------------------------------------------------------------------------------