我想弄清楚如何编写一个批处理文件,我可以在多台计算机上使用来设置背景。我尝试了一些我在其他搜索中看到的一些建议,但除此之外,我不确定如何执行此操作。任何人有任何建议?谢谢!在XP中设置壁纸的脚本?
回答
线使用的是:在关于该命令的信息的命令提示窗口reg add /?
@%SystemRoot%\System32\reg.exe add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "C:\Windows\winnt.bmp" /f
运行。
我真的很惊讶,你自己找不到,因为已经有Changing Wallpaper with a batch file, on program close. Possible?而在[batch-file] wallpaper
上搜索堆栈溢出会返回41个结果。
啊,我想我在开始时错过了“@%SystemRoot%\ System32 \” 。现在弹出的窗口要求确认,并表示已成功完成;但是,它并没有真正刷新壁纸。有什么我需要得到它来更新? – Raistlin 2015-04-05 22:07:34
'@'只是在执行时隐藏命令并且'%SystemRoot%\ System32'通常是不需要的,因为这个目录默认是在Windows XP环境变量'PATH'中的第一个目录。更改Windows注册表值当然不会导致Windows桌面的刷新。但是,这不应该打扰你,因为用户在下次Windows登录后会自动显示墙纸。由于壁纸是一种用户设置,我不太喜欢你想要做的事情,因此不会进一步帮助。抱歉。 – Mofi 2015-04-05 22:22:05
如果您想在vbscript中发布代码,并在Windows 7 32位上测试HTA(禁用UAC),请使用HTA。只是编辑你的文章,并添加这些标签vbscript和HTA – Hackoo 2015-04-05 22:33:55
此HTA在下测试,Windows 7 32位,UAC禁用。只是尝试一下你的XP,并告诉我它是否会起作用。 祝你好运!
ChangeWallpaper.hta
<html>
<head>
<title>Application pour changer le fond d'écran dans Windows 7 © Hackoo © 2013</title>
<HTA:APPLICATION
APPLICATIONNAME="Application pour changer le fond d'écran dans Windows 7"
ID="Application pour changer le fond d'écran dans Windows 7"
ICON="Explorer.exe"
BORDER="dialog"
INNERBORDER="no"
MAXIMIZEBUTTON="No"
SCROLL="no"
VERSION="1.0"/>
<style>
Label
{
color : #123456;
font-family : "Courrier New";
}
BODY {background-color:DarkOrange;}
input.button { background-color : #EFEFEF;
color : #000000; cursor:hand;
font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; }
}
.alt2, .alt2Active
{
background: #E1E4F2;
color: #000000;
}
</style>
</head>
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
<script language="VBScript">
Option Explicit
Dim Titre,fso,MyFolder,TabFolder,DossierCourant,DossierCourantIMAGE
Titre = "Application pour changer le fond d'écran dans Windows 7 © Hackoo © 2013"
set fso = CreateObject("Scripting.FileSystemObject")
MyFolder = fso.GetAbsolutePathName(".")
TabFolder = Split(MyFolder,"\")
DossierCourant = TabFolder(UBound(TabFolder))
DossierCourantIMAGE = DossierCourant&"_IMAGE_FOND"
If Not fso.FolderExists(DossierCourantIMAGE) Then
CreateFolder(DossierCourantIMAGE)
End if
'*****************************************************************
Sub Window_OnLoad
CenterWindow 640,200
End Sub
'*****************************************************************
Sub CenterWindow(x,y)
Dim iLeft,itop
window.resizeTo x, y
iLeft = window.screen.availWidth/2 - x/2
itop = window.screen.availHeight/2 - y/2
window.moveTo ileft, itop
End Sub
'*****************************************************************
Sub OnClickButtonCancel()
Window.Close
End Sub
'*****************************************************************
Function DblQuote(strIn)
DblQuote = Chr(34) & strIn & Chr(34)
End Function
'*****************************************************************
Sub CreateFolder(strPath)
set fso = CreateObject("Scripting.FileSystemObject")
If strPath <> "" Then
If Not fso.FolderExists(fso.GetParentFolderName(strPath)) then Call CreateFolder(fso.GetParentFolderName(strPath))
fso.CreateFolder(strPath)
End If
End Sub
'*****************************************************************
SUB ChangeFondEcran()
Dim MyNewWallPaper,NomMyNewWallPaper,NewWallPaperName,WshShell,MonFondEcranBDR,CheminAncienWallpaper,i,MonTab,Destination
Set WshShell = CreateObject("WScript.Shell")
MonFondEcranBDR = "HKEY_CURRENT_USER\Control Panel\desktop\Wallpaper"
CheminAncienWallpaper = WshShell.RegRead(MonFondEcranBDR)
MsgBox CheminAncienWallpaper,64,Titre
'Copie de Sauvegarde de l'ancien Wallpaper
Call CopyFile(CheminAncienWallpaper,DossierCourantIMAGE)
MyNewWallPaper = fichecran.Value
NomMyNewWallPaper = Split(MyNewWallPaper,"\")
NewWallPaperName = NomMyNewWallPaper(UBound(NomMyNewWallPaper))
'MsgBox MyNewWallPaper,64,Titre
If MyNewWallPaper <> "" Then
MonTab = Split(CheminAncienWallpaper,"\")
Destination = ""
For i = LBound(MonTab) To UBound(MonTab) - 1
Destination = Destination + MonTab(i) + "\"
Next
'MsgBox Destination,64,Titre
'Supprimer l'ancien Wallpaper
Call DeleteMyOldFile(CheminAncienWallpaper)
Call CopyFile(MyNewWallPaper,Destination)
Call Renommer(Destination & NewWallPaperName,MonTab(UBound(MonTab)))
RefreshExplorer()
End if
Set WshShell = Nothing
END Sub
'*****************************************************************
Function CopyFile(Source,Destination)
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(Destination) Then
If Right(Destination,1) <> "\" Then
Destination = Destination & "\"
End if
FSO.GetFile(Source).Copy Destination & FSO.GetFileName(Source),True
MsgBox "Copie du fond d'écran : " & DblQuote(FSO.GetFileName(Source)) & " dans le dossier " & DblQuote(Destination),64,Titre
Else
MsgBox DblQuote(Destination) & " n'existe pas !",48,Titre
End If
End Function
'*****************************************************************
'Fonction pour écrire le résultat dans un fichier texte
Sub WriteLog(strText,LogFile)
Dim fs,ts
Const ForAppending = 8
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(LogFile,ForAppending,True)
ts.WriteLine strText
ts.Close
End Sub
'*****************************************************************
Function DeleteMyOldFile(Source)
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Source) Then
FSO.GetFile(Source).Delete False
End If
End Function
'******************************************************************
Function Renommer(Fichier1,Fichier2)
Dim Ws,Command,Execution
Set Ws = CreateObject("WScript.Shell")
Command = "Cmd /C Ren "&Fichier1&","&Fichier2&""
Execution = Ws.Run(Command,0,True)
End Function
'******************************************************************
Sub Kill(Process)
Dim Ws,Command,Execution
Set Ws = CreateObject("WScript.Shell")
Command = "cmd /c Taskkill /F /IM "&Process&""
Execution = Ws.Run(Command,0,True)
End Sub
'*****************************************************************
Sub Start(Process)
Dim Ws,Command,Execution
Set Ws = CreateObject("WScript.Shell")
Command = "cmd /c Start "&Process&""
Execution = Ws.Run(Command,0,True)
End Sub
'*****************************************************************
Sub RefreshExplorer()
Kill("Explorer.exe")
Start("Explorer.exe")
End Sub
</script>
<center>
<B>Veuillez choisir l'image pour changer le fond d'écran </B><br><br>
<input type="file" size="50" name="fichecran" style="font-weight: bold; id="file1" />
<br><br><br>
<input type="Submit" style="width: 180px" style="font-weight: bold; name="OK" id="OK" value="Changer le fond d'écran" onclick="ChangeFondEcran()">
<input type="button" style="width: 100px" style="font-weight: bold; name="Cancel" id="Cancel" value="Sortir" onclick="OnClickButtonCancel"><br><br>
</body>
</html>
- 1. 在Android中设置壁纸
- 2. 可以设置壁纸本身的动态壁纸?
- 3. Android设置壁纸
- 4. 在IPad上设置壁纸
- 5. 设置壁纸的问题
- 6. 在Android中使用WallpaperManager设置壁纸
- 7. 如何在java中设置windows壁纸
- 8. 如何在Android中设置壁纸
- 9. 设置壁纸使用ACTION_SET_WALLPAPER
- 10. 用URI设置壁纸
- 11. 设置主屏幕壁纸
- 12. 从webview设置壁纸URL
- 13. Windows XP中更改壁纸网页
- 14. 位图到壁纸调整大小缩放设置壁纸
- 15. Android的设置锁屏壁纸
- 16. 设置iPhone和Android的壁纸 - Appcelerator
- 17. 设置来自Url的壁纸
- 18. Shell脚本更换桌面壁纸
- 19. 可以将本地图像设置为iphone中的壁纸吗?
- 20. 在我的应用程序中设置壁纸在android中
- 21. Android动态壁纸崩溃在配置壁纸
- 22. Android - 如何设置壁纸图像
- 23. 设置壁纸应该是这么难:(
- 24. Android - 如何设置壁纸图像?
- 25. 设置壁纸适合屏幕
- 26. 设置imageview到手机壁纸
- 27. 动态壁纸设置不显示
- 28. Android设置图像作为壁纸
- 29. setWallpaper(bitmap)没有设置全屏壁纸?
- 30. Android设置壁纸出错了
http://stackoverflow.com/questions/7779491/changing-wallpaper-with-a-batch-file-on-program-close-possible – user3719066 2015-04-05 21:52:59
我看到了在我的搜索类似的问题,现在我有批处理文件说成功完成,但背景并没有真正改变... – Raistlin 2015-04-05 22:11:21