精华内容
下载资源
问答
  • 窗口切换如果有两个Unity3d的游戏需要通过程序进行窗口切换,Unity3d自身是没有提供相应的函数或者接口去完成这一部分功能,Unity3d窗口的创建和控制都是和平台相关的,所有这部分需要提供调用平台相关的代码,对于...

    窗口切换

    如果有两个Unity3d的游戏需要通过程序进行窗口切换,Unity3d自身是没有提供相应的函数或者接口去完成这一部分功能,Unity3d窗口的创建和控制都是和平台相关的,所有这部分需要提供调用平台相关的代码,对于Windows程序,需要调用Win32的API来实现。

    对于Windows比较熟悉的朋友可能会说,直接调用SetForegroundWindow不就可以的么,但是请注意,该API在很多情况下是不起作用的,特别是跨进程的窗口切换。 详细的内容请参考API的MSDN的官方文档 https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx

    那如何在Unity3d程序中自动切换窗口呢,其基本事项就是模拟用户通过Alt+Tab按键切换, C++的windows 程序可以参考:
    http://www.codeproject.com/Tips/76427/How-to-bring-window-to-top-with-SetForegroundWindo

    我在Windows 7 + unity4.6 用的是 方法1,代码如下:

    void SetForegroundWindowInternal(HWND hWnd)
    {
        if(!::IsWindow(hWnd)) return;
    
        BYTE keyState[256] = {0};
        //to unlock SetForegroundWindow we need to imitate Alt pressing
        if(::GetKeyboardState((LPBYTE)&keyState))
        {
            if(!(keyState[VK_MENU] & 0x80))
            {
                ::keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
            }
        }
    
        ::SetForegroundWindow(hWnd);
    
        if(::GetKeyboardState((LPBYTE)&keyState))
        {
            if(!(keyState[VK_MENU] & 0x80))
            {
                ::keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
            }
        }
    }

    在unity3d中调用Dll中的上述接口,基本的封装方法如下:

            [DllImport("Foreground")]
            private static extern void SetForegroundWindowInternal(int hWnd);
            //EnumWindows函数,EnumWindowsProc 为处理函数
            [DllImport("user32")]
            private static extern int EnumWindows(EnumWindowsProc ewp, int lParam);
    
            [DllImport("user32")]
            private static extern int GetWindowText(int hWnd, StringBuilder title, int size);    
            private delegate bool EnumWindowsProc(int hWnd, int lParam);
    
    具体实现如下:
            private string cachedWindowName;
            private int cachedWindowHandle;
            private bool EnumWindowName(int hWnd, int lParam)
            {
                var text = new StringBuilder(lParam);
                GetWindowText(hWnd, text, lParam);
    
                if (text.Length > 0 && text.ToString() == cachedWindowName)
                {
                    cachedWindowHandle = hWnd;
                    return false;
                }
                // please note that true means continue do the enumeration, false means exit.
                return true;
            }
    
            private void BringtoTopOnWindows(string windowName)
            {
                cachedWindowHandle = 0;
                if (!string.IsNullOrEmpty(windowName))
                {
                    cachedWindowName = windowName;
                    EnumWindows(EnumWindowName, windowName.Length + 1);
                }
    
                if(cachedWindowHandle != 0)
                {
                    SetForegroundWindowInternal(cachedWindowHandle);
                }
            }

    去边框

    最后给大家介绍一下如何去掉unity3d windows 下的边框,其实有两种方法,一种就是Win32的API,去掉Windows的边框,其实Unity3d还提供了另外一种方法,就是命令行参数: popupWindow,具体参考官方文档:
    这里写图片描述

    展开全文
  • WindowsMSDos窗口下打开指定目录

    千次阅读 2018-05-10 09:49:32
    有一个比较常用的操作就是切换目录,虽然比较简单,但由于个人一直使用的方法需要执行两步来完成,今天突然想有没有更简化的操作呢,于是网上查了一下,除了自己经常使用的方法外,又发现了两种方法。具体操作如下...

    在Windows环境下,经常要使用cmd命令打开dos窗口来进行操作。有一个比较常用的操作就是切换目录,虽然比较简单,但由于个人一直使用的方法需要执行两步来完成,今天突然想有没有更简化的操作呢,于是在网上查了一下,除了自己经常使用的方法外,又发现了两种方法。具体操作如下:

    第一种方法:也是本人一直使用的方法
    同时按下键盘上的Win+R按键,打开如下窗口
    这里写图片描述
    输入cmd命令后,回车,例如我想进入目录F:\software\nexus-3.6.0-02-win64\nexus-3.6.0-02\bin下,直接在dos窗口下输入cd F:\software\nexus-3.6.0-02-win64\nexus-3.6.0-02\bin回车,但并没有直接切换到目标目录下,如下图第一步,紧接着输入F:,然后才进入目标目录下,如下图第二步
    这里写图片描述

    第二种方法:一步完成
    按照第一种方法进入dos窗口下后,直接输入 cd /d F:\software\nexus-3.6.0-02-win64\nexus-3.6.0-02\bin回车,即切换到目标目录下,如下图所示
    这里写图片描述

    第三种方法:不用dos命令窗口,直接在目标目录下操作

    1. 通过Windows资源管理器打开想要进入的目录
    2. 按住键盘上的“Shift”键的同时,右击文件夹窗口,从弹出的右键菜单中选择“在此处打开命令窗口”项
      这里写图片描述

    这里写图片描述

    展开全文
  • Windows窗口程序设计中,按钮、文本编辑框等控件都作为一个子窗口在WM_CREATE事件中创建的。其中按钮类button有多种类型和风格,常见的单选钮、复选钮、分组框也此类中,见下表: 子窗口控件:按钮类button ...

    Windows窗口程序设计中,按钮、文本编辑框等控件都作为一个子窗口在WM_CREATE事件中创建的。其中按钮类button有多种类型和风格,常见的单选钮、复选钮、分组框也在此类中,见下表:

    子窗口控件:按钮类button
    
    按钮类型,可以是按钮风格与窗口风格的组合
    
    窗口风格:
    WS_CHILD             子窗口,必须有
    WS_VISIBLE           窗口可见,一般都有
    WS_DISABLED          禁用窗口,创建初始状态为灰色不可用的按钮时使用
    WS_TABSTOP           可用Tab键选择
    WS_GROUP             成组,用于成组的单选按钮中的第一个按钮
    
    按钮风格:
    BS_PUSHBUTTON        下压式按钮,也即普通按钮
    BS_CHECKBOX          复选按钮,不常用
    BS_AUTOCHECKBOX      含自动选中状态的复选按钮
    BS_RADIOBUTTON       单选按钮,不常用
    BS_AUTORADIOBUTTON   含自动选中状态的单选按钮
    BS_3STATE            三态复选按钮,不常用
    BS_AUTO3STATE        含自动选中状态的三态复选按钮
    BS_GROUPBOX          分组框,用来放置单选或复选按钮的
    BS_OWNERDRAW         用于自定义形状的类型,比如画个圆形的按钮
    
    以上风格指定了创建的按钮类型,不能同时使用,但必须有其一
    其中非自动类型的按钮需要自己编程来实现选中与否的状态切换
    
    BS_BITMAP            按钮上将显示位图
    BS_DEFPUSHBUTTON     设置为默认按钮,只用于下压式按钮,一个对话框中只能指定一个默认按钮
    
    创建方法:
            HWND hwndButton;
            hwndButton = CreateWindow ( TEXT("button"),        /*子窗口类名称*/
                    TEXT("Command Button"),                    /*按钮上的文字*/
           			WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,     /*按钮类型*/
               		left, top, width, height,                  /*位置*/
                    hwnd,                                      /*父窗口句柄*/
                    (HMENU)IDcmdButton,                        /*按钮ID,一个自定义整型常量*/
                    ((LPCREATESTRUCT) lParam)->hInstance, NULL);
    
    		if (!hwndButton) MessageBox(NULL,"创建按钮失败","Message",MB_OK|MB_ICONERROR);
    		ShowWindow(hwndButton,SW_SHOW);
            UpdateWindow(hwndButton);
    
    

    再来用DEV-C++的windows application示例代码,创建这十种button类按钮。(代码获得方法见上一篇博文《C++ 用DEV-C++建一个Windows窗口程序带文本框和命令按钮》)

    先建一个结构数组,存放这些按钮类型常数:

    struct button {
    	int swStyle;
    	const char *szText;
    }
    Buttons[] = {
    	BS_PUSHBUTTON,		TEXT("普通按钮"),
    	BS_DEFPUSHBUTTON,	TEXT("默认按钮"),
    	BS_RADIOBUTTON,		TEXT("单选按钮"),
    	BS_CHECKBOX,		TEXT("复选按钮"),
    	BS_3STATE,			TEXT("三态按钮"),
    	BS_AUTORADIOBUTTON,	TEXT("自动单选按钮"),
    	BS_AUTOCHECKBOX,	TEXT("自动复选按钮"),
    	BS_AUTO3STATE,		TEXT("自动三态按钮"),
    	BS_GROUPBOX,		TEXT("按钮分组框"),
    	BS_OWNERDRAW,		TEXT("自画类型按钮")
    };
    

    然后在WM_CREATE事件中遍历数组创建全部按钮,在WM_COMMAND事件中写入鼠标单击响应代码就完成了:

    #include <windows.h>
    
    struct button {
    	int swStyle;
    	const char *szText;
    }
    Buttons[] = {
    	BS_PUSHBUTTON,		TEXT("普通按钮"),
    	BS_DEFPUSHBUTTON,	TEXT("默认按钮"),
    	BS_RADIOBUTTON,		TEXT("单选按钮"),
    	BS_CHECKBOX,		TEXT("复选按钮"),
    	BS_3STATE,			TEXT("三态按钮"),
    	BS_AUTORADIOBUTTON,	TEXT("自动单选按钮"),
    	BS_AUTOCHECKBOX,	TEXT("自动复选按钮"),
    	BS_AUTO3STATE,		TEXT("自动三态按钮"),
    	BS_GROUPBOX,		TEXT("按钮分组框"),
    	BS_OWNERDRAW,		TEXT("自画类型按钮")
    };
    
    /* This is where all the input to the window goes to */
    LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
    	int num = sizeof Buttons / sizeof Buttons[0];
    	switch(Message) {
    		//在 WM_CREATE 事件中创建所有按钮类型 
    		case WM_CREATE: {
    			for (int i = 0; i < num; i++) {
    				CreateWindow( TEXT("button"),
    				Buttons[i].szText,
    				WS_CHILD | WS_VISIBLE | WS_TABSTOP | Buttons[i].swStyle,
    				80 + (i >= num / 2 ? 240 : 0),
    				60 + i * 50 - (i >= num / 2 ? 250 : 0),
    				160, 40,
    				hwnd,
    				(HMENU)i,
    				((LPCREATESTRUCT) lParam)->hInstance,
    				NULL);
    			}
    			break;
    		}
    		
    		//在 WM_COMMAND 事件中会响应button类的鼠标单击,但其中GROUPBOX不响应操作
    		case WM_COMMAND: {
    			MessageBox(NULL, Buttons[LOWORD(wParam)].szText, "Button_Click()", MB_OK);
    			break;
    		}
    				
    		/* Upon destruction, tell the main thread to stop */
    		case WM_DESTROY: {
    			PostQuitMessage(0);
    			break;
    		}
    		
    		/* All other messages (a lot of them) are processed using default procedures */
    		default:
    			return DefWindowProc(hwnd, Message, wParam, lParam);
    	}
    	return 0;
    }
     
    /* The 'main' function of Win32 GUI programs: this is where execution starts */
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    	WNDCLASSEX wc; /* A properties struct of our window */
    	HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    	MSG msg; /* A temporary location for all messages */
     
    	/* zero out the struct and set the stuff we want to modify */
    	memset(&wc,0,sizeof(wc));
    	wc.cbSize		 = sizeof(WNDCLASSEX);
    	wc.lpfnWndProc	 = WndProc; /* This is where we will send messages to */
    	wc.hInstance	 = hInstance;
    	wc.hCursor		 = LoadCursor(NULL, IDC_ARROW);
    	
    	/* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    	wc.lpszClassName = "WindowClass";
    	wc.hIcon		 = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
    	wc.hIconSm		 = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */
     
    	if(!RegisterClassEx(&wc)) {
    		MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    		return 0;
    	}
     
    	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Button Style",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
    		CW_USEDEFAULT, /* x */
    		CW_USEDEFAULT, /* y */
    		640, /* width */
    		480, /* height */
    		NULL,NULL,hInstance,NULL);
     
    	if(hwnd == NULL) {
    		MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
    		return 0;
    	}
     
    	/*
    		This is the heart of our program where all input is processed and 
    		sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
    		this loop will not produce unreasonably high CPU usage
    	*/
    	while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */
    		TranslateMessage(&msg); /* Translate key codes to chars if present */
    		DispatchMessage(&msg); /* Send it to WndProc */
    	}
    	return msg.wParam;
    }

    运行效果图:

    展开全文
  • Windows窗口及对话框

    千次阅读 2016-02-18 22:19:46
     在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域...
    1、Windows窗口介绍
        
         在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。而窗口之间的关系有两种:owner-owned(拥有-被拥有关系)、
    parent-child(父-子关系)。
         如果单纯说明窗口的类型,那么Windows中定义了3种窗口类型:
         CHILD           :子窗口
         POPUP          :弹出窗口,适合作为主窗口。
         OVERLAPPED:重叠式窗口,适合作为主窗口,默认具有标题栏等属性。
         两种窗口风格:
         WS_CLIPSIBLING    :适用于同一级子窗口之间,表示当某设置了该风格的子窗口需要重绘时,被遮挡区域不进行重绘;
         WS_CLIPCHILDREN:适用于父窗口和子窗口之间,表示当某设置了该风格的父窗口需要重绘时,被遮挡区域不进行重绘;
    在Windows窗口中,overlapped窗口和popup窗口肯定具有WS_CLIPSIBLING风格,即使在代码中人为去掉该风格,Windows还是会自动添加上。

    2、作为子窗口的控件

         控件属于子窗口,是系统已经定义好的窗口类,不需要进行注册,也不需要添加消息处理函数。只需在主窗口得到WM_CREATE消息时,建立子窗口即可。
         控件的创建方式:
         a.随对话框资源一同创建,属于可视化编程方式可以方便地设置各个控件的属性;
         b.CreateWindow创建,代码控制,创建的位置更为精准;

         所有控件都有且只有一个ID,通过查看资源的属性即可看到操作控件所使用的控件句柄可由GetDigItem函数得到。此时的父窗口更像一个消息中转站,子控件发生的任何行为都会给父窗口发送消息,父窗口得到消息之后将根据消息的内容,或是给其他子控件发送控制消息,亦或其他操作。
         一般情况下,我们都是直接将控件拖拽到对话框中在属性栏中设置ID和标题即可,常用控件主要有Button/CheckBox/EditControl/ComboBox/StaticText/Picture Control/Process Control/List Control/Table Control等。

    3、对话框

         用途:
         a.发送消息:应用程序向用户发送消息时使用,常见有警告消息框,提示消息框等;
         b.接收消息:应用程序希望得到用户输入时使用;
         c.提供消息:应用程序向用户提供信息时使用;

         对话框与一般应用程序子窗口比较:
         a.创建形式:在资源描述文件定义对话框模板完成创建;
         b.独立的消息处理函数:应用程序在消息循环中判断消息队列中的消息,若为对话框消息,则将消息发往对话框处理函数进行处理;
         c.包含多种控件:对话框中根据需要包含各式形状和功能的控件,应用程序通过控件完成与用户之间的对话框交互。

         对话框分类:
         a.模态对话框:要求用户必须结束该对话框之后才可切换到其他窗口,即该对话框与同一应用程序中的其他窗口互锁;
                               使用DialogBox函数创建,自带消息循环。
         b.非模态对话框:允许在结束该对话框之前切换到其他窗口操作;使用CreateDialog函数创建,需编写消息循环。

         
    展开全文
  • 10.7.3之后的系统中,设置准许管理员可以登陆到被已登陆用户锁住的系统。 本文使用一个命令实现之。 并展示与Windows的操作的异同,并初步讨论各自的优缺点。
  • Windows 7下通过anaconda安装tensorflow

    万次阅读 2017-08-11 17:02:26
    本贴解决目的:Windows 7下通过anaconda安装tensorflow今天说一下通过Anaconda安装tensorflow,并安装运行spyder编译器。网上很多教程全,官网的也没有详细讲解,通过我的不断试错和寻找解决方案,给大家一个正确...
  • 在Windows中也轻易做到使用Windows系统中,经常会用到用命令窗口执行相关文件。 而我以前的操作是: WIN+R –> 调出运行输入CMD –> 从用户文件夹切换到相关文件所在文件夹 –> 执行代码 这一段操作下来,基本...
  • Windows 7

    千次阅读 2010-03-31 19:00:00
    系统简介 系统名称:Windows 7 核心版本号:Windows NT 6.1 开发代号:Blackcomb及Windows Vienna 测试历史: 2007年12月20日 :windows 7 Milestone1(build 6519.1) 2008年12月12日 :windows 7 beta...
  • jar包在windows使用启动方式以及假死解决方案参考...java -jar xxx.jar(jar包的路径),最普通简单的方式,通过windows的命令行窗口启动,并命令行窗口运行,输出。可以启动的时候增加参数指定启动的端口(se...
  • windows安装jdk7和jdk8 、jdk版本切换

    千次阅读 2017-12-21 11:30:07
    jdk下载安装、环境变量配置、jdk版本切换
  • Android系统中,同一时刻只有一个Activity组件是处于激活状态的,因此,当ActivityManagerService服务激活了一个新的Activity组件时,它就需要通知WindowManagerService服务将该Activity组件的窗口显示出来,这会...
  • Windows下Python版本的切换

    千次阅读 2018-09-28 14:07:08
    通常在Windows系统下我们可能安装了多个Python版本,那么该如何进行版本的切换呢?下面就Python2.7与Python3.0版本进行简单说明。 1、首先需要在Windows上安装Python2.X与Python3.X的版本的Python。安装完成后通过...
  • Windows 窗口发送消息参数详解

    万次阅读 2020-06-24 15:32:25
    窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg,wparam,iparam) 英文函数原型: sendmessage(hwnd,...
  • 其实也没啥说的,文章就是写这两个东西的,会附带代码的。  最重要的是,今天... 第一个是窗口切换,重点还是switch,没有想到除了swcitch case,这里还看见他。from selenium import webdriver import time d
  • 具体原因清楚,但是大家可以照我的做法尝试一下:   1、首先检查控制面板里面的Windows防火墙是否关闭(必须检查一下,这个极有可能)   2、命令提示符中输入net stop mysql并回车,使mysql服务停止运行   3...
  • windows在执行Bat后,如何保留窗口

    千次阅读 2018-07-11 12:51:00
    windows中 cmd输入 cmd /?后的帮助信息 启动 Windows 命令解释器的一个新实例 CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] string] /C 执行字符串指定的命令...
  • Windows窗口消息大全

    千次阅读 2012-10-22 11:06:46
     IDSTR(WM_INPUTLANGCHANGE),"切换输入法后,系统会发送本消息给受影响的顶层窗口",  IDSTR(WM_TCARD),"程序已初始化windows帮助例程时会发送本消息给应用程序",  IDSTR(WM_HELP),"按下后,若某菜单是激活的,...
  • windows10多桌面创建 切换 和分屏

    千次阅读 2017-04-23 12:14:00
    windows键+Tab 可以创建和切换新的桌面 win+ctrl+左右箭头 可以切换桌面   Aero Snap是Win7时代增加的一项窗口排列功能,俗称“分屏”。一个最简单例子,就是当你把窗口拖至屏幕两边时,系统会自动以1/2的比例...
  • 在windows 7下安装node.js

    千次阅读 2011-07-04 12:58:40
    这里只是纯粹的搭建,连环境都没有,还玩什么服务器端js,一切都成了浮云,让我们先搭建一个... 对的,windows7下的搭建,你只需一步一步跟着我做,就ok了,不用去了解过多的细节,那不是我们现在要关心的,我们现在首
  • 本文内容涵盖DOS窗口的打开方式以及常用DOS命令的输入,以便对电脑快速使用。 打开DOS命令的方式:Windows键 + R 进入运行界面输入 cmd 最后点击回车。 然后便进入DOS命令窗口。 *常用DOS命令集锦 ...
  • 之前我是WM_ENDSESSION中弹出一个模态对话框来提醒,XP中基本工作正常,Win7中大多数时候工作正常,但是有时候会出现提醒现象。我想这中间是不是有什么玄机,Windows的关机方案从XP到Win7到底发生了什么变化...
  • Windows - - cmd 命令行清空命令窗口及命令大全

    万次阅读 多人点赞 2018-10-11 15:28:44
    Windows 使用cmd 命令行清空窗口里的信息 cls cmd 命令大全  1. gpedit.msc-----组策略  2. sndrec32-------录音机  3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否正确实现域名...
  • 查看“本地连接”的属性,并切换到“高级”选项卡后,提示:“Windows不能显示此连接的属性。Windows Management Instrumentation(Windows管理体系结构组件WMI)信息可能损坏。要更正此问题,请使用系统还原将...
  •   1、用alt + tab键切换至移出去的窗口,将其激活,虽然看到。   2、然后使用alt + space(空格) 激活菜单。   3、再按一下 M (移动),即可激活移动功能。   4、最后通过 上下左右方向键就可以移动窗口的位置了...
  • Windows系统cmd窗口的输入(cin)终止符   C++的输入操作"cin>>", 把值传入特定的类型, 如传入std::string类型, 则回车(Enter)无法终止输入操作, 则需要"Ctrl+Z"进行终止. 具体方法: 输入数据完成, (1) 回车(Enter) ...
  • Metasploit进行渗透windows7

    千次阅读 2017-08-25 22:50:47
    很多朋友对使用Metasploit利用后门程序进行渗透windows7都比较感兴趣,针对这些以下业内相关专家就给大家介绍下,当下黑客怎么利用Metasploit进行渗透windows7的。设定目标主机为:cn_win7_x86_7601虚拟机,地址为:...
  • Cocos Creator实现windows窗口全屏

    千次阅读 2018-12-29 23:34:54
    发布Cocos Creator来发布全屏的windows游戏客户端,默认是窗口模式的。要实现全屏需要改动Cocos Creator提供的desktop端构建源码,要修改的文件为: # 通过glfw创建全屏窗口 C:\CocosCreator\resources\cocos2d-x\...
  • 众所周知,在Windows 7上可以允许用户最高权限的运行帐号是Administrator,但有些系统操作这个权限仍不够,系统无限制权限的帐户是内置的System,可以对系统为所欲为,比如删除注册表中允许删除的字段,查看、修改...
  • Windows编程中的子窗口控件设计

    千次阅读 2016-05-16 20:27:50
    (注:本文转载自... 取父窗口窗口句柄: hwndParent = GetParent (hwnd) ; 发送消息: SendMessage (hwndParent, message, wParam, lParam) ; 预定义的控件有: 按钮、复选框、编辑

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,633
精华内容 39,453
关键字:

在windows7不能完成窗口切换