鱼C论坛

 找回密码
 立即注册
查看: 3561|回复: 4

VS2010 vs VS6.0

[复制链接]
发表于 2012-2-27 19:53:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        HWND hwnd=::FindWindow(NULL,"Mygame");
        DWORD pid;
        ::GetWindowThreadProcessId(hwnd,&pid);
        HANDLE  hp=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
        DWORD tid;
        CreateRemoteThread(hp,NULL,0,(LPTHREAD_START_ROUTINE)0x401800 ,NULL,0,&tid);

一样的代码,为何在VS2010编译出来的执行档始终没有办法执行成功vs6.0却可以
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-2-27 23:49:00 | 显示全部楼层
你看看代码出现错误在那一行,然后把那行代码重新写过。在API后面加个A。(如:GetWindowThreadProcessId后面加个A后GetWindowThreadProcessIdA)如果没有记错就是这样的.写代码的时候先打双冒号然后看着提示的API选择!
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-2-28 09:36:08 | 显示全部楼层
一样不行说,vs2010 和 vs6.0一模一样的程式码,都是可以通过编译的,但是vs6.0使用的执行檔有产生效果,但是vs2010完全没反应:Q
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-2-28 11:15:34 | 显示全部楼层
本帖最后由 星愿 于 2012-2-28 11:33 编辑

找到问题了关键在OpenProcess上面

#if (NTDDI_VERSION >= NTDDI_VISTA)
#define PROCESS_ALL_ACCESS        (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \
                                   0xFFFF)
#else
#define PROCESS_ALL_ACCESS        (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \
                                   0xFFF)
#endif

如果改成相反就可以成功了

有人知道是什么原因吗,还是微软写错了:Q
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-26 04:07:29 | 显示全部楼层
是执行CreateRemoteThread时目标程序崩溃掉吗?
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-11 17:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表