总结一下各种语言按钮事件的找法

合集下载

Java标签、按钮和按钮事件简介

Java标签、按钮和按钮事件简介

Java标签、按钮和按钮事件简介Java标签、按钮和按钮事件简介标签和按钮也许是图形界面中最常见的两种组件,按钮又总是与激发动作事件有关。

标签标签(JLabel)是最简单的Swing组件。

标签对象的作用是对位于其后的界面组件作说明。

可以设置标签的属性,即前景色,背景色、字体等,但不能动态地编辑标签中的文本。

程序关于标签的基本内容有以下几个方面:1.声明一个标签名;2.创建一个标签对象;3.将标签对象加入到某个容器。

JLabel类的主要构造方法是:1.JLabel ():构造一个无显示文字的标签;2.JLabel (String s):构造一个显示文字为s的标签;3.JLabel(String s, int align):构造一个显示文字为s的标签。

align为显示文字的水平方式,对齐方式有三种:左对齐:JLabel.LEFT中心对齐:JLabel.CENTER右对齐:JLabel.RIGHTJLabel类的其他常用方法是:1.setText(String s):设置标签显示文字;2.getText():获取标签显示文字;3.setBackground(Color c):设置标签的背景颜色,默认背景颜色是容器的背景颜色;4.setForeground(Color c):设置标签上的文字的颜色,默认颜色是黑色。

按钮按钮(JButton)在界面设计中用于激发动作事件。

按钮可显示文本,当按钮被激活时,能激发动作事件。

JButton常用构造方法有:1.JButton():创建一个没有标题的按钮对象;2.JButton(String s):创建一个标题为s的按钮对象。

JButton类的其他常用方法有:1.setLabel(String s):设置按钮的标题文字。

2.getLabel():获取按钮的标题文字。

3.setMnemonic(char mnemonic):设置热键4.setToolTipText(String s):设置提示文字。

python中button的用法

python中button的用法

python中button的用法Python中Button的用法Python是一种广泛使用的高级编程语言,凭借其简洁易读的语法和强大的功能,赢得了广大开发者的喜爱。

在Python中,Button(按钮)是一种常用的GUI元素,用于触发与之关联的操作。

本文将介绍Python中Button的用法,包括创建Button、设置其属性以及绑定事件。

创建Button在Python中,我们可以使用tkinter库创建Button。

下面是一个简单的示例代码,演示如何创建一个Button并显示在窗口上:import tkinter as tkdef click():print("Button clicked!")window = ()button = (window, text="Click me!", command=click)()()在上面的代码中,我们首先导入了tkinter库,并定义了一个名为click的函数,该函数用于处理Button点击事件。

然后,我们创建了一个Tk对象,表示一个顶级窗口。

接着,我们使用Button类创建了一个名为button的按钮,设置了其显示文本为”Click me!“,并将click函数绑定到按钮的点击事件上。

最后,我们通过pack方法将按钮显示在窗口上。

设置Button属性除了设置按钮的显示文本和绑定事件外,我们还可以设置按钮的其他属性,以满足不同的需求。

设置按钮大小通过设置Button的width和height属性,我们可以指定按钮的宽度和高度。

下面是一个示例代码:button = (window, text="Click me!", width=10, heigh t=2)在上述代码中,我们将按钮的宽度设置为10个字符的宽度,高度设置为2个字符的高度。

设置按钮颜色Button的背景色和前景色可以通过设置bg和fg属性来实现。

JavaScript中按键事件的e.keyCode e.which e.charCode

JavaScript中按键事件的e.keyCode  e.which  e.charCode

JavaScript中按键事件的e.keyCodee.whiche.charCode1、浏览器的按键事件浏览器有3种按键事件——keydown,keypress和keyup,分别对应onkeydown、onkeypress和onkeyup3个事件句柄。

一个典型的按键会产生所有这三种事件,依次是keydown-->keypress-->keyup。

[html]view plaincopyprint?1.<input type="text"id="text">2.<script>3.document.getElementById("text").onkeypress = function() {4.console.log("keypress");5.};6.document.getElementById("text").onkeyup = function() {7.console.log("keyup");8.};9.document.getElementById("text").onkeydown = function() {10.console.log("keydown");11.};12.</script>控制台输出:keydownkeypresskeyup2、浏览器的兼容性(1)FireFox、Opera、Chrome事件对应的函数有一个隐藏的变量e,表示发生事件。

e有一个属性e.which指示哪个键被按下,给出该键的索引值(按键码)。

静态函数String.fromCharCode()可以把索引值(按键码)转化成该键对应的的字符。

eg:[html]view plaincopyprint?1.<input type="text"id="text">2.<script>3.document.getElementById("text").onkeypress = function(e) {4.alert("按键码: " + e.which + " 字符: " + String.fromCharCode(e.which));5.};6.</script>FireFox、Opera、Chrome中输入:a输出:按键码:97 字符:a(2)IEIE不需要e变量,window.event表示发生事件。

java的perform用法

java的perform用法

一、介绍perform方法在Java编程语言中,perform方法是一种用于执行特定操作的重要方法。

perform方法可以用于执行诸如事件处理、动作执行等操作,它通常用于处理用户界面的各种事件。

二、perform方法的基本语法perform方法通常是作为接口的一部分,它的基本语法如下所示:```void perform()```在上述语法中,perform方法通常不会返回任何值,它主要用于执行特定的操作。

三、perform方法的常见用法perform方法在Java编程中有一些常见的用法,下面列举了其中的一些:1. 用于按钮点击事件处理perform方法经常用于处理用户界面中按钮的点击事件。

当用户点击按钮时,perform方法会被触发,从而执行相应的操作。

2. 用于菜单项点击事件处理perform方法也可以用于处理菜单项的点击事件。

当用户点击菜单项时,perform方法会被调用,执行相应的操作。

3. 用于动作执行perform方法还可以用于执行某些动作,比如在游戏开发中,perform方法可以用于执行玩家的移动、攻击等动作。

4. 用于事件处理perform方法还可以用于处理各种其他的事件,比如鼠标事件、键盘事件等。

四、perform方法的实际应用举例下面是一个简单的示例,展示了perform方法在Java编程中的实际应用:```javaimport java.awt.*;import java.awt.event.*;public class ButtonTest extends Frame {Button btn;public ButtonTest() {btn = new Button("Click me");btn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {// 执行点击按钮的操作}});}}```在上面的示例中,我们创建了一个按钮,并注册了一个ActionListener,当用户点击按钮时,perform方法会被调用,执行相应的操作。

VBA 中的事件处理与自动执行方法

VBA 中的事件处理与自动执行方法

VBA 中的事件处理与自动执行方法VBA(Visual Basic for Applications)是一种强大的宏语言,可以用于编写自动化任务和处理事件。

在VBA中,事件处理和自动执行方法是两个重要的概念。

事件处理允许我们捕获和响应特定事件的发生,而自动执行方法则可以让我们在特定的条件或时机下自动执行一系列操作。

在本文中,我将介绍一些常见的VBA事件处理和自动执行方法,并为每个方法提供实际应用的示例。

1. 按钮单击事件处理按钮单击事件是VBA中最常见的事件之一。

它允许我们在用户单击按钮的时候执行特定的操作。

例如,我们可以编写一个按钮单击事件处理程序,在用户单击按钮时弹出一个消息框显示一条信息。

下面是一个示例:```vbaPrivate Sub Button1_Click()MsgBox "Hello, World!"End Sub```在上面的示例中,当用户单击名为 "Button1" 的按钮时,会调用`Button1_Click` 事件处理程序。

该事件处理程序使用 `MsgBox` 函数显示一条消息框,其中包含 "Hello, World!" 的文本。

2. 工作表选择事件处理工作表选择事件处理允许我们在用户选择工作表时执行一些操作。

例如,我们可以编写一个工作表选择事件处理程序,在用户选择某个工作表时自动隐藏其他工作表。

下面是一个示例:```vbaPrivate Sub Worksheet_Activate()Dim ws As WorksheetFor Each ws In WorksheetsIf <> Thenws.Visible = xlSheetHiddenEnd IfNext wsEnd Sub```在上面的示例中,当用户选择某个工作表时,会调用 `Worksheet_Activate` 事件处理程序。

该事件处理程序遍历所有工作表,将除当前选择的工作表外的其他工作表隐藏起来。

OD另一个查看易语言字符串

OD另一个查看易语言字符串

OD另一个查看易语言字符串2009年05月07日星期四上午12:32刚看小生的教程里面使用的~ 具体的步骤如下:1.OD载入程序直接查找字符串,在里面找到krnln.fne库函数2.双击krnln.fne过去,往下啦找到一个CALL EAX,F4运行到此处3.F7跟进这个CALL,往下单步几下,可以看到一个JMP EAX4.F4运行到JMP EAX在单步F8,在查找字符串即可收集总结的破解易语言的小方法易语言破解的小方法:1、按钮事件FF 55 FC OD载入,F9运行,填好用户名与注册码后,ALT+E选中krnln.fnr,双击进入krln.fnr的代码段,(也可以用下面2的方法到krnln 代码段)CTRL+B搜索FF 55 FC,在找到的CALL上面下断,然后点程序的“注册”按钮,发现断下易语言破解的小方法:1、按钮事件FF 55 FCOD载入,F9运行,填好用户名与注册码后,ALT+E选中krnln.fnr,双击进入krln.fnr的代码段,(也可以用下面2的方法到krnln代码段)CTRL+B搜索FF55 FC,在找到的CALL上面下断,然后点程序的“注册”按钮,发现断下!F7跟进此CALL就是按钮事件!,不管怎么找,只要是在krnln.fnr代码段(一般就是100开头的)就可以CTRL+B搜索FF 55 FC。

2、找字符串OD载入,ALT+M,在第二个.data段F2下断,F9运行。

中断在krnln库文件代码里,F8单步过下面的JMP就到程序领空了,这时就可以找字符串了。

3、Ecode段ALT+M 如果有Ecode这个代码段,在这个段上下断运行后,中断后的就是按钮事件代码段。

199条建筑设计知识1. 公共建筑通常以交通、使用、辅助三种空间组成2. 美国著名建筑师沙利文提出的名言‘形式由功能而来’3. 密斯.凡.德.罗设计的巴塞罗那博览会德国馆采用的是‘自由灵活的空间组合’开创了流动空间的新概念4. 美国纽约赖特设计的古根海姆美术馆的展厅空间布置采用形式是串联式5. 电影放映院不需采光6. 点式住宅可设天井或平面凹凸布置可增加外墙面,有利于每层户数较多时的采光和通风7. 对结构形式有规定性的有大小和容量、物理环境、形状的规定性8. 功能与流线分析是现代建筑设计最常用的手段9. 垂直方向高的建筑需要考虑透视变形的矫正10. 橙色是暖色,而紫色含有蓝色的成分,所以偏冷;青色比黄色冷、红色比黄色暖、蓝色比绿色冷11. 同样大小冷色调较暖色调给人的感觉要大12. 同样距离,暖色较冷色给人以靠近感13. 为保持室内空间稳定感,房间的低处宜采用低明度色彩14. 冷色调给人以幽雅宁静的气氛15. 色相、明度、彩度是色彩的三要素;三元色为红、黄、蓝16. 尺度的概念是建筑物整体或局部给人的视角印象大小和其实际大小的关系17. 美的比例,必然正确的体现材料的力学特征18. 不同文化形成独特的比例形式19. 西方古典建筑高度与开间的比例,愈高大愈狭长,愈低矮愈宽阔20. ‘稳定’所涉及的要素是上与下之间的相对轻重关系的处理21. 人眼观赏规律H 18°~45°局部、细部2H 18°~27°整体3H <18°整体及环境22. 黄金分隔比例为1:1.61823. 通风屋面只能隔离太阳辐射不能保温,适宜于南方24. 总图布置要因地制宜,建筑物与周围环境之间关系紧凑,节约因地;适当处理个体与群体,空间与体形,绿化和小品的关系;合理解决采光、通风、朝向、交通与人流的组织25. 热水系统舒适稳定适用于居住建筑和托幼蒸汽系统加热快,适用于间歇采暖建筑如会堂、剧场26. 渐变具有韵律感27. 要使一座建筑显得富有活力,形式生动,在构图中应采用对比的手法对比的手法有轴线对比、体量对比、方向对比、虚实对比、色彩对比28. 要使柱子看起来显得细一些,可以采用暗色和冷色29. 巴西国会大厅在体型组合中采用了对比与协调的手法30. 展览建筑应使用穿套式的空间组合形式31. 室外空间的构成,主要依赖于建筑和建筑群体组合32. 在意大利威尼斯的圣马可广场的布局中,采用了强调了各种空间之间的对比33. 当坡地坡度较缓时,应采用平行等高线布置34. 建筑的有效面积=建筑面积-结构面积35. 加大开窗面积的方法来解决采光和通风问题较易办到36. 中国古代木结构大致可分为抬梁式、穿斗式和井干式三种37. 建筑构图原理的基本范畴有主从与重点、对比与呼应、均衡与稳定、节奏与韵律和比例与尺度38. 建筑构图的基本规律是多样统一39. 超过8层的建筑中,电梯就成为主要的交通工具了40. 建筑的模数分为基本模数、扩大模数和分模数41. 建筑楼梯梯段的最大坡度不宜超过38°42. 住宅起居室、卧室、厨房应直接采光,窗地比为1/7,其他为1/1243. 住宅套内楼梯梯段的最小净宽两边墙的0.9M,一边临空的0.75M住宅室内楼梯踏步宽不应小于0.22M,踏步高度不应小大0.20M44. 住宅底层严禁布置火灾危险性甲乙类物质的商店,不应布置产生噪声的娱乐场所45. 地下室、贮藏室等房间的最低净高不应低于2.0米46. 室内坡道水平投影长度超过15米时,宜设休息平台47. 外墙内保温所占面积不计入使用面积烟道、风道、管道井不计入使用面积阳台面积不计入使用面积壁柜应计入使用面积48. 旋转楼梯两级的平面角度不大于10度,且每级离内侧扶手中心0.25处的踏步宽度要大于0.22米49. 两个安全出口之间的净距不应小于5米50. 楼梯正面门扇开足时宜保持0.6米平台净宽,侧墙门口距踏步不宜小于0.4米,其门扇开足时不应减少梯段的净宽35. 加大开窗面积的方法来解决采光和通风问题较易办到36. 中国古代木结构大致可分为抬梁式、穿斗式和井干式三种37. 建筑构图原理的基本范畴有主从与重点、对比与呼应、均衡与稳定、节奏与韵律和比例与尺度38. 建筑构图的基本规律是多样统一39. 超过8层的建筑中,电梯就成为主要的交通工具了40. 建筑的模数分为基本模数、扩大模数和分模数41. 建筑楼梯梯段的最大坡度不宜超过38°42. 住宅起居室、卧室、厨房应直接采光,窗地比为1/7,其他为1/1243. 住宅套内楼梯梯段的最小净宽两边墙的0.9M,一边临空的0.75M住宅室内楼梯踏步宽不应小于0.22M,踏步高度不应小大0.20M44. 住宅底层严禁布置火灾危险性甲乙类物质的商店,不应布置产生噪声的娱乐场所45. 地下室、贮藏室等房间的最低净高不应低于2.0米46. 室内坡道水平投影长度超过15米时,宜设休息平台47. 外墙内保温所占面积不计入使用面积烟道、风道、管道井不计入使用面积阳台面积不计入使用面积壁柜应计入使用面积48. 旋转楼梯两级的平面角度不大于10度,且每级离内侧扶手中心0.25处的踏步宽度要大于0.22米49. 两个安全出口之间的净距不应小于5米50. 楼梯正面门扇开足时宜保持0.6米平台净宽,侧墙门口距踏步不宜小于0.4米,其门扇开足时不应减少梯段的净宽35. 加大开窗面积的方法来解决采光和通风问题较易办到36. 中国古代木结构大致可分为抬梁式、穿斗式和井干式三种37. 建筑构图原理的基本范畴有主从与重点、对比与呼应、均衡与稳定、节奏与韵律和比例与尺度38. 建筑构图的基本规律是多样统一39. 超过8层的建筑中,电梯就成为主要的交通工具了40. 建筑的模数分为基本模数、扩大模数和分模数41. 建筑楼梯梯段的最大坡度不宜超过38°42. 住宅起居室、卧室、厨房应直接采光,窗地比为1/7,其他为1/1243. 住宅套内楼梯梯段的最小净宽两边墙的0.9M,一边临空的0.75M住宅室内楼梯踏步宽不应小于0.22M,踏步高度不应小大0.20M44. 住宅底层严禁布置火灾危险性甲乙类物质的商店,不应布置产生噪声的娱乐场所45. 地下室、贮藏室等房间的最低净高不应低于2.0米46. 室内坡道水平投影长度超过15米时,宜设休息平台47. 外墙内保温所占面积不计入使用面积烟道、风道、管道井不计入使用面积阳台面积不计入使用面积壁柜应计入使用面积48. 旋转楼梯两级的平面角度不大于10度,且每级离内侧扶手中心0.25处的踏步宽度要大于0.22米49. 两个安全出口之间的净距不应小于5米50. 楼梯正面门扇开足时宜保持0.6米平台净宽,侧墙门口距踏步不宜小于0.4米,其门扇开足时不应减少梯段的净宽51. 入地下车库的坡道端部宜设挡水反坡和横向通长雨水篦子52. 室内台阶宜150*300;室外台阶宽宜350左右,高宽比不宜大于1:2.553. 住宅公用楼梯踏步宽不应小于0.26M,踏步高度不应大于0.175M54. 梯段宽度不应小于1.1M(6层及以下一边设栏杆的可为1.0M),净空高度2.2M55. 休息平台宽度应大于梯段宽度,且不应小于1.2M,净空高度2.0M56. 梯扶手高度0.9M,水平段栏杆长度大于0.5M时应为1.05M57. 楼梯垂直杆件净空不应大于0.11M,梯井净空宽大于0.11M时应采取防护措施58. 门洞共用外门宽1.2M,户门卧室起居室0.9M,厨房0.8M,卫生间及阳台门0.7M,所有门洞高为2.0M59. 住宅层高不宜高于2.8M60. 卧室起居室净高≥2.4M,其局部净高≥2.1M(且其不应大于使用面积的1/3)61. 利用坡顶作起居室卧室的,一半面积净高不应低于2.1M利用坡顶空间时,净高低于1.2M处不计使用面积;1.2--2.1M计一半使用面积;高于2.1M全计使用面积62. 放家具墙面长3M,无直接采光的厅面积不应大于10M263. 厨房面积Ⅰ、Ⅱ≥4M2;Ⅲ、Ⅳ≥5M264. 厨房净宽单面设备不应小于1.5M;双面布置设备间净距不应小于0.9M65. 对于大套住宅,其使用面积必须满足45平方米66. 住宅套型共分四类使用面积分别为34、45、56、68M267. 单人卧室≥6M2;双人卧室≥10M2;兼起居室卧室≥12M2;68. 卫生间面积三件3M2;二件2--2.5M2;一件1.1M269. 厨房、卫生间净高2.2M70. 住宅楼梯窗台距楼地面净高度低于0.9米时,不论窗开启与否,均应有防护措施71. 阳台栏杆净高1.05M;中高层为1.1M(但要<1.2);杆件净距0.1172. 无外窗的卫生间应设置防回流构造的排气通风道、预留排气机械的位置、门下设进风百叶窗或与地面间留出一定缝隙73. 每套应设阳台或平台、应设置晾衣设施、顶层应设雨罩;阳台、雨罩均应作有组织排水;阳台宜做防水;雨罩应做防水74. 寒冷、夏热冬冷和夏热冬暖地区的住宅,西面应采取遮阳措施75. 严寒地区的住宅出入口,各种朝向均应设防寒门斗或保温门76. 住宅建筑中不宜设置的附属公共用房有锅炉房、变压器室、易燃易爆化学物品商店但有厨房的饮食店可设77. 住宅设计应考虑防触电、防盗、防坠落78. 跃层指套内空间跨跃两楼层及以上的住宅79. 在坡地上建住宅,当建筑物与等高线垂直时,采用跌落方式较为经济80. 住宅建筑工程评估指标体系表中有一级和二级指标81. 7层及以上(16米)住宅必须设电梯82. 宿舍最高居住层的楼地面距入口层地面的高度大于20米时,应设电梯83. 医院病房楼,设有空调的多层旅馆,超过5层的公建室内疏散楼梯,均应设置封闭楼梯间(包括首层扩大封闭楼梯间)设歌舞厅放映厅且超过3层的地上建筑,应设封闭楼梯间。

按钮单击事件的四种方法

按钮单击事件的四种方法

按钮单击事件的四种方法方法一:使用HTML的onclick属性```<button onclick="myFunction(">点击按钮</button><script>function myFunctioalert("Hello World!");</script>```上述代码中,点击按钮时会弹出一个含有"Hello World!"的警示框。

方法二:使用JavaScript的addEventListener方法除了使用HTML的onclick属性,也可以使用JavaScript的addEventListener方法来绑定按钮的单击事件。

这种方法的优势在于可以在一个元素上同时绑定多个事件处理函数。

例如:```<button id="myButton">点击按钮</button><script>document.getElementById("myButton").addEventListener("click", myFunction);function myFunctioalert("Hello World!");</script>```在上述代码中,通过getElementById方法获取到按钮元素,并使用addEventListener方法绑定了一个名为myFunction的函数作为按钮的单击事件处理函数。

方法三:使用jQuery的click方法当使用jQuery库时,可以使用它提供的click方法来实现按钮的单击事件。

通过选择器选取按钮元素,并使用click方法绑定事件处理函数。

例如:```<button id="myButton">点击按钮</button><script>$("#myButton").click(functionalert("Hello World!");});</script>```上述代码中,通过在HTML文档中引入jQuery库,然后使用click方法绑定一个匿名函数作为按钮的单击事件处理函数。

电脑键盘符号使用方法

电脑键盘符号使用方法

电脑键盘符号使用方法电脑键盘符号是用来表示特殊字符或执行特殊的功能的符号。

它们在不同的操作系统和应用程序中可能有不同的用法和含义。

在本文中,我们将介绍一些常见的键盘符号及其使用方法,以帮助用户更好地理解和使用它们。

1. ~ 波浪号:在英文输入状态下,按下Shift键加波浪号键,可以输入英文中常用的缩写,比如“~”表示“approximately”(大约),“~”还可以在一些编程语言中表示取反运算符。

2. ` 反引号:在英文输入状态下,按下反引号键,可以输入一些特殊字符,比如“`”表示“grave accent”(重音符),在一些编程语言中通常用于引用变量或函数名。

3. ! 感叹号:在英文输入状态下,按下Shift键加感叹号键,可以输入感叹句号“!”。

在一些编程语言中,感叹号通常用于表示逻辑非运算符。

4. @ at符号:在英文输入状态下,按下Shift键加at符号键,可以输入“@”符号。

“@”符号通常用于电子邮件地址中,分隔用户名和域名。

5. # 井号:在英文输入状态下,按下Shift键加井号键,可以输入井号“#”符号。

在一些编程语言中,井号通常用于表示注释。

6. $ 美元符号:在英文输入状态下,按下Shift键加美元符号键,可以输入美元符号“$”。

美元符号通常用于表示货币单位。

7. % 百分号:在英文输入状态下,按下Shift键加百分号键,可以输入百分号“%”。

百分号通常用于表示百分比。

8. ^ 脱字符:在英文输入状态下,按下Shift键加脱字符号键,可以输入脱字符号“^”。

在一些编程语言中,脱字符号通常用于表示异或运算符。

9. & “和”符号:在英文输入状态下,按下Shift键加和符号键,可以输入和符号“&”。

在一些编程语言中,和符号通常用于表示按位与运算符。

10. * 星号:在英文输入状态下,按下Shift键加星号键,可以输入星号“*”。

星号通常用于表示乘法运算符。

11. ( 和 ) 左右括号:按下对应的括号键,可以输入左右括号。

swift语言button用法

swift语言button用法

swift语言button用法Button类型Swift中提供两种主要的button类型:UIButton:标准button控件,提供各种自定义选项,如标题、背景色和边框。

UIBarButtonItem:主要用于导航栏中的按钮,其大小和外观更紧凑。

初始化Button创建button有两种主要方法:代码初始化:使用`init()`方法,传入适当的类型参数和配置项。

Interface Builder:使用Interface Builder工具,通过可视化界面创建和配置button。

Button属性Button具有许多属性,用于自定义其外观和行为,包括:titleLabel:显示button标题的UILabel对象。

tintColor:button中控件(如标题和背景)的颜色。

backgroundColor:button的背景色。

isEnabled:指示button是否可交互。

isHidden:指示button是否可见。

Button事件可以为button添加事件处理程序,以响应用户交互,例如点击或触摸。

最常用的事件处理程序是:addTarget(action:for:):将一个动作(通常是一个方法)附加到一个指定的事件上。

removeTarget(_:action:for:):从button中删除一个动作。

Button样式Button可以通过外观样式进行自定义,包括:Standard:标准矩形button。

System:系统提供的预定义button样式,例如圆角或边框。

Custom:使用代码或Interface Builder创建的自定义button样式。

UIBarButtonItemUIBarButtonItem是一种特殊类型的button,主要用于导航栏。

它具有以下特点:紧凑大小:设计为适合导航栏的紧凑空间。

自定义视图:可以包含自定义视图,例如图像或UILabel。

目标-动作处理:与UIButton类似,可以使用`target-action`机制处理事件。

Android按钮单击事件的四种常用写法总结

Android按钮单击事件的四种常用写法总结
您可能感兴趣的文章:
Android 使用 Intent 传递数据的实现思路与代码 Android 不同 Activity 间数据的传递 Bundle 对象的应用 Android 系列之 Intent 传递对象的几种实例方法 Android 学习笔记--通过 Application 传递数据代码示例
} });
btn2.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
// TODO Auto-generated method stub Toast tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT); tst.show(); } }); } }
// 注意 这里没有 @Override 标签 public void onClick(View v) {
// TODO Auto-generated method stub switch (v.getId()) { case R.id.button1:
tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT); tst.show(); break; case R.id.button2: tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT); tst.show(); break; default: break; } } }
xml 文件代码如下:

OD各种编程语言查找按钮事件

OD各种编程语言查找按钮事件

一、VB程序其实,VB的按纽事件的找法是最为普遍的,也就是大家所谓的万能断点.其实也不仅仅是针对按纽事件,还有很多其他的用处,如取消NAG,启动框,灰色按纽或隐藏按纽,启动时的timer事件等等,具体的就自己去总结吧,这里只演示按纽事件!OD载入后,CTRL+B,816C24确定后,就会来到下图处:然后,就在下面的JMP处F2下断,下完后CTRL+L,如果还有,就继续下断点.下完断点后,运行程序,点击相应的按纽,OD就会断下来了下面的任务就是考验大家的耐心,F8跟踪吧,不再赘述了.当然,为了方便大家,可以写个简单的脚本,免的每次都去手动设置了,节省时间: 复制内容到剪贴板代码:var Addrmov Addr,401000loop:find Addr,#816C2404??000000#cmp $RESULT,0je Exitadd $RESULT,08bp $RESULTadd $RESULT,1mov Addr,$RESULTjmp loopExit:eval "按纽事件查找完毕!"msg $RESULTret二、Delphi和BC++程序Delphi和BC++都是同一公司开发的,故查找方法都一样,当然你也可以使用DEDE.OD载入后,CTRL+G,转到00401000处然后就CTRL+B,查找特征码740E8BD38B83????????FF93????????然后就会找到下面的地方:然后就在下面的CALL处下断吧.下面的工作就是不断的CTRL+L继续查找和F2下断了.运行下看看效果吧:看,断下了吧,下面就F7跟进这个CALL吧,就来到这个按纽事件处了.同样写个脚本,方便大家操作: 复制内容到剪贴板代码:var Addrmov Addr,401000loop:find Addr,#740E8BD38B83????????FF93????????#cmp $RESULT,0je Exitadd $RESULT,0Abp $RESULTadd $RESULT,1mov Addr,$RESULTjmp loopExit:ret三、易语言易语言的这种查找方法,同样适合有壳的程序,其他的就必须脱壳后再继续操作了. OD载入后,就F9运行程序吧,当程序运行后,ALT+E选中易语言的核心库krnln,双击进去然后CTRL+B,查找FF 55 FC查找到的这个CALL就是了,F2下断吧现在输入必须的内容后,单击对应的按纽吧看,断下了吧,下面就F7跟进吧,就来到按纽事件处了同样,写个脚本,方便大家复制内容到剪贴板代码:gpa"GetProcessHeap","kernel32.dll"cmp $RESULT,0je errbp $RESULTrunrunrunbc $RESULTrtufind 10001000,#FF55FC5F5E895D??8945#bp $RESULTfind eip,#FFE0#cmp$RESULT,0je errbp $RESULTrunbc $RESULTstoMSG "按纽事件查找完毕!"reterr:MSG "脚本运行错误!请检查错误后再继续运行脚本!" ret四、VC++程序(非MFC程序)OD载入后,单击鼠标右键,选择"查找",然后是"所有命令" 在弹出的输入框里,写入特征代码"sub eax,0a"10.GIF (7 KB)2008-9-14 12:02确定后,就来到下面的窗口在下面的sub eax,0A处,双击进去吧:12.GIF (16 KB)2008-9-14 12:02来找这里后,在下面的je处跟随过去跟随来到的这个CALL,就是了,F2下断吧然后断下后,F7跟进,F8几次,就来到按纽事件了.五、MFC类程序当然判断MFC和非MFC的程序,靠大家自己去判断了OD载入后.ALT+E,来到可执行模块,找MFC的核心DLL:MFC42然后就双击进去然后就CTRL+F,查找特征代码:sub eax,0a同样,找到后,就在下面的je处跟随,跟随后看到的CALL,就是那个关键CALL了!断下后F7跟进,F8几次,就会来到按纽事件代码处了!方法就简单的介绍到这里了,当然只是抛砖引玉,其他的,还得多靠大家自己慢慢总结吧! 附件。

OD各种编程语言查找按钮事件

OD各种编程语言查找按钮事件

一、VB程序?其实,VB的按纽事件的找法是最为普遍的,也就是大家所谓的万能断点.其实也不仅仅是针对按纽事件,还有很多其他的用处,如取消NAG,启动框,灰色按纽或隐藏按纽,启动时的timer事件等等,具体的就自己去总结吧,这里只演示按纽事件!OD载入后,CTRL+B,816C24?确定后,就会来到下图处:然后,就在下面的JMP处F2下断,下完后CTRL+L,如果还有,就继续下断点.下完断点后,运行程序,点击相应的按纽,OD就会断下来了?下面的任务就是考验大家的耐心,F8跟踪吧,不再赘述了.当然,为了方便大家,可以写个简单的脚本,免的每次都去手动设置了,节省时间: 复制内容到剪贴板代码:var Addr?mov Addr,401000?loop:?find Addr,#816C2404??000000#?cmp $RESULT,0?je Exit?add $RESULT,08?bp $RESULT?add $RESULT,1?mov Addr,$RESULT?jmp loop?Exit:?eval "按纽事件查找完毕!"?msg $RESULT?ret?二、Delphi和BC++程序Delphi和BC++都是同一公司开发的,故查找方法都一样,当然你也可以使用DEDE. OD载入后,CTRL+G,转到00401000处?然后就CTRL+B,查找特征码740E8BD38B83????????FF93?????????然后就会找到下面的地方:?然后就在下面的CALL处下断吧.下面的工作就是不断的CTRL+L继续查找和F2下断了.运行下看看效果吧:?看,断下了吧,下面就F7跟进这个CALL吧,就来到这个按纽事件处了. 同样写个脚本,方便大家操作: 复制内容到剪贴板代码:var Addr? mov Addr,401000?loop:?find Addr,#740E8BD38B83????????FF93????????#?cmp $RESULT,0?je Exit?add $RESULT,0A?bp $RESULT?add $RESULT,1?mov Addr,$RESULT?jmp loop?Exit:?ret?三、易语言易语言的这种查找方法,同样适合有壳的程序,其他的就必须脱壳后再继续操作了.OD载入后,就F9运行程序吧,当程序运行后,ALT+E?选中易语言的核心库krnln,双击进去然后CTRL+B,查找FF 55 FC?查找到的这个CALL就是了,F2下断吧现在输入必须的内容后,单击对应的按纽吧看,断下了吧,下面就F7跟进吧,就来到按纽事件处了同样,写个脚本,方便大家复制内容到剪贴板代码:gpa"GetProcessHeap","kernel32.dll"? cmp $RESULT,0?je err?bp $RESULT?run?run?run?bc $RESULT?rtu??bp $RESULTfind eip,#FFE0#?cmp$RESULT,0?je err?bp $RESULT?run?bc $RESULT?stoMSG "按纽事件查找完毕!"?reterr:?MSG "脚本运行错误!请检查错误后再继续运行脚本!"? ret?四、VC++程序(非MFC程序)OD载入后,单击鼠标右键,选择"查找",然后是"所有命令"? 在弹出的输入框里,写入特征代码"sub eax,0a"?? 10.GIF (7 KB)?2008-9-14 12:02确定后,就来到下面的窗口???在下面的sub eax,0A处,双击进去吧:?? 12.GIF (16 KB)?2008-9-14 12:02来找这里后,在下面的je处跟随过去跟随来到的这个CALL,就是了,F2下断吧然后断下后,F7跟进,F8几次,就来到按纽事件了.五、MFC类程序当然判断MFC和非MFC的程序,靠大家自己去判断了OD载入后.ALT+E,来到可执行模块,找MFC的核心DLL:MFC42然后就双击进去然后就CTRL+F,查找特征代码:sub eax,0a同样,找到后,就在下面的je处跟随,跟随后看到的CALL,就是那个关键CALL了!断下后F7跟进,F8几次,就会来到按纽事件代码处了!方法就简单的介绍到这里了,当然只是抛砖引玉,其他的,还得多靠大家自己慢慢总结吧!? 附件?。

button onclick在html中用法

button onclick在html中用法

button onclick在html中用法摘要:1.简介2.onclick 属性的作用3.onclick 属性的使用方法4.onclick 属性的应用实例5.总结正文:【1.简介】HTML(超文本标记语言)是一种用于创建网页的标准标记语言。

在HTML 中,`onclick`属性是一个常用的事件处理属性,它用于指定当用户点击按钮时执行的JavaScript 函数。

通过使用`onclick`属性,我们可以为网页按钮添加各种交互功能,提高用户体验。

【2.onclick 属性的作用】`onclick`属性用于指定一个JavaScript 函数,当用户点击按钮时,该函数将被执行。

通常,这个函数可以用来执行一些操作,如更改网页内容、提交表单或显示提示信息等。

【3.onclick 属性的使用方法】要在HTML 中使用`onclick`属性,只需将其添加到按钮元素中,并设置其值为要执行的JavaScript 函数名称。

如下所示:```html<button onclick="myFunction()">点击我</button>```在这个例子中,当用户点击按钮时,将执行名为`myFunction`的JavaScript 函数。

【4.onclick 属性的应用实例】以下是一个简单的实例,展示了如何在HTML 中使用`onclick`属性为按钮添加点击事件:```html<!DOCTYPE html><html><head><script>function myFunction() {alert("按钮被点击了!");}</script></head><body><button onclick="myFunction()">点击我</button></body></html>```在这个例子中,当用户点击“点击我”按钮时,将弹出一个提示框显示“按钮被点击了!”。

button的用法和例句 -回复

button的用法和例句 -回复

button的用法和例句-回复Button的用法和例句Button(按钮)是一种常见的用户界面控件,用于在计算机程序中触发特定操作。

它通常以可点击的形式呈现,通过单击按钮来执行与之关联的函数或命令。

本文将详细介绍按钮的用法和给出一些实际例句,以帮助读者更好地理解和应用这一控件。

一、Button的基本用法1. Button控件的创建Button控件可以在各种编程语言和开发框架中创建,如Java、C++、Python、HTML等。

在大多数情况下,使用相应的代码和库来创建按钮控件并定义其外观和行为。

以下是在Python中使用Tkinter库创建一个简单的按钮控件的示例:from tkinter import *root = Tk() # 创建根窗口button = Button(root, text="点击我") # 创建按钮button.pack() # 将按钮添加到窗口中root.mainloop() # 进入主循环2. Button控件的属性设置通过设置不同的属性,可以定制按钮的外观和行为。

以下是一些常见的Button属性:- text:按钮上显示的文本。

- width、height:按钮的宽度和高度。

- font:按钮上文本的字体和大小。

- background(bg)、foreground(fg):按钮的背景色和前景色。

- command:按钮被点击时执行的函数或命令。

- state:按钮的状态,可以是"normal"(默认)、"disabled"或"active"。

例如,可以使用以下代码设置按钮的一些属性:button = Button(root, text="点击我", width=10, height=2,font=("Arial", 12),bg="blue", fg="white", command=click_function, state="normal")3. Button控件的事件绑定除了定义按钮的属性外,还可以为按钮绑定各种事件,如点击事件、鼠标移入事件等。

form的用法总结

form的用法总结

form的用法总结一、简介二、HTML中的表单元素1. 文本框2. 密码框3. 单选按钮和复选框4. 下拉列表5. 文本域三、表单属性和事件1. action属性2. method属性3. enctype属性四、常见表单验证方式及其实现方法总结五、小结一、简介在网页开发中,表单 (Form) 是一种非常重要的元素。

通过表单,用户可以向服务器提交数据,例如登录信息、注册信息等。

在使用表单时,HTML语言提供了丰富的标签和属性来实现不同的需求。

二、HTML中的表单元素1. 文本框文本框(input type="text")是最基本也是最常见的输入控件,用于接收用户输入的文本信息。

我们可以设置文本框的大小(width)、默认值(value)、最大长度(maxlength)等属性来满足特定要求。

2. 密码框密码框(input type="password")用于接收用户输入的密码信息,它会将用户输入内容以星号或小黑点显示。

与文本框类似,我们也可以设置密码框的大小、默认值等。

3. 单选按钮和复选框单选按钮(input type="radio")和复选框(input type="checkbox")用于实现多项选择。

单选按钮只能选择一个选项,而复选框可以选择多个。

它们的属性包括name(用于分组)、value(用于标识不同选项)等。

4. 下拉列表下拉列表(select)提供了一种选择菜单,用户可以从预设的选项列表中选择一个或多个选项。

我们可以通过设置selected属性来指定默认选中的选项。

5. 文本域文本域(textarea)是一种可以输入较长文本的控件,通常用于接收大段文字输入。

我们可以设置文本域的行数和列数、默认值等属性。

三、表单属性和事件1. action属性action属性指定了当提交表单时所要调用的服务器端脚本或页面地址。

常用的键盘事件

常用的键盘事件

常用的键盘事件
下面是一些常用的键盘事件:
1. 键被按下(keydown)事件:当按下键盘上的任意键时触发
此事件。

2. 键被释放(keyup)事件:当释放键盘上的任意键时触发此
事件。

3. 键被按下并释放(keypress)事件:当按下并释放键盘上的
任意键时触发此事件。

4. Enter键(enter)事件:当按下键盘上的 Enter 键时触发此
事件。

5. 空格键(space)事件:当按下键盘上的空格键时触发此事件。

6. Tab键(tab)事件:当按下键盘上的Tab 键时触发此事件。

7. 方向键(arrow)事件:当按下键盘上的方向键时触发此事件。

包括上、下、左、右方向键。

8. 软键盘按键事件:当在触摸设备上使用软键盘进行输入时触发的事件。

包括软键盘的按键、删除键等。

这些是常见的键盘事件,开发人员可以根据需要使用相应的事件来处理键盘操作。

VB控件:VB文本框的常用事件和方法

VB控件:VB文本框的常用事件和方法

常⽤事件 ⽂本框的常⽤事件有Change、KeyPress和LostFocus3种。

(1)Change事件 当⽤户向⽂本框中输⼊新信息,或当程序把Text属性设置为新值从⽽改变其Text属性时,将触发Change事件,程序运⾏后,在⽂本框中每输⼊⼀个字符,就会引发⼀次Change事件。

(2)KeyPress事件 当⽤户按下并释放键盘上的⼀个ANSI键时,就会引发焦点所在控件的KeyPress事件,此事件会返回⼀个KeyAscii参数到该事件过程中。

例如,当⽤户输⼊字符“a”,返回KeyAscii的值为97,通过Chr(KeyAscii)可以将ASCII码转换为字符“a”,中国⾃学编程。

KeyPress事件同Change事件⼀样,每输⼊⼀个字符就会引发⼀次该事件;事件中最常⽤的是对键⼈的是否为回车符(KeyAscii的值为13)的判断,表⽰⽂本的输⼊结束。

(3)LostFocus事件 当按下Tab键使光标离开当前⽂本框或者⽤⿏标选择窗体中的其他对象时,触发该事件,⽤Change事件和LostFocus事件过程都可以检查⽂本框的Text属性值。

常⽤⽅法 SetFocus是⽂本框中常⽤的⽅法。

格式:[对象.]SetFocus 功能:该⽅法可以把光标移到指定的⽂本框中,当在窗体上建⽴了多个⽂本框后,可以⽤该⽅法把光标置于所需要的⽂本框中。

在程序设计中,⽂本框有着重要的作⽤。

⽤Change事件改变⽂本框的Text属性值。

(1)建⽴⽤户界⾯ 在窗体上建⽴3个⽂本框:Textl、Text2、Text3,3个命令按钮:Commandl、Command2、Command3。

⽂本框的设计屏幕,⽂本框的执⾏屏幕。

(2)设置对象的属性 控件的Name属性取其默认值,分别为:Textl、Text2、Text3和Commandl、Command2、Command3。

onclick在python的用法-概述说明以及解释

onclick在python的用法-概述说明以及解释

onclick在python的用法-概述说明以及解释1.引言1.1 概述概述部分的内容:onclick是一种常见的交互式编程技术,它在用户点击特定元素时触发相关的操作。

该技术广泛应用于网页开发和用户界面设计中,并在Python 编程语言中也有着重要的应用。

通过使用onclick事件,我们可以实现对用户操作的响应,例如当用户点击按钮、链接或其他可交互的元素时,我们能够实时执行所需的代码。

这为开发者提供了更加灵活和互动的用户体验,增强了用户与软件系统的交互性和可操作性。

在Python中,使用onclick技术可以实现各种功能,例如:处理图形用户界面(GUI)中的按钮点击事件、监听特定元素的鼠标点击事件、响应网页上的点击动作等等。

通过使用相关的库和框架,如Tkinter、PyQt 等,我们可以轻松地在Python中实现onclick的功能。

本文将重点探讨onclick在Python中的应用场景和具体用法。

我们将介绍一些常见的实例,并探讨onclick的优势和局限性。

希望通过本文的阐述,读者们能够对onclick的概念有更加深入的理解,并掌握在Python中应用onclick的技巧与方法。

1.2文章结构1.2 文章结构文章将按照以下顺序进行展开:1. 引言:在引言部分,我们将简要介绍onclick的基本概念和作用,以及本文的目的。

2. 正文:正文部分将重点探讨onclick在Python中的应用场景。

我们将介绍使用onclick的基本语法和方法,以及它在各种实际应用中的具体用途和效果。

具体来说,以下是我们将在正文部分涵盖的主要内容:2.1 onclick的基本概念和作用:在本小节中,我们将详细介绍onclick的定义和作用,以及它在编程中的重要性。

我们将探讨它是如何触发事件和执行相应的操作的,以及在实际应用中的优势。

2.2 onclick在Python中的应用场景:在本小节中,我们将重点讨论onclick在Python编程中的具体应用场景。

实用按键事件检测(单击、长按)

实用按键事件检测(单击、长按)

实⽤按键事件检测(单击、长按) 前断时间阅读“⼤佬”程序,发掘出有⼏个好⽤的,⾃定义的函数,此类函数巧妙使⽤返回值,传递参数,设置标志位、定时、赋值等功能,今晚特此来分享下。

⼀、定时功能函数1.1 user_timer.c#include "user_define.h"extern U16 timer1_time_cnt;static U16 user_timer_array[USER_TIMER_AMOUNT] = {0};static U16 timeout_control_array[USER_TIMER_AMOUNT] = {0};void user_timer_init(void) // 数组初始化{U8 i = 0 ;for(i = 0; i < USER_TIMER_AMOUNT; i++){user_timer_array[i] = 0;timeout_control_array[i] = 0;}}/*********************function:The system reference time is added to the user time array.parameter:nullreturn:null*********************/void add_system_time(void) // 添加时间(放主循环){U16 i = 0 ;U16 temp;temp = timer1_time_cnt;timer1_time_cnt = 0;for(i = 0; i < USER_TIMER_AMOUNT; i++){if(user_timer_array[i] <= timeout_control_array[i])user_timer_array[i] += temp;}}/*********************function:Clear the user time count.parameter:USER_TIMER0_CNT ...... USER_TIMERN_CNT or user typedef namereturn:null*********************/void clear_time_cnt(U8 time_number) // 清除时间{if(USER_TIMER_AMOUNT > time_number)user_timer_array[time_number] = 0;}/*********************function:time if arrivedparameter:<time_number>USER_TIMER0_CNT ...... USER_TIMERN_CNT or user typedef name<time>check timereturn:null*********************/U8 check_time_arrive(U8 time_number, U16 time) // 检查设定时间,是否到达{if(USER_TIMER_AMOUNT > time_number){timeout_control_array[time_number] = time;if(time <= user_timer_array[time_number])return1;elsereturn0;}return0;}1.2 user_timer.h//============================================//user timer//============================================#define USER_TIMER_AMOUNT 5#define KEY_TRIGGER_TIMER 0#define VR_TIMEOUT_TIMER 1#define RANDOM_TIMER 2#define KEY_CONTROL_TIMER 3#define USER_TIMER_0 4////============================================================//key//////============================================================#define KEY_IO_INPUT 0#define KEY_IO_OUTPUT 1#define KEY_DEBOUNCE_TIME 8 //8MS#define KEY_LONG_PRESS_TIME 2300 //2s#define KEY_NOT_ACTION 0#define KEY_CLICK_ACTION 1#define KEY_LONG_PRESS_ACTION 3#define KEY_LONG_RELEASE_ACTION 4extern void user_timer_init(void);extern void add_system_time(void);extern void clear_time_cnt(U8 time_number);extern U8 check_time_arrive(U8 time_number, U16 time);⼆、按键事件1.1 user_key.c#include "user_key.h"static U8 key_event_flag = 0;/* 需注意,当产⽣单击事件时,处理完毕后,记得释放按键事件,即调⽤,void rest_key_state();函数,释放按键。

快速有效地检查语法错误和逻辑错误有几种方法

快速有效地检查语法错误和逻辑错误有几种方法

快速有效地检查语法错误和逻辑错误有几种方法快速有效地检查语法错误和逻辑错误有几种方法:1.语法检查工具:可以使用各种在线或下载的语法检查工具,这些工具可以帮助识别拼写错误、时态错误、语序错误等问题。

一些常见的语法检查工具有Grammarly、Hemingway Editor等。

2.自然语言处理(NLP)技术:自然语言处理技术可以帮助识别和理解自然语言文本,包括语法和语义分析。

通过使用NLP技术,可以快速检查文章中的语法错误和逻辑错误。

一些常用的NLP工具有NLTK、SpaCy等。

3.利用搜索引擎:如果怀疑文章中存在逻辑错误,可以将文章的关键词或主题输入搜索引擎,查看相关的搜索结果和文章。

这可以帮助你发现可能的逻辑问题和事实错误。

4.同行评审:如果有信任的同行或同事,可以请他们帮忙进行文章评审。

他们可能会发现一些你忽略的问题,并给出有益的建议和反馈。

5.结构化写作:采用结构化的写作方法,如大纲或思维导图,可以帮助组织和规划文章的结构和内容。

这样可以帮助你更好地理解和检查文章的逻辑和结构。

6.仔细阅读和审阅:在完成文章后,仔细阅读和审阅文章。

注意句子之间的连贯性和逻辑关系,以及论点与论据的匹配度。

通过反复阅读和审视,可以发现一些潜在的问题。

7.总结和反思:在完成文章后,花一些时间进行总结和反思。

思考文章的目的、论点、论据以及表达方式是否清晰、准确,是否有遗漏或冗余的地方。

这样可以帮助你更好地理解文章的逻辑和表达方式。

综上所述,快速有效地检查语法错误和逻辑错误需要综合运用多种工具和技术。

通过使用语法检查工具、自然语言处理技术、搜索引擎、同行评审、结构化写作、仔细阅读和审阅、总结和反思等方法,可以有效地减少语法错误和逻辑错误,提高文章的质量和准确性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

总结一下各种语言按钮事件的找法
调试软件,最重要的就是下断点,那么如何下断点,就是一门重要的技巧.
比如:弹提示框,就下MessageBoxA,注册表的,就下RegOpenKeyA等等.
当然,能直接下到按纽事件,当然更为方便,因为到了按纽事件后,很快就会到达核心代码,离你的破解也就不远了.
本文就总结一下各类语言找按纽事件的方法,当然也可以借助工具,如VBexplorer,DEDE,EC E等等.
一、VB程序
其实,VB的按纽事件的找法是最为普遍的,也就是大家所谓的万能断点.其实也不仅仅是针对按纽事件,还有很多其他的用处,如取消NAG,启动框,灰色按纽或隐藏按纽,启动时的timer事件等等,具体的就自己去总结吧,这里只演示按纽事件!
OD载入后,CTRL+B,816C24
确定后,就会来到下图处:
然后,就在下面的JMP处F2下断,下完后CTRL+L,如果还有,就继续下断点. 下完断点后,运行程序,点击相应的按纽,OD就会断下来了
下面的任务就是考验大家的耐心,F8跟踪吧,不再赘述了.
当然,为了方便大家,可以写个简单的脚本,免的每次都去手动设置了,节省时间:
var Addr
mov Addr,401000
loop:
find Addr,#816C2404??000000#
cmp $RESULT,0
je Exit
add $RESULT,08
bp $RESULT
add $RESULT,1
mov Addr,$RESULT
jmp loop
Exit:
eval "按纽事件查找完毕!"
msg $RESULT
ret
二、Delphi和BC++程序
Delphi和BC++都是同一公司开发的,故查找方法都一样,当然你也可以使用DEDE. OD载入后,CTRL+G,转到00401000处
然后就CTRL+B,查找特征码740E8BD38B83????????FF93????????
然后就会找到下面的地方:
然后就在下面的CALL处下断吧.
下面的工作就是不断的CTRL+L继续查找和F2下断了.
运行下看看效果吧:
看,断下了吧,下面就F7跟进这个CALL吧,就来到这个按纽事件处了. 同样写个脚本,方便大家操作:
var Addr
mov Addr,401000
loop:
find Addr,#740E8BD38B83????????FF93????????#
cmp $RESULT,0
je Exit
add $RESULT,0A
bp $RESULT
add $RESULT,1
mov Addr,$RESULT
jmp loop
Exit:
ret
三、易语言
易语言的这种查找方法,同样适合有壳的程序,其他的就必须脱壳后再继续操作了. OD载入后,就F9运行程序吧,当程序运行后,ALT+E
选中易语言的核心库krnln,双击进去
然后CTRL+B,查找FF 55 FC
查找到的这个CALL就是了,F2下断吧
现在输入必须的内容后,单击对应的按纽吧
看,断下了吧,下面就F7跟进吧,就来到按纽事件处了同样,写个脚本,方便大家gpa"GetProcessHeap","kernel32.dll"
cmp $RESULT,0
je err
bp $RESULT
run
run
run
bc $RESULT
rtu
find 10001000,#FF55FC5F5E895D??8945#
bp $RESULT
find eip,#FFE0#
cmp$RESULT,0
je err
bp $RESULT
run
bc $RESULT
sto
MSG "按纽事件查找完毕!"
ret
err:
MSG "脚本运行错误!请检查错误后再继续运行脚本!" ret
四、VC++程序(非MFC程序)
OD载入后,单击鼠标右键,选择"查找",然后是"所有命令" 在弹出的输入框里,写入特征代码"sub eax,0a"
确定后,就来到下面的窗口
在下面的sub eax,0A处,双击进去吧:
来找这里后,在下面的je处跟随过去
跟随来到的这个CALL,就是了,F2下断吧
然后断下后,F7跟进,F8几次,就来到按纽事件了.
五、MFC类程序
当然判断MFC和非MFC的程序,靠大家自己去判断了
OD载入后.ALT+E,来到可执行模块,找MFC的核心DLL:MFC42 然后就双击进去
然后就CTRL+F,查找特征代码:sub eax,0a
同样,找到后,就在下面的je处跟随,跟随后看到的CALL,就是那个关键CALL了!
断下后F7跟进,F8几次,就会来到按纽事件代码处了!。

相关文档
最新文档