吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[求助] C#服务 启动失败 -错误1064

[复制链接]
lizf2019 发表于 2022-11-25 18:08
本帖最后由 lizf2019 于 2022-11-25 18:12 编辑

搞了一个能每三分钟截取一次屏幕的服务
代码很简单 就while循环延时三分钟
安装是用cmd安装的:
[C] 纯文本查看 复制代码
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe G:\静心_修为\GetScreen\bin\Debug\GetScreen.exe

pause

但是点击启动就报错:
image.png
[C#] 纯文本查看 复制代码
/* 省略using */
namespace GetScreen
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }
        public string _filePath;
        public string _fileName;
        public string _suffix;                                //后缀
        public ImageFormat _imageFormat;
        // public string _cutSize;

        //鼠标截屏
        public bool _screenShotFlag;
        public bool _mouseDownFlag;
        public Point _start, _end;
        protected override void OnStart(string[] args)
        {
            //初始化

            _filePath = @"C:\PicLogs\";    //默认保存路径
            _imageFormat = ImageFormat.Jpeg;                               //默认图片格式(JPG)
            _suffix = ".jpg";

            if (!Directory.Exists(_filePath))
            {
                Directory.CreateDirectory(_filePath);
            }
            string time = DateTime.Now.Year.ToString() +
                            string.Format("{0:D2}", DateTime.Now.Month) +
                            string.Format("{0:D2}", DateTime.Now.Day) +
                            string.Format("{0:D2}", DateTime.Now.Hour) +
                            string.Format("{0:D2}", DateTime.Now.Minute) +
                            string.Format("{0:D2}", DateTime.Now.Second);
            Rectangle rect = new Rectangle();
            while (true)
            {
                rect = Screen.PrimaryScreen.Bounds;                    //获取主显示屏的边界
                _screenShotFlag = true;
                Image myImage = new Bitmap(rect.Width, rect.Height);
                Graphics myGraphics = Graphics.FromImage(myImage);     //创建绘图
                myGraphics.CopyFromScreen(new Point(0, 0), new Point(0, 0), rect.Size);
                //保存图片
                string filePathName = string.Concat(_filePath, @"\", _fileName);
                myImage.Save(filePathName, _imageFormat);
                MessageBox.Show("截图成功,图片保存至路径:" + _filePath, "提示");
                Thread.Sleep(1000);//三分钟 180000
            }
        }

        protected override void OnStop()
        {
            Application.Exit();
        }
    }
}

一点启动就会报错1064
求助大佬指点

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

咬字分开念 发表于 2022-11-25 18:17
本帖最后由 咬字分开念 于 2022-11-25 02:19 编辑

sbs  

是不是少了 restart 方法导致
Graphicssystem账户貌似也截取不到屏幕信息吧
 楼主| lizf2019 发表于 2022-11-25 18:19
00031300 发表于 2022-11-25 18:21
谢谢您的指导 学习新知识了

免费评分

参与人数 1吾爱币 -2 收起 理由
闲月疏云 -2 请勿灌水,提高回帖质量是每位会员应尽的义务!

查看全部评分

 楼主| lizf2019 发表于 2022-11-25 18:22
00031300 发表于 2022-11-25 18:21
谢谢您的指导 学习新知识了

谢谢您的回复 学习新聊法了
 楼主| lizf2019 发表于 2022-11-25 18:25
咬字分开念 发表于 2022-11-25 18:17
sbs  

是不是少了 restart 方法导致

好像是哦 账户权限那些好烦人
要不我还是直接winform后台一直挂着算了 但是就怕它不稳定
coolcalf 发表于 2022-11-25 18:50
建议早点转到无敌的.net 7
jidesheng6 发表于 2022-11-25 20:38
lizf2019 发表于 2022-11-25 18:25
好像是哦 账户权限那些好烦人
要不我还是直接winform后台一直挂着算了 但是就怕它不稳定

用winsw把你这个注册成服务试试?
Broadm 发表于 2022-11-25 20:41
建议加上异常捕获,可以把异常写到文件中,方便调试
 楼主| lizf2019 发表于 2022-11-25 20:43
jidesheng6 发表于 2022-11-25 20:38
用winsw把你这个注册成服务试试?

可以注册winform吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 04:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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