递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2077|回复: 7
打印 上一主题 下一主题

[视窗] 火山翻译易语言8行代码获取电脑即将关机重启注销动作报...

[复制链接]

59

主题

233

帖子

1068

积分

金牌会员

Rank: 6Rank: 6

积分
1068
跳转到指定楼层
楼主
发表于 2024-4-5 13:41:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
火山翻译易语言8行代码获取电脑即将关机重启注销动作编译报错
附:易语言源码和火山翻译代码源文件,大佬们看看是啥问题,
易语言代码已经编译测试了,功能正常。

即将注销关机重启信息获取.zip

20.91 KB, 下载次数: 8

回复

使用道具 举报

26

主题

1899

帖子

6920

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6920
来自 3#
发表于 2024-4-5 13:57:47 | 只看该作者
一、内存模块的用途是注入DLL,不是你这个用法,应该改用 取静态方法地址,你的函数要设置为静态;
二、不需要写 SetWindowLong 这么麻烦,在我的主窗口里,定义虚拟方法 消息过滤,然后在里面写就可以了。
而且应该用 SetWindowLongPtrW 才能兼容 64 位程序。

评分

参与人数 1金钱 +3 收起 理由
99101617 + 3

查看全部评分

回复

使用道具 举报

22

主题

286

帖子

2001

积分

金牌会员

Rank: 6Rank: 6

积分
2001
QQ
来自 4#
发表于 2024-4-5 14:28:44 | 只看该作者
多此一举


<火山程序 类型 = "通常" 版本 = 1 />

方法 我的主窗口_组件消息过滤 <接收事件 类型 = 整数 注释 = "当用户组件接收到任何Windows消息在其被实际处理前,本事件被发送."
        返回值注释 = "  返回0表示允许该Windows消息继续向后传递并处理,返回1表示该Windows" 返回值注释 = "消息已经被处理且无需后续处理.">
参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 窗口句柄 <类型 = 变整数 注释 = "提供消息所对应的本组件窗口句柄(HWND)">
参数 消息值 <类型 = 整数 注释 = "提供消息的具体值">
参数 消息参数1 <类型 = 变整数 注释 = "提供消息所附带的参数1的值">
参数 消息参数2 <类型 = 变整数 注释 = "提供消息所附带的参数2的值">
参数 消息地址 <类型 = 变整数 注释 = "提供消息的具体 MSG* 地址指针,用作备用.">
{
    常量 WM_QUERYENDSESSION <类型 = 整数 值 = 0x0011 注释 = "17">
    常量 ENDSESSION_LOGOFF <类型 = 整数 值 = 0x80000000 注释 = "用户正在注销">

    如果真 (消息值 == WM_QUERYENDSESSION)
    {
        如果真 (消息参数2 == ENDSESSION_LOGOFF)
        {
            信息框 ("阻止注销", 64, )
            返回 (1)
        }
        信息框 ("阻止关机重启", 64, )
        返回 (1)

    }
    返回 (0)
}

评分

参与人数 1金钱 +3 收起 理由
99101617 + 3

查看全部评分

回复

使用道具 举报

59

主题

233

帖子

1068

积分

金牌会员

Rank: 6Rank: 6

积分
1068
沙发
 楼主| 发表于 2024-4-5 13:43:19 | 只看该作者
哪位大佬懂得怎么获取电脑即将关机、重启、注销的消息,想在关机前软件做一些操作。
回复

使用道具 举报

59

主题

233

帖子

1068

积分

金牌会员

Rank: 6Rank: 6

积分
1068
5#
 楼主| 发表于 2024-4-5 15:36:19 | 只看该作者

感谢前面两位大佬的解惑,现已解决这个问题,已经进入我的知识盲区了,后面再多了解了解窗口消息。
回复

使用道具 举报

5

主题

245

帖子

1358

积分

金牌会员

Rank: 6Rank: 6

积分
1358
6#
发表于 2024-4-5 15:45:15 来自手机 | 只看该作者
我想拦截一个外部程序即将退出的消息要怎么弄呢.。比如qq点击了退出,我想做点什么在让他退出
回复

使用道具 举报

22

主题

286

帖子

2001

积分

金牌会员

Rank: 6Rank: 6

积分
2001
QQ
7#
发表于 2024-4-5 15:47:36 | 只看该作者
guangye1 发表于 2024-4-5 15:45
我想拦截一个外部程序即将退出的消息要怎么弄呢.。比如qq点击了退出,我想做点什么在让他退出 ...

hook ExitProcess   远程HOOK或者注入DLL再HOOK
回复

使用道具 举报

5

主题

245

帖子

1358

积分

金牌会员

Rank: 6Rank: 6

积分
1358
8#
发表于 2024-4-5 16:29:24 | 只看该作者
793359277 发表于 2024-4-5 15:47
hook ExitProcess   远程HOOK或者注入DLL再HOOK

收到。我觉得简单一点也是注入dll在hook.????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-23 17:37 , Processed in 0.105430 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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