2022/10/30

入金処理までは解読した

JRAの即PATでの入金処理はどうにか解読出来ました。諸々入力後に別ウィンドウ起動される対応は別WebView2コントロールを用意しておいてそちらに移管してそちらで続行すれば特に問題は無かった。最後の確認ダイアログでの対応が時間掛かりましたが無事クリア。

2つのWebView2コントロールをフォームに配置して、1つで即PATのログインを開始。加入者番号諸々入れてメニューにたどり着いて入出金指示すると別ウィンドウが起動される。ここでNewWindowRequestedが発生するのでそのイベント処理を追加しておき、そこで2つ目のWebView2コントロールに向けて、更にそのタイミングでAreDefaultScriptDialogsEnabledをfalseにしてScriptDialogOpeningイベントを追加。追加先でe.Accept()して無事に確認ダイアログもクリア出来た。

1つのWebView2コントロールで対処しようとするとセキュリティ面でなのかタイムアウトとか何とかのエラーで継続出来なかった。これももう少し理解すれば回避は出来たかもだけど、今回は深堀せずに進める。

AreDefaultScriptDialogEnabledプロパティにしても、ScriptDialogOpeningイベントの追加にしても、事前にしようとするとエラーになり、別ウィンドウ起動されてNewWindowsRequestedイベントハンドラ内で2つ目のWebView2オブジェクトに設定した後に設定しないと上手く行かないので苦労させられた。

ポップアップの阻止する記事を参考にどうにかたどり着けた😉

2022/10/29

自動投票に向けての調査

 自動投票実装に向けて色々と勉強中なんですが、Seleniumはflash(確か現在のJRAの即PATはなんだったかと)なんかには微妙らしいので、別な方法を模索中です。

WebView2での実装に向けて色々と調査してますが、INET-ID入力と加入者番号からの案内が表示された場合のスキップまでは簡単に行けそう。入出金画面は別ウィンドウが起動されるので、その対処をどうするか検討中です。

基本的には表示されているページにて入力項目でマウスの右クリックから「開発者ツールで調査する」を選択すると該当するソースの部分が表示されるので、その部分をマウスの右クリックで[コピー]→[JSパスのコピー]でコードをコピーし、メモ帳等に張り付け、ダブルクォーテーションをシングルに変え、入力タグには"value = '';"をボタンタグには"click();"を追加してソースの末尾に追加する。

webView.CoreWebView2.ExecuteScriptAsync($"該当コード");
でWebView2コントロールに指示する。

2022/10/18

自動投票機能実装に向けて

 他の方のツールに対応しての実装が楽ですが、まあ、それが無くなるとって心配と自分でやる場合の労力、サイト変更時の対応処理等、検討材料は多いのですが、取り合えず実装方向で作業を進めるうえで調査してます。

SeleniumIDEをEdgeのプラグインで入れて何となくイメージはつかめたので開催時にデータを取る必要がある。

アプリ的には実装するのに

  • Selenium.WebDriver
  • Selenium.Support
  • ブラウザに対応したDriver
が必要になる。NuGetで検索して入れる。

2022/10/09

Windows11 22H2のIMEがTARGETには合わない?

 メインで使っているのでBLITZさんにも問い合わせて、まあ、結論としてはWindows11 22H2のIMEと相性が悪く、Microsoft側の対処待ち? 詳細は不明だけど、TARGET側には落ち度はないという事なんだと。他の競馬ソフトも使っているけど、基本どのソフトもIME使って日本語入力する場面がないので試す事も出来ませんが😓 日本語入力しなきゃ問題ないので、互換モードも試してって言われたけど、互換モードだと起動時に確認出たりするので外しました。更に、一度諸々設定すれば基本的には日本語入力なんてしないし。

今回は本当にやらかしてるので、ほぼ全て設定しなおしです。記憶を辿ってどうにか復元完了したので予想に移ります😁 メモ帳で日本語入力しておいて、入れたい日本語をコピペでどうにかTARGETに設定してどうにか以前の様に戻せた。

2022/10/06

TARGETがぶんぶん落ちる

 先週末、いつもの様に競馬の作業してると何十年も使い続けている、まあ、JRA-VAN一押しのソフトですがTARGET frontierがデータがおかしい😣 本来出走歴がある馬なのに表示されないって事でデータ登録での修復を試みるが機能しないorz まあ、作者に問い合わせるのもどうかと思い、アンインストール後にJRA-VANよりフルセットアップ不要のやつをインストールしてみると、ひゃ~、残念、今までの設定が当たり前ですが全て飛んだ😱 これまで何度かPCの更新やらOSのクリーンインストールなんかもこなして来たけど、今回はやっちまった。まあ、それは自分のミスではありますが、その後、設定を色々と復元する作業に入ると、レース印を追加するのにIME使うと落ちる。更にそれ以降は何もしなくても落ちる。作者のBLITZさんに問い合わせるもWindows11 22H2のIME周りが起因なのでしばらくは様子見との回答。OSが用意してる互換モードを試してみればっとの助言頂いて試したが全くダメ。まあ、仕方ないのでこのまま使うしかないかな~っと。いや、データの整合性が取れなくなったのも、そもそもこちらの落ち度では無いと思うし、その解説を相談もせず処理したこちらが悪いとは思うけど...

まあ、脱TARGETしようと今のアプリ開発進めてるのでここはスルーで行こうとは思います。

にしても、少なくとも自分自身だけじゃないと思うんだよね~、22H2は。だってWindows11は今回のアップデートで大分良くなった気がするし😉

2022/10/02

Visual Studio Community 2022 Ver.17.3.5

 いつだったか記憶は定かじゃないけど、今回のバージョンでは問題がある。

テーブル・レイアウト・パネルの編集で英語表記になってる。次回のバージョンアップでは修正されるかとは期待するけど^^; 別に大きな問題じゃないが、こんな管理も出来ないチームが作るソフトを信頼して良いのかな?

今朝ってか昨晩からしてた作業が全てパーにorz やった作業が保存されずに消えました。試しに少し編集して保存終了し、Visual Studio自体も終了したのちに再起動して開いてみるとその少しの編集は反映されず元の状態にって。いろいろ眺めているとTableLayoutPanelが1つ増えてる。身に覚えのないやつで、プロパティで選択しても何処にあるのかさっぱりわからず、結局エディタでDesigner.csファイルを開いて自力で削除する。念の為、Visual Studioを一旦削除して再インストールしてみるが↑の英語表記なままで、まあ、編集結果が保存されない怪は消えた(笑)

まあ、考えられる事は自分が編集作業でラベルコントロールをクリックして選択し、コピー&ペーストしてる時に空振りでラベルの下にあるTableLayoutPanelが一緒に選択された事に気が付かずに張り付けた?そんな事すればビジュアル的に気が付くと思うが...まあ、謎ではあるけど作業は進めます。

追記: 2022/10/13
本日Visual Studioの更新があるのを発見し早速入れてみる。Ver.17.3.6です。↑の英語表記は健在。あまりにも早い更新だったので、こんな表記ミスは対処してきたか?って思ったんですがMSは期待を裏切りません😫

2022/09/24

LG 43NANO75JPA

 昨日の急遽な発注から本日ヤマト運輸さんが運んで来てくれました。「大きい荷物で~す」って確かに想像してた以上に大きかった。これまでの31.5インチモニターより横幅で23センチアップですから。で、昼前に到着したので作業開始。って梱包から設置とセットアップ。これまで使っていたパソコンデスクには当然乗りません。なので、部屋の配置換え諸々で数時間掛かりました。

単にテレビ設定完了後にHDMI接続でPCと接続してPC起動。PC起動前にはテレビの入力切替の選択肢にHDMIが出ない。PC起動すれば選択肢に出てくる。まあ、この辺りは想像の範囲内。PCは4Kモニターとして認識してくれて、音も音源をLGのもにも出来たりです。折角だから「HDRを使用する」をONにしてリフレッシュレート60Hzに。元々はリフレッシュレートが30Hzでマウスがもっさり動く感じ。グラフィック調整しないとダメっぽいのでWindows HDR CR CalibrationをMicrosoft Storeからインストールして調整。色合いが赤が強い感じなのでうちのPCはNVIDIAのグラボ入れてるのでNVIDIAコントロールパネルで調整してなんとかでした。

が!入力入り替えで地上波なんかからPCに戻ったらまた色合いが赤みが強化されてた。何かがダメなんだかな~。HDRをOFFにすれば普通の色合いになるんですよね~😓


HDRをONにすると

別にそれ程画質や色合いにこだわりは無いので、HDRはOFFでしばらく使ってみます。


追記
ふと、最近では当たり前にブルーライトカットしてるんですが、あっ、赤みが濃いって青が原因か?っと。で、Windows11でも普通にしてた夜間モード。これが原因で赤かった模様です。これ切れば普通の色合いに戻りました。って今までのモニターでは同じブルーライトカットしてても全く気にならなかったのが逆に不思議だ😏

2022/09/23

PCのモニターが我慢の限界超えた

 現在のパソコンも2018年8月に購入してるので既に丸4年が経ってる。それまで使っていたDellの20インチ1600x1200という異質な4:3モニターは当時10万円切ったといって購入して10年以上問題なく利用して満足してたが、そろそろワイドで更に高画質って事でAcer 31.5インチ 4Kモニターを52,580円で購入。購入当初は快適で良かったのですが、確か1年程度で表示が怪しく、アマプラで映画見てても、この映画はこんな画質でこんな色合い?って思い始めたが、テレビで見ると全然奇麗で、もしかしてモニターが悪いのかと思い始めた。

先日のWindows11 22H2のクリーンインストール後で状態は更に悪化。普通にEdgeで閲覧してるだけでも目に非常に辛いものになってしまったorz それでなくてもここ数年年齢的にも目の疲れが気になってたのに...現在のテレビはパナの有機ELで綺麗に表示されているのので理想は有機ELなんですが、贅沢は言えないので我慢して普通の液晶ディスプレイにする事にして現在の物と同等程度を模索。短時間調べていくとやはり5万円以下で4Kで30インチ以上。ゲオのテレビでも良いかな~っと4万円以下で決めようとしてたんですがオンラインで購入するのに2千円のクーポン使うのに躓く。多分Ponta関連とレンタル関連がうまく完了出来てないのが原因で明日店舗に行こうかとも思ってましたが、やはり面倒なので断念。ああ、金曜日かって事でAmazonにお世話になる事にしてLG 43NANO75JPAにしてみた。

LG 43NANO75JPA 65,800円→セールで54800円
割引クーポン 5,000円
Amazonギフト券 1,750円
----------------------------------------------------
48,050円

5年長期保証2600円もAmazonギフト券でつけた。明日到着予定で楽しみです。ちなみにゲオのテレビ止めた理由は出掛ける必要性以外にもパネルがVAってのも気になり、IPSパネルなLGにしたってのもあります。価格.comでは2022年モデルでも5万円以下がありましたが、Amazonでは65,800円で、まあ、昨年も出るだからタイムセールで更にクーポンでも割引して安くなってたんでしょうね。更に納期も1日遅かった😜 今回は何で金曜日だからってD払いでは金土がポイントアップなので...Amazonの買い物って基本ポイ活しにくいので、この際って事でね。楽天は今日まで買い回りなんだけど、まあ、Amazonギフト券残高が4千円ちょいあるのでその利用も兼ねて。

2022/09/21

Windows 11 22H2

 9月20日に現地でリリースされた様でまだWindows Updateでは入らないが、ちょっと入れてみようかと思います。で、調べるとわざわざ不明なサイトからダウンロードとかあり得ない(笑) 一番肝心なOSを本家が用意してるのに本家以外で冒険はしません。Windows 11

ダウンロード自体は数分で済みましたが、一応メディアにも書込みする習慣でいつものDVD-Rにと思ったら容量不足orz DVD-R DLが必要でした。で、書込みはいつものBurnAware Freeでってインストールすらしてない。Microsoft Storeからインストールして書込み開始すると書込み自体は20分弱なんですが、ファイナライズで結局トータル30分弱。

無謀にもこれからクリーンインストールしますので、しばらく帰らぬ人になるかも...

焼いたメディアからの起動が出来なかった。焼きミスなのかドライブの調子が悪いのか判断出来なかったが余ってるmicroSD使ってUSBにインストールメディア作成。これもツールダウンロードから作成に大体30分程度。作成したUSBからインストール開始するとWindows自体は30分程度でインストール完了する。で、Windows Updateを確認するとこれまた20分程度。1時間弱でどうにか使えるようになるが、まあ、ここから入れてたソフトを入れ直しなんだけど、これは地道に進めるしかない。

2022/09/20

利用開始から80日

 ここにも書きましたが、7月2日にMicrosoft Rewardsをやり始め本日で80日。スタート直後に150円分のAmazonギフトは頂きました。この80日間もれなくやれた訳ではなく自分の記憶では2度か3度し忘れてましたが、まあ、それ以外は地味に続けてきました。

今回600円分のAmazonギフトを申請して24時間以内に届くらしい。基本600円分貰うのに5,250ポイントが必要です。単純にちょちょっとやれると40ポイント/日です。まあ、これだけだと132日掛かりますが、連続ボーナスとかEdgeで検索とかでも少ないですがポイントが貰えて達成した訳です。まあ、今後も地道に続けてみようかと思ってます。

追記
1時間も経たないうちにMicrosoftからAmazonギフトが送られてきました。まあ、当然の事ではありますが、その当然が出来ない会社も多いからね。

2022/09/10

VMware Workstation 16 PlayerにWindows 11を入れる

 久しぶりにVMware Workstation Player入れてみる。随分昔からVMware Workstationにはお世話になってるんですが、Windows11が無料のPlayerにはインストール出来ないって事で放置する事になってました。Windows11のクリーンインストールし直し後はそもそもインストールもしてなかった。でも、そろそろテストインストールとか必要になるかもってのと一般的なフルハイビジョン(1280x1024)の環境でのアプリの見栄え確認も必要になるかと入れてみる事にしました。で、グーグル先生に質問してみると、今では簡単に方法が見つかる様になってました。

  • OSをインストールせず仮想マシン作成 > CPU2コア以上メモリ4GB以上 って事で2コアで16GBで作成
  • 仮想マシンの.vmxを編集して managedvm.autoAddVTPM = "software" を追加
これで仮想マシンの設定にTrusted Platform Moduleが追加される。
これでWindows11をインストールしてVMware Toolsも入れる。ディスプレイ設定で解像度を選択。で、いつもの面倒をしておく。
  • レジストリエディター(regedit)で\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\DeviceにあるDevicePasswordLessBuildVersionの値を2→0にする
  • ユーザーアカウント(netplwiz)で"ユーザーがこのコンピューターを使うには、ユーザー名とパスワードの入力が必要"のチェックを外す
これで今のPC環境で実行すると
4Kモニターで仮想マシンのフルHDはこんなサイズです。ホストはダークモードでゲストはライトモード。

追記
ゲストが遅いのを軽減するおまじないを入れておく。
mainMem.useNamedFile = "FALSE"
MemTrimRate = "0"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"

訂正 2022/09/11 09:35
仮想マシンのフルHDは自分の記憶違いで設定ミスしてました。4:3であれ?って思ってはいたんですが、ニュース記事読んでいてフルHDは1920x1080だった事に気が付きました

これが正しい4Kモニターでの仮想マシンのサイズでした<m(__)m>
 

2022/09/03

SQLiteCommandでのリセット

 SQLiteでSQL使って色々やろうとすると、処理毎にCommandを作るののかな?っと。いや、例えばテーブルから複数のAの最大値とBの平均値とか同時に取得もあるかもですが、1つ目のSQLの後に同じCommandインストタンスを使い回すには

cmd.Reset();
で行けるのかなぁっと試すが、これ、何してるのか不明です。デバッグでこれ実行前と後でcmdに差し当たって変化が確認出来なかった。この辺り、Visual Studioでソース編集してればインテリセンスが助けてくれますが、理解出来ない時にグーグル先生に質問するんですが、上手い事検索出来ない。

たどり着いたのは
cmd.Parameters.Clear();
でした。これなら使い終わったParameters配列は空になるので次のSQLにも使えました。まあ、理解出来てないですが、
cmd.Reset();
cmd.Parameters.Clear();
ってしておきます^^;


2022/08/29

配列内の数値で順位付け

 配列に入れたデータを元にその要素の配列内での順位を求めたかったので方法をちと考えてみた。使うのはArray.SortとArray.BinarySearch。まあ、単純に配列に入ったデータをソートしてそのインデックスを求めれば順位になるかと考えて、同じデータを持つ配列をソートして元データをバイナリーサーチしてみた。小さい順ですが、大きい順も応用可能かな。

int[] ar = {4,7,2,8,5,9,3};
int[] sortedAr = new int[ar.Length];
Array.Copy(ar, sortedAr, ar.Length);
Array.Sort(sortedAr);
int iRank = Array.BinarySearch(sortedAr,ar[求めるインデックス])+1;
なんかもっとスマートな方法もありそうだけど、取敢えずこれでも出来た。