【COM】Shell.Applicationを使ってみる。
- 2012.12.10 Monday
- 20:47
JUGEMテーマ:コンピュータ
完全にNetOfficeが関係なくなったので、カテゴリーは「.NET Framework」にしました。
COMを調べていたところ「Shell.Application」というものを利用してサンプルコードを書いているサイト様をよく見かけるので、自分もちょいと使ってみることにしてみました。
■起動しているエックスプローラーを表示する。
using System;
using System.Runtime.InteropServices;
完全にNetOfficeが関係なくなったので、カテゴリーは「.NET Framework」にしました。
COMを調べていたところ「Shell.Application」というものを利用してサンプルコードを書いているサイト様をよく見かけるので、自分もちょいと使ってみることにしてみました。
■起動しているエックスプローラーを表示する。
using System;
using System.Runtime.InteropServices;
namespace Art55.NetOfficeDemo20121210_002
{
class Program
{
static void Main()
{
Type instanceType = Type.GetTypeFromProgID("Shell.Application");
dynamic shellApplicaition = Activator.CreateInstance(instanceType);
dynamic windows = shellApplicaition.Windows;
foreach (dynamic window in windows)
{
Console.WriteLine(window.Name);
Marshal.ReleaseComObject(window);
}
Marshal.ReleaseComObject(windows);
Marshal.ReleaseComObject(shellApplicaition);
{
class Program
{
static void Main()
{
Type instanceType = Type.GetTypeFromProgID("Shell.Application");
dynamic shellApplicaition = Activator.CreateInstance(instanceType);
dynamic windows = shellApplicaition.Windows;
foreach (dynamic window in windows)
{
Console.WriteLine(window.Name);
Marshal.ReleaseComObject(window);
}
Marshal.ReleaseComObject(windows);
Marshal.ReleaseComObject(shellApplicaition);
}
}
}
■ファイル名を指定して実行する。
using System;
using System.Runtime.InteropServices;
}
}
■ファイル名を指定して実行する。
using System;
using System.Runtime.InteropServices;
namespace Art55.NetOfficeDemo20121210_002
{
class Program
{
static void Main()
{
Type instanceType = Type.GetTypeFromProgID("Shell.Application");
dynamic shellApplicaition = Activator.CreateInstance(instanceType);
shellApplicaition.FileRun();
Marshal.ReleaseComObject(shellApplicaition);
}
}
}
他にもコントロールパネルを表示するとか、エックスプローラーでできそうな操作をCOMでオートメーション化できそうです。調べてみると面白いかも。C++やVBで書かれているサンプルコードがざくざく出てくるので、結構楽しいです(笑)
{
class Program
{
static void Main()
{
Type instanceType = Type.GetTypeFromProgID("Shell.Application");
dynamic shellApplicaition = Activator.CreateInstance(instanceType);
shellApplicaition.FileRun();
Marshal.ReleaseComObject(shellApplicaition);
}
}
}
他にもコントロールパネルを表示するとか、エックスプローラーでできそうな操作をCOMでオートメーション化できそうです。調べてみると面白いかも。C++やVBで書かれているサンプルコードがざくざく出てくるので、結構楽しいです(笑)