2009-10-23 5 views
1

Windows Aero Slideshow 기능의 "다음 바탕 화면 배경"명령이 stobject.dll 파일을 호출하는 on a forum을 읽었습니다. 그래서 나는 내가 할 수있는 내 보낸 방법을 SE는 처리 여부 전화 확인하기 위해 DUMPBIN을 runned : I P/그것이 작동하지 않습니다 그 방법 중 하나를 호출하면어떻게 Windows Vista/7에서 배경 화면 슬라이드 쇼를 프로그래밍 방식으로 개선 할 수 있습니까?

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 

가 나는 것 같아요. 나는 무엇을해야합니까?

답변

2

두 가지 내보내기가 표준 COM 내보내기이므로 어떤 COM 인터페이스를 사용할지 알아 내야 일반 COM 방식으로 호출해야합니다 (Visual Studio를 사용하는 경우 dll에서 OLE/COM 개체 뷰어를 실행할 수 있음). 타입 라이브러리가있는 경우 유형 라이브러리를 살펴보십시오.

+0

--------------------------- OLE/COM 개체 뷰어 ------------- -------------- IMoniker :: BindToObject ("C : \ Windows \ System32 \ stobject.dll")에서 만든 파일 모니 커에 실패했습니다. 파일 확장명이 잘못되었습니다. MK_E_INVALIDEXTENSION ($ 800401E6) --------------------------- OK ------- -------------------- –

+0

--------------------------- OLE/COM 개체 뷰어 --------------------------- LoadTypeLib (C : \ Windows \ System32 \ stobject.dll)이 실패했습니다. 유형 라이브러리/DLL을로드하는 중에 오류가 발생했습니다. TYPE_E_CANTLOADLIBRARY ($ 80029C4A) --------------------------- OK ------------ --------------- –

+0

이름이나 GUID로이 라이브러리를 찾는 방법을 알지 못했습니다. OLE/COM Object 뷰어에서 파일을 열면 위의 예외가 발생합니다. Visual Studio 프로젝트에서 직접 참조를 시도하면 또 다른 예외가 발생합니다. 현상금은 제가 취해야 할 조치를 보여주는 사람에게로갑니다. –

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%" 

아무 일도 일어나지 않으면 시간 간격을 늘리십시오.