解决COM显示HTML,无法copy、paste的问题
这两个操作默认是被屏蔽了的,需要手动拦截按键消息然后处理。
如果嵌入HTML的窗口拿不到WM_KEYDOWN这样的消息,就只好直接在消息循环里拦截了:
{
while (0 != (r = GetMessage(&msg, NULL, 0, 0))) {
if (r == -1) {
break;
}
if (CheckIfDealCopyPaste(msg)) {
continue;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
然后检查按键:
bool CheckIfDealCopyPaste(const MSG &msg)
{
if (msg.message != WM_KEYDOWN) {
return false;
}
BOOL bCtrlDown = (0x80 & GetKeyState(VK_CONTROL));
if (msg.wParam == _T('X') && bCtrlDown) {
DoCommand(L"Cut");
return true;
} else if (msg.wParam == _T('C') && bCtrlDown) {
DoCommand(L"Copy");
return true;
} else if (msg.wParam == _T('V') && bCtrlDown) {
DoCommand(L"Paste");
return true;
} else if (msg.wParam == _T('A') && bCtrlDown) {
DoCommand(L"SelectAll");
return true;
}
return false;
}
void DoCommand(LPCWSTR szCommand)
{
BSTR bStr = SysAllocString(szCommand);
DoWebCommand(m_hWnd, bStr); // m_hWnd为嵌入HTML的窗口句柄
SysFreeString(bStr);
}
// 这是一个C函数
void WINAPI DoWebCommand(HWND hWnd, BSTR idCmd)
{
IOleObject **browserHandle;
IOleObject *browserObject;
TRACE_FUNC;
if ((browserHandle = (IOleObject **)GetWindowLongPtr(hWnd, GWLP_USERDATA)))
{
browserObject = *browserHandle;
do
{
IWebBrowser2 *webBrowser2 = NULL;
IConnectionPointContainer *spCPC = NULL;
IConnectionPoint *spCP = NULL;
IDispatch *pDoc = NULL;
IHTMLDocument2 *htmlDoc = NULL;
VARIANT_BOOL bVal;
HRESULT hr;
hr = browserObject->lpVtbl->QueryInterface(browserObject, &IID_IWebBrowser2, (void**)&webBrowser2);
相关文档:
定义和用法
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
该标签可声明三种 DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。
以下面这个 <!DOCTYPE> 标签为例:
<!DOCTYPE html
PUBLIC "-//W3C//DT ......
//回车:[\n\r\t]
$reg="|typeid=\"(.*)\" onsel.*[\n\r\t]*<a href="\" mce_href="\""#\">(.*)</a>|";
preg_match_all ($reg,
$html,
$out, PREG_PATTERN_ORDER);
foreach ($out as $value){
foreach ($value as $value2){
if(strlen($value2)<20)
echo ($value2."<br>");
}
} ......
1.防止图片被下载和盗用的方法:
(1)<div>嵌套<img>设置<div>的背景图片为实际图片,<img>包含的图片是一张透明图片,两张图片的尺寸相同。即相当于在真实图片上添加了一层保护膜,这张保护膜就是透明图片。这样当用户选择“图片另存为”时,将保存的是透明图片,而不是实际图 ......
下载 jacob-1.15-M3
地址http://sourceforge.net/projects/jacob-project/
开发工具 MyEclipse8.0 绿色版、Tomcat 6.0 绿色版,JDK 1.6,XP系统,J2EE项目
在MyEclipse中配置Tomcat,使用自己安装的JDK
接着配置MyEclipse 的JRE
Window---Preferences--Java---Installed JREs--选择之前配置Tomcat时加入的jdk
把jacob ......