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

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

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

全過去ログを検索

<< 0 >>
■7398  Re[24]: MSDNの目次が欲しい
□投稿者/ 渋木宏明(ひどり) -(2007/09/05(Wed) 11:11:05)
>
    2007/09/05(Wed) 11:11:59 編集(投稿者)

    > 速度的にはどっちもあまり変わらない感じですね。

    でした? (^^;

    まぁ、「早い」は主に「[+] をクリックする手間が無いので楽チン」の意味だったんですが。

    ↑でも書きましたが、msdn2 は xhtml を返すので、この方法の応用なら実は WebBrowser も全然いらないんですよね。

    欠点は、トップレベルのツリーを「種」として与えなければならないことです。

    僕が着目した情報は MSDN Library のトップページに含まれてないので。

    あ、レンダリング要らないから、WebBrowser コントロールを使ったままでももう少し速くできるかも>今の方式

    > ひどりさんの方法だと親のリンクが取得できるので
    > 整合性を確保するにはいいかもです。

    ですね。今は捨ててるけど、上位レベルへのリンクも入ってますよね。

    > いくつかの項目でナビゲーションがおかしいのがあるので、
    > それもなおさなきゃいけないし、

    僕が着目している方の情報にも間違いが含まれてるのかな?
    まぁ、元ネタが同じなんで結果も同じかな。

    でも

    > 項目数も莫大なので

    なので、修正や補完は「できれば」程度の努力目標かな。

    リンク切れめっけたら MS に自動報告するようにアプリに組み込んでおくとかw

    > ツリービューも工夫しないといけないし、

    「起動時に全部充填」じゃ駄目ですね。
    人手で「全ノードを開く」のはほぼ不可能なので、ストアの問題を解決すれば仮想ツリーでOKですね。

    > 保存方法も考えなきゃいけないし…
    >
    > 「量」を考えなきゃいけないプログラムになりますね。

    ですね。でもまあぁDB前提なら数10万件レベルは大した数じゃないし。

    SQL Server Express はインストールの手間があるから、デフォルトは SQL Server Compact Edition かな?

    今月の前版は少し余裕あるので、もう少し遊んでみます ;-)
記事No.7227 のレス /過去ログ18より / 関連記事表示
削除チェック/

■41161  Re[2]: ASP.NETでのデバッグ
□投稿者/ たくボン -(2009/09/14(Mon) 11:37:04)
    No41157 (Jitta さん) に返信
    > ■No41153 (もんた さん) に返信
    >>トレースはいちいちコーディングをしなければならないので時間のロスになってしまいます。

    いい時代になったもんだ。

    俺がよく使う手は、スタックトレースを使って関数の頭にぶち込んでおく方法かな。
    条件分岐までは出力しないけど、重要な関数に入れておけばある程度自動でログってくれる。

    イベントの連鎖とか、めんどくさいログ出力にはもってこいかな。
記事No.41153 のレス /過去ログ71より / 関連記事表示
削除チェック/

■83260  Re[1]: 大量のテキストファイルをマルチスレッドで高速に読み込む方法
□投稿者/ 魔界の仮面弁士 -(2017/03/15(Wed) 21:56:43)
    No83253 (金尾 さん) に返信
    No83253 (金尾 さん) に返信
    > For i = 1 to 1000
    >  Dim fs As New FileStream(Path(i), FileMode.Open, FileAccess.Read)
    >  Dim bs1(file_size - 1) As Byte
    ファイル数が多いので、配列を都度作成するのではなく、
    確保済みの配列を使いまわすようにした方が良いでしょう。

    100MB もの巨大な配列を、毎回廃棄&確保し続けるのは効率が悪いです。

    Dim a = Now
    Dim size_100MB = (100 * 1024 * 1024) - 1
    For i = 1 To 1000
     Dim bs1(size_100MB) As Byte
     bs1(0) = i And &HFF
    Next
    Dim b = Now
    MsgBox((b - a).TotalSeconds)


    上記は、100MB の配列確保を 1000 回行っていますが、
    当方環境では約 4 秒という時間を要しました。

    しかし bs1配列の宣言をループの外に出した場合、
    その 4 秒間で 20億回のループが可能でした。
記事No.83253 のレス /過去ログ142より / 関連記事表示
削除チェック/

■89582  C#によるプリンタ制御
□投稿者/ S.Kos -(2018/12/06(Thu) 09:37:36)

    分類:[C#] 

    みなさま、こんにちは
    プリンタ制御について、ここでも多くのやり取りがありますが、いまひとつしっくりしません。

    以下、直接的なご教示はもちろん、どこどこを見よ、とのご示唆だけでもいただければ幸いです。

    デフォルトプリンタの、例えば「両面印刷」を、コンソールから制御しようと考えています。
    例えば CtrlPrinter.exe -V とすると長編綴じ両面印刷に、
        CtrlPrinter.exe -S で片面印刷、てな風に…

    これまでに、ゴリゴリ(笑)のCによるアプリケーションで、DEVMODE構造体を取得して書き戻したことがあります。

    けれども.NETの時代、C#で・・・、行き詰まりました。


    Windows10/Pro + VSEXPRESS2017forWindowDesktop 環境です。

    using System.Drawing;
    using System.Drawing.Printing;
    using System.Printing;
    とした上で、

    System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
    これは巧くデキているようです。

    なぜなら、
    pd.PrinterSettings.PrinterName にデフォルトのプリンタ名
    pd.PrinterSettings.CanDuplex に両面印刷機能の有無
    pd.PrinterSettings.Duplex に両面/片面設定情報
    を読み出しています。

    さて、両面/片面情報を書き換え、例えば
    pd.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Horizontal
    とし、これをプリンタドライバに書き戻すところで、行き詰まりました。


    書き換えた情報を、プリンタドライバへ書き戻す術を、ご教示ください。Win32APIレベルだと ResetDC() の感覚ですね・・。

    そもそもC#で、実際のプリンタ書き出しを前提とせず、プリンタドライバの設定だけを変更する、なんてコトはできないのでしょうか?

親記事 /過去ログ154より / 関連記事表示
削除チェック/

■89583  Re[1]: C#によるプリンタ制御
□投稿者/ 魔界の仮面弁士 -(2018/12/06(Thu) 10:21:13)
    No89582 (S.Kos さん) に返信
    > デフォルトプリンタの、例えば「両面印刷」を、コンソールから制御しようと考えています。
    > 例えば CtrlPrinter.exe -V とすると長編綴じ両面印刷に、
    >     CtrlPrinter.exe -S で片面印刷、てな風に…

    C# ではなく PowerShell でも良ければ、こんな感じでいけるかも。

    $PrinterName = "LBP842C*"
    Get-Printer $PrinterName | Set-PrintConfiguration -DuplexingMode OneSided
    Get-Printer $PrinterName | Set-PrintConfiguration -DuplexingMode TwoSidedLongEdge
    Get-Printer $PrinterName | Set-PrintConfiguration -DuplexingMode TwoSidedShortEdge



    > これをプリンタドライバに書き戻すところで、行き詰まりました。

    2008 年の表記ルール改定以降、現在は「プリンター ドライバー」と書かれるそうで。
    https://pc.watch.impress.co.jp/docs/2008/0725/ms.htm
    https://www.microsoft.com/en-us/language/Search?&searchTerm=printer+driver&langID=Japanese&Source=true&productid=All+Products
記事No.89582 のレス /過去ログ154より / 関連記事表示
削除チェック/

■89584  Re[2]: C#によるプリンタ制御
□投稿者/ S.Kos -(2018/12/06(Thu) 12:17:19)
    No89583 (魔界の仮面弁士 さん) に返信
    > C# ではなく PowerShell でも良ければ、こんな感じでいけるかも。
    なんと、こんな手があるとは! 思っても見ませんでした。
    いつものことながら、貴兄の知識と技術には、唯々脱帽するのみです。

    当面の課題はこれでクリアできますが、本質的な疑問は残ったままです

    C#だと、Win32APIレベル ResetDC() のような書き戻し、はできないのですか?
    重ねてご教示いただけれは幸いです。

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

■89586  Re[3]: C#によるプリンタ制御
□投稿者/ 魔界の仮面弁士 -(2018/12/06(Thu) 14:54:22)
    2018/12/06(Thu) 15:09:35 編集(投稿者)

    No89584 (S.Kos さん) に返信
    > こんな手があるとは!
    別案として、
     rundll32 printui.dll,PrintUIEntry
    を /Sr 指定で呼び出す手もありそうですが、
    一部の設定のみを切り替えるような目的には向かないですね。


    > ゴリゴリ(笑)のCによるアプリケーションで、DEVMODE構造体を取得して書き戻したことがあります。

    DEVMODE 構造体を得る手段としては、
    PageSettings.CopyToHdevmode メソッドや
    PritereSettings.GetHdevmode メソッドがありますね。
    そこから先は API になるかもしれませんけど。

    これ自体は SetHDevmode メソッドでの利用を想定したものかも知れませんが、
    一応その値を元に、StandardPrintController クラスが内部で
    ResetDC API に引き渡しているようです。
    https://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Printing/DefaultPrintController.cs%2c90



    > C#だと、Win32APIレベル ResetDC() のような書き戻し、はできないのですか?

    // using System.Printing;
    var setting = Duplexing.TwoSidedLongEdge;

    // var sv = new PrintServer(PrintSystemDesiredAccess.AdministrateServer);
    var sv = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
    var pq = new PrintQueue(sv, printerName, PrintSystemDesiredAccess.AdministratePrinter);
    var pc = pq.GetPrintCapabilities();
    var dc = pc.DuplexingCapability;
    if (dc.Contains(setting))
    {
     pq.DefaultPrintTicket.Duplexing = setting;
     pq.Commit();
    }
記事No.89582 のレス /過去ログ154より / 関連記事表示
削除チェック/

■89587  Re[1]: C#によるプリンタ制御
□投稿者/ Jitta -(2018/12/06(Thu) 15:54:38)
    No89582 (S.Kos さん) に返信
    > けれども.NETの時代、C#で・・・、行き詰まりました。

    .NET の時代という言い方をするなら、
    プログラムからいじらないのが.NET流です。
    ユーザーが指定するべきところで、
    開発者が指定する事ではありません。
記事No.89582 のレス /過去ログ154より / 関連記事表示
削除チェック/

■89588  Re[2]: C#によるプリンタ制御
□投稿者/ S.Kos -(2018/12/06(Thu) 16:23:28)
    魔界の仮面弁士さん、重ねてのご教示、誠にありがとうございました。
    どれもみなWinAPIの関数を包み込むような名前(?)、手順もアレを追いかけてますね。
    疑問にメドが立ったところで、改めて御礼申し上げます。ありがとうございました。

    No89587 (Jitta さん) に返信
    > .NET の時代という言い方をするなら、
    > プログラムからいじらないのが.NET流です。
    >
    御意! 
    とはいえ、ある書式は片面、続く書式は両面、さらにまた片面・・・こんなリクエストには、プログラム側で対応するしかありません。
記事No.89582 のレス / END /過去ログ154より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -