请问如何获得鼠标选中文件的绝对路径?

高跟男爵 发布于 2014/07/16 16:26
阅读 1K+
收藏 1

请问如何获得鼠标选中文件的绝对路径?

有知道的 或者 MSDN连接地址也可~~ 谢谢

加载中
1
超级糖葫芦
就楼主心态,不配做一个程序员。
超级糖葫芦
对楼主表示歉意。骂了楼主。楼主是正确的
0
高跟男爵
高跟男爵
大伙都跑去做web / 移动开发了?  win开发都没人了?  是太难了?不会吧 
高跟男爵
高跟男爵
额·· 好吧。
Null--Null
Null--Null
win C++太难,C#太坑。
0
figer1
figer1

问题没人回,自己问题解决不了,不要老是去找别人的原因,别人不欠你的。
问题没讲清楚,提醒你说清楚怕得罪你,如果是管理员好心删你的帖子即费时间还可能被你象刚才那样网上到处狂骂。如果好心帮你写了代码,一个费时间,费时间写出来可能还根本不是你想要的,即使偶尔有几个勤奋回答问题的,都被你这样的人骂怕了,所以也不轻易回答问题了。毕竟大家都很忙的,指责别人不帮你这前,看看你自己帮了多少人,帮别人义务写了多少代码。

就你这个问题来说,鼠标点?怎么点?点哪里?双击启动?还是单击桌面?你说你提个问题怎么没有刚才骂人那么口惹悬河的精明劲呢?

如果是取当前单击桌面的项目的绝对路径,AAuto代码如下:

import fsys.lnk;
import winex.desktop;

var listview = winex.desktop.listview;
var ind =  listview.getSelection()
io.open()
if ( ind ) { 
	var name = listview.getItemText(ind) 
	var path = fsys.searchFile(name,fsys.getSpecial(0 /*_CSIDL_DESKTOP*/)) 
	if( !path ){
		path = fsys.getSpecial(0 /*_CSIDL_DESKTOP*/,name + ".lnk") 
		
		if( ! ..io.exist(path) ) 
			path = fsys.getSpecial(0x19 /*_CSIDL_COMMON_DESKTOPDIRECTORY*/,name + ".lnk") 
			
		var lnk = fsys.lnk()
		lnk.load(path)
		path = lnk.path;
	}
	
	io.print("找到的完整路径",path )
}



如果是取其他程序的启动命令行里的参数,AAuto代码如下:

//外部CALL读取命令行
//列出所有已运行进程的命令行参数
import winex;
io.open()
 
//遍历所有窗口
for hwnd,title,theadId,processId in winex.each(   ) { 
	if(title != ""){ //如果标题不为空
	
		//在外部EXE进程创建函数    
		try{

			//一句代码创建CALL函数
			var getCommandLine_call = raw.remoteApi(processId,"string()"
               ,"Kernel32.dll","GetCommandLineA");

			//象API一样使用
			str = getCommandLine_call()
			io.print(processId,title,str)
		}
		
	} 	
}



高跟男爵
高跟男爵
下班 看来有必要写个关于 aauto对于非 win开发者来开发需要的开发成本了。 还是感谢你个人
figer1
figer1
回复 @大案要案命案在身 : 我不是管理员,我是管理员你这么骂我才不会理你
高跟男爵
高跟男爵
你这个不是我想要的。 鼠标点击任何文件/文件夹 能获得选择的文件/文件夹 的句柄也好/路径也好。 解决不了就算了, 网上很多人都说很难解决,比较底层。 非常感谢你的答复。 与你的争吵动机就2个:1 发泄恶意删帖、白付出尽力学习了的情绪。2 告知其他人选择技术也要考虑发帖询问的问题。 就这样。 我会继续和 那个管理员死磕。 不关其他人的事。
高跟男爵
高跟男爵
非常感谢您的耐心回答! 你是个好管理员。 非常感谢
0
figer1
figer1
 
你这个不是我想要的。 鼠标点击任何文件/文件夹 能获得选择的文件/文件夹 的句柄也好/路径也好。 解决不了就算了, 网上很多人都说很难解决,比较底层。 非常感谢你的答复。 与你的争吵动机就2个:1 发泄恶意删帖、白付出尽力学习了的情绪。2 告知其他人选择技术也要考虑发帖询问的问题。 就这样。 我会继续和 那个管理员死磕。 不关其他人的事。
没什么难解决的,其他文件、文件夹的原理都是一样的,参考上面的代码。

你提问的心态可能就是直接伸手要个现成的结果,这也是版主删你帖的原因,技术交流论坛是交流具体的编码问题,不是免费的威客外网网直接去发需求,删你的帖是对的,这种问题就应当你自己动手去解决,不想解决问题、怕困难你写什么程序?

希望AAuto官网无论你怎么死磕,都不鸟你,因为天朝象你这样的伸手党,伸手就拿,张嘴就骂的太多了,真正能帮别人写几句代码的估计很多都是我这样经常无故被你这样的人乱骂的。

deadmau5
deadmau5
你愿意给就给人家,不愿意给,你恨伸手党, 你就不要搭理人家的帖子, 你回了人家又喷人家,你有意思吗, 呆逼? 我麻痹看不过去,就来喷你怎么了,呆逼,不服来约战啊,你个臭傻逼, 我不分分钟揍死你,傻逼。
高跟男爵
高跟男爵
老是把我往伸手党套。我从昨晚 研究到现在, 在公司都没做其他事情,就研究这个事。朋友圈也问了,MSDN 尽自己力量能看的都看了, 例子也看了 ,也尝试了,也做了。 我做J2EE的 25岁二线城市混到5位数月薪的码农 肯定不是那种太依赖别人的人。 整个开发过程就发了2个疑问帖子,因为winapi确实没积累 而且项目紧 aauto又有点不同。 不说了 你爱怎么说 怎么说吧
0
高跟男爵
高跟男爵

引用来自“figer1”的评论

问题没人回,自己问题解决不了,不要老是去找别人的原因,别人不欠你的。
问题没讲清楚,提醒你说清楚怕得罪你,如果是管理员好心删你的帖子即费时间还可能被你象刚才那样网上到处狂骂。如果好心帮你写了代码,一个费时间,费时间写出来可能还根本不是你想要的,即使偶尔有几个勤奋回答问题的,都被你这样的人骂怕了,所以也不轻易回答问题了。毕竟大家都很忙的,指责别人不帮你这前,看看你自己帮了多少人,帮别人义务写了多少代码。

就你这个问题来说,鼠标点?怎么点?点哪里?双击启动?还是单击桌面?你说你提个问题怎么没有刚才骂人那么口惹悬河的精明劲呢?

如果是取当前单击桌面的项目的绝对路径,AAuto代码如下:

import fsys.lnk;
import winex.desktop;

var listview = winex.desktop.listview;
var ind =  listview.getSelection()
io.open()
if ( ind ) { 
	var name = listview.getItemText(ind) 
	var path = fsys.searchFile(name,fsys.getSpecial(0 /*_CSIDL_DESKTOP*/)) 
	if( !path ){
		path = fsys.getSpecial(0 /*_CSIDL_DESKTOP*/,name + ".lnk") 
		
		if( ! ..io.exist(path) ) 
			path = fsys.getSpecial(0x19 /*_CSIDL_COMMON_DESKTOPDIRECTORY*/,name + ".lnk") 
			
		var lnk = fsys.lnk()
		lnk.load(path)
		path = lnk.path;
	}
	
	io.print("找到的完整路径",path )
}



如果是取其他程序的启动命令行里的参数,AAuto代码如下:

//外部CALL读取命令行
//列出所有已运行进程的命令行参数
import winex;
io.open()
 
//遍历所有窗口
for hwnd,title,theadId,processId in winex.each(   ) { 
	if(title != ""){ //如果标题不为空
	
		//在外部EXE进程创建函数    
		try{

			//一句代码创建CALL函数
			var getCommandLine_call = raw.remoteApi(processId,"string()"
               ,"Kernel32.dll","GetCommandLineA");

			//象API一样使用
			str = getCommandLine_call()
			io.print(processId,title,str)
		}
		
	} 	
}







不是伸手党 只是积累当~~  略懂 爱专研  不偷懒~

0
figer1
figer1

AAuto只是一个免费的开发工具,用的不爽就别用。
别想免费的用了再帮你免费的解决你的难题,码农就是个苦差事,自己的难题自己解决,五位数月薪这么好赚?!

不要想别人免费的解决你“昨天研究到今天晚上,满世界MSDN爬了都没人能解决”的问题别人微笑着帮你写上一晚上解决你的问题。

虽然我的确经常在开源中国上回一些新手帖子,但对你这种张嘴就骂,素质极差的人实在没有兴趣帮忙,更不要说其他人了,你看你在这里骂了一天了,除了我,都没有人理你,可见你是多么自恋了。

不要在这里说管理员删了你2个帖子,你话唠么说了一天也不累?!
删了你2个帖子,AAuto论坛还有4万多帖子,什么样的低级白痴问题都有,什么样的问题都有人耐心的回,但没有办法,我们生活在一个象你这样低素质、自我感觉良好、张嘴就骂的人太多的环境中,避免不了偶尔会删帖。

高跟男爵
高跟男爵
别说什么免费不免费。 从头到尾就在聊个不劳而获 你语文怎么学的 就这个可以说了吧。 不懂问就不劳而获·· 你真是神思维。 当然这都不是重点 你删除别人帖子干啥 要你们多管闲事 你不回答还不让别人回答了·· 问 和 答都是相互学习 你义务教育老是没教你?
高跟男爵
高跟男爵
高高在上 盛气凌人~~ 你多了不起 show出来看看咯。 小子 你也有你不懂的时候, 你别用百度 google 也别看书 询问。 有问题自己解决咯~ 看到你们这票管理者就想吐·· 真了不起 搞出个aauto。 我就没见到其他你们这样的。 算是开了眼 不然也不会跟你聊个半天。
高跟男爵
高跟男爵
不就是说了下aauto管理团队乱删除别人帖子, 有必要质疑别人能力么?你能力好强哦, 暴露下薪水只是说不是不专研的人,但这方面不懂。你又断章取义来说。 整个聊天过程中你基本都是避重就轻 断章取义的说一些问题,从来没有直面问题,也没一点以为自己团队有问题的反思。
高跟男爵
高跟男爵
我从头到尾都没骂哦,请截图。
0
figer1
figer1

另外楼上发的代码都不是我写的,抄的AAuto自带范例里的代码,
也不知道你说的花了很多时间,连现成的代码都没看是什么一个概念。

你不说死磕到底么,千万别放弃继续,要么骂的AAuto的管理员乖乖的跟你道歉,以后你想要什么给什么,你看免费软件就是这么苦逼,不听话,就毁其名字,臭其名声,使之无人用..........是吧?写个AAuto出来可能是比较麻烦的,毁掉一个AAuto对你来说轻而易举是吧?!牛逼!!!

要做不到这一点,你可千万别用你如此仇恨的AAuto这种不上档次的偏门语言,记住了,嘴上骂背后用,用了烂手

figer1
figer1
回复 @Aauto管理员真牛 : 不要激动,有话慢慢讲,请继续
高跟男爵
高跟男爵
看你的回复,前面倒是觉得有模有样,心智应该很成熟,后面就觉得和我也差不多 25岁左右的心智。 不跟你说那么多了。 aauto 就是 一群懂点winapi的人做的个类似易语言 VB的封装,然后高高在上 沾沾自喜,瞧不起哪些这方面不行的同行。 前面我还真没骂人,在这里 骂一句:“真TMD操D,玩你们的D去吧,国内就你们这种自以为事的人多了才TMD 技术喷子多·· 满口仁义道德 不喷你们喷谁··”
高跟男爵
高跟男爵
不知道是不是你写的一篇关于 aauto 比 nw-webkit 跟易做win开发的OSC文章。 我倒是现在非常不认同,不在于技术,在于技术带领的人一点肚量都没有。 技术说到底不算个啥 没必要沾沾自喜 高高在上。 对求学者 要么你不回答 要么你回答,但请别以自己的权利去阻断别人的提问。 你有什么权利呢?
高跟男爵
高跟男爵
不知道是不是你写的一篇关于 aauto 比 nw-webkit 跟易做win开发的OSC文章。 我倒是现在非常不认同,不在于技术,在于技术带领的人一点肚量都没有。 技术说到底不算个啥 没必要沾沾自喜 高高在上。 对求学者 要么你不回答 要么你回答,但请别以自己的权利去阻断别人的提问。 你有什么权利呢?
高跟男爵
高跟男爵
整个聊天记录 谁看了都知道 你一直在抓着所谓的不劳而获在夸夸其谈,自圆其说。但实际问题是, 别人发帖求学,你们恶意删帖。 就是个不懂的人想问懂的人问题,缺被恶霸破坏,求学者不甘心发泄和说明事实情况。 硬是活生生的被你们这群高高在上 自以为是 懂点这方面的人说的求学者什么 不劳而获~ 可笑 无知··
下一页
0
wention
wention

DragQueryPoint http://msdn.microsoft.com/EN-US/library/windows/desktop/bb776409(v=vs.85).aspx

我就看到这个 

你看看Windows Shell 吧 也许能找到你要的 

高跟男爵
高跟男爵
shell 之前有尝试过 没有·· 但是感谢
高跟男爵
高跟男爵
恩 3Q
0
deadmau5
deadmau5

我真tm想抽那傻逼, 麻痹,愿意帮就帮,不愿意帮,你麻痹就不要搭理人家好了,好特意进来喷人家, 麻痹,就是欠揍,欠骂, 个臭傻逼。


0
figer1
figer1

引用来自“得得得得尼玛”的评论

我真tm想抽那傻逼, 麻痹,愿意帮就帮,不愿意帮,你麻痹就不要搭理人家好了,好特意进来喷人家, 麻痹,就是欠揍,欠骂, 个臭傻逼。


呵呵,这么激动啊?!

不过第一:不要说脏话,如果你有理、理直气装,可以好好讲一样能达到你的目的。
第二:要诚实,我没搭理过他,是他在喷我,而且我发的每个帖子都进去狂骂,而且我没招他惹他,他自己说了给我留言我都没有回过他,我什么时候搭理过你呢?!
第三:还是要诚实,造谣污蔑担造虚假事实是恶意诽谤,这种人没有资格站在道德的制高点去“抽人家”

AAuto论坛刚看到一个帖子
http://bbs.aau.cn/forum.php?mod=viewthread&tid=12243&extra=
新手问题,小白问题,版主很耐心的回,很耐心的指导,是因为人家是版主的亲戚?长的比你讨人喜欢?! 这样的帖子在AAuto官网有4万多。

你觉得不好,就别去,觉得不好,就别用,
免费的软件,没有以任何形式赚你一分钱,让你看一个字的商业广告,单纯的免费,无论如何你说的理由多么的灿烂 - 都违背基本做人的逻辑。

关于你自己说的换小号的逻辑:大不了不要这个号,大不了换个号,你也许觉得AAuto作为一个软件产品,不能随便换名字,反正你不要脸,不要底线,拉AAuto一起死,你不亏什么,所以你可以随便骂是吧?!


这个逻辑不太对,你也可以趁别人不注意的时候偷东西,干任何无耻的事,如果你是这样一个人,的确,很多时候没有人能惩罚你,不过实在对不住你所说的五位数月薪,所以你还是要自重,要站在道德的制高点谴责别人,首先是自己要自重。


返回顶部
顶部