引言

如果你不是只在大集团公司工作过的话,你一定会有机会接触到MySQL,虽然它并不支持事务处理,存储过程,但是它提供的功能一定能满足你的大部分需求,另外,简洁的MySQL也有一些它独到的优势,在有些时候,它的速度甚至超过大型数据库。

那么如何在.NET中访问MySQL数据库呢?也许很多人马上会说:用OLEDB嘛,但是事实上采用.NET OleDb Data Provider并不能访问MySQL,如果你使用的话,系统会提示你:"Net Data OLE DB 提供程序 (System.Data.Odbc) 不支持 MSDASQL 提供程序(用于 Odbc 驱动程序的 Microsoft OLE DB 提供程序)。",是什么原因我并不知道,按照MySQLDriverCS的作者的说法就是它被"abandoned by the owner",呵呵,兴许还有些故事。

幸好,我们还有其它的选择,这里就要介绍两种访问MySQL数据库的办法。

使用ODBC.NET

ODBC.NET(全称ODBC .NET Data Provider)是一个免费的.NET Framework附加组件,需要到微软公司的网站上去下载,下载地址为:http://download.microsoft.com/download/dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msi,它需要系统已经安装MDAC 2.7或者更高版本。另外,还需要安装MySQL的ODBC驱动程序,下载地址为:http://www.mysql.com/downloads/api-myodbc-2.50.html,还需要在"ODBC数据源管理器"中配置一下DSN,如下图所示:

看原大图

在对象的设计上,ODBC.NET也跟OLEDB,SQL等一样,分别为OdbcConnection, OdbcCommand, OdbcDataAdapter, OdbcDataReader,用法也完全一样,如果你希望用ODBC .NET来代替以前的OleDb .NET Data Provider,事实上完全可以通过查找替换的办法来修改你的程序。

以下是一段代码示例:

try
{
string constr = "DSN=MySQL;" + "UID=;" +"PWD="; ;
conn = new OdbcConnection(constr);
conn.Open();
string query = "insert into test.dbtable values10,‘disksidkfsdi‘, ‘asdfaf‘, ‘adsfasdf‘)";
string tmp = null;
OdbcCommand cmd = new OdbcCommand(query, conn);
for(int i = 0; i < 100000; i++)
{
cmd.ExecuteNonQuery();
}
cmd.Dispose();
conn.Close();
query = "select * from test.dbtable";
OdbcCommand cmd2 = newOdbcCommand(query, conn);
conn.Open();
OdbcDataReader reader = cmd2.ExecuteReader();
while(reader.Read())
{
tmp = reader[0].ToString();
tmp = reader[1].ToString();
tmp = reader[2].ToString();
tmp = reader[3].ToString();
}
conn.Close();
query = "delete from test.dbtable";
OdbcCommand cmd3 = newOdbcCommand(query, conn);
conn.Open();
cmd3.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
只要是用C#写过数据库应用的人一定能知道,上面的代码执行了十万次插入数据和读取数据,最后将数据记录全部删除的操作。

使用MySQLDriverCS

可能大部分的人都不知道这个东西,MySQLDriverCS是MySQL数据库的一个免费开源的.NET驱动程序。和Sql .NET Data Provider是为Sql Server一样,它是专门为MySQL设计的,可以叫做MySQL .NET Data Provider。使用他不需要额外的去设置ODBC数据源,基本上只要能连接到MySQL就能通过MySQLDriverCS来访问。

MySQLDriverCS是SourceForge.NET上的一个项目,不过不知道什么原因,这个网站在国内访问不到。

下面是使用MySQLDriverCS的代码示例:

MySQLConnection conn = null;
try
{
string connstr = "Data Source=MySQL;Password=root;User ID=root;Location=localhost";
conn = new MySQLConnection(constr);
conn.Open();
string query = "insert into test.dbtable values(10, ‘disksidkfsdi‘, ‘asdfaf‘, ‘adsfasdf‘)";
string tmp = null;
MySQLCommand cmd = new MySQLCommand(query, conn);
for(int i = 0; i < 100000; i++)
{
cmd.ExecuteNonQuery();
}
cmd.Dispose();
conn.Close();
query = "select * from test.dbtable";
MySQLCommand cmd2 = new MySQLCommand(query, conn);
conn.Open();
MySQLDataReader reader = cmd2.ExecuteReaderEx();
while(reader.Read())
{
tmp = reader[0].ToString();
tmp = reader[1].ToString();
tmp = reader[2].ToString();
tmp = reader[3].ToString();
}
conn.Close();
query = "delete from test.dbtable";
MySQLCommand cmd3 = new MySQLCommand(query, conn);
conn.Open();
cmd3.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
和上面的那段代码几乎一模一样,所不同的是Odbc变成了MySQL,另外,需要注意的一点是Command的ExecuteReader方法在MySQLDriverCS中变成了ExecuteReaderEx,还有些细微的差别请参考附带的文档详细的介绍。

性能测试

有些读者其实已经看出来我以上写的那段代码的用意,对了,其实目的就是用来进行性能测试的。以上两段代码的执行时间分别是:ODBC.NET为 24秒左右,MySQLDriverCS为17秒左右。结果并不出人意外,作为MySQL的专用数据驱动程序,MySQLDriverCS的速度大大快于 ODBC.NET是在情理之中的。

总结

本文介绍了两种MySQL数据库访问的方法,同时对它们的性能做了一个简单的测试,希望能为各位读者在采用MySQL数据库开发.NET应用的时候提供一个有价值的参考。

一、不能盲目相信用户输入

在Web应用开发中,开发者最大的失误往往是无条件地信任用户输入,假定用户(即使是恶意用户)总是受到浏览器的限制,总是通过浏览器和服务器交 互,从而打开了攻击Web应用的大门。实际上,黑客们攻击和操作Web网站的工具很多,根本不必局限于浏览器,从最低级的字符模式的原始界面(例如 telnet),到CGI脚本扫描器、Web代理、Web应用扫描器,恶意用户可能采用的攻击模式和手段很多。

因此,只有严密地验证用户输入的合法性,才能有效地抵抗黑客的攻击。应用程序可以用多种方法(甚至是验证范围重叠的方法)执行验证,例如,在认可 用户输入之前执行验证,确保用户输入只包含合法的字符,而且所有输入域的内容长度都没有超过范围(以防范可能出现的缓冲区溢出攻击),在此基础上再执行其 他验证,确保用户输入的数据不仅合法,而且合理。必要时不仅可以采取强制性的长度限制策略,而且还可以对输入内容按照明确定义的特征集执行验证。下面几点 建议将帮助你正确验证用户输入数据:

⑴ 始终对所有的用户输入执行验证,且验证必须在一个可靠的平台上进行,应当在应用的多个层上进行。
⑵ 除了输入、输出功能必需的数据之外,不要允许其他任何内容。
⑶ 设立“信任代码基地”,允许数据进入信任环境之前执行彻底的验证。
⑷ 登录数据之前先检查数据类型。
⑸ 详尽地定义每一种数据格式,例如缓冲区长度、整数类型等。
⑹ 严格定义合法的用户请求,拒绝所有其他请求。
⑺ 测试数据是否满足合法的条件,而不是测试不合法的条件。这是因为数据不合法的情况很多,难以详尽列举。

二、五种常见的ASP.NET安全缺陷

下面给出了五个例子,阐述如何按照上述建议增强应用程序的安全性。这些例子示范了代码中可能出现的缺陷,以及它们带来的安全风险、如何改写最少的代码来有效地降低攻击风险。

2.1 篡改参数

◎ 使用ASP.NET域验证器

盲目信任用户输入是保障Web应用安全的第一敌人。用户输入的主要来源是HTML表单中提交的参数,如果不能严格地验证这些参数的合法性,就有可能危及服务器的安全。

下面的C#代码查询后端SQL Server数据库,假设user和password变量的值直接取自用户输入:
SqlDataAdapter my_query = new SqlDataAdapter(
 "SELECT * FROM accounts WHERE acc_user=‘" + user + "‘ AND acc_password=‘" + password, the_connection);
从表面上看,这几行代码毫无问题,实际上却可能引来SQL注入式攻击。攻击者只要在user输入域中输入“OR 1=1”,就可以顺利登录系统,或者只要在查询之后加上适当的调用,就可以执行任意Shell命令:
‘; EXEC master..xp_cmdshell(Oshell command here‘)–

■ 风险分析
在编写这几行代码时,开发者无意之中作出了这样的假定:用户的输入内容只包含“正常的”数据——合乎人们通常习惯的用户名字、密码,但不会包含引 号之类的特殊字符,这正是SQL注入式攻击能够得逞的根本原因。黑客们可以借助一些具有特殊含义的字符改变查询的本意,进而调用任意函数或过程。

■ 解决方案
域验证器是一种让ASP.NET开发者对域的值实施限制的机制,例如,限制用户输入的域值必须匹配特定的表达式。
要防止上述攻击行为得逞,第一种办法是禁止引号之类的特殊字符输入,第二种办法更严格,即限定输入域的内容必须属于某个合法字符的集合,例如“[a-zA-Z0-9]*”。

2.2 篡改参数之二

◎ 避免验证操作的漏洞

然而,仅仅为每个输入域引入验证器还不能防范所有通过修改参数实施的攻击。在执行数值范围检查之时,还要指定正确的数据类型。

也就是说,在使用ASP.NET的范围检查控件时,应当根据输入域要求的数据类型指定适当的Type属性,因为Type的默认值是String。

<!– 要求输入值必须是1-9之间的数字 –>
<asp:RangeValidator … MinimumValue="1" MaximumValue="9" …/>

■ 风险分析
由于没有指定Type属性值,上面的代码将假定输入值的类型是String,因此RangeValidator验证器只能确保字符串由0-9之间的字符开始,“0abcd”也会被认可。

■ 解决方案
要确保输入值确实是整数,正确的办法是将Type属性指定为Integer:
<!– 要求输入值必须是1-9之间的数字 –>
<asp:RangeValidator … MinimumValue="1"
MaximumValue="9" Type="Integer"

2.3 信息泄漏

◎ 让隐藏域更加安全

在ASP.NET应用中,几乎所有HTML页面的__VIEWSTATE隐藏域中都可以找到有关应用的信息。由于__VIEWSTATE是 BASE 64编码的,所以常常被忽略,但黑客可以方便地解码BASE 64数据,用不着花什么力气就可以得到__VIEWSTATE提供的详细资料。

■ 风险分析
默认情况下,__VIEWSTATE数据将包含:
⑴ 来自页面控件的动态数据。
⑵ 开发者在ViewState中显式保存的数据。
⑶ 上述数据的密码签字。

■ 解决方案
设置EnableViewStatMAC="true",启用__VIEWSTATE数据加密功能。然后,将machineKey验证类型设置成3DES,要求ASP.NET用Triple DES对称加密算法加密ViewState数据。

2.4 SQL注入式攻击

◎ 使用SQL参数API

正如前文“篡改参数”部分描述的,攻击者可以在输入域中插入特殊字符,改变SQL查询的本意,欺骗数据库服务器执行恶意的查询。

■ 风险分析
恶意查询有可能获取后端数据库保存的任何信息,例如客户信用卡号码的清单。

■ 解决方案
除了前面介绍的办法——用程序代码确保输入内容只包含有效字符,另一种更加健壮的办法是使用SQL参数API(例如ADO.NET提供的API),让编程环境的底层API(而不是程序员)来构造查询。

使用这些API时,开发者或者提供一个查询模板,或者提供一个存储过程,然后指定一系列的参数值,由底层API将参数值嵌入到查询模板,然后将构 造出来的查询提交给服务器查询。这种办法的好处是确保参数能够正确地嵌入,例如,系统将对引号进行转义处理,从根本上杜绝SQL注入式攻击的发生。同时, 在表单中引号仍是一个允许输入的有效字符,这也是使用底层API的一个优点。

按照这种思路修改前文“篡改参数”部分的例子,结果如下:
SqlDataAdapter my_query = new SqlDataAdapter("SELECT * FROM accounts
WHERE acc_user= @user AND acc_password=@pass", the_connection);
SqlParameter userParam = my_query.Select_Command.Parameters.Add(
"@user",SqlDb.VarChar,20);
userParam.Value=user;
SqlParameter passwordParam = my_query.Select_Command.Parameters.Add(
"@",SqlDb.VarChar,20);
asswordParam.Value=password;

2.5 跨站脚本执行

◎ 对外发的数据进行编码

跨站脚本执行(Cross-site scripting)是指将恶意的用户输入嵌入到应答(HTML)页面。例如,下面的ASP.NET页面虽然简单,却包含着一个重大的安全缺陷:

<%@ Page Language="vb" %>
<asp:Label id="Label1" runat="server">
标签文字
</asp:Label>
<form method="post" runat="server" ID="Form1">
请在此处输入反馈信息<br>
<asp:Textbox ID="feedback" runat="server"/><br>
<asp:Button id="cmdSubmit" runat="server"
Text="提交!" >
</asp:Button>
</form>
<script runat="server">
Sub do_feedback(sender As Object, e As System.EventArgs)
Label1.Text=feedback.Text
End Sub
</script>

■ 风险分析
攻击者可以用JavaScript代码构造一个恶意的查询,点击链接时JavaScript就会运行。举例来说,脚本可以通过下面的用户输入来嵌入:
<script>alert(document.cookie)
</script>

■ 解决方案
在一个双层的安全体系中,对HTML页面中出现的外发用户数据执行输入验证和HTML编码,确保浏览器只把用户输入数据当成纯粹的文本,而不是其他具有特殊含义的内容,例如HTML代码、JavaScript脚本。

对于本例,只要加入一个HtmlEncode调用即可:
Label1.Text=Server.HtmlEncode(feedback.Text)

这样,应答HTML流将包含用户输入内容的HTML编码版本,也就是说,浏览器不会执行用户输入的JavaScript代码,因为根本不存在HTML的“<SCRIPT>”标记,用户输入的“<”和“>”字符已经被替换成HTML编码版本,即“<”和“>”。

三、使用自动安全测试工具

由于客户需求不断变化,一些单位平均每三个月就要部署新的应用,同时由于人员流动,所以对开发者快速开发健壮的、高质量的代码寄予很高的期望。虽 然对所有开发者进行代码安全技术的培训是十分必要的,但不可否认,自动检测代码安全漏洞的工具也有助于快速开发安全的应用程序。

到目前为止,开发者常用的工具只能涵盖功能测试的特定方面,例如性能测试,BUG/故障点侦查。人工检查代码有着许多与生俱来的局限,而且要求开发者具有丰富的代码安全经验,所以对于编写高质量的应用来说,面向应用程序安全及其在恶意环境下行为的工具也是十分关键的。

要迅速提高应用的质量和安全性,最有效的办法是给开发者提供一个自动测试应用的工具。如果在单元测试期间,工具能够检测出应用的安全缺陷,并将修 补建议嵌入到代码之中,开发者就能立即找出代码中存在的错误,不仅方便了现有错误的修改,而且也有助于避免将来再犯同样的错误,不断地提高代码抗御攻击的 能力。

结束语

Web服务应用正在爆炸式增长,越来越多的应用被推出到防火墙之外,安全性脆弱的Web应用面临的风险也只会有增无减。同时,为了在紧迫的时限之 前快速完成应用开发,开发者面临的压力也越来越大。注重编写代码时的安全问题,同时投入必要的资源,这样才能为未来的Web服务应用做好准备,同时确保当 前应用的高质量。只有从应用的出生之日开始就采取正确的措施来确保其安全性,才能构造出高质量、安全的应用。

1、iis配置Wap环境

在作为wap站点的属性-->Http头-->MIME映射中添加新的文件类型,具体如下:
关联文件名 内容类型
wml text/vnd.wap.wml
wmlc application/vnd.wap.wamlc
wmls text/vnd.wap.wmlscript
wmlsc application/vnd.wap.wmlscript
wbmp image/vnd.wap.wbmp
编写一个wml文件或者使用asp编写一个动态网页
如果使用asp编写,在源码的开始添加
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.ContentType = "text/vnd.wap.wml; charset=utf-8"%>
编码采用utf-8就可以使用模拟器进行浏览了。

2、wap中的编码比较严格,标签区分大小写。标签一定要对应。初学者经常犯这样的错误

3、说到标签对应就涉及到这样一个问题。当在一个表中查询记录的时候,在asp中没有记录就输出“没有记录提示”并response.end。但是在wap中不行,因为这样就不会输出</card></wml>等闭合标签。
我采用的方法是。得到记录集后

if rs.eof then
Wrong="暂时没有记录。。。"
else
‘正常的进行页面显示。。。。。
end if
respong.write Wrong

</p>
</card>
</wml>
这样可以避免标签不闭合。

4、图片下载中首先一定要做到

a、图片格式要正确:有的手机支持png 有的支持gif、bmp、jpg 。(联通CDMA的大部分都支持png)
b、图片的路径要正确:绝对路径 比如http://****/PicDown/aa.png
c、图片的大小要适当:预览的图片不能超过10kb,供下载的图片不能超过30kb。(这个我也不知道有没有标准,这是我在实际测试中得到的数据),下载有些手机支持图片或者铃声可能还要大 <50kb,但是为了照顾大多数手机所以,建议<30kb。
d、图片的大小一定要和图片的名称对应,也就是说 aa.png是多么大,在其size中就写多么大,这两个是对应的。
e、有的手机在手机内存储图片达到一定数量时候,就会提示“下载个数过多”等类似提示,有的手机有预览-->保存(如:MOTO)有的没有,下载后直接保存到手机中(LG8180)。
f、判断用户下载是否成功,可以在指定的文件中获得Status,if Status=‘ok’ 则表明下载成功,进行提示下载成功、下载次数+1等操作,否则,提示下载失败。

5、wap中的分页

分页和web中是一样的,只是有些功能比较简化了,下面是常用的分页,没有写成函数是方便大家修改。

在打开记录集后写,如下代码:

<%
filepath=request.servervariables("path_info")%>
<%page=1
page=request("page")
rs.PageSize = 8 ‘每页的记录的条数
if Not IsEmpty(trim(Request("Page"))) then
Page = CInt(Request("Page"))
if Page > rs.PageCount then
rs.AbsolutePage = rs.PageCount
elseif Page <= 0 then
Page = 1
else
rs.AbsolutePage = Page
end if
End if
%>

然后再想显示分页的地方,一般是在记录集循环输出完毕的后面写:

<%if rs.pagecount<>1 and rs.pagecount<>0 then%>
<br/>
<%if page>rs.pagecount then%>
<a title="确定" href="<%=filepath%>?Page=<% =page -1 %>">上一页</a>
<%else%>
<%if page<>1 then %>
<a title="确定" href="<%=filepath%>?Page=<% =page -1 %>">上一页</a><br/>
<% end if %>
<a title="确定" href="<%=filepath%>?Page=<% = page + 1%>">下一页</a>
<%end if %>
<%end if
response.Write "第"&page&"页 共"&rs.pagecount&"页"
%>

注意显示的时候首先显示下一页,然后再显示上一页这和web上的习惯不太一样。

另外,如果这页的内容是显示是通过上页传送来的参数,作为条件的,则在 类似
<a title="确定" href="<%=filepath%>?Page=<% = page + 1%>">下一页</a>
的地方都要加上该参数,否则进行下一页连接的时候就会把参数丢掉。
例如:从上页用户选择的新闻的种类,来显示新闻。在List.asp页面首先写,NewType=request.form("NewType")得到用户选择的新闻的类型。
然后SQL="Select ……….where NewType=‘"&NewType&"‘" 。完成记录集合的准备工作。注意:在进行下页面的时候要写成
<a title="确定" href="<%=filepath%>?Page=<% =page -1 %>&NewType=<%=NewType%>">上一页</a><br/>,
这样的形式,有多少条件后面跟多少条件。
但是这样就产生问题了,即时这样写NewType=request.form("NewType")也得不到NewType的值。所以在页首刚开始的地方应该写成NewType=request("NewType")。就可以实现把参数带到下一页的连接中了。

wap中上一条、下一条的问题。

在开发中,新闻、笑话、下载等业务为用户提供方便基本都需要在一条记录完成后,再提供下一条记录的操作,下面是简要的对下一条记录实现方法的描述。

比如显示新闻是国际新闻的记录,list.asp来进行显示,通过sql语句select * from NewsInfo where type=‘国际‘ ,来得到符合条件的记录集,用户在浏览过程中,当前记录的id=10,下一条记录的id是idnext=10+1=11,上一条记录的id是idpre= 10-1=9,然后<a href="list.asp?id=‘"&IdNext&"‘">上一条</a>,这样的做法是欠缺 的,仅仅适用与id是连续的,也就是说所有国际新闻的id是连续的,如果国际新闻和国内新闻在表中是穿插写入的,那么你的id-1很可能是国内新闻,条件 限制type=‘国际‘ 就不起作用了。

正确且简练的做法应该是这样的(可能大家还有更好的做法):

当前的id是IdNow,表NewsInfo是按照id自增的。
获得idnext=select top 1 from NewsInfo where type=‘国际‘ and id>‘"&IdNow&"‘
获得Idpre=select top 1 from NewsInfo where type=‘国际‘ and id<‘"&IdNow&"‘ order by id desc

剩下的问题,就不用说了吧,注意,先显示下一条,然后显示上一条,这样才方便用户。

wap中新闻等图片和文字混排

Wap开发中,图片和文字混排,可以采用ubb编码,原理就是自己定义一共特殊的格式,采用mid和replace函数进行转换。比如定义
string1all = Replace(string1all,"" title="看原大图" target="_blank">
string1all = Replace(string1all,"" class="ubb_img" onload="javascript:DrawImage(this);" alt="看原大图"/>
"," "" alt=""""/></p><p>")

会使得图片居中显示。

新闻小说的分页

在wap中过长的新闻和小说,会给大家带来很大的不方便。所以要求进行分页显示,比如按照每页显示300字来举例子。

pageWordNum=300 ‘ 每页显示的字数,这里300可以是变量
StartWord = 1
Length=len(Content) ‘要显示内容的总的长度
PageAll=(Length+PageWordNum-1)\PageWordNum ‘该篇新闻总共可分的总页数

i=request.QueryString("i") ‘第几页的标记
if isnull(i) or i="" then ‘如果是新闻的刚开始则默认i=0
i=0
end if
Content = mid(Content,StartWord+i*PageWordNum,PageWordNum) ‘利用mid函数进行新闻内容的截取(mid函数的含义:从字符串中返回指定数目的字符)




<%
‘开始进行分页操作
if 0<=i<PageAll then
if cint(i)<cint(PageAll)-1 then%>
<a href="ListFengshuiInfo.asp?i=<%=i+1%>">下一页</a><br/>
<%end if
if cint(i)>0 then%>
<a href="ListFengshuiInfo.asp?i=<%=i-1%>">上一页</a><br/>
<%end if
end if
%>

结束。

注意:1、 <a href="ListFengshuiInfo.asp?i=<%=i+1%>">下一页</a>< br/>中ListFengshuiInfo.asp?i=<%=i+1%>可以按照你的实际环境的需要添加变量。
2、Mid函数的解释说明:
从字符串中返回指定数目的字符。
Mid(string, start[, length])
参数
string
字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null。
Start
string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
Length
要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。

1. API之网络函数

WNetAddConnection 创建同一个网络资源的永久性连接

WNetAddConnection2 创建同一个网络资源的连接

WNetAddConnection3 创建同一个网络资源的连接

WNetCancelConnection 结束一个网络连接

WNetCancelConnection2 结束一个网络连接

WNetCloseEnum 结束一次枚举操作

WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接

WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接

WNetEnumResource 枚举网络资源

WNetGetConnection 获取本地或已连接的一个资源的网络名称

WNetGetLastError 获取网络错误的扩展错误信息

WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称

WNetGetUser 获取一个网络资源用以连接的名字

WNetOpenEnum 启动对网络资源进行枚举的过程

2. API之消息函数

BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口

GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置

GetMessageTime 取得消息队列中上一条消息处理完毕时的时间

PostMessage 将一条消息投递到指定窗口的消息队列

PostThreadMessage 将一条消息投递给应用程序

RegisterWindowMessage 获取分配给一个字串标识符的消息编号

ReplyMessage 答复一个消息

SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口

SendMessageCallback 将一条消息发给窗口

SendMessageTimeout 向窗口发送一条消息

SendNotifyMessage 向窗口发送一条消息

3. API之文件处理函数

CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等

CompareFileTime 对比两个文件的时间

CopyFile 复制文件

CreateDirectory 创建一个新目录

CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台

CreateFileMapping 创建一个新的文件映射对象

DeleteFile 删除指定文件

DeviceIoControl 对设备执行指定的操作

DosDateTimeToFileTime 将DOS日期和时间值转换成一个 win32 FILETIME 值

FileTimeToDosDateTime 将一个 win32 FILETIME 值转换成DOS日期和时间值

FileTimeToLocalFileTime 将一个FILETIME结构转换成本地时间

FileTimeToSystemTime 根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构

FindClose 关闭由FindFirstFile函数创建的一个搜索句柄

FindFirstFile 根据文件名查找文件

FindNextFile 根据调用FindFirstFile函数时指定的一个文件名查找下一个文件

FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区

FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘

GetBinaryType 判断文件是否可以执行

GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数

GetCurrentDirectory 在一个缓冲区中装载当前目录

GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量

GetDiskFreeSpaceEx 获取与一个磁盘的组织以及剩余空间容量有关的信息

GetDriveType 判断一个磁盘驱动器的类型

GetExpandedName 取得一个压缩文件的全名

GetFileAttributes 判断指定文件的属性

GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制

GetFileSize 判断文件长度

GetFileTime 取得指定文件的时间信息

GetFileType 在给出文件句柄的前提下,判断文件类型

GetFileVersionInfo 从支持版本标记的一个模块里获取文件版本信息

GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区

GetFullPathName 获取指定文件的完整路径名

GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母

GetLogicalDriveStrings 获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径

GetOverlappedResult 判断一个重叠操作当前的状态

GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取一个整数值

GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的一个列表

GetPrivateProfileString 为初始化文件中指定的条目取得字串

GetProfileInt 取得win.ini初始化文件中指定条目的一个整数值

GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的一个列表

GetProfileString 为win.ini初始化文件中指定的条目取得字串

GetShortPathName 获取指定文件的短路径名

GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名

GetTempFileName 这个函数包含了一个临时文件的名字,它可由应用程序使用

GetTempPath 获取为临时文件指定的路径

GetVolumeInformation 获取与一个磁盘卷有关的信息

GetWindowsDirectory 获取Windows目录的完整路径名

hread 参考lread

hwrite 参考lwrite函数

lclose 关闭指定的文件

lcreat 创建一个文件

llseek 设置文件中进行读写的当前位置

LockFile 锁定文件的某一部分,使其不与其他应用程序共享

LockFileEx 与LockFile相似,只是它提供了更多的功能

lopen 以二进制模式打开指定的文件

lread 将文件中的数据读入内存缓冲区

lwrite 将数据从内存缓冲区写入一个文件

LZClose 关闭由LZOpenFile 或 LZInit函数打开的一个文件

LZCopy 复制一个文件

LZInit 这个函数用于初始化内部缓冲区

LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件

LZRead 将数据从文件读入内存缓冲区

LZSeek 设置一个文件中进行读写的当前位置

MapViewOfFile 将一个文件映射对象映射到当前应用程序的地址空间

MoveFile 移动文件

OpenFile 这个函数能执行大量不同的文件操作

OpenFileMapping 打开一个现成的文件映射对象

QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况

ReadFile 从文件中读出数据

ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调

RegCloseKey 关闭系统注册表中的一个项(或键)

RegConnectRegistry 访问远程系统的部分注册表

RegCreateKey 在指定的项下创建或打开一个项

RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数

RegDeleteKey 删除现有项下方一个指定的子项

RegDeleteValue 删除指定项下方的一个值

RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx

RegEnumKeyEx 枚举指定项下方的子项

RegEnumValue 枚举指定项的值

RegFlushKey 将对项和它的子项作出的改动实际写入磁盘

RegGetKeySecurity 获取与一个注册表项有关的安全信息

RegLoadKey 从以前用RegSaveKey函数创建的一个文件里装载注册表信息

RegNotifyChangeKeyValue 注册表项或它的任何一个子项发生变化时,用这个函数提供一种通知机制

RegOpenKey 打开一个现有的注册表项

RegOpenKeyEx 打开一个现有的项。在win32下推荐使用这个函数

RegQueryInfoKey 获取与一个项有关的信息

RegQueryValue 取得指定项或子项的默认(未命名)值

RegQueryValueEx 获取一个项的设置值

RegReplaceKey 用一个磁盘文件保存的信息替换注册表信息;并创建一个备份,在其中包含当前注册表信息

RegRestoreKey 从一个磁盘文件恢复注册表信息

RegSaveKey 将一个项以及它的所有子项都保存到一个磁盘文件

RegSetKeySecurity 设置指定项的安全特性

RegSetValue 设置指定项或子项的默认值

RegSetValueEx 设置指定项的值

RegUnLoadKey 卸载指定的项以及它的所有子项

RemoveDirectory 删除指定目录

SearchPath 查找指定文件

SetCurrentDirectory 设置当前目录

SetEndOfFile 针对一个打开的文件,将当前文件位置设为文件末尾

SetFileAttributes 设置文件属性

SetFilePointer 在一个文件中设置当前的读写位置

SetFileTime 设置文件的创建、访问及上次修改时间

SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果

SetVolumeLabel 设置一个磁盘的卷标(Label)

SystemTimeToFileTime 根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构

UnlockFile 解除对一个文件的锁定

UnlockFileEx 解除对一个文件的锁定

UnmapViewOfFile 在当前应用程序的内存地址空间解除对一个文件映射对象的映射

VerFindFile 用这个函数决定一个文件应安装到哪里

VerInstallFile 用这个函数安装一个文件

VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称

VerQueryValue 这个函数用于从版本资源中获取信息

WriteFile 将数据写入一个文件

WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了一个完整的回调

WritePrivateProfileSection 为一个初始化文件(.ini)中指定的小节设置所有项名和值

WritePrivateProfileString 在初始化文件指定小节内设置一个字串

WriteProfileSection 为Win.ini初始化文件中一个指定的小节设置所有项名和值

WriteProfileString 在Win.ini初始化文件指定小节内设置一个字串

4. API之打印函数

AbortDoc 取消一份文档的打印

AbortPrinter 删除与一台打印机关联在一起的缓冲文件

AddForm 为打印机的表单列表添加一个新表单

AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号

AddMonitor 为系统添加一个打印机监视器

AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口

AddPrinter 在系统中添加一台新打印机

AddPrinterConnection 连接指定的打印机

AddPrinterDriver 为指定的系统添加一个打印驱动程序

AddPrintProcessor 为指定的系统添加一个打印处理器

AddPrintProvidor 为系统添加一个打印供应商

AdvancedDocumentProperties 启动打印机文档设置对话框

ClosePrinter 关闭一个打开的打印机对象

ConfigurePort 针对指定的端口,启动一个端口配置对话框

ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接

DeleteForm 从打印机可用表单列表中删除一个表单

DeleteMonitor 删除指定的打印监视器

DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口

DeletePrinter 将指定的打印机标志为从系统中删除

DeletePrinterConnection 删除与指定打印机的连接

DeletePrinterDriver 从系统删除一个打印机驱动程序

DeletePrintProcessor 从指定系统删除一个打印处理器

DeletePrintProvidor 从系统中删除一个打印供应商

DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息

DocumentProperties 打印机配置控制函数

EndDocAPI 结束一个成功的打印作业

EndDocPrinter 在后台打印程序的级别指定一个文档的结束

EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页

EndPagePrinter 指定一个页在打印作业中的结尾

EnumForms 枚举一台打印机可用的表单

EnumJobs 枚举打印队列中的作业

EnumMonitors 枚举可用的打印监视器

EnumPorts 枚举一个系统可用的端口

EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序

EnumPrinters 枚举系统中安装的打印机

EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型

EnumPrintProcessors 枚举系统中可用的打印处理器

Escape 设备控制函数

FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象

FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化

FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因

FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区

GetForm 取得与指定表单有关的信息

GetJob 获取与指定作业有关的信息

GetPrinter 取得与指定打印机有关的信息

GetPrinterData 为打印机设置注册表配置信息

GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息

GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么

GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录

OpenPrinter 打开指定的打印机,并获取打印机的句柄

PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框

PrinterProperties 启动打印机属性对话框,以便对打印机进行配置

ReadPrinter 从打印机读入数据

ResetDC 重设一个设备场景

ResetPrinter 改变指定打印机的默认数据类型及文档设置

ScheduleJob 提交一个要打印的作业

SetAbortProc 为Windows指定取消函数的地址

SetForm 为指定的表单设置信息

SetJob 对一个打印作业的状态进行控制

SetPrinter 对一台打印机的状态进行控制

SetPrinterData 设置打印机的注册表配置信息

StartDoc 开始一个打印作业

StartDocPrinter 在后台打印的级别启动一个新文档

StartPage 打印一个新页前要先调用这个函数

StartPagePrinter 在打印作业中指定一个新页的开始

WritePrinter 将发送目录中的数据写入打印机

5. API之文本和字体函数

AddFontResource 在Windows系统中添加一种字体资源

CreateFont 用指定的属性创建一种逻辑字体

CreateFontIndirect 用指定的属性创建一种逻辑字体

CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统

DrawText 将文本描绘到指定的矩形中

DrawTextEx 与DrawText相似,只是加入了更多的功能

EnumFontFamilies 列举指定设备可用的字体

EnumFontFamiliesEx 列举指定设备可用的字体

EnumFonts 列举指定设备可用的字体

ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数

GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小

GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小

GetCharABCWidthsFloat 查询一种字体中一个或多个字符的A-B-C尺寸

GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串

GetCharWidth 调查字体中一个或多个字符的宽度

GetFontData 接收一种可缩放字体文件的数据

GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息

GetGlyphOutline 取得TureType字体中构成一个字符的曲线信息

GetKerningPairs 取得指定字体的字距信息

GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息

GetRasterizerCaps 了解系统是否有能力支持可缩放的字体

GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素

GetTextAlign 接收一个设备场景当前的文本对齐标志

GetTextCharacterExtra 判断额外字符间距的当前值

GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符

GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息

GetTextColor 判断当前字体颜色。通常也称为"前景色"

GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息

GetTextExtentPoint 判断一个字串的大小(范围)

GetTextFace 获取一种字体的字样名

GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息

GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态

PolyTextOut 描绘一系列字串

RemoveFontResource 从Windows系统中删除一种字体资源

SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体

SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置

SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距

SetTextColor 设置当前文本颜色。这种颜色也称为"前景色"

SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理

TabbedTextOut 支持制表站的一个文本描绘函数

TextOut 文本绘图函数

6. API之菜单函数

AppendMenu 在指定的菜单里添加一个菜单项

CheckMenuItem 复选或撤消复选指定的菜单条目

CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目

CreateMenu 创建新菜单

CreatePopupMenu 创建一个空的弹出式菜单

DeleteMenu 删除指定的菜单条目

DestroyMenu 删除指定的菜单

DrawMenuBar 为指定的窗口重画菜单

EnableMenuItem 允许或禁止指定的菜单条目

GetMenu 取得窗口中一个菜单的句柄

GetMenuCheckMarkDimensions 返回一个菜单复选符的大小

GetMenuContextHelpId 取得一个菜单的帮助场景ID

GetMenuDefaultItem 判断菜单中的哪个条目是默认条目

GetMenuItemCount 返回菜单中条目(菜单项)的数量

GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID

GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息

GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息

GetMenuState 取得与指定菜单条目状态有关的信息

GetMenuString 取得指定菜单条目的字串

GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置

GetSystemMenu 取得指定窗口的系统菜单的句柄

HiliteMenuItem 控制顶级菜单条目的加亮显示状态

InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动

InsertMenuItem 插入一个新菜单条目

IsMenu 判断指定的句柄是否为一个菜单的句柄

LoadMenu 从指定的模块或应用程序实例中载入一个菜单

LoadMenuIndirect 载入一个菜单

MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点

ModifyMenu 改变菜单条目

RemoveMenu 删除指定的菜单条目

SetMenu 设置窗口菜单

SetMenuContextHelpId 设置一个菜单的帮助场景ID

SetMenuDefaultItem 将一个菜单条目设为默认条目

SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)

SetMenuItemInfo 为一个菜单条目设置指定的信息

TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单

TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能

7. API之位图、图标和光栅运算函数

BitBlt 将一幅位图从一个设备场景复制到另一个

CopyIcon 制作指定图标或鼠标指针的一个副本。这个副本从属于发出调用的应用程序

CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作

CreateBitmap 按照规定的格式创建一幅与设备有关位图

CreateBitmapIndirect 创建一幅与设备有关位图

CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容

CreateCursor 创建一个鼠标指针

CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图

CreateDIBSection 创建一个DIBSection

CreateIcon 创建一个图标

CreateIconIndirect 创建一个图标

DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源

DestroyIcon 清除图标

DrawIcon 在指定的位置画一个图?

DrawIconEx 描绘一个图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能

ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之

ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来

GetBitmapBits 将来自位图的二进制位复制到一个缓冲区

GetBitmapDimensionEx 取得一幅位图的宽度和高度

GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息

GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里

GetIconInfo 取得与图标有关的信息

GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式

LoadBitmap 从指定的模块或应用程序实例中载入一幅位图

LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针

LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针

LoadIcon 从指定的模块或应用程序实例中载入一个图标

LoadImage 载入一个位图、图标或指针

MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理

PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景

PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。利用它可对位图进行旋转处理

SetBitmapBits 将来自缓冲区的二进制位复制到一幅位图

SetBitmapDimensionEx 设置一幅位图的宽度。以一毫米的十分之一为单位

SetDIBColorTable 设置选入设备场景的一个DIBSection的颜色表信息

SetDIBits 将来自与设备无关位图的二进制位复制到一幅与设备有关的位图里

SetDIBitsToDevice 将一幅与设备无关位图的全部或部分数据直接复制到一个设备

SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式

StretchBlt 将一幅位图从一个设备场景复制到另一个

StretchDIBits 将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景

8. API之绘图函数

AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作

AngleArc 用一个连接弧画一条线

Arc 画一个圆弧

BeginPath 启动一个路径分支

CancelDC 取消另一个线程里的长时间绘图操作

Chord 画一个弦

CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄

CloseFigure 描绘到一个路径时,关闭当前打开的图形

CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄

CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)

CopyMetaFile 制作指定(标准)图元文件的一个副本

CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子

CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)

CreateEnhMetaFile 创建一个增强型的图元文件设备场景

CreateHatchBrush 创建带有阴影图案的一个刷子

CreateMetaFile 创建一个图元文件设备场景

CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子

CreatePen 用指定的样式、宽度和颜色创建一个画笔

CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔

CreateSolidBrush 用纯色创建一个刷子

DeleteEnhMetaFile 删除指定的增强型图元文件

DeleteMetaFile 删除指定的图元文件

DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放

DrawEdge 用指定的样式描绘一个矩形的边框

DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序

DrawFocusRect 画一个焦点矩形

DrawFrameControl 描绘一个标准控件

DrawState 为一幅图象或绘图操作应用各式各样的效果

Ellipse 描绘一个椭圆,由指定的矩形围绕

EndPath 停止定义一个路径

EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录

EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录

EnumObjects 枚举可随同指定设备场景使用的画笔和刷子

ExtCreatePen 创建一个扩展画笔(装饰或几何)

ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域

FillPath 关闭路径中任何打开的图形,并用当前刷子填充

FillRect 用指定的刷子填充一个矩形

FlattenPath 将一个路径中的所有曲线都转换成线段

FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域

FrameRect 用指定的刷子围绕一个矩形画一个边框

GdiComment 为指定的增强型图元文件设备场景添加一条注释信息

GdiFlush 执行任何未决的绘图操作

GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中

GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列

GetArcDirection 画圆弧的时候,判断当前采用的绘图方向

GetBkColor 取得指定设备场景当前的背景颜色

GetBkMode 针对指定的设备场景,取得当前的背景填充模式

GetBrushOrgEx 判断指定设备场景中当前选定刷子起点

GetCurrentObject 获得指定类型的当前选定对象

GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置

GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄

GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里

GetEnhMetaFileDescription 返回对一个增强型图元文件的说明

GetEnhMetaFileHeader 取得增强型图元文件的图元文件头

GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板

GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄

GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区

GetMiterLimit 取得设备场景的斜率限制(Miter)设置

GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色

GetObjectAPI 取得对指定对象进行说明的一个结构

GetObjectType 判断由指定句柄引用的GDI对象的类型

GetPath 取得对当前路径进行定义的一系列数据

GetPixel 在指定的设备场景中取得一个像素的RGB值

GetPolyFillMode 针对指定的设备场景,获得多边形填充模式

GetROP2 针对指定的设备场景,取得当前的绘图模式

GetStockObject 取得一个固有对象(Stock)

GetSysColorBrush 为任何一种标准系统颜色取得一个刷子

GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成标准windows图元文件

InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形

LineDDA 枚举指定线段中的所有点

LineTo 用当前画笔画一条线,从当前位置连到一个指定的点

MoveToEx 为指定的设备场景指定一个新的当前画笔位置

PaintDesk 在指定的设备场景中描绘桌面墙纸图案

PathToRegion 将当前选定的路径转换到一个区域里

Pie 画一个饼图

PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件

PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录

PlayMetaFile 在指定的设备场景中回放一个图元文件

PlayMetaFileRecord 回放来自图元文件的单条记录

PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线

PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成

Polygon 描绘一个多边形

Polyline 用当前画笔描绘一系列线段

PolyPolygon 用当前选定画笔描绘两个或多个多边形

PolyPolyline 用当前选定画笔描绘两个或多个多边形

Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充

RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充

SelectClipPath 将设备场景当前的路径合并到剪切区域里

SelectObject 为当前设备场景选择图形对象

SetArcDirection 设置圆弧的描绘方向

SetBkColor 为指定的设备场景设置背景颜色

SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式

SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点

SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件

SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件

SetMiterLimit 设置设备场景当前的斜率限制

SetPixel 在指定的设备场景中设置一个像素的RGB值

SetPixelV 在指定的设备场景中设置一个像素的RGB值

SetPolyFillMode 设置多边形的填充模式

SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致

SetWinMetaFileBits 将一个标准Windows图元文件转换成增强型图元文件

StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域

StrokePath 用当前画笔描绘一个路径的轮廓。打开的图形不会被这个函数关闭

UnrealizeObject 将一个刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数

WidenPath 根据选定画笔的宽度,重新定义当前选定的路径

9. API之设备场景函数

CombineRgn 将两个区域组合为一个新区域

CombineTransform 驱动世界转换。它相当于依顺序进行两次转换

CreateCompatibleDC 创建一个与特定设备场景一致的内存设备场景

CreateDC 为专门设备创建设备场景

CreateEllipticRgn 创建一个椭圆

CreateEllipticRgnIndirect 创建一个内切于特定矩形的椭圆区域

CreateIC 为专用设备创建一个信息场景

CreatePolygonRgn 创建一个由一系列点围成的区域

CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的

CreateRectRgn 创建一个矩形区域

CreateRectRgnIndirect 创建一个矩形区域

CreateRoundRectRgn 创建一个圆角矩形

DeleteDC 删除专用设备场景或信息场景,释放所有相关窗口资源

DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标

EqualRgn 确定两个区域是否相等

ExcludeClipRect 从专用设备场景的剪裁区中去掉一个矩形区。矩形内不能进行绘图

ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定窗口的刷新区域

ExtCreateRegion 根据世界转换修改区域

ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区

FillRgn 用指定刷子填充指定区域

FrameRgn 用指定刷子围绕指定区域画一个外框

GetBoundsRect 获取指定设备场景的边界矩形

GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形

GetClipRgn 获取设备场景当前剪裁区

GetDC 获取指定窗口的设备场景

GetDCEx 为指定窗口获取设备场景。相比GetDC,本函数提供了更多的选项

GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示)

GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息

GetGraphicsMode 确定是否允许增强图形模式(世界转换)

GetMapMode 为特定设备场景调入映象模式

GetRegionData 装入描述一个区域信息的RgnData结构或缓冲区

GetRgnBox 获取完全包含指定区域的最小矩形

GetUpdateRgn 确定指定窗口的刷新区域。该区域当前无效,需要刷新

GetViewportExtEx 获取设备场景视口(viewport)范围

GetViewportOrgEx 获取设备场景视口起点

GetWindowDC 获取整个窗口(包括边框、滚动条、标题栏、菜单等)的设备场景

GetWindowExtEx 获取指定设备场景的窗口范围

GetWindowOrgEx 获取指定设备场景的逻辑窗口的起点

GetWindowRgn 获取窗口区域

GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换

IntersectClipRect 为指定设备定义一个新的剪裁区

InvalidateRgn 使窗口指定区域不活动,并将它加入窗口刷新区,使之可随后被重画

InvertRgn 通过颠倒每个像素值反转设备场景指定区域

LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标

ModifyWorldTransform 根据指定的模式修改世界转换

OffsetClipRgn 按指定量平移设备场景剪裁区

OffsetRgn 按指定偏移量平移指定区域

OffsetViewportOrgEx 平移设备场景视口区域

OffsetWindowOrgEx 平移指定设备场景窗口起点

PaintRgn 用当前刷子背景色填充指定区域

PtInRegion 确定点是否在指定区域内

PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)

RectInRegion 确定矩形是否有部分在指定区域内

RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)

ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景

RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景

SaveDC 将指定设备场景状态保存到Windows设备场景堆栈

ScaleViewportExtEx 缩放设备场景视口的范围

ScaleWindowExtEx 缩放指定设备场景窗口范围

ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形

SelectClipRgn 为指定设备场景选择新的剪裁区

SetBoundsRect 设置指定设备场景的边界矩形

SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)

SetMapMode 设置指定设备场景的映射模式

SetRectRgn 设置区域为指定的矩形

SetViewportExtEx 设置设备场景视口范围

SetViewportOrgEx 设置设备场景视口起点

SetWindowExtEx 设置指定设备场景窗口范围

SetWindowOrgEx 设置指定设备场景窗口起点

SetWindowRgn 设置窗口区域

SetWorldTransform 设置世界转换

ValidateRgn 激活窗口中指定区域,把它从刷新区移走

WindowFromDC 取回与某一设备场景相关的窗口的句柄

10. API之硬件与系统函数

ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义

Beep 用于生成简单的声音

CharToOem 将一个字串从ANSI字符集转换到OEM字符集

ClipCursor 将指针限制到指定区域

ConvertDefaultLocale 将一个特殊的地方标识符转换成真实的地方ID

CreateCaret 根据指定的信息创建一个插入符(光标),并将它选定为指定窗口的默认插入符

DestroyCaret 清除(破坏)一个插入符

EnumCalendarInfo 枚举在指定"地方"环境中可用的日历信息

EnumDateFormats 列举指定的"当地"设置中可用的长、短日期格式

EnumSystemCodePages 枚举系统中已安装或支持的代码页

EnumSystemLocales 枚举系统已经安装或提供支持的"地方"设置

EnumTimeFormats 枚举一个指定的地方适用的时间格式

ExitWindowsEx 退出windows,并用特定的选项重新启动

ExpandEnvironmentStrings 扩充环境字串

FreeEnvironmentStrings 翻译指定的环境字串块

GetACP 判断目前正在生效的ANSI代码页

GetAsyncKeyState 判断函数调用时指定虚拟键的状态

GetCaretBlinkTime 判断插入符光标的闪烁频率

GetCaretPos 判断插入符的当前位置

GetClipCursor 取得一个矩形,用于描述目前为鼠标指针规定的剪切区域

GetCommandLine 获得指向当前命令行缓冲区的一个指针

GetComputerName 取得这台计算机的名称

GetCPInfo 取得与指定代码页有关的信息

GetCurrencyFormat 针对指定的"地方"设置,根据货币格式格式化一个数字

GetCursor 获取目前选择的鼠标指针的句柄

GetCursorPos 获取鼠标指针的当前位置

GetDateFormat 针对指定的"当地"格式,对一个系统日期进行格式化

GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间

GetEnvironmentStrings 为包含了当前环境字串设置的一个内存块分配和返回一个句柄

GetEnvironmentVariable 取得一个环境变量的值

GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件

GetKBCodePage 由GetOEMCP取代,两者功能完全相同

GetKeyboardLayout 取得一个句柄,描述指定应用程序的键盘布局

GetKeyboardLayoutList 获得系统适用的所有键盘布局的一个列表

GetKeyboardLayoutName 取得当前活动键盘布局的名称

GetKeyboardState 取得键盘上每个虚拟键当前的状态

GetKeyboardType 了解与正在使用的键盘有关的信息

GetKeyNameText 在给出扫描码的前提下,判断键名

GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态

GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息

GetLocaleInfo 取得与指定"地方"有关的信息

GetLocalTime 取得本地日期和时间

GetNumberFormat 针对指定的"地方",按特定的格式格式化一个数字

GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页

GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型

GetSysColor 判断指定windows显示对象的颜色

GetSystemDefaultLangID 取得系统的默认语言ID

GetSystemDefaultLCID 取得当前的默认系统"地方"

GetSystemInfo 取得与底层硬件平台有关的信息

GetSystemMetrics 返回与windows环境有关的信息

GetSystemPowerStatus 获得与当前系统电源状态有关的信息

GetSystemTime 取得当前系统时间,这个时间采用的是"协同世界时间"(即UTC,也叫做GMT)格式

GetSystemTimeAdjustment 使内部系统时钟与一个外部的时钟信号源同步

GetThreadLocale 取得当前线程的地方ID

GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒)

GetTimeFormat 针对当前指定的"地方",按特定的格式格式化一个系统时间

GetTimeZoneInformation 取得与系统时区设置有关的信息

GetUserDefaultLangID 为当前用户取得默认语言ID

GetUserDefaultLCID 取得当前用户的默认"地方"设置

GetUserName 取得当前用户的名字

GetVersion 判断当前运行的Windows和DOS版本

GetVersionEx 取得与平台和操作系统有关的版本信息

HideCaret 在指定的窗口隐藏插入符(光标)

IsValidCodePage 判断一个代码页是否有效

IsValidLocale 判断地方标识符是否有效

keybd_event 这个函数模拟了键盘行动

LoadKeyboardLayout 载入一个键盘布局

MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换

MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换

MessageBeep 播放一个系统声音。系统声音的分配方案是在控制面板里决定的

mouse_event 模拟一次鼠标事件

OemKeyScan 判断OEM字符集中的一个ASCII字符的扫描码和Shift键状态

OemToChar 将OEM字符集的一个字串转换到ANSI字符集

SetCaretBlinkTime 指定插入符(光标)的闪烁频率

SetCaretPos 指定插入符的位置

SetComputerName 设置新的计算机名

SetCursor 将指定的鼠标指针设为当前指针

SetCursorPos 设置指针的位置

SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间

SetEnvironmentVariable 将一个环境变量设为指定的值

SetKeyboardState 设置每个虚拟键当前在键盘上的状态

SetLocaleInfo 改变用户"地方"设置信息

SetLocalTime 设置当前地方时间

SetSysColors 设置指定窗口显示对象的颜色

SetSystemCursor 改变任何一个标准系统指针

SetSystemTime 设置当前系统时间

SetSystemTimeAdjustment 定时添加一个校准值使内部系统时钟与一个外部的时钟信号源同步

SetThreadLocale 为当前线程设置地方

SetTimeZoneInformation 设置系统时区信息

ShowCaret 在指定的窗口里显示插入符(光标)

ShowCursor 控制鼠标指针的可视性

SwapMouseButton 决定是否互换鼠标左右键的功能

SystemParametersInfo 获取和设置数量众多的windows系统参数

SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间

ToAscii 根据当前的扫描码和键盘信息,将一个虚拟键转换成ASCII字符

ToUnicode 根据当前的扫描码和键盘信息,将一个虚拟键转换成Unicode字符

UnloadKeyboardLayout 卸载指定的键盘布局

VkKeyScan 针对Windows字符集中一个ASCII字符,判断虚拟键码和Shift键的状态

11. API之进程和线程函数

CancelWaitableTimer 这个函数用于取消一个可以等待下去的计时器操作

CallNamedPipe 这个函数由一个希望通过管道通信的一个客户进程调用

ConnectNamedPipe 指示一台服务器等待下去,直至客户机同一个命名管道连接

CreateEvent 创建一个事件对象

CreateMailslot 创建一个邮路。返回的句柄由邮路服务器使用(收件人)

CreateMutex 创建一个互斥体(MUTEX)

CreateNamedPipe 创建一个命名管道。返回的句柄由管道的服务器端使用

CreatePipe 创建一个匿名管道

CreateProcess 创建一个新进程(比如执行一个程序)

CreateSemaphore 创建一个新的信号机

CreateWaitableTimer 创建一个可等待的计时器对象

DisconnectNamedPipe 断开一个客户与一个命名管道的连接

DuplicateHandle 在指出一个现有系统对象当前句柄的情况下,为那个对象创建一个新句柄

ExitProcess 中止一个进程

FindCloseChangeNotification 关闭一个改动通知对象

FindExecutable 查找与一个指定文件关联在一起的程序的文件名

FindFirstChangeNotification 创建一个文件通知对象。该对象用于监视文件系统发生的变化

FindNextChangeNotification 重设一个文件改变通知对象,令其继续监视下一次变化

FreeLibrary 释放指定的动态链接库

GetCurrentProcess 获取当前进程的一个伪句柄

GetCurrentProcessId 获取当前进程一个唯一的标识符

GetCurrentThread 获取当前线程的一个伪句柄

GetCurrentThreadId 获取当前线程一个唯一的线程标识符

GetExitCodeProces 获取一个已中断进程的退出代码

GetExitCodeThread 获取一个已中止线程的退出代码

GetHandleInformation 获取与一个系统对象句柄有关的信息

GetMailslotInfo 获取与一个邮路有关的信息

GetModuleFileName 获取一个已装载模板的完整路径名称

GetModuleHandle 获取一个应用程序或动态链接库的模块句柄

GetPriorityClass 获取特定进程的优先级别

GetProcessShutdownParameters 调查系统关闭时一个指定的进程相对于其它进程的关闭早迟情况

GetProcessTimes 获取与一个进程的经过时间有关的信息

GetProcessWorkingSetSize 了解一个应用程序在运行过程中实际向它交付了多大容量的内存

GetSartupInfo 获取一个进程的启动信息

GetThreadPriority 获取特定线程的优先级别

GetTheardTimes 获取与一个线程的经过时间有关的信息

GetWindowThreadProcessId 获取与指定窗口关联在一起的一个进程和线程标识符

LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间

LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间

LoadModule 载入一个Windows应用程序,并在指定的环境中运行

MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回

SetPriorityClass 设置一个进程的优先级别

SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序

SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量

SetThreadPriority 设定线程的优先级别

ShellExecute 查找与指定文件关联在一起的程序的文件名

TerminateProcess 结束一个进程

WinExec 运行指定的程序

12. API之控件与消息函数

AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小

AnyPopup 判断屏幕上是否存在任何弹出式窗口

ArrangeIconicWindows 排列一个父窗口的最小化子窗口

AttachThreadInput 连接线程输入函数

BeginDeferWindowPos 启动构建一系列新窗口位置的过程

BringWindowToTop 将指定的窗口带至窗口列表顶部

CascadeWindows 以层叠方式排列窗口

ChildWindowFromPoint 返回父窗口中包含了指定点的第一个子窗口的句柄

ClientToScreen 判断窗口内以客户区坐标表示的一个点的屏幕坐标

CloseWindow 最小化指定的窗口

CopyRect 矩形内容复制

DeferWindowPos 该函数为特定的窗口指定一个新窗口位置

DestroyWindow 清除指定的窗口以及它的所有子窗口

DrawAnimatedRects 描绘一系列动态矩形

EnableWindow 指定的窗口里允许或禁止所有鼠标及键盘输入

EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有窗口的位置及状态

EnumChildWindows 为指定的父窗口枚举子窗口

EnumThreadWindows 枚举与指定任务相关的窗口

EnumWindows 枚举窗口列表中的所有父窗口

EqualRect 判断两个矩形结构是否相同

FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口

FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口

FlashWindow 闪烁显示指定窗口

GetActiveWindow 获得活动窗口的句柄

GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收)

GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信息

GetClassLong 取得窗口类的一个Long变量条目

GetClassName 为指定的窗口取得类名

GetClassWord 为窗口类取得一个整数变量

GetClientRect 返回指定窗口客户区矩形的大小

GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄

GetFocus 获得拥有输入焦点的窗口的句柄

GetForegroundWindow 获得前台窗口的句柄

GetLastActivePopup 获得在一个给定父窗口中最近激活过的弹出式窗口的句柄

GetParent 判断指定窗口的父窗口

GetTopWindow 搜索内部窗口列表,寻找隶属于指定窗口的头一个窗口的句柄

GetUpdateRect 获得一个矩形,它描叙了指定窗口中需要更新的那一部分

GetWindow 获得一个窗口的句柄,该窗口与某源窗口有特定的关系

GetWindowContextHelpId 取得与窗口关联在一起的帮助场景ID

GetWindowLong 从指定窗口的结构中取得信息

GetWindowPlacement 获得指定窗口的状态及位置信息

GetWindowRect 获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内

GetWindowText 取得一个窗体的标题(caption)文字,或者一个控件的内容

GetWindowTextLength 调查窗口标题文字或控件内容的长短

GetWindowWord 获得指定窗口结构的信息

InflateRect 增大或减小一个矩形的大小

IntersectRect 这个函数在lpDestRect里载入一个矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集

InvalidateRect 屏蔽一个窗口客户区的全部或部分区域

IsChild 判断一个窗口是否为另一窗口的子或隶属窗口

IsIconic 判断窗口是否已最小化

IsRectEmpty 判断一个矩形是否为空

IsWindow 判断一个窗口句柄是否有效

IsWindowEnabled 判断窗口是否处于活动状态

IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode文字

IsWindowVisible 判断窗口是否可见

IsZoomed 判断窗口是否最大化

LockWindowUpdate 锁定指定窗口,禁止它更新

MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统

MoveWindow 改变指定窗口的位置和大小

OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来

OpenIcon 恢复一个最小化的程序,并将其激活

PtInRect 判断指定的点是否位于矩形内部

RedrawWindow 重画全部或部分窗口

ReleaseCapture 为当前的应用程序释放鼠标捕获

ScreenToClient 判断屏幕上一个指定点的客户区坐标

ScrollWindow 滚动窗口客户区的全部或一部分

ScrollWindowEx 根据附加的选项,滚动窗口客户区的全部或部分

SetActiveWindow 激活指定的窗口

SetCapture 将鼠标捕获设置到指定的窗口

SetClassLong 为窗口类设置一个Long变量条目

SetClassWord 为窗口类设置一个条目

SetFocusAPI 将输入焦点设到指定的窗口。如有必要,会激活窗口

SetForegroundWindow 将窗口设为系统的前台窗口

SetParent 指定一个窗口的新父

SetRect 设置指定矩形的内容

SetRectEmpty 将矩形设为一个空矩形

SetWindowContextHelpId 为指定的窗口设置帮助场景(上下文)ID

SetWindowLong 在窗口结构中为指定的窗口设置信息

SetWindowPlacement 设置窗口状态和位置信息

SetWindowPos 为窗口指定一个新位置和状态

SetWindowText 设置窗口的标题文字或控件的内容

SetWindowWord 在窗口结构中为指定的窗口设置信息

ShowOwnedPopups 显示或隐藏由指定窗口所有的全部弹出式窗口

ShowWindow 控制窗口的可见性

ShowWindowAsync 与ShowWindow相似

SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果

TileWindows 以平铺顺序排列窗口

UnionRect 装载一个lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果

UpdateWindow 强制立即更新窗口

ValidateRect 校验窗口的全部或部分客户区

WindowFromPoint 返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口

<body>
<div id="ShowTime" align="left"></div>
<script>
/* 显示星期几的JavaScript代码 */
var aa=DateDemo();
document.getElementById("ShowTime").innerHTML=aa;
function DateDemo(){
var d, day, x, s = "今天是: ";
var x = new Array("星期日", "星期一", "星期二");
var x = x.concat("星期三","星期四", "星期五");
var x = x.concat("星期六");
d = new Date();
day = d.getDay();
return(s += x[day]);
}
</script>
</body>

<body>
<div id="ShowTime" align="left"></div>

<script>
showTime();
function showTime()
{
try
{
var date;
if (date==null)
{
date = new Date();
}
var unixtime = date.getTime();
document.getElementById("ShowTime").innerHTML=date.getYear()+"-"+(date.getMonth()+1)+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
setTimeout("showTime()", 1000);
}
catch(e)
{}
}
</script>
</body>

开门见山,不离开页面就能刷新页面中的(部分)数据好处多多。主要是不需要写无聊代码维护 state。ASP.NET (以及其雏形 VI6 SOM)中的 server-side control (VI6 DTC, Script Library) 通过大量hidden input 来维护页面 state,其功力之深,非吾辈能及。所以我们要想办法不离开页面就能得到
新数据,这样生活会比较好过。

其实办法早就有很多。比如自己写 ActiveX Control 或 Java Applets,或使用系统自己带的。如果是 IE 浏览器,很久以前就可以使用 ADO RDS 之类的方法从 server 端远程获取数据。我们现在看看 XML 新石器时代的几种方法:

1. XMLHTTP
这种方法意思和 RDS 差不多,但在 XML 时代,这种方法显得比较正经儿。
网上有个比较好的例子:http://www.asptoday.com/articles/20001219.htm
Using Fat Clients For E-commerce 作者起这个名字 (Fat client) 就是说要求 browser 要支持 XMLHTTP。
代码片断:
Function getCategories()
Dim oXMLHTTP \‘ As Object
Dim oCategories \‘ As Object
Set oXMLHTTP = CreateObject(\"Microsoft.XMLHTTP\")
\‘— set the XMLHTTP call and issue send (no parm as category
\‘— is included in URL
oXMLHTTP.open \"GET\",SERVER_PATH & \"demo.asp?action=getcategories\",False
oXMLHTTP.send
\‘— load the response into the Categories data island
dsoCategories.loadXML oXMLHTTP.responseText
\‘— transform into HTML and assign to innerHTML property
divCategories.innerHTML = dsoCategories.documentElement.transformNode(dsoCategoriesXSL.documentElement)
\‘— tidy up the object
Set oXMLHTTP = Nothing
End Function

其实直接使用 DOMDocument.load 也是一样的。
参见 http://www.chinaasp.com/sqlbbs/showEssence.asp?id=3586
Zee 的帖子:“在IE里应用XML的一个小例子:解决双下拉选单的连动问题。”
代码片断:
var oXMLDoc = new ActiveXObject(\‘MSXML\‘);
sURL = \‘<%=strPathInfo%>XMLCity.asp?State=\‘ + sState;
oXMLDoc.url = sURL;

不显性地创建 ActiveXObject 也可以,变通的方法是使用 <XML ID=\"myData\">。

2. 如何支持 Netscape browser?
考虑到可以使用 XML SRC 的方式在页面中获得 XML data,我们可以仔细看一眼 HTML properties: SRC。可以注意到还有个常用 tag 具备这个 attribute — IFrame。所以我们可以使用下面的思路来从 server 获取数据,这回我们不使用 XML island, ActiveX Object,以便支持 NN。a. 在页面中加一个隐藏的 IFrame。b. 需要调用数据时,语句形如:IFrame.src \"http://localhost/getData?a=123\"
c. 为了迎合 NN 的胃口,我们的返回值不是直接 XML Data,而是 HTML,这样才能被 IFrame 接受d. 但最重要的是,这个 HTML Page 实际上是一个 well-formed 的 XML document。比如:
< HTML>
< BODY>
< P ID=\"P1\">abc</P>
< P ID=\"P2\">def</P>
< P ID=\"P3\">ghi</P>
< /BODY>
< /HTML>
e. 我们可以使用 client-side javascript 把这个 well-formed XML Doc 中的数据抓取出来,加入到我们的 select listbox 中。

(是在一个同事那里看到的这个思路,感觉他是剑术通神后,捻花摘叶皆是剑,何必拘泥于 XML DOM Object。)

挂一漏万,希望大家再加上几种方法。

  在程序中,发送短信息的方式一般有三种:

  1 使用程序在网络上发送短信息,例如各大网站的短信业务。这种方式是通过程序将信息发送给运营商的网关服务器,然后通过运营商的网络发送给手机。

  2 在计算机中,通过数据线连接到手机,然后通过手机来发送短信息。这种方式是通过使用AT指令来实现。爱立信手机的AT指令你可以在以下地址找到:http://mobilityworld.ericsson.com.cn/development/download_hit.asp

  3 通过在手机中运行的程序来发送短信息。这个正是本文实现的方式。

  在J2ME中,如果想发送短信息,需要使用WMA包,MIDP2.0中已经包含,MIDP1.0中可以通过厂商提供的扩展API实现,和WMA的类库基本一样。

  下面是使用WMA向指定手机号码发送短信息的一个方法,很简单。当然WMA也提供了其他的方式来发送更多的内容。

// SMSUtil.java
package my.util;
import javax.wireless.messaging.*;
import javax.microedition.io.*;
/**
*
发送文本短信息的方法
*/
public class SMSUtil
{
 /**
 * 给指定号码发送短信息
 * @param content 短信息内容
 * @param phoneNumber 手机号码
 * @return 发送成功返回true,否则返回false
 */
 public static boolean send(String content,String phoneNumber)
 {
  //返回值
  boolean result = true;
  try
  {
   //地址
   String address = "sms://+" + phoneNumber;
   //建立连接
   MessageConnection conn = (MessageConnection)Connector.open(address);
   //设置短信息类型为文本,短信息有文本和二进制两种类型
   TextMessage msg = (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);
   //设置信息内容
   msg.setPayloadText(content);
   //发送
   conn.send(msg);
  }
  catch(Exception e)
  {
   result = false;
   //未处理
  }
  return result;
 }
}

在开发一个Asp.net系统的时候,经常需要自己订制浏览器的菜单,工具栏。
在最近的一个项目中,正好有机会负责了这个部分。
菜单使用的是AspNetMenu,好像不是很稳定,而且页面的刷新也很严重
工具栏使用的Microsoft提供的IEWebControl,工具栏效果不错,只是有时候会丢失事件,(郁闷,好像.net框架中经常会发生事件丢失)。

<script language=\"javascript\">
function DisableKey()
{
//8 退格键
//78 Ctrl+N
//37 Alt+ 方向键 ←
//39 Alt+ 方向键 →
//116 F5 刷新键
//82 Ctrl + R
//121 shift+F10
//115 屏蔽Alt+F4
//屏蔽 shift 加鼠标左键新开一网页
if (window.event.keyCode==8
||event.keyCode==78
||event.keyCode==37
||event.keyCode==39
||event.keyCode==116
||event.keyCode==82
||event.keyCode==121
||event.keyCode==115
||(window.event.srcElement.tagName == \"A\" && window.event.shiftKey))
{
alert(\‘请通过事物代码进行操作!\‘);
window.event.returnValue=false;
}

}
</script>
</HEAD>
<body MS_POSITIONING=\"GridLayout\" onKeyDown=\"DisableKey()\">

……………………

上边的代码基本上已经实现了,所需要屏蔽的键值。
好像已经完成了工作,但是是否每个页面都要复制这些代码呢?还在考虑之中!
请各位高手指点,应该可以说是一个如何架构系统界面的问题了:)

我们在开发wap应用程序需要有识别来访手机品牌型号的功能,这样才可以更好的为用户提供更好的个性化服务,比如图片类型、屏幕尺寸、铃声类型等。

http协议中,User-Agent这个标头指示的浏览器信息,文章最后附加了常见的手机User-Agent.

每个厂家,甚至一个厂家多个品牌的User-Agent都没有一个统一命名标准,所以处理起来相当麻烦—不停的if。

比如判断某个手机的品牌

If Request.UserAgent.ToUpper.StartsWith(\"MOT\") Or Request.UserAgent.ToUpper.StartsWith(\"MOT\") Then
\‘摩托罗拉
End If
If Me.Request.UserAgent.ToUpper.IndexOf(\"-SGH\") > 0 Then
\‘三星
End If

判断型号的话方法同上。

这样处理也有一些例外,比如摩托罗拉E360 会识别成T33这个是厂商的问题了。。

常见手机User-Agent:
Log_Brand Log_module Log_Ua
Arima Arima 2860 Profile/MIDP-2.0 Configuration/CLDC-1.1
CECT A706 CECT A706
CECT E818 CECT-E818/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
CECT G3300 CECT G3300/UT_SAMMY_A_06.20/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
CECT M62 CECT-M62
CECT M72 CECT-M72
CECT S568 CECTs568/(2004.07.27)SW2.0.0/WAP1.2
CECT S857 CECT S857
CECT T586 CECTT586/(2004.11.30)1.0/WAP1.2.1 Profile
CECT T700 CECT_T700
CECT T868 CECT T868
Compal C8600 Compal-C8600/1.0 UP.Browser/6.2.2.3 (GUI) MMP/1.0
Compal CHASE898 Compal-CHASE898/1.0 UP.Browser/6.2.2.3 (GUI) MMP/1.0
Compal COMPA Compal-Compa/1.4 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.3 (GUI) MMP/1.0
Compal HZ8 Compal-HZ8/1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
Compal I361 Compal- I361/1.0 UP.Browser/6.2.2.3 (GUI) MMP/1.0
Compal I368 Compal- I368/1.0 UP.Browser/6.2.2.3 (GUI) MMP/1.0
Compal SEVILLE Compal-Seville/1.4 UP.Browser/5.0.3.2 (GUI)
Compal TG762 Compal-TG762/1.0 UP.Browser/6.2.2.7 (GUI) MMP/1.0
Compal TG762D Compal-TG762D/1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
Compal U8800 Compal-U8800/1.0 UP.Browser/6.2.2.7 (GUI) MMP/1.0
Compal U8800A Compal-U8800A/1.0 UP.Browser/6.2.2.7 (GUI) MMP/1.0
Compal U8810 Compal-U8810/1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
Compal XG3C Compal-XG3C/1.0v UP.Browser/4.1.23c
Compal XG5 Compal-XG5/1.0v UP.Browser/4.1.23c
CTL 2.0 CONFIGURATION CTL/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
CTL ROCKET CTL-ROCKET/1.0/WAP1.2 Profile/MIDP-1.0 Configuration/CLDC-1.1
LG B2050 LG-B2050 MIC/WAP2.0 MIDP-2.0/CLDC-1.0
LG C1100 LG-C1100 MIC/WAP2.0 MIDP-2.0/CLDC-1.0
LG CU8080 LGE-CU8080/1.0 UP.Browser/4.1.26l
LG G1800 LG-G1800 MIC/WAP2.0 MIDP-2.0/CLDC-1.0
LG G210 LG-G210/SW100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G220 LG-G220/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G232 LG-G232/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G262 LG-G262/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G5200 LG-G5200 AU/4.10
LG G5600 LG-G5600 MIC/WAP2.0 MIDP-2.0/CLDC-1.0
LG G610 LG-G610 V100 AU/4.10 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG G622 LG-G622/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G650 LG-G650 V100 AU/4.10 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG G660 LG-G660/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G672 LG-G672/V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G682 LG-G682 /V100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G688 LG-G688 MIC/V100/WAP2.0 MIDP-2.0/CLDC-1.0
LG G7000 LG-G7000 AU/4.10
LG G7050 LG-G7050 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG G7100 LG-G7100 AU/4.10 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG G7200 LG-G7200 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG G822 LG-G822/SW100/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
LG G850 LG-G850 V100 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG G920 LG-G920/V122/WAP2.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG G922 LG-G922 Obigo/WAP2.0 MIDP-2.0/CLDC-1.1
LG G932 LG-G932 UP.Browser/6.2.3(GUI)MMP/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
LG L1100 LG-L1100 UP.Browser/6.2.2 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG T5100 LG-T5100 UP.Browser/6.2.3 (GUI) MMP/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
LG U8120 LG/U8120/v1.0
LG U8130 LG/U8130/v1.0
LG U8138 LG/U8138/v2.0
LG U8180 LG/U8180/v1.0
NEC DB7000 NEC-DB7000/1.0 UP.Browser/4.1.23c
NEC E232 NEC-E232/1.0 UP.Browser/6.2.2.4.d.1.102 (GUI) MMP/1.0
NEC N100 NEC-N100/0100/WAP1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
NEC N108 NEC-N108/0100/WAP1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
NEC N109 NEC-N109/0100/WAP1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
NEC N110 NEC-N110/0730MAWC/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.8 (GUI) MMP/1.0
NEC N1101 NEC-N1101/(2005.02.18)1.0/WAP1.2.1 Profile
NEC N118 NEC-N118/1101MAWC/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.8 (GUI) MMP/1.0
NEC N150 NEC-N150/(2004.12.1)SW3.0.0/WAP2.0
NEC N158 NEC-N158/(2004.12.30)SW4.0.0/WAP2.0
NEC N166 NEC-N166/(2005.2.21)0100/WAP1.2.1 Profile
NEC N170 NEC-N170/(2005.2.1)SW3.0.0/WAP2.0
NEC N190 NEC-N190/REV 2.2.2/WAP1.2.1 Profile
NEC N200 NEC-N200/REV 2.2.2/WAP1.2.1 Profile
NEC N500 NEC-N500/REV 2.2.1/WAP1.2.1 Profile
NEC N600 NEC-N600/1.0 HopenOS/2.0
NEC N610 NEC-N610/1.0
NEC N620 NEC-N620/1.0 HopenOS/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
NEC N700 NEC-N700/1.0 UP.Browser/6.2.2.4.d.1.102 (GUI) MMP/1.0
NEC N710 NEC-N710/1.0 UP.Browser/6.2.2.6.e.1.101 (GUI) MMP/1.0
NEC N718 NEC-N718/1.0 UP.Browser/6.2.2.6.e.1.101 (GUI) MMP/1.0
NEC N720 NEC-N720/2004AJCC/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.3.2.g.1.106 (GUI) MM
NEC N728 NEC-N728/2004AJCC/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.3.2.g.1.106 (GUI) MM
NEC N730 NEC-N730/(2004.12.27)1.0/WAP1.2.1 Profile
NEC N738 NEC-N738/(2004.12.27)1.0/WAP1.2.1 Profile
NEC N8 NEC-N8/1.0 UP.Browser/6.1.0.5 (GUI) MMP/1.0
NEC N800 NEC-N800/1.0 (4.74) Profile/MIDP-2.0 Configuration/CLDC-1.1
NEC N810 NEC-N810/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.6.1.f.2 (GUI) MMP/1.0
NEC N820 NEC-N820/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.e.1.101 (GUI) MMP/1.0
NEC N830 NEC-N830/1.0 UP.Browser/6.2.2.6.e.1.101 (GUI) MMP/1.0
NEC N840 NEC-N840/(2004.12.20)DJCC/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.3.2.g.1.108
NEC N900 NEC-N900/1.0 UP.Browser/6.2.2.6.e.1.101 (GUI) MMP/1.0
NEC N910 NEC-N910/1.0
NEC N917 NEC-N917/REV 2.2.1/WAP1.2.1 Profile
NEC N919 NEC-N919/REV 2.2.1/WAP1.2.1 Profile
NEC N920 NEC-N920/(2004.11.15)1.0/WAP1.2.1 Profile
NEC N930 NEC-N930/(2004.01.05)SW2.60/WAP1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
NEC N940 NEC-N940/(2005.01.07)SW1.40/WAP1.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
TCL 3188C TCL-3188C
TCL 3199 TCL-3199
TCL 718 TCL-718
TCL 728 TCL-728
TCL 758 TCL-758/SW-08.03.01/WAP-1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
TCL 766 TCL-766/W05.12/WAP-1.2.1
TCL 782 TCL-782/W05.12/WAP-1.2.1
TCL 818 TCL-818
TCL E737 TCL-e737/401/WAP-2.0/MIDP-1.0/CLDC-1.0
TCL E767 TCL-E767/OC02-1-1.58-0618/WWW/MIDP-1.0 Configuration/CLDC-1.0
TCL I919 TCL-i919
TCL I939 TCL-i939
TCL MOBO808 TCLMobo808
TCL MOBO858 TCL-MOBO858/340/wap 2.0/MIDP 1.0/CLDC 1.0
TCL MOBO896 TCL-MOBO896/383/WAP-2.0/MIDP-1.0/CLDC-1.0
TCL MOBO898 TCL-MOBO898/361/WAP-2.0/MIDP-1.0/CLDC-1.0
TCL MOBO899 TCL-MOBO899/391/WAP-2.0/MIDP-1.0/CLDC-1.0
TCL Q550 TCL-Q550
TCL U106 TCL-U106/SW-16.03.01/WAP-1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
TCL U2 TCL U2
TCL U8 TCL-U8
TDG 9920 TDG-9920
阿尔卡特 BG3 Alcatel-BG3/1.0 UP.Browser/5.0.3.3.11
阿尔卡特 BG3-color Alcatel-BG3-color/1.0 UP.Browser/5.0.3.3.11
阿尔卡特 BH4 Alcatel-BH4/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
阿尔卡特 BH4R Alcatel-BH4R/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
阿尔卡特 CTH3 Alcatel-CTH3/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
阿尔卡特 OH2 Alcatel-OH2/1.0 ObigoInternetBrowser/2.0
阿尔卡特 OH5 Alcatel-OH5/1.0 UP.Browser/6.1.0.7.7 (GUI) MMP/1.0
阿尔卡特 OT557 Alcatel-OT557/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
阿尔卡特 TH3 Alcatel-TH3/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
阿尔卡特 TH4 Alcatel-TH4/1.0 UP.Browser/6.2.ALCATEL MMP/1.0
爱立信 Ericsson Mobile Platforms (UCWEB 4.0A)
爱立信 t39 EricssonT39/R201
爱立信 t68 EricssonT68/R101
波导 A120 BIRD.A120 AU.Browser/1.2.1
波导 A150 BIRD.A150 wxd.Mms/0311.20
波导 D200 Bird D200/1.00/WAP 2.0/MIDP 1.0/CLDC 1.0 UP.Browser/6.1.0.7.7 (GUI) MMP/1.0
波导 DV10 BIRD-DV10/E-G_C_2.2.1.1_R MIB/1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
波导 E859 BIRD.E859/0.0.09/1.2
波导 E860 BIRD.E860/0.0.06/1.2
波导 E868 BIRD.E868 WxdB.Browser/2k306.1
波导 E898 BIRD.E898 WxdB.Browser/2k405.1
波导 G118 BIRD.G118 MO130m-128×160/1.1 UP.Browser/6.1.0.6.1.c.4 (GUI) MMP/1.0
波导 S310 BIRD.S310 MO130m-128×128/1.1 UP.Browser/6.1.0.6.1.c.4 (GUI) MMP/1.0
波导 S570 Bird-S570/6.1.0.7 UP.Browser/6.1.0.7.8.c.1.100 (GUI) MMP/1.0
波导 S580 BIRD.S580/3.03/WAP1.2.1
波导 S689 Bird.S689/K03,MI/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.d.3.100 (GUI) MMP
波导 S789+ Bird.S789+/KQ3,U01/WAP2.0/MIDP-2.0/CLDC-1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2
波导 S889 Bird.S889/JL3,BV/WAP2.0 UP.Browser/6.2.2.5.d.3 (GUI) MMP/1.0
波导 SC17C Bird.SC17C/KN,U04/WAP2.0/MIDP-2.0/CLDC-1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.
波导 SM10 Bird.SM10/KQ3,LB/WAP1.2.1 UP.Browser/6.1.0.6.1.c.4 (GUI) MMP/1.0
波导 V10 BIRD.V10 AU.Browser/1.2.1
波导 V59 BIRD.V59 MASV3-128×160/1.1 UP.Browser/6.1.0.6.1.c.4 (GUI) MMP/1.0
波导 V89 Bird.V89/KK3,LA/WAP1.2.1 UP.Browser/6.1.0.6.1.c.4 (GUI) MMP/1.0
波导 X8 Bird-X8/K23,PM/WAP2.0/MIDP-2.0/CLDC-1.0 UP.Browser/6.2.3.3.g.1 (GUI) MMP/2.0
大显 5208 Daxian 5208
大显 D2600 DAXIAN D2600
大显 D6310 DAXIAN-D6310 UP.Browser/5.0.3.1
大显 D6600 DAXIAN_D6600
大显 D7199 DAXIAN_D7199 CLDC/CLDC-1.0 MIDP/MIDP-1.0
大显 D8000 Daxian-D8000 CLDC/CLDC-1.0 MIDP/MIDP-1.0
迪比特 6228 DBTEL/6228 MIDP/MIDP-1.0 CLDC/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 6568 DBTEL6568/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 6588C DBTEL6588C/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 6668 DBTEL-6668 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 8036 DBTEL/8036 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 8038 DBTEL-8038 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 D5 DBTELD5/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 DB2039 DBTEL-DB2039/3.11 UP.Browser/5.0.3.1
迪比特 J1 DBTELJ1/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 J6 DBTELJ6/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 J7 DBTELJ7/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 J9 DBTELJ9/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
迪比特 T302 DBTELT302/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/5.0.3.5
东信 7SERIES Eastcom_7series
东信 EG830 Eastcom_EG830
东信 EG835 Eastcom_EG835
东信 ES1008 EASTCOM-ES1008/(2004.09.13)SW02/WAP1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
东信 ES1008A EASTCOM-ES1008A/(2005.03.13)SW02/WAP1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
东信 ES1009 EASTCOM-ES1009/(2005.05.10)SW02/WAP2.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
多彩 1.0 PANTECH_G670/(2005.04.26)Ver1.0 CLDC/CLDC-1.0 MIDP/MIDP-1.0
多彩 3000 PANTECH_PG-3000/(2005.04.26)Ver1.00/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
多彩 3200 PANTECH_PG-3200/R01 Profile/MIDP-2.0 Configuration/CLDC-1.1
多彩 G500 PANTECH G500
多彩 GPM500 PANTECH GPM500
多彩 GPM700 PANTECH GPM700
多彩 TP100 PANTECH TP100
多普达 535 Dopod535 Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176×220)
多普达 565 Dopod565 Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176×220)
多普达 585 Dopod585/4.21.1088/WAP1.2 Profile/MIDP2.0 Configuration/CLDC1.0/Mozilla/4.0 (compatible; MSIE 4.01;
多普达 696 Dopod696 Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240×320)
多普达 818 Dopod818/4.21.1088/WAP1.2 Profile/MIDP2.0 Configuration/CLDC1.0 Mozilla/4.0 (compatible; MSIE 4.01;
多普达 828 Dopod828/4.21.1088/WAP1.2 Profile/MIDP2.0 Configuration/CLDC1.0 Mozilla/4.0 (compatible; MSIE 4.01;
飞利浦 350 PHILIPS 350 / Obigo Internet Browser 2.0
飞利浦 355 PHILIPS 355 / Obigo Internet Browser 2.2
飞利浦 530 PHILIPS 530 / Obigo Internet Browser 2.0
飞利浦 535 PHILIPS 535 / Obigo Internet Browser 2.0
飞利浦 568 PHILIPS568/1.0 UP.Browser/6.1.0.7.8 (GUI) MMP/1.0
飞利浦 639 PHILIPS 639 / Obigo Internet Browser 2.0
飞利浦 650 PHILIPS650 ObigoInternetBrowser/2.0
飞利浦 655 PHILIPS655 ObigoInternetBrowser/2.0
飞利浦 660 PHILIPS660 ObigoInternetBrowser/2.0
飞利浦 755 PHILIPS755 ObigoInternetBrowser/2.0
飞利浦 760 PHILIPS760 ObigoInternetBrowser/2.0
飞利浦 766 PHILIPS766 IACWAPBrowser1.2
飞利浦 855 PHILIPS855 ObigoInternetBrowser/2.0
飞利浦 859 PHILIPS859 ObigoInternetBrowser/2.0
飞利浦 FISIO330 PHILIPS-FISIO 330/3.14 UP.Browser/5.0.3.5 (GUI)
飞利浦 FISIO620 PHILIPS-FISIO 620/3.14 UP.Browser/5.0.1.11
飞利浦 FISIO820 PHILIPS-FISIO 820/3.14 UP.Browser/5.0.1.11
飞利浦 FISIO826 PHILIPS-FISIO 826/3.14 UP.Browser/5.0.3.5 (GUI)
飞利浦 SYSOL2 PHILIPS-SYSOL2/3.11 UP.Browser/5.0.1.11
飞利浦 SYSOL3 PHILIPS-SYSOL3/3.11 UP.Browser/5.0.1.11
飞利浦 XENIUM9@9++ PHILIPS-Xenium 9@9++/3.14 UP.Browser/5.0.3.5 (GUI)
海尔 f1120 Haier-F1120/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
海尔 v100 HAIER-V100 ObigoInternetBrowser/2.0
海尔 v200 HAIER-V200/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
海尔 v280 HAIER-V280/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
海尔 v3000 Haier-V3000 UP.Browser/5.0.3.5
海尔 v6000 HAIER-V6000
海尔 v7000 Haier-V7000
海尔 v9000 Haier-V9000/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
海尔 z3000 Haier-Z3000 UP.Browser/5.0.1.11
康佳 KONKA/S800/(2004.12.10)1.0/WAP1.2.1 Profile
康佳 A69 KONKA-A69/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
康佳 A76 KONKA-A76/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
科健 A718 KEJIAN-A718*MDAwMDAwMDAwMDAwMDAw
科健 K358 kejian-k358 UP.Browser/6.2.0.1.155 (GUI) MMP/1.0
科健 K368 kejian-k368
科健 K506 KEJIAN-K506/1.0
科健 K568 Kejian_K568
科健 K606 kejian-k606*MzUyMDkzMDAwMTkwMzIx
科健 K618 kejian-k618
科健 K686 KEJIANK686
科健 K788 KEJIAN-K788
科健 K818 KEJIAN-K818/1.0 HopenOS/WAP1.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
联想 E307 LENOVO-E307/(2005.05.13)S265/WAP1.2.1 Profile//
联想 E616 LENOVO-E616/(2004.10.15)Ver112/WAP1.2.1 Profile
联想 E700 LENOVO-E700/(041223)V126/WAP1.2.1 Profile
联想 G800 LENOVO/G800 UP.Browser/6.2.2 (GUI) MMP/1.0
联想 G811 Lenovo_G811
联想 G900 Lenovo G900
联想 I660 LENOVO-I660/(2004.10.15)Ver112/WAP1.2.1 Profile
联想 I717 LENOVO-i717/(050718)V100/WAP1.2.1 Profile
联想 I720 LENOVO-I720/(2005.08.17)Ver1.0.5/WAP1.2 Profile//
联想 I816 LENOVO-i816/(2005.01.20)Ver00.23/WAP1.2.1
联想 I856 LENOVO-i856/(2005.03.16)Ver00.36/WAP1.2.1
联想 P608 LENOVO-P608/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
联想 P708 LENOVO-P708/(2005.04.12)S268/WAP1.2.1 Profile
联想 P710 LENOVO-P710/(20050624)V110/WAP1.2.1 Profile
联想 P890 LENOVO-P890/(050128)V101/WAP1.2.1 Profile
联想 P902 LENOVO-P902/(2005.03.28)Ver1.0.4/WAP2.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
联想 P928 LENOVO-P928/(050218)V120/WAP1.2.1 Profile
联想 V520 LENOVO-V520/(2005.08.11)S115/WAP1.2.1 Profile//
联想 V658 LENOVO-V658/(2004.08.28)Ver1.28/WAP1.2.1 Profile
联想 V806 LENOVO-V806/(2004.07.01)SW2.0.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
联想 V850 LENOVO-V850/(2004.11.24)VER_05/WAP1.2.1 Profile
联想 V858 LENOVO-V858/(050118)Ver156/WAP1.2.1 Profile
明基 A500 BENQA500\\1.00\\WAP2.0\\MIDP1.0\\CLDC1.0 UP.Browser/6.1.0.5 (GUI) MMP/1.0
明基 ATHENA BENQ-Athena/0.1 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.5 (GUI) MMP/1.0
明基 M300 BenQ-M300/6.1.0.7 UP.Browser/6.1.0.7.8.c.1.100 (GUI) MMP/1.0
明基 M305 BenQ-M305/6.1.0.7 UP.Browser/6.1.0.7.8.c.1.100 (GUI) MMP/1.0
明基 M315 BenQ-M315/6.1.0.7 UP.Browser/6.1.0.7.8.c.1.103 (GUI) MMP/1.0
明基 M350 BenQ-M350/6.1.0.7 UP.Browser/6.1.0.7.8.c.1.103 (GUI) MMP/1.0
明基 NIKE1 BENQ-NIKE1/CLDC_1.0 UP.Browser/6.1.0.7.6.100 (GUI) MMP/1.0
明基 S660C BENQS660C/1.36/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.1.0.7.8.c.1.100 (GUI) MMP/1.0
明基 S668C BENQS668C/1.36/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.1.0.7.8.c.1.100 (GUI) MMP/1.0
明基 S680C BENQS680C/1.36/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.1.0.7.8.c.1.100 (GUI) MMP/1.0
明基 S700 BENQS700\\1.00\\WAP2.0\\MIDP2.0\\CLDC1.0 UP.Browser/6.1.0.5 (GUI) MMP/1.0
明基 Z2 BenQ-Z2/1.00/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.2.3.8 (GUI) MMP/2.0
摩托罗拉 MOTO (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; Maxthon; .NET CLR 1.1.4322; OpenWave)
摩托罗拉 A668 MOT-A668/ WAP.Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 A728 MOT-A728/R505_G_00.02.A1R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 A760 MOT-A760/EZX_G_00.44.A1R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 A768 MOT-A768/A768_G_00.A9.A1R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 A768i MOT-A768i/R503_G_00.18.A2R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 A780 MOT-A780/R52_G_0D.43.A3P Mozilla/4.0 (compatible; MSIE 6.0; Motorola; 850) Profile/MIDP-2.0 Configur
摩托罗拉 A835 MOT-A835/72.32.07. MIB/2.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
摩托罗拉 C155 MOT-C155 UP.Browser/6.2.2.7 (GUI) MMP/1.0
摩托罗拉 c350M MOT-c350M/AS_G_09.04.24R MIB/2.0
摩托罗拉 c350V MOT-c350V/AS_G_09.08.BBR MIB/2.0
摩托罗拉 C380 MOT-C380/0B.D1.1AR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 C385 MOT-C385/0B.D1.09R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 C450 MOT-C450/0A.03.5DR MIB/2.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
摩托罗拉 C550 MOT-C550/0A.10.20R MIB/2.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
摩托罗拉 C650 MOT-C650/0B.D1.06R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 C975 MOT-C975/80.2F.68I MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
摩托罗拉 D5 MOT-D5/5.0.2 UP.Browser/5.0.4.1 (GUI)
摩托罗拉 E1000 MOT-E1000/80.3F.37I MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0
摩托罗拉 E365 Motorola-E365 UP.Browser/6.1.0.7 (GUI) MMP/1.0
摩托罗拉 E375 MOT-E375/0E.23.0ER MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 E380 MOT-E380/0A.03.35R MIB/2.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
摩托罗拉 E398 MOT-E398/0E.20.34R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 E398B MOT-E398B/0E.20.95R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 E680 MOT-E680/R51_G_0F.38.A4R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
摩托罗拉 E680i MOT-E680i/E680I_G_0D.C3.A8P Mozilla/4.0 (compatible; MSIE 6.0; Linux; Motorola E680i; 1030) Profile/
摩托罗拉 ED MOT-ED/06.12 KM.Browser/5.0.2.4
摩托罗拉 EF MOT-EF/06.12 KM.Browser/5.0.2.4
摩托罗拉 F6 MOT-F6/00.28.26 UP.Browser/4.1.23b
摩托罗拉 FE MOT-FE/07.07 UP.Browser/5.0.2.4
摩托罗拉 MPx220 MOT-MPx220(2004.12.7)/SW./WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 (compatible; MSIE 4.01; Win
摩托罗拉 T33 Motorola-T33/1.5.1a UP.Browser/5.0.1.7 (GUI)
摩托罗拉 T720 MOT-T720/AS_G_05.07.30R MIB/2.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
摩托罗拉 T720M MOT-T720M/AS_G_05.06.20R MIB/2.0 Profile/MIDP-1.0 Configuration/CLDC-1.0
摩托罗拉 TA02 MOT-TA02/06.04.2FR MIB/1.2.1
摩托罗拉 V1050 MOT-V1050/83.38.38. MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
摩托罗拉 v150 MOT-v150/AS_G_09.09.0AR MIB/2.0
摩托罗拉 V171 MOT-V171 UP.Browser/6.2.2.7 (GUI) MMP/1.0
摩托罗拉 V180 MOT-V180/0B.D1.19R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V180ENS MOT-V180ENS/0B.D2.2ER MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/6.3.0.0.0
摩托罗拉 V188 MOT-V188/0B.D2.2BR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V220 MOT-V220/0B.D1.1AR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V226 MOT-V226/0B.D1.1AR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V26X_ MOT-V26X_/00.62 UP.Browser/6.2.3.2.f.1.101 (GUI) MMP/2.0 UP.Link/6.3.0.0.0
摩托罗拉 V290 MOT-V290/6.1.0.7 UP.Browser/6.1.0.7.4 (GUI) MMP/1.0
摩托罗拉 V3 MOT-V3/0E.40.3CR MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V300 MOT-V300/0B.09.1FR MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/6.3.0.0.0
摩托罗拉 V303 MOT-V303/0B.09.1CR MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V400 MOT-V400/0B.09.2ER MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V500 MOT-V500/0B.09.29R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V501 MOT-V501/0B.09.38R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V505 MOT-V505/0B.09.4DR MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V525M MOT-V525M/0B.09.38R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V547 MOT-V547/08.17.15R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V550 MOT-V550/0E.65.25R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V551J MOT-V551J/08.18.16R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Link/6.3.0.0.0
摩托罗拉 V555 MOT-V555/08.17.15R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V600 MOT-V600/0B.09.1CR MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V600i MOT-V600i/0E.65.23R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V60M MOT-V60M/G_03.11.02R MIB/1.2.1 Profile/MIDP-1.0 Configuration/CLDC-1.0
摩托罗拉 V620 MOT-V620/0E.65.25R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V690 MOT-V690/ WAP.Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V80 MOT-V80/0E.03.29R MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V870 MOT-V870/1.01 UP.Browser/6.2.2.1 (GUI) MMP/1.0 UP.Link/6.3.0.0.0
摩托罗拉 V872 MOT-V872/ WAP.Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V878 MOT-V878/ WAP.Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
摩托罗拉 V975 MOT-V975/82.31.56I MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
摩托罗拉 V980 MOT-V980/80.2E.29. MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
南方高科 A61 Soutec A61
南方高科 S7671 Soutec S7671
南方高科 S7691 Soutec S7691
南方高科 SG5610 Soutec-SG5610/1.0 UP.Browser/6.1.0.6.d.2.100 (GUI) MMP/1.0
南方高科 SG7610 Soutec-SG7610/1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
南方高科 V36 SOUTEC-V36/(2004.07.01)SW2.0.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
南方高科 V6 Soutec V6
诺基亚 2650 Nokia2650/1.0 (5.17) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 3100 Nokia3100/06.01 (UCWEB 3.3B)
诺基亚 3100B Nokia3100b/1.0 (04.75) Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Link/6.3.0.0.0
诺基亚 3108 Nokia3108/1.0 (03.01) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 3120 Nokia3120/05.91 (UCWEB 3.3B)
诺基亚 3128 Nokia3128/1.0 (03.15) Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.5 (GUI) MMP/1.0
诺基亚 3200 Nokia3200/1.0 () Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 3220 Nokia3220/2.0 (03.30) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 3230 Nokia3230/2.0 (3.0505.2) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
诺基亚 3300 Nokia3300/1.0 (4.05) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 3510I Nokia3510i/1.0 (04.01) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 3595 Nokia3595/1.0 (8.18) Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Link/5.1.2.9
诺基亚 3620 Nokia3620/1.0 (3.14) SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 3650 Nokia3650
诺基亚 3660 Nokia3660/1.0 (5.08) SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 5140 Nokia5140/2.0 (3.15) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6010 Nokia6010/1.0 (8.18) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 6020 Nokia6020/2.0 (03.52) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6021 Nokia6021/2.0 (03.83) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6030 Nokia6030/2.0 (y3.30) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6100 Nokia6100/06.01 (UCWEB 3.3B)
诺基亚 6101 Nokia6101/2.0 (03.35) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6108 Nokia6108/1.0 (03.20) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 6170 Nokia6170/2.0 (03.22) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6220 Nokia6220/2.0 (5.15) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 6230 Nokia6230/2.0 (03.15) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6230I Nokia6230i/2.0 (03.23) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6260 Nokia6260/2.0 (3.0436.0) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
诺基亚 6510 Nokia6510/1.0 (04.21)
诺基亚 6600 Nokia6600/1.0 (3.38.0) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
诺基亚 6610 Nokia6610/(2005.01.07)SW2.0.0/WAP1.2
诺基亚 6610I Nokia6610I/1.0 (3.10) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 6620 Nokia6620/2.0 (2.14.1) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
诺基亚 6630 Nokia6630/1.0 (2.39.129) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/
诺基亚 6670 Nokia6670/2.0 (4.0437.4ch) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
诺基亚 6680 Nokia6680/1.0 (2.04.15) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6681 Nokia6681/2.0 (3.10.6) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 6800 Nokia6800/2.0 (5.58) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 6820 Nokia6820/2.0 (3.70) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 7200 Nokia7200/2.0 (3.110) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 7210 Nokia7210/1.0 (3.08) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 7250 Nokia7250/1.0 (3.12) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 7250I Nokia7250I/1.0 (3.22) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 7260 Nokia7260/2.0 (03.31) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 7270 Nokia7270/2.0 (03.22) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 7280 Nokia7280/2.0 (03.24) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 7600 Nokia7600/2.0 (03.01) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 7610 Nokia7610/2.0 (4.0421.4ch) SymbianOS/7.0s Series60/2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
诺基亚 7650 Nokia-7650
诺基亚 8310 Nokia8310/1.0 (04.04)
诺基亚 8800 Nokia8800/2.0 (03.28) Profile/MIDP-2.0 Configuration/CLDC-1.1
诺基亚 8910I Nokia8910i/1.0 (03.02) Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 N-GAGE NokiaN-Gage/1.0 (4.03) SymbianOS/6.1 Series60/0.9 Profile/MIDP-1.0 Configuration/CLDC-1.0
诺基亚 N-GAGEQD NokiaN-GageQD/1.0 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
萨基姆 MYC5 SAGEM-myC5-2/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.d.5 (GUI) MMP/1.0
萨基姆 MYV SAGEM-myV-55/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.d.3 (GUI) MMP/1.0
萨基姆 MYX SAGEM-myX-3/1.0 UP.Browser/5.0.1.12.c.1 (GUI)
萨基姆 MYX3 SAGEM-myX3-2/1.0 UP.Browser/6.1.0.6.1.c.4 (GUI) MMP/1.0
萨基姆 MYX5 SAGEM-myX5-2/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.d.3 (GUI) MMP/1.0
三星 C100G SEC-SGHC100G/1.0 UP.Browser/5.0.5.1 (GUI)
三星 C200C SEC-SGHC200C
三星 C208 SEC-SGHC208*MzU0NzE0MDAwOTUzNzE5
三星 C218 SAMSUNG-SGH-C218/RAINBOW 3.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.0*MzU2OTg5MDAwMDcwMDgw
三星 C238 SAMSUNG-SGH-C238/RAINBOW 3.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.0*MzU2NzU4MDAwMTU2ODU0
三星 D108 SEC-SGHD108*MzUzNDcwMDAwMDYxOTI3
三星 D410 SEC-SGHD410
三星 D410C SEC-SGHD410C
三星 D418 SEC-SGHD418*MDEwMzA2MDA5OTgzMzQ2
三星 D428 SEC-SGHD428/1.0*MzU0NzI2MDAwMDg3NjAz
三星 D488 SAMSUNG-SGH-D488/1.0*MzU1MTEwMDAwMDU5NTI1 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 D500 SAMSUNG-SGH-D500/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.
三星 D500C SAMSUNG-SGH-D500C/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2
三星 D500E SAMSUNG-SGH-D500E/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2
三星 D508 SAMSUNG-SGH-D508/1.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1/*MzU1MDU3MDAwMjgxMzk1 UP.Browser
三星 E100A SAMSUNG-SGH-E100A/T2 UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 E108 SAMSUNG-SGH-E108/T2 UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 E310C SEC-SGHE310C/1.0
三星 E315-E315UVDH1-TSS1. SEC-SGHE315-E315UVDH1-TSS1.01
三星 E316 SEC-SGHE316
三星 E317 SEC-SGHE317 UP.Link/6.3.0.0.0
三星 E318 SEC-SGHE318 /1.0
三星 E330C SAMSUNG-SGH-E330C/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E338 SAMSUNG-SGH-E338/1.0*MzU0MzAwMDA0MTI2NTc1 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E340 SAMSUNG-SGH-E340/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.
三星 E340E SAMSUNG-SGH-E340E/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2
三星 E418 SEC-SGHE418*MzUxOTM2MDAwMDMxNjU4
三星 E530C SEC-SGHE530C/1.0 TSS/2.5
三星 E568 SAMSUNG-SGH-E568/TSS 2.5.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0/*MzU2NTExMDA1Mjg1Mzc
三星 E600C SEC-SGHE600C
三星 E608 SEC-SGHE608*MDAwMDAwMDAwMDAwMDAw
三星 E618 SEC-SGHE618
三星 E628 SAMSUNG-SGH-E628/TSS 2.5.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0/*MzU2MTU3MDAxMjI2OTE
三星 E630 SAMSUNG-SGH-E630/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E630C SAMSUNG-SGH-E630C/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E638 SAMSUNG-SGH-E638/1.0*MzU0NjMyMDAwMDA1MTkx UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E640 SAMSUNG-SGH-E640/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.
三星 E648 SAMSUNG-SGH-E648/1.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1/*MzU2ODM0MDAwMDE1MDE4 UP.Browser
三星 E700 SAMSUNG-SGH-E700/BSI UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 E700A SAMSUNG-SGH-E700A/BSI UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 E708 SAMSUNG-SGH-E708/1.0*MzU2MDgzMDAwMjQ0OTUw UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 E710 SEC-SGHE710
三星 E715-E715UVDC5-TSS1. SEC-SGHE715-E715UVDC5-TSS1.01
三星 E720C SEC-SGHE720C/1.0 TSS/2.5
三星 E728 SAMSUNG-SGH-E728/TSS 2.5.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0/*MzU1Mjg3MDA1Mjk2MTI
三星 E730 SAMSUNG-SGH-E730/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.
三星 E738 SAMSUNG-SGH-E738/1.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1/*MzU2MTU4MDAwNjU3NTY1 UP.Browser
三星 E800 SAMSUNG-SGH-E800/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E800C SAMSUNG-SGH-E800C/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E808 SAMSUNG-SGH-E808/1.0*MzU0MTk0MDAwNTgzMDgx UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E810 SEC-SGHE810 UP.Link/6.3.0.0.0
三星 E810C SEC-SGHE810C/1.0
三星 E818 SEC-SGHE818*MDAwMDAwMDAwMDAwMDAw
三星 E838 SAMSUNG-SGH-E838/BSI*MzU0ODU5MDA0NTU3MDYz UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 E888 SAMSUNG-SGH-E888/TSS 2.5.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0/*MzU2NDY1MDAwMDc0MjI
三星 P408 SEC-SGHP408*MDEwMzA2MDA1OTY1NTM3
三星 P510 SEC-SGHP510/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0 UP.Link/6.3.0.0.0
三星 P518 SEC-SGHP518*MzUzODEwMDAwMjAxOTgz UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 P730 SEC-SGHP730
三星 P730C SEC-SGHP730C/1.0
三星 P738 SEC-SGHP738
三星 S108 SEC-SGHS108*MzUwOTQ3ODkwMTQ5NDEw
三星 S208 SEC-SGHS208*MzUwMTQxMDkwMTEyMzU4
三星 S208+ SEC-SGHS208+*MzUxNzIxMDAwNjE3ODgy
三星 S308 SEC-SGHS308*MDEwMTczMDAxNTM5OTc1
三星 S508 SAMSUNG-SGH-S508/1.0*MzU0NTMxMDA1MzE0MjM4 UP.Browser/5.0.5.1 (GUI)
三星 -SPHA680 Samsung-SPHA680 AU-MIC-A680/2.0 MMP/2.0
三星 T108 SAMSUNG-SGH-T108/1.0 UP/4.1.19k
三星 T108+ SAMSUNG-SGH-T108+/1.0*MzUwOTUxMDg4NzM5Mzcw UP/4.1.19k
三星 T408 SAMSUNG-SGH-T408/1.0*MzUxMDY1MDg1NjYxMDA1 UP.Browser/5.0.4.3 (GUI)
三星 T508 SAMSUNG-SGH-T508/1.0*MzUxMDk0OTA3MDE0Nzk3 UP.Browser/5.0.4.3 (GUI)
三星 V200 SEC-SGHV200
三星 V208 SEC-SGHV208*MzUxNjI1MDAwMDE2ODMx
三星 X100 SAMSUNG-SGH-X100/PEARL UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 X100A SAMSUNG-SGH-X100A/Pearl UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 X108 SAMSUNG-SGH-X108/1.0*MzUyMjg3MDAwMjE4NjY2 UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 X138 SAMSUNG-SGH-X138/RAINBOW 3.0/WAP1.2 Profile/MIDP-2.0 Configuration/CLDC-1.0*MzU2MTM5MDAwMDg5NDM5
三星 X427M SEC-SGHX427M UP.Link/6.3.0.0.0
三星 X430 SEC-SGHX430
三星 X458 SEC-SGHX458*MzU0MDIzMDA0MjI3OTY3
三星 X460C SAMSUNG-SGH-X460C/1.0 UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 X468 SAMSUNG-SGH-X468/1.0*MzU0MjczMDA3MDMyMTI2 UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 X475-X475UVEB2-NW.BR SEC-SGHX475-X475UVEB2-NW.Browser3.01
三星 X478 SAMSUNG-SGH-X478/TSS 1.0.1/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0/
三星 X480 SAMSUNG-SGH-X480/1.0
三星 X480C SAMSUNG-SGH-X480C/1.0
三星 X488 SAMSUNG-SGH-X488/TSS 1.0.1/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0/
三星 X600A SAMSUNG-SGH-X600A/K3 UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 X608 SAMSUNG-SGH-X608/1.0*MzUyNjIwMDA1MTU3MDQ0 UP.Browser/6.1.0.6 (GUI) MMP/1.0
三星 X640 SAMSUNG-SGH-X640/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 X640C SAMSUNG-SGH-X640C/1.0 UP.Browser/6.2.2.6 (GUI) MMP/1.0
三星 X648 SAMSUNG-SGH-X648/1.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1*MDAwMDAwMDAwMDAwMDAw UP.Browser/
桑达 HT818M SED-HT818M
桑达 V68 SED-V68/1.0
桑达 X520 SED-X520 ObigoInternetBrowser/2.0
首信 Capitel/V859/1.25/AUS WAP 4.16.1
首信 S750 Capitel S750/1.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
首信 C8188 Capitel-C8188/1.4 CLDC/CLDC-1.0 MIDP/MIDP-1.0 UP.Browser/6.2.2.5 (GUI) MMP/1.0
首信 F600 Capitel-F600/1.4 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
首信 F650 Capitel-F650/1.4 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
首信 G750 Capitel-G750/1.4 CLDC/CLDC-1.0 MIDP/MIDP-1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
首信 G99 CapitelG99
松下 A200 Panasonic-A200/1.0 UP.Browser/6.2.2.7 (GUI) MMP/1.0
松下 A210 Panasonic-A210/1.0 UP.Browser/6.1.0.7.8 (GUI) MMP/1.0
松下 A500 Panasonic-A500/R1 Profile/MIDP-1.0 Configuration/CLDC-1.0
松下 G50 Panasonic-G50/1.0 UP.Browser/6.1.0.6.d.2.100 (GUI) MMP/1.0
松下 G60 Panasonic-G60/1.0 UP.Browser/6.1.0.6 MMP/1.0 UP.Browser/6.1.0.6 (GUI) MMP/1.0
松下 G70 Panasonic-G70/1.0 UP.Browser/6.1.0.6.d.2.100 (GUI) MMP/1.0
松下 GAD87 Panasonic-GAD87
松下 SC3 Panasonic-SC3/1.0(2005.06.16) SW0.34/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.1.0
松下 VS2 Panasonic-VS2/(2005.05.11)SW1.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
松下 VS3 Panasonic-VS3/(2005.05.11)SW1.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
松下 X100 Panasonic-X100/1.0 UP.Browser/6.2.2.7 (GUI) MMP/1.0
松下 X200P Panasonic-X200P/RP1 Profile/MIDP-1.0 Configuration/CLDC-1.0
松下 X300 Panasonic-X300/1.0 UP.Browser/6.1.0.7.4 (GUI) MMP/1.0
松下 X400P Panasonic-X400P/RP1 Profile/MIDP-1.0 Configuration/CLDC-1.0
松下 X500 Panasonic-X500/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.7 (GUI) MMP/1.0
松下 X66 Panasonic-X66/R01 Profile
松下 X70 Panasonic-X70/1.0
松下 X700 Panasonic-X700/(2005.01.20) SW1.0.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
松下 X77 Panasonic-X77/R01 Profile
松下 X800 Panasonic-X800/(2005.01.20) SW1.0.0/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
索尼爱立信 D750I SonyEricssonD750i/R1J Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 F500I SonyEricssonF500i/R2AA SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 J200C SonyEricssonJ200c/R101
索尼爱立信 J300C SonyEricssonJ300c/R2AT SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K300A SonyEricssonK300a/R2AT SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K300C SonyEricssonK300c/R2AJ SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K300I SonyEricssonK300i/R2AJ SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K500C SonyEricssonK500c/R2AA SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K500I SonyEricssonK500i/R2AA SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K506C SonyEricssonK506c/R2AA SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K508C SonyEricssonK508c/R2AA SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K508I SonyEricssonK508i/R2AE SEMC-Browser/4.0.3 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K700C SonyEricssonK700c/R2AA SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K700I SonyEricssonK700i/R2A SEMC-Browser/4.0 Profile/MIDP-1.0 MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K750C SonyEricssonK750c/R1C Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 K750I SonyEricssonK750i/R1A Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 P800 SonyEricssonP800/R101 Profile/MIDP-1.0 Configuration/CLDC-1.0
索尼爱立信 P900 SonyEricssonP900/R101 Profile/MIDP-2.0 Configuration/CLDC-1.0
索尼爱立信 P908 SonyEricssonP908/R101 Profile/MIDP-2.0 Configuration/CLDC-1.0
索尼爱立信 P910C SonyEricssonP910c/R2A SEMC-Browser/Symbian/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
索尼爱立信 P910I SonyEricssonP910i/R1A SEMC-Browser/Symbian/3.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
索尼爱立信 S700C SonyEricssonS700c/R3B SEMC-Browser/4.0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 S700I SonyEricssonS700i/R3B SEMC-Browser/4.0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 S710A SonyEricssonS710a/R1A SEMC-Browser/4.0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0
索尼爱立信 T230 SonyEricssonT230/R101
索尼爱立信 T237 SonyEricssonT237/R101
索尼爱立信 T238 SonyEricssonT238/R101
索尼爱立信 T290C SonyEricssonT290c/R101
索尼爱立信 T300 SonyEricssonT300/R201 UP.Link/6.3.0.0.0
索尼爱立信 T312 SonyEricssonT312/R201
索尼爱立信 T610 SonyEricssonT610/R101 Profile/MIDP-1.0 Configuration/CLDC-1.0
索尼爱立信 T618 SonyEricssonT618/R101 Profile/MIDP-1.0 Configuration/CLDC-1.0
索尼爱立信 T628 SonyEricssonT628/R201 Profile/MIDP-1.0 Configuration/CLDC-1.0
索尼爱立信 T630 SonyEricssonT630/R401 Profile/MIDP-1.0 Configuration/CLDC-1.0
索尼爱立信 T68 SonyEricssonT68/R201A
索尼爱立信 V800 SonyEricssonV800/R1AB Browser/SEMC-Browser/4.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 W800C SonyEricssonW800c/R1L Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 W800I SonyEricssonW800i/R1L Browser/SEMC-Browser/4.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 Z1010 SonyEricssonZ1010/R1H SEMC-Browser/4.0.2 Profile/MIDP-2.0 Configuration/CLDC-1.1
索尼爱立信 Z208 SonyEricssonZ208/R101
索尼爱立信 Z500A SonyEricssonZ500a/R1A SEMC-Browser/4.0.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.0.0.0
索尼爱立信 Z600 SonyEricssonZ600/R301 Profile/MIDP-1.0 Configuration/CLDC-1.0
索尼爱立信 Z608 SonyEricssonZ608/R401 Profile/MIDP-1.0 Configuration/CLDC-1.0
索尼爱立信 Z800 SonyEricssonZ800/R1X Browser/SEMC-Browser/4.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 2118 SIE-2118/33 UP.Browser/5.0.2.3.100 (GUI)
西门子 2128 SIE-2128/11 UP.Browser/5.0.3.3 (GUI)
西门子 3618 SIE-3618/24 UP.Browser/5.0.2.3.100 (GUI)
西门子 6618 SIE-6618/24 UP.Browser/5.0.2.3.100 (GUI)
西门子 A55A SIE-A55A/05 UP.Browser/5.0.3.3 (GUI)
西门子 A60 SIE-A60/23 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
西门子 A65C SIE-A65C/06 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
西门子 A75C SIE-A75C/13 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.5.c.6 (GUI) MMP/1.0
西门子 C55 SIE-C55/24 UP.Browser/5.0.3.3 (GUI)
西门子 C60A SIE-C60A/24 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
西门子 C62 SIE-C62/68
西门子 C65 SIE-C65/12 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 C6C SIE-C6C/14 UP.Browser/7.0.0.1.c.2 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 CF62 SIE-CF62/95 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
西门子 CF6C SIE-CF6C/07 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
西门子 CX6C SIE-CX6C/08 UP.Browser/7.0.0.1.181 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 M55C SIE-M55C/07 UP.Browser/6.1.0.5.c.5 (GUI) MMP/1.0
西门子 M65 SIE-M65/12 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Link/6.3.
西门子 M6C SIE-M6C/14 UP.Browser/7.0.0.1.c.2 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 MC60 SIE-MC60/10 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0 UP.Link/6.3.0
西门子 MC6C SIE-MC6C/07 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.7.3 (GUI) MMP/1.0
西门子 S57C SIE-S57C/06 UP.Browser/6.1.0.5.121 (GUI) MMP/1.0
西门子 S6C SIE-S6C/16 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 SK65 SIE-SK65/(2005.1.12)SW42/WAP2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 SL5C SIE-SL5C/09 UP.Browser/6.1.0.5.c.4 (GUI) MMP/1.0
西门子 SL6C SIE-SL6C/23 UP.Browser/7.0.0.1.c.3 (GUI) MMP/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
西门子 SX1 SIE-SX1/1.1 SymbianOS/6.1 Series60/1.2 Profile/MIDP-1.0 Configuration/CLDC-1.0
夏普 GX10 SHARP-TQ-GX10/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.4.128 (GUI) MMP/1.0
夏普 GX10N SHARP-TQ-GX10N/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.6.1.106 (GUI) MMP/1.0
夏普 GX12 SHARP-TQ-GX12/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.5.119 (GUI) MMP/1.0
夏普 GX15 SHARP-TQ-GX15/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.3.2.d.1.112 (GUI) MMP/2.0 U
夏普 GX20N SHARP-TQ-GX20N/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.4.163 (GUI) MMP/1.0
夏普 GX22 SHARP-TQ-GX22/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.2.107 (GUI) MMP/1.0
夏普 GX22S SHARP-TQ-GX22S/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.4.c.1.100 (GUI) MMP/1.0
夏普 GX32 SHARP-TQ-GX32/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.c.1.105 (GUI) MMP/1.0
夏普 GZ100S SHARP-TQ-GZ100S/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.3.2.d.1.105 (GUI) MMP/2.0
夏普 GZ200 SHARP-TQ-GZ200/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.3.3.d.1.110 (GUI) MMP/2.0
夏普 GZ200S SHARP-TQ-GZ200S/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0 UP.Browser/6.2.3.3.d.1.110 (GUI) MMP/2.0
夏普 TM-150 SHARP-TM-150/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.2.2.6.c.2.102 (GUI) MMP/1.0
夏普 V750 SHARP-TQ-V750/1.0 Profile/MIDP-1.0 Configuration/CLDC-1.0 UP.Browser/6.1.0.6.1.d.1 (GUI) MMP/1.0
夏新 A660 Amoi-A660/Plat-V-FT/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.2.3.3 (GUI) MMP/2.0
夏新 A9 Amoisonic-A9/1.0 UP.Browser/6.2.2.3 (GUI) MMP/1.0
夏新 A90 Amoi-A90/1.0 UP.Browser/5.0.3.2 (GUI)
夏新 A90B Amoi-A90B/1.0 UP.Browser/5.0.3.2 (GUI)
夏新 A9B Amoi-A9B/1.0 UP.Browser/6.2.2.5 (GUI) MMP/1.0
夏新 CA6 Amoi-CA6/1.0 UP.Browser/6.2.2.5 (GUI) MMP/1.0
夏新 CA8 Amoi-CA8/1.0 UP.Browser/6.2.2.5 (GUI) MMP/1.0
夏新 CS6 Amoi-CS6/1.0 UP.Browser/6.2.2.6.f.1.100 (GUI) MMP/1.0
夏新 D8 Amoi-D8/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
夏新 D80 Amoi-D80/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
夏新 D85 Amoi-D85/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
夏新 D86 Amoi-D86/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
夏新 D89 Amoi-D89/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
夏新 DA8 Amoi-DA8/1.0
夏新 DF9 Amoi-DF9/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.6.f.1.100 (GUI) MMP/1.0
夏新 F6 Amoi-F6/Plat-F/WAP2.0 UP.Browser/6.2.2.6.f.1.100 (GUI) MMP/1.0
夏新 F60 Amoi-F60/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.7.c.1.101 (GUI) MMP/1.0
夏新 F8 Amoi-F8/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.6.f.1.100 (GUI) MMP/1.0
夏新 F9 Amoisonic-F9/1.0 UP.Browser/6.2.2.3 (GUI) MMP/1.0
夏新 F90 Amoi-F90/Plat-F/WAP2.0/MIDP1.0/CLDC1.0 UP.Browser/6.2.2.6.f.1.100 (GUI) MMP/1.0
夏新 F99 Amoisonic-F99/1.0 UP.Browser/5.0.3.2 (GUI)
夏新 F99MY Amoi-F99MY/1.0 UP.Browser/6.2.2.5 (GUI) MMP/1.0
夏新 M350 Amoi-M350/Plat-V-VIM/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.2.3.3 (GUI) MMP/2.0
夏新 M6 Amoi-M6/Plat-EMP/WAP2.0/MIDP2.0/CLDC1.0
夏新 M66 Amoi-M66/Plat-EMP/WAP2.0/MIDP2.0/CLDC1.0
夏新 R1A AMOI/R1A
夏新 S6 Amoi-S6/1.0 UP.Browser/5.0.3.2 (GUI)
熊猫 EL960 EMOL-EL960/1.0
熊猫 EMOL910 EMOL-EMOL910/1.0 UP.Browser/5.0.5.1 (GUI)
熊猫 GPM500 PANDA GPM500
熊猫 GPM700 PANDA GPM700
熊猫 M18 PANDA_M18
中桥 INNO55
中兴 ZTETI
中兴 2.0 ZTETI/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.0
中兴 A96+ ZTE-A96+/(2004.12.01)P101A1V1.0.0B01/WAP1.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
中兴 A99 ZTE-A99/(2004.12.01)P101A1V1.0.0B01/WAP1.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.0
中兴 E3 ZTE-E3/(2005.05.16)4.0 (compatible; MSIE 6.0; Linux; P500V1.0.0B10; 781) ZTE-E3/R52_G_0D.52.A1R Prof