永发信息网

VB将程序加入启动项

答案:2  悬赏:10  手机版
解决时间 2021-04-25 22:42
做个自动关机的,就是点击就自动关机,点击第一次时同时把程序加入启动项中,怎么写,谢谢
最佳答案
Option Explicit

Public Type LUID
UsedPart As Long
IgnoredForNowHigh32BitPart As Long
End Type


Public Type TOKEN_PRIVILEGES
PrivilegeCount As Long
TheLuid As LUID
Attributes As Long
End Type


'Beginning of Code


Public Const EWX_SHUTDOWN As Long = 1
Public Const EWX_FORCE As Long = 4
'重起
Public Const EWX_REBOOT = 2
'关机
Public Const EWX_POWEROFF = 8



Public Declare Function ExitWindowsEx Lib "user32" ( _
ByVal dwOptions As Long, ByVal dwReserved As Long) As Long


Public Declare Function GetCurrentProcess Lib "kernel32" () As Long


Public Declare Function OpenProcessToken Lib "advapi32" ( _
ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, _
TokenHandle As Long) As Long


Public Declare Function LookupPrivilegeValue Lib "advapi32" _
Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, _
ByVal lpName As String, lpLuid As LUID) As Long


Public Declare Function AdjustTokenPrivileges Lib "advapi32" ( _
ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, _
NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, _
PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long



Public Sub AdjustToken()


Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_PRIVILEGE_ENABLED = &H2


Dim hdlProcessHandle As Long
Dim hdlTokenHandle As Long
Dim tmpLuid As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lBufferNeeded As Long


hdlProcessHandle = GetCurrentProcess()


OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or _
TOKEN_QUERY), hdlTokenHandle


' Get the LUID for shutdown privilege.


LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid
tkp.PrivilegeCount = 1 ' One privilege to set
tkp.TheLuid = tmpLuid
tkp.Attributes = SE_PRIVILEGE_ENABLED
' Enable the shutdown privilege in the access token of this
' process.
AdjustTokenPrivileges hdlTokenHandle, False, tkp, _
Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded
End Sub

在窗体中加入一个DTPicker控件和一个Timer控件
设置CheckBox属性为True,格式定为:HH:mm
设置Time的Enable属性为True,Interval属性5000。(可自己更改)
Change事件加入代码
If IsNull(DTP.Value) Then
'MsgBox "null"
SaveSetting "RealTimeReadCard", "Set", "AutosdTime", "0"
Timer2.Enabled = False
Else
'MsgBox DTP.Value
SaveSetting "RealTimeReadCard", "Set", "AutosdTime", DTP.Value
Timer2.Enabled = True
Sd_temp = DTP.Value
End If
Form的Load事件加入
Sd_temp = GetSetting("RealTimeReadCard", "Set", "AutosdTime", "")
If Sd_temp = "0" Or Sd_temp = "" Then
DTP.Value = Null
Else
DTP.Value = Sd_temp
End If
Timer事件加入
If Sd_temp <> "" Then
If Left(Sd_temp, Len(Sd_temp) - 3) = Left(Time, Len(Time) - 3) Then
AdjustToken
'ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE Or EWX_REBOOT), &HFFFF
ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE Or EWX_POWEROFF), &HFFFF
End If
End If

全部回答

关机用SHUTDOWN

加入启动项最好用写入注册表的方法

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么vcd磁盘放入电脑主机箱内打不开
七夕怎么又是自己过?
仙剑5今年可以出没
哎!都不知道听什么歌了!谁介绍几首歌嘛?
24岁男人的迷茫《凌晨12点写下自己迷茫而又失
眉山市农村房屋拆迁赔偿标准
三个虫字怎么读,好的读音是3个还是2个,都读什
社区好友,(家园)删掉后,他还可以在好友动态
关羽和吕布谁更厉害?
怎么转紫钻
寻仙中哪个原型宠物好?
人是由一堆有形细胞组成的,为什么会产生无形
我的电脑屏幕的开始任务栏怎么跑到上面了,谁
DNF小问题
学了武术,没考学,有什么出路?
推荐资讯
我想在昆山张浦镇、连展科技富近找个四室一厅
关于搜狗输入法的问题
白居易的经典名句,白居易的经典诗句
您(或一个程序) *****.com 请求信息。 要联
我的乳腺两年前做了一个纤维瘤的手术..最近流
跆拳道标语,跆拳道标语怎么写
表达沿途风景美的句子,在乎的是沿途的风景以
天龙八部2天山的会心比身法是1:多少
联通号码问什么不能上手机QQ
乳头怎么才能变成粉红色
天生黑眼圈怎样解决
诛仙为什么没有人可以带我一起玩呢/要在老区
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?