VB定时开机 自动运行系统

youlanting 2010-04-24 10:45:48
想做一个VB定时开机并且自动运行某系统的程序,不知道如何做,请各位大侠帮帮忙!!

如我想每天早上8点定时开机,开机后马上启动自写的一个小系统,运行系统内指定的模块(不过进入这个小系统还需要用户

名和密码)

应该怎么做?
...全文
968 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlmlmw122558 2010-12-21
  • 打赏
  • 举报
回复
时间金系统已经突破了这一难题,该系统能够在计算机完全关闭的情况下,也就是计算机的内存、硬盘及CPU完全停止工作的条件下:
1、严格按照您设置的自动开机时间启动,
2、可以是一次设置多次定时开机,
3、可以设置开机的同时自动运行您指定的程序、播放歌曲、打开网站,
4、更神奇的是定时开机后可以自动模拟人工进行各种计算机操作。www.shijj.com是时间金系统的网站,可以下载免费使用.
youlanting 2010-04-28
  • 打赏
  • 举报
回复
谢谢大家的答复,我想快实现了

远程登录某计算机,某计算机必须设置密码,但设置了,就不能自动开机了??怎么办?
dahaidao 2010-04-26
  • 打赏
  • 举报
回复
开机,需要一套自动控制系统。比较简单的是搞个闹钟(比如那种小鸟出来报时的那种),到点就能按电闸,

开了机,就需要由你的系统来设定需要做的工作了,这些可以参照前面的回贴。
兔子-顾问 2010-04-26
  • 打赏
  • 举报
回复
操作系统(XP,2003)登录前自动运行程序的方法
我有一个EXE程序,可以作为托盘程序运行。我写了注册表:
\SoftWare\Microsoft\windows\CurrentVersion\Run,现在能够在用户登录操作系统后自动运行。
我想让它在登录之前就能自动运行,希望通过注册表达到这个目的,请问哪位知道方法?

查到下面的方法,觉得不太方便
引用自 jimmyge (Do Re Mi)
想让一个程序在启动系统的时候自动运行,你有什么好办法?添加到启动组?那如果别人删除掉就不管用了。如果你使用了Windows NT/2000/XP,就可以试试把这个程序添加为一个服务,这样只有拥有权限的人才可以更改服务,只要你设置好权限,就不用担心会被别人删除了。

要把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe。Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。这两个软件都包含在Windows NT Resource Kit里,如果你没有,也可以点击这里下载。

把这两个程序保存在一个方便的位置,例如C盘根目录下。我们举例来说明,把OE作为一个服务添加进Windows XP Professional操作系统中,并把这个服务命名为“Mail”。在运行中输入“CMD”,回车,打开命令行窗口,在提示符后面直接输入:“c:\instsrv.exe Mail c:\srvany.exe”然后回车,其中的“c:\instsrv.exe”和“c:\srvany.exe”表示这两个程序保存的位置,而Mail则是你想添加的服务名称。

运行Regedit打开注册表编辑器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下,找到刚才添加的Mail,点击右键,新建一个键,命名为“Parameters”,点击新建的Parameters,并再次新建一个名称为“Application”的子键,数据类型为“REG_SZ”,数值为希望作为服务运行的程序的所在位置,如果你的Windows系统安装在C盘下,那么OE的程序位置就是C:\Program Files\Outlook Express\msimn.exe ,把这个路径添入数值中。到现在,这个服务已经成功的添加并且设置好了。如果你希望做的更加专业,可以在Mail服务下建立一个名为Description的子键,数据类型同样为REG_SZ,数值可以写一些你对这个服务的描述,这个我们在后面可以看到。

接下来需要对服务做一些额外的设置,在运行中输入“Services.msc”并回车,在列表中找到我们刚添加的Mail服务,双击打开,来做详细的设置。在“General”选项卡上,我们需要设置这个服务的运行方式,在图二中可以看见,作为一个服务,有“自动(Automatic)”,“手动(Manual)”和“禁止(Disabled)”三种启动类型,按照需要,我们一般设置成自动就可以了。而在“Logon”选项卡下可以设置以什么身份运行这个服务,一般可以不用理会,按照默认的设置。“Recovery”选项卡下则是进行恢复设置的,你可以指定,在服务第一次,第二次和第三次出错之后分别采取什么措施。“Dependencies”则显示了服务之间的依存关系,可以让你察看这个服务的运行依赖哪些其它服务,以及还有什么服务依赖于这个服务。这后面几个对我们一般用户没有什么意义。经过这些设置,你的服务已经完全可以正常工作了。
对于不能普通方式下安装为服务的程序,用srvany.exe来实现。
该工具添加的注册表信息并不完全,还是需要手工添加 Parameters 和 Application,并且还要 srvany.exe,和修改 ImagePath 的数值才可,否则在启动服务时显示:1053 服务没有及时响应启动或控制请求。

在补充完全注册表信息后,就正常了。
以下是一个例子
存为“文件名.reg”,然后用鼠标双击这个"文件名.reg"文件,选确定,就可添加到注册表了。实际程序的参数,你需要根据具体的程序来调整。
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\srvany\Parameters]
"Application"="c:\\usr\\local\\bin\\dmh_wish.exe"
"AppParameters"="-f dmh84_server startup \"after 1 {mbx whenmsg startup_RPC mbx_RPC}\""
"AppDirectory"="c:\\usr\\local\\bin"



图形界面的程序,如果做成服务后(并允许与桌面交互),注销后就会被关闭,反之则弹不出图形界面,很不爽。如果你不想让别人看见,就不允许与桌面交互,那除了进程外什么都看不见。

将容易导致系统被入侵的服务“禁用”,然后将这些服务对应的注册表键删除,这样就算对方连接到你的系统服务列表中来也不能修改服务的属性,不能修改服务属性就不能启动服务。打开注册表编辑器,依次找到“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices”项,其下的每个子键就是系统中对应的“服务”,如“Messenger”服务对应的子键是
“Messenger”,但有的服务这两个名字不会相同,不过也很容易找到,
“DisplayName”的键值就是服务的显示名称。这里以删除“Messenger”服务为例,其它服务方法相同,只是在注册表中删除的项不同,在删除这个项之前要先将其导出备份,然后点选“Messenger”项,按鼠标右键选择“删除”(重命名也可以)命令。此时在服务列表中双击“Messenger”就会弹出如下图所示的错误信息,当然对方连接到你的服务列表双击时也会出现这样的提示,而不是出现属性框。如果要恢复这个服务,只需将刚才备份的注册表文件导入到注册表中就可以了。
另一种添加为自启动的方法:(Win2000/XP中适用)

在“开始→运行”中执行“Gpedit.msc”。打开“组策略”,可看到“本地计算机策略”中有两个选项:“计算机配置”与“用户配置”,展开“用户配置→管理模板→系统→登录”,双击“在用户登录时运行这些程序”子项进行属性设置,选定“设置”项中的“已启用”项并单击“显示”按钮弹出“显示内容”窗口,再单击“添加”按钮,在“添加项目”窗口内的文本框中输入要自启动的程序的路径,如图所示,单击“确定”按钮就完成了。

重新启动计算机,系统在登录时就会自动启动你添加的程序。用这种方式添加的自启动程序在系统的“系统配置实用程序”里找不到,同样在我们所熟知的注册表项中也找不到。
通过这种方式添加的自启动程序虽然被记录在注册表中,但是不在我们所熟知的注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]项和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]项内,而是在注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]项。


Run SRVINSTW.EXE
1. Put both files into the system32 system directory.
2. run SRVINSTW.EXE
3. Select Install as a service, Local Machine
4. Give your service any name you desire
5. When prompted for the path to the service, give the path to SERVANY.EXE in your system32 directory
6. Select Service is it’s own process
7. Set the login credentials. System account appears to work

Edit your registry
1. Run regedit.exe
2. Go to HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\ (the name you picked in step 4 above)
3. Add a key = “Parameters”
4. Add a string value = “Application”. Set this to the command to run your wiki. e.g. “c:\ruby\bin\ruby.exe c:\instiki-0.9.1\instiki.rb -p 2500” (or use rubyw.exe)
5. Add a string value = “AppDirectory”. Set this to the path to ruby.exe. e.g. “c:\ruby\bin\”

Restart your machine
1. check to see if it worked.
2. if it didn’t work, go to Control Panel\Administrative tools\services. Here you can find your service and change the settings.

用instsrv与srvany在windows 建立服务

instsrv.exe srvany.exe

这两个文件是MS批量生产的,网上应该能烂下载。

首先将这两个文件放到自定的路径中。例如放在C:\根目录下

在CMD对话框中输入 c:\instsrv.exe servername c:\ srvany.exe 回车

其中servername是你所需要的服务名。

之后你需要进入注册表进行相应的设置,在注册表的:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\servername

中简历Parameters子项,然后在其中建立一个字符串Application,双击该字符串,输入如下格式的语句:

C:\ABC\DEF\XXX.exe +Xms256M +Xmx256M -nodbcheck -minspan60 -retry1000

其中的256M与服务占用内存大小有关,这就要看机器的配置了。

修改结束后推出,使用命令services.msc进入服务界面,找到你刚刚定制的服务,双击进入,之后选择“登陆”,再选中“本地登陆”并确定。之后手动启动服务即可。

C:\service\instsrv.exe adslSrv "C:\service\srvany.exe"

下面介绍使用SrvAny.exe将tracd封装成windows服务,本人使用的是XP SP2,其他windows系统应该大同小异:
1.下载Windows 2003 Resource Kits,在微软官方有下载。下载后安装,默认安装到C:\Program Files\Windows Resource Kits\Tools目录,其实我们只需要该目录下的SrvAny.exe和instsrv.exe文件即可,在此目录下还有rktools.chm帮助文件,大家可以查看SrvAny.exe如何使用。
2.创建服务,语法如下:instsrv 服务名称 srvany所在路径\srvany.exe。假设我们的Windows 2003 Resource Kits都安装在C:\Program Files\Windows Resource Kits\Tools目录,待建立的服务名称是TracSrv,那么我们的命令如下:
"C:\Program Files\Windows Resource Kits\Tools\instsrv" TracSrv "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
需要注意的是,srvany前的路径不能省略,必须是绝对路径。




现在我们已经创建了一个名叫TracSrv的服务,下一步我们来配置这个服务,让它封装tracd命令。
3.在注册表中配置TracSrv服务,运行“regedit”,进入注册表。找到注册表项“HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\TracSrv”,在TracSrv项里建立新的子项“Parameters”,再在新建的 Parameters项里新建字符串值,数值名称设为“Application”,数值数据设为我们在第一篇说的启动tracd的行命令,也就是
c:\python24\python c:\python24\scripts\tracd -p 8001 C:\SCM\Angel\Angel_Trac
(注意使用全路径)。这样,我们就配置好了TracSrv服务。
4.启动TracSrv服务。现在我们就可以在浏览器中访问Trac网站,只要服务器启动,不需要进入登陆Windows桌面,我们就可以访问Trac站点了。




如何删除这个服务呢?使用sc.exe即可,此命令在xp系统自带。
1.停止TracSrv服务。
2.运行cmd,进入行命令窗口,输入“sc delete TracSrv",回车即可。


以上是在使用Tracd作为Web服务器时的做法,其他的Web服务器(比如Apache)本身就已经作为服务运行,不需要进行此设置。
另外,以上讲的封装服务的方法是通用的,可以使用这种方法创建新的服务来封装你的程序。


文章出处:操作系统(XP,2003)登录前自动运行程序的方法
youlanting 2010-04-26
  • 打赏
  • 举报
回复
upupupup!!
youlanting 2010-04-26
  • 打赏
  • 举报
回复
谢谢六楼,能否启动小系统后“运行系统内指定的模块(进入这个小系统还需要用户名和密码)”
有没有这样的实现的?
youlanting 2010-04-26
  • 打赏
  • 举报
回复
1 我自己定时让它自动开机,
2 开机后马上启动自写的一个小系统,运行系统内指定的模块(不过进入这个小系统还需要用户名和密码)

重点在2!
xrongzhen 2010-04-26
  • 打赏
  • 举报
回复
自动开机需要在主板BOIS中设置

开机自动运行,最简单的方法是,把你的程序拷贝到“启动”文件夹
C:\Documents and Settings\All Users\「开始」菜单\程序\启动

另外就是在注册表中添加。HKEY_LOCAL_MACHIANE\SOFTWARE\MICROSOFT\WINDOWS\RUN 中添加子项
the_fire 2010-04-26
  • 打赏
  • 举报
回复
自动运行指定的程序,并且要填入用户名和密码。
是不是类似于外挂了。
你可以先运行指定的那个系统。自动往其中输入用户名和密码。
只是思路,以前通过QQ聊天窗口的句柄实现qq消息轰炸。
MADfox1983 2010-04-26
  • 打赏
  • 举报
回复
这个问题1楼说的很好了,软件是不可能实现自动开机的,只能通过硬件去实现
caomeng_sysu 2010-04-26
  • 打赏
  • 举报
回复
也想了解,正好赶上了
youlanting 2010-04-26
  • 打赏
  • 举报
回复
upup!!
youlanting 2010-04-26
  • 打赏
  • 举报
回复
up!!
youlanting 2010-04-26
  • 打赏
  • 举报
回复
谢谢大家回复,我想看看还有没更好的方法,继续等待。。。
yyz985 2010-04-26
  • 打赏
  • 举报
回复
放一个Timer控件,Interval属性设置为1000,事件代码写入
Shell "shutdown.exe -s -t 1 -f"
decacrf 2010-04-26
  • 打赏
  • 举报
回复
mark...
足球中国 2010-04-24
  • 打赏
  • 举报
回复
通过CMOS设置实现定时开机的设置过程如下:首先进入“CMOS SETUP”程序(大多数主板是在计算机启动时按DEL键进入);然后将光条移到“Power Management Setup”选项上,回车进入其子菜单;再将“Resume by Alarm”项设置成“Enabled”,并在“Date(of Month)Alarm”项中设置每月开机日期(0表示每天,1表示每月1日,2表示每月2日,……),在“Time(hh:mm:ss)Alarm”项中设置开机时间;最后保存设置,重新启动,当关闭计算机后,你的计算机将在你规定的时刻自动启动。

注意:1.计算机主板必须有“Resume by Alarm”功能才能实现定时开机;2.要实现定时正常开机,必须取消开机Password功能;3.最关键的一点是要接通主机电源。 自动定时开机的实现:首先在启动计算机时,按“Delete”键进入BIOS界面。在BIOS设置主界面中选择“Power Management Setup”菜单,进入电源管理窗口。默认情况下,“Automatic Power Up(定时开机,有些机器选项为Resume By Alarm)”选项是关闭的,将光标移到该项,用PageUp或PageDown翻页键将“Disabled”改为“Enabled”,而后在“Date (of Month) Alarm”和“Time (hh:mm:ss) Alarm”中分别设定开机的日期和时间。如果“Date”设为0,则默认为每天定时开机。设置好后按“ESC”键回到BIOS设置主界面,点击“Save Exit Setup”,按“Y”键保存CMOS设置退出,接着机器会重新启动,这时便大功告成了。当然,值得注意的是定时开机需要您的主板支持才行,不过现在大多数主板都有这项功能。另外,不同的主板在设置上会不尽相同,不过都大同小异。
还有远程自动开机。也要有主板的支持。这个功能好象挺说没多大用处。
设置窗体的代码解释 Imports System.Diagnostics Public Class 设置窗体 Private shutTime As String '关机时间的字符串 Private IsToday As Boolean = True '判断是否是今天的变量 Private delay As Integer '延时多少秒放关机 Private lastTime As Integer '关机的倒计时 Private action As String '关机或重启或注销 Private shellText As String '执行的命令字符串 Private firstShow As Boolean = True Private SysTime As Boolean = False Private autoHide As Boolean = True '启动自动隐藏 Private TotalData As New System.Diagnostics.PerformanceCounter("Network Interface", "Bytes Total/sec", "MS TCP Loopback interface") Private proTime As New System.Diagnostics.PerformanceCounter("Processor", "% Processor Time", "_Total") '双击右下角的图标的响应事件 Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick If (Me.Visible = False) Then Me.Show() End If End Sub '重载窗体的关闭事件,使窗体隐藏 Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing e.Cancel = True '取消窗体的关闭动作 delayTime.Value = delay '还原delayTime控件的值 StrToItems() '还原ListBox的值 Me.Hide() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBox1.SelectedIndex = 2 '设置默认选项 "每天" ComboBox2.SelectedIndex = 4 '设置默认选项 "关机" Timer1.Start() readReg() '读取存放在注册表的信息 StrToItems() '把字符串的信息读取到ListBox delayTime.Value = delay '把延时时间读取到delayTime控件 DateTimePicker1.Value = Today End Sub Private Sub 退出程序ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出程序ToolStripMenuItem.Click Me.Dispose() End Sub Private Sub 立即取消关机ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 立即取消关机ToolStripMenuItem1.Click Timer2.Stop() 取消窗体.Close() Shell("shutdown -a") Timer1.Start() End Sub Private Sub 设置关机计划ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 设置关机计划ToolStripMenuItem.Click If Me.Visible = False Then Me.Show() End If End Sub '点击确定按钮的事件处理 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click '判断是否要开机自动运行 If autoCheck.Checked Then 创建开机自动运行() Else 删除开机自动运行() End If If Me.HideCheck.Checked Then autoHide = True Else autoHide = False End If If Me.regCheck.Checked Then 禁止修改注册表() Else 取消禁止修改注册表() End If If Me.ManCheck.Checked Then 禁止使用任务管理器() Else 取消禁止使用任务管理器() End If If Me.SysTimeCheck.Checked Then SysTime = True Else SysTime = False End If '四舍五入delayTime控件的值 delay = Math.Round(delayTime.Value, MidpointRounding.AwayFromZero) Me.Hide() ItemsToStr() '把listBox的信息保存到字符串中 writeReg() '把字符串保存把注册表中 End Sub '取消按钮事件 Private Sub canelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles canelButton.Click StrToItems() '还原ListBox的值 delayTime.Value = delay '还原delayTime控件的值 Me.Hide() End Sub '点击添加按钮 Private Sub addButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles addButton.Click Dim tempStr As String = "" If ComboBox1.Items.Item(ComboBox1.SelectedIndex) = "指定日期" Then tempStr = DateTimePicker1.Value.ToShortDateString Else tempStr = ComboBox1.SelectedItem End If tempStr &= "," & CStr(Math.Round(hourNum.Value, MidpointRounding.AwayFromZero)) & ":" & CStr(Math.Round(minNum.Value, MidpointRounding.AwayFromZero)) & ":" & CStr(Math.Round(secNum.Value, MidpointRounding.AwayFromZero)) & "," Select Case ComboBox2.SelectedItem Case "打开网址" tempStr &= "打开网址" & "[" & TextBox1.Text.Replace(";", ";").Replace(":", ":") & "]" Case "提醒信息" tempStr &= "提醒信息" & "[" & TextBox1.Text.Replace(";", ";").Replace(":", ":") & "]" Case "打开文件" tempStr &= "打开文件" & "[" & TextBox1.Text.Replace(";", ";").Replace(":", ":") & "]" Case Else tempStr &= ComboBox2.SelectedItem End Select ListBox1.Items.Add(tempStr) End Sub '点击清除按钮 Private Sub clearButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clearButton.Click ListBox1.Items.Clear() End Sub '把ListBox的值保存到字符串ShutTime Private Sub ItemsToStr() Dim i As Integer shutTime = "" For i = 0 To ListBox1.Items.Count - 1 '把ListBox中的各项连接到shutTime shutTime &= ListBox1.Items.Item(i) & ";" Next If shutTime "" Then '去除最后一个 ";" shutTime = Mid(shutTime, 1, shutTime.Length - 1) End If End Sub '把字符串ShutTime的值还原到ListBox Private Sub StrToItems() If shutTime "" Then '如果shutTime有保存信息 Dim temp() As String = shutTime.Split(";") 'temp字符串数组存放shutTime以";"分隔的各个字符子串 Dim t As String 't存放temp字符串数组的一项 ListBox1.Items.Clear() For Each t In temp If Not (Mid(t, 1, 2) = "今天" And Not IsToday) Then '如果今天还没过了 ListBox1.Items.Add(t) End If Next End If End Sub '读取注册表保存的信息 Private Sub readReg() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey Try key = Microsoft.Win32.Registry.LocalMachine subkey = key.OpenSubKey("SOFTWARE\AutoShutdown") shutTime = subkey.GetValue("time") delay = CInt(subkey.GetValue("delayTime")) autoHide = subkey.GetValue("autoHide") If (CStr(Today()) subkey.GetValue("day")) Then IsToday = False End If Catch ex As Exception shutTime = "" IsToday = True End Try End Sub Private Sub 禁止修改注册表() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser subkey = key.CreateSubKey("software\microsoft\windows\currentversion\policies\system") subkey.SetValue("disableregistrytools", 1) End Sub Private Sub 取消禁止修改注册表() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser subkey = key.CreateSubKey("software\microsoft\windows\currentversion\policies\system") subkey.SetValue("disableregistrytools", 0) End Sub Private Sub 禁止使用任务管理器() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser subkey = key.CreateSubKey("software\microsoft\windows\currentversion\policies\system") subkey.SetValue("DisableTaskMgr", 1) End Sub Private Sub 取消禁止使用任务管理器() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser subkey = key.CreateSubKey("software\microsoft\windows\currentversion\policies\system") subkey.SetValue("DisableTaskMgr", 0) End Sub '将需要保存的信息写入注册表 Private Sub writeReg() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine subkey = key.CreateSubKey("SOFTWARE\AutoShutdown") subkey.SetValue("time", shutTime) subkey.SetValue("day", CStr(Today())) subkey.SetValue("delayTime", CStr(delay)) subkey.SetValue("autoHide", autoHide) End Sub '点击删除按钮 Private Sub delButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles delButton.Click Dim delIndex As Integer = ListBox1.SelectedIndex If delIndex -1 Then ListBox1.Items.RemoveAt(delIndex) End If End Sub '最小化窗体,这里指隐藏窗体 Private Sub 最小化ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 最小化ToolStripMenuItem.Click If Me.Visible = True Then StrToItems() delayTime.Value = delay Me.Hide() End If End Sub Private Sub 创建开机自动运行() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine subkey = key.CreateSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run") subkey.SetValue("定时自动关机", Application.ExecutablePath) End Sub Private Sub 删除开机自动运行() Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine subkey = key.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True) subkey.DeleteValue("定时自动关机") End Sub '关闭显示器 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer Public Const WM_SYSCOMMAND = &H112 Public Const SC_MONITORPOWER = &HF170 '关闭显示器 Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long 'Timer1的Tick事件,来监视现在的时间是否应该关机或别的了 Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick Static nowTime As Date = Now updataMsg() If SysTime Then If (Now nowTime) Then Today = nowTime TimeOfDay = nowTime End If End If nowTime = nowTime.AddSeconds(1) If (shutTime "") Then Dim temp1() As String = shutTime.Split(";") 'temp1字符串数组存放shutTime以";"分隔的各个字符子串 Dim temp2() As String, i As Integer 'temp2字符串数组存放temp1某项的字符串以","或":"分隔的字符子串 Dim TimeOut As Boolean = False 'TimeOut存放是否时间到了 For i = 0 To temp1.Length - 1 temp2 = temp1(i).Split(New Char() {",", ":"}) If IsTimeOut(temp2) Then '判断时间是否到了 TimeOut = True action = temp2(4) '是"关机","注销","重启" End If Next If TimeOut Then '如果时间到 Select Case Mid(action, 1, 4) '根据action肯定命令字符串 Case "关闭计算" shellText = "shutdown -s -f -t 0" Case "重启计算" shellText = "shutdown -r -f -t 0" Case "注销用户" shellText = "shutdown -l -f -t 0" Case "关闭显示" SendMessage(Me.Handle.ToInt32(), WM_SYSCOMMAND, SC_MONITORPOWER, 1) Exit Sub Case "锁定计算" shellText = "rundll32.exe user32.dll, LockWorkStation" Case "打开文件" System.Diagnostics.Process.Start(Mid(action, 6, action.Length - 6).Replace(":", ":")) Exit Sub Case "提醒信息" MsgBox(Mid(action, 6, action.Length - 6), , "提醒信息") Exit Sub Case "打开网址" System.Diagnostics.Process.Start(Mid(action, 6, action.Length - 6).Replace(":", ":")) Exit Sub End Select lastTime = delay '倒计时等于延时 Timer2.Start() '倒计时开始 取消窗体.Show() '倒计时窗口打开 Timer1.Stop() End If End If End Sub '判断时间是否到了 Private Function IsTimeOut(ByRef t() As String) As Boolean '如果时分秒都相等 If t(1) = CStr(Hour(Now())) And t(2) = CStr(Minute(Now()) And t(3) = Second(Now)) Then Select Case t(0) Case "每天" Return True Case "今天" Return True Case "每周二" If Weekday(Now) = FirstDayOfWeek.Tuesday Then Return True End If Case "每周六" If Weekday(Now) = FirstDayOfWeek.Saturday Then Return True End If Case "每周日" If Weekday(Now) = FirstDayOfWeek.Sunday Then Return True End If Case "每周三" If Weekday(Now) = FirstDayOfWeek.Wednesday Then Return True End If Case "每周四" If Weekday(Now) = FirstDayOfWeek.Thursday Then Return True End If Case "每周五" If Weekday(Now) = FirstDayOfWeek.Friday Then Return True End If Case "每周一" If Weekday(Now) = FirstDayOfWeek.Monday Then Return True End If Case "每周一至周五" If Weekday(Now) > FirstDayOfWeek.Sunday And Weekday(Now) < FirstDayOfWeek.Saturday Then Return True End If Case Else If (t(0) = Today.ToShortDateString) Then Return True End If End Select End If Return False End Function '刷新Msg控件 Private Sub updataMsg() Dim xingqi As String = "" Select Case Weekday(Now) Case 1 xingqi = "星期天" Case 2 xingqi = "星期一" Case 3 xingqi = "星期二" Case 4 xingqi = "星期三" Case 5 xingqi = "星期四" Case 6 xingqi = "星期五" Case 7 xingqi = "星期六" End Select msg.Text = "当前时间" & Now().ToLongDateString & " " & Now().ToLongTimeString & " " & xingqi & " CPU使用" & Format(proTime.NextValue, "#0") & "% 网速" & Format(TotalData.NextValue / 1024, "########0.00") & "KB/S" Me.NotifyIcon1.Text = msg.Text End Sub '倒计时处理事件 Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If lastTime = 0 Then '如果时间到 Shell(shellText, AppWinStyle.Hide) 取消窗体.Label1.Text = "正在" & action Else 取消窗体.Label1.Text = "离" & action & "还有" & lastTime & "秒" '显示倒计时 lastTime -= 1 End If End Sub Private Sub 设置窗体_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown If autoHide Then Me.Hide() End If End Sub Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged Select Case ComboBox2.SelectedItem Case "打开网址" Button1.Visible = False TextBox1.Width = 299 TextBox1.Visible = True Case "提醒信息" Button1.Visible = False TextBox1.Width = 299 TextBox1.Visible = True Case "打开文件" Button1.Visible = True TextBox1.Width = 209 TextBox1.Visible = True Case Else Button1.Visible = False TextBox1.Visible = False End Select End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged If ComboBox1.SelectedItem = "指定日期" Then DateTimePicker1.Visible = True Else DateTimePicker1.Visible = False End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then TextBox1.Text = OpenFileDialog1.FileName End If End Sub Private Sub 立即关机ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 立即关机ToolStripMenuItem.Click Shell("shutdown -s -f -t 0") End Sub Private Sub 立即重启ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 立即重启ToolStripMenuItem.Click Shell("shutdown -r -f -t 0") End Sub Private Sub 立即注销ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 立即注销ToolStripMenuItem.Click Shell("shutdown -l -f -t 0") End Sub Private Sub 立即锁定计算机ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 立即锁定计算机ToolStripMenuItem.Click Shell("rundll32.exe user32.dll, LockWorkStation") End Sub Private Sub 立即关闭显示器ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 立即关闭显示器ToolStripMenuItem.Click SendMessage(Me.Handle.ToInt32(), WM_SYSCOMMAND, SC_MONITORPOWER, 1) End Sub Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked System.Diagnostics.Process.Start("http://lywang.5d6d.com/space-uid-1.html") End Sub End Class
程序支持三种更换桌面换壁纸方式:开机自动更换,定时更换,热键更换(热键可以设置) 只要您指定壁纸文件所在文件夹,程序将该文件夹下(含所有子文件夹)所有的JPEG、GIF、TIF、PNG、JPE、JPG、BMP文件自动随机设置为桌面壁纸,使您的桌面壁纸随时都在变化。如果文件夹下的文件发生变化,程序会自动监控到并进行更新。 1、开机自动更换壁纸,前提当然得要将该程序设置为开机自动运行(本程序自动最小化加入到系统托盘)。 2、定时更换壁纸,只要您设置了时间间隔并启用定时更换功能,即可定时更换。 3、手动更换,在任何界面下按热键键即可马上更换壁纸(默认热键为CTRL+ALT+P,可以在设置中更改)。 本程序系VB2008编写,可在windows XP 及Vista下运行(在XP下需要安装.NET Framework2.0组件,请从微软官方网站下载。 安装方法: 方法一:解压缩后,运行自动更换壁程序.application”即可安装程序,安装完后会在开始菜单建立菜单。 方法二:解压缩后,可以不进行安装,直接运行“Application Files\自动更换壁程序_1_0_0_2\自动更换壁程序.exe”即可,此时不会在开始菜单建立程序组。 首次运行本程序时,会自动弹出设置窗口,要求您指定壁纸文件所在文件夹等选项。如果您要将程序设置为开机自动运行,请选中“设置为开机自动运行并更换壁纸”复选框,取消该复选框则可以取消开机自动运行。 如果您对本程序有何建议或意见,请与本人联系 姓名:游平 地址:湖南省 株洲市 215信箱 财务处 邮编:412002 邮箱:myyouping@hotmail.com

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧