如何使用自己的UI Design vb.net启动任何应用程序

时间:2015-02-13 16:32:39

标签: vb.net windows operating-system exe

我使用此代码:

Shared Sub OpenApplication(ByVal ApplicationPath As String)
    Dim p As Process
    Dim ShowForm As New Form
    Dim FormPanel As New Panel
    FormPanel.Dock = DockStyle.Fill
    ShowForm.Controls.Add(FormPanel)
    p = Process.Start(ApplicationPath)
    Threading.Thread.Sleep(500)
    SetParent(p.MainWindowHandle, FormPanel.Handle)
    ShowForm.Show()
End Sub

但它在带有边框的面板中运行应用程序。 如果我制作自己的虚拟操作系统,如何将边框更改为无? 像Windows 7有自己的形式边框,Windows 8和Mac也是如此。 但我自己制作边框。它的图形,如何让应用程序使用我的边框?

这是一些例子(我无法发布图片):

Windows 8 Notepad with Their UI Design (it's Form Border for me)

Windows 7 Notepad with Their UI Design

这是我的UI设计:

(抱歉,我无法插入更多的2个链接,删除http中的空格:“Space”//)

http://40-89-67-30-21.weebly.com//files/theme/Notepad.png

如何在我的虚拟操作系统中双击notepad.exe或其他.exe文件时这样做? (这是编辑版!):

http://40-89-67-30-21.weebly.com//files/theme/Notepad_edited.png

它使用我自己的UI设计运行exe。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

默认情况下,第三方应用程序不支持第四方开发人员进行品牌重塑,甚至特定于操作系统的编码约定也不会强迫他们这样做,除了支持品牌推广操作系统,如尊重system colorsaccessibility features等。

为了实现这一点,您必须执行大量低级别黑客攻击,拦截UI消息(如WM_NCCALCSIZEWM_PAINT)等,或者替换包含UI的完整库使用您自己的绘制API(如GDI32.DLL)。

所有这些都需要精确的工作,对各种低级方面的良好理解以及与系统其余部分协调良好的代码以及大约数千行代码,包括一些native (not managed) code

它可行,但不简单,请参阅例如Stardock's WindowBlinds

另见:

  • Google搜索windows skins