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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1022
ゆっくりXPWindows 11でベーシックテーマを表示4解決


ゆっくりXP

リンク

2023/10/22(Sun) 16:47:21|NO.100336

↓HSPでこんな感じのようにできないのでしょうか?
https://twitter.com/THE_ROCKY10/status/1715971508622037211



この記事に返信する


沢渡

リンク

2023/10/22(Sun) 17:47:36|NO.100338

少し前にSetWindowCompositionAttributeなる非公開APIのことを知って、
それで色々試していた時に見つけたものです。
(ちょっと最大化ボタンの見た目が微妙に違うような気もしますが……)
ただし、非公開APIなのでMS公式による説明はなく、
過去にWindows11のアップデートで仕様が変わったことがありますので、
将来にわたってこれで上手くいくかどうかはわかりません。

#include "user32.as" #func SetWindowCompositionAttribute "SetWindowCompositionAttribute" int,int dim data,3 dim accent,4 mode=0 gosub *toggle button gosub "切り替え",*toggle //件のスクショに見た目を近づけるため、ウィンドウスタイルにWS_SIZEBOXを付加 GetWindowLong hwnd,-16 SetWindowLong hwnd,-16,stat|0x40000 stop *toggle mode=(mode=0) accent=mode,0,0,0 //これの第一パラメータに0以外を指定すると有効に、0を指定すると無効になる? data=11,varptr(accent),16 //WCA_NCRENDERING_EXILED = 11 SetWindowCompositionAttribute hwnd,varptr(data) return



ゆっくりXP

リンク

2023/10/23(Mon) 17:42:05|NO.100345

隠しAPIでこんなに簡単にできるとは…。
ちなみにGetWindowCompositionAttributeでコンポジションの属性を取得して、トグル切り替えはできるんですかね?



沢渡

リンク

2023/10/23(Mon) 19:00:31|NO.100346

申し訳ございません。
GetWindowCompositionAttributeでググって出てくる数少ない記述をもとに試してみましたが、
上手く行く気配がありませんね。
何かが間違っているのか……。

#include "kernel32.as" #include "user32.as" #func SetWindowCompositionAttribute "SetWindowCompositionAttribute" int,int #func GetWindowCompositionAttribute "GetWindowCompositionAttribute" int,int dim data,3 dim accent,4 //GetWindowCompositionAttributeのために別の構造体を用意してみる dim data2,3 dim accent2,4 mode=0 gosub *toggle button gosub "切り替え",*toggle button gosub "現在の状態",*status //件のスクショに見た目を近づけるため、ウィンドウスタイルにWS_SIZEBOXを付加 GetWindowLong hwnd,-16 SetWindowLong hwnd,-16,stat|0x40000 stop *toggle mode=(mode=0) accent=mode,0,0,0 //これの第一パラメータに0以外を指定すると有効に、0を指定すると無効になる? data=11,varptr(accent),16 //WCA_NCRENDERING_EXILED = 11 SetWindowCompositionAttribute hwnd,varptr(data) return *status data2=11,varptr(accent2),16 //WCA_NCRENDERING_EXILED = 11 GetWindowCompositionAttribute hwnd,varptr(data2) GetLastError : logmes strf("0x%08X",stat) //エラーコードは0x57(ERROR_INVALID_PARAMETER パラメーターが正しくありません) dialog accent2(0) //accent2(0)に現在の状態が入ると予想していたのだが、上手くいかず…… return



ゆっくりXP

リンク

2023/10/31(Tue) 22:26:18|NO.100396

GetWindowCompositionAttribute関数ってそんなに情報が少ないのは仕方ないんですかね…。
とりあえず解決済みとさせていただきます。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.100336への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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