[C#]将BaiduPCS-Web添加进系统服务,可开机自启
本帖最后由 JamesHoi 于 2020-3-19 14:30 编辑萌新第一次发帖,多多指教
前言
BaiduPCS-Web并非本人开发,软件只是将其添加进系统服务而已
BaiduPCS-Web吾爱破解帖:https://www.52pojie.cn/thread-841306-1-1.html
萌新我没怎么详细学习c#,代码写的可能不太好,见谅
软件预览
实现原理
其实原理不难,用了instsrv.exe和srvany.exe实现,下载链接:https://share.weiyun.com/5SM9M79
注册服务
方法一:在命令行输入sc create [服务名称] binpath=/srvany.exe
方法二:在命令行输入/instsrv.exe [服务名称] binpath=/srvany.exe
若显示
CreateService 失败 1783:
占位程序接收到错误数据。
则一般的解决方法是关闭安全软件
更改注册表
打开注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[服务名称]
服务名称和刚刚输入的一致
右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的程序地址。
名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。
设置为开机自启
命令行输入sc config [服务名称] start=[启用填auto,禁用填demand]
主要功能源码
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;
}
//写入命令至bat文件里
sw.WriteLine(createcommand);
sw.Flush(); sw.Close(); fs.Close();
//运行bat
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();
}
}
源码地址:https://github.com/JamesHoi/BaiduPCS-Web-service-win
常见问题
1.如何更新BaiduPCS-Web?
将script文件夹里的BaiduPCS-Go.exe替换为新版本即可
2.为何显示注册失败?
添加服务或写入注册表时失败,尝试将安全软件例如360关闭后重试
下载
Github发布页:https://github.com/JamesHoi/BaiduPCS-Web-service-win/releases
微云:https://share.weiyun.com/5SM9M79
本帖最后由 JamesHoi 于 2020-4-3 00:36 编辑
leslie835 发表于 2020-4-2 15:26
baidupcs无法上传文件了,按账号也不行,不知道楼主的能否上传,错误代码是:31066
你是用BaiduPCS-Go或BaiduPCS-Web吗,这个就是基于那个搞的,假如那个不行这个就不行
BaiduPCS-Web Github: https://github.com/liuzhuoling2011/baidupcs-web
吾爱破解: https://www.52pojie.cn/thread-841306-1-1.html
BaiduPCS-Go Github: https://github.com/iikira/BaiduPCS-Go
leslie835 发表于 2020-4-5 17:42
我是用的这个贴子https://www.52pojie.cn/thread-1113803-1-1.html里面的客户端,在GITHUB上面下载的也无 ...
嗯,你这个帖子就是基于BaiduPCS-Go搞的,不行的话我这个也不行。
上Github Issue发问题吧,虽说我上次发的issue到现在还没解决
Github Issue: https://github.com/iikira/BaiduPCS-Go/issues
顶一下,没有人么... baidupcs无法上传文件了,按账号也不行,不知道楼主的能否上传,错误代码是:31066 JamesHoi 发表于 2020-4-3 00:32
你是用BaiduPCS-Go或BaiduPCS-Web吗,这个就是基于那个搞的,假如那个不行这个就不行
BaiduPCS-Web Gi ...
我是用的这个贴子https://www.52pojie.cn/thread-1113803-1-1.html里面的客户端,在GITHUB上面下载的也无法上传。 JamesHoi 发表于 2020-4-5 19:39
嗯,你这个帖子就是基于BaiduPCS-Go搞的,不行的话我这个也不行。
上Github Issue发问题吧,虽说我上次 ...
谢谢!有人提了,昨天原作者更新了源代码,但没有更新客户端,等原作者更新客户端吧,谢谢! leslie835 发表于 2020-4-5 19:42
谢谢!有人提了,昨天原作者更新了源代码,但没有更新客户端,等原作者更新客户端吧,谢谢!
我看了下,作者貌似说停更了,由于没时间和部分技术困难 JamesHoi 发表于 2020-4-6 23:13
我看了下,作者貌似说停更了,由于没时间和部分技术困难
不管他了,谢谢! JamesHoi 发表于 2020-4-6 23:13
我看了下,作者貌似说停更了,由于没时间和部分技术困难
作者已经更新的到3.6.版本了,可以上传了,谢谢!
页:
[1]
2