好友
阅读权限30
听众
最后登录1970-1-1
|
gksj
发表于 2022-9-7 13:05
编译环境:VS2013,.NET4.5
目标进程绝对路径:D:\Program Files\Tencent\QQGame\MiniGames\Tetris\Tetris.exe
源码:
internal static void Chk检测游戏进程()
{
Process[] ps = Process.GetProcessesByName("Tetris");
if (ps.Length > 0)
{
ExePath = ps[ps.Length-1].MainModule.FileName ;
}
}
internal static DateTime LastStartTime = DateTime.MinValue;
internal static string ExePath = string.Empty;
internal static string ExeTitle = string.Empty;
当我在编译程序的电脑中获取到的ExePath字符串为:“D:\Program Files\Tencent\QQGame\MiniGames\Tetris\Tetris.exe”
但是在其他电脑中获取到的路径就变成了“D:\PROGRA~1\Tencent\QQGame\MINIGA~1\Tetris\Tetris.exe”
我想问的是能不能让他强制获取长文件名(禁止~1的短文件名出现)
这个是系统环境变量的问题还是NET的问题?
如果实在是没有办法我想尝试用
[DllImport("kernel32.dll")]static extern uint GetLongPathName(string shortname, StringBuilder longnamebuff, uint buffersize);
来处理。 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|