使用windows资源管理器的排序规则

对于windows资源管理器 abc_1_def是要排到abc_10_def前面的

而一般的排序规则, 都会吧_10_排到前面

所以为了使用习惯, 最好用资源管理器的排序规则, windows有个API提供了此规则:

在Shlwapi.dll中的StrCmpLogicalW函数

可惜, Delphi目前似乎并没有引入此函数, 至少我在XE5的Winapi.ShLwApi中也没有见到, 所以只能手动引用了

引用以后, 使用方式和其他排序一样, 用listview举例:

function StrCmpLogicalW(P1, P2: PWideChar): Integer; stdcall; external ‘Shlwapi.dll‘;

procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
  ListView1.AlphaSort;
end;

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer;
  var Compare: Integer);
begin
  Compare := StrCmpLogicalW(PChar(Item1.Caption), PChar(Item2.Caption));
end;
时间: 2024-11-02 23:24:44

使用windows资源管理器的排序规则的相关文章

解决“无法在windows资源管理器中打开ftp站点”问题

打开FTP,本来是用windows资源管理器打开的. 今天上午不知道怎么了,打开FTP快捷方式,全部用IE打开了,而且在IE页面里面,点击用windows资源管理器打开,也打不开. 把下面的内容保存成为一个注册表文件ftp.reg,双击导入注册表即可. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\ftp] @="URL:File Transfer Protocol" "AppUserModelID"

SVN has atopping svn已停止工作 or windows资源管理器无限重启

准备在空间时间用用linux,就在自己的win7系统上安装了属性系统,用easyBCD安装的,谁知安装好之后win7系统下的svn客户端不能使用了,点击报错“SVN已停止工作”,随后怀疑是linux引导影响的,将linux卸载掉,还是没用,无奈只能使用svn命令行方式进行版本库更新提交,最近开机后又出现windows资源管理器无限重启,有人说是显卡驱动问题或者软件问题,可是我也没有安装什么软件就这样了,最后自己恢复windows还原点不行,进入安全模式,检测驱动重新安装还是不行,最后无奈使用杀毒

Delphi7 打开 Windows 资源管理器转到文件夹并选中指定文件

Delphi7 打开 Windows 资源管理器转到文件夹并选中指定文件. var strFilePath: string; begin ShellExecute(Handle, 'open', PChar('explorer.exe'), PChar('/select,' + strFilePath), nil, SW_NORMAL); end;

使用windows资源管理器刻录光盘

如果要刻录一张可以在运行 Windows XP 或更高版本的计算机上播放的数据光盘,则选择实时文件系统格式. 将可写入的光盘,例如 CD-R.CD-RW.DVD-R.DVD-RW 或 DVD+RW 光盘插入到计算机的 CD. DVD 或蓝光光盘刻录机中.在显示的"自动播放"对话框中,单击"使用 Windows 资源管理器将文件刻录到光盘".如果未显示自动播放对话框,请单击「开始」按钮 ,然后单击"计算机",最后双击您的光盘刻录机.在"刻

Windows 8.1/10 升级补丁导致Windows资源管理器停止响应的解决方法

前言 我自己的操作系统是Windows 8.1(现在为Windows 10),微软在2015年03月11日推送了新的更新补丁,重新启动计算机后发现Windows资源管理器频繁卡顿假死导致不停重启,资源管理器CPU会异常升高,使得Windows资源管理器停止响应.这个问题困扰了我大半个月时间,差点就直接怒降Windows 7或者提前入坑Windows 10预览版(也有各种地雷Bug在等你来踩),现在终于找到了解决方法,分享给大家以供参考. 微软这次的升级补丁测试得可真到位 更新历史 2015年05

出现“Windows资源管理器已停止工作”错误

出现"Windows资源管理器已停止工作"错误 什么是资源管理器呢,explorer.exe进程的作用就是让我们管理计算机中的资源! 今天开电脑的时候就一直提示windows资源管理区已停止工作不管是重新开机还是重启程序都不行.我是点进联机阅读隐私声明那个链接才登上浏览器的,桌面上和下面栏的图标包括文件夹也点不进去,现在只能用浏览器了.网上查询很多方法都要开始-查找或者点进计算机里的文件夹,但现在根本点不了.求助怎么解决. 问题签名: 问题事件名称:APPCRASH 应用程序名:exp

windows资源管理器(只能看,不能用)

实现Windows资源管理器 问题描述 Windows资源管理器是用来管理计算机资源的窗口,电脑里所有的文件都可以在资源管理器里找到,可以在资源管理器里查看文件夹的分层结构,可以利用资源管理器快速进行文件和文件夹的操作.例如,磁盘(根).目录.不同类型的文件. 其中,文件信息包括文件名.类型.创建时间.文件大小等:磁盘信息包括磁盘名称.总大小.可用空间等:目录信息包括目录名称.修改日期.大小.对象数等. 基本要求 (1)构造一个空的资源管理器: (2)新建/删除磁盘: (3)在当前选择目录下新建

Windows资源管理器打开文件夹卡顿原因及解决办法

全新安装的 Win8 打开文件夹居然会卡顿,特别是打开EXE程序比较多的文件夹,通过资源监视器查看,幕后凶手就是 Windows Defender 杀毒软件. MSE是微软提供防毒功能,而Windows Defender则是为用户提供反间谍功能,Win8已经把这两个功能合二为一了.用过MSE的用户就知道它有卡EXE的毛病,在Win8中也是这样,当你打开EXE程序.压缩包比较多的文件夹,它就一直扫描啊扫描-..所以MSE很忙-.. 解决方法: 先用Windows Defender全盘扫描,然后可以

解决Windows资源管理器右键菜单打开EditPlus容易导致资源管理器无响应问题

这个问题确实很烦人,经常导致 资源管理器无响应,关闭后整个资源管理器彻底崩溃,原因未知.本着折腾和强迫症精神,这个问题一定要解决.方法如下: 1.不要用EditPlus自带的添加到系统右键菜单选项. 2.导入下列注册表内容: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\EditPlus] @="EditPlus" "icon"="F:\\develop\\EditPlus\