本帖最后由 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路径]/srvany.exe
方法二:在命令行输入[instsrv.exe路径]/instsrv.exe [服务名称] binpath=[srvany.exe路径]/srvany.exe
若显示
[SC] CreateService 失败 1783:
占位程序接收到错误数据。
则一般的解决方法是关闭安全软件
更改注册表
打开注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[服务名称]
服务名称和刚刚输入的一致
右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的程序地址。
名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。
注册表
设置为开机自启
命令行输入sc config [服务名称] start=[启用填auto,禁用填demand]
主要功能源码
[C#] 纯文本查看 复制代码 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
|