AutoIt3常见问题解答-程序员宅基地

Q1 如何调试脚本?

MsgBox(0,"测试",$var)

ConsoleWrite("var=" & $var & @CRLF)

 

Q2 操作CMD相关命令

Q2.1 如何运行DOS命令?

Run(@ComSpec & ' /c dir>d:\dir.txt',"", @SW_HIDE)

#include <Process.au3>

$rc = _RunDos("start Http://www.autoit.net.cn")

Q2.2 运行DOS命令如何连接AU3变量?

Local $var="d:\dir.txt"

Run(@ComSpec & ' /c dir>"'&$var&'"',"", @SW_HIDE)

Q2.3 运行DOS命令如何自动应答?(注意:这并不属于AU3的问题,这里附带说一下。)

RunWait(@ComSpec & ' /c echo y|cacls %systemroot%\system32\wpcap.dll /d everyone', @SystemDir, @SW_HIDE)

Q2.4 多层DOS命令如何用?如netsh,diskpart等。

$dns="192.168.0.1"

RunWait(@ComSpec & ' /C netsh -c interface ip set dns 本地连接 source=static addr="' & $dns &'" register=PRIMARY ',"", @SW_HIDE )

Q2.5 运行DOS命令如何直接截取回显?

;注意:回显截取只支持Run而不是RunWait

#include <Constants.au3>

Opt("MustDeclareVars",1)

_test()

Func _test()

Local $foo,$line,$lines

$foo = Run(@ComSpec & " /c sc query Alerter", @SystemDir, @SW_HIDE, $STDOUT_CHILD)

$lines = ""

While 1

$line = StdoutRead($foo)

If @error Then ExitLoop

$lines &= $line

Wend

MsgBox(0,"test",$lines)

EndFunc

 

Q3 如何防止程序重复运行?

见帮助手册的"_Singleton"函数

 

Q4 如何直接运行系统程序关联的文件?如[.txt, .msi, .pdf, .jpg, .lnk, .msc]等等

ShellExecute("Notepad.exe")

ShellExecute("test.txt", "", @ScriptDir, "edit")

ShellExecute("http://www.autoit.net.cn")

ShellExecute("C:\boot.ini", "", "", "print")

ShellExecute("test.lnk","",@ScriptDir)

ShellExecute("gpedit.msc", "", "", "open", @SW_MAXIMIZE)

 

Q5 如何控制系统服务?

API的控制服务

_StartService() 开始服务

_StopService() 停止服务

_ServiceExists() 检测服务

_ServiceRunning() 运行服务

_CreateService() 建立服务

_DeleteService() 删除服务

WMI的控制服务

_ServStart() 开始服务

_ServStop() 停止服务

_ServDelete() 删除服务

_ServGetDetails() 服务详情

_ServGetState() 服务状态

_ServListInstalled() 服务列表

_ServPause() 暂停服务

_ServResume() 服务改名

_SerSetState() 设置服务状态

http://www.autoit.net.cn/viewthr ... &extra=page%3D1

 

Q6 如何操作注册表?

Q6.1 常用的注册表设置

;读取注册表指定的值

$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")

MsgBox(4096, "Program files 文件夹位于:", $var)

;创建一个主键、子键或值项。

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey", "REG_SZ", "Hello this is a test")

;删除注册表指定的值 (注意:这里删除的是键项,而不是键值。)

RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE", "TestKey")

;其他还有RegEnumKey(),RegEnumVal(),详细应用请参考帮助。

Q6.2 注册表权限设置

http://www.autoit.net.cn/viewthr ... hlight=%C8%A8%CF%DE

 

Q7 如何不重启刷新注册表马上生效?

Do

ProcessClose("explorer.exe")

Until Not ProcessExists("explorer.exe")

Run("gpupdate /force","",@SW_HIDE)

;强烈推存应用这个

DllCall("user32.dll","int","SendMessageTimeout","hwnd",65535,"int",26,"int",0,"int",0,"int",0,"int",1000,"str","dwResult")

 

Q8 AU3编写的程序如何带参数运行?

If $cmdline[0] <> 0 Then

$filename = $cmdline[1]

MsgBox(4096, "测试", '你输入的命令行参数是 "' & $filename & '"')

Else

MsgBox(64, "测试", '请带参数运行此程序')

EndIf

If StringInStr($CmdLineRaw, "/help") Then

MsgBox(64,"帮助","这是本程序的帮助说明")

EndIf

 

Q9 如何删除脚本程序自身?

;删除脚本程序自身(如果编译成了EXE同样有效,会把自己删掉)

Run(@ComSpec&' /c ping 127.0.0.1 -n 3&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE)

;删除脚本所在目录的一切东西(这个可以作为卸载的一部分,如果没有写注册表的绿色软件,则直接可以作为卸载命令)

Run(@ComSpec&' /c ping 127.0.0.1 -n 3&rd /q/s "'&@ScriptDir&'"',@ScriptDir,@SW_HIDE)

 

Q10 AU3如何实现加密字符串和文件校验?

;RC4加密(AU3内置函数)

#include <String.au3>

Opt("MustDeclareVars", 1)

Local $var

;加密字符串

$var=_StringEncrypt(1,"sanhen",@ComputerName,1)

MsgBox(0,"test",$var)

;解密字符串

$var=_StringEncrypt(0,$var,@ComputerName,1)

MsgBox(0,"test",$var)

;MD5字符串加密

http://www.autoit.net.cn/viewthread.php?tid=378&highlight=MD5

;MD5文件效验

http://www.autoit.net.cn/viewthr ... &extra=page%3D1

;哈唏算法

http://www.autoit.net.cn/viewthread.php?tid=372&highlight=MD5

 

Q11 如何修改屏幕分辨率/刷新频率/颜色深度?

http://www.autoit.net.cn/viewthr ... angeDisplaySettings

 

Q12 如何在界面显示GIF图片?

http://www.autoit.net.cn/viewthr ... ht=Shell.Explorer.2

 

Q12.1 AU3调用OBJ的一点点例子?

http://www.autoit.net.cn/viewthread.php?tid=365&highlight=obj

 

Q13 如何在界面上显示SWF格式的文件?

参考Q12.1的例子

或者通过IE对象来实现,请参考:

http://www.autoit.net.cn/viewthr ... &extra=page%3D1

 

Q14 如何控制摄像头?

http://www.autoit.net.cn/viewthr ... &extra=page%3D3

 

Q15 如何界面中调用皮肤?

http://www.autoit.net.cn/viewthr ... &extra=page%3D3

http://www.autoit.net.cn/viewthr ... &extra=page%3D2

 

Q16 我怎样才能DEBUG我的脚本?

A1. 这个问题有无数个答案,不过最有效的还是从SciTE4AutoIt3开始,大多数人都使用这个软件来编写脚本。在debug方面SciTE有下面几条优势:

Syntax会即时高亮不符合语法的语句,这会让用户更容易发现脚本里的错误

内建在工具菜单里的Syntax可以一次检测脚本里的全部错误

内置的代码清理程序可以让代码变得更整齐、更具有可读性,它同时也能修正错误拼写的函数和变量

A2. 你也能通过添加下面的代码来在任何一台电脑上debug你的脚本:

Func dbg($msg)

DllCall("kernel32.dll", "none", "OutputDebugString", "str", $msg)

EndFunc

然后,你可以在需要debug的地方加上下面的代码:

dbg("The value of Variable 1 at this time is " & $var1

这个方法对用户来说更加透明,同时也只对DebugView from SysInternals之类的程序可见。这个方法在那些没有安装SciTE的机器上更具有优势。

 

Q17 我怎样才能打开那些非exe格式的文件[.txt, .msi, .pdf, .jpg 之类]? [或] 我怎样才能用默认的浏览器打开网页?

A1. 这也就是为什么我们创建ShellExecute函数.下面有一个例子:

ShellExecute("C:\autoitscripts\test.au3", "", "", "edit", @SW_MAXIMIZE)

你也能像这样打开一个网址:

ShellExecute("http://www.autoitscript.com/forum")

如果文件的右键菜单里有打印选项,你就可以这样用AutoIt打印文件:

ShellExecute("C:\boot.ini", "", "", "print")

如果你希望暂停脚本直到程序结束,你可以使用ShellExecuteWait函数,它们的运行参数是相同的.

 

Q18. 我怎样才能让脚本作为系统服务启动? 

这也是一个有多个答案的问题

A1.如果你只想在自己的电脑上安装服务,最简单的方法是使用Pirmasoft RunAsSvc.这个程序可以方便地添加/删除系统服务.

A2.如果你想让服务能在任何电脑上都能安装,你可以使用SRVANY.EXE和ServiceControl.au3,像这样安装服务:

#include "ServiceControl.au3"

$servicename = "MyServiceName"

_CreateService("", $servicename, "My AutoIt Script", "C:\Path_to_srvany.exe", "LocalSystem", "", 0x110)

RegWrite("HKLM\SYSTEM\CurrentControlSet\Services\" & $servicename & "\Parameters", "Application", "REG_SZ", @ScriptFullPath)

或者使用下面的代码删除服务: #include "ServiceControl.au3"

$servicename = "MyServiceName"

_DeleteService("", $servicename)

 

Q19 我怎样在复制文件时显示进度条?

A1.函数集ShellFileOperation.au3能完成这个操作:

 

Q20 我怎样让快捷键只在自己的GUI起作用?

A1. 在更好的方法出现之前,最简单的方法是使用下面的代码:

#include <GuiConstants.au3>

HotKeySet("{ENTER}", "catchguikey")

$gui = GuiCreate("Hotkey Test")

GuiCtrlCreateLabel("Press Enter", 0, 0)

GuiSetState()

While 1

$msg = GUIGetMsg()

If $msg = $GUI_EVENT_CLOSE Then ExitLoop

Wend

 

Func catchguikey()

Local $opt = Opt("WinTitleMatchMode", 4)

If WinGetHandle("active") = $gui Then

If @HotKeyPressed = "{ENTER}" Then

;Do something here

ToolTip("Key Pressed")

Sleep(1000)

ToolTip("")

EndIf

Else

HotKeySet(@HotKeyPressed)

Send(@HotKeyPressed)

HotKeySet(@HotKeyPressed, "catchguikey")

EndIf

Opt("WinTitleMatchMode", $opt)

EndFunc

 

Q21 我怎样检测键盘是否按下了指定的键?

A1. 你可以使用_IsPressed()函数来检测按键. 你可以在帮助文件里找到这个函数:User Defined Functions -> Misc Management -> _IsPressed. 下面的例子会显示如何在K键按下时单击鼠标左键:

#Include <Misc.au3>

$pressed = 0

While 1

If _IsPressed("4B") Then

If Not $pressed Then

ToolTip("K Key being held down")

MouseDown("left")

$pressed = 1

EndIf

Else

If $pressed Then

ToolTip("")

MouseUp("left")

$pressed = 0

EndIf

EndIf

Sleep(250)

WEnd

 

Q22 我怎样在远程计算机上运行脚本?

A1. 这个问题的答案由你在局域网的经验决定,如果目标系统是Windows 2000或Windows XP而且你拥有管理员权限,你就可以使用下面的两个程序:

SysInternals的PsExec

BeyondLogic的BeyondExec

这两个程序都允许在远程计算机上运行任何程序,甚至可以把你的脚本复制到目标系统上.不过Windows XP Home Edition 上不能运行这个两个程序.

 

Q23 我怎样制作一个拥有可选参数的自定义函数?  

A1. 你可以通过在声明函数时给参数指定一个默认值来做到. 下面是一个例子:

Func testme($param1, $param2 = "nothing", $param3 = 5)

MsgBox(0, "", "Parameter one is required. The value of Parameter 1 is " & $param1 & @CRLF & "Parameter 2 is optional. The value of Parameter 2 is " & $param2 & @CRLF & "Parameter 3 is optional. The value of Parameter 3 is " & $param3)

EndFunc

如果调用testme()时只使用了一个参数[比如testme("test")]就会输出:

 

Parameter one is required. The value of Parameter 1 is test

Parameter 2 is optional. The value of Parameter 2 is nothing

Parameter 3 is optional. The value of Parameter 3 is 5

 

不过,如果调用函数时使用了超过2个参数,比如testme("test", "something"), 就会输出:

Parameter one is required. The value of Parameter 1 is test

Parameter 2 is optional. The value of Parameter 2 is something

Parameter 3 is optional. The value of Parameter 3 is 5

 

 

Q24 我怎样让系统启动时自动运行脚本?

A1.你可以使用下面的语句来做到:

RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "MyProgramName", "REG_SZ", @ScriptFullPath)

或者:

FileCreateShortcut(@ScriptFullPath, @StartupCommonDir & "\MyProgramName.lnk")

 

Q25 我怎样让脚本删除自己?

A1. 下面的代码可以删除一个正在运行的脚本.

Func _SelfDelete($iDelay = 0)

Local $sCmdFile

FileDelete(@TempDir & "\scratch.bat")

$sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _

& ':loop' & @CRLF _

& 'del "' & @ScriptFullPath & '"' & @CRLF _

& 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _

& 'del ' & @TempDir & '\scratch.bat'

FileWrite(@TempDir & "\scratch.bat", $sCmdFile)

Run(@TempDir & "\scratch.bat", @TempDir, @SW_HIDE)

EndFunc

 

 

Q26 我怎样在GUI里建立一个可点击的超链接?

A1. ChangeResolution.au3可以完成这些设置. 

 

Q27 我怎样修改屏幕分辨率/刷新频率/颜色深度?

A1. Gafrost在这方面做了很大努力,并提供了一个UDF来帮助完成这个功能.

 

Q28 在多显示器情况下我怎样得到屏幕分辨率?

A1. 下面的代码可以得到屏幕的总分辨率:

Global Const $SM_VIRTUALWIDTH = 78

Global Const $SM_VIRTUALHEIGHT = 79

$VirtualDesktopWidth = DLLCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALWIDTH)

$VirtualDesktopWidth = $VirtualDesktopWidth[0]

$VirtualDesktopHeight = DLLCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALHEIGHT)

$VirtualDesktopHeight = $VirtualDesktopHeight[0]

 

Q29 我怎样注册一个文件类型[或者] 我怎样才能让我的程序变为一个文件类型的默认打开方式?

A1. 文件注册对那些新手来说的确有些困难. 第一件要做的事就是要让你的脚本能接受命令行调用. 下面是一段示例代码:

;$cmdline[0] is the number of parameters passed

If $cmdline[0] <> 0 Then

$filename = $cmdline[1]

; Do something with the file here

MsgBox(0, "UXYFixer", 'The file name passed to the command line is "' & $filename & '"')

Else

; We did not get any command line parameters.

; If this is a command line only program, you would want to

; alert the user that the command line parameters were incorrect.

; If this is a GUI program (like a notepad program), you would

; want to simply continue from here without opening a file.

MsgBox(0, "UXYFixer", 'Command line parameters incorrect.' & @CRLF & 'Command line usage: "' & @ScriptName & '" "file to process"')

EndIf

然后你的脚本就能接受文件了, 你可以开始注册一个文件类型. 为了避免错误,我对此专门制作了一个UDF—— FileRegister.au3

 

Q30 为什么点击我的下拉框(GUICtrlCreateCombo)时不出现一个下拉列表?

A1. 在使用GUICtrlCreateCombo前你先要确认height参数是你想要的下拉列表的高度,Windows XP会自动选择一个高度,但其他版本的Windows并不能这样做。

$combo = GUICtrlCreateCombo("",10,10,200,20)

应修改为:

$combo = GUICtrlCreateCombo("",10,10,200,200)

 

Q31 为什么我的帖子没有人回答?

A1. 你是否对你的问题做了得体的描述? 如果你的标题或者对问题的描述含糊不清, 其他人只会忽略掉你的问题而不是回答它. 那些标题像 "帮助我", "我有了麻烦", "问题", "帮我看看代码的问题", "这段代码不能工作" 的帖子并不会引起其他人的注意. 那些有经验的用户(他们通常能解决你的问题) 经常会跳过类似的帖子. 一个规范的标题应该像这样:"使用WinWaitClose时出现的问题",或者 "陷入了死循环".

A2. 你是否贴出了你的代码? 如果你不贴出你的问题代码你就不可能得到帮助. 在发代码之前先把不相关的代码去掉.也许当然去掉不相关的代码时你已经看到问题所在的地方..也许会发现.原来是一个那样简单的问题.

A3. 请让你的文字变得易于阅读,适当的标点很重要,同时也不要给文字加上颜色.另外最好不要使用繁体字,繁体字并不能让你显得更有文化,相反而会影响他人的阅读.

另外很多人喜欢用些比较吓人的标题,比如"比如高手进来看一下"."版主进来解决一下"."高难度的问题".问题常常因为我不是高手或者版主而没有回答.或者发现"高难度"的问题原来是很菜滴.不是每个人都喜欢扮帅滴.....

还有,在提问建议多搜索一下。

 

Q32 为什么杀毒软件报告我的脚本被感染?

A1. AutoIt并没有在你的系统里安装病毒,如果你的程序被报毒的话(前提是你自己不怀恶意) 那么这就是一次误报. 杀毒软件会在编译过后的AutoIt脚本里发现一些标记,并以此认为你的脚本被感染病毒.之所以会出现这样的情况有下面的两点原因:

AutoIt使用UPX加壳. UPX是一种开源的程序压缩软件. 经常被一些病毒使用(让它们变得更小).

一些怀恶意的写脚本的人让AutoIt脚本引擎被标识为了病毒.

 

补充AU3中文官网上的 《FAQ 大全》初学者必看

说明:

该说的"提问智慧"里边已经说了,这里不重复了。不要拿"新手"作借口。。。

太多的重复提问贴提问,只会让人看而生厌,并且有浪费时间的嫌疑,这里重复一句,学会搜索论坛。

提问区"已解决"版块里的问题都是解决了的,建议新手多翻下,多看下。这里发些常见的问题解答。

声明:此贴只发www.autoit.net.cn,其他的都是转贴。转贴请注明出处,多谢合作。

 

转载于:https://www.cnblogs.com/acetaohai123/p/6579460.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30558305/article/details/95538652

智能推荐

什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?_成员内部类和局部内部类的区别-程序员宅基地

文章浏览阅读3.4k次,点赞8次,收藏42次。一、什么是内部类?or 内部类的概念内部类是定义在另一个类中的类;下面类TestB是类TestA的内部类。即内部类对象引用了实例化该内部对象的外围类对象。public class TestA{ class TestB {}}二、 为什么需要内部类?or 内部类有什么作用?1、 内部类方法可以访问该类定义所在的作用域中的数据,包括私有数据。2、内部类可以对同一个包中的其他类隐藏起来。3、 当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。三、 内部类的分类成员内部_成员内部类和局部内部类的区别

分布式系统_分布式系统运维工具-程序员宅基地

文章浏览阅读118次。分布式系统要求拆分分布式思想的实质搭配要求分布式系统要求按照某些特定的规则将项目进行拆分。如果将一个项目的所有模板功能都写到一起,当某个模块出现问题时将直接导致整个服务器出现问题。拆分按照业务拆分为不同的服务器,有效的降低系统架构的耦合性在业务拆分的基础上可按照代码层级进行拆分(view、controller、service、pojo)分布式思想的实质分布式思想的实质是为了系统的..._分布式系统运维工具

用Exce分析l数据极简入门_exce l趋势分析数据量-程序员宅基地

文章浏览阅读174次。1.数据源准备2.数据处理step1:数据表处理应用函数:①VLOOKUP函数; ② CONCATENATE函数终表:step2:数据透视表统计分析(1) 透视表汇总不同渠道用户数, 金额(2)透视表汇总不同日期购买用户数,金额(3)透视表汇总不同用户购买订单数,金额step3:讲第二步结果可视化, 比如, 柱形图(1)不同渠道用户数, 金额(2)不同日期..._exce l趋势分析数据量

宁盾堡垒机双因素认证方案_horizon宁盾双因素配置-程序员宅基地

文章浏览阅读3.3k次。堡垒机可以为企业实现服务器、网络设备、数据库、安全设备等的集中管控和安全可靠运行,帮助IT运维人员提高工作效率。通俗来说,就是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源)。由于堡垒机内部保存着企业所有的设备资产和权限关系,是企业内部信息安全的重要一环。但目前出现的以下问题产生了很大安全隐患:密码设置过于简单,容易被暴力破解;为方便记忆,设置统一的密码,一旦单点被破,极易引发全面危机。在单一的静态密码验证机制下,登录密码是堡垒机安全的唯一_horizon宁盾双因素配置

谷歌浏览器安装(Win、Linux、离线安装)_chrome linux debian离线安装依赖-程序员宅基地

文章浏览阅读7.7k次,点赞4次,收藏16次。Chrome作为一款挺不错的浏览器,其有着诸多的优良特性,并且支持跨平台。其支持(Windows、Linux、Mac OS X、BSD、Android),在绝大多数情况下,其的安装都很简单,但有时会由于网络原因,无法安装,所以在这里总结下Chrome的安装。Windows下的安装:在线安装:离线安装:Linux下的安装:在线安装:离线安装:..._chrome linux debian离线安装依赖

烤仔TVの尚书房 | 逃离北上广?不如押宝越南“北上广”-程序员宅基地

文章浏览阅读153次。中国发达城市榜单每天都在刷新,但无非是北上广轮流坐庄。北京拥有最顶尖的文化资源,上海是“摩登”的国际化大都市,广州是活力四射的千年商都。GDP和发展潜力是衡量城市的数字指...

随便推点

java spark的使用和配置_使用java调用spark注册进去的程序-程序员宅基地

文章浏览阅读3.3k次。前言spark在java使用比较少,多是scala的用法,我这里介绍一下我在项目中使用的代码配置详细算法的使用请点击我主页列表查看版本jar版本说明spark3.0.1scala2.12这个版本注意和spark版本对应,只是为了引jar包springboot版本2.3.2.RELEASEmaven<!-- spark --> <dependency> <gro_使用java调用spark注册进去的程序

汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用_uds协议栈 源代码-程序员宅基地

文章浏览阅读4.8k次。汽车零部件开发工具巨头V公司全套bootloader中UDS协议栈源代码,自己完成底层外设驱动开发后,集成即可使用,代码精简高效,大厂出品有量产保证。:139800617636213023darcy169_uds协议栈 源代码

AUTOSAR基础篇之OS(下)_autosar 定义了 5 种多核支持类型-程序员宅基地

文章浏览阅读4.6k次,点赞20次,收藏148次。AUTOSAR基础篇之OS(下)前言首先,请问大家几个小小的问题,你清楚:你知道多核OS在什么场景下使用吗?多核系统OS又是如何协同启动或者关闭的呢?AUTOSAR OS存在哪些功能安全等方面的要求呢?多核OS之间的启动关闭与单核相比又存在哪些异同呢?。。。。。。今天,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JCXrdI0k-1636287756923)(https://gite_autosar 定义了 5 种多核支持类型

VS报错无法打开自己写的头文件_vs2013打不开自己定义的头文件-程序员宅基地

文章浏览阅读2.2k次,点赞6次,收藏14次。原因:自己写的头文件没有被加入到方案的包含目录中去,无法被检索到,也就无法打开。将自己写的头文件都放入header files。然后在VS界面上,右键方案名,点击属性。将自己头文件夹的目录添加进去。_vs2013打不开自己定义的头文件

【Redis】Redis基础命令集详解_redis命令-程序员宅基地

文章浏览阅读3.3w次,点赞80次,收藏342次。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。此时,可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请求后,系统先从Redis 中查找相应的Session 数据,如果存在,则再进行相关操作,否则跳转到登录页面。当数据量很大时,count 的数量的指定可能会不起作用,Redis 会自动调整每次的遍历数目。_redis命令

URP渲染管线简介-程序员宅基地

文章浏览阅读449次,点赞3次,收藏3次。URP的设计目标是在保持高性能的同时,提供更多的渲染功能和自定义选项。与普通项目相比,会多出Presets文件夹,里面包含着一些设置,包括本色,声音,法线,贴图等设置。全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,主光源和附加光源在一次Pass中可以一起着色。URP:全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,一次Pass可以计算多个光源。可编程渲染管线:渲染策略是可以供程序员定制的,可以定制的有:光照计算和光源,深度测试,摄像机光照烘焙,后期处理策略等等。_urp渲染管线