C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■10902  Re[7]: C#とC++のDirectXについて
□投稿者/ 渋木宏明(ひどり) -(2007/11/30(Fri) 10:41:39)
>
    > なんだか XNA の先行きが不安です。

    MDX はもう見限られちゃった感満載ですが、XNA は、やる気自体はあるんじゃないかな?

    ただ、次の次くらいでまた大々的に形態や内容が変わっちゃう可能性はあるかも (^^;

    C#, VB でゲームを書きたいってことなら現状 XNA がお勧めですが、DirectX のすべての機能をカバーしてないのが XNA の痛いところですね。
記事No.10894 のレス /過去ログ24より / 関連記事表示
削除チェック/

■23940  Re[3]: Enabled subについて
□投稿者/ シャノン -(2008/08/25(Mon) 13:31:25)
    No23939 (初心者 さん) に返信
    > すみませんw
    > Exit Sub のまちがいですw

    Sub プロシージャを抜けるステートメントです。
    その時点で呼び出し元に戻ります。
    VB.NET 以降では(Sub プロシージャ内においては)Return と同じです。
    Function プロシージャにおける Exit Function と Return は意味が違いますので注意。
記事No.23937 のレス /過去ログ45より / 関連記事表示
削除チェック/

■59950  DirectShowでデスクトップのキャプチャーするには
□投稿者/ ひろし -(2011/06/13(Mon) 20:17:48)

    分類:[.NET 全般] 

    OS:WindowsVista HomeEdition
    開発言語:VB2010
    PC:eMachine J3210

    度々お世話になります。

    現在、DirectShow を利用して、動画の再生、録画の機能を持ったアプリケーションを開発しています。
    動画の再生、WEBカメラの映像をwmvに録画するところまでは、なんとか作る事ができました。

    ですが、あと2点ほど、どうしても解決できない問題があります。

    1.デスクトップの内容をwmv型式で録画する。

      正確には、フォームの TransparencyKeyプロパティーにて透過させた状態で、
      そのフォームに映っているものを録画できればと考えています。


    2.wmv型式でのカメラの解像度及びビットレートを変更する。

      解像度については、録画の型式を avi にすると変更できました。
      しかし、wmv型式にすると変更できません。

      ↓変更できる
      result = _captureGraphBuilder.SetOutputFileName(MediaSubType.Avi, fileName, muxFilter, sinkFilter)
      ↓変更できない
      result = _captureGraphBuilder.SetOutputFileName(MediaSubType.Asf, fileName, muxFilter, sinkFilter)


      ビットレートについては、avi、wmv 共にできません。



    以下が解像度及びビットレートを変更する関数の全体です。

    ------------------------------------------------------------------------
    Private Sub SetConfigParms(ByVal iFrameRate As Integer, ByVal bitRate As Integer, ByVal iWidth As Integer, ByVal iHeight As Integer)
    Dim hr As Integer

    Dim IMyInterfaceAttribute As Attribute = Attribute.GetCustomAttribute(GetType(IAMStreamConfig), GetType(GuidAttribute))
    Dim iid As Guid = New Guid(CType(IMyInterfaceAttribute, GuidAttribute).Value)
    Dim o As Object = Nothing
    Dim media As AMMediaType = Nothing
    Dim videoStreamConfig As IAMStreamConfig
    Dim videoControl As IAMVideoControl = DirectCast(_captureFilter, IAMVideoControl)

    ' Find the stream config interface
    hr = _captureGraphBuilder.FindInterface(New DsGuid(PinCategory.Capture), New DsGuid(MediaType.Video), _captureFilter, iid, o)

    videoStreamConfig = DirectCast(o, IAMStreamConfig)
    Try
    If (videoStreamConfig Is Nothing) Then
    Throw New Exception("Failed to get IAMStreamConfig")
    End If

    'フォーマット取得
    hr = videoStreamConfig.GetFormat(media)
    DsError.ThrowExceptionForHR(hr)

    'ビデオヘッダー取得
    Dim vHeader As VideoInfoHeader = New VideoInfoHeader()
    Marshal.PtrToStructure(media.formatPtr, vHeader)

    'サンプルレート設定
    If (iFrameRate > 0) Then
    vHeader.AvgTimePerFrame = CLng(10000000 / iFrameRate)
    End If
    'ビットレート設定
    If bitRate > 0 Then
    vHeader.BitRate = bitRate
    End If
    '幅設定
    If (iWidth > 0) Then
    vHeader.BmiHeader.Width = iWidth
    End If
    '高さ設定
    If (iHeight > 0) Then
    vHeader.BmiHeader.Height = iHeight
    End If

    ' Copy the media structure back
    Marshal.StructureToPtr(vHeader, media.formatPtr, False)

    ' Set the new format
    hr = videoStreamConfig.SetFormat(media)
    DsError.ThrowExceptionForHR(hr)

    DsUtils.FreeAMMediaType(media)
    media = Nothing

    ' Fix upsidedown video
    If (Not videoControl Is Nothing) Then
    Dim pCapsFlags As VideoControlFlags

    Dim pPin As IPin = DsFindPin.ByCategory(_captureFilter, PinCategory.Capture, 0)
    hr = videoControl.GetCaps(pPin, pCapsFlags)
    DsError.ThrowExceptionForHR(hr)

    If (CLng(pCapsFlags & VideoControlFlags.FlipVertical) > 0) Then
    hr = videoControl.GetMode(pPin, pCapsFlags)
    DsError.ThrowExceptionForHR(hr)

    hr = videoControl.SetMode(pPin, 0)
    End If
    End If
    Finally
    Marshal.ReleaseComObject(videoStreamConfig)
    End Try
    End Sub
    ------------------------------------------------------------------------

    ご存知の方、よろしくお願いいたします。
親記事 /過去ログ100より / 関連記事表示
削除チェック/

■92467  BinaryReader/Writerでのコピーが遅い
□投稿者/ take -(2019/09/28(Sat) 11:44:15)

    分類:[C#] 

    こんにちは
    BinaryReader と BinaryWriter を使用してファイルコピーをした場合の
    コピーにかかる時間についての質問となります。

    C# .NET Framework 3.5

    大きいバイナリファイル(16GB程)を BinaryReader と BinaryWriter を使用し
    ローカルフォルダ から ネットワーク共有フォルダ へコピーしようとしていまが、
    File.Copy や エクスプローラ でコピーするより大分遅いです。

    File.Copy -> 12分
    BinaryRead/Write -> 14〜16分
    エクスプローラ -> 12分

    BinaryRead/Writeを使用した場合、
    File.Copy と同程度の速度を出す事はできないのでしょうか?


    一度に読込するバイト数を変えると早くはなりますが、それでも14分強です。
    (指定しなかった場合は16分、4MBにすると14分程になりました。)

    以下、ソースです。

    void main()
    {
      copy(@"c:\16gb.dat", @"\\xxxx\hoge\16gb.dat");
    }

    void copy(stirng from, string to)
    {
      using (var br = new BinaryReader(File.OpenRead(from)))
      {
        using (var bw = new BinaryWriter(File.OpenWrite(to)))
        {
          bw.BaseStream.SetLength(br.BaseStream.Length);

          int bufSize = 4 * 1024 * 1025;
          byte[] buf = new byte[bufSize];
          while (true)
          {
            buf = br.ReadBytes(bufSize);
            if (buf.Length == 0)
            {
              break;
            }
            bw.Write(buf, 0, buf.Length);
          }
        }
      }
    }
親記事 /過去ログ159より / 関連記事表示
削除チェック/

■96386  Re[6]: トラックバーにスライダーを二つ付ける方法
□投稿者/ KOZ -(2020/11/18(Wed) 15:33:21)
    No96384 (魔界の仮面弁士 さん) に返信
    > なお、KOZ さんが紹介されていた RangeSelectorControl コントロールの場合は、

    No96380 かな?
    私ではありません。(^_^;)


記事No.96370 のレス /過去ログ167より / 関連記事表示
削除チェック/

■96387  Re[7]: トラックバーにスライダーを二つ付ける方法
□投稿者/ kiku -(2020/11/18(Wed) 16:33:55)
    No96386 (KOZ さん) に返信
    > ■No96380 かな?
    > 私ではありません。(^_^;)

    下記のように、わたしが紹介したやつですね。
    中身はまったく見ていないので、
    エッセンスだけ抽出して、新規に作った方が良いと思います。

    VS2005で開発したもののようです。
    古いですね。

    > 中身はまったく見てませんが、
    > CodeProject内に下記を見つけました。
    > 他にもあるかはわかりません。
    > https://www.codeproject.com/Articles/28717/A-custom-range-selector-control-in-C-with-a-little
記事No.96370 のレス /過去ログ167より / 関連記事表示
削除チェック/

■96388  Re[8]: トラックバーにスライダーを二つ付ける方法
□投稿者/ 魔界の仮面弁士 -(2020/11/18(Wed) 17:33:23)
    No96386 (KOZ さん) に返信
    > ■No96380 かな?
    > 私ではありません。(^_^;)

    No96387 (kiku さん) に返信
    > 下記のように、わたしが紹介したやつですね。

    あちゃ……ごめんなさい。
    はい。 No96380 の kiku さんの投稿のことです。


    MSDN Forum の過去ログでも、だいたい同じような回答が付いていました。
    残念ですが、`銀の弾` は見つけられませんでした。
    https://social.msdn.microsoft.com/Forums/vstudio/en-US/c28677a1-e176-4fc9-8b64-4c05c7710cc3/double-track-bar-is-it-possible?forum=csharpgeneral


    slider や trackbar や range selector などのキーワードで探してみましたが、
    WinForms 版よりも、WPF 版や Web 版の方が実装例が多そうですね。
    つまみが 2 つ以上の物となると、さらにサンプルは少なく…。


    別スレッドの No96240 で KOZ さんが紹介されていた VB 版(つまみは 1 つだけ)は、
    コードが読みやすい割には見た目にも凝っていて、
    マウスだけではなくキーボード操作にも対応しているなど、充実していますね。
    (オートリピートは効かないようですが)
記事No.96370 のレス /過去ログ167より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -