获得SysListView32的句柄,如何获得路径?

fisher_older 2011-03-21 07:27:30
例如文件在D:\VC\MyProject\try.cpp, 当选中文件try.cpp时,能够得到SysListView32的句柄。那么如何得到文件夹的路径呢?即得到“D:\MyFolder\MyProject”。只要得到文件夹路径就行了。
...全文
175 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinoalex 2011-03-28
  • 打赏
  • 举报
回复
[code=Delphi(Pascal)]
var ThePathEditHandle: THandle; // 全局

function _EnumEditWndProc(AhWnd: LongInt; AlParam: LParam): boolean; stdcall;
var
WndClassName: array[0..511] of Char;
begin
GetClassName(AhWnd, WndClassName, 512);
if string(WndClassName) = 'Edit' then ThePathEditHandle:= AhWnd;
result:= true;
end;


// 调用

var
h,h2: THandle;
Buf: array[0..255] of char;
begin
// ............ 你的其它代码, 如找句柄..
GetClassName(h, szClass, 255); // h 枚举句柄
if String(szClass) = 'SysListView32' then // 找到 SysListView32
begin
h2:= GetForegroundWindow();
EnumChildWindows(h2, @_EnumEditWndProc, 0);
sendmessage(ThePathEditHandle, WM_GETTEXT, 255, integer(@buf));
memo1.Lines.Add(string(buf));
end;
end;
[/Code]
dinoalex 2011-03-28
  • 打赏
  • 举报
回复
需要写上找SysListView32的代码吗? 最好不要, 或者你留个邮箱吧.
fisher_older 2011-03-28
  • 打赏
  • 举报
回复
加了个判断标志,现在可以了。多谢了。结贴。
fisher_older 2011-03-28
  • 打赏
  • 举报
回复
谢谢dinoalex,你的方法很好,我已经能够提取路径了。只是桌面不能适用,因为桌面没有edit,呵呵。
fisher_older 2011-03-27
  • 打赏
  • 举报
回复
好的,谢谢,我很需要。
dinoalex 2011-03-26
  • 打赏
  • 举报
回复
你确定你能找到SysListView32的句柄??

因为我这边也有找SysListView32的, 免得跟你的搞乱.

如果你确定的话,我就整理一下代码给你.
fisher_older 2011-03-25
  • 打赏
  • 举报
回复
网上有人说可以通过shell编程的方法实现,有高手知道怎么做吗?多谢了!头发都急白了。
fisher_older 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dinoalex 的回复:]
你能找到syslistview32句柄,那么你应该能找到Edit的句柄,如果你找到EDIT就好办了
[/Quote]
能否请教该怎么做?另外如果是桌面怎么办?
dinoalex 2011-03-25
  • 打赏
  • 举报
回复
你能找到syslistview32句柄,那么你应该能找到Edit的句柄,如果你找到EDIT就好办了
fisher_older 2011-03-24
  • 打赏
  • 举报
回复
高手快出现啊。
浩南_哥 2011-03-24
  • 打赏
  • 举报
回复
。。。。。。人家那个不是有解决办法了嘛
fisher_older 2011-03-24
  • 打赏
  • 举报
回复
用Hook来得到explorer中文件夹中的路径,那个方法没成功。
fisher_older 2011-03-24
  • 打赏
  • 举报
回复
哪个?没有啊?
fisher_older 2011-03-24
  • 打赏
  • 举报
回复
问题同http://topic.csdn.net/t/20061013/16/5080675.html
请高手帮忙。
fisher_older 2011-03-23
  • 打赏
  • 举报
回复
点击文件发现,是由explorer.exe打开的,那么如何根据explorer.exe得到文件的路径呢?
iamduo 2011-03-21
  • 打赏
  • 举报
回复
关注 回复内容 回复太快,请先休息一下!
Oraclers 2011-03-21
  • 打赏
  • 举报
回复
var
FilePath:string;
begin
FilePath:=ExtractFilePath('try.cpp');
end;
fisher_older 2011-03-21
  • 打赏
  • 举报
回复
可能是我没说清楚。先打开我的程序,然后鼠标点击任意文件,然后在我的程序中响应,我的程序memo中输出路径。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧