u3d 发布的程序 窗口位置的改变

using System;
using System.Runtime.InteropServices;
using UnityEngine;  

public class WindowMOD : MonoBehaviour
{
    public Rect screenPosition;
    [DllImport("user32.dll")]
    static extern IntPtr SetWindowLong (IntPtr hwnd,int  _nIndex ,int  dwNewLong);
    [DllImport("user32.dll")]
    static extern bool SetWindowPos (IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
    [DllImport("user32.dll")]
    static extern IntPtr GetForegroundWindow ();  

    const uint SWP_SHOWWINDOW = 0x0040;
    const int GWL_STYLE = -16;
    const int WS_BORDER = 1;
    const int WS_POPUP = 0x800000;  

    void Start ()
    {
        SetWindowLong(GetForegroundWindow (), GWL_STYLE, WS_POPUP);//将网上的WS_BORDER替换成WS_POPUP
        bool result = SetWindowPos (GetForegroundWindow (), 0,(int)screenPosition.x,(int)screenPosition.y, (int)screenPosition.width,(int) screenPosition.height, SWP_SHOWWINDOW);
    }
}  
时间: 2024-10-14 11:58:48

u3d 发布的程序 窗口位置的改变的相关文章

c#控制其他程序窗口位置

//调用Win32 API [System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint = "MoveWindow")] public static extern bool MoveWindow(System.IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); //打开窗体方法,fileNam

除了创建时指定窗口位置之外,还有3种移动窗口位置的办法(移动的同时往往可以改变窗口大小)(SetWindowPos最有用,它有许多标志位)

首先,在创立窗口对象的时候,CreateWindowEx就可以指定窗口的位置.除此之外,还有三种方法可以改变窗口的位置: procedure TWinControl.CreateWindowHandle(const Params: TCreateParams); begin // 根据之前准备的Params参数使用API创建窗口.其10个参数都是Params的参数,0表示Menu,WindowClass的十项内容只用到了hInstance一项 // important 控件移到正确的显示位置,就

Android开发5:应用程序窗口小部件App Widgets的实现

前言 本次主要是实现一个Android应用,实现静态广播.动态广播两种改变 widget内容的方法,即在上篇博文中实验的基础上进行修改,所以此次实验的重点是AppWidget小部件的实现啦~ 首先,我们简单说一下Widget是一个啥玩意~ 应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新.你可以通过一个App Widget provider来发布一个Widget.可以容纳其它App Widget的应用程序组件被称为App Widge

窗口移动、改变大小的有关消息

将要提到的四条消息是:WM_MOVE.WM_SIZE.WM_ACTIVATE.WM_PAINT. 头两个是很简单的.当窗口被用户移动时将发送WM_MOVE消息,窗口新位置的坐标储存在lparam中.(消息在lparam和wparam中被进一步描述,它们是消息控制函数的参数)lparam的低端字中存储窗口客户区左上角的坐标x,高端字中存储坐标y.当窗口的大小被改变时,将发送WM_SIZE消息.同WM_MOVE消息差不多,lparam的低端字中存储客户区的宽度,高端字存储高度.同WM_MOVE不同的

发布delphi程序(build with runtime package)要带哪些文件

发布delphi程序(build with runtime package)要带哪些文件? Delphi提供两种方式来编译你的程序:使用包或者是单独的exe 使用包,你可以使用如下方法设置: 项目选项(菜单project->options->Packages页), 在Runtimes packages中勾选Build with runtime packages.这样你就能够使用包来编译了. 但不是这里所有的包都是你需要,这里包含了Delphi中安装的所有的包.如果环境改变了,可能你的程序就执行

Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)过程分析

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8372924 在前面一篇文章中,我们分析了Android应用程序窗口的绘图表面的创建过程.Android应用程序窗口的绘图表面在创建完成之后,我们就可以从上到下地绘制它里面的各个视图了,即各个UI元素了.不过在绘制这些UI元素之前,我们还需要从上到下地测量它们实际所需要的大小,以及对它们的位置进行合适的安排,即对它们进行合适的布局.在本文中,我们

WPF 打开第三方程序并让程序窗口置顶

需要用到几个Win32函数: FindWindow GetWindowRect SetWindowPos //获取第三方程序窗口句柄 IntPtr hwnd = (IntPtr)Win32.FindWindow(null, "第三方程序窗口标题"); //获取窗口的位置和大小 Win32.GetWindowRect(hwnd, out rect); //设置窗口位置,第二个参数的意思是置顶,最后一个参数的意思是不可改变大小 Win32.SetWindowPos(hwnd, -1, re

Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析

http://blog.csdn.net/luoshengyang/article/details/8223770 在前文中,我们分析了Android应用程序窗口的运行上下文环境的创建过程.由此可知,每一个Activity组件都有一个关联的ContextImpl对象,同时,它还关联有一个Window对象,用来描述一个具体的应用程序窗口.由此又可知,Activity只不过是一个高度抽象的UI组件,它的具体UI实现其实是由其它的一系列对象来实现的.在本文中,我们就将详细分析Android应用程序窗口

Android应用程序窗口(Activity)与WindowManagerService服务的连接过程分析

在前两文中,我们分析了Activity组件的窗口对象和视图对象的创建过程.Activity组件在其窗口对象和视图对象创建完成之后,就会请求与WindowManagerService建立一个连接,即请求WindowManagerService为其增加一个WindowState对象,用来描述它的窗口状态.在本文中,我们就详细分析Activity组件与WindowManagerService的连接过程. 我们从两方面来看Activity组件与WindowManagerService服务之间的连接.一方