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

相关文章

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

Python如何将OpenCV摄像头视频流通过浏览器播放

《Python如何将OpenCV摄像头视频流通过浏览器播放》:本文主要介绍Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完... 目录方法1:使用Flask + MJPEG流实现代码使用方法优点缺点方法2:使用WebSocket传输视

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

vscode不能打开终端问题的解决办法

《vscode不能打开终端问题的解决办法》:本文主要介绍vscode不能打开终端问题的解决办法,问题的根源是Windows的安全软件限制了PowerShell的运行,而VSCode默认使用Powe... 遇到vscode不能打开终端问题,一直以为是安全软件限制问题,也没搜到解决方案,因为影响也不大,就没有管

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安