网站开发维护合同样板临淄百度信息港网

张小明 2025/12/27 17:27:59
网站开发维护合同样板,临淄百度信息港网,网站建设 目标,wordpress 链接管理员1、日常工作中#xff0c;登录内部系统往往需要输入用户名、密码、短信验证码#xff0c;但是如果30分钟不操作#xff0c;会自动退出#xff0c;为避免频繁登录#xff0c;可以使用c#写一个自动刷新指定网址页面的程序。找来找去#xff0c;这个最好用 using System; us…1、日常工作中登录内部系统往往需要输入用户名、密码、短信验证码但是如果30分钟不操作会自动退出为避免频繁登录可以使用c#写一个自动刷新指定网址页面的程序。找来找去这个最好用using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using System.Net.WebSockets; using Newtonsoft.Json; ///用这个命令行打开谷歌然后在进入自己的地址 C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port9222 --user-data-dirC:\temp\chrome_debug namespace shuxin { public class TabInfo { [JsonProperty(id)] public string Id { get; set; } [JsonProperty(url)] public string Url { get; set; } [JsonProperty(webSocketDebuggerUrl)] public string WebSocketUrl { get; set; } [JsonProperty(title)] public string Title { get; set; } } class Program { private const string TARGET_URL sd4a.com; // 支持部分匹配如包含 baidu.com private const int REFRESH_INTERVAL_MINUTES 19; private static readonly HttpClient httpClient new(); static async Task Main(string[] args) { Console.WriteLine(Auto-refresh for browser tabs started...); Console.WriteLine($Target URL pattern: {TARGET_URL}); Console.WriteLine($Refresh every {REFRESH_INTERVAL_MINUTES} minutes.\n); while (true) { try { await RefreshTargetTabAsync(); } catch (Exception ex) { Console.WriteLine($Error: {ex.Message}); } await Task.Delay(TimeSpan.FromMinutes(REFRESH_INTERVAL_MINUTES)); } } static async Task RefreshTargetTabAsync() { // Step 1: 获取所有标签页 var tabsJson await httpClient.GetStringAsync(http://localhost:9222/json); var tabs JsonConvert.DeserializeObjectListTabInfo(tabsJson); // Step 2: 查找目标 URL支持子路径 var targetTab tabs.FirstOrDefault(t t.Url ! null t.Url.Contains(TARGET_URL, StringComparison.OrdinalIgnoreCase)); if (targetTab null) { Console.WriteLine($[{DateTime.Now:HH:mm:ss}] Target tab not found.); return; } Console.WriteLine($[{DateTime.Now:HH:mm:ss}] Found tab: {targetTab.Title} - {targetTab.Url}); // Step 3: 通过 WebSocket 发送 Page.reload 命令 await ReloadPageViaCDP(targetTab.WebSocketUrl); Console.WriteLine($[{DateTime.Now:HH:mm:ss}] Page refreshed successfully.); } static async Task ReloadPageViaCDP(string webSocketUrl) { using var ws new ClientWebSocket(); await ws.ConnectAsync(new Uri(webSocketUrl), CancellationToken.None); // 构造 CDP Page.reload 命令 var command new { id 1, method Page.reload, params new { } }; string json JsonConvert.SerializeObject(command); var buffer Encoding.UTF8.GetBytes(json); await ws.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); // 可选读取响应非必须 var receiveBuffer new byte[1024]; await ws.ReceiveAsync(receiveBuffer, CancellationToken.None); await ws.CloseAsync(WebSocketCloseStatus.NormalClosure, , CancellationToken.None); } } }2、如果想增加日志可以这样写using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Net.WebSockets; using Newtonsoft.Json; /// 启动Chrome命令C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port9222 --user-data-dirC:\temp\chrome_debug namespace shuxin { public class TabInfo { [JsonProperty(id)] public string Id { get; set; } [JsonProperty(url)] public string Url { get; set; } [JsonProperty(webSocketDebuggerUrl)] public string WebSocketUrl { get; set; } [JsonProperty(title)] public string Title { get; set; } } class Program { private const string TARGET_URL sd4a.com; private const int REFRESH_INTERVAL_MINUTES 19; private static readonly HttpClient httpClient new(); private const string LogFilePath c:\log.txt; static async Task Main(string[] args) { // 初始化信息 LogAndPrint(Auto-refresh for browser tabs started...); LogAndPrint($Target URL pattern: {TARGET_URL}); LogAndPrint($Refresh every {REFRESH_INTERVAL_MINUTES} minutes.\n); while (true) { try { await RefreshTargetTabAsync(); } catch (Exception ex) { LogAndPrint($Error: {ex.Message}); } await Task.Delay(TimeSpan.FromMinutes(REFRESH_INTERVAL_MINUTES)); } } static async Task RefreshTargetTabAsync() { // 获取所有标签页 var tabsJson await httpClient.GetStringAsync(http://localhost:9222/json); var tabs JsonConvert.DeserializeObjectListTabInfo(tabsJson); // 查找目标标签页 var targetTab tabs.FirstOrDefault(t t.Url ! null t.Url.Contains(TARGET_URL, StringComparison.OrdinalIgnoreCase)); if (targetTab null) { LogAndPrint($[{DateTime.Now:HH:mm:ss}] Target tab not found.); return; } LogAndPrint($[{DateTime.Now:HH:mm:ss}] Found tab: {targetTab.Title} - {targetTab.Url}); // 刷新页面 await ReloadPageViaCDP(targetTab.WebSocketUrl); LogAndPrint($[{DateTime.Now:HH:mm:ss}] Page refreshed successfully.); } static async Task ReloadPageViaCDP(string webSocketUrl) { using var ws new ClientWebSocket(); await ws.ConnectAsync(new Uri(webSocketUrl), CancellationToken.None); // 构造刷新命令 var command new { id 1, method Page.reload, params new { } }; var buffer Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(command)); await ws.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); // 读取响应可选 var receiveBuffer new byte[1024]; await ws.ReceiveAsync(receiveBuffer, CancellationToken.None); await ws.CloseAsync(WebSocketCloseStatus.NormalClosure, , CancellationToken.None); } /// summary /// 统一处理控制台输出 写入日志 /// /summary private static void LogAndPrint(string message) { Console.WriteLine(message); try { // 追加写入日志带完整时间戳 var logContent $[{DateTime.Now:yyyy-MM-dd HH:mm:ss}] {message}{Environment.NewLine}; File.AppendAllText(LogFilePath, logContent, Encoding.UTF8); } catch (Exception ex) { // 日志写入失败时仅提示不影响主程序 Console.WriteLine($Failed to write log: {ex.Message}); } } } }3、可以通过 VBS 脚本调用 exe 程序并不弹出控制台窗口创建一个.vbs文件比如run_hidden.vbs内容如下然后双击执行即可。也可以设置成开机启动 run_hidden.vbs 注意替换为你实际的exe文件路径 Set WshShell CreateObject(WScript.Shell) 写法1三重双引号包裹路径推荐处理路径含空格的情况 WshShell.Run C:\your\actual\path\shuxin.exe, 0, False 写法2如果路径没有空格也可以直接写不推荐兼容性差 WshShell.Run C:\your\actual\path\shuxin.exe, 0, False 释放对象可选VBS会自动回收但显式释放更规范 Set WshShell Nothing代码解析这是一个基于 Chrome DevTools Protocol (CDP) 实现自动刷新特定浏览器标签页的 C# 程序。让我详细分析其工作原理和用途主要功能程序会定期每19分钟检查并刷新包含特定URL如baidu.com的Chrome标签页防止网页因长时间不活动而过期或超时。代码结构分析1. 核心组件TabInfo类定义了浏览器标签页的数据结构Main方法程序主循环定时执行刷新任务RefreshTargetTabAsync方法查找并刷新目标标签页ReloadPageViaCDP方法通过WebSocket发送刷新命令2. 工作流程启动要求需要先用特定命令启动Chrome启用远程调试获取标签页列表通过HTTP请求http://localhost:9222/json获取所有标签页信息查找目标标签页匹配包含TARGET_URL的URL发送刷新命令通过WebSocket连接发送Page.reloadCDP命令循环执行每19分钟重复上述过程3. 关键技术点Chrome远程调试bash复制下载# 使用9222端口开启调试模式 chrome.exe --remote-debugging-port9222 --user-data-dirC:\temp\chrome_debugCDP通信通过WebSocket连接到webSocketDebuggerUrl发送JSON格式的CDP命令Page.reload命令会触发页面刷新4. 潜在用途保持登录状态防止需要登录的网页会话过期数据监控保持监控页面实时更新避免超时防止长时间不操作导致的连接断开5. 注意事项和潜在问题安全问题csharp复制下载// 远程调试端口暴露了浏览器控制权限 // 建议添加访问控制或身份验证资源管理csharp复制下载// HttpClient 是静态的但未正确配置重试和超时 // 建议添加适当的异常处理和资源清理 private static readonly HttpClient httpClient new();改进建议错误处理增强当前异常处理较简单可能需要对特定异常做不同处理配置灵活性可将目标URL和间隔时间改为可配置参数多个标签页支持目前只处理第一个匹配的标签页连接状态检查添加WebSocket连接状态的验证6. 依赖项Newtonsoft.Json (JSON.NET) - 用于JSON序列化System.Net.WebSockets - WebSocket通信System.Text.Json - .NET内置JSON支持虽然代码中使用了Newtonsoft这个程序实际上是一个简单的防休眠工具通过模拟用户活动来保持网页的活跃状态。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

新办公司网上核名在哪个网站做千万不要签劳务外包合同

Shell编程:函数与字符串操作技巧 1. Shell函数基础 Shell函数是被赋予名称的复合命令,它存储一系列命令以供后续执行。函数名本身成为一个命令,使用方式与其他命令相同,其参数可通过位置参数获取,并且和其他命令一样会设置返回码。 - 执行特性 :函数在调用它的脚本的…

张小明 2025/12/26 16:42:56 网站建设

机械行业营销型网站店面装修设计图片

一、基本概念和作用 1. su (Switch User/Substitute User) 作用:切换用户身份,主要用于切换到root用户语法:su [选项] [用户名]核心功能:完全切换到另一个用户的shell环境 su,su -,su root均可切换到root用…

张小明 2025/12/26 16:42:58 网站建设

那个网站做代买如何在百度上推广自己

第一章:AI护肤新纪元:Open-AutoGLM的诞生与使命人工智能正以前所未有的速度渗透进传统行业,护肤领域也不例外。Open-AutoGLM 的诞生标志着AI在个性化皮肤管理中的关键突破。作为一个开源的自动视觉-语言推理框架,Open-AutoGLM 融合…

张小明 2025/12/26 16:42:59 网站建设

网站用户登录流程图广州网站开发培训学校

敏捷测试的范式转变在快速迭代的敏捷开发环境中,传统的“测试在后”模式已无法满足持续交付的需求。2025年的今天,DevOps与持续测试理念深度融合,测试活动必须从传统的开发尾声向前延伸至需求阶段,向后拓展至生产监控,…

张小明 2025/12/26 16:42:57 网站建设

浏览不良网站会被网警抓吗网业怎么保存到桌面

智慧工地利用物联网、大数据、AI等核心技术,实时采集现场数据,自动分析,精准分析、智能决策、科学评价,形成一套数据驱动的新型管理模式。为施工企业提供生产提效、安全可控、成本节约的项目管理解决方案,提升项目部管…

张小明 2025/12/26 16:42:58 网站建设

京东物流网站建设特点牡丹江最新信息网0453

官宣定档!王牌班底打造古风美学盛宴。由新锐导演杨晨禹领衔执导,联合出品人王婉晨、总制片人孙萌倾力加持,制片人沈冬冬、于淼联袂操刀的古风短剧《双面公子我渡劫》正式定档!杨晨禹导演以其独树一帜的视觉叙事风格,精…

张小明 2025/12/26 16:43:01 网站建设