HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
1107
ゆうやんActive Desktopで壁紙を変更できない4解決


ゆうやん

リンク

2020/11/7(Sat) 08:16:25|NO.91758

Active Desktopで壁紙を変更したいのですが、壁紙の位置が変わるだけで全く反映されません。
どうすればいいのでしょうか?
OSはWindows 7 Starterです。

// ActiveDesktopインターフェイスによる壁紙の変更 (By Kpan) //参考にしたサイト http://lhsp.s206.xrea.com/hsp_system.html#9 #define CLSID_ActiveDesktop "{75048700-EF1F-11D0-9888-006097DEACF9}" #define IID_IActiveDesktop "{F490EB00-1240-11D1-9888-006097DEACF9}" #usecom IActiveDesktop IID_IActiveDesktop CLSID_ActiveDesktop #comfunc IActiveDesktop_ApplyChanges 3 int #comfunc IActiveDesktop_SetWallpaper 5 wstr, int #comfunc IActiveDesktop_SetWallpaperOptions 7 int, int ; 壁紙の表示位置 #enum WPSTYLE_CENTER = 0 // 中央に表示 #enum WPSTYLE_TILE // 並べて表示 #enum WPSTYLE_STRETCH // 拡大して表示 onexit *exit newcom adesktop, CLSID_ActiveDesktop sdim filepath, 256 input filepath, 400, 22 objsize 20, 22 pos 400, 0 button "...", *setpath pos 200, 40 objsize 80, 22 button "適用", *setwallpaper stop *setpath dialog "bmp;*.gif;*.jpg;*.png;*.htm;*.html", 16, "背景ファイル" if stat = 0 : stop filepath = refstr objprm 0, filepath stop *setwallpaper ; 壁紙ファイルの指定 (第2パラにファイルパス、空文字だと壁紙「なし」) IActiveDesktop_SetWallpaper adesktop, filepath ; WALLPAPEROPT構造体 (要素1に表示位置) WALLPAPEROPT = 8, WPSTYLE_TILE ; 壁紙オプションの指定 IActiveDesktop_SetWallpaperOptions adesktop, varptr(WALLPAPEROPT) ; 変更の反映 IActiveDesktop_ApplyChanges adesktop, 7 mes "done." stop *exit delcom adesktop end
代わりに、Win32APIのSystemParametersInfo関数も使ってみましたが、ダメでした。



この記事に返信する


TOMATO

リンク

2020/11/7(Sat) 12:42:02|NO.91760

Windows 7 Starter って最廉価エディションなので、
壁紙は変更できない仕様だったと思います。
なので、プログラムからでも変更できないものと思われます。

https://ascii.jp/elem/000/000/456/456926/2/

古いPCを引っ張ってきて、Windows 7 Ultimate で動作確認しましたが、
ActiveDesktopインターフェイスによる壁紙の変更は動作しました。



TOMATO

リンク

2020/11/7(Sat) 12:51:51|NO.91762

むりかべ というソフトでは無理やり変更できるようです。
https://web.archive.org/web/20160329142434/http://kyounani.blog.eonet.jp/weblog/2010/05/ver112-ca55.html

詳しい動作原理は不明ですが、
プログラムは常駐するタイプで、フック用と思われるDLLが付属しているので、
一般的なやり方で壁紙を変更していないと思われます。



TOMATO

リンク

2020/11/7(Sat) 12:57:38|NO.91763

https://web.archive.org/web/20160329142434/http://kyounani.blog.eonet.jp/weblog/2010/05/ver112-ca55.html

ブログのコメントに
『フリーの壁紙チェンジャー等をご使用になられたら
むりかべがOSに代わって壁紙を変えるようにはなってます
(アプリケーションからの壁紙変更リクエストをむりかべが叶えます!)。』

という記載があるので、むりかべを入れた状態であれば、
提示されたHSPスクリプトは動作するのではないでしょうか?

むりかべは壁紙の機能制限を解除+壁紙変更 の2つの機能を持っているものと思われます。



ゆうやん

リンク

2020/11/7(Sat) 19:06:44|NO.91765

TOMATOさん ありがとうございます。
Starterでも、ソフトから変更できると思ってましたが、やっぱりレジストリを弄らないと無理みたいですね。

むりかべを実行してみたところ、反映されましたが、SystemParametersInfoだけ反映されませんでした。

ちなみに、Aero Patchをインストールしてやってみたところ、SystemParametersInfoでもちゃんと反映されました。
https://youtu.be/YRv-WCbZVXE

なぜ、むりかべがActive Desktopに対応しているか分かりませんが・・・。
一応解決チェックを入れておきます。

Starterでも、HSPからレジストリで壁紙を変更する方法もあれば、教えてほしいです!



ONION software Copyright 1997-2023(c) All rights reserved.