Re: ATOKでの入力 ( No.1 ) |
- 名前:ギウ 日時:2020/02/11 16:57
追記です。
==========
ウィンドウモードでは大丈夫でした。
フルスクリーンだと、ATOKを使おうとしたとき、一瞬ウィンドウ画面に戻り、そこからゲームに戻れなくなる感じです。
==========
とのことでした。
|
Re: フルスクリーンでATOKでの入力でフリーズ ( No.2 ) |
- 名前:管理人 日時:2020/02/12 00:18
ご情報ありがとうございます
私も ATOK最新版( ATOK for Windows )の体験版をインストールして試してみましたが、
少なくとも手元で試した限りではデスクトップ画面に戻るということはないようです
( ただし、初回起動では管理者権限確認( 「ATOK がPCに変更を加えようとしています、許可しますか?」)のウィンドウが
表示されたので、このときフルスクリーンモードだったらやばそうです( 私はデスクトップ画面の時に出したので
フルスクリーンモードで出した場合どうなるのかは試せませんでしたが… ) )
ATOK2018 は現在ダウンロードできないようなので確認できませんが、ATOK for Windows でも確かにフルスクリーンモードで
起動したときに一瞬デスクトップ画面が見えたので、ユーザーさんの環境ではこのタイミングで正常な動作が
しなくなったのかもしれません
DXライブラリだけなのかどうかはわかりませんが、ATOKはフルスクリーンモードと相性が悪いような気がしますので、
申し訳ありませんが対応としては
・ATOKを使用されている方は Windowモードでプレイしてもらうようにする
・デスクトップ画面と同じ大きさのウィンドウでゲーム画面を表示する「似非フルスクリーンモード」を用意して
「普通のフルスクリーンモードで正常に動作しない方はこちらのモードを使用してください」と注釈をつけて使用してもらう
( 因みに通常のフルスクリーンモードより表示面積が大きいので重いです )
の2通りになるかと思います
|
Re: フルスクリーンでATOKでの入力でフリーズ ( No.3 ) |
- 名前:ギウ 日時:2020/02/12 08:04
ご確認ありがとうございます!
こちらでも再現できませんので、ユーザーさんにはATOK2018のバージョンアップを試してもらいます。
*ttps://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=056684
あと、最小化や非アクティブになった時に日本語入力モードから抜けようと思うのですが、
SetAndroidGainedFocusCallbackFunction のPC版、またはPC版で最小化などを取得する関数はあるでしょうか。
一先ず、GetActiveWindowを使っておきます。(もしかしたらウインドウメッセージよりも検知が早いかも?)
それと、他で書かれていた
SetUseDirect3DVersion(DX_DIRECT3D_9)
も試してみます!(案外これで直ったりして)
上記諸々ダメな場合は、ATOK向けの注意文を表示することにします。(なるべく避けたいです)
|
Re: フルスクリーンでATOKでの入力でフリーズ ( No.4 ) |
- 名前:管理人 日時:2020/02/13 01:03
> あと、最小化や非アクティブになった時に日本語入力モードから抜けようと思うのですが、
> SetAndroidGainedFocusCallbackFunction のPC版、またはPC版で最小化などを取得する関数はあるでしょうか。
SetAndroidGainedFocusCallbackFunction に似た関数がありました
// メインウインドウのアクティブ状態に変化があったときに呼ばれるコールバック関数を設定する
// ( CallBackFunction:呼ばれるコールバック関数、NULL を渡すと設定解除 UserData:CallBackFunction の第2引数に渡される値 )
int SetActiveStateChangeCallBackFunction( int (* CallBackFunction )( int ActiveState , void *UserData ) , void *UserData ) ;
この関数に登録したコールバック関数がメインウィンドウのアクティブ状態が変化したときに呼ばれます
アクティブになった場合は第一引数 ActiveState が TRUE に、非アクティブになった場合は FALSE になっています
よろしければお試しください m(_ _)m
> 一先ず、GetActiveWindowを使っておきます。(もしかしたらウインドウメッセージよりも検知が早いかも?)
どうでしょう
もしかしたら GetActiveWindow の方が早いかもしれません (・・;;
|
Re: フルスクリーンでATOKでの入力でフリーズ→回避方法 ( No.5 ) |
- 名前:ギウ(解決) 日時:2020/02/13 08:10
最新版で、ATOKでの入力ができたとのことです!
(確認中ですが、フルスクリーンが解除されなかったのだと思います)
なので、DirectXのバージョンのせい、というのが濃厚かなと。
SetActiveStateChangeCallBackFunction も使ってみます!
(2/17がマスターアップなので焦りました^^;)
---
ここからは提案ですが、
他の方から報告のあった、
「何故か最小化される」、「画面の比率がおかしくなる」
も SetUseDirect3DVersion(DX_DIRECT3D_9) で解消されるとしたら、
DXライブラリのデフォルトの設定をDX_DIRECT3D_9にしておいた方が良い気がするのですが、どうでしょう。
DX11以降の関数(?)を使いたい人は任意で設定する感じで。
|
Re: フルスクリーンでATOKでの入力でフリーズ→解決策有り ( No.6 ) |
- 名前:ギウ(解決) 日時:2020/02/13 08:38
追記
DX9版だと「フルスクリーンが解除されなかった」とのことです。
|
Re: フルスクリーンでATOKでの入力でフリーズ→解決策有り ( No.7 ) |
- 名前:管理人(解決) 日時:2020/02/16 02:05
問題が解決したようで何よりです
> ここからは提案ですが、
> 他の方から報告のあった、
> 「何故か最小化される」、「画面の比率がおかしくなる」
> も SetUseDirect3DVersion(DX_DIRECT3D_9) で解消されるとしたら、
> DXライブラリのデフォルトの設定をDX_DIRECT3D_9にしておいた方が良い気がするのですが、どうでしょう。
Direct3D 9 はもうかなり古い API ( 登場は 2002年…! )で、現時点でエミュレーションによって実行されていて動作も遅いので
デフォルトにするのは少し避けたいです…
かつて、使えるからといつまでも DirectDraw 7, Direct3D 7 を使用していたら、Windows Vista で
DirectDraw 7, Direct3D 7 のエミュレーションが凄まじく遅くなり『DXライブラリ製のゲームは Vista 以降では激重になる』と
言われてしまった時期があり、いつ Direct3D 9 も同じようにまともに動かなくなるかわからない、というリスクもあります…
|
Re: フルスクリーンでATOKでの入力でフリーズ→解決策有り ( No.8 ) |
- 名前:ギウ(解決) 日時:2020/02/16 07:49
>DirectDraw 7, Direct3D 7 のエミュレーションが凄まじく遅くなり『DXライブラリ製のゲームは Vista 以降では激重になる』と
なるほど了解です!
では、DXライブラリ側は現状のようにDX11がデフォルトで、ゲームによってDX9を使う選択肢も有り。が良さそうですね。
因みにゲーム側の事情としては、ゲームが強制終了すると、
「★1」を付けられて、コメントに「突然ゲームがフリーズした。金返せ」と書かれてしまうので、可能な限り安全に動かしたい考えています。
(逆の立場でも、「もうここのゲームは遊ばない」って思うでしょうし)
一応、CPUやGPUの使用率を調べてみましたが、現時点ではDX9でも問題なさそうでした。(私の場合はGPUほとんど関係ないですけど)
今後、重くなるなったりしたらDX11にしてアップデートしようと思います。
|