1

Windows Aero スライドショー機能の「次のデスクトップの背景」コマンドがファイルを呼び出すことをフォーラムで読みましたstobject.dllそこで、ダンプビンを実行して、エクスポートされたメソッドを呼び出すことができるかどうかを確認しました。

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/Invoke すると機能しないと思います。私は何をしますか?

4

2 に答える 2

2

これらの 2 つのエクスポートは標準の COM エクスポートです。使用する COM インターフェイスを特定し、通常の COM の方法でそれらを呼び出す必要があります (Visual Studio を使用している場合は、DLL で OLE/COM オブジェクト ビューアーを実行して、そのタイプ ライブラリがあれば)

于 2009-10-27T10:38:58.250 に答える
1

同様の問題がありました。違いは、現在の壁紙ファイルを削除して、スライドショーを強制的に続行したかったことです。壁紙でHKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General\WallpaperSourceレジストリキーを変更することがわかりました。それで、それが指しているファイルを削除しようとしました。そして… 約10秒で壁紙が変わりました!これにより、スライドショーが強制的に続行されたようです。

そこで、このトリックを実行するためのバッチ ファイルを次に示します。レジストリから現在の壁紙ファイルの値を取得し、一時的な名前で名前を変更し、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%"

何も起こらない場合は、時間間隔を長くしてみてください。

于 2012-07-17T20:27:02.753 に答える