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

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

記事リスト ( )内の数字はレス数
NomalWindowsMediaPlayerで次のURLを指定しても反映されない。(2) | Nomal"−"を縦書きにしたい(9) | Nomal.NET6.0 のWinFormにWPFのユーザーコントロールを配置したい(4) | NomalDataGridViewの列にコンボボックスを表示する(2) | Nomalデータグリッドビューの特定の列ヘッダの色(2) | NomalVB-Report10→11への移行(4) | Nomalデフォルトプリンタの用紙向き変更(0) | NomalASP.net デバッグ時の .js ファイルの変更が反映されない(1) | NomalpictureBoxとlabelの重ね合わせ(2) | NomalWindowsエクスプローラへのドロップ先フォルダの取得(4) | Nomal入力値を元に描画させたい(2) | NomalVBで開いたExcelでのイベントを取得するには(4) | NomalデザイナでSystemColorsのような色一覧から選択できるようにしたい(0) | NomalTaskの入れ子の待ち方2(4) | NomalTaskの入れ子の待ち方(5) | NomalVisualStudio2019 以降の検索ダイアログが正常に動作しない(2) | NomalUsingの使い方が間違っている?(4) | Nomal//./の意味は?(2) | Nomalバイナリーファイルの結合と分解(2) | NomalVSTOとWebView2の共存って可能?(2) | Nomal表の最後の行の下にDropできない(1) | NomalCookieの勉強を始めました。(2) | NomalDataGridViewの特定セルにボタンを配置する方法(3) | NomalDataGridViewのセル結合部分にボタンを表示する方法(3) | Nomal複数のPageに分かれる場合のスクレ―ピング(6) | NomalTask.Runの使い方(4) | NomalPictureBox のサイズを設定する(2) | NomalProcessクラスMainModuleプロパティでアクセス拒否(3) | NomalLINQでControlsをEnable=Falseに設定(3) | Nomalランダムファイルを高速化させたい(5) | Nomalプロセス間の通信(相互)(2) | NomalC#をVBに変換する方法が分かりません(1) | NomalPictureBoxに動的に画像を表示する(1) | NomalYahooのHPで、検索文字の入力ができない(3) | NomalWebView2のEncodeの問題?(5) | NomalWinFormでChromeをSeleriumで操作しているが、Closeの仕方(2) | Nomal印刷部数の固定(1) | NomalWinformでのDataGridView Comboboxのデータ追加削除が出来ない(3) | Nomalプログラムについて。(2) | Nomal拡張子関連付けのサンプルで削除時 例外発生(1) | Nomalユーザーコントロールをフォームで使用した時のエラー(6) | NomalマルチページTIFFをSelectActiveFrameでページ指定するとエラーが発生する(12) | Nomal画像の大きさを取得するには(4) | Nomalファイルがドライブ内で占有する容量(3) | NomalC#FormのXボタンイベントで、e.Cancel が使えない(2) | NomalAxWindowsMediaPlayerでプレイリストの途中から再生するには(2) | NomalWebView2でJavaScriptの実行の終了イベント(4) | NomalDataTableのDataRowVersion毎のInt型値の比較がうまくいかない(5) | NomalGPTかMBRを判断したい(2) | Nomalアセンブリ言語について。(1) | Nomalマクロについて。(3) | NomalDLL内のスレッドからイベントを発行すると、受信したフォームでラベルが更新できない(3) | Nomalアセンブリ言語について。(20) | Nomalシステムコールについて。(2) | Nomal Parallel.Forで思ったより早くならない(5) | NomalAngleSharp.Scripting.JavaScriptの使い方(2) | NomalDataAdapterで2回目のUpDateが出来ない(6) | NomalForm1イベントの選択が出来なくなりました。(9) | Nomalデザーナー時の継承先formのサイズ(0) | Nomalコンソールではなくテキストボックスに文字列を出力したい(7) | NomalAngleSharpのクエリー文2(4) | Nomalコーディングについて。(3) | Nomaldll修正時、それを参照しているexeのリビルド要否(2) | NomalAngleSharpのクエリー文(2) | Nomalデフォルトプロパティを使いたい(6) | Nomalテキストボックスでの制御(7) | NomalUSBカメラをピクチャボックスに表示(3) | Nomal二次元配列内の文字の置き換え(3) | Nomalcolor型を引数にする方法(2) | NomalVSプロジェクト作成方法の違いによる、プラグイン機能を持つアプリケーションへの影響について(6) | NomalInputボタンが押せない(4) | NomalWebBrowserのDocumentCompletedイベントの切り替え(3) | NomalEndConnectでのエラー(2) | Nomalボタンクリック時のLeaveイベントについて(1) | Nomalエクセルのデータを配列に読込んだ時の配列要素番号について(2) | Nomalorder by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番(2) | Nomal非同期プログラミング時のConsole.WriteLineの動作(4) | NomalC#からストアドにDecimalを渡すと値が丸められる(4) | Nomalインスタンスの型を文字列で指定したい(2) | NomalSendKeys.Sendが効いていない(2) | Nomal他のプロジェクトのコントロールがツールボックスに表示されない(3) | Nomal複数のテキストボックス間のTextChangedイベントが相互干渉しないようにしたい(9) | Nomal呼び出し元によってWebApi側の処理速度に差が出る(1) | NomalPanelのDock=Topだとうまくいかない。代替案。(2) | Nomal.NetでのIPv6の比較(5) | Nomal.Net 5.0 におけるDLL参照問題?(7) | Nomal追加コントロールのtabindex値を既存の間に設定する方法(1) | NomalVB.net非同期処理でtextboxに出力したい(2) | NomalToolStripStatusLabelの空白部分を埋めたい(2) | NomalOracle への OleDb 接続に失敗する(3) | Nomal正規表現で株価を取得したい(1) | NomalVB.NETで作成したDLLをVB6.0から呼び出す(3) | Nomalデザイナで編集・チェックアウトキャンセルすると(3) | Nomal親スレッドへ処理の移譲(7) | NomalクラスによるGetBytes関数のエンディアンの違い(2) | Nomal[VB.NET]Excelのプロセスが終了しない(2) | NomalC#をVBに変換した際の強制的な参照渡し(2) | Nomal.Net 5.0 におけるServiceControllerの代替クラス(3) | Nomal新たにshowしたフォームでのボタンのクリック(5) | NomalVB.NETからRDゲートウェイを利用したリモートデスクトップ接続(4) |



■記事リスト / ▼下のスレッド
■34699 / 親記事)  order by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番
□投稿者/ ころ助 一般人(1回)-(2021/04/25(Sun) 16:15:44)
  • アイコン環境/言語:[VB2017 SQLServer2016] 
    分類:[.NET] 


    ちょっと細かいところは省略してしまっていますが、

    Dim sql As String = "select * from tableName1 order by columnName1"
    adapter = New SqlDataAdapter()
    adapter.SelectCommand = New SqlCommand(sql, connection)
    adapter.Fill(ds)
    For Each row As DataRow In ds.Tabels(0).Rows
    Console.WriteLine(row("columnName1").ToString)
    Next

    のような感じで、テーブルからデータを抽出(order byでソート)していて
    それをFillメソッドでDataSetにセットしています。
    そのDataTableの行をForEachで1レコードずつ処理しているのですが、
    ちょっと疑問に思いましたので、質問させてください。

    今のところ、問題なく動いてそうなので、問題ないとは思うのですが、
    ForEachで取得した行はソートされた順番で取得される
    という事は保証されているのでしょうか?

    仮に、order by でソートした順番で 行(row)が取得できない
    という事はありえるのでしょうか?
    順番に処理したい場合、この書き方で問題ないでしょうか?


違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34700 / ResNo.1)  Re[1]: order by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番
□投稿者/ shu 大御所(493回)-(2021/04/26(Mon) 12:29:24)
  • アイコンNo34699に返信(ころ助さんの記事)

    > For Each row As DataRow In ds.Tabels(0).Rows
    ds.Tabels(0).Rows
    としている分には問題ないです。
    ds.Tables(0).Select("条件","並び順")
    をおこなった場合は第2パラメータを省略せず並び順を
    指定した方が無難です。
違反を報告
引用返信
■34705 / ResNo.2)  Re[2]: order by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番
□投稿者/ ころ助 一般人(2回)-(2021/04/28(Wed) 20:32:14)
  • アイコンありがとうございました。
    安心しました。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34694 / 親記事)  非同期プログラミング時のConsole.WriteLineの動作
□投稿者/ Wan 一般人(1回)-(2021/04/11(Sun) 10:41:06)
  • アイコン環境/言語:[VB.net VisualStudio2019] 
    分類:[.NET] 

    下記のコードを複数回実行した結果が次のようになりました。(4回実行した結果)
    1回目結果: End
    2回目結果:2 1 4 5 6 7 8 9 10 3 1 4 End
    3回目結果:5 6 7 8 3 9 2 10 2 End
    4回目結果:7 9 1 4 10 6 3 5 8 1 2 4 3 6 5 7 8 10 9 End

    ※質問です。

    @ 1回目の実行で、08行めのConsoleWrite文が機能しません。なぜですか?

    A 2回目以後では、同じ数値が重複して表示されます。前回の残骸が表示されているように思いますがなぜですか?(キーバッファに残っているから?)

    B 12行目をWriteLineからWriteに変えると、一切表示されなくなります。行終端記号の出力の有無が原因でしょうか?

    C MicroSoftのDocsによるとConsoleクラスは、スレッドセーフとなっていますが、08行目のWrite文が欠落する理由はなんでしょうか?

    非同期プログラムの勉強を始めたばかりで、判らないことばかりなので、あまりにも初歩的な質問で申し訳ありません。
    どなたか?詳しい方いらっしゃいましたら教えてください。
    宜しくお願いいたします。

    01:Private Sub Button1_Click(sender As Object, e As EventArgs)
                       Handles Button1.Click
    02: Dim tasks As New List(Of Task)()
    03: For ctr As Integer = 1 To 10
    04: Dim baseValue As Integer = ctr
    05: tasks.Add(Task.Factory.StartNew(
    06: Sub(b)
    07: Dim i As Integer = CInt(b)
    08: Console.Write("{0} ", i)
    09: End Sub, baseValue))
    10: Next
    11: Dim continuation = Task.WhenAll(tasks)
    12: Console.WriteLine(" End")
    13:End Sub
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34695 / ResNo.1)  Re[1]: 非同期プログラミング時のConsole.WriteLineの動作
□投稿者/ Hongliang 大御所(599回)-(2021/04/11(Sun) 22:32:11)
  • アイコン
    確認ですが、
    ・アプリケーションのプロジェクトはWindows Formsアプリケーション
    ・デバッグ実行中
    ・Console.Write/WriteLineの出力はViual Studioの出力ウィンドウに出ている
    ということでいいでしょうか。
    
    > B 12行目をWriteLineからWriteに変えると、一切表示されなくなります。
    >     行終端記号の出力の有無が原因でしょうか?
    
    出力ウィンドウへの出力の場合、改行文字が現れない間は出力がバッファリングされます。
    
    > @ 1回目の実行で、08行めのConsoleWrite文が機能しません。なぜですか?
    
    機能はしています。
    ただ、前述のようにバッファリングされているので、まだ出力ウィンドウに表示されていない状態です。
    
    > A 2回目以後では、同じ数値が重複して表示されます。前回の残骸が表示されているように思いますが
    >  なぜですか? (キーバッファに残っているから?)
    
    1の続きになりますが、今回の実行でConsole.WriteLineによって改行文字が現れたため、
    前回までの実行でバッファリングされた状態の文字列が出力されています。
    (キー入力ではないのでキーバッファは関係ないです)
    
    > C MicroSoftのDocsによるとConsoleクラスは、スレッドセーフとなっていますが、
    >  08行目のWrite文が欠落する理由はなんでしょうか?
    
    先述の通り、欠落しているのではなく、後回しにされています。
    
    スレッドを起動するのはいくらかコストがかかるものです。
    なので、Task.Factory.StartNewを呼び出したからといって直ちにその中に書かれた処理が
    開始するわけではありません。
    さて、スレッドを起動中にも元々のスレッドの処理は継続します。
    > Dim continuation = Task.WhenAll(tasks)
    WhenAllメソッドは、「tasksの各処理が全部終わったら、完了状態となるTask」を用意しろという
    メソッドです。なので、WhenAll自体は特に何かを待つわけではありません。
    処理は継続します。
    > Console.WriteLine(" End")
    ここでEndが出力ウィンドウに渡されます。
    
    つまり、1回目のButton1_Clickでは、各Taskが起動しConsole.Writeが呼び出されるよりも先に、
    Console.WriteLineが呼び出されています。
    そのあとでConsole.Writeが順次実行されますが、先述通りこれはバッファリングされ、
    次回以降のButton1_ClickでConsole.WriteLineが行われるまでウィンドウには出てきません。
    
    1回目はEndが真っ先に出力されるのに2回目以降はいくつかその回のConsole.Writeが出力される点については、
    Task.Factory.StartNewが標準で使用するスレッドプールという仕組みに原因を求められますが、
    そこは一旦置いておいてもいいかと思います。
    
    List(Of Task)の全Taskの完了後に特定処理を実行したい場合、Task.WhenAllが返してきたTaskの完了後に
    その処理を実行する必要があります。
    以前はContinueWithを使って記述する必要がありましたが、最近は「Taskの完了後に処理をする」というのを
    手軽に書けるようになりました。
    
    Private Async Sub Button1_Click(略) 略
      ' 途中略
        Await Task.WhenAll(tasks)
        Console.WriteLine(" End")
    End Sub
    
    Asyncは「このメソッド内でAwaitキーワードを使うよ」という宣言です。
    AwaitはTaskに対して使用可能なキーワードで、
    「以降の処理を、Taskが完了した後で実行するように」という意味合いになります。

違反を報告
引用返信
■34696 / ResNo.2)  Re[2]: 非同期プログラミング時のConsole.WriteLineの動作
□投稿者/ Wan 一般人(2回)-(2021/04/12(Mon) 10:10:41)
  • アイコンNo34695に返信(Hongliangさんの記事)
    Hongliangさん 
    本当に、多くの時間を割き、丁寧なご回答ありがとうございます。ご指導頂いたことにより、次のような整理ができました。
    @ 仰る通りに出力ウィンドウに表示しています。改行がないと出力されないことを知りませんでした。
    A WhenAllがUIスレッドを止めるもの(WaitAllと勘違い)と捉えていました。
    B 今回の例では、UIスレッドを止めても問題が無かったので、awaitを使うことは考えていませんでしたが、ご指導を頂いて、awaitを使うだけで全てが解決しました。
    C キーバッファとバッファを混同して考えていました。
    D 今回教えて頂いたことにより、WhenAll,WhenAny,WaitAll,WaitAny,awaitなどについての概念が整理できました。
    今回感じたことは、園庭で、多くの幼稚園児が自由に遊んでいるのを監視するような気持で、対応する必要があるなぁ?って思いました。まだまだ、習得の道は長いと思いますが、このように上級者から丁寧な指導を得られることを幸せに感じ頑張ります。
    また、近いうちに、初歩的な質問をすると思いますが、宜しくお願い致します。
    有難うございました。


違反を報告
引用返信
■34697 / ResNo.3)  Re[3]: 非同期プログラミング時のConsole.WriteLineの動作
□投稿者/ Wan 一般人(3回)-(2021/04/12(Mon) 10:11:38)
  • アイコン解決済み
解決み!
違反を報告
引用返信
■34698 / ResNo.4)  Re[3]: 非同期プログラミング時のConsole.WriteLineの動作
□投稿者/ 魔界の仮面弁士 大御所(1329回)-(2021/04/12(Mon) 11:02:12)
  • アイコンNo34696に返信(Wanさんの記事)
    > 仰る通りに出力ウィンドウに表示しています。

    出力先が、イミディエイトや出力ウィンドウでは無くても構わないなら、
    プロジェクトの種類をコンソール アプリケーションに変更すれば、
    Console.Write でも即時出力されるようになります。

    Windows フォーム アプリケーションのままデバッグする場合は、
    Console クラスを使うのではなく、Trace クラスや Debug クラスの
    利用を検討してみてください。

    Trace や Debug であれば改行無しでも即時出力されますし、
    リスナーを差し替えれば、Console やファイル等への出力も可能です。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34689 / 親記事)  C#からストアドにDecimalを渡すと値が丸められる
□投稿者/ tomy 一般人(4回)-(2021/04/07(Wed) 14:20:28)
  • アイコン環境/言語:[Windows10/C#/VisualStudio2015/.Net Framework4.5] 
    分類:[.NET] 

    C#からストアドプロシージャ―にDecimal型の引数を渡す際、「12.1234567890123」という値なら正常に渡せますが、「1234.1234567890123」という値を渡そうとすると「1234.1234567890100」に変換されてしまいます。

    ストアドプロシージャの引数は

    @foo Decimal(19,13)

    となっており、整数6桁、小数13桁を格納できるようになっています。

    また、Management Studioからこのストアドプロシージャを呼び出した場合は「1234.1234567890123」という値を正しく渡せることを確認しています(ストアド内でテーブルにインサートする)

    C#のパラメータを作成する箇所は下記のようになっています。

    var param = new SqlParameter();
    param.ParameterName = "@foo";
    param.SqlDbType = SqlDbType.Decimal;
    param.Direction = ParameterDirection.Input;
    param.Value = "1234.1234567890123";


    Precision = 19;
    Scale = 13;

    など明示してみたりもしましたがうまくいきませんでした。

    時間がなかったので今回はVarcharで渡してストアド内でDecimalに変換して対応しました。
    ただ、普通にDecimalとして渡す方法がないものか、一応知識として知っておきたいのでご存知のかたがいらしたら教えてください。

    OS Windows10
    Visual Studio 2015
    C#
    SQL Server 2019

違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34690 / ResNo.1)  Re[1]: C#からストアドにDecimalを渡すと値が丸められる
□投稿者/ 魔界の仮面弁士 大御所(1328回)-(2021/04/07(Wed) 16:00:31)
  • アイコン2021/04/07(Wed) 16:31:12 編集(投稿者)

    No34689に返信(tomyさんの記事)
    > ストアドプロシージャ―に
    > ストアドプロシージャの

    末尾の「ー(長音記号)」が「―(全角ダッシュ)」に
    なってしまうミスを、私も屡々やらかします…。


    > @foo Decimal(19,13)
    >「1234.1234567890123」という値を渡そうとすると
    >「1234.1234567890100」に変換されてしまいます。

    当方では再現しませんでした。
    SqlParameter の Precision と Scale を明示的に指定しても駄目ですか?

    /*
    CREATE PROCEDURE Example(@foo Decimal(19,13))
    AS
    BEGIN
    SET NOCOUNT ON
    SELECT @foo
    END
    */

    static void Main()
    {
     var cn = new SqlConnection(Properties.Settings.Default.ConnectionString);
     cn.Open();

     using (var cmd = cn.CreateCommand())
     {
      cmd.CommandText = "Example";
      cmd.CommandType = CommandType.StoredProcedure;

      var p = new SqlParameter();
      p.ParameterName = "@foo";
      p.SqlDbType = SqlDbType.Decimal;
      p.Direction = ParameterDirection.Input;
      p.Value = "1234.1234567890123";

      cmd.Parameters.Add(p);
      var r = cmd.ExecuteScalar();
     
      // 1234.1234567890123
      Console.WriteLine(r);
     }
     cn.Close();
    }

違反を報告
引用返信
■34691 / ResNo.2)  Re[2]: C#からストアドにDecimalを渡すと値が丸められる
□投稿者/ tomy 一般人(5回)-(2021/04/07(Wed) 16:34:39)
  • アイコンNo34690に返信(魔界の仮面弁士さんの記事)
    > SqlParameter の Precision と Scale はどうなっていますか?

    ソースコードはVarcharで指定するように書き換えてしまったので、デバッグ時の記憶ですが、SqlCommandのParametersをみたときは
    PrecisionとScaleは0だったと思います。

    しかしながら、いまパラメータをセットするコードだけのテストアプリを作ってみたら、Precision=17、Scale=13となっていて、結果的に正しく動作していました。
    アプリの作り方の問題かもしれません・・・。

    > また、SQL Server 側のパラメーターの有効桁数は?

    Decimal(19,13)になっています。



違反を報告
引用返信
■34692 / ResNo.3)  Re[3]: C#からストアドにDecimalを渡すと値が丸められる
□投稿者/ tomy 一般人(6回)-(2021/04/07(Wed) 16:43:04)
  • アイコンあっ、すみません!
    当時のソースコードにロールバックしてよくよく見てみたら、型を間違っていました。
    SqlCommand.Parameters.Addに渡す際、小数点以下13桁より小さい桁を切り捨てる必要があったので、切り捨てる関数を呼んでいたのですが、この戻り値がDouble型になっていました。

    すみません、とんだ勘違いをしておりました。

違反を報告
引用返信
■34693 / ResNo.4)  Re[4]: C#からストアドにDecimalを渡すと値が丸められる
□投稿者/ tomy 一般人(7回)-(2021/04/07(Wed) 16:45:29)
  • アイコン(すみません、解決済にしわすれていました)
    自己解決で申し訳ありません。

    SqlParameterにはDecimalを指定していながら、実際の値はDoubleを渡していたことが原因でした。
    (でも、SqlParameterのValueに渡した段階ではちゃんと1234.123456790123になっていたんですけどね・・・)

解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34686 / 親記事)  インスタンスの型を文字列で指定したい
□投稿者/ 未熟者 一般人(1回)-(2021/04/02(Fri) 10:56:17)
  • アイコン環境/言語:[Windows10/VB.NET(Visual Studio 2019)/.NET Framework 4.6.2] 
    分類:[.NET] 

    このような掲示板で初めて質問するのため、わかりづらい内容になっていたらすみません。
    3日ほど悩んでいるのですが答えが見つからず、どなたかにご教授願いたく質問させていただきます。

    ■したいこと
    変数の型を文字列で指定したい。

    例としてClassAというクラスのインスタンスを生成する場合、本来なら
    dim a as ClassA
    のような記述で宣言するところ、"ClassA"という文字列を利用して
    変数の型を指定したいのです。

    dim t as Type = Type.GetType("ClassA")
    dim a as t

    上記の記述でいけるかと思いましたが「型"t"が定義されていません」というエラーになってしまいました。これではだめなんですね…。
    変数の型宣言を文字列で行うことはできないのでしょうか?


違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34687 / ResNo.1)  Re[1]: インスタンスの型を文字列で指定したい
□投稿者/ 魔界の仮面弁士 大御所(1327回)-(2021/04/02(Fri) 12:14:56)
  • アイコンNo34686に返信(未熟者さんの記事)
    > 例としてClassAというクラスのインスタンスを生成する場合、

    インスタンスの生成方法は、クラスによって様々です。

    たとえば、New する際に 1 つ以上の「引数」指定が必要なものや、
     Dim p As New System.Net.IPAddress(New Byte() {192, 168, 0, 1})
    New でインスタンス化するのではなく、共有メソッドで生成するものもあります。
     Dim p = System.Net.IPAddress.Parse("192.168.0.1")

    > dim t as Type = Type.GetType("ClassA")
    > dim a as t

    そのように書けるのは、型パラメーターを用いた場合だけですね。
     Public Shared Function Create(Of T As New)() As T
      Return New T()
     End Function

    System.Type を元に生成したいのであれば、
    Activator.CreateInstance メソッドを試してみてください。
違反を報告
引用返信
■34688 / ResNo.2)  Re[2]: インスタンスの型を文字列で指定したい
□投稿者/ 未熟者 一般人(2回)-(2021/04/05(Mon) 12:46:52)
  • アイコン早速のアドバイスを頂きありがとうございました。
    またお礼が遅くなり申し訳ありません。

    恥ずかしながら「型」と「型パラメータ」の違いもあいまいだったため、もっと勉強しなくてはと感じています。
    頂いたヒントを元にしたいことを実現する方法を調べてみます。
違反を報告
引用返信

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



■記事リスト / ▲上のスレッド
■34683 / 親記事)  SendKeys.Sendが効いていない
□投稿者/ 炎の妖精さん 一般人(1回)-(2021/04/01(Thu) 17:03:59)
  • アイコン環境/言語:[Win10 VB.NET] 
    分類:[.NET] 

    本サイトにはいつもお世話になっております。

    首記の件についてですが、
    最新のWindows10(バージョン20H2)のみ効いていないようです。
    20H2以前のバージョンでは問題なく効いております。(1906で確認済)
    SendKeys.Sendの他にも同様な処理が出来るコードをご教示願います。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34684 / ResNo.1)  Re[1]: SendKeys.Sendが効いていない
□投稿者/ 魔界の仮面弁士 大御所(1326回)-(2021/04/01(Thu) 17:54:08)
  • アイコンNo34683に返信(炎の妖精さんさんの記事)
    > 最新のWindows10(バージョン20H2)のみ効いていないようです。

    当方も 20H2 ですが、.NET Framework 4.8 環境にて下記のコードが動作しました。
    (JournalHook モードではなく SendInput モードで実行)

    Public Class Form1
     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
      Using p = Process.Start("notepad")
       p.WaitForInputIdle()
       AppActivate(p.Id)
       SendKeys.Send("{F5}{Enter}送信テスト% X^A+{F10}+B")
      End Using
     End Sub
    End Class


    メモ帳を相手に送信しても失敗しますか?
    VB 側が通常プロセスで、送信先が管理者プロセスになっていたりはしませんか?
    (タスク マネージャーの[詳細]タブに、[管理者特権]列を追加することで、
     管理者プロセスかどうかを確認できます)


    > SendKeys.Sendの他にも同様な処理が出来るコードをご教示願います。

    「SendKeys で何をしたいのか」を説明してもらわないと判断できませんが、
    とりあえず Codeer.Friendly とかはどうでしょうか。
    http://bbs.wankuma.com/index.cgi?mode=one&namber=92193&KLOG=159
    http://bbs.wankuma.com/index.cgi?mode=one&namber=95910&KLOG=166


    あるいはキー送出そのものであれば、SendInput API とか…。
    http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=12062&page=0
違反を報告
引用返信
■34685 / ResNo.2)  Re[2]: SendKeys.Sendが効いていない
□投稿者/ 炎の妖精さん 一般人(2回)-(2021/04/02(Fri) 08:24:07)
  • アイコン魔界の仮面弁士さん
    ありがとうございます。

    >あるいはキー送出そのものであれば、SendInput API とか…。
    >http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?mode=allread&no=12062&page=0
    ⇒今回はキー送出だけで良いのでSendInput APIで実装できました。
解決み!
違反を報告
引用返信

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






Mode/  Pass/


- Child Tree -