DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
NomalDataGridViewでAlt+Enterで改行したい(2) | Nomal全角シフト中にアクセスキーが効かない(5) | NomalDataAdapter.Updateで構文エラー(6) | Nomal抽象クラスで実装したクラスの情報を知る(3) | Nomal画面遷移(モーダルとモードレス)(2) | NomalProcessクラスからbatファイル実行後、KILLできない(2) | NomalGetDirectoriesでルートを指定するとエラーになる(3) | Nomal兆億万表記の文字列を数値に変換できる?(3) | NomalLinqにおける明示的型指定の方法(3) | Nomal2つのradの数値から1つの角度を求めるコードを改善できますか?(C++)(2) | Nomalコンソールアプリで、WebView2の利用(2) | NomalEntity Frameworkは、使えるか?(2) | Nomalデータベースからのテーブル名一覧の効率的な取得方法(3) | NomalC#のlong型でオーバーフローになる(2) | Nomal正規表現のパターン表記方法(2) | NomalWebView2によるスクレ―ピング(4) | Nomalこういた物を作れますか?(2) | Nomalツールボックスにtableadapterが表示されない(1) | NomalC# Chart X軸上のグラフ表示(3) | NomalVB.NETでBluetoothデバイスの電池残量を取得する方法(3) | Nomalクリスタルレポート 明細部のサブレポート(0) | Nomal重なったPictureBox同士を透過する方法(7) | NomalWindowsフォームデザイナについて(3) | Nomalvb.netでExcelファイル操作(7) | NomalVB.NETからcmdでpingを実行した時の結果(5) | Nomalvb.netでのExcelファイルそうさ(2) | Nomalキーボード+バーコードでキーボード入力を無効にしたい(6) | NomalVB2022でクリスタルレポートが開けない(2) | Nomalファイルとして配置したマニフェストを優先したい(2) | NomalTabPageの背景色(5) | NomalC#でJpeg圧縮のTiffファイルを作成したい(4) | Nomalエクセルのみ監視ができない(2) | NomalDataGridViewのVirtualModeを有効した場合の実装方法(4) | NomalExcelの数値 -> 日付みたいな関数?(2) | Nomaljumbo icon(256x256)が存在するか知る方法(6) | NomalDrawstringでの透過文字作成(3) | NomalSpinWait()を使う理由(2) | Nomalantecedentってなんですか?(2) | Nomalワンタイムパスワードのサイトに自動ログインしてアクセストークンを得る(3) | Nomalstyle.displayだと効率悪いから違うやり方をしたいです。(5) | Nomalテーブルを順番通りに直すプログラムを外部で読み込めるようにしたいです。(4) | NomalJSONの複雑な入れ子内部の値を取りたい。(3) | Nomalグリッド表示レコードをJSONに変換(5) | Nomalシステム時計の設定(3) | NomalSeleniumで開いているページのTableを編集したい(5) | Nomalソケット通信入門 ひらがな(4) | NomalVisual Basicでエラーが出る(3) | Nomalインストーラにて、ローミングフォルダにファイルを配置したい(0) | NomalRGB値の所得(2) | Nomal時間変数(文字列)の扱い(4) | NomalVB.net からAccessDBへの接続(2) | Nomal画像のスクロール(6) | Nomalタイマーの一括処理(6) | NomalTreeViewとDataGridViewのスクロールを同期(シンクロ)させたい(4) | NomalTreeViewの現在位置とDataGridViewの現在位置を合わせたい(7) | NomalPictureBoxの画像を連続保存(11) | NomalDataGridViewの特定セルにボタンを配置する方法(5) | Nomalフォームのリサイズ時にDataGridViewが再描画されない(4) | NomalテキストボックスのValidatingイベントよりも先に発生するボタン発生イベントは何でしょう?(2) | NomalPDFをフォーム上で表示させる方法につきまして(4) | NomalDataGridViewの行ヘッダーに行番号を表示した時のエラー(4) | Nomal継承元フォームで各フォームのボタン動作を検知したい(3) | Nomalラジオボタンの一括設定(7) | NomalWindowsエクスプローラからのドラッグ&ドロップ(2) | NomalRichTextBoxのテキストをpictureBOXへ(12) | Nomalクリックイベントでexeを作成できるか(2) | Nomal作成した白黒画像をWordに貼り付けてから「図として保存」(8) | Nomalアセンブリ情報が載らない(1) | Nomal先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える(6) | Nomalc#で日付型の定義の仕方で質問があります。(2) | NomalExcel Com オブジェクトの増殖(13) | Nomal二次元マップから値の取得(1) | NomalアプリでHDMIへ出す解像度を変えたい(4) | Nomal列車の時間ごとの位置情報を表示したいです。(2) | Nomal画像の中心を基点に回転(4) | NomalDataGridViewのドロップダウンリストの表示と選択後の値を分けたい(1) | NomalVB.NetでVB6.0と同じFontを指定しても同様に印刷されない(9) | NomalタッチキーボードでIMEを自動で切替えたい(6) | NomalVSTOによるエクセルアドインのインストーラーでのアップデート(1) | NomalMP4動画を再生する方法について(5) | NomalUrlにアクセスするとダウンロードされるファイルを捕まえる(2) | NomalLableのカラー色を文字変数から変更したい(5) | NomalLabelで文字単位の背景色(7) | NomalTEXTBOXのプロパティを文字列に(7) | Nomalタブレット等でスワイプによるスクロールを実装(2) | NomalPDFをフォーム上で表示させる方法につきまして(6) | NomalChart X軸上の描画を切り替えたい(0) | NomalRichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い(3) | Nomal特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因(6) | NomalASP.NET WebApi内でXmlReader.Create(url)がタイムアウトする(4) | NomalDatagridViewでファンクションキーを止めたい(5) | Nomal表示動作が重くなる(3) | Nomalbitmapを複数スレッドで処理したい(2) | NomalLoadOptionのパラメータの意味(3) | Nomalフォーム背景のみを半透明にしたい(5) | Nomal読み出し元フォームの位置取得方法(2) | Nomalコンストラクターに続く{}の意味(2) | Nomal1行で書くことできますか?(3) | NomalCommandBuilderによって作られるCommandTextの内容(5) | Nomalvb.netで7zの圧縮・解凍をしたい。(2) |



■記事リスト / ▼下のスレッド
■35535 / 親記事)  WebView2によるスクレ―ピング
□投稿者/ Wan 付き人(81回)-(2023/11/10(Fri) 17:06:14)
  • アイコン環境/言語:[VisualBasic2019 Windows10 Basic Framework4.7.2] 
    分類:[.NET] 

    WebView2を使って、スクレ―ピングを考えています。クラス名でTableを抽出しtrとtdで構成された表をJavaScriptで二次元配列に代入し、returnで返してたつもりです。が、DataTableの変数で受け取れません。途方に暮れています。どなたか?詳しい方いらっしゃいましたら教えて頂けないでしょうか?
    スクレ―ピングについては、複数ページに渡るので、WebView2_NavigationCompletedが発生するたびに、DataTableに追加し続けるコードにしたいのが最終目標です。

    Dim DataTable_Scraping As New DataTable
    DataGridView1.DataSource = DataTable_Scraping

    Private Async Sub WebView2_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles WebView21.NavigationCompleted
    Dim js As New System.Text.StringBuilder
    js.AppendLine("const hyou=[];let i=0;")
    js.AppendLine("var TrElems = document.getElementsByClassName('Tableが含まれるクラス名')[0].getElementsByTagName('tr');")
    js.AppendLine("Array.prototype.forEach.call(TrElems, function(TrElem) {")
    js.AppendLine(" hyou.push([]);")
    js.AppendLine(" var TdElems = TrElem.getElementsByTagName('td');")
    js.AppendLine(" Array.prototype.forEach.call(TdElems, function(TdElem) {")
    js.AppendLine(" hyou[i].push(TdElem.textContent);")
    js.AppendLine(" });")
    js.AppendLine(" i=i+1;")
    js.AppendLine("});")
    js.AppendLine("return hyou;")

    DataTable_Scraping = Await WebView21.ExecuteScriptAsync(js.ToString())
    '読み込み結果を判定
    If e.IsSuccess Then
         ‘ここで次のページへの移動用の要素をクリックしている。動作確認済み
         ‘getElementsByClassName('****')の要素数が1の場合は、終わり
    Await WebView21.ExecuteScriptAsync(
    "document.getElementsByClassName('****')[1].getElementsByTagName('a')[0].click();")
    Else
    Console.WriteLine(e.WebErrorStatus)
    End If
    End Sub

違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■35536 / ResNo.1)  Re[1]: WebView2によるスクレ―ピング
□投稿者/ Wan 付き人(82回)-(2023/11/10(Fri) 17:16:18)
  • アイコン追伸

    return hyou;の部分を
    console.table(hyou)とすると
    Edgeの開発者ツール-コンソールで動かして表として表示されますので、
    JavaScript上では、表形式になっているようです。

    また、varをletやconstに変えると、Edgeのコンソール上でも、上手く動かない理由も教えて頂ければ幸いです。



違反を報告
引用返信
■35537 / ResNo.2)  Re[2]: WebView2によるスクレ―ピング
□投稿者/ Hongliang 大御所(646回)-(2023/11/11(Sat) 18:36:02)
  • アイコンVisual Studio 2015から複数行リテラルを扱えるようになったので、文字列が固定であれば変にStringBuilder使うよりリテラルで書いた方が見やすいしパフォーマンスも良いです。

    ExecuteScryptAsyncで実行されるスクリプトは、最後の式を評価してそれを返値とするような挙動になります。
    なので、変数hyouの内容を返値としたいのであれば、単に変数を記述します。
    × return hyou;
    ○ hyou;
    あるいは、以下のように無名関数の呼び出しに全体を変換する方法もあります。
    js = "(function() {
    const hyou = [];
    色々処理する;
    return hyou; })()"

    https://learn.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2.executescriptasync?view=webview2-dotnet-1.0.2088.41
    ExecuteScriptAsyncの返値(Await結果)は文字列、String型です。
    当然ながらDataTable型の変数に直接代入することはできません。
    この文字列はスクリプトの結果をJSON.stringify()したJSON形式なので、一般的にはデシリアライズして.NET上のオブジェクトとして扱います。
    JSONのデシリアライザとしては、System.Text.JsonでもJson.NETでもお好みのものを使えばいいでしょう。.NET 4.xで組み込みなのはDataContractJsonSerializerというのがありましたっけ。
    ざっと見た様子では、JavaScript上では「「文字列の配列」の配列」のようなので、VB上ではString型の配列の配列、つまり String()() 型としてデシリアライズできます。
    DataTableへはこのString()()から手動で移し替えてください。

    > また、varをletやconstに変えると、Edgeのコンソール上でも、上手く動かない理由も教えて頂ければ幸いです。
    ExecuteScriptAsycで渡したJavaScript内で定義したりした変数はそのまま残ります。
    constやletで宣言した変数は再宣言不可能なので、もう一度ExecuteScriptAsyncしたりするとエラーになります。
    ちなみにconstにせよletにせよブロックスコープなので、上の方で示した無名関数を使う場合、
    (function() { const hyou = []; ... })()
    このhyouはこの無名関数内でのみ有効なので、再度呼び出しても問題ありません。

    何度も使用するJavaScript関数なら、
    CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync
    で登録しておけば便利です。
違反を報告
引用返信
■35538 / ResNo.3)  Re[1]: WebView2によるスクレ―ピング
□投稿者/ 魔界の仮面弁士 大御所(1566回)-(2023/11/11(Sat) 22:04:19)
  • アイコン
    No35535に返信(Wanさんの記事)
    > スクレ―ピング
    「スクレーピング」が
    「スクレ―ピング」になっていて
    似非日本語感を微妙に覚えるなど(
    
    
    > WebView2を使って、スクレ―ピングを考えています。
    RSS をクロールするだけでで要件を満たせるなら、
    XDocument だけで簡単に済むのですけれどね…。
    ひとまず、ここの掲示板の RSS を拾ってみた例。
    
    
    Imports System.Xml.Linq
    Public Class Form1
        Private WithEvents dgv As DataGridView
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            dgv = New DataGridView() With {.Dock = DockStyle.Fill, .ReadOnly = True, .AllowUserToAddRows = False}
            Controls.Add(dgv)
            Dim doc = XDocument.Load("https://dobon.net/cgi-bin/vbbbs/rss.cgi?ver=2.0")
            Dim items = From item In doc...<item>
                        Select item.<title>.Value,
                            item.<link>.Value,
                            pubDate = Date.Parse(item.<pubDate>.Value),
                            item.<description>.Value
            dgv.DataSource = items.ToArray()
        End Sub
    End Class
    
    
    こちらは、Web ページからスクレイピングする場合。
    
    Imports Microsoft.Web.WebView2.Core
    Imports Microsoft.Web.WebView2.WinForms
    Public Class Form1
        Private WithEvents wv As WebView2
        Private WithEvents ds As DataSet
        Private WithEvents tbl As DataTable
        Private WithEvents dgv As DataGridView
    
        Private Async Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            ds = New DataSet()
            tbl = ds.Tables.Add("dobon")
            wv = New WebView2 With {.Visible = False}
            dgv = New DataGridView() With {.Dock = DockStyle.Fill, .ReadOnly = True, .AllowUserToAddRows = False}
            dgv.DataSource = tbl
    
            tbl.PrimaryKey = New DataColumn() {tbl.Columns.Add("Id", GetType(Integer))}
            tbl.Columns.Add("Solved", GetType(Boolean)).DefaultValue = False
            tbl.Columns.Add("Title")
            tbl.Columns.Add("Category")
            tbl.Columns.Add("FirstAuthor")
            tbl.Columns.Add("FirstPostAt")
            tbl.Columns.Add("LastAuthor")
            tbl.Columns.Add("LastPostAt")
            Controls.AddRange(New Control() {dgv, wv})
    
            Await wv.EnsureCoreWebView2Async()
            'wv.CoreWebView2.Navigate("https://dobon.net/cgi-bin/vbbbs/rss.cgi?ver=2.0")
            wv.CoreWebView2.Navigate("https://dobon.net/cgi-bin/vbbbs/cbbs.cgi?H=F&no=0")
        End Sub
        Private Async Sub wv_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles wv.NavigationCompleted
            Dim js = "(()=>{
                const table=[];
                document.querySelectorAll('TABLE.topiclist').forEach(t=>{
                    [...t.rows].slice(1).forEach(tr=>{
                        const cols=[...tr.cells];
                        const d=[];
                        d[0]=cols[1].querySelector('small>font').innerText.substr(1)*1;
                        d[1]=cols[6].innerText.includes('済');
                        d[2]=cols[1].firstChild.innerText;
                        d[3]=cols[0].innerText;
                        d[4]=cols[3].innerText;
                        d[5]=cols[1].querySelector('small').lastChild.substringData(5,16);
                        d[6]=cols[4].innerText
                        d[7]=cols[5].innerText;
                        table.push(d);
                    });
                });
                return table;
            })();"
    
            Dim result = Await wv.CoreWebView2.ExecuteScriptAsync(js)
            Dim ary = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Object()())(result)
            ds.EnforceConstraints = False
            Array.ForEach(ary, AddressOf tbl.Rows.Add)
            ds.EnforceConstraints = True
        End Sub
    End Class

違反を報告
引用返信
■35539 / ResNo.4)  Re[3]: WebView2によるスクレ―ピング
□投稿者/ Wan 付き人(83回)-(2023/11/12(Sun) 10:51:31)
  • アイコンHongliang様
    いつも、丁寧なご指導ありがとうございます。

    ご指摘のように、
    retrn hyou → hyouにしたら返り値が取れました。

    教えて頂いた内容を熟読して、取得した返り値を加工していきたいと思います。

    ありがとうございました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35532 / 親記事)  こういた物を作れますか?
□投稿者/ 桜井 一般人(1回)-(2023/10/27(Fri) 22:08:14)
  • アイコン環境/言語:[python windows10 anaconda] 
    分類:[.NET] 

    プログラミングはPythonに少しやりましたが、ものにして下りません。
    webサイトから情報を集めるスクレピングがあると知りましたが、
    特定の属性(書いている話題や年齢性別)を持っているSNSユーザー
    のアカウントをまとめて集める事は可能なのでしょうか?よろしく
    お願いします。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35533 / ResNo.1)  Re[1]: こういた物を作れますか?
□投稿者/ Azulean 大御所(540回)-(2023/10/28(Sat) 01:33:18)
  • アイコンNo35532に返信(桜井さんの記事)
    > webサイトから情報を集めるスクレピングがあると知りましたが、
    > 特定の属性(書いている話題や年齢性別)を持っているSNSユーザー
    > のアカウントをまとめて集める事は可能なのでしょうか?よろしく
    > お願いします。

    そういった大量のデータの抜き出し行為は技術的に可能であっても、多くの SNS サービスで禁止事項に設定していると思いますので、無理だと考えてください。
違反を報告
引用返信
■35534 / ResNo.2)  Re[2]: こういた物を作れますか?
□投稿者/ 桜井 一般人(2回)-(2023/10/28(Sat) 19:49:23)
  • アイコン
    >
    > そういった大量のデータの抜き出し行為は技術的に可能であっても、多くの SNS サービスで禁止事項に設定していると思いますので、無理だと考えてください。

    ありがとうございます。勉強に成りました。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35527 / 親記事)  ツールボックスにtableadapterが表示されない
□投稿者/ mura 一般人(1回)-(2023/10/18(Wed) 12:39:35)
  • アイコン環境/言語:[C#] 
    分類:[.NET] 

    .NET6でフォームアプリを作成しています

    データセットデザイナで、tableadapterを作成したのですが、ツールボックスにtableadapterが表示されません。

    行ったこと:
    元々.NET Framework 4.8で作成したプロジェクトのファイルを
    .NET6でプロジェクトを作ってファイルをそのままコピーしました。

    .NET Framework 4.8で作成したtabeleadapterはツールボックスに表示されています。
    少々無茶な以降の仕方をしたことが原因でしょうか?
    原因分かる方いらっしゃればよろしくお願いします

違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■35528 / ResNo.1)  Re[1]: ツールボックスにtableadapterが表示されない
□投稿者/ Azulean 大御所(539回)-(2023/10/18(Wed) 21:30:02)
  • アイコンNo35527に返信(muraさんの記事)
    > .NET6でフォームアプリを作成しています
    >
    > データセットデザイナで、tableadapterを作成したのですが、ツールボックスにtableadapterが表示されません。

    残念ながらその手の仕組みは .NET Framework のみのサポートです。
    .NET 6 やそれ以降では利用できません。

    この方が試されたように自分でがりがり書くならできるかもしれません。

    http://surferonwww.info/BlogEngine/post/2021/12/04/create-winforms-application-using-visual-studio-2022-net-6.aspx
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-1]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35523 / 親記事)  C# Chart X軸上のグラフ表示
□投稿者/ Terasa 一般人(1回)-(2023/10/13(Fri) 15:28:37)
  • アイコン環境/言語:[Windows10 /Visual Studio 2022 C#/ .NetFramework4.8.09037] 
    分類:[.NET] 

    C# Chartコントロールを使用しています。
    折れ線グラフでX軸を時間(秒)、Y軸を温度(℃)としています。
    折れ線グラフは水色
    X軸とY軸ともに白色
    0秒  0℃
    10秒 0℃
    20秒 0℃
    30秒 0℃
    とした場合、X軸上にグラフ水色が表示してほしいのですが、白色の表示のままです。X軸上に水色表示する方法を教えて下さい。
    お手数をおかけしますが、よろしくお願いします。
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■35524 / ResNo.1)  Re[1]: C# Chart X軸上のグラフ表示
□投稿者/ shu 大御所(501回)-(2023/10/14(Sat) 22:03:08)
  • アイコンどのように指定されていますでしょうか?

    該当SeriesのBorderColor, Color, BorderWidthなど調整してみてはどうでしょうか?
違反を報告
引用返信
■35525 / ResNo.2)  Re[2]: C# Chart X軸上のグラフ表示
□投稿者/ Terasa 一般人(2回)-(2023/10/16(Mon) 15:45:06)
  • アイコンNo35524に返信(shuさんの記事)
    > どのように指定されていますでしょうか?
    >
    > 該当SeriesのBorderColor, Color, BorderWidthなど調整してみてはどうでしょうか?
    shuさん返信ありがとうございました。
    Color Cyan
    BorderWidth 2
    上記設定でX軸上にCyan線が描画することを確認しました。
    お手数をおかけしますが、BorderWidth 1で描画する方法はありませんか?
    実際には複数のグラフを表示させるため、BorderWidth 1に設定しないと見づらい為です。
    よろしくお願い致します。
違反を報告
引用返信
■35526 / ResNo.3)  Re[3]: C# Chart X軸上のグラフ表示
□投稿者/ shu 大御所(503回)-(2023/10/16(Mon) 22:36:27)
  • アイコンNo35525に返信(Terasaさんの記事)

    用意されたプロパティによる描画はそれ以上は無理だと思います。
    描画を自分で行う必要がありそうです。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▲上のスレッド
■35519 / 親記事)  VB.NETでBluetoothデバイスの電池残量を取得する方法
□投稿者/ ぱんだ 一般人(4回)-(2023/09/17(Sun) 09:30:48)
  • アイコン環境/言語:[環境:Windows11 Pro 64bit 使用言語:VB.NET(Visual Studio 2022)] 
    分類:[.NET] 

    いつもお世話になっております。
    
    VB.NETでBluetoothデバイスの電池残量を取得する方法を探しているのですが、
    情報が見つからず・・・。
    なにかサンプルコード等ありますか?
    
    指定のワイヤレスイヤホンの電池残量を、タスクトレイへ数値表示したいです。
    
    Windowsの設定画面には電池残量表示されるんですが、深い階層にあり毎回見る
    のが大変で。
    
    よろしくお願いします
    
    環境  :Windows11 Pro 64bit
    使用言語:VB.NET(Visual Studio 2022)
    

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■35520 / ResNo.1)  Re[1]: VB.NETでBluetoothデバイスの電池残量を取得する方法
□投稿者/ KOZ 一般人(29回)-(2023/09/19(Tue) 00:28:26)
  • アイコンNo35519に返信(ぱんださんの記事)
    > 指定のワイヤレスイヤホンの電池残量を、タスクトレイへ数値表示したいです。

    作った人がいるみたいです。

    https://nazenaninadesico.hatenablog.jp/entry/2021/07/17/085847

    プログラムは以下からダウンロードできます。

    http://www.moreread.net/

    .NET Framework の Windows Forms で出来ていますね。
    単独なら HttpClient で通信、Bluetooth Battery Monitor が入っていれば API を呼び出すといったことをしているようです。
    もっとも私は機器をもっていないので動作確認はできませんでしたが・・・

    Bluetooth Battery Monitor
    https://www.bluetoothgoodies.com/

    その他のアプローチとしては Windows.Devices.Bluetooth を使う方法があるようです。
    このライブラリについては、UWP で使用することが前提なので

    「デスクトップ アプリで Windows ランタイム API を呼び出す」
    https://learn.microsoft.com/ja-jp/windows/apps/desktop/modernize/desktop-to-uwp-enhance

    を参照するといいかもしれません。(私も良くわからないので)

違反を報告
引用返信
■35521 / ResNo.2)  Re[2]: VB.NETでBluetoothデバイスの電池残量を取得する方法
□投稿者/ ぱんだ 一般人(5回)-(2023/09/19(Tue) 18:13:41)
  • アイコン
    KOZさん
    返信ありがとうございます。
    プログラミング初めたての私にとっては難しい内容で理解及ばずでした。

違反を報告
引用返信
■35522 / ResNo.3)  Re[3]: VB.NETでBluetoothデバイスの電池残量を取得する方法
□投稿者/ kiku 一般人(2回)-(2023/09/19(Tue) 18:37:37)
  • アイコンNo35521に返信(ぱんださんの記事)
    > KOZさん
    > 返信ありがとうございます。
    > プログラミング初めたての私にとっては難しい内容で理解及ばずでした。

    KOZさんが提案しているのは、プログラミングしなくても
    利用する方法を含んでいます。

    方法1
    下記を試してみて、動作して満足できるなら、これを使う。
    Bluetooth Battery Monitor
    https://www.bluetoothgoodies.com/

    方法2
    下記を試してみて、動作して満足できるなら、これを使う。
    http://www.moreread.net/apps/download/BluetoothBatteryGadget.zip

    上記はできているものをそのまま使う提案。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]






Mode/  Pass/


- Child Tree -