2024年4月20日土曜日

定期的な広告表示や更新通知をなんとかしたい

色んなアプリを使っていると、定期的に「更新してください」みたいな通知が出るものってあるじゃないですか
一度ボタンクリックすると24時間とか大人しくなるけど、それ以降にまた通知が来るやつ
別にポップアップを閉じるだけなので良いんですが、システム自動化をしていると余計なポップアップって邪魔なのです
なのでポップアップ表示を抑制します。


※調査前にはエクスプローラーの設定で拡張子の表示と隠しファイルの表示をONにしておきましょう
下手に触るとアプリが起動しなくなったりするし、レジストリ操作もあるので、意味わかんない人はやらないようにね


1.表示の仕組みを予想する

今回のポップアップ画面は

  • Windowsマシンにインストールされているアプリ
  • ポップアップ表示は毎回じゃなくて、1日1回くらいしか出ない

という条件なので、PC内のどこかに最後にポップアップ表示した日付情報をもっていると予想しています。

またポップアップの表示されるタイミングが「毎日1回」なのか「24時間後」なのかも調査するうえで違いがあります。例えば
前日の23時にアプリを使用していて、日付が変わった直後にでるなら「毎日1回」
前日の23時にポップアップが表示されていたら、翌日の23時まではポップアップが表示されないなら「24時間後」
になります。「毎日1回」なら日付情報はおそらく8桁(年月日)を保持していて、24時間なら14桁くらい(年月日時分秒)の情報を保持しています。


なので、この日付を遥か未来に設定することができれば、もうポップアップは出ないはず


2.アプリのインストール先を確認する

アプリのインストール先を確認します。要は「.exe」って拡張子を探します

インストールした場合はたいてい「C:\Program Files」の下にあるかな

ダウンロードしたアプリをそのまま使用しているなら、日々クリックしているやつのはず。


3.設定ファイルを探す

日付が設定されていそうな、ファイルを探します。拡張子が「.cfg」とか「.config」とか「.xml」のものが怪しいけど、制作者の気分なので参考程度に探します。
日付情報を更新しているはずなので、更新日付が新しいものを探していきます。

ポップアップ表示のタイミングでファイルの更新日が書き換わるファイルがあればビンゴですね


設定ファイルは

  • アプリのインストール先
  • C:\ProgramData
  • C:\Users\[ユーザ名]\AppData

あたりのどこかでしょう

「C:\Users\[ユーザ名]\AppData」はユーザごとの情報を格納しているので、
「ユーザAでポップアップを表示させるとユーザBではポップアップが出ない」
のような場合は、ここは関係ありません


4.レジストリを探す

regeditコマンドでレジストリエディタを表示します。

アプリのインストール先とだいたい同じ構成でレジストリ情報が格納されているはずなので、同様に探します。


5.日付の書き換え

※間違っていた場合に元に戻すために、日付情報の書き換え前に、設定ファイルやレジストリの値はバックアップをとるか、覚えておきましょう

理想としては「LatestUpdateCheck = 2024/04/01」みたいなわかりやすいものが見つかれば良いですが、そこまで綺麗に書かれてはいないかもですね

  • 20240401(日付を数字にしたもの)
  • 20240401123010(さらに時分秒を追加したもの)

みたいに書かれていることが多いんじゃないかな

さらに「1711942210」のような数字になっている可能性もあります。これはUNIX時間というもので、変換すると「2024年04月01日12時30分10秒」になります。検索すればUNIX時間の変換サイトが見つかるので、それを利用して書き換えましょう