久しぶりにWindows 11でシムシティ2000スペシャルエディションを起動しました。
SC2KRepainter を起動してからゲームを起動したのですが SC2KRepainter の効果がなくなったように見えます。
また、ゲームを起動した後に SC2KRepainter を起動すると次のエラーが出て落ちてしまいます。
>ハンドルされていない例外: System.InvalidOperationException: シーケンスに複数の一致する要素が含まれています
> 場所 System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerble`1 source, Func`2 predicate)
> 場所 SC2KRapainter.SC2KRepainter.Main(String[] args)
皆さんは問題ありませんか。
こちらでも「ハンドルされていない例外…」で落ちる事がたまにありますね
なんとなくWindows Updateが来てる前後あたりでよく見かけるような…(あくまで憶測ですが)
その時は大概、ゲームを起動する前の時点で既に「found Repainting...」のメッセージが出てます
うちのPC(Win11 Pro 23H2)の場合、再起動すると症状も治まって、アニメーションも正常に再描写されますね
補足:
最後の再起動につきまして、「ゲームの再起動」ではなく『PCそのものを再起動する』の意味です(汗
ご返信ありがとうございます。
SimCity 2000 というフォルダーをデスクトップに作ってその中にプログラムやデータのショートカットを作ってあるのですが、
そのフォルダーが開かれているとそれが SimCity 2000 のプロセスであると誤認識されることがわかりました(以前はそんなことはなかった)。
そこで、ショートカットをフォルダーの外に出してテストしてみました。
まず SC2KRepainter を起動すると
Waiting for SC2K...
だけが表示されました。正常です。
次に SimCity 2000 を起動すると
Waiting for SC2K... found
Repainting...
Error: SC2K disconnected.
Waiting for SC2K... found
Repainting...
Error: SC2K disconnected.
Waiting for SC2K... found
Repainting...
Error: SC2K disconnected.
と延々と表示されてしまいました。
先に SimCity 2000 を起動してから SC2KRepainter を起動しても SimCity 2000 フォルダーを開いていなければ 「ハンドルされていない例外」は
発生しませんでした。しかし上記の延々と表示されるのは同じです。
どうも SimCity 2000 のプロセスが正しく認識されていないようです。
Win 11 Home 23H2です。
あきらめてWin XPの仮想環境を使おうかと思います。
SC2KRepainter のソースを見てみました。小さいプログラムだったんですね。
細かいことはわかりませんが SC2KRepainter.cs でウィンドウを再描画している部分
RedrawWindow(handle, IntPtr.Zero, IntPtr.Zero, 0x01 | 0x80)
がなぜか失敗しているようです。
試しに SC2KRepainter を管理者として実行してみたところ成功しました。
「SimCity 2000」という名前のフォルダーを再描画対象として認識してしまう問題はそのままですので
とりあえず「SimCity 2K」に変えました。
ぺいさんの環境とは何が違うのでしょうかね。いずれにしても問題解決です。
形はどうあれ、動作したみたいで良かったです
参考になるかは分かりませんけれど、一応こちらの状態を記載しておきますね
ゲームの配置はこのサイトの管理人さんの教えの通り、Cドライブ直下にMaxisフォルダを配置するようにしていて、SC2KRepainterの実行ファイルは散々悩んだ末、SC2Kやアーバンリニューアルキットの実行ファイルがある場所に置いてます
C:\Maxis\SimCity 2000
├ SimCity.EXE
├ WINSCURK.EXE
└ SC2KRepainter.exe
各実行ファイルはスタートにピン止めしていて、そこからゲーム等を起動してる感じです
SC2KRepainterを起動するタイミングは、SC2Kを起動する前/後関係無し…とその時々によって適当です(苦笑
なおSC2KRepainterは自力でコンパイルする必要があったわけですが、この掲示板の過去に書かれていた方法で実行ファイルを作成しています(レスナンバー710番)
あと管理者権限とは関係ないかもしれませんが、ユーザーアカウント制御の設定を一段階下げた「アプリがコンピューターに変更を加えようとする場合のみ通知する(デスクトップを暗転しない)」に設定してますね
インストール場所はぺいさんと同じです(CD-ROMのインストーラーを使ってインストール)。SC2KRepainterは別の場所に置いています
(導入した時からバイナリーファイルが公開されていました)。
フォルダーやショートカットは何も変えていなかったのに問題が発生したのが不思議です。
なお、"SimCity 2000"というフォルダーを先に開いていると動作しなくなったという問題については、タイトルが"SimCity 2000"で始まる
ウィンドウを処理対象としている部分について"SimCity 2000 -"で始まるというようにソースを書き換えて問題を回避しました。