在自己的程序中显示其他程序的界面

xiaokan1982 2009-04-09 11:22:50
各位朋友大家好

小弟想写一个远程桌面的小程序。我知道在命令行里调用mstsc就可以打开远程桌面,然后连接就可以。

我现在的想法是能不能让这个远程桌面显示在我自己的程序的UI上。
也就是说,我在我自己的程序上,指定一个区域,专门用来显示远程桌面的画面。

不知道我说的是否清楚,请知道的朋友帮忙,谢谢
...全文
210 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cja03 2009-04-09
  • 打赏
  • 举报
回复

public partial class eTerm_Form : WinFormsUI.Docking.DockContent
{
public eTerm_Form()
{
InitializeComponent();
}

Process process = null;
IntPtr appWin;

[DllImport("user32.dll", SetLastError = true)]
private static extern long SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("user32.dll", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
private static extern long SetWindowPos(IntPtr hwnd, long hWndInsertAfter, long x, long y, long cx, long cy, long wFlags);
[DllImport("user32.dll", SetLastError = true)]
private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);

private void eTerm_Form_Resize(object sender, EventArgs e)
{
if (this.appWin != IntPtr.Zero)
MoveWindow(appWin, 0, 0, this.Width, this.Height, true);
}

private void eTerm_Form_Load(object sender, EventArgs e)
{
try
{
process = System.Diagnostics.Process.Start(Application.StartupPath+"\\eTerm\\eTerm.exe");
process.WaitForInputIdle();
appWin = FindWindow(null, "eTerm订座系统");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error",MessageBoxButtons.OK, MessageBoxIcon.Error);
}

SetParent(appWin, this.Handle);
MoveWindow(appWin, 0, 0, this.Width, this.Height, true);
}

private void eTerm_Form_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
if (!process.HasExited)
process.Kill();
}
catch
{
}
}
}
xiaokan1982 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cja03 的回复:]
C# code
public partial class eTerm_Form : WinFormsUI.Docking.DockContent
{
public eTerm_Form()
{
InitializeComponent();
}

Process process = null;
IntPtr appWin;

[DllImport("user32.dll", SetLastError = true)]
private static extern long SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("u…
[/Quote]


谢谢这位兄弟,太感谢了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧