About Terminal Server, Citrix, Delphi and other stuff
Have you developed an application that accesses files and may stop because a file cannot be accessed but you need to?
Since Windows Vista it is possible to find out the name of the application which holds open a file.
And we have created a solution for you that doesn’t require a driver, nor does it need Administrator rights! Just plain user source code for you to use instantly.
We have developed a solution in Delphi that can show your user which application stalls your application. Look at these screenshots:
In fact, these dialogs are only for demonstration purposes. But you can get them in addition as a Delphi project!
The code itself is fairly easy to use. We have developed an extension to the official IFileIsInUse Interface from Microsoft.
IFileIsInUse = interface(IUnknown)
function GetAppName(out ppszName: LPWSTR) : HRESULT; stdcall;
function GetUsage(out pfut : FILE_USAGE_TYPE) : HRESULT; stdcall;
function GetCapabilities(out pdwCapFlags : DWORD) : HRESULT; stdcall;
function GetSwitchToHWND(out phwnd : HWND) : HRESULT; stdcall;
function CloseFile() : HRESULT; stdcall;
IFileIsInUse2 = interface(IFileIsInUse)
function GetProcessID(out pdwProcessID : DWORD) : HRESULT; stdcall;
All you have to do it to call this function provides by us:
function GetFileInUseInfo(const FileName : WideString) : IFileIsInUse2;
The name of the app is returned by the method GetAppName. And if the other application supports IFileIsInUse (call method GetCapabilities) interface you even can close the file or switch to the window.
You’ll see how it works in the demonstration project (images above) accompanied by the function GetFileInUseInfo.
Currently, we only offer a Delphi solution. C++ may available in future or when there’s enough demand for it.
Please use the Contact Form to get more information about how to obtain the solution and conditions.
.NET .NET FrameWork Active Directory Altiris Automation Manager bug Citrix Dell Delphi Excel Exchange Exchange2003 Exchange2010 Hack HP iOS Java LinkedIn Linux Lync MSI Office Office 2010 Outlook Passat Password PowerPoint PowerShell RES RNS510 SasLibEx Security Terminal Server ThinApp TSAdminEx Unattended VBS VCDS Vista Visual Basic VMWare Volkswagen Windows PE Wordpress XenApp