도전2022

파일의 소유자 찾는 코드 본문

소스코드

파일의 소유자 찾는 코드

hotdigi 2012. 4. 12. 20:33

http://www.codeguru.com/cpp/w-p/dll/article.php/c3641/Whos-Locking-v13.htm




다른 곳에서 파일을 사용중이여서 열수 없는 경우가 발생..ㅠ.ㅠ

그러다 찾은 프로그램. 코드 



Who's Locking? v1.3

Environment: VC6 SP3, NT4 SP5, Windows 95, Windows 98

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...


PROGRAM FEATURES

  • 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)


INSTALLATION

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.


USAGE

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:


IMPLEMENTATION

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 98. 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.


Downloads

Download runtime - 99 Kb
Download source - 105 Kb



WhoSLocking_src.zip


WhoSLockingKit.exe