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

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

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

全過去ログを検索

<< 0 >>
■6102  Re[2]: .NET2003で別のプロジェクトを呼ぶには?
□投稿者/ グリード -(2007/08/01(Wed) 10:10:13)
    No6094 (HIRO さん) に返信
    > ■No6090 (グリード さん) に返信
    >>こんばんば、グリードと言います。わからないところがあったので、質問させていただきます。
    >>
    >>質問なのですが、.NET2003で作ったプロジェクトがありまして、その作ったプロジェクトを別のプロジェクトで表示させれるようにしたいのです。
    >>
    >>流れ的には、新しいプロジェクトを開く→ボタンを押す→前回作ったプロジェクトを開く
    >>
    >>という風にしたいのです。
    >>
    >>すごく初歩的な質問かもしれませんが、なにとぞよろしくお願いします。
    >
    > メニューの[ファイル]-[プロジェクトの追加]-[既存のプロジェクト]を選択すると
    > プロジェクトを選択するダイアログが表示されます。
    > ここで、追加したいプロジェクトファイル(*.csproj)を選択すれば良いと思います。
    >
    > 下記を一読されることをおすすめします。
    >
    > [ソリューション、プロジェクト、およびファイルの管理]
    > http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vsintro7/html/vxoriManagingProjectsSolutions.asp



    初歩的な質問にお答えいただき、ありがとうございました。

    教えていただいたサイトを見たのですが、自分の探し方が足らないのか、追加したプロジェクトをボタンクリックイベントで呼び出すようなものを探し当てることができませんでした。

    もし、よろしければ教えていただけないでしょうか?

    何度も初歩的な質問、申し訳ございません。
記事No.6090 のレス /過去ログ16より / 関連記事表示
削除チェック/

■15746  Re[6]: スロットマシンを作ってみましたが
□投稿者/ Jitta on the way -(2008/03/19(Wed) 21:43:37)
記事No.15623 のレス /過去ログ32より / 関連記事表示
削除チェック/

■30973  印刷処理のメッセージウィンドウについて
□投稿者/ みーこ -(2009/01/10(Sat) 22:11:01)

    分類:[VB.NET/VB2005 以降] 

    2009/01/10(Sat) 22:11:41 編集(投稿者)
    2009/01/10(Sat) 22:11:34 編集(投稿者)

    VB.NETでプリンタオブジェクトを用いて印刷処理を実装したときに、
    「Document 印刷中 *ページ」のメッセージウィンドウを表示させないようにしたいのですが、
    表示ON,OFFのプロパティ等、ご存知の方いらっしゃいましたらご教授願います。
    よろしくお願いします。
親記事 /過去ログ55より / 関連記事表示
削除チェック/

■56020  Re[1]: コマンドメッセージの元になったウィンドウメッセージを特定
□投稿者/ オショウ -(2010/12/23(Thu) 08:46:02)
    2010/12/23(Thu) 08:49:31 編集(投稿者)

    > そのメッセージが送出されるきっかけとなったウィンドウメッセージ(WM_KEYDOWNやWM_LBUTTONUPなど)を知りたいのですが、
    > なにかのAPIで簡単に判定するようなことは可能でしょうか?

      簡単に・・・は、無いでしょう。

    > 具体的には、コンボボックスの選択項目が変更された時の、CBN_SELCHANGE の通知メッセージが、
    > マウス操作(クリック)によるものか、キー操作(上下矢印キーなど)によるものかを区別したいのです。

      それを行いたい理由は?
      区別する必要がある意味が解りません。

    > コンボボックスのサブクラス化をして、WM_KEYDOWNのすぐあとに、WM_COMMANDでCBN_SELCHANGEが送られてきていれば、キー操作によるものと
    > 判断できるのかと考えたのですが、フラグで状態管理するような方法はとりたくないので、もっとよい方法があれば、教えていただきたいのです。

      サブクラス化が一般的のように思いますが・・・
      厳密にいうと、ウィンドウメッセージで、順番が必ず入れ替わらないものも
      あれば、入れ替わってしまう可能性があるものもあるので。

    > イメージとしては、処理済みのウィンドウメッセージをバッファリングしておき、
    > マウスによるものかキー入力によるものかを判定することになるかと思いますが、
    > そのようなことがシステム側の機能として提供されているものなのでしょうか?

      WM_KEY_UPが先かWM_MOUSE_UP(ウィンドウメッセージこれであってるかナ〜)
      が先かで判断できるようにも思いますが。

    以上。参考まで
記事No.56015 のレス /過去ログ94より / 関連記事表示
削除チェック/

■93061  .NETのバージョンを取得するには?
□投稿者/ コリアン -(2019/11/18(Mon) 11:58:26)

    分類:[.NET 全般] 

    プログラムをビルドする時に、4clientや4.5, 4.6などの.NETのバージョンを指定することができますが
    プログラム上で実行してあるEXEファイルのバージョンを調べるにはどのようにしたら良いですか?

    調べればすぐに分かるかと思ったのですが
    意外と見つかりませんでした。

    よろしくお願いいたします。
親記事 /過去ログ161より / 関連記事表示
削除チェック/

■93067  Re[1]: .NETのバージョンを取得するには?
□投稿者/ 魔界の仮面弁士 -(2019/11/18(Mon) 13:28:34)
    No93061 (コリアン さん) に返信
    > プログラム上で実行してあるEXEファイルのバージョンを調べるにはどのようにしたら良いですか?

    ターゲット フレームワークのバージョンなら、アプリケーション構成ファイル (EXEファイル名.config) の
    supportedRuntime 要素を参照してみてください。

    AssemblyFileVersion 属性や AssemblyProduct 属性で示されるバージョンの事なら、こんな感じ。
    https://dobon.net/vb/dotnet/file/myversioninfo.html
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93066  Re[1]: .NETのバージョンを取得するには?
□投稿者/ みい -(2019/11/18(Mon) 13:21:25)
    No93061 (コリアン さん) に返信
    > プログラムをビルドする時に、4clientや4.5, 4.6などの.NETのバージョンを指定することができますが
    > プログラム上で実行してあるEXEファイルのバージョンを調べるにはどのようにしたら良いですか?
    >
    > 調べればすぐに分かるかと思ったのですが
    > 意外と見つかりませんでした。
    >
    > よろしくお願いいたします。
    >
    知りたいのは「EXEファイルのバージョン」ではなく「EXEファイルのFrameworkのバージョン」でいいんですよね?
    試してはいませんが、「実行ファイル Framework バージョン」でググったら下記が見つかりました。
    https://qiita.com/taiba/items/38b024b9d4e56dc9d323
    https://www.out48.com/archives/2204/
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93068  Re[2]: .NETのバージョンを取得するには?
□投稿者/ コリアン -(2019/11/18(Mon) 13:49:04)

    ターゲット フレームワークのバージョンのことです。

    configファイルを参照するとなると
    テキストファイルとして開いて、

    <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/></startup></configuration>


    を検索して調べるしかないですか?

    configファイルが無くEXEファイルしかない場合にはどのようにすれば良いですか?
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93070  Re[3]: .NETのバージョンを取得するには?
□投稿者/ kaina -(2019/11/18(Mon) 14:17:09)
    No93068 (コリアン さん) に返信
    > configファイルが無くEXEファイルしかない場合にはどのようにすれば良いですか?

    みいさんが貼ってくれたURLに書いてありますよ。

    試してませんが、他にはこれとか。

    https://devlights.hatenablog.com/entry/20120313/p1
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93072  Re[3]: .NETのバージョンを取得するには?
□投稿者/ 魔界の仮面弁士 -(2019/11/18(Mon) 15:34:24)
    No93068 (コリアン さん) に返信
    > configファイルを参照するとなると
    > テキストファイルとして開いて、

    テキストファイルというか、XML ファイルとして読み込んだ方が楽でしょう。
    また、 <supportedRuntime> は、優先順位順に複数記録されている可能性があります。
    https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/startup/supportedruntime-element?WT.mc_id=DT-MVP-8907


    なお、本来配布されるべき .config が無い場合、開発者が想定していた
    ターゲットフレームワークとは異なるバージョンで動作する可能性があります。


    > configファイルが無くEXEファイルしかない場合にはどのようにすれば良いですか?

    アプリが実行される .NET Framework のバージョンは、次の順序で決まります。
    https://docs.microsoft.com/ja-jp/dotnet/framework/migration-guide/how-to-configure-an-app-to-support-net-framework-4-or-4-5?WT.mc_id=DT-MVP-8907

    コンパイル時の CLR バージョンについては、System.Reflection.Assembly の
    ImageRuntimeVersion で得られますが、これは .NET Framework のバージョンではないことに注意してください。
    https://docs.microsoft.com/ja-jp/dotnet/api/system.reflection.assembly.imageruntimeversion?WT.mc_id=DT-MVP-8907&view=netframework-4.8


    たとえば、.NET Framework 4.8 がインストールされている開発環境で、
    .NET Framework 3.5 をターゲットとしてビルドした上で、
    下記の .Config を用意していたとします。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1"/>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
    <supportedRuntime version="v2.0.50727"/>
    </startup>
    </configuration>


    この EXE を .NET Framework 4.5 以降がインストールされている環境で実行した場合、たとえば
     Assembly.ImageRuntimeVersion → "v2.0.50727"
     Environment.Version → "4.0.30319.42000"
    というバージョン番号を返します。


    しかしこの EXE を「.config 無し」で実行した場合、たとえ 4.5 以降がインストールされていたとしても、
    2.0〜3.5 が無ければ実行できません。(.NET Framework 3.5 のインストールが要求されることもある)


    実行できる環境の場合、ImageRuntimeVersion は .config の有無によらず同じ値を返しますが、
    Environment.Version の方は、同じ EXE であっても、実行環境ごとに異なるバージョン番号が
    返される可能性があります。たとえばこのように。

    Environment.Version → "2.0.50727.8806"
    Environment.Version → "2.0.50727.9148"
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93079  Re[1]: .NETのバージョンを取得するには?
□投稿者/ KOZ -(2019/11/19(Tue) 10:09:30)
    No93061 (コリアン さん) に返信
    > プログラムをビルドする時に、4clientや4.5, 4.6などの.NETのバージョンを指定することができますが
    > プログラム上で実行してあるEXEファイルのバージョンを調べるにはどのようにしたら良いですか?
    
    これでしょうか?
    using System;
    using System.Reflection;
    using System.Runtime.Versioning;
    using System.Diagnostics;
    
    static class Program
    {
        [STAThread]
        static void Main() {
            var asm = Assembly.GetExecutingAssembly();
            foreach (var attr in CustomAttributeData.GetCustomAttributes( asm)) {
                if (attr.AttributeType == typeof(TargetFrameworkAttribute)) {
                    Debug.Print($"{attr.NamedArguments[0].TypedValue.Value}");
                }
            }
        }
    }
    
    結果:
    .NET Framework 4.8
    
    
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93080  Re[2]: .NETのバージョンを取得するには?
□投稿者/ KOZ -(2019/11/19(Tue) 11:37:36)
    結局 Reflection の嵐になってしまいました。
    2.0 と 3.5 は情報が埋め込まれてないようです。
    
    using System;
    using System.Collections;
    using System.Diagnostics;
    using System.Reflection;
    
    static class Program
    {
        [STAThread]
        static void Main() {
            var asmHelper = new ReflectionHelper(Assembly.GetExecutingAssembly());
            var attributes = asmHelper.Invoke("GetCustomAttributesData");
            if (attributes == null) {
                Debug.Print(".NET Framework 2.0/3.5");
            } else {
                foreach (var attr in (IEnumerable)attributes) {
                    var attrHelper = new ReflectionHelper(attr);
                    var attributeType = new ReflectionHelper(attrHelper.GetProperty("AttributeType"));
                    var fullName = (string)attributeType.GetProperty("FullName");
                    if (fullName == "System.Runtime.Versioning.TargetFrameworkAttribute") {
                        var namedArguments = new ReflectionHelper(attrHelper.GetProperty("NamedArguments"));
                        var item = new ReflectionHelper(namedArguments.GetProperty("Item", 0));
                        var typedValue = new ReflectionHelper(item.GetProperty("TypedValue"));
                        Debug.Print((string)typedValue.GetProperty("Value"));
                    }
                }
            }
        }
    
        private class ReflectionHelper
        {
            private object Target;
            private Type TargetType;
    
            public ReflectionHelper(object target) {
                Target = target;
                TargetType = target.GetType();
            }
    
            public object GetProperty(string propertyName, params object[] parameters) {
                var pi = TargetType.GetProperty(propertyName);
                if (pi != null) {
                    return pi.GetValue(Target, parameters);
                }
                return null;
            }
    
            public object Invoke(string methodName, params object[] parameters) {
                var mi = TargetType.GetMethod(methodName);
                if (mi != null) {
                    return mi.Invoke(Target, parameters);
                }
                return null;
            }
        }
    }
    
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93167  Re[3]: .NETのバージョンを取得するには?
□投稿者/ コリアン -(2019/11/25(Mon) 19:28:18)
    KOZさん

    ご回答ありがとうございます。

    VB.NETを使っているのですが、
    VBで書くのならどのようにすれば良いですか?
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93168  Re[4]: .NETのバージョンを取得するには?
□投稿者/ コリアン -(2019/11/25(Mon) 19:46:26)
    2019/11/25(Mon) 19:47:38 編集(投稿者)

    For Each attr As CustomAttributeData In CustomAttributeData.GetCustomAttributes(Assembly.GetExecutingAssembly())

    If attr.AttributeType Is GetType(Runtime.Versioning.TargetFrameworkAttribute) Then

    aaa = attr.NamedArguments(0).TypedValue.Value.ToString

    End If

    Next attr


    これでできました
    どうもありがとうございました。
記事No.93061 のレス / END /過去ログ161より / 関連記事表示
削除チェック/

■93170  Re[5]: .NETのバージョンを取得するには?
□投稿者/ コリアン -(2019/11/25(Mon) 19:55:50)
    すいません、Framework4.6だとうまくいったのですが、

    4でやると
    attr.AttributeType

    のところで
    エラー BC30456 'AttributeType' は 'CustomAttributeData' のメンバーではありません。

    というエラーが出ます
    どうすれば良いですか?

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

■93171  Re[6]: .NETのバージョンを取得するには?
□投稿者/ コリアン -(2019/11/25(Mon) 20:08:55)
    重ね重ねすいません。

    下に書いてくださった
    private class ReflectionHelper
    を使う方法で
    バージョン4でもうまくいきました。

    一つ目の方法の方がシンプルで良いですが
    バージョン4では使えないのでしょうか?
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93178  Re[7]: .NETのバージョンを取得するには?
□投稿者/ KOZ -(2019/11/26(Tue) 08:52:55)
    2019/11/26(Tue) 08:59:12 編集(投稿者)

    No93171 (コリアン さん) に返信
    > 一つ目の方法の方がシンプルで良いですが
    > バージョン4では使えないのでしょうか?

    えーっと、使えないのを目の当たりにされたのでは?

    Telerik の JustDecompile というデコンパイルできるソフトで、同様のことができるうえ.NET 1.0 と .NET 2.0/3.5 の区別がつきます。

    JustDecompile そのものが .NET で出来ているので、JustDecompile を JustDecompile でデコンパイルしてソースを追えば、もっとスマートな方法があるかもしれません。

    Telerik JustDecompile
    https://www.telerik.com/products/decompiler.aspx
記事No.93061 のレス /過去ログ161より / 関連記事表示
削除チェック/

■93203  Re[8]: .NETのバージョンを取得するには?
□投稿者/ コリアン -(2019/11/27(Wed) 22:34:07)
    なるほど、どうもありがとうございました。
記事No.93061 のレス / END /過去ログ161より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -