最近在微软专家新闻组上面问的问题

Q : 在IE6中,当光标悬停在一个图片上时,会显示一个对图片操作的工具栏。
我如何编程实现这样的功能?谢谢。

A:SAMPLE: ColorFrm Demonstrates ActiveX Control with Popup Toolbar
http://support.microsoft.com/kb/166193/

可以用Asynchronous Pluggable Protocol 自己处理特定的MIME类型的数据
参考
http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/pluggable/overview/overview.asp

您好,

IE中的图像工具栏是一个Win32的Rebar控件,当浏览器中整个页面下载完毕后,IE就会捕捉一些相关的事件并将此Rebar控件创建并显示在有图片链接的位置。

有关捕捉浏览器事件的相关方法,请您参考一个CodeProject上的一个相关程序:

Handling HTML Element Events in MFC applications - A simple alternative approach
http://www.codeproject.com/shell/dlgdhtmlevents.asp

*****************************************************************************************

Q: 通过Bitblt可以将一个窗口的图像拷贝到一个设备环境中,但是如果
这个窗口被另外一个窗口覆盖的话,拷贝的就是被覆盖的部分,怎么
才能拷贝整个窗口而不是被覆盖的部分。

A:不知道该窗口是不是被本身的子窗口所覆盖?

建议您可以在使用Bitblt函数之前,可以先调用InvalidateRect将该目标窗口更新一下。

*************************************************************************************************

Q : 我做了一个IE Band(类似Google工具栏)和一个左侧的工具栏(类似IE历史工具
栏)。我如何在
这个IE Band上面增加一个按钮,点击这个按钮可以显示/隐藏左侧的工具栏?

A : 调用IWebBrowser2::ShowBrowserBar可以显示/隐藏指定的工具栏。
关于具体如何使用IWebBrowser2::ShowBrowserBar 函数来显示您的工具栏,请参考下面链接中的示例代码:

http://cache.baidu.com/c?word=iwebbrowser2%3B%3A%3B%3A%3Bshowbrowserbar&url=http%3A//blog%2Ecsdn%2Enet/CathyEagle/archive/2004/09/22/113557%2Easpx&b=0&a=5&user=baidu

****************************************************************************************************

Q : 我编写了一个利用socket实现POP3邮件检查的程序,但是在显示邮件的Title的时候出现了问题
在我获得的邮件内容中title这行是这样的:

Subject: =?GB2312?B?vPK1pdPKvP61xLLiytQ=?=

这个应该是一个MIME编码的,因为原来邮件的Title是:简单邮件的测试,MIME编码以后是:
vPK1pdPKvP61xLLiytQ=
但是怎么会多出来的 =?GB2312?B? 如何处理呢?谢谢!


A : 您好,

>Subject: =?GB2312?B?vPK1pdPKvP61xLLiytQ=?=

这是一个标准的MIME编码信息,MIME邮件中使用的编码方式有base64和Quoted-Printable两种,=?和?=间表示是标题内容:
“GB2312?B?vPK1pdPKvP61xLLiytQ=”

GB2312表示消息文本所用的字符集,B表示后面所用的编码方式是base64。

关于更详细的MIME邮件编码方式的信息和有关的解码示例程序,请参考下面的链接的文章:

MIME邮件编码方法介绍
http://linuxsir.zahui.net/html/13/54010.htm

******************************************************************************************************

Q : 用户在Webbrowser中显示的网页中选中了一段内容,如何获得这段内容的HTML?

A : 首先我们需要添加一个对Microsoft HTML Object Library的引用。
这儿有一段代码。

Private Sub Command1_Click()
Dim doc As MSHTML.HTMLDocument
'拿到显示在webbrowser中的html文档
Set doc = Me.WebBrowser1.Document
Dim rgText As MSHTML.IHTMLTxtRange
'通常我们看到的都是Text类型
If doc.selection.Type = "Text" Then
'从选中的内容上创建一个Text Range
Set rgText = doc.selection.createRange()
'显示html
Debug.Print rgText.htmlText
'显示文本
Debug.Print rgText.Text
End If

End Sub

Private Sub Form_Load()
Me.WebBrowser1.Navigate "www.google.com"
End Sub

具体您可以参考以下的连接。
IHTMLDocument2::selection Property
http://msdn.microsoft.com/workshop/browser/mshtml/reference/ifaces/document2/get_selection.asp

IHTMLSelectionObject Interface
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/ifaces/selectionobject/selectionobject.asp

*****************************************************************************************************

Q : 是否可以在VB6中使用GDI+?

A : 我们需要直接通过调用API的方式,在VB6种使用GDI+,GDI+可以看作是对GDI的封装。
Use GDI+ ( aka GDIPlus ) with VB6 and Win98!
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=37541&lngWId=1

http://www.vbaccelerator.com/home/VB/Code/vbMedia/Using_GDI_Plus/GDIPlus_Helper/GDIPlus_Wrapper_zip_mGDIPlus_bas.asp

********************************************************************************************************

Q : 把A机(机器名为"wang-rongpei")上的一个COM+组件("BizTalk.Interchange"),导出
为组件代理

然后在B机上建立这个组件代理,然后在B机上执行以下VB代码
  Set obj = CreateObject("BizTalk.Interchange", "wang-rongpei")
  obj.Visible = True
  MsgBox "Sccessful!"

运行后报出错提示"没有权限 'CreateObject'"。

但当我将A机子和B机子的管理员密码设为一样的,就可以成功调用,但那样代价太大,
不可行。

所以不知道有没有更好的办法。

A : 根据我的理解,你是在非域的环境中使用COM+,这样客户机和服务机上的账号是不同步的.
我想您可以在Server端配置Anonymous访问的权限.
这儿有篇KB您可以看一下.
Everyone Group Does Not Include Anonymous Security Identifier
http://support.microsoft.com/Default.aspx?id=278259
然后在服务机上
1.运行dcomcnfg
2.找到我们要使用的那个COM+ 应用程序
3.右键选择Properties
4.在Security Tab,把Authentication Level For calls 改成None,Impersonation Level改成Anonymous
5.然后您可以在服务端测试一下看看一个低权限帐号是否访问是否成功

***********************************************************************************

Q : 如果我有这样的XML:
<MENUBAR>
    <NAME>File</NAME>
    <NAME>Open</NAME>
    <NAME>Quit</NAME>
<MENUBAR>

可不可以通过XSLT转换为这样的脚本
var fileNewMenu = new Menu();
fileNewMenu.addMenu("File");
fileNewMenu.addMenu("Open");
fileNewMenu.addMenu("Quit");

就是针对每一个NAME都会对应一行fileNewMenu.addMenu的语句。

A : 关于您提到的使用 XSLT  进行 xml 数据转换(生成 html/script)时,根据xml内容动态添加 script代码语句的问题,我们一般可以使用 for-each 语句来处理,就像一般的对于多结点产生重复输出情况一样, 比如我们有如下的 xml 文档:

<?xml version="1.0" encoding="utf-8"?>
<script>
<MENUBAR>
    <NAME>File</NAME>
    <NAME>Open</NAME>
    <NAME>Edit</NAME>
    <NAME>Quit</NAME>
</MENUBAR>
</script>


在  xslt 中,我们可以如下定义模板 :

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" />

<xsl:template match="/" >
<html>
<head>
<title>simple xslt example</title>
<script language="javascript">

function CreateMenu(txt)
{
var fileNewMenu = new Menu();
<xsl:for-each select="//NAME">
fileNewMenu.addMenu("<xsl:value-of select="text()" />");
</xsl:for-each>
}

</script>
</head>
<body>
。。。。。。。。。。。


当然,一般来说XSLT 主要还是针对 XML数据之间的转换而设计的,不太适合作为 XML-->代码之间的转换,可能针对更复杂的情况会有限制。 以上是我的一些建议,希望有所帮助。

************************************************************************************************

Q : 使用ExitWindowsEx可以重新启动系统,但是启动以后需要再次登录,如何写一个
程序重新启动系统以后可以直接进入系统而不需要用户手工登录?

A : 重新启动机器后必须要进行用户登录才能进入Windows系统操作,就您的问题而言,可以尝试采用自动登录的方式,这可以通过修改注册表来实现(也可以用编程来修改注册表的选项):

1. 打开注册表(运行->“Regedit”),再打开: HKEY_LOCAL_MACHIN|SOFTWARE|MicroSoft|Windows NT|CurrentVersion |Winlogon段。

2. 在此段中按右键,新建 二个字符串段,
AutoAdminLogon=“1”,
DefaultPassword=“...”内中为超级用户Administrator所设置的Password。

同时请您参考:
How To Enable Automatic Logon in Windows 2000 Professional
http://support.microsoft.com/kb/234562/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值