注册 登录
编程论坛 VB6论坛

帮我看看我写的程序。

yuma 发布于 2012-05-22 17:20, 366 次点击
程序代码:
Private Sub Form_Load()
Form1.Visible = False
Dim a As String
Dim b As String
Dim s As String
a = App.Path & "\" & App.EXEName & ".exe"
b = "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".exe"
s = Dir(b, vbDirectory)
If s = "" Or a <> b Then
FileCopy a, b
End If
Open "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".bat" For Output As #1
Print #1, "attrib +R +A +S +H " & App.EXEName & ".exe"
Close #1
Shell "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".bat"
MsgBox "这是一个测试程序,这个程序弹出,表示具有只读、系统、存档、隐藏属性的程序也是可以在启动项中运行的。", 0, "提示"
End Sub



程序在桌面上运行后,本来应该向 C:\Documents and Settings\All Users\「开始」菜单\程序\启动\里自己的复制体添加属性,为何把属性添加到了自身?求解?????
4 回复
#2
风吹过b2012-05-22 21:33
Print #1, "attrib +R +A +S +H " & App.EXEName & ".exe"

这句不带路径,当它执行时,以当前路径为准。
那么当前路径在哪?
在这里:
Shell "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".bat"
你在当前路径,也就是本身的位置执行 启动里的这个批处理文件。 自然执行时,是在当前路径找文件,结果找到本身。

修改建议:
Print #1, "attrib +R +A +S +H C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".exe"
#3
yuma2012-05-23 08:22
最终代码我修改成这样了:
程序代码:
Private Sub Form_Load()
Form1.Visible = False
Dim a As String
Dim b As String
Dim s As String
a = App.Path & "\" & App.EXEName & ".exe"
b = "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".exe"
s = Dir(b, vbDirectory)
If s = "" Or a <> b Then
FileCopy a, b
End If
Open "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".bat" For Output As #1
Print #1, "attrib +R +A +S +H C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".exe"
print#1, "del %0%"
Close #1
Shell "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".bat",vbhide
MsgBox "这是一个测试程序,这个程序弹出,表示具有只读、系统、存档、隐藏属性的程序也是可以在启动项中运行的。", 0, "提示"
End Sub




但是:启动项生成的批处理并没有执行了。郁闷!直接运行这个批处理也没有用了。
#4
风吹过b2012-05-23 08:29
忘了一件事,
因为 你的路径里包括空格,所以要加上双引号
"attrib +R +A +S +H C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".exe"
改为
"attrib +R +A +S +H ""C:\Documents and Settings\All Users\「开始」菜单\程序\启动\" & App.EXEName & ".exe"""

你再试试。
#5
yuma2012-05-23 09:02
成功了,感谢版主。
1