《树莓派不吃灰》永久开源地址为 https://github.com/zhaoolee/pi ,将Linux融入生活,为喜欢折腾树莓派的人,提供打开思路的资源,寓教于乐,让树莓派造福人类。
The permanent open source address of "Use Pi" is https://github.com/zhaoolee/pi. It integrates Linux into life, provides resources for those who like to play with Raspberry Pi to open up their thinking, educates and entertains, and makes Raspberry Pi benefit mankind.如果你没有树莓派硬件, 也不影响你阅读本系列, 本系列使用了Ubuntu作为基础镜像, 你可以选择在老旧电脑安装Ubuntu, 或者在Windows或macOS系统装个虚拟机, 运行Ubuntu, 保持开机即可。
Even if you dont have
2025/6/16 2:41:48 162KB
1

在VB.NET编程环境中,掌握常用函数的使用是提高开发效率的关键。
以下是从“vb.net常用函数wgzn.txt”中提取并详细解释的一些重要知识点,涵盖了数值处理、字符串操作、日期时间管理、文件处理等多个方面。
### 数学函数1. **Abs(number)**:此函数用于获取数字的绝对值。
无论输入的数字是正数还是负数,返回的都是非负数,即去除了数字的符号部分。
2. **Atn(number)**:计算数值的反正切值,返回值为弧度制下的角度,范围在 -π/2 和 π/2 之间。
3. **Cos(number)**:计算数值的余弦值。
输入值应为弧度制的角度,输出为该角度的余弦值。
4. **Exp(number)**:计算 e(自然对数的底)的指数,即 e 的 number 次幂。
这在涉及指数增长或衰减的计算中非常有用。
5. **Log(number)**:计算以 e 为底的自然对数,即 ln(number),对于处理概率和统计问题尤为重要。
6. **Sgn(number)**:返回数字的符号。
如果 number 大于零,则返回 1;
如果等于零,则返回 0;
如果小于零,则返回 -1。
### 字符串转换与处理1. **Asc(String)**:将字符串中的第一个字符转换为其对应的 ASCII 码。
这对于处理文本数据时进行编码转换非常有用。
2. **Chr(charcode)**:将一个 ASCII 码转换为相应的字符。
这是 Asc 函数的逆向操作,常用于构建或修改字符串。
3. **LCase(String)**:将所有大写字母转换为小写。
适用于标准化文本输入,便于比较和排序。
4. **UCase(String)**:将所有小写字母转换为大写。
同样用于文本标准化。
5. **StrConv(expression, conversion)**:可以执行多种字符串转换,如大小写转换、Unicode 转换等,提供更多的灵活性。
### 类型转换1. **CBool(expression)**:将表达式转换为布尔类型(Boolean)。
通常用于逻辑判断中,确保变量或表达式的类型正确。
2. **CDate(expression)**:将表达式转换为日期时间类型(Date)。
这对于处理时间序列数据至关重要。
3. **CInt(expression)**:将表达式转换为整数类型(Integer)。
在需要精确计数或索引时非常有用。
4. **CDbl(expression)**:将表达式转换为双精度浮点数(Double)。
当需要高精度数学运算时,如科学计算,此转换是必需的。
5. **CStr(expression)**:将表达式转换为字符串类型(String)。
在显示或记录数据时,通常需要将数值或其他类型的数据转换为字符串。
### 日期时间函数1. **DateAdd(dateinterval, number, datetime)**:向指定日期添加指定的时间间隔。
这对于日程安排、数据分析等领域非常有用。
2. **DateDiff(dateinterval, date1, date2)**:计算两个日期之间的差异。
可用于计算年龄、项目持续时间等。
3. **DatePart(dateinterval, date)**:从指定日期中提取特定的部分,如年份、月份、天数等。
在数据分析中,根据日期的不同组成部分进行筛选或分组很常见。
### 文件处理1. **FileDateTime(pathname)**:返回文件的创建日期和时间。
在监控文件状态或进行数据备份时很有帮助。
2. **FileLen(pathname)**:返回文件的长度(以字节为单位)。
在进行文件传输或存储空间管理时,了解文件大小是必要的。
3. **Open filename For mode As #filenumber**:用于打开文件,可以指定文件模式(如读取、写入或追加),并分配一个文件编号以便后续操作。
4. **Close filenumberlist**:关闭由 Open 打开的文件。
确保所有数据都已正确保存,并释放系统资源。
这些函数构成了VB.NET编程语言的核心工具集,熟练掌握它们将极大地增强程序员解决问题的能力。
无论是进行数学运算、字符串操作,还是管理日期时间与文件,这些函数都是不可或缺的。
在实际开发中,结合使用这些函数可以实现复杂的功能,提高代码的效率和可读性。
2025/6/15 22:15:44 6KB
1
简介:
sfb sfb可帮助SQL测试和估算取决于扫描量的服务成本。
描述检查SQL语法免费估算查询费用每次运行每月自动替换查询参数在持续集成中很有用使用dryrun include安装$ pip install sfb要求Python> = 3.6 Jupyter笔记本Google合作实验室google-cloud-bigquery> = 2.6.1 pyyaml> = 5.4.1用法估算查询费用# If runs with no arguments, execute files in ./sql/*.sql.$ sfb{ " Succeeded " : [ { " SQL File " : " /home/admin/project/sfb_test/sql/covid19_open_data.covid19_open_da
2025/6/15 19:48:03 14KB
1
版本修改记录:V2.2.0.2修改:修改了HttpPost相对路径的一些问题。
V2.2.0.0增加:[id(0x00010041),helpstring("GetRevIndex")]HRESULTGetRevCount([out,retval]long*pbool);[id(0x00010042),helpstring("GetRevIndexInfo")]HRESULTGetRevInfo([in]longlIndex,[in]longlType,[out,retval]BSTR*pbool);[id(0x00010043),helpstring("SetDocProp")]HRESULTSetValue([in]BSTRstrValue,[in]BSTRstrName,[out,retval]long*pbool);[id(0x00010044),helpstring("SetDocVariable")]HRESULTSetDocVariable([in]BSTRstrVarName,[in]BSTRstrValue,[in]longlOpt,[out,retval]long*pbool);[id(0x00010045),helpstring("SavepageToDoc")]HRESULTSetPageAs([in]BSTRstrLocalFile,[in]longlPageNum,[in]longlType,[out,retval]long*pbool);----------------------------------------------------------------------------------------------------------------------------------------------------------------------LoadDso.jsvars=""s+=""s+=""document.write(s)----------------------------------------------------------------------------------------------------------------------------------------------------------------------接口文档:/*1.新建*///新建Worddocument.all.FramerControl1.CreateNew("Word.Document");//新建Exceldocument.all.FramerControl1.CreateNew("Excel.Sheet");/*2.打开文件*///打开制定的本地文件document.all.FramerControl1.Open("C:\\TestBook.xls");//制定用Word来打开c:\plain.txt文件document.all.FramerControl1.Open("C:\\Plain.txt",false,"Word.Document");//打开服务器的文件document.all.FramerControl1.Open"https://secureserver/test/mytest.asp?id=123",true,"Excel.Sheet","MyUserAccount","MyPassword");//打开服务器的文件document.all.FramerControl1.Open("http://localhost/1.doc",true);/*3.保存文件*///到本地document.all.FramerControl1.Save("c:\\1.doc",true);//服务器/*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php...),由动态页面负责解析数据boolHttpInit();boolHttpAddPostString(BSTRstrName,BSTRstrValue);boolHttpAddPostCurrFile(BSTRstrFileID,BSTRstrFileName);BSTRHttpPost(BSTRbstr);*///初始化Http引擎document.all.FramerControl1.HttpInit();//增加Post变量document.all.FramerControl1.HttpAddPostString("RecordID","20060102200");document.all.FramerControl1.HttpAddPostString("UserID","李局长");//上传打开的文件document.all.FramerControl1.HttpAddPostCurrFile("FileData","文档名.doc");//执行上传动作document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.asp");/*4.修订留痕*///进入留痕状态document.all.FramerControl1.SetTrackRevisions(1);//进入非留痕状态document.all.FramerControl1.SetTrackRevisions(0);//接受当前修订document.all.FramerControl1.SetTrackRevisions(4);/*5.设置当前用户*/document.all.FramerControl1.SetCurrUserName("张三");/*6.设置当前时间(笔迹留痕会显示("Like2006:02:0711:11:11")*/document.all.FramerControl1.SetCurrTime("2006:02:0711:11:11");/*7.设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件就靠他了SetFieldValue(BSTRstrFieldName,BSTRstrValue,BSTRstrCmdOrSheetName)strFieldName:书签名strValue:要设置的值strCmdOrSheetName:命令::ADDMARK::添加BookMark::DELMARK::删除这个BookMark::GETMARK::定位到这个BookMark::FILE::插入的是文件::JPG::插入的是图片一般来说:WORD中书签是做好的,可以通过此接口把外界数据设置进书签中去。
*///在当前WORD位置插入标签,标签名为"book1",数值为"test"document.all.FramerControl1.SetFieldValue("book1","test","::ADDMARK::");//设置书签"Time",数值为"2006-03-1622:22:22"document.all.FramerControl1.SetFieldValue("Time","2006-03-1622:22:22","");//在书签位置"hongtou",插入红头文件"http://222.222.222.222/hongtou1.doc"这样,红头就自动插进去了document.all.FramerControl1.SetFieldValue("hongtou","http://222.222.222.222/hongtou1.doc","::FILE::");/*8.设置菜单显示情况BOOLSetMenuDisplay(longlMenuFlag)lMenuFlag为以下数值的组合#defineMNU_NEW0x01#defineMNU_OPEN0x02#defineMNU_CLOSE0x04#defineMNU_SAVE0x08#defineMNU_SAVEAS0x16#defineMNU_PGSETUP0x64#defineMNU_PRINT0x256#defineMNU_PROPS0x32#defineMNU_PRINTPV0x126*///只有“新建”菜单可用document.all.FramerControl1..SetMenuDisplay(1);//只有“打开”菜单可用document.all.FramerControl1.SetMenuDisplay(2);//只有“打开”和“新建”菜单可用document.all.FramerControl1.SetMenuDisplay(3);/*9.保护文档和解保护文档lProOrUn:1:保护文档;
0:解除保护lProType:wdNoProtection=-1,wdAllowOnlyRevisions=0,wdAllowOnlyComments=1,wdAllowOnlyFormFields=2strProPWD:密码*///完全保护文档,密码为"pwd"document.all.FramerControl1.ProtectDoc(1,1,"pwd");//解除文档保护document.all.FramerControl1.ProtectDoc(0,1,"pwd");/*10.显示或隐藏修订内容ShowRevisions(longnNewValue)nNewValue=0则隐藏修订=1则显示修订*///显示修订留痕document.all.FramerControl1.ShowRevisions(1);//隐藏修订留痕document.all.FramerControl1.ShowRevisions(0);/*11.插入合并文件,strFieldPath文件路径,可以是http,ftp的路径pPos=0//当前鼠标位置1;文件开头2;文件末尾pPos的第4位为1的时候,代表插入的是图片InSertFile(BSTRstrFieldPath,longlPos)*///文件头部插入文件document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1);//文件尾部插入文件document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2);//当前光标位置插入文件document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0);//文件头部插入图片document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",9);//文件尾部插入图片document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",10);//当前光标位置插入图片document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",8);/*0x31.文档另存为HRESULTSaveAs([in]VARIANTstrFileName,[in]VARIANTdwFileFormat,[out,retval]long*pbool);参数:strFileName:文件本地路径,如c:\\11.docdwFileFormat:文件格式dwFileFormat的数值为:Excel:TypeenumXlFileFormat{xlAddIn=18,xlCSV=6,xlCSVMac=22,xlCSVMSDOS=24,xlCSVWindows=23,xlDBF2=7,xlDBF3=8,xlDBF4=11,xlDIF=9,xlExcel2=16,xlExcel2FarEast=27,xlExcel3=29,xlExcel4=33,xlExcel5=39,xlExcel7=39,xlExcel9795=43,xlExcel4Workbook=35,xlIntlAddIn=26,xlIntlMacro=25,xlWorkbookNormal=-4143,xlSYLK=2,xlTemplate=17,xlCurrentPlatformText=-4158,xlTextMac=19,xlTextMSDOS=21,xlTextPrinter=36,xlTextWindows=20,xlWJ2WD1=14,xlWK1=5,xlWK1ALL=31,xlWK1FMT=30,xlWK3=15,xlWK4=38,xlWK3FM3=32,xlWKS=4,xlWorks2FarEast=28,xlWQ1=34,xlWJ3=40,xlWJ3FJ3=41,xlUnicodeText=42,xlHtml=44};Word:TypeenumWdSaveFormat{wdFormatDocument=0,wdFormatTemplate=1,wdFormatText=2,wdFormatTextLineBreaks=3,wdFormatDOSText=4,wdFormatDOSTextLineBreaks=5,wdFormatRTF=6,wdFormatUnicodeText=7,wdFormatEncodedText=7,wdFormatHTML=8};PPT:enumPpSaveAsFileType{ppSaveAsPresentation=1,ppSaveAsPowerPoint7=2,ppSaveAsPowerPoint4=3,ppSaveAsPowerPoint3=4,ppSaveAsTemplate=5,ppSaveAsRTF=6,ppSaveAsShow=7,ppSaveAsAddIn=8,ppSaveAsPowerPoint4FarEast=10,ppSaveAsDefault=11,ppSaveAsHTML=12,ppSaveAsHTMLv3=13,ppSaveAsHTMLDual=14,ppSaveAsMetaFile=15,ppSaveAsGIF=16,ppSaveAsJPG=17,ppSaveAsPNG=18,ppSaveAsBMP=19};*//*0x32.删除本地文件HRESULTDeleteLocalFile([in]BSTRstrFilePath);参数:strFileName:文件本地路径,如c:\\11.doc*//*0x33.创建临时文件HRESULTGetTempFilePath([out,retval]BSTR*strValue);返回:临时文件的路径地址。
使用完后,用DeleteLocalFile删除*//*0x34.设置文档显示模式HRESULTShowView([in]longdwViewType,[out,retval]long*pbool);dwViewType的可取值为:enumWdViewType{wdNormalView=1,wdOutlineView=2,wdPrintView=3,wdPrintPreview=4,wdMasterView=5,//这个是大纲wdWebView=6};*///大纲模式document.all.FramerControl1.ShowView(5);/*0x39:下载远程文件HRESULTDownloadFile([in]BSTRstrRemoteFile,[in]BSTRstrLocalFile,[out,retval]BSTR*strValue);参数:strRemoteFile:远程路径地址,httporFtpstrLocalFile:本地保存地址,ifstrLocalFile==NULLthenCreateTempFileandreturnTempFile'sPath*//*0x40:增加Http上传时候的,附加其他文件HRESULTHttpAddPostFile([in]BSTRstrFileID,[in]BSTRstrFileName,[out,retval]long*pbool);参数:strFileID:文件的ID,供服务器端页面解析strFileName:本地文件地址*//*0x41,0x42.获取详细的修订信息。
GetRevCount([out,retval]long*pbool);GetRevInfo([in]longlIndex,[in]longlType,[out,retval]BSTR*pbool);例子如下*/varvCount;vCount=document.all.FramerControl1.GetRevCount();alert(vCount);varvOpt=0;varvDate;for(vari=1;i<=vCount;i++){vOpt=document.all.FramerControl1.GetRevInfo(i,2);if("1"==vOpt){vOpt="插入";}elseif("2"==vOpt){vOpt="删除";}else{vOpt="未知操作";}vDate=newString(document.all.FramerControl1.GetRevInfo(i,1));vDate=parseFloat(vDate);alert(vDate);dateObj=newDate(vDate);alert(dateObj.getYear()+"年"+dateObj.getMonth()+1+"月"+dateObj.getDate()+"日"+dateObj.getHours()+"时"+dateObj.getMinutes()+"分"+dateObj.getSeconds()+"秒");alert("用户:"+document.all.FramerControl1.GetRevInfo(i,0)+"\r\n操作:"+vOpt+"\r\n内容:"+document.all.FramerControl1.GetRevInfo(i,3));}/*0x43.设置基本信息:HRESULTSetValue([in]BSTRstrValue,[in]BSTRstrName,[out,retval]long*pbool);1.设置文件只读密码SetValue("password","::DOCPROP:PassWord");2.设置文件修改密码SetValue("password","::DOCPROP:WritePW");返回值:0正确-1:不支持此命令,请确定您的第二个参数没有传错-127:异常*///设置文件只读密码document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord");//设置文件修改密码document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW");/*0x44.设置文档变量,这个很少能用到HRESULTSetDocVariable([in]BSTRstrVarName,[in]BSTRstrValue,[in]longlOpt,[out,retval]long*pbool);strVarName:变量名strVlaue:变量值lOpt:操作类型,按位第一位为1:表示update域关联的第二位为1:表示如果没有这个变量则添加第三位为1:未来支持return:0:OK-127:异常*//*0x45:分页保存HRESULTSetPageAs([in]BSTRstrLocalFile,[in]longlPageNum,[in]longlType,[out,retval]long*pbool);strLocalFile:本地路径lPageNum:页数*/
2025/6/13 12:22:57 139KB web office word 在线
1
操作系统课程设计报告的目标是模拟构建一个多用户多级目录的文件系统,这有助于深入理解文件系统内部的功能和实现机制。
在这一设计中,我们将探讨以下几个关键知识点:1.**文件存储空间管理**:为了实现文件系统,我们需要在内存中创建一个虚拟磁盘空间,模拟实际的磁盘存储。
文件的物理存储可以通过显式链接或者其他方法实现,如连续分配、链接分配或索引分配等。
显式链接允许通过指针跟踪文件在磁盘上的分布。
2.**位示图管理**:位示图是一种有效管理磁盘空闲空间的方法,它用二进制位表示磁盘上的每个扇区是否被占用。
如果结合显式链接分配,位示图可以集成到FAT(文件分配表)中,方便查找和管理空闲空间。
3.**多级目录结构**:文件目录结构应支持多用户和多级目录,这意味着每个用户都可以有自己的私有文件和子目录。
目录项包含文件名、物理地址、长度等信息,同时提供访问控制,以实现读写保护。
4.**文件操作**:设计的文件系统需要实现一系列基本的文件操作,包括用户登录(login)、系统初始化、文件创建(create)、打开(open)、读取(read)、写入(write)、关闭(close)、删除(delete)、创建目录(mkdir)、改变当前目录(cd)、列出文件目录(dir)以及退出(logout)。
5.**用户界面**:设计一个实用的用户界面至关重要,因为它使得用户可以方便地进行各种文件操作。
这通常涉及到命令行接口或图形用户界面的设计。
6.**编程语言**:可以选择C++或C等编程语言来实现这个文件系统,这些语言提供了底层操作系统的接口,便于直接与硬件交互。
7.**系统分析、设计与实现**:设计者需要独立完成系统的需求分析、设计、编码和测试。
设计报告应详尽记录整个过程,以便于评估和后续改进。
8.**提交材料**:需要提交调试过的完整源代码、可执行文件以及设计报告的书面和电子版本。
在设计过程中,可以参考《计算机操作系统》、《操作系统实验指导书》、《计算机操作系统教程》以及《现代操作系统》等书籍,这些书籍提供了关于文件系统设计的理论基础和实践经验。
在具体实现时,可以先进行概念设计,明确数据结构,如数据块在内存中的物理结构、文件索引结构、文件系统元素结构、文件系统状态以及用户信息等。
接着,详细设计各个模块,如文件创建、打开、读写等操作的算法流程,并绘制流程图。
进行编码、测试和调试,确保系统能够正确运行并满足所有功能需求。
在设计报告中,应详细阐述这些步骤和决策,以展示整个设计过程的完整性和理解深度。
2025/6/4 20:24:45 425KB 操作系统
1
用A*算法实现的N数码的演示程序,可以连续演示,单步演示,也可暂停,调节速度。
也可查看A*演示过程中的Open表与Close表,演示完成可生成最优路径。
具体实现见博客:https://blog.csdn.net/happyeveryday62/article/details/80286157
2025/4/23 17:20:36 48.48MB A*算法 八数码 MFC
1
请先打开WinDjView-0.4.1.exe选择file——open——信息论与编码学习辅导及习题详解.djvu
2025/4/22 16:47:30 2.16MB 信息论与编码
1
open联盟TC8测试规范是行业的标准测试规范,包括物理层PMA,IOP,TCP/IP/ARP等协议一致性测试。
2025/4/21 18:55:14 7.74MB 车载以太网测试 协议一致性测试
1
包括实验题目,代码及运行结果实验8文件管理(2学时)一、实验目的理解文件系统的主要概念及文件系统内部功能和实现过程。
二、实验内容采用二级文件目录结构,编写程序实现文件系统的文件存储空间的管理、文件的物理结构、目录结构管理和文件操作。
三、实验要求1、设计一个有m个用户的文件系统,每个用户最多可保存一个文件。
2、规定用户在一次运行中只能打开K个文件。
3、系统能检查键入命令的正确性,出错时应能显示出错原因。
4、对文件应能设置保护措施,如只能执行、允许读、允许写等。
5、对文件的操作设计提供一套文件操作:CREATE建立文件;
DELETE删除文件;
OPEN打开文件;
CLOSE关闭文件;
READ读文件;
WRITE写文件。
6、二级目录结构如下图所示。
用户名用户文件目录地址主文件目录MFD文件名状态(打开/建立)指针用户文件目录UFD
2025/4/10 21:34:11 120KB code
1
在自动控制领域,掌握专业词汇是至关重要的,无论是学习理论知识还是进行实际操作,都需要对这些术语有清晰的理解。
这份名为“自动控制专业用词汇中英文对照”的文档,旨在为学习者提供一个全面且准确的词汇参考,方便他们在研究或工作中查找和理解相关概念。
自动控制,简单来说,是指通过某种装置或系统自动调节或操纵一个过程,使其保持在预定状态或按照预定方式运行。
这一领域的核心在于设计和分析能够自我调整并纠正偏差的系统。
以下是一些自动控制专业中的关键术语及其解释:1.**控制器(Controller)**:负责比较设定值(Setpoint)与实际测量值(ProcessVariable),并计算出必要的输出以减少误差。
2.**反馈(Feedback)**:系统中用于将输出信号反向传递回输入端的过程,有助于消除误差并稳定系统。
3.**开环控制系统(Open-LoopControlSystem)**:不依赖于反馈机制的系统,其输出不受系统实际状态影响。
4.**闭环控制系统(Closed-LoopControlSystem)**:包含反馈机制的系统,能够根据系统输出调整控制输入。
5.**比例积分微分器(PIDController)**:一种广泛应用的控制器,通过比例(P)、积分(I)和微分(D)三个部分来调整输出。
6.**稳定性(Stability)**:控制系统能够维持期望输出的能力,不受初始条件或外部扰动的影响。
7.**超调(Overshoot)**:在阶跃响应中,系统输出超过期望值的最大幅度。
8.**振荡(Oscillation)**:在系统响应中出现的周期性波动。
9.**死区(DeadBand)**:控制器在一定范围内不产生动作的输入变化范围。
10.**时间常数(TimeConstant)**:衡量系统响应速度的参数,与系统达到新稳态所需的时间相关。
11.**热控(ThermalControl)**:专门针对温度控制的技术,常见于能源、制造和环境工程等领域。
“热控专业知识网”可能是一个网络资源,提供了更多关于热控技术的信息,包括温度传感器、冷却系统、加热元件等专业知识。
学习这些词汇不仅可以帮助我们理解自动控制系统的原理,还能提高在实际应用中的效率和准确性。
无论是工程师在设计自动化设备,还是科研人员在进行控制理论研究,都离不开对这些专业词汇的深入理解和运用。
通过对照文档,可以轻松查找和学习,进一步提升专业素养。
2025/4/10 18:57:22 7KB
1
共 151 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡