投稿

ラベル(PC)が付いた投稿を表示しています

楽天ラッキーくじ 半自動君

イメージ
ダウンロード 概要 使い方 .Net 8.0がインストールされていない場合 ダウンロード 楽天ラッキーくじ半自動君  は←ここからダウンロードできます。 追加機能の説明 リリース履歴 概要 Playwrightと出会ってから、Seleniumと比べて圧倒的な使いやすさ、そして確実性、安定性を確認できたため、 楽天ラッキーくじを次々表示したりするツール を作り直しました。半自動君と名前を付けていますが、自動でくじを引けます。同様の機能を有料で販売している人も見かけますが、 完全無料 です。さらに多機能で、 そんじょそこらの楽天ラッキーくじの自動ツールとは比べ物にならないぐらい、いろいろやれます。 自分が面倒だったり忘れたりしやすかったから。便利、らくちん、手間いらず。 楽天ラッキーくじに関しては以下のことができます。 ・くじ一覧のあるHPを登録しておけば、そのページを解析してくじを順番に表示します ・すでに引いたと判断されたら速攻で次のくじに行くので引くべきくじだけ表示できます ・スマホ用のUser-Agentでの巡回も一応します ・当たりと判断したら勝手にスクリーンショットをとって保存します。 ・自動処理にすると複数タブで一気に処理するのでかなり時間が省けます。  (全部のくじで3分ぐらいで終わると思います。) 半自動君と言いながら全自動化もできるってことですね。 おまけの機能として infoseekニュース、クリックしてポイント、メールdeポイント、ビンゴ、クリックオン広告など、自動処理を大幅に追加 。 詳しくは 追加機能の説明 を参照 リリース履歴 に、その他対応内容を記載してます ・Windows用です。(Windows10で開発しています。Playwrightは正式にはWindows10以降がサポート対象となっています。Windows8は動くかどうか不明。 Windows7以前は確実に動きません。 2023/10/26記) ・.Net8.0がない場合は画面の指示に従ってインストールしてください。 ・Chromeもインストールされている必要があります。 使い方 ダウンロードしたら「楽天ラッキーくじ半自動君.exe」をダブルクリックしてください。 Chromeが立ち...

Netflixのエンドロール・エンディングを最後まで見るビューワー

イメージ
ダウンロード 概要 使い方 ダウンロード ダウンロード(最新版)はこちら Windows10/11専用です。 .Net8.0が必要です。起動したときにインストールするように言われたらインストールしてください。 (※2K契約でテストしてます。再生開始からの時間をチェックしたりしているのでたぶん広告ありではうまくいかない。4Kのほうはたぶん大丈夫) 概要  Netflixって、イントロ画面で「イントロをスキップ」とか、クレジット画面で「クレジットを表示」とか「次に進む」(だっけ)とかでたり、 暴力表現とか、あと一番は最終シーズンの最終話や映画の一番最後で次のおすすめが必ず表示されて、イラっとしないですか? と、いうわけでそれを解消するビューワーを作りました。 Netflixの設定でできる中途半端な奴じゃなく、完全に表示しません。 使い方 まず、前提として、Netflixの設定ページで可能な限り次へ進むを出さないようにしておきます。(1回だけ設定すれば、あとは設定不要です。) Netflixを立ち上げたら、プロフィールの管理を押して、プロフィールを選び、自動再生の管理のチェックボックスを2つ外して、保存してください。 で、Netflixビューワーを立ち上げると、警告が出ることがあります。 (ウイルスなどはありませんが、ストアから入手していないので初回は警告が出ることがあります) 立ち上がると、全画面でNetflixブラウザ画面になるので、見たい番組を選んでください。 デフォルトでは「バックグラウンドモード(初回再生位置無制御)」「コントロール非表示」になっています。 ※モードを変更したい場合、ウインドウを出すには 「Ctrlキー」と「Shiftキー」 を同時に押してください。...

RDP Wrapperのすすめ

イメージ
RDP Wrapperを使用した、バックグラウンド処理の紹介 RDP Wrapperフォルダの作成とWindows Defenderの設定 RDP Wrapperのダウンロード RDP Wrapper AutoUpdaterのダウンロード RDP Wrapperのファイルを解凍する Windows Defenderのリアルタイム保護の有効化 リモートデスクトップを実行するためのユーザを作成する リモートデスクトップを有効にする RDP Wrapperを有効化する 「autoupdate.bat」をPC起動時に自動実行する設定 リモートデスクトップの初回起動 ユーザー設定の保存 リモートデスクトップ用のショートカットをつくる タスクビューを使ってリモートデスクトップを裏で動かす

Windows 11 をインストール時やユーザー作成時に設定すること

イメージ
Windows 11を導入時の初期設定をしよう 右クリック時のコンテキストメニューを旧仕様にもどす Explorerのオプションを設定する NTPの設定を変更して時刻をより正確にする ファイルアクセス日付の更新を停止 フォルダごとのタイプ設定の無効化 netplwizのパスワード入力しなくていいようにするボックスを表示する設定 タスクバーのサムネイルを表示させない ローカルネットワークのファイルコピーで更新日付が変わらないようにする

Surface GoでBluetoothが使えなかった話。

イメージ
 Surface Go 3を購入して約半年。2か月ほど前にWindows11をTiny11でコンパクト化した。 そのときBluetoothのイヤホンは普通に使えていたのだが、右耳だけ聞こえなくなったりして不具合がイラっとするので、イヤホンを新しく購入した。 しかし、WindowsがBluetoothデバイスの追加をしてくれない!! すでにペアリング済みのイヤホンは普通に接続できるのに、新しいイヤホンが接続できない!! いろいろやりましたが、原因はサービスの停止でした。とは言ってもBluetoothのサービスではないですよ。 セキュリティ的に嫌とか、貧弱で無駄なメモリを使いたくないのでいらんサービスはどんどん無効化していたのですが、思いもよらないサービスが、じつはBluetoothのサービスにかかわっていましたよ。 ちょっと小さくて見えないかもしれませんが、その曲者のサービスは「 Network Connection Broker 」。 説明には「 Windowsストアアプリがインターネットから通知を受信できるようにするブローカー接続 」。はぁ?って感じです。 Windowsストアなんて一切使用しないし、 インターネットから勝手に通知を受信するなんてけしからん 。と、いうことで無効にしてましたが、 こいつが犯人 。 これを無効ではなく自動にして再起動。 すると、上のように「Bluetoothオン」の項目が現れて、新規のBluetoothの接続ができるようになりましたとさ。 結論:ふざけるなMicrosoft。

チャットGPT、確かにすごいな。

イメージ
チャットGPTをたったいま、初めて使ってみた。確かにすごいな。一般的な質問であればかなり的確に答えてくれそうだが、ディープなかゆいころへの質問にはさすがに届かないみたいだけど。 昨日Playwrightで困ったことについて自分でいろいろ調べて解決済みだが、 チャットGPTだとどういう答えが出るか試してみた。 質問「Playwrightを使用してtouchstartイベントを使用するにはどうすればいいかを教えて」 笑った。何かというと、その場でコーディングしてた。これはびっくり。本当にもとめていた答えはブラウザ起動時にオプションでHasTouch=trueを指定する必要があるということだが、これは質問が悪かったのかもしれない。 と、いうことで、質問をもっと具体化してみた。 質問「Playwrightを使用してtouchstartイベントが発生できない。touchstartイベントを発生させるために必要な処理をすべて教えてほしい」 おお、ちゃんとHasTouchのことも書いてある。昨日何時間かかかったんだよなぁ、これ調べるのに。それどころか、page.emulate()なんて初めて知ったよ。もしかして、これ、ブラウザの再立ち上げ必要ない?いままでUA変えるときはブラウザ再起動させてたけど、ページ単位設定できるのか…。やってみないとわからんけど。 もう、googleなんて使っていられんな。これは。

Visual Studio 2022のぐち

Visual Studio 2022のぐちです。 これまでVisual Studio 2017を使っていたのですが、.NET6.0を使うためにVisual Studio 2022をインストールしてから約2ヶ月半。 Visual Studio 2017のときにはほとんど不具合にあったことなどないのですが、Visual Stuio 2022ではイライラすることが多い。 ・一番イラっとすることは選んでいるクラスソースが表示されないこと。 メインウインドウで複数のクラスをタブで切り替えて使うじゃないですか。でもタブ選択しても選んだソースが表示されず、タブだけが切り替わったように見えること多い。こういう時は表示されないタブを一度閉じて再度開くなどしないといけない。地味に面倒。 ・次にイラっとすることはデザイナが表示されないこと デザイナを開いたり、デザイナのタブを選んでもバックグラウンドで読み込んでいますとでていつまでもフォームデザイン画面が出ないときがある。フォームのプロパティ変更したいのにすぐに変更できないのはイラっとします。これも一度タブを閉じて再度開くと表示されることが多いのですが、デザイナの場合ちょっと時間かかるので余計にいらつくポイント。 ・保存しようとすると致命的なエラーが発生する 保存しようとするとときどき致命的なエラーが表示されて、保存できない。これはかなりイライラっとする。たまに発生する。一度でるともう絶対保存できない。唯一救いはエディタ画面はそのまま使えるので、いったん未保存のソースを別のテキストエディタにコピーしておけること。それでもリソースやプロジェクトプロパティの修正まではできない。 ・デザイナでデザインした内容がソースに反映されない。 これも時々起きるが、気づきにくくホントに頭来る。結構なボタンやテキストボックスを配置した後、コントロールを操作するコードを記述しようとして初めて気づく。デザイナに配置したはずのコントロールが未定義になる。そこで~.designer.csをコード表示してみるとデザインしたコントロールが一切反映されていない。VisualStudio2022を再立ち上げしないといけないし、デザインした内容は一切復活できない。時間をかけてデザインをすればするほど、徒労感虚無感とともに怒りがわく。 上の2つは頻発するし、下2つは致命的。 V...

C#で画面キャプチャしようとしたら遅かった原因が分かった件

イメージ
とあるゲーム…と、いうかオンラインのパチスロを打つプログラムを試しているところ。 パチスロなんだから高設定じゃないと勝てないのは普通だが、4号機時代の技術介入ができる台であれば、完ぺきに打つことができれば設定1でも100%を超える。 最近でもディスクアップなんかはどのホールでも設定1だけど、数千万回転の実践を集計すると100%をぎりぎり超えているらしい。 さて、パチスロはドラム1回転でたいてい21コマの図柄がループしているが、1分間で79.5~79.9回転程度の速度らしい。オンラインのパチスロゲームでも基本的には変わらない。 60(秒)÷79.5(回転)÷21(コマ) = 0.0359(秒/コマ)。1つの図柄をビタ押しするには35ミリ秒の勝負となる。 人間が目押しする場合は回転の間隔も体感で覚えれば、ほぼ完全目押しもできる。 自分がやろうとしているのは瞬間目押しである。余計なドラムの回転を待たずに1周目で目的のコマをビタ押ししてやろうということだ。 さてクランキー系でちょっくらやってみるかとプログラムつくってみたものの、これがどうにもうまく行かない。いや、うまく行くのだが、うまく行かない。 メインのPCは4年前に購入したPCで当時そこそこハイエンドのPCなので、性能的にはよい。このPCでコーディングして、試しに目押しさせてみるととほぼ想定のとおりに目押しできる。小役はおいといて、BIG時のリプ外しなんて完璧だ。やっとできたと思ったのに。 メインのPCは普段使いするので、パチスロでメダル稼ぎたいときは、サブのミニPCで勝手にメダル獲得しておいてほしいのだ。で、サブのミニPCにはディスプレイがつながっておらず、VNCを使ってリモートログインしている。そして、25,000円ぐらいでOSまでついているミニだが、当然性能は低いCeleron J4125。グラフィクスはIntel UHD Graphics 600だ。 性能的にイマイチでも、なんとかなるのではないかと思っていたが、やっぱりどうにもならない。やってみると、目押しが全くあっていない。遅れまくる。 なんでかとログを出力しながら確認したところ… 57:48.190 比較終了 57:48.190 画面取得開始 57:48.217 画面取得終了 57:48.217 比較終了 57:48.217 画面取得開始 57:48.25...

マインスイーパーを自動で解いてみる

イメージ
マインスイーパーを自動で解いてみよう マインスイーパーのゲームで試す マインスイーパーをやっている様子 マインスイーパーを自動で解いてみよう 今更ながらにマインスイーパーを自動で解くプログラムを作った。 まずはマインスイーパーの問題を作るプログラム。 これは簡単。これに加えて、指定した場所から爆弾orパネルの開放する処理。 これも再帰するだけなので、簡単。 あっというま。ま、昔7行プログラムでできたぐらいだしね。 問題を作ったら、今度は問題を解くほうの処理。 自分で解いていくわけではないので、テキストで表示して解いていく過程を 見せるプログラムにした。 未開放のパネルに対し、爆弾の確率を設定する。設定した確率の内、最も低いパネルを開く。 ただそれだけ。 盤面を全体的に走査し、確実に爆弾の場所もしくは確実に爆弾ではない場所を調べる。 どちらかが見つかったら、その周囲の8マスの確率を計算し直す。 確率の計算が発生した場合は、再度盤面全体を走査する。 そして最後に爆弾の確率が最も低い基本的には確率0のパネルを開く。 それだけでもまあまあな正答率にはなる。でも、まあまあはまあまあ。 確率0のパネルがない時はそこそこの確率で爆弾を引いてしまう。 そこでさらに一工夫して、確率0が見つからない場合に 各地点の発生しうる爆弾の組み合わせを全通り試し、その結果矛盾が発生しない 全組み合わせのチェックの結果、爆弾が絶対発生する/絶対発生しえないパネルを 確定するようにする。爆弾の仮置きで矛盾がないかということね。 これらにより、まあまあの正答率はなかなかの正答率になる。 マインスイーパーのゲームで試す ある程度ロジックが問題ないレベルになったとおもわれるので、ウェブサイトのマインスイーパーで試してみる。 試したのは楽天ポイントモールのゲームセンター内のマインスイーパー。20x20のLevel5の盤面で試す。(ちなみにラクマ版ゲームセンター( https://fril.jp/games# )でも同じだしLINE版のゲームセンター( https://kantan.game/lightgame )もおなじ。) 盤面の情報などは外側から取得できる気がしなかったので、単純に画像を直接解析して、盤面情報を取得しようとした。 ところが、微妙にマス目ごと...

おまけ Andoroidのエミュレータ比較 実際使ってみたら

イメージ
先月、アンドロイドのエミュレータをベンチマークしてみたが、そのあといくつかのアプリ入れたりして試してみた。 今回は、その所感。 1.BlueStacks 5(Android 9) 速いのだが特定のアプリで不具合。時計回りがおかしい? ほかのエミュではうまく行くけど、自分がよく使うアプリが重いか落ちる。 あとはカメラを使うはずのアプリはカメラ検出がうまく行かない。元々入っているカメラも映るのだが、縦横比とか調整してくれない。 2.MuMuPlayer 11 SendInputを受け付けない。タップやキー入力は何とかadbでできても、自動で終了できない。とくに終了の確認を押すのがダメ。TaskKillで無理やり終了させたりした。 そのせいかなのか、はたまた2つのインスタンスを無理やり運用していたせいなのか、起動時にプログレスバーが進まなくなって立ち上がらなくなってしまった。 軽そうに思えるアプリが、立ち上がりもしなかった。↓のように40%か60%のどちらかで止まってしまう。 3.LDPlayer 超不安定。いろんなアプリが反応しなくなったり、adbでの操作がハングしたりする気がする。 どうもadb connectしたものがofflineに切り替わってしまったりするようだ。ipアドレスでの接続して、disconnectさせて「emulator-5554」などを使用しないとうまく行きにくい? カメラ使うアプリはちゃんとカメラ接続される。↓はぜんぜん進まない。 4.NoxPlayer(Android9) NoxもBlueStacksと似た時計回りで不具合がでる。 こちらもカメラ使うはずのアプリは映像が出ず、うまく動かない。もともとはいっているカメラも映ったり映らなかったり。 あとは特定アプリがほかのエミュでは問題ないのに、セキュリティ上の問題(Rootも取っていない)で起動できなかったり。 と、いうことで、 速さはともかく、今のところ不穏なエミュ多い。 「adb logcat」などで落ちる原因など見てみて、何とか解決できないかと思ったりもするんだけど…。 ほんとアプリにより切り替えないとダメ。 カメラはどのエミュレータもハードウエアデバイスでないとダメ。OBSみたいに、akvirtualcameraを使って作った仮想Webカメラは全く反応しないし、Oculus Rift Sの...

C#でSeleniumをやめてPlaywrightを使ってみた4

イメージ
Playwrightでもう少し試したこと 拡張機能を使いたいのにダメ? 拡張機能を使えるようにする 拡張機能が消える? 拡張機能を使うためのコード例 要素の存在チェックがしたい CountAsync()で0が返ってこない罠 要素の存在チェックの方法の結論 JavaScriptを使うときの書き方 Playwrightを使いまくって作ったアプリ Playwrightでもう少し試したこと その3でやめようと思ったが、もう少し書きたいことがあったので、書いておく。 「拡張機能」「要素の存在確認」「JavaScriptの実行」についてのメモメモ。 拡張機能を使いたいのにダメ? まずは拡張機能について。 SeleniumのときはChromeの拡張機能はそのまま使えた。 特に何も設定しなくても、立ち上げるChromeの--user-data-dirを適切に設定しておけば、そこでインストールした拡張機能はSeleniumで起動させたChromeでも普通に使えた。 しかし、Playwrightはそうはいかない。 拡張機能をインストールしようとするとこんな感じでエラーが発生。入れられない。 このメッセージが出る理由とか対処法を検索すると、プロファイル作り直せばできたとかなんとかというページばかりだったが、消してもだめ。たどりついた結果は「chrome://version」にあった。 立ち上げのオプションに「--disable-extensions」が入っている。そりゃ、だめだわ。これ外せないかとおもったけど、外す方法は分からず。 その代わり、どうやら「--disable-extensions-except」をつかって特定の拡張機能だけは使えるようにすることはできそう。とはいえ、「--disable-extensions-except」を指定するためには先に拡張機能をインストールしていなければならない。 拡張機能を使えるようにする と、いうことで、まずはコマンドプロンプトを立ち上げて、Chromeを「--user-data-dir」指定して起動する。 枠内をクリックするとソースがクリップボードにコピーされます "C:\Program Files\Google\...

C#でSeleniumをやめてPlaywrightを使ってみた3

イメージ
Playwright Inspectorで自動コード生成できるみたいよ テスト用プロジェクトの作成 pwshのインストール Playwright Inspectorの設定 実行、操作の記録 デバッグトレースを試す Inspectorの実際(追記 2022/5/10) Playwright Inspectorで自動コード生成できるみたいよ 前回 、InfoseekのトップページにログインするコードをDevToolsで頑張ってやる方法を試してみたが、もっと簡単な方法がある。 ま、当たり前かもしれないけど、自動コード生成ツールを使う方法ね。 と、いうわけで今回は Playwright Inspector の使い方のはなし。 Playwright Inspector はブラウザの操作を記録して、C#、Python、 node.jsなどのスクリプトを自動生成してくれるツール。単純にそれだけではなく、作ったコードをプログラミングプラットフォームのようにデバッグ実行も可能で、ステップトレースできてしまうという、超便利なツール。 Seleniumとかでもこういうツールあったみたいだけど、自分は全く使ってなくて、もっぱらDevToolsと比較にらめっこしていたという、超原始人でした。 と、いうことで以下の手順で試してみよう。 ・テスト用のプロジェクトを用意して、デバッグビルドする。 ・pwshのインストール ・Playwright Inspectorの設定 ・実行、操作の記録 ・デバッグトレースを試す テスト用プロジェクトの作成 テスト用のプロジェクトを用意して、デバッグビルドする。 とりあえず、ブラウザ開くだけのプロジェクトを用意する。 前回作ったものの最小限で良いけど、せっかく作ったので使えるところは使って。NuGetでMicrosoft.Playwrightをインストールしてブラウザを立ち上げるコードを書く。プロジェクト名は今回は「Playwrightテスト2」で作っている。 枠内をクリックするとソースがクリップボードにコピーされます using System; using System.Collections.Generic; using System.ComponentModel; usi...

C#でSeleniumをやめてPlaywrightを使ってみた2

イメージ
起動時タブが2つ開くのをなおす 起動時複数タブが開く設定の時の動作 ブラウザを閉じたら、アプリも終了させるようにする 新しいタブを開く、閉じる 指定したタブにフォーカスする ページのスクリーンショットを試す 自動処理を作ってみる(想定するページの動き) 自動処理を作ってみる(トップページ) 自動処理を作ってみる(ユーザーIDの入力) 自動処理を作ってみる(パスワードの入力) 自動処理を作ってみる(まとめ) 起動時タブが2つ開くのをなおす 前回 、立ち上げ時に2つタブが開き、2つ目のほうに指示したURLのページが表示されるという現象が起きた。 枠内をクリックするとソースがクリップボードにコピーされます var ページ = await ブラウザコンテキスト.NewPageAsync(); 理由は↑この行らしい。NewPageしているので、起動時にabout:blankのほかに、新しいページを開こうとしているということ。Chromeではかならず立ち上げ時に何らかのページはある。 枠内をクリックするとソースがクリップボードにコピーされます var ページ = ブラウザコンテキスト. Pages[0] ; と、いうことで、単純にPagesの配列の[0]は保証されているんではないか。 はい、うまくいきました。 起動時複数タブが開く設定の時の動作 あとは、Chromeの設定によっては最初から複数タブが開かれるときがある。 起動時の設定で、前回開いていたページを開くとか、特定のページセットを開くを設定している場合。上ではbingとか、yahooを開いたまま前回のページを開く設定で終了して、再立ち上げしてみる。 最初は、閉じる前のページ+about:blankのタブが追加されて開き、about:blankにフォーカスが当たっている状態だった。yahoo.comの読み込み終了までしばらく待ったかと思ったら、yahoo.comのタブがgoogle.comに移動した。 これは…Pages[]って左のタブから順番ではない? ページ.GotoAsync()のあとに以下を付け加えて同じ状況を再現してみる。 枠内をクリックする...