前言
BaiduPCS-Web并非本人开发,软件只是将其添加进系统服务而已
BaiduPCS-Web Github项目
实现原理
其实原理不难,用了instsrv.exe和srvany.exe实现
下载链接
注册服务
方法一:在命令行输入sc create [服务名称] binpath=[srvany.exe路径]/srvany.exe
方法二:在命令行输入[instsrv.exe路径]/instsrv.exe [服务名称] binpath=[srvany.exe路径]/srvany.exe
若显示
[SC] CreateService 失败 1783:
占位程序接收到错误数据。
则一般的解决方法是关闭安全软件
更改注册表
打开注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services<b>[服务名称]
服务名称和刚刚输入的一致
右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的程序地址。
名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。
注册表
设置为开机自启
命令行输入sc config [服务名称] start=[启用填auto,禁用填demand]
主要功能源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| private void CreateService(int solution) { FileStream fs = new FileStream(startup_path + bat_directory, FileMode.Create); StreamWriter sw = new StreamWriter(fs); string createcommand = ""; string path = "\"".Insert(1, startup_path); switch (solution) { case 1: createcommand = "sc create " + servicename + " binpath=" + path + "/script/srvany.exe\""; break; case 2: createcommand = path + "/script/instsrv.exe\" " + servicename + " " + path + "/script/srvany.exe\""; break; } sw.WriteLine(createcommand); sw.Flush(); sw.Close(); fs.Close(); string output = RunBat(startup_path + bat_directory); Thread.Sleep(refresh_delay_ms); CheckService(); if (isRecreate) output = recreate_log + output; cmdLogTextArea.AppendText(output+"\n"); if (IsServiceInstalled(servicename) != true) { if (solution == 2) DisplayError(); else DisplayCreateError(); return; } try { RegistryKey key = Registry.LocalMachine; string directory = @"System\CurrentControlSet\Services\" + servicename + @"\Parameters"; RegistryKey service = key.CreateSubKey(directory); service.SetValue("Application", startup_path + baidupcs_directory); service.SetValue("AppDirectory", startup_path + @"\script"); service.SetValue("AppParameters", ""); service.Close(); key.Close(); }catch(Exception e) { MessageBox.Show("注册表修改失败!请确保已关闭所有安全软件", "提示"); DeleteService(0); CheckService(); } }
|
Github源码
常见问题
1.如何更新BaiduPCS-Web?
将script文件夹里的BaiduPCS-Go.exe替换为新版本即可
2.为何显示注册失败?
添加服务或写入注册表时失败,尝试将安全软件例如360关闭后重试
下载
Github发布页
微云下载