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

首先这个不是什么黑客程序,而是本渣闲得蛋疼写的,用到 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);
            }


坑完了 哭


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值