#IfWinActive ahk_class CabinetWClass 
~F2:: 
Gosub, AnalyzeRename 
return 
#IfWinActive ahk_class Progman
 ~F2::
 Gosub, AnalyzeRename 
return 
#IfWinActive

AnalyzeRename:
OldClipboard = %Clipboard%
sleep 100
Send, ^c
StringGetPos,ExtensionPos, Clipboard,.,R
if (ExtensionPos != -1)
{
Position := StrLen(Clipboard) - ExtensionPos
Send, +{Left %Position%}
}
Clipboard = %OldClipboard%
return