[英]How to advance the wallpaper slideshow on windows vista/7 programatically?
我在一個論壇上stobject.dll
,Windows Aero幻燈片功能中的“下一個桌面背景”命令調用了stobject.dll
文件。 因此,我運行了dumpbin來檢查是否可以調用導出方法:
Microsoft Visual Studio 9.0\VC\bin\dumpbin.exe /EXPORTS
Windows\System32\stobject.dll
Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file C:\Windows\System32\stobject.dll
File Type: DLL
Section contains the following exports for stobject.dll
00000000 characteristics
49EE914D time date stamp Wed Apr 22 00:38:53 2009
0.00 version
1 ordinal base
2 number of functions
2 number of names
ordinal hint RVA name
1 0 00001A28 DllCanUnloadNow
2 1 000059A9 DllGetClassObject
Summary
1000 .data
2000 .reloc
1A000 .rsrc
1A000 .text
我猜想IP /調用這些方法之一是行不通的。 我該怎么辦?
這兩個導出是標准COM導出,您必須弄清楚要使用哪個COM接口並以常規COM方式調用它們(如果使用Visual Studio,則可以在dll上運行OLE / COM對象查看器,並查看其類型庫(如果有)
我有類似的問題。 區別在於我想刪除當前的牆紙文件並強制進行幻燈片放映。 我發現在牆紙上更改了HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Desktop\\General\\WallpaperSource
注冊表項。 因此,我試圖刪除它所指向的文件。 還有...在大約十秒鍾內,牆紙被更換了! 看起來這迫使幻燈片繼續進行。
因此,這里有一個批處理文件可以解決問題。 它從注冊表獲取當前牆紙文件的值,使用臨時名稱重命名它,等待10秒鍾,然后將其重命名為原始值。
@echo off
set WallpaperFilePath=
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperSource`) Do set WallpaperFilePath=%%J
if "%WallpaperFilePath%" equ "" goto :eof
For %%i In ("%WallpaperFilePath%") Do set WallpaperFileName=%%~nxi
set WallpaperFileNameTmp=__%WallpaperFileName%__
echo "%WallpaperFilePath%" "%WallpaperFileName%" "%WallpaperFileNameTmp%"
ren "%WallpaperFilePath%" "%WallpaperFileNameTmp%"
ping -n 10 localhost > Nul
For %%i In ("%WallpaperFilePath%") Do ren "%%~dpi%WallpaperFileNameTmp%" "%WallpaperFileName%"
如果什么也沒有發生,請嘗試增加時間間隔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.