吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3254|回复: 12
收起左侧

[其他原创] [C#]将BaiduPCS-Web添加进系统服务,可开机自启

[复制链接]
JamesHoi 发表于 2020-3-19 13:50
本帖最后由 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

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
一菜鸟 + 1 + 1 我很赞同!
swl0128 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| JamesHoi 发表于 2020-4-3 00:32
本帖最后由 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

 楼主| JamesHoi 发表于 2020-4-5 19:39
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
 楼主| JamesHoi 发表于 2020-3-20 11:41
leslie835 发表于 2020-4-2 15:26
baidupcs无法上传文件了,按账号也不行,不知道楼主的能否上传,错误代码是:31066
leslie835 发表于 2020-4-5 17:42
JamesHoi 发表于 2020-4-3 00:32
你是用BaiduPCS-Go或BaiduPCS-Web吗,这个就是基于那个搞的,假如那个不行这个就不行

BaiduPCS-Web Gi ...

我是用的这个贴子https://www.52pojie.cn/thread-1113803-1-1.html里面的客户端,在GITHUB上面下载的也无法上传。
leslie835 发表于 2020-4-5 19:42
JamesHoi 发表于 2020-4-5 19:39
嗯,你这个帖子就是基于BaiduPCS-Go搞的,不行的话我这个也不行。
上Github Issue发问题吧,虽说我上次 ...

谢谢!有人提了,昨天原作者更新了源代码,但没有更新客户端,等原作者更新客户端吧,谢谢!
 楼主| JamesHoi 发表于 2020-4-6 23:13
leslie835 发表于 2020-4-5 19:42
谢谢!有人提了,昨天原作者更新了源代码,但没有更新客户端,等原作者更新客户端吧,谢谢!

我看了下,作者貌似说停更了,由于没时间和部分技术困难
leslie835 发表于 2020-4-7 09:54
JamesHoi 发表于 2020-4-6 23:13
我看了下,作者貌似说停更了,由于没时间和部分技术困难

不管他了,谢谢!
leslie835 发表于 2020-4-7 11:08
JamesHoi 发表于 2020-4-6 23:13
我看了下,作者貌似说停更了,由于没时间和部分技术困难

作者已经更新的到3.6.版本了,可以上传了,谢谢!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 21:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表