We don't display ads so we rely on your Bitcoin donations to 1KWEk9QaiJb2NwP5YFmR24LyUBa4JyuKqZ
Post date: Mar 14, 2010 2:02:48 AM
Example:
.rar returns "WinRAR archive"
.txt returns "Text Document"
and
.png returns "PNG Image".
function GetFileTypeDescription(FileName: String): String;function GetFileTypeRegKey(FileName: String; out Key: HKEY): Integer;function GetFileTypeDescription(FileName: String): String;var hkExtType: HKEY; lpszDesc: Array [0..1024] of Char; dwSize: DWORD;begin // Attempt to get the registry key for the extension type if (GetFileTypeRegKey(FileName, hkExtType) = ERROR_SUCCESS) then begin // Resource protection try // Set size of buffer dwSize:=SizeOf(lpszDesc); // Get the description for the file extension if (RegQueryValueEx(hkExtType, nil, nil, nil, @lpszDesc, @dwSize) = ERROR_SUCCESS) then // Return the description SetString(result, PChar(@lpszDesc), dwSize) else // Failed to get result SetLength(result, 0); finally // Close the registry key RegCloseKey(hkExtType); end; end else // Failed to get result SetLength(result, 0);end;function GetFileTypeRegKey(FileName: String; out Key: HKEY): Integer;var hkExt: HKEY; lpszTypeKey: Array [0..1024] of Char; dwSize: DWORD; szExt: String;begin // Get the file extension szExt:=ExtractFileExt(FileName); // Attempt to open the registry key result:=RegOpenKeyEx(HKEY_CLASSES_ROOT, PChar(szExt), 0, KEY_READ, hkExt); // Check result of open if (result = ERROR_SUCCESS) then begin // Resource protection try // Set size of buffer dwSize:=SizeOf(lpszTypeKey); // Query for the default value which is the redirect to the extension type key result:=RegQueryValueEx(hkExt, nil, nil, nil, @lpszTypeKey, @dwSize); // Check result if (result = ERROR_SUCCESS) then begin // Open the redirect to the extension type key result:=RegOpenKeyEx(HKEY_CLASSES_ROOT, @lpszTypeKey, 0, KEY_READ, Key); end finally // Close the opened key RegCloseKey(hkExt); end; end;end;