Home > C# > 目的別資料

C#のコードで、外部のアプリケーションを起動する

最終更新日

概要

C#のコード内から、外部のアプリケーション電卓を起動します。

コード

メインウィンドウ 電卓

[xaml]


<Window x:Class="WpfExtApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="150" Width="200">
    <Grid>
        <Button Name="btn0" HorizontalAlignment="Center" 
        			VerticalAlignment="Center" Width="100" Height="50" Click="btn0_Click">
           電卓起動
        </Button>

    </Grid>

</Window>
				

[xaml.cs]


using System.Windows;

namespace WpfExtApp
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btn0_Click(object sender, RoutedEventArgs e)
        {
            System.Diagnostics.Process.Start("calc.exe");
        }
    }
}
				

説明

メインウィンドウの「電卓起動」ボタンを押すと電卓が起動されます。

情報元のサイト

C#で他アプリの文字列を取得

電卓を起動した状態で実行するとコンソールに電卓の出力結果を取得します。

C#で他のアプリケーションのテキストボックスの文字列を取得する際の手順

  1. ウインドウのタイトルをキーワードに起動しているアプリを探しハンドルを取得する
  2. 取得したアプリのハンドルから、さらに取得したい文字が列が入ったコントロールを探しハンドルを取得する
  3. 取得したコントロールのハンドルから文字列を取得

コントロールの検索をするときにクラス名をキーにします。

C#で他アプリケーションを操作するための基礎知識

Windowsでは、UIの要素は、「ウィンドウ」という基底クラスから、派生するオブジェクトが使われています。 それらのオブジェクトには、一意のIDが割り当てられます。これを「ウィンドウハンドル」と呼びます。 これを使って、メッセージをやり取りするので、この「ウィンドウハンドル」を取得すると、他のアプリケーションを操作できるということのようです。

「ウィンドウハンドル」を取得するには、Spyツールを使用するのが一般的なようです。

動作確認環境

Microsoft Visual Studio Express 2013 for Desktop 64bit
Windows 8.1 pro 64bit

関連ページ

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」