上 传 者
(Inspecting who are using the DLL, such as DLLView)
WhoSLocking\Build_Doc.bat (25, 2000-02-10)
WhoSLocking\CLEANUP.bat (234, 2000-02-10)
WhoSLocking\CListCtrlEx.cpp (1310, 1999-12-09)
WhoSLocking\CListCtrlEx.h (771, 1999-12-03)
WhoSLocking\CServiceManager.html (17738, 2000-02-10)
WhoSLocking\CSimpleProcessAPI.html (14549, 2000-02-10)
WhoSLocking\CWindowsRegistry.html (43136, 2000-02-10)
WhoSLocking\Empty.zip (22, 1999-12-06)
WhoSLocking\ForceUnlockingDlg.cpp (5174, 2000-02-10)
WhoSLocking\ForceUnlockingDlg.h (1601, 2000-02-10)
WhoSLocking\GetServiceName.cpp (3299, 1999-12-06)
WhoSLocking\GetServiceName.h (918, 1999-12-06)
WhoSLocking\logo.gif (1155, 2000-02-10)
WhoSLocking\MAKE_KIT.bat (1983, 2000-02-10)
WhoSLocking\PSAPI.H (4177, 1999-03-23)
WhoSLocking\resource.h (1286, 2000-02-10)
WhoSLocking\res\WhoSLocking.ico (1078, 1999-12-03)
WhoSLocking\res\WhoSLocking.rc2 (403, 1999-12-03)
WhoSLocking\ServiceManager.cpp (29218, 2000-02-10)
WhoSLocking\ServiceManager.h (10723, 2000-02-10)
WhoSLocking\SimpleProcessAPI.cpp (27905, 2000-02-10)
WhoSLocking\SimpleProcessAPI.h (10021, 2000-02-10)
WhoSLocking\StdAfx.cpp (213, 1999-12-03)
WhoSLocking\StdAfx.h (1054, 1999-12-03)
WhoSLocking\WhoSLocking.cpp (5788, 1999-12-03)
WhoSLocking\WhoSLocking.dsp (6152, 2000-02-10)
WhoSLocking\WhoSLocking.dsw (545, 1999-12-03)
WhoSLocking\WhoSLocking.h (1588, 1999-12-03)
WhoSLocking\WhoSLocking.html (3589, 2000-02-10)
WhoSLocking\WhoSLocking.rc (7169, 2000-02-10)
WhoSLocking\WhoSLocking1.jpg (31244, 2000-02-10)
WhoSLocking\WhoSLocking2.jpg (11215, 1999-12-06)
WhoSLocking\WhoSLocking3.jpg (9303, 2000-02-10)
WhoSLocking\WhoSLocking4.jpg (5485, 2000-02-10)
WhoSLocking\WhoSLockingCommandLineInfo.cpp (939, 1999-12-09)
WhoSLocking\WhoSLockingCommandLineInfo.h (780, 1999-12-03)
WhoSLocking\WhoSLockingDlg.cpp (16365, 2000-02-10)
WhoSLocking\WhoSLockingDlg.h (2416, 1999-12-10)
Who's Locking? v1.3
Who's Locking? v1.3
This article was contributed by Emmanuel KARTMANN
Environment: VC6 SP3, NT4 SP5 or VC6 SP3, Windows*** SE
Have you ever tried to copy a DLL and had an "Access Denied" or "Shared Violation" error? Did you have to
reboot everytime you needed to upgrade a DLL?
If yes, this program is for you!
Who'sLocking? is a a devpt/system management tool to find which process is locking a DLL.
Whenever a process loads a module (DLL), it locks the DLL and no other process can delete
and/or write in it: you get "Sharing Violation" errors (or "Access Denied").
Once you know the name of the process who's locking your DLL, you can stop this process and
have full access to the DLL module. There's no need to reboot your system anymore...
- Integrated in Windows Shell (right-mouse menu on DLL, OCX, or EXE files).
- Automatic installation/registration when launched first time.
- 1 parameter: name of executable module to search (DLL, OCX)
- Display list of processes who are locking a DLL (if DLL is loaded by multiples processes)
- Displays process name, PID, executable pathname (if applicable), and service name (if applicable)
The program registers itself in the Windows Shell when you start it the first time.
- Double-click on the program WhoSLocking.exe
- Click on the OK button to exit.
To use this program:
- In Windows Explorer, select on a locked module file.
- Click on right-mouse button
- In the menu, select option "Who's Locking?"
- A dialog box pops-up, showing the list of processes who are locking the module file (if any).
- Double-click on a process and a dialog box pops-up to enable you to stop the process locking
the DLL (gently if it is a Windows NT Service, or forcefully if it's not: it will terminate the process).
- Click on the OK button and a dialog box pops-up to tell you if the process has been stopped:
The WhoSLocking program uses a several C++ class from my Simple Library:
- CSimpleProcessAPI: builds process/module list, finds the process who's locking a module and terminates the process.
This class is reusable (no GUI stuff in it) and runs on both Windows NT and Windows ***. Please refer to
the CSimpleProcessAPI.html file for more details.
- CServiceManager: stops the Windows NT Service.
This class is reusable but runs only on Windows NT. Please refer to
the CServiceManager.html file for more details.
- CWindowsRegistry: Easier access to the Windows Registry.
Please refer to the CWindowsRegistry.html file for more details.