2

ファイルの情報プロパティを開こうとしています。以前のバージョンの Windows では、プロパティ ウィンドウが表示され、コード内の次の関数に制御が渡されましたが、Windows 10 では、マウス クリックでファイル プロパティを閉じるまで、関数呼び出しが停止します。
Windows の新しいバージョンでは何が変更されたのでしょうか。
私のコードは以下の通りです:

  private const int SwShow = 5;
    private const uint SeeMaskInvokeidlist = 12;

    public static bool ShowFileProperties(string filename)
    {
        var info = new Shellexecuteinfo();
        info.cbSize = Marshal.SizeOf(info);
        info.lpVerb = "properties";
        info.lpFile = filename;
        info.nShow = SwShow;
        info.fMask = SeeMaskInvokeidlist;
        return ShellExecuteEx(ref info);
    }

    [DllImport("shell32.dll", CharSet = CharSet.Auto)]
    private static extern bool ShellExecuteEx(ref Shellexecuteinfo lpExecInfo);

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public struct Shellexecuteinfo
    {
        public int cbSize;
        public uint fMask;
        public IntPtr hwnd;
        [MarshalAs(UnmanagedType.LPTStr)]
        public string lpVerb;
        [MarshalAs(UnmanagedType.LPTStr)]
        public string lpFile;
        [MarshalAs(UnmanagedType.LPTStr)]
        public string lpParameters;
        [MarshalAs(UnmanagedType.LPTStr)]
        public string lpDirectory;
        public int nShow;
        public IntPtr hInstApp;
        public IntPtr lpIDList;
        [MarshalAs(UnmanagedType.LPTStr)]
        public string lpClass;
        public IntPtr hkeyClass;
        public uint dwHotKey;
        public IntPtr hIcon;
        public IntPtr hProcess;
    }

    static void Main(string[] args)
    {
        Console.WriteLine("Show file info.");

        ShowFileProperties(args[0]);

        Thread.Sleep(TimeSpan.FromSeconds(2));

        Console.WriteLine("File info was shown.");


    }
4

0 に答える 0