私は、MicrosoftAccessで動作するようにこの質問に対するLukeQuinaneの回答を実装しようとしています。
私が使用しているコードは、回答に記載されているものとまったく同じですが、便宜上、以下に示しています。言うまでもなく、私のWindowsフォームはパネルとボタンで構成されています。
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Process p = Process.Start("MSACCESS.exe");
p.WaitForInputIdle();
SetParent(p.MainWindowHandle, panel1.Handle);
}
[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
private void Form1_Load(object sender, EventArgs e)
{
}
}
Microsoft Accessは正常に起動しますが、パネル内に配置しようとすると消えます。
に置き換えるMSACCESS.exe
とnotepad.exe
、プログラムは期待どおりにメモ帳で機能します。
この手順をMicrosoftAccessで機能させるために、何か特別なことをする必要がありますか?