`
xblia
  • 浏览: 82546 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

其它程序内嵌swt实例_002

 
阅读更多

private void executeProg(String fileName) throws Exception {
		int hHeap = OS.GetProcessHeap();
		TCHAR buffer = new TCHAR(0, fileName, true);
		int byteCount = buffer.length() * TCHAR.sizeof;
		int lpFile = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, byteCount);
		OS.MoveMemory(lpFile, buffer, byteCount);
		SHELLEXECUTEINFO info = new SHELLEXECUTEINFO();
		info.cbSize = SHELLEXECUTEINFO.sizeof;
		info.lpFile = lpFile;
		// 隐藏启动
		info.nShow = OS.SW_HIDE;
		boolean result = OS.ShellExecuteEx(info);
		if (lpFile != 0)
			OS.HeapFree(hHeap, 0, lpFile);
		if (result == false)
			throw new Exception("启动失败!");
	}

	protected void startNotePad() throws Exception {
		// "notepad.exe"为待启动的程序名
		executeProg("notepad.exe");

		// 等待NotePad.exe启动并且初始化完毕,需要根据实际情况调整sleep的时间
		Thread.sleep(1000);

		// "Notepad"为被嵌套程序窗口的ClassName(Win32级别),可以使用Spy++等工具查看
		int notepadHwnd = OS.FindWindow(new TCHAR(0, "Notepad", true), null);

		// &~WS_BORDER去掉内嵌程序边框,这样看起来更像一个内嵌的程序。如果需要显示边框,则将这两行代码删除
		int oldStyle = OS.GetWindowLong(notepadHwnd, OS.GWL_STYLE);
		OS.SetWindowLong(notepadHwnd, OS.GWL_STYLE, oldStyle & ~OS.WS_BORDER);

		// composite为承载被启动程序的控件
		OS.SetParent(notepadHwnd, composite.handle);
		// 窗口最大化
		OS.SendMessage(notepadHwnd, OS.WM_SYSCOMMAND, OS.SC_MAXIMIZE, 0);
	}

	protected void startCMD() throws Exception {
		// "notepad.exe"为待启动的程序名
		executeProg("cmd.exe");

		// 等待NotePad.exe启动并且初始化完毕,需要根据实际情况调整sleep的时间
		Thread.sleep(1000);

		// "Notepad"为被嵌套程序窗口的ClassName(Win32级别),可以使用Spy++等工具查看
		int notepadHwnd = OS.FindWindow(
				new TCHAR(0, "ConsoleWindowClass", true), null);

		// &~WS_BORDER去掉内嵌程序边框,这样看起来更像一个内嵌的程序。如果需要显示边框,则将这两行代码删除
		int oldStyle = OS.GetWindowLong(notepadHwnd, OS.GWL_STYLE);
		OS.SetWindowLong(notepadHwnd, OS.GWL_STYLE, oldStyle & ~OS.WS_BORDER);

		// composite为承载被启动程序的控件
		OS.SetParent(notepadHwnd, composite.handle);
		// 窗口最大化
		OS.SendMessage(notepadHwnd, OS.WM_SYSCOMMAND, OS.SC_MAXIMIZE, 0);
	}
}
 
分享到:
评论

相关推荐

    SWT内嵌火狐浏览器源码

    在SWT中内嵌火狐浏览器,意味着开发者能够创建一个应用程序,其中包含一个可以浏览网页的组件,而这个组件并不依赖于用户本地安装的浏览器。这在开发跨平台的应用程序时非常有用,因为它确保了在所有支持SWT的平台上...

    Java内嵌浏览器eclipse.swt插件版

    "demo eclipse工程实例"可能是一个包含示例代码的Eclipse工程,演示了如何在Java应用中使用SWT的Browser类创建内嵌浏览器。这为初学者提供了快速上手的起点,通过运行和修改示例代码,他们可以了解如何使用SWT来实现...

    DJ Native Swing内嵌浏览器实例

    1. **内嵌浏览器组件**:这个库的核心是内嵌浏览器组件,它可以在Java Swing或Eclipse SWT(标准小部件工具包)的应用程序中无缝使用。这使得开发者能够创建混合型应用程序,其中包含本地桌面功能和网页内容。 2. *...

    在SWING、SWT中嵌入浏览器

    在Java编程环境中,SWING和SWT(Standard Widget Toolkit)是两种常见的图形用户界面(GUI)库,用于创建桌面应用程序。然而,有时我们可能需要在这些应用中集成Web浏览功能,比如显示网页或者运行Web应用。这篇博客...

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    在本示例中,开发者可能使用了DJnative-SWT提供的API来创建一个Swing组件,该组件能够内嵌WebKit浏览器引擎。这通常涉及到以下几个步骤: 1. **引入依赖**:首先,你需要在项目中引入DJnative-SWT和SWT的相关库,...

    如何在JAVA程序中嵌入IE

    总的来说,Java程序中嵌入IE的过程涉及到SWT库的使用,尤其是Windows平台上的动态链接库文件,以及`Display`、`Shell`和`Browser`类的实例化和交互。通过这些步骤,开发者可以创建一个包含内嵌IE浏览器的Java应用...

    java swing 内嵌浏览器

    DJNativeSwing-SWTDemo.jar应该是包含演示程序的可执行jar文件,可以运行查看内嵌浏览器组件的实例。DJNativeSwing-SWT.jar 和 DJNativeSwing.jar 则是库本身,它们提供了实现内嵌浏览器功能所需的类和方法。licence...

    java swt浏览器64位插件

    Java SWT(Standard Widget Toolkit)浏览器64位插件是一个针对Java开发环境的特殊组件,它允许开发者在Java应用程序中嵌入一个功能丰富的浏览器组件。在某些情况下,尤其是那些基于客户端/服务器架构(C/S结构)的...

    java内嵌浏览器源码.doc

    在Java中实现内嵌浏览器,我们可以利用Eclipse SWT(Standard Widget Toolkit)库中的`Browser`类。以下是一个关于如何使用SWT创建内嵌浏览器的详细说明: 1. **引入依赖**: 首先,你需要在项目中引入SWT库。对于...

    嵌入浏览器需要.rar

    嵌入式浏览器在许多应用程序中都有广泛的应用,比如帮助文档查看、在线教程、内嵌的新闻阅读器等。通过SWT,Java开发者可以轻松地将这些功能整合到他们的应用中,而无需离开程序界面。 总之,"Swt嵌入浏览器"涉及的...

    java swt javaFx 整合 自带浏览器 实现 调用网页echart

    SWT提供了一个`Browser`类,允许开发者在Java程序中内嵌一个Web浏览器组件。 **JavaFX** 是Oracle公司推出的新一代富客户端应用开发框架,它提供了丰富的UI控件、2D/3D图形渲染、动画和媒体处理等功能。JavaFX的`...

    Java 实现swing中嵌入html 实例 适合新手

    在Java编程中,Swing库提供了丰富的组件来创建桌面应用程序,但默认情况下它不支持直接显示HTML内容。然而,通过引入第三方库,如DJ Native Swing,我们可以实现在Swing应用中嵌入HTML的功能,这对于创建复杂的用户...

    java技术体系图

    - **Applet**:早期用于浏览器内嵌Java应用程序的技术。 - **Socket编程**:基于TCP/IP协议实现客户端和服务器间通信的基本方式。 - **NIO**:引入了新的非阻塞IO模型,提高了网络应用的性能。 - **RMI**:实现了...

    Eclipse权威开发指南2.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 JDT用户界面概述.....

    Eclipse权威开发指南3.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 ...

    Eclipse权威开发指南1.pdf

    2.4.6 在Eclipse中使用其他计算机程序..... 55 2.4.7 性能..... 60 2.5 练习概述...... 61 2.6 本章小结...... 61 2.7 参考文献...... 62 第3章 使用Java开发工具 63 3.1 JDT入门...... 64 3.1.1 ...

Global site tag (gtag.js) - Google Analytics