签到Windows界面前执行自定义脚本,不借助账

by admin on 2019年1月31日

常见情形下,进入Windows界面往日都有一个登录进程,怎么样在报到前让系统进行脚本呢?上面介绍一种艺术。

Windows中完结不看重账户登录的开机启动程序,不借助账

在Windows中过多的天职,我们愿意能够在Windows
启动之后自动运行。举个例子,集团有个订饭系统,基本天天都亟待报到去订饭,于是写一个剧本完结机关订饭。可是你的电脑每一天要关机,当然不指望开机后还亟需手动运行这么些订饭脚本了。于是此时我们要将其那种本子达成为开机自动启动脚本。
但要注意本文要讲的开机启动的次第,是在用户还没有登录的场合下促成启动的。换句话说,本文描述的开机启动的程序运行在Session
0中
首要介绍了3中方法, 我们能够挑选适当的方法去贯彻。

第十二章 非常和错误处理
||| 附录B
七个常用Python处理职务

自家一贯选择firefox和thunderbird作为WWW浏览器和电子邮件客户端,在开头使用openSUSE而后,肯定是愿意把那多个软件升级到最新版本的。就算不肯定非要最新版本,但自身更期望多精晓部分在Linux软件到底是怎么设置和安顿的。突然间好像回到了1999年协调刚买回新PC学习
Win98使用的那段日子。

1.开辟组策略,在Run(运行)中输入GREDIT.MSC,点击确认。

Windows Service

当Windows
启动的时候,还没有登录账号的时候,此时Windows中设置为auto状态的Service将会在Session 0中运作。可以根据如下步骤去贯彻Windows Service:

  1. 如若还没有落到实处过Windows Service 程序的同学,可以参见那篇作品《Simple
    Windows Service in C++》去贯彻。
  2. 通过命令行创设Service, 首要注意start= auto安装Service为开机启动。

    签到Windows界面前执行自定义脚本,不借助账。 sc create “SERVICE_NAME” binpath= “SERVICE_PROGRAM” displayname= “SERVICE_DESCRIPTION” start= auto


OK,言归正传。

home88一必发 1

Windows Startup Script

奉公守法如下步骤:

  1. 打开当地的组策略管理,运行命令gpedit
    2.
    然后挨家挨户打开Computer Configuration->Windows Settings->Scripts->
    Startup, 在Startup中配置需求开机启动的脚本或者程序。
    在机械中的配置,大家都尽量的只求自动化,于是希望通过脚本来达成这些动作。可惜没有CMD
    命令可以一贯使用那种措施添加启动程序,后来博主搜索了一部分主意,有通过直接改动注册表的、也有经过vb脚本去贯彻的,但这一个艺术个人觉得还不够直接,简单。
    于是博主找到了接下去要说的点子,通过Windows定时职务管理器。

俺们将在本章介绍以下案例:

可以到
下载那五个软件的Linux下的新颖版本,都是tar.gz格式的二进制文件,直接解压就可以运行,解压缩没怎么好讲的。

2.一一点击Computer Configuration -> Windows Settings ->
Scripts(Startup/Shutdown)

Windows Schedule Task

Windows定时职务管理器,提供了强大的效率:可以定时的推行任务,除了依据时间去触发定时义务,其还提供了开机启动触及程序运行的功效,你可以通过图形界面的章程安顿,也得以经过命令方式:

  • 各样打开Control Panel->Administrative Tools->Task Scheduler,然后再里面新建自己的职分。主要注意以下两点:
    • 任务运行的账号选成”System”
    • 触发器中,选取At Startup触发器
  • 行使如下命令行:

schtasks /create /TN "TASK_NAME" /RU SYSTEM /SC ONSTART /TR "TASK_PROGRAM"
  • 由此命令行执行Python脚本
  • 使用sys.argv[]抓获命令行输入参数
  • 将Python脚本添加到批处理公事
  • 开创义务安顿

shell> tar zxvf firefox-2.0.0.3.tar.gz
shell> tar zxvf thunderbird-2.0b2.tar.gz

home88一必发 2


此地要小心的是,firefox和thunderbird的“执行文书”都是其解压后主目录中的脚本文件,文件名分别是firefox和thunderbird。

3.在右边双击Stratup,出现如图弹窗,可在此添加cmd或者PowerShell脚本。

引言

Python脚本既可以在ArcGIS运行环境外以单独脚本的样式来运行,也得以在ArcGIS运行环境内以脚本工具的花样来运转。二种办法都有各自的得失。到目前为止,所有的本子都是在ArcGIS环境中以脚本工具格局或在Python开发环境IDLE以及ArcGIS内的Python窗口来执行。然而,Python脚本同样可以透过Windows操作系统命令行形式来实施。那种实践Python脚本的点子对于制定脚本执行职责陈设以来是相当实用的。制定脚本执行职分布置有多少个地点的因由,一是过多地理处理脚本的运转须求消耗很长日子寻常都是安插在非工作时间来推行。其它,有一部分本子要求定时定期(每一日,每周甚至每月)执行,有时候也是出于功效考虑。在本章中,你将学习怎么着通过命令行来推行Python脚本,将脚本添加到批处理文件中以及在指定时间来施行脚本。须求小心一点,由于代码中必要调用arcpy模块,所有通过的命令行来推行的脚本仍旧需求得到ArcGIS桌面软件的认同。

自家的桌面使用的是KDE,接下去自己讲一下什么创设桌面急速格局。

home88一必发 3

经过命令行执行Python脚本

到目前停止,本书中装有的Python脚本要么在ArcGIS环境中以脚本工具格局举行,要么在Python开发环境中实施。Windows命令行为您提供了此外一种运行Python脚本的艺术。命令提醒窗口主要以批处理公事或职分安排的模式来举办脚本。

一、thunderbird

4.点击确认

Getting ready

在命令提醒窗口中履行Python地理处理脚本有八个方面的优势。那一个本子可以布署在悠然时间执行以获取更高的效用,同时也利于利用Python自带的错误处理和调试效能来展开调剂代码。
在该案例中,你将学习怎样行使Windows命令提醒符来运行Python脚本。你必要取得管理员权限来完费用案例,因而你或许须求交流音讯技术援救部门来修改权限。

1、在桌面上点击鼠标右键,在弹出的菜单中采用“Create New -> Link to
Appliacation…”。
2、在页签“Greneral”中的文本输入框内设置疾速格局的名字,如“ThunderBird”。
3、点击输入框左边的齿轮状按钮(图标),弹出图标设置窗口,选用单选按钮“other
icons”,点击由disable变为enable状态的按钮“Browse…”,选取“/usr/local/thunderbird2/icons/mozicon50.xpm”图标文件,点击按钮“open”再次来到前一窗口。
4、在页签“Application”中的“Command”文本输入框内,填写thunderbird执行脚本的整套径名,如
“/usr/local/thunderbird2/thunderbird”。(注意,不须求引号,如若通过文件浏览窗口接纳程序,会活动添加上半角双引号)
5、点击按钮“OK”达成安装并关闭窗口。

重启,在下次登录Windows界面前,系统会自行执行所增进的脚本。

签到Windows界面前执行自定义脚本,不借助账。How to do it…

按照以下步骤来读书怎么通过Windows命令提醒符来执行脚本:
1.Windows中点击初始|所有程序|附件|命令提醒符
(Start|All Programs|Accessories|Command
Prompt)
,弹出一个像样于下图的窗口:

home88一必发 4

窗口中会突显当前目录。你的目录路径会有些差别。我们来改变当前目录。
2.输入cd C:\ArcpyBook\Appendix1.
3.输入dir来查阅该目录下的文本和子文件夹。你会看到惟有一个称作ListFields.py的Python文件。

home88一必发 5

4.你须求认同Python解释器可以实践。点击发端|所有程序|附件|系统工具|控制面板(Start|All
Programs|Accessories|System Tools|Control Panel)

home88一必发 6

5.点击系统与安全(System and Security)
6.点击系统(System)
7.点击高档系统装置(Advanced system settings)
8.在系统特性(System
Properties)
对话框中,如下图所示选拔高级(Advanced)选项卡,点击环境变量(Enviroment
Variables)
按钮:

home88一必发 7

9.安分守己下图所示找到Path系统变量,然后点击编辑(Edit)按钮。

home88一必发 8

10.查看C:\Python27\ArcGIS10.1索引字符串(根据个人情况修改路径)。要是没有找到该字符串,添加到最终边。确保该路线前添加分号分隔符。现在当你在命令提醒符中输入python后,系统就会招来Path系统变量中的每一个目录中追寻一个可执行文件python.exe。

home88一必发 9

11.点击确认(OK)按钮关闭编辑系统变量(Edit System
Variable)
对话框。
12.点击确认(OK)按钮关闭环境变量(Enviroment
Variables)
对话框。
13.点击确认(OK)按钮关闭系统质量(System Properties)对话框。
14.重回命令行提示符窗口。
15.输入python ListFields.py。系统就会运作ListFields.py本子。等待一小会后,你会合到如下结果:

home88一必发 10

好了,可以点击桌面上的急忙格局看看是否可以正常启动thunderbird程序了。

 

How it works…

案例中拔取的ListFields.py脚本会列出Burglaries_2009.shp文件中的属性字段。工作空间路径和shapefile文件名称在本子中都因而硬编码处理。输入python后输入脚本名称,在此案例中是ListFields.py,会触发python解释器来运转该脚本。在下一个案例中,你将学习怎么样将参数传递给脚本,那样就能够移除脚本中的硬编码来让剧本越发灵敏。

二、firefox

使用sys.argv[]破获命令行输入参数

本子中不拔取硬编码的艺术来指定数量集路径,脚本通过接受命令提醒符中输入的参数来实施拍卖职分,那将使得脚本更富有灵活性。那些输入参数可以使用Python中的sys.argv[]目标来捕获。

一般景观KDE或GNOME都会默许安装firefox,由此桌面上或程序菜单中恐怕已经有firefox的疾速形式了。
那么大家就介绍一下怎么转移现有的快捷格局。

Getting ready

Python中的sys.argv[]目的允许脚本在实践进度中接受命令行传递的输入参数。如下图所示的例子很好地印证了这一干活体制:

home88一必发 11

每一个参数都用空格隔开。这一个参数都保存在一个sys.argv[]的列表对象中。使用索引值0来引用sys.argv[]列表中的首个元素,即脚本名称。在本案例中脚本名叫做ListFields.py。依次使用递增的整数索引值来引用后续的因素。由此,第四个参数(C:\ArcpyBook\data)保存在sys.argv[1]中,第四个参数(Burglaries.shp)保存在sys.argv[2]中。每一个sys.argv[]列表对象中的参数都可以在地理处理脚本中赢得并应用。在此案例中,你必要修改ListFields.py本子文件来接受命令行输入的参数。

1、确认当前快速方式指向的firefox执行脚本

How to do it…

根据以下步骤来创设一个用到sys.argv[]来接受命令行中输入的参数的台本:
1.在IDLE中打开C:\ArcpyBook\Appendix1\ListFields.py文件。
2.导入syshome88一必发,模块:

import arcpy,sys

3.成立一个变量来保存工作空间参数:

wkspace = sys.argv[1]

4.开立一个变量来保存要素类参数:

fc = sys.argv[2]

5.更新设置工作空间路径以及调用ListFields()函数的连锁代码:

arcpy.env.workspace = wkspace
fields = arcpy.ListFields(fc)

完全代码如下:

imprt arcpy,sys
wkspace = sys.argv[1]
fc = sys.argv[2]
try:
    arcpy.env.workspace = wkspace
    fields = arcpy.ListFields(fc)
    for fld in fields:
        print fld.name
except:
    print arcpy.GetMessages()

6.保留脚本。
7.开拓命令提醒符窗口,更改当前目录至C:\ArcpyBook\Appendix1
8.在指令提示符窗口中,输入以下命令后按下Enter键:

python ListFields.py C:\ArcpyBook\data Burglaries_2009.shp

9.你会再四次见到Burglaries.shp文本中属性字段的底细新闻。分歧之处在于你的脚本不再须求硬编码工作空间路径和因素类名称。脚本现在得以列出任何要素类的特性字段。

在firefox火速形式的Properties窗口中的Application页签中的Command文本输入框内填写的就是firefox的推行脚本。一般境况下它的值是“firefox
%u”,那注明它执行了系统默许执行文书路径下的名为firefox的实施脚本。

How it works…

sys模块中涵盖了一个argv[]的列表对象,该对象用于保存在命令行形式下实施Python脚本的输入参数。列表中的第二个因素是本子名称。因而,在该案例中sys.argv[0]包含了ListFields.py文件。工作空间和因素类参数分别保存在sys.argv[1]sys.argv[2]中。这一个输入参数赋值给变量在剧本中运用。

shell> which firefox
/usr/bin/firefox

添加Python脚本至批处理公事

如果要在指定的年华实施Python脚本,你须求成立一个带有一个或三个本子文件,需要景况下还能包含操作系统命令的批处理公事。批处理公事可添加到Windows系统的职务安顿中在指定的时间内推行。

通过which命令找到firefox文件的具体地方,接下去的做事就是冯谖三窟了。

Getting ready

批处理公事是一个文本文件,该文件中含有有履行脚本的指令行代码或操作系统执行命令。批处理公事的扩充名为.bat,Windows将其视为可举办的文本。由于批处理公事中只含有有指令行代码,因而可以运用别的一个文本编辑器来编排,就算如此大家依然指出您利用像记事本(Notepad)那样简单的文件编辑器,能够免止包括部分不可知的特殊字符,而那类字符可能会在Microsoft
Word中出现。在此案例中,你将创建一个简便的批处理文件来恒定至包括有ListFields.py文件的目录中,并实施该脚本文件。

shell> ls -l /usr/bin/firefox
lrwxrwxrwx 1 root root 26 Apr 1 02:15 /usr/bin/firefox ->
/usr/lib/firefox/firefox
shell> rm /usr/bin/firefox
shell> ln -s /usr/local/firefox2.0.0.3/firefox /usr/bin/firefox

How to do it…

按照以下步骤来成立一个批处理文件:
1.开拓记事本(Notepad)。
2.添加以下文本:

cd /d C:\ArcpyBook\Appendix1
python ListFields.py C:\ArcpyBook\data Burglaries_2009.shp

3.将文件保留为桌面上的ListFields.bat文本。确认当选保留文件类型
(Save as Type)
中的下拉列表中的富有文件(All
Files)
,否则文本会保存为ListFields.bat.txt文件。
4.双击桌面中的ListFields.bat文本来执行命令代码。
5.在实施进程中会弹出一个命令指示符窗口。执行到位后,该窗口会自动关闭。

好了,点击原来的firefox飞快格局看看是还是不是足以正常启动firefox程序。

How it works…

Windows系统将批处理文件视为可执行文件,因而双击批处理公事会自动弹出一个新的命令提示符窗口来实施批处理公事中的命令行代码。所有的print讲话都会写入到窗口中。代码执行落成后,命令提醒符窗口会自动关闭。如果您想跟踪输出结果,你可以将结果写入到一个日记文件中。

三、Trouble Shooting

There’s more…

批处理文件中可以包涵变量,循环语句,注释以及条件逻辑语句。那个职能已经超先生越本书范围。可是,假诺您必要给单位编制多量剧本的话,照旧值得花些时间来多精通批处理公事的文化。更多关于关于批处理文件的新闻,你能够在Wikipedia中查看。

假设程序不能够健康实施,试试以下操作。

创办义务安排

批处理文件成立达成后就足以在Windows职责安排程序中开创职分布置,在指定时间来机关执行处理任务。

1、设置科学的权杖和owner,有限支撑程序是可举行的,并且可以被当下用户执行。
2、确认link正确无误。
3、直接运行实际上地方的实施顺序,看是或不是足以健康运行。
4、注销重复登录KDE,再运行试试。

Getting ready

有的是地理处理脚本都是这多少个耗时的,最好是安顿在非工作时间内实施,那样既可以充足利用系统资源也可以让你将精力放在其余职分中。在此案例中,你将学习如何行使Windows义务安排程序来安装举行批处理公事的任务安插。

四、thunderbird使用的一个相当表明

How to do it…

依照以下步骤在Windows职责安插程序中安装批处理公事的天职布置。
1.点击先河|所有程序|附件|系统工具|控制面板|管理工具
(Start|All Programs|Accessories|System Tools|Control
Panel|Administrative Tools)
选择职责布置(Task
Scheduler)
开拓义务部署程序。职务布置程序界面如下图所示:

home88一必发 12

2.选择操作(Action)菜单项后选用创制基本职责(Create Basic
Task)
弹出创立基本职务向导(Create Basic Task Wizard)对话框。
3.设置职分名称。在此案例中我们将职责名称设置为List Fields from a Feature Class。点击下一步(Next)

home88一必发 13

4.精选职分执行时的触发器。日常接纳基于时间触发器,不过也可以设置为任何类其余触发器,比如用户登录时或微机启动时等。在此案例中,大家挑选每天(Daily)。点击下一步(Next)

home88一必发 14

5.接纳一个上马的日巳时间以及实践周期。如下图所示,我拔取起来时间为二〇一二年1十月31日早上1点,每隔1天执行四次。由此每一日凌晨1点都会实施该任务。点击下一步(Next)

home88一必发 15

6.在操作中接纳起步程序(Start a program)

home88一必发 16

7.找到您的批处理公事并丰盛参数。那里需要证明一下,我们可以选取直接打开前一个案例创立的bat批处理公事后平昔点击下一步(Next),也得以如下图所示,导入创制的python脚本文件,在拉长参数(Add
argument)
中输入C:\ArcpyBook\data Burglaries_2009.shp后点击下一步(Next)

home88一必发 17

8.点击完成(Finish)加上职责义务布置中。

home88一必发 18

9.职务现在彰显在移动职分列表中:

home88一必发 19

本人把Windows下的邮件帐号数据目录拷贝到Linux下直接拔取,为了确保那样可以万事大吉推行,把目录及里面具有文件设为了777权力。

How it works…

Windows职分布置程序会追踪所有的移动职责并会在预约义触发器触发时来执行这个职务。在此案例中,大家安顿职分在每一天凌晨1点实践。也就代表天天凌晨1点批处理公事将被触发,同时创设职责时指定的参数会传送给脚本。使用任务陈设程序可以在不须求GIS人士的干预的非工作时间自动执行地理处理职分,那将给您带来更多灵活性并增强工作作用。你还足以将Python脚本中的错误记录到一个日志文件中来查阅难点的详细音信。


第十二章 相当和错误处理
||| 附录B
多个常用Python处理职务

配备好邮件账号后,收信,一切正常。

但突然发现filter报错,说找到不filter中活动邮件所到的对象文件夹,分析应该是thunderbird在msgFilterRules.dat中写入了相对路径而且是以Windows路径格式写的造成的那么些题材。

于是再次解压邮件目录,启动thunderbird后不及时收邮件,先把具有filter中须要活动邮件地方的对象文件夹重新指定四回,OK,难点迎刃而解。 

Thunderbird
的详实介绍
:请点那里
Thunderbird
的下载地址
:请点那里

相关阅读:

Red Hat Enterprise
6.3手动安装Thunderbird
http://www.linuxidc.com/Linux/2012-10/73163.htm

通过apt-get在Debian Linux下安装FireFox和ThunderBird
http://www.linuxidc.com/Linux/2012-07/66132.htm

Ubuntu选用Thunderbird方法指南[图文]
http://www.linuxidc.com/Linux/2011-01/31453.htm

在Ubuntu上设置Thunderbird 3及普通话呈现设置
http://www.linuxidc.com/Linux/2011-01/31439.htm

Ubuntu 环境使用 Evolution 与 Thunderbird 收发邮件
http://www.linuxidc.com/Linux/2010-04/25679.htm

home88一必发 20

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图