导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

64位电脑中的32位winfrom程序怎么弄通过一个窗口句柄访问一个64位窗口的文件路径

ahui_net 北京百森咨询有限公司 技术总监  2012-02-15 09:48:12
同上。
64位电脑中的32位winfrom程序怎么弄通过一个窗口句柄访问一个64位窗口的文件路径,比如64位的记事本文件路径。

我通过句柄转进程id,用api和Process.MainModule.FileName 都提示 “32 位进程无法访问64 位进程的模块”

有其他什么好方法吗,请教。
...全文
202 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahui_net 2012-02-21
这个是不支持的。
回复
叶子 2012-02-19
winform程序,编译一个32位的版本,再编译一个64位的版本不行吗?
回复
叶子 2012-02-19
[Quote=引用 1 楼 41417 的回复:]
另外请教下为啥你能直接发200分的帖呢?
[/Quote]

一角到三角用户 最大可发100分帖子;
四角至一星用户 最大可发200分帖子;
两星以上用户 最大可发300分帖子。

以上内容来自:CSDN社区帮助中心


回复
ahui_net 2012-02-19
[Quote=引用 8 楼 foreachif 的回复:]

行否?
或者也可以使用 WMI 或者其它方式枚举出当前所有的进程pID及其文件路径,再比对pID找到对应的文件路径
[/Quote]
你好,foreachif,测试了一下不行。
现在就是一读此64位进程就抛出异常。
回复
WAN 2012-02-19
楼主可以试一试,毕竟我的XP是32位的,不支持也正常
回复
WAN 2012-02-19
.NET封装的WMI,它在我的电脑上直接抛出,Win32_Process才行,唉~
//需添加引用“System.Management.dll”
using System.Management;

namespace Language_Test
{
public class Sample
{
public static void Main(string[] args)
{
ManagementObjectSearcher s =
new ManagementObjectSearcher("SELECT * FROM Win64_Process");

foreach (ManagementObject process in s.Get())
{
Console.WriteLine(process.ToString());
}
Console.ReadKey();
}
}
}
回复
pmaikej 2012-02-16
不了解,接分。。
回复
h705c 2012-02-16
人家有外挂
回复
busymj 2012-02-16

没遇到过这样的需求,感觉上应该是挺麻烦的。

下面文章中有详细的讨论,你有兴趣就看一下吧,希望对你有帮助。

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/23527505-236f-4bba-99ae-f8bece281d44

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/4ce40b19-c442-4412-94b2-1ed24bdb9386?prof=required

另外请教下为啥你能直接发200分的帖呢?

回复
WAN 2012-02-16
试一试 GetProcessImageFileName 这个API
回复
ahui_net 2012-02-16
很多年没用过的自己顶了。
回复
WAN 2012-02-16
行否?
或者也可以使用 WMI 或者其它方式枚举出当前所有的进程pID及其文件路径,再比对pID找到对应的文件路径
回复
WAN 2012-02-16
行否?
或者也可以使用 WMI 或者其它方式枚举出当前所有的进程pID及其文件路径,再比对pID找到对应的文件路径
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.