To download this freeware: (22KB)
Dr. Hoiby is the author of this little freeware.
Code written in C++. He can be reached at [email protected].
What is WhoLockMe ?
Have you ever bored by this Windows message : “Error Deleting File or Folder, … There has been a sharing violation. The source or destination file may be in use.“, when you try to delete, move or rename a file ?
WhoLockMe is a little extension for your Microsoft Explorer. It permeets you to list all the process locking your selected file.
This freeware is a beta version, it Doesn’t work on Win9x or WinMe.
EMCO Software has brought out an intuitive and handy tool known as EMCO MoveOnBoot, the program has a very basic but very useful features that is very helpful especially when your files are locked by a system utility or any other program that prevents you from changing them. Have you ever faced a problem on moving, renaming or deleting files that are locked by your system? If this is true in your case then, look no further MoveOnBoot is the best solution for you. It enables you to perform those actions with ease that requires no hectic procedure.
When you want to delete a file, delete a file in a folder or delete a folder, simply move the file into the program and rename the files or folders that are locked, you can do all this in a breeze.
Below are the main features of EMCO MoveOnBoot:
- Very simple and easy to use interface.
- Delete a single or multiple files
- Delete a single or multiple files within a folder
- Delete a folder
- Move a file
- Rename a file
The main features of EMCO MoveOnBoot are described in more detail below:
- Very simple and easy to use interface – EMCO MoveOnBoot comes up with a simple and easy to use interface that enables you to get started in a few seconds.
- Delete a single or multiple files – MoveOnBoot enables you to remove a file(s) that are locked by your system with only a few mouse clicks.
- Delete a single or multiple files within a folder – You can also delete locked a file(s) located within a folder in your machine. Just browse to the folder where which you want to remove files. Now specify the file extension for the files you want to remove.
- Delete a folder – Do you want to remove a folder that is locked? Don’t worry you can do that as well with MoveOnBoot. Just select the folder that you want to remove and it will be removed on next reboot.
- Move a file – EMCO MoveOnBoot also enables you to move files that are locked from one location to the other. All you need is to select the source file and the destination for your file and EMCO MoveOnBoot will handle the rest.
Rename a file – EMCO MoveOnBoot can help you out in renaming a locked file. All you have to do is just select the source file and type in the new name for the file and it will be renamed on next reboot.
Here is a perfect scenario that I’ve gone through when deleting the undeletables. It was like going through hell and back.
I was working with some PhotoShop files (*.psd) and after I was done, I saved them on my desktop. Since I didn’t have any need for them later on, I had a brilliant idea. I thought, why not just DELETE them? Little, did I know that at times, my Microsoft OS wouldn’t let me. For some reason, It kept on giving an error (another program or person is using this file) and won’t delete these particular files.
As with anything annoying on computers, I had to look up way around it. After tons of searching for answers on the net here is what I found.
If you ever come across something similar, here are few of many things you can do:
Work Around 1
Go to Start/Run/CMD and type in: RD /S [drive:] path
Work Around 2
Open Notepad and save the (blank) file with the name of the undeletable file. Under save as, navigate to the file, delete.
Work Around 3
Move the file into a new directory and then delete the directory.
Work Around 4
Close all open apps. Open a command prompt (Start/Run/CMD) and navigate to the directory with the offending file(s). Then open the Task Manager and click on the Processes tab, select “explorer.exe” under Image Name. Click “End Process”.
In the opened Command Prompt, DEL the offending files (DEL *.mpg, DEL mus*.avi, DEL test.wmv, etc.) Once done, go back to the task manager and click on the Applications tab. Click the “New Task…” button. in the dialog, type explorer.exe and click OK.
Work Around 5
Try moving the folder to C: & from Explorer delete the file.
Work Around 6
Try booting your computer from Safe Mode and try removing from there.
Delete/Modify “Locked Files”
The XP bug that sometimes locks files (mostly AVI’s) can be overcome quite easily. When XP refuses to delete/modify a file; simply jump into the command prompt (Start>Run>”cmd”) and modify the file from there. Windows-DOS seems to work around this bug. No need to wade through complex procedures for this one.
CopyLock is a small program that allows the replacement or the deletion of one or many files that are currently in use (e.g. the system files like comctl32.dll.)Add the files to update, click Replace, and restart and that’s it!
You can also list and edit the pending operations from the system after you ran an installer.
Disclaimer: you can crash your system or make it unbootable if you are not careful, use at your own risk.
MoveOnBoot – move or delete files on next reboot.
MoveOnBoot allows you to copy, moves or delete files on the next system boot. This comes in very handy, if you need to replace or delete files which are locked by other applications, loaded into memory or cannot be changed until next system boot. You could manually enter a line to the wininit files, but using MoveOnBoot is much simpler, since the program can be integrated into shell – it creates the “Copy/Move/Delete on boot” context menu item.
http://www.csc.calpoly.edu/%7Ebfriesen/software/files/bdel32.zip – Download
BusyDelete will delete files even if they are busy. The file(s) you specify will be marked for deletion. Then the next time you reboot your system the Operating System will delete the file(s). For example BDEL ATL.DLL will delete the file during the next reboot.
It’s free, it’s tiny, it’s open source, it’s easy to use, and it can delete files for you when all else fails. So what is it?
DiamondCS DelLater is a simple program that uses the only method that Microsoft recommend to delete files that are in use. This method is based on documentation from Microsoft that describes a function called MoveFileEx, and DelLater has been carefully designed to be technically accurate to the guidelines set forth in the article. Interestingly, this is the technique used by anti-virus scanners when they’re unable to delete a file (such as a trojan) because it’s in use. Although the MoveFileEx function isn’t supported under Windows 95/98/ME, the article does describe how to implement the same functionality, which DelLater does. Don’t worry if you don’t understand the Microsoft article as DelLater simplifies everything.
DelLater is the ideal program to use when you can’t delete a file, no matter how hard you try. This is usually because an active process has an open handle to the file which prevents it from being deleted. Normally if you close down all running programs you’ll find that most files will then be free to delete, but that’s not always the case, and in some cases it may even be a trojan that’s preventing itself from being deleted.
To DelLater A File…
1. Run dellater.exe
2. Reboot (whenever you like).
That’s all that’s required. After rebooting and logging in you’ll be able to see that the file you specified is no longer there.
Have you ever bored by this Windows message : “Error Deleting File or Folder, … There has been a sharing violation. The source or destination file may be in use.”, when you try to delete, move or rename a file?
WhoLockMe is a little extension for your Microsoft Explorer. It permits you to list all the processes locking your selected file.In almost all cases, at least few of these ways would have already resolved your deletion issues.
Process Controller is a system tray-based utility to monitor and control the activity and resources of your system in real time.
Process Controller is a system tray-based utility to monitor and control the activity and resources of your system in real time. This version is based on the excellent original for BeOS by Georges-Edouard Berenger. With it you can:
- See how much processing power and memory is currently being used in the system.
- Quit any application, assuming you have sufficient privileges.
- View the memory usage of each application.
- View the activity of each process and thread in real-time.
- View all windows created by each process.
When run, Process Controller appears in the system tray showing two small meters. The left-hand meter shows the current processor utilisation and the right-hand meter shows the current memory load. You can change the colours used as well as selecting to just display processor usage. On dual processor systems, the left-hand meter is split into two smaller meters showing processor load for each CPU.
When clicked, Process Controller pops up this menu:
The ‘Quit an Application’ Menu
This menu allows you to close an application cleanly by posting a WM_CLOSE message to each of the application’s windows. Note that not all applications can receive WM_CLOSE messages (if an application has no windows or you’re logged on with insufficient security rights), in which case these applications will not appear in the list.
The ‘Spy Memory Usage’ Menu
This menu lets you see how much memory is being used both across the system and individually by each process. It should be noted that some of these values may be inaccurate due to the way Windows manages memory, and limitations in the APIs.
The following shows the level of information Process Controller can provide about memory usage:
The top line (System Resources & Caches) details the total amount of Committed memory. That is, the sum of both physical RAM installed in the PC and the current paging file size. In this example, 272.4MB of memory are currently committed by the operating system (indicated by both the blue and purple areas). The PC used in this example has 192MB of phyiscal RAM so approximately 80MB is currently paged (stored on disk).
The other figure (106.5MB in this example) and indicated by the dark blue area is the sum of all the currently running processes’ working sets (a process’ working set is the number of pages it has touched recently – this gives an approximate amount of memory the process is using). The difference between the two – indicated by just the purple area – indicates how much memory is currently used by the operating system, which includes the disk cache, cached binaries (so applications start faster next time they’re run), device drivers, and other internal structures.
All the other entries show how much memory each process is using. Here, the right-hand value shows the process’ virtual size – this is the maximum amount of memory the process has access to and is represented as a percentage of the total committed memory by the light blue bar. The left-hand value show the process’ current working set, which is a good approximation of how much memory the process is currently using; indicated by the dark blue part of the bar.
Selecting any process from the menu will bring up a window detailing a bit more information about the process. The window will remain open until it is either closed or the process it represents terminates. It can also be made to stay on top of other windows by right-clicking anywhere within it and selecting the option from the menu that appears.
The ‘Spy Windows’ Menu
This menu lets you drill down into all the top-level windows a process has created. Currently Process Controller groups up all the windows for all threads (a thread actually creates a window, not a process) and lists them in a menu showing the window’s title, if it has one, and class name. Selecting a window brings up a properties window similar to that shown above that provides more information on the window and allows you to toggle its visible state.
The ‘Kill, Debug or Change Priority’ Menu
This menu provides multiple options:
- View the activity of all processes and threads running on your PC.
- Kill a particular process (assuming you have sufficient privileges) by selecting it from the menu.
- Kill or launch a debugger on a particular thread by selecting it.
- Alter a thread’s priority (see below) by selecting an alternative priority from the menu.
Note that there are some processes which always run under Windows, typically these processes cannot be killed or modified in any way:
- Client Server Run-Time Subsystem (csrss.exe) – Responsible for managing console windows, creating and deleting threads and parts of the 16-bit virtual MS-DOS environment.
- Local Security Authentication Server (lsass.exe) – Authenticates users for the Winlogon service and, if successful, generates the user’s access token, which other processes the user initiates inherit.
- Task Scheduler (mstask.exe) – Runs tasks at pre-determined times.
- Session Manager (smss.exe) – Starts the user session and launches both the winlogon and csrss processs. It also sets things such as system variables. Once it’s launched winlogon and csrss it sleeps waitign for either of these two processes to end, it this happens under normal circumstances the system shuts down; otherwise smss causes the system to stop responding.
- Spooler (spoolsv.exe) – Manages spooled print or fax jobs.
- Service Host (svchost.exe) – Acts as a host for other processes running from dlls. More than one of these can exist in the system at any one time.
- Services Control Manager (services.exe) – Responsible for starting, stopping and interacting with system services.
- System – Runs kernel-mode threads.
- System Idle Process – A single-thread process whose job it is to account for processor time when the CPU isn’t running other threads.
- Windows Logon App (winlogon.exe) – Responsible for managing user logon and logoff. Sleeps most of the time, only waking when the user presses CTRL, ALT and DELETE simultaneously, at which point it shows the security dialog box.
- Windows Management Instrumentation (winmgmt.exe) – Or WMI as it’s more commonly known. This process initialises when the first client application connects.
Process and Thread Priorities
Threads are scheduled to run based on their scheduling priority. Each thread is assigned a scheduling priority, which ranges from from zero (lowest priority) to 31 (highest priority). Only the zero-page thread can have a priority of zero. The zero-page thread is a system thread responsible for zeroing any free pages when there are no other threads that need to run.
The system treats all threads with the same priority as equal. The system assigns time slices in a round-robin fashion to all threads with the highest priority. If none of these threads are ready to run, the system assigns time slices in a round-robin fashion to all threads with the next highest priority. If a higher-priority thread becomes available to run, the system ceases to execute the lower-priority thread (without allowing it to finish using its time slice), and assigns a full time slice to the higher-priority thread.
The priority of each thread is determined by the following criteria:
- The priority class of its process
- The priority level of the thread within the priority class of its process
The priority class and priority level are combined to form the base priority of a thread. To complicate matters further individual threads can be given a priority boost, which affects their dynamic priority – currently Process Controller ignores the dynamic priority of a thread.
Each process belongs to one of the following priority classes:
Note that BELOW_NORMAL_PRIORITY_CLASS and ABOVE_NORMAL_PRIORITY_CLASS are only supported on Windows 2000 and above.
By default, the priority class of a process is NORMAL_PRIORITY_CLASS. However, if the calling process is IDLE_PRIORITY_CLASS or BELOW_NORMAL_PRIORITY_CLASS, the new process will inherit this class. Processes that monitor the system, such as screen savers or applications that periodically update a display, should use IDLE_PRIORITY_CLASS. This prevents the threads of this process, which do not have high priority, from interfering with higher priority threads.
The following are priority levels within each priority class:
All threads are created using THREAD_PRIORITY_NORMAL, which means that the thread priority is the same as the process priority class. After a thread is created, it can adjust its priority relative to other threads in the process. This is what Process Controller currently allows you to do.