后台判断程序文件是否可以正确启动

来源:互联网 发布:软件系统业务流程图 编辑:程序博客网 时间:2024/06/14 10:48

首先这个不是什么黑客程序,而是本渣闲得蛋疼写的,用到 WinAPI。

我想根据一个程序的文件名来在硬盘中搜索这个程序,不考虑故意有人把别的程序名改成我要找的程序,这样测不出来

就比如有个游戏程序 Game.exe ,游戏嘛大多数需要很多其他的文件,大多数时候缺少的时候运行都会弹出 “缺少xxx.xxx程序无法启动” 这类的错误对话框,而我要做的就是在不弹出任何错误提示也不进入游戏界面的情况下找到那个“真正”的游戏程序。


加入通过遍历获取了”可能正确“的程序全路径 fullPath,然后使用如下方法:

            string CommandLine = "";            PROCESS_INFORMATION pInfo = new PROCESS_INFORMATION();            STARTUPINFO sInfo = new STARTUPINFO();            sInfo.cb = Marshal.SizeOf(sInfo);            sInfo.dwFlags = (int)dwFlags.STARTF_USESHOWWINDOW;            sInfo.wShowWindow = (short)nCmdShow.SW_HIDE;            SECURITY_ATTRIBUTES pSec = new SECURITY_ATTRIBUTES();            SECURITY_ATTRIBUTES tSec = new SECURITY_ATTRIBUTES();            pSec.nLength = Marshal.SizeOf(pSec);            tSec.nLength = Marshal.SizeOf(tSec);            retValue = WinAPI.CreateProcess(                fullPath,                CommandLine,                ref pSec,                ref tSec,                false,                (uint)PriorityClass.NORMAL_PRIORITY_CLASS,                IntPtr.Zero,                null,                ref sInfo,                out pInfo);            int error = Marshal.GetLastWin32Error();            WinAPI.TerminateProcess(pInfo.hProcess, 0);            if (error != 0)            {                //throw new Win32Exception(error);                //false;            }            else            {                //true;                Console.WriteLine("Find In: {0}.", fullPath);            }


坑完了哭


0 0
原创粉丝点击