2409wtl,打开浏览器

2024-09-05 18:04
文章标签 浏览器 打开 2409wtl

本文主要是介绍2409wtl,打开浏览器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文

介绍

曾经想在不破坏现有浏览器窗口内容时打开URL:方法如下,只需几秒钟.

1,首先,包含头文件:

 #include "url.h"

2,然后只需声明一个CURL对象并调用Open方法:

CURL url;
url.Open(_T("<A href="http://www.codeproject.com/">http://www.codeproject.com/</A>"));

3,如果要重用现有浏览器窗口,请给第二个参数传递:

CURL url;
url.Open(_T("<A href="http://www.codeproject.com/">http://www.codeproject.com/</A>"), false);

就这样!简单,可将此代码与CString友好框架(MFC,WTL,ATL7)一起使用.

CURL

#pragma once
class CURL
{
private://默认浏览器CString m_strBrowser;
public://打开`URL`void Open(LPCTSTR lpszURL, bool bNewWindow = true){if (bNewWindow)::ShellExecute(NULL, NULL, GetBrowser(), lpszURL, NULL, SW_SHOWNORMAL);else::ShellExecute(NULL, NULL, lpszURL, NULL, NULL, SW_SHOWNORMAL);}//从注册表中取默认浏览器LPCTSTR GetBrowser(void){//已有了浏览器吗?if (m_strBrowser.IsEmpty()){//从`HKCR\http\shell\open\command`取默认浏览器HKEY hKey = NULL;//打开注册表if (::RegOpenKeyEx(HKEY_CLASSES_ROOT, _T("http\\shell\\open\\command"),0, KEY_READ, &hKey) == ERROR_SUCCESS){//数据大小DWORD cbData = 0;//取默认值if (::RegQueryValueEx(hKey, NULL, NULL, NULL, NULL, &cbData)== ERROR_SUCCESS && cbData > 0){//分配合适的缓冲TCHAR* psz = new TCHAR [cbData];//成功if (psz != NULL){if (::RegQueryValueEx(hKey, NULL, NULL,NULL, (LPBYTE)psz, &cbData) ==ERROR_SUCCESS){//成功!m_strBrowser = psz;}delete [] psz;}}::RegCloseKey(hKey);}//有浏览器吗?if (m_strBrowser.GetLength() > 0){//从串中去除完整路径int nStart = m_strBrowser.Find('"');int nEnd = m_strBrowser.ReverseFind('"');//是否有引号,是则`路径包含空格`.if (nStart >= 0 && nEnd >= 0){//他们是一样的吗if (nStart != nEnd){//取完整路径m_strBrowser = m_strBrowser.Mid(nStart + 1, nEnd - nStart - 1);}}else{//可能有一个`带空格但没有引号`的路径名`(Netscape)`,如`:C:\PROGRAMFILES\NETSCAPE\COMMUNICATOR\PROGRAM\NETSCAPE.EXE -h "%1"`查找最后反斜杠int nIndex = m_strBrowser.ReverseFind('\\');//成功if (nIndex > 0){//查找最后反斜杠后的下个空格int nSpace = m_strBrowser.Find(' ', nIndex);//有空格吗if (nSpace > 0)m_strBrowser = m_strBrowser.Left(nSpace);}}}}//完成return m_strBrowser;}
};

见,urlnewwindow_src.

这篇关于2409wtl,打开浏览器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139677

相关文章

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

如何提高Redis服务器的最大打开文件数限制

《如何提高Redis服务器的最大打开文件数限制》文章讨论了如何提高Redis服务器的最大打开文件数限制,以支持高并发服务,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录如何提高Redis服务器的最大打开文件数限制问题诊断解决步骤1. 修改系统级别的限制2. 为Redis进程特别设置限制

2409wtl,网浏包装

原文 介绍 本教程帮助你用IE引擎构建一个基于WTL,并使用我编写的处理IWebBrowser2接口包装类的迷你浏览器. 因为知道代码可能很难读,因此本教程帮助你逐步开发一个迷你浏览器. 背景 大部分项都与互联网浏览有关.我常用超文本视图使用SDI. 有时,我要用真正的浏览器函数,因此我为IWebBrowser2编写了一个包装器. 此包装类可处理在IE中嵌入的窗口.它还可非常简单的处

zeroclipboard 粘贴板的应用示例, 兼容 Chrome、IE等多浏览器

zeroclipboard单个复制按钮和多个复制按钮的实现方法 最近网站改版想让复制代码功能在多个浏览器上都可以实现,最近看网上不少说我们的代码复制功能不好用的,我们最近将会增加代码高亮等功能,希望大家多多支持我们 zeroclipboard是一个跨浏览器的库类 它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

PC与android平板通过浏览器监控Verybot的视频

下面这个视频是PC与android平板通过浏览器监控Verybot的视频:           http://v.youku.com/v_show/id_XNjYzNzYyMTIw.html