橙光如何让对话框满屏消息提示框或对话框显示在自己指定的

虽然程序猿总是被游客调戏,但是仍坚定不移的追寻它的香蕉
【Android开发】消息提示框与对话框-使用Toast显示消息提示框
在前面的实例中,已经应用过Toast类来显示一个简单的提示框了。这次将对Toast进行详细介绍。Toast类用于在屏幕中显示一个消息提示框,该消息提示框没有任何控制按钮,并且不会获得焦点,经过一段时间后自动消失。通常用于显示一些快速提示信息,应用范围非常广泛。
使用Toast来显示消息提示框非常简单,只需要一下三个步骤:
(1).创建一个Toast对象。通常有两种方法:一种是使用构造方式进行创建;
Toast toast=new Toast(this);
另一种是调用Toast类的makeText()方法创建。
Toast toast=Toast.makeText(this,"要显示的内容",Toast.LENGTH_SHORT);
(2).调用Toast类提供的方法来设置该消息提示框的对齐方式、页边距、显示的内容等等。
常用的方法如下:
setDuration(int duration) 用于设置消息提示框持续的时间,参数通常使用Toast.LENGTH_LONG或Toast.LENGTH_SHORT
setGravity(int gravity,int xOffset,int yOffset) 用于设置消息提示框的位置,参数grivaty用于指定对齐方式:xOffset和yOffset用于指定具体的偏移值
setMargin(float horizontalMargin,float verticalMargin) 用于设置消息提示的页边距
setText(CharSequence s) 用于设置要显示的文本内容
setView(View view) 用于设置将要在提示框中显示的视图
(3).调用Toast类的show()方法显示消息提示框。需要注意的是,一定要调用该方法,否则设置的消息提示框将不显示。
下面通过一个具体的实例来说明如何使用Toast类显示消息提示框。
res/layout/main.xml:&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layout1"
android:gravity="center_horizontal"
&/LinearLayout&
MainActivity:
package com.example.
import android.app.A
import android.os.B
import android.view.G
import android.widget.ImageV
import android.widget.LinearL
import android.widget.TextV
import android.widget.T
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过makeText方法创建消息提示框
Toast.makeText(MainActivity.this, "我是通过makeText方法创建的消息提示框", Toast.LENGTH_SHORT).show();
//通过Toast类的构造方法创建消息提示框
Toast toast=new Toast(this);
toast.setDuration(Toast.LENGTH_SHORT);//设置持续时间
toast.setGravity(Gravity.CENTER,0, 0);//设置对齐方式
LinearLayout ll=new LinearLayout(this);//创建一个线性布局管理器
ImageView imageView=new ImageView(this);
imageView.setImageResource(R.drawable.stop);
imageView.setPadding(0, 0, 5, 0);
ll.addView(imageView);
TextView tv=new TextView(this);
tv.setText("我是通过构造方法创建的消息提示框");
ll.addView(tv);
toast.setView(ll);//设置消息提示框中要显示的视图
toast.show();//显示消息提示框
效果如图:
转载请注明出处:
没有更多推荐了,
职位:中级Java开发工程师
负责:上汽系统开发与维护
专业:软件工程12级
书  号:978-7-121-33390-3
出版日期:
书籍特色:
· 经验多:百万访问量博主倾囊相授,带你走进Web开发的方方面面。
· 零基础:从简单的样例做起,逐渐深入技术核心。
· 内容全:涵盖Spring MVC与MyBatis的33个技巧,56个实例。
· 重实战:与真实项目案例相结合,深入实战开发的5层架构。
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!正在初始化报价器如何让电脑开机弹出自己设置的对话框雅华壁纸布艺那叫自己制作开机LOGO,得看电脑品牌,刷BOSS,自己网上找找吧,建议不要自己尝试,如果要刷,记得看熟教程查看更多更多回答邵莹_4066是啥对话框呢?lhx1、开机时直接进入BIOS的主要原因是主办BIOS的设置出现了问题,当BIOS的设置不正确时重启电脑就会自动进入BIOS。
2、既然是BIOS的设置引起的,那么只需要在BIOS里面设置好就可以解决问题了。
3、当电脑开机进入BIOS后,选择Load Fail-safe Defaults、Load Optmized Defaults、Restore Defaults等类似字样的选项,选择完毕后按下“F10”保存并退出即可。kxukgijh676a133889回答的那个连接,如果确实能实现的话,那可比弹出对话框牛叉多了ielmf456启动项哪些可以关闭(以下几种方法都可以找到自启动项,看看下面开机启动中是否有开机提示的选项,如果有将其去掉就不弹框了)
1、下载超级兔子,选打造自己的系统/启动程序,有启动项选项,可以取消或可以在加上或彻底删除(或金山卫士、360卫士等软件也有这个功能)。
2、点击"开始"/运行/输入msconfig后回车/点击"启动"/在里面查找一下开机提示的选项,找到后将前面的勾去掉,按确定应用即可。重启电脑后,启动到桌面时会出现一个对话框,在对话框中添加对勾,确定即可。
3、去掉自启动项(上面找不到在这里找找)
开始/运行输入regedit回车打开注册表编辑器,依次展开
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]在右侧,
[HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run]在右侧,
看看有没有你要找的选项,如果有删除,重启电脑即可。
4、如果上述方法无效在按下面的方法试试;开始/程序/附件/系统工具/计划任务,把里面的计划任务全删除了。qzuser_设置一个开机启动项,可以利用计划任务这一功能来完成。选择计划任务并选择每次开机启动该任务,在进入系统后,最简单的是跳出一个文本框,该文本框直接输入你要说的话就行了热门问答1234567891011121314151617181920查看更多21222324252627282930来自宽带山官方安卓客户端
想知道吗?
到 www.needit.net/bbs 来提问吧,你的问题会得到高手满意的答复
来自宽带山官方安卓客户端
javescript
could make many kinds of the ways!
for example
www.51javescript.net
good luck to you !
来自宽带山官方安卓客户端
魔教之龙虾
教你编主页!!!
function Show() {
alert('哈!!哈!!哈!!哈!!\n\n');
alert('你为什么要按我呀!!\n');
alert('不是叫你不要按嘛?\n');
alert('你想不想继续玩呀!\n');
alert('你为什么要按这个按钮呀!!\n');
alert('你是不是不想继续玩呀!\n');
alert('HeHe... 但是你现在走不掉了.... ;)\n');
alert('^0^\n');
alert('谁叫你这个傻瓜按这个按钮呀!\n');
alert('哈!!哈!!\n');
alert('哈!!哈!!哈!!哈!!\n');
alert('好不好玩呀!!\n');
alert('高不高兴呀!!\n');
alert('开不开心呀!!\n');
alert('Do you enjoy?\n');
alert('你有没有后悔按这个按钮呀!\n');
alert('但是你现在后悔也晚了!\n');
alert('hehheheheheheh\n');
alert('Ha Ha Ha!!\n');
alert('你估计你几点可以走掉呢??\n');
alert('其实我也不知道你什么时候能走的.....\n');
alert('看到你的下场了吧..\n');
alert('是笑死?\n');
alert('不是呀!是...\n');
alert('是闷死呀. :(\n');
alert('...... :( \n');
alert('我一开始就跟你说不让你按的...\n');
alert('但是你就是不听我的. :(');
alert('你说你是不是傻瓜呀????');
alert('什么? 你累了....');
alert('好啦..见你可怜放你走啦..');
alert('只要再按一百下就得啦');
alert('开玩笑了');
alert('我的心很软的.... :)');
alert('只要你心里不断地夸我....');
alert('现在开始夸我吧.....');
alert('你就可以走了...');
alert('不用多谢我的...');
alert('不用客气...');
alert('真的, 不用客气...');
alert('好啦,放你走了. :)');
alert('以后不要再按我的,知不知道');
alert('下次再来找你玩吧. :)))');
alert('bye');
alert('bye');
alert('bye');
alert('你又回来了?.... :))');
alert('走啦!');
alert('see you');
alert('bye');
alert('下次记住不要按我呀');
alert('知不知道呀....');
alert('明不明白呀....');
alert('好啦...你走吧');
alert('bye bye');
alert('再见啦!!');
alert('下次记住记住不要按我呀');
alert('真的走了');
alert('bye bye ');
alert('别这么恋恋不舍的, 让别人看见不好. *~_~*');
alert('bye ');
alert('see you');
alert('Good-bye');
alert('see you next time!');
alert('撒油拿蜡!');
alert('I will missing you!!! :~)');
alert('真的走了, BYE! ;DDDD');
来自宽带山官方安卓客户端& VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程)
VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程)
&&&&&& 加法计算器对话框程序大家照着做一遍后,相信对基于对话框的程序有些了解了,有个好的开始对于以后的学习大有裨益。趁热打铁,鸡啄米这一节讲讲什么是模态对话框和非模态对话框,以及模态对话框怎样弹出。&&&&&& 一.模态对话框和非模态对话框&&&&&& Windows对话框分为两类:模态对话框和非模态对话框。&&&&& &模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。&&&&& &非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。&&&&&& 大家对Windows系统很了解,相信这两种对话框应该都遇到过。之前的加法计算器对话框其实就是模态对话框。&&&&&& 二.模态对话框是怎样弹出的&&&&&& 毕竟加法计算器程序大部分都是MFC自动生成的,对话框怎么弹出来的大家可能还不是很清楚。鸡啄米下面简单说说它是在哪里弹出来的,再重新建一个新的对话框并弹出它,这样大家实践以后就能更灵活的使用模态对话框了。&&&&&& 大家打开Addition.cpp文件,可以看到CAdditionApp类有个InitInstance()函数,在中提到过此函数,不过那是单文档应用程序App类中的,函数体不太相同,但都是进行App类实例的初始化工作。&&&&& &InitInstance()函数的后半部分有一段代码就是定义对话框对象并弹出对话框的,鸡啄米下面给出这段代码并加以注释:
CAdditionDlg&&&&&&&&&&&
m_pMainWnd&=&&&&&&&& &&
INT_PTR&nResponse&=&dlg.DoModal();&&&&&
if&(nResponse&==&IDOK)&&&&&&&&&&&&&&&&&
else&if&(nResponse&==&IDCANCEL)&&&&&&&&
}&&&&&&&&&弹出对话框比较关键的一个函数,就是对话框类的DoModal()函数。CDialog::DoModal()函数的原型为:&&&&&&&virtual INT_PTR DoModal();   &&&&&&&返回值:整数值,指定了传递给CDialog::EndDialog(该函数用于关闭对话框)的nResult参数值。如果函数不能创建对话框,则返回-1;如果出现其它错误,则返回IDABORT。&&&&&&&调用了它对话框就会弹出,返回值是退出对话框时所点的按钮的ID,比如,我们点了&退出&按钮,那么DoModal返回值为IDCANCEL。&&&&&& 三.添加一个新对话框并弹出它&&&&&&&鸡啄米再为加法计算器程序添加一个对话框,以在计算之前询问用户是否确定要进行计算。大家可以完整的看下对话框的添加和弹出过程。&&&&&&&1.根据&&中所讲的方法,在Resource View中的&Dialog&上点右键选择&Insert Dialog&,创建一个新的对话框模板,修改其ID为IDD_TIP_DIALOG,Caption改为&提示&,然后参考&&中所讲,在对话框模板上添加一个静态文本框(static text),Caption改为&您确定要进行加法计算吗?&,接下来修改OK按钮的Caption为&确定&,Cancel按钮的Caption为&取消&,最后调整各个控件的位置和对话框的大小。最终的对话框模板如下图:&&&&&&&2.根据&&中创建对话框类的方法,在对话框模板上点右键选择&Add Class...&,弹出添加类的对话框,设置&Class name&为CTipDlg,点&OK&。在Solution Explorer中可以看到生成了CTipDlg类的头文件TipDlg.h和源文件TipDlg.cpp。&&&&&&&3.我们要在点&计算&按钮之后弹出此提示对话框,那么就要在&计算&按钮的消息处理函数OnBnClickedAddButton()中访问提示对话框类,所以为了访问CTipDlg类,在AdditionDlg.cpp中包含CTipDlg的头文件:#include &TipDlg.h&。&&&&&&&4.修改OnBnClickedAddButton()的函数体,在所有代码前,构造CTipDlg类的对象tipDlg,并通过语句tipDlg.DoModal();弹出对话框,最后判断DoModal()函数的返回值是IDOK还是IDCANCEL来确定是否继续进行计算。OnBnClickedAddButton()函数修改后如下:
void&CAdditionDlg::OnBnClickedAddButton() &&
&&&&INT_PTR&nR&&&&&&&&&&&&&&&
&&&&CTipDlg&tipD&&&&&&&&&&&&&
&&&&nRes&=&tipDlg.DoModal();&&&&
&&&&if&(IDCANCEL&==&nRes)&&&&&&&
&&&&&&&&return; &&
&&&&UpdateData(TRUE); &&
&&&&m_editSum&=&m_editSummand&+&m_editA &&
&&&&UpdateData(FALSE); &&
}&&&&&&&&&5.测试。编译运行程序后,在对话框上输入被加数和加数,点&计算&,弹出提示对话框询问是否进行计算,如果选择&确定&,则提示对话框退出,并在主对话框上显示被加数和加数的和,而如果选择&取消&,则提示对话框也会退出,但主对话框显示的和不变,即没有进行加法计算。&&&&&& 到此,大家对于模态对话框的基本使用方法应该掌握了吧。希望大家继续关注鸡啄米的MFC教程,我们共同进步。
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 20:12:32)&&( 20:5:25)&&( 22:18:12)&&( 22:15:37)&&( 22:36:0)&&( 23:17:45)&&( 19:46:26)&&( 22:7:57)&&( 23:32:16)&&( 1:53:2)
这个看的有点晕!由 鸡啄米 于
22:41:46 最后编辑
表示你们都能挂百度。。咱就不通过 。。。鸡啄米 于
22:42:09 回复多试几次啊
觉着还是看着JAVA熟悉,呵呵鸡啄米 于
22:42:38 回复呵呵,你是搞java的,当然了
博主 赶紧更新12,13,14,15。。。。。。。啊嗄。。。。
太谢谢您了,讲解的很详细,很有帮助鸡啄米 于
23:53:00 回复能够帮到你很高兴
你好!非常详细,我是初学者,按照博主的指导做很好!想咨询一下,在源文件中有 Addition.cpp和AddtionDlg.cpp两个函数中分别有void CAdditionApp::OnBnClickedAddButton(),void CAdditionDlg::OnClickedAddButton();我在后者中加入的博文中的函数,想问这有什么区别吗?不是很清楚两个源文件的关系
你好,为什么我的会出现编辑提示窗口时,会提示没可用kong jian a?thank you ! you have helped me a lot .学士之爱2012 于
17:55:22 回复好吧,我删了,重来下好了,呵呵呵
在AdditionDlg.cpp中包含CTipDlg的头文件:#include &TipDlg.h&。 为什么我的还要自己手动加:#include &TipDlg.h&?是不是软件设置的问题?鸡啄米 于
22:48:07 回复这条包含语句就是要手动加的秦风 于
12:57:22 回复这个访问另外一个类,就需要添加要访问类的头文件。如果是这个类的.cpp文件,对应的.h文件不用手动。
最近开始学Windows编程,看了作者的教程很清晰明了。非常适合我这种对Windows编程一无所知,而又不知道从哪下手的新人。 感谢作者的辛勤劳动和无私奉献!!!鸡啄米 于
22:36:22 回复此教程很适合入门,欢迎常来交流
我想知道怎样修改对话框的caption,在代码中,哪个函数里写?鸡啄米 于
22:37:02 回复SetWindowText秦风 于
12:58:59 回复邮件点击对话框,点属性。右侧出现属性列表。找到Caption改
注意到对话框类都分为CTipDlg和CAdditionDlg,是不是每一个新的对话框都要建一个新的类才能使用鸡啄米 于
22:41:18 回复是这样的
为什么我生成的对话框被主对话框挡住了??鸡啄米 于
22:46:44 回复没遇到过,呵呵,你试试用SetWindowPos把它置于最顶层
鸡啄米,如果要在一个对话框上输入一组数据,按下这个对话框上的一个按钮后,弹出一个新的对话框,要求在这个新的对话框上能画出这组数据作为纵坐标的图,怎么实现呢?
就是要求两个对话框之间实现数据传递如何实现?!
老师你好,我有一个问题想问,就是当我把按钮的ID值改为ID_NO,和ID_YES时,代码属性都同时改,可以通过编译,但是,返回值不是ID_NO或ID_YES,请问这是什么原因啊?
运行错误啊!提示:#include tipdlg.h:skipped when looking for precompiled header use.。其他几个错误意思ctipdlg未声明标识符,新手啊,百度上木有答案哪tgyd 于
18:34:06 回复原来#include也要注意顺序啊,放在最后就好了kangkang 于
10:42:56 回复看了这个才知道我的错误在哪,#include &TipDlg.h&要放在#include &additionDlg.h&后面,调用头文件也是有顺序的,涨姿势了质数 于
22:40:00 回复我的照这样改了还是出问题,到底怎么回事呀
所有的编辑框添加一个变量,用来输出和输入数据,按钮添加消息处理函数,用来弹出提示框和进行数据计算及调用数据流向函数!!!!
很好的教材,赞一个!
你好,新建立的模态对话框的 两个button ,并没有设置 click 事件呀?怎么自动退出的呢?我按照你的 步骤,怎么点击 确定 or 取消
都不能退出呢?dramed 于
16:36:06 回复我也和你一样,不能退出。。
大神太感谢您了我也出现了这个问题 :#include tipdlg.h:skipped when looking for precompiled header use为啥把#include tip.h 放在最后就不会报错了 这其中原理是啥啊
言简意赅,照着做了一遍,O(∩_∩)O谢谢楼主分享!
一次搞定,多谢米哥。。
我的虽然也调试成功了,但是在TipDlg.h头文件下的// 对话框数据enum { IDD = IDD_TIP_DIALOG };中IDD_TIP_DIALOG 出现未定义标示符错误躺着的懒虫 于
1:08:39 回复在头部加入一个#include &resource.h&这是没有引入资源文件的问题。
感谢作者的教程,我觉得此教程很是适合我
MFC弹出对话框后,鼠标进过对话框形状会变化,求解决方法!
m_pMainWnd = &
// 将dlg设为主窗口
请问为什么要有这句??其作用是什么?在我这里没有这句也可以运行,区别是什么?
站长这个MFC的教程看起来和王爽老师的汇编教程一样,本来很生涩的内容看起来都很简单了,希望站长继续加油,谢谢
为什么我CTipDlg的的头文件是CTipDlg然后出错Domodal”: 不是“CDialog”的成员巴恩 于
13:38:15 回复注意大小写再试一下 是DoModal 不是Domodal 哦~
如果要在运行程序的时候显示两个对话框,怎么设置
最近在学mfc,看了一遍孙鑫老师的视频教程,又发现鸡啄米也有教程,就用vs2010再看一遍~学习下基础~
受益匪浅,感谢你的无私奉献
回复27楼在添加类的时候选择基类为:CDialog类,再编译就没问题了
为什么我按下窗口的确定和取消之后没有反应呢?是哪里的程序没有添加进来吗?奔跑得蜗牛徐 于
16:07:35 回复我也是这样的情况,请问你是怎么解决的
今天下午先看到这里,最近刚学MFC,孙鑫的感觉很多都不适合了,真心感谢博主,收获很多。
如果我在给对话框创建了CTipDlg类名后发现这个名字写错了写成CTip,然后我想改回来,我该怎么改呢?
如果我添加好提示对话框后觉得这个提示好多余好恼火想要删掉它,该怎么删除呢?
你好!我用的是vs2013,在模态对话框及其弹出过程这一讲中,我并没有找到你所说的resource view及其子项dialog,请问在已有一个对话框的情况下,再创建一个对话框应如何操作?CC讨厌吃米饭 于
9:47:50 回复挺详细的,楼主继续更呀CC讨厌吃米饭 于
9:49:02 回复菜单项是涂料里面有资源视图选项
关注鸡啄米很长时间了,手机,PC的书签都收藏了,我感觉讲的非常好,但是可不可以讲一下关于,怎样使输入给对话框类成员变量的字符串,赋值给消息响应函数里的变量
写的很好,适合我这种初学者。谢谢楼主
楼主写的好详细,适合我这种刚入门的,不过请问楼主,第二个代码的第四行中&INT_PTR
nRes&是什么意思呢?“INT_PTR&什么意思呢?是不是表示整数型指针,nRes是不是指针名字啊?
最近在做毕设需要用到MFC编程,我对这个一窍不通,正愁不会呢,找到这个后就在开始学,教的很仔细,对我帮助很大,真的感谢作者的辛苦付出
在学mfc好文章,谢谢
关于domodel的返回值不太明白 点击确定或取消那两个button进行退出,是要添加click事件函数吗?还是自动退出呀
写得非常不错,支持
INT_PTR nR
// 用于保存DoModal函数的返回值
CTipDlg tipD
// 构造对话框类CTipDlg的实例
nRes = tipDlg.DoModal();
// 弹出对话框
if (IDCANCEL == nRes)
// 判断对话框退出后返回值是否为IDCANCEL,如果是则return,否则继续向下执行
}第一句总是说没有定义标识符,我按上面的方法改了将指定的头文件按顺序加到前头去了,可还是编译出错,说 CTipDlg没有定义。1&f:\vs文件\addition\addition\additiondlg.cpp(172): error C2065: “CTipDlg”: 未声明的标识符1&f:\vs文件\addition\addition\additiondlg.cpp(172): error C2146: 语法错误: 缺少“;”(在标识符“tipDlg”的前面)1&f:\vs文件\addition\addition\additiondlg.cpp(172): error C2065: “tipDlg”: 未声明的标识符1&f:\vs文件\addition\addition\additiondlg.cpp(173): error C2065: “tipDlg”: 未声明的标识符
if (IDCANCEL == nRes)我再这句设置了断点 nRes显示的值为1或者21.为什么IDCANCEL 可以响应?2.如果删除了自动生成的button这样写依旧有用么?
鸡啄米老师,首先非常感谢您的这份教程,受益颇多。在这里我想问一下,如果我想要在一开始点击.exe文件后就创建出多个属性页,而不用button按钮的消息处理函数弹出对话框的话,该怎么实现呢?我尝试了做了一些,没能成功,希望您能帮忙解答。
为什么nRes没有声明呢
为什么要修改这个对话框模板的ID??
感觉最后一个计算和的输入框,应该设置成不能输入数字,因为是显示计算结果的
error C1083: 无法打开包括文件: “TipDlg.h”: No such file or directory为什么呢horuakuti 于
9:08:53 回复&在对话框模板上点右键选择“Add Class...”,弹出添加类的对话框,设置“Class name”为CTipDlg,点“OK”。在Solution Explorer中可以看到生成了CTipDlg类的头文件TipDlg.h和源文件TipDlg.cpp。&你应该是缺少了这一步,所以显示没有定义
我用的是VS2013的
和你的2010的差别大吗?
老师呀,vs2010是中文版多好呀。。。
首先谢谢博主无私的分享,想请教下鸡啄米老师:为何一个程序弹出一个窗口后,在关闭之前,本程序的其他按钮无法操作,这样的情况叫做“模态”对话框?“模态”这个名字的缘起是什么?还有,INT_PTR nRes;假如对比这句话,比如int这三个字母是整形数据的名字,那这个INT_PRT是属于哪一种类型的名字?
楼主这个教程很不错,讲得非常好
完全随机文章[已解决]vbs如何实现:点击指定弹出框/提示框/对话框上的指定按钮? - VBS求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子1130&积分463&技术9 &捐助50 &注册时间&
[已解决]vbs如何实现:点击指定弹出框/提示框/对话框上的指定按钮?
本帖最后由 pcl_test 于
23:58 编辑
[已解决]vbs如何实现:点击弹出框/提示框上的指定按钮?
vbs循环监控特定标题的窗口,如果弹出来窗口,就点击窗口上的指定按钮
——————————————————————————————————
经过反复测试:
1、某个exe软件运行的时候,有时候会弹出某个特定标题的窗口。
默认是取消框。如果先按1次键盘的左箭头/TAB按键,再按1次键盘的回车/空格键,
都可以达到预期效果(都可以选中确定按钮,然后让窗口关闭)。
2、vbs代码,无论如何修改,都不能实现选中确定按钮、并点击确定让窗口关闭。
每次都只能点击到“取消”按钮。
多谢Nsqs的帮忙。
sendkeys的方法是模拟键盘,如果窗口内的按钮不支持快捷键,sendkeys就不能用了
扩展第三方程序,可以调用里面的方法向系统直接发送消息,
按下窗口里面的按钮。用sendmessage是向系统发送系统指令
系统接收什么就执行什么 非模拟键盘操作。。Const strWindowTitle = &窗口标题&& &' 监控的窗口标题
Do
&&Main
&&WScript.Sleep 2000
Loop
Sub Main()
&&Dim wso, fso
&&Set wso = CreateObject(&Wscript.Shell&)
&&Set fso=CreateObject(&Scripting.FileSystemObject&)
&&
&&'一直检查窗口,直到指定窗口出现
&&Do While wso.AppActivate(strWindowTitle) = False
& & WScript.sleep 1000& & ' 延时 1 秒
& &
&&Loop
&&
&&'激活窗口
&&Call WindowActive(strWindowTitle)
&&WScript.sleep 1000& & ' 延时 1 秒&&
&&'(发送 left左箭头)
&&wso.SendKeys &{left}&
&&WScript.sleep 1000& & ' 延时 1 秒
&&'(发送 回车)
&&wso.sendkeys &{enter}&&&
&&Set wso = NoThing
&&
End Sub
'激活窗口
Sub WindowActive(ByVal strWindowTitle)
&&Dim objWord, objTasks
&&Set objWord = CreateObject(&word.Application&)
&&Set objTasks = objWord.Tasks
&&If objTasks.Exists(strWindowTitle) Then
& & objTasks(strWindowTitle).Activate& && && &'激活窗口
& & objTasks(strWindowTitle).WindowState = 0&&'0平常模式、1最大化模式、2最小化模式
&&End If
&&objWord.Quit
End Sub复制代码
附件: 您需要才可以下载或查看附件。没有帐号?
勿发笼统的标题PB -4
帖子6288&积分18564&技术941 &捐助100 &注册时间&
帖子1162&积分1629&技术148 &捐助0 &注册时间&
& & &&cn-dos上我存着他当年问我问题的私信。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行
帖子1162&积分1629&技术148 &捐助0 &注册时间&
试试发送TAB切换焦点。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行
帖子1130&积分463&技术9 &捐助50 &注册时间&
& & 用键盘,就只能是1次左箭头+1次回车,才能满足要求。。
tab键好像没效果。
帖子192&积分321&技术37 &捐助0 &注册时间&
本帖最后由 Nsqs 于
13:57 编辑
sub click(win,subwin,s,c)
	dim BM_CLICK,h,api,hwnd,save_win,bh
	set api=CreateObject(&VBScript.API&)
	with api
		h=.FindWindow (vbNullString,win):BM_CLICK=&HF5
		save_win=.GetForegroundWindow
		for each Hwnd in .EnumSubHwnd(h,&*button*&,subwin):bh=hwnd:next
		do
			if .isWindow(bh)=0 then _
				exit do
			if .GetForegroundWindow&&bh then _
				.SetForegroundWindow h
			count=count+1
			.sendmessage bh,BM_CLICK ,0,0
			wsh.sleep int(s&&E+3&)
		loop while count&c
		.SetForegroundWindow save_win
	end with
	set api=nothing
end sub
call click(&window&,&确定&,1,1000)	'调用过程click 1秒执行一次,持续1000次复制代码双击注册
附件: 您需要才可以下载或查看附件。没有帐号?
帖子192&积分321&技术37 &捐助0 &注册时间&
本帖最后由 Nsqs 于
13:50 编辑
& & 更新了一下,优化了方法,直接调用click就可以循环了
帖子1130&积分463&技术9 &捐助50 &注册时间&
& & 1、VBScript.exe,双击注册。是否适合xp系统下使用?
2、代码直接保存为vbs运行吗?
3、能否修改下代码,实现一直循环2-3秒监控?
帖子192&积分321&技术37 &捐助0 &注册时间&
3自己改…我都写了注释
帖子1130&积分463&技术9 &捐助50 &注册时间&
——————————————————————————————————
经过反复测试:
1、特定标题的窗口弹出来,默认是取消框。如果先按1次键盘的左箭头/TAB按键,再按1次键盘的回车/空格键,
都可以达到预期效果(都可以选中确定按钮,然后让窗口关闭)。
2、vbs代码,无论如何修改,都不能实现选中确定按钮、并点击确定让窗口关闭。
每次都只能点击到“取消”按钮。
帖子1130&积分463&技术9 &捐助50 &注册时间&
& & xp系统下,你的6楼最新的代码,出现错误提示。
附件: 您需要才可以下载或查看附件。没有帐号?
帖子192&积分321&技术37 &捐助0 &注册时间&
你没有下载最新的exe?
帖子1130&积分463&技术9 &捐助50 &注册时间&
& & 哦。没下载。回头下载最新exe再测试下。谢谢
帖子192&积分321&技术37 &捐助0 &注册时间&
回复&&Nsqs
& & 哦。没下载。回头下载最新exe再测试下。谢谢
ygqiang 发表于
& & 如果是已经有旧exe并且你注册过了你就不需要再注册一次直接替换旧exe就可以了.如果没注册过就把新exe替换以后再双击打开注册就能用最新代码了
帖子1130&积分463&技术9 &捐助50 &注册时间&
替换旧exe?
exe文件存放在系统哪个目录下?
[通过 QQ、MSN 分享给朋友]

我要回帖

更多关于 c 消息对话框 的文章

 

随机推荐