精华内容
下载资源
问答
  • 2017-06-10 11:51:49

    Windows程序的菜单,分为三大类:系统菜单、弹出式菜单(右键菜单)、顶层菜单(下拉式菜单)。

    系统菜单

    在windows程序左上角的图标点击鼠标左键、或者在标题栏点击鼠标右键,出现的就是系统菜单。主要内容有:还原、移动、大小、最小化、最大化、关闭。

    1、获取系统菜单:

    HMENU WINAPI GetSystemMenu( _In_ HWND hWnd,   _In_ BOOL bRevert);

    参数:bRevert,TRUE–恢复到默认的系统菜单(将删除所有自己定义的系统菜单项),FALSE–获取当前的系统菜单。

    2、添加系统菜单:

    BOOL WINAPI AppendMenuW( HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCWSTR lpNewItem);

    参数:uFlags,标志,常用的MF_STRING(字符串),MF_SEPARATOR(分割线)

    uIDNewItem,菜单ID,lpNewItem,菜单名字。

    3、删除系统菜单:

    BOOL WINAPI DeleteMenu( HMENU hMenu, UINT uPosition, UINT uFlags);

    参数:uPosition,菜单ID或者菜单position Index,uFlags,删除标志: MF_BYPOSITION —通过索引删除,MF_BYCOMMAND–通过菜单id方式删除

    4、获取菜单总数

    Int WINAPI GetMenuItemCount(HMENU hMenu); 注意,分隔符也会作为菜单项的

    5、获取position Index位置的菜单项ID

    UINT WINAPI GetMenuItemID( HMENU hMenu, int nPos);

    一般情况下,分隔符菜单的ID设置为0。

    6、系统菜单的消息处理WM_SYSCOMMAND

    系统菜单点击以后产生的消息是WM_SYSCOMMAND,wParam中存放的是菜单ID。

    弹出式菜单(右键菜单):

    在windows程序的窗口中点击鼠标右键(必要的时候左键也可以)弹出的菜单,或者顶层菜单点击后出现的菜单,都称为弹出式菜单(也称为右键菜单)。

    1、创建弹出式菜单

    HMENU WINAPI CreatePopupMenu(VOID); 返回创建弹出式菜单的菜单句柄

    2、添加、删除菜单项,同上面的系统菜单。

    AppendMenu,DeleteMenu。

    3、销毁弹出式菜单

    BOOL WINAPI DestroyMenu( _In_ HMENU hMenu); 弹出式菜单是自己创建的,所以在不需要的时候,使用DestroyMenu销毁菜单。

    4、显示弹出式菜单

    BOOL WINAPI TrackPopupMenu(  _In_ HMENU hMenu,

    _In_ UINT uFlags, //标志,比如TPM_LEFTALIGN,菜单左边在x的位置

    _In_ int x, _In_ int y, //注意:屏幕坐标x,y

    _Reserved_ int nReserved,

    _In_ HWND hWnd,

    _Reserved_ CONST RECT *prcRect); //用屏幕坐标定义的一个矩形,如用户在这个矩形的范围内单击,则弹出式菜单不会关闭。如单击弹出式菜单之外的任何一个地方,则会关闭菜单。可以设为NULL。该函数为阻塞函数。

    5、弹出式菜单的消息处理WM_COMMAND

    弹出式菜单点击以后,发送消息WM_COMMAND,wParam保存菜单项ID。

    顶层菜单(下拉式菜单)

    1、创建顶层菜单

    HMENU WINAPI CreateMenu(VOID);

    2、添加顶层菜单项(添加在后面)

    AppendMenu,同样可以添加菜单项,同样通过WM_COMMAND消息响应。

    3、插入菜单项

    BOOL WINAPI InsertMenu(HMENU hMenu,

    UINT uPosition, //插入位置,注意:这里可写位置也可写ID,必须和下面的uFlags配合使用,MF_BYPOSITION或者MF_BYCOMMAND(默认是这个),会插入在该位置或该ID的前面。

    UINT uFlags, //菜单项的标志

    UINT_PTR uIDNewItem, //菜单项目ID

    LPCWSTR lpNewItem); //菜单项的字符串

    另外一个插入菜单项的函数:InsertMenuItem

    BOOL WINAPI InsertMenuItem( _In_ HMENU hmenu,

    _In_ UINT item, //位置索引号 或者 菜单项ID

    _In_ BOOL fByPosition, //设为TRUE,item为菜单项的位置索引号,设为FALSE,item为菜单项的ID

    _In_ LPCMENUITEMINFOA lpmi); //MENUINFO结构体指针

    typedef struct tagMENUINFO

    {

    DWORD   cbSize; //结构的大小,sizeof(MENUINFO)

    DWORD   fMask; //将要获得或者设置的项目,后面的哪些参数发挥作用受该参数的设置的影响。MIIM_BITMAP,hbmpItem将用来设置或返回按钮的位图,MIIM_ID,wID设置或返回菜单项的ID

    DWORD   dwStyle;//设置或返回菜单项的类型,MFT_BITMAP位图;MFT_STRING字符串;MFT_OWNERDRAW,//发送WM_DRAWITEM和WM_MEASUREITEM消息用于绘制菜单项

    UINT    cyMax;

    HBRUSH  hbrBack;

    DWORD   dwContextHelpID;

    ULONG_PTR dwMenuData;

    }   MENUINFO, FAR *LPMENUINFO;

    4、修改菜单项(ModifyMenu)

    BOOL WINAPI ModifyMenu(HMENU hMnu,

    _In_ UINT uPosition, //位置或ID,与下面的uFlags配合使用

    _In_ UINT uFlags, //MF_STRING MF_BYPOSITION MF_BYCOMMAND等等

    _In_ UINT_PTR uIDNewItem, //修改后的ID

    _In_opt_ LPCWSTR lpNewItem); //修改后的字符串

    另外一个修改菜单项的函数:

    BOOL WINAPI SetMenuItemInfoW(HMENU hmenu,UINT item, BOOL fByPositon, LPCMENUITEMINFOW lpmii);

    5、设置顶层菜单(显示菜单)

    BOOL WINAPI SetMenu(HWND hWnd, HMENU hMenu); 一般在窗口的WM_CREATE中使用,让顶层菜单显示在窗口的顶层。

    6、刷新菜单(菜单项修改后重新显示)

    BOOL WINAPI DrawMenuBar(HWND hWnd); 添加或者删除顶层菜单项以后,需要使用该函数及时地刷新菜单的显示。

    7、创建弹出式菜单并添加弹出式菜单的菜单项。

    同上,使用CreatePopupMenu和AppendMenu、InsertMenu。

    8、关联顶层菜单和弹出式菜单。

    还是使用AppendMenu,只不过参数有些不同。

    BOOL WINAPI AppendMenuW( HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCWSTR lpNewItem);

    AppendMenu(顶层菜单句柄,MF_POPUP,(UINT)弹出式菜单句柄,顶层菜单项字符串);

    对于在弹出式菜单中再增加一个弹出式菜单,也是同样的方法。

    9、获取菜单句柄

    HMENU WINAPI GetMenu(HWND hWnd); //获取窗口的顶层菜单

    10、获取子菜单句柄

    HMENU WINAPI GetSubMenu(HMENU hMenu, int nPos); //获取子菜单的句柄

     

    11、菜单项的勾选

    在添加菜单项的时候,可以用 MF_STRING | MF_CHECKED | MF_UNCHECKED 来设置是否勾选。

    动态改变:CheckMenuItem

    DWORD WINAPI CheckMenuItem(HMENU hMenu,UINT uIDCheckItem,UINT uCheck);

    CheckMenuItem(hMenu, 3001, MF_UNCHECKED|MF_BYCOMMAND ); //设置不勾选

    CheckMenuItem(hMenu, 2, MF_CHECKED|MF_BYPOSITION ); //设置勾选

     

    12、菜单项可用不可用设置

    在初始化的时候,假如需要该菜单项不能被点击,可以使用MF_STRING | MF_GRAYED设置为灰色(不能点击)。

    动态改变:EnableMenuItem

    EnableMenuItem(Hm, 3002, MF_ENABLED | MF_BYCOMMAND); //设置为可以点击

    EnableMenuItem(Hm, 1, MF_DISABLED | MF_BYPOSITION); //设置为不可点击

     

    13、菜单项前面加图标

    在正常的添加菜单项的后面再加上一句:

    BOOL WINAPI SetMenuItemBitmaps(

    _In_ HMENU hMenu,

    _In_ UINT uPosition, //位置或者ID,配合uFlags使用

    _In_ UINT uFlags, //MF_BYPOSITION MF_BYCOMMAND

    _In_opt_ HBITMAP hBitmapUnchecked, //非选择

    _In_opt_ HBITMAP hBitmapChecked); //选择

    这个适合在弹出式菜单


    更多相关内容
  • Windows 右键菜单扩展

    千次阅读 2018-08-05 01:12:07
    右键菜单,指用户在对Windows Shell Object右键单击时,弹出的上下文菜单(Context Menu)。 如上图所示的对右键菜单进行扩展,属于Windows Shell Extension编程的一部分。 注:一般扩展程序的信息会注册到注册表...

     

    右键菜单,指用户在对Windows Shell Object右键单击时,弹出的上下文菜单(Context Menu)。

    如上图所示的对右键菜单进行扩展,属于Windows Shell Extension编程的一部分。

    注:一般扩展程序的信息会注册到注册表某个路径的ShellExt下。

    本文将介绍利用COM接口对Windows右键菜单进行扩展,笔者将分四个步骤对整个项目建立过程进行引导和解释,并会在文章末尾将给出项目代码(C++)链接。

    声明:本文在某些API的解释中,加入了笔者的个人理解,可能并不完全或存在理解错误,故在重要WinAPI的解释后面会加入MSDN的连接,方便读者直接查阅官方文档。一切解释请以官方文档为准!

    可能需要用到但并不是阅读本文必须的前置知识:COM、ATL、注册表。

     

    一. 新建一个ATL项目

    Visual Studio——新建项目——ATL——使用默认配置(一直按下一步即可)。

    注:默认配置中程序类型为动态链接库dll。

    注:如果生成的项目中多了一个以PS为后缀的子项目,可以选择将之移除。

     

    二. 为项目添加一个简单的ATL对象,继承并实现相应的IContextMenu、IShellExtInit的接口方法。

    右键项目——添加(Add)——类(Class)——弹出添加引导

    引导中双击选择ATL简单对象(ATL Simple Object),并根据需要填写类名字以及对应的信息,(某些信息VS将自动帮填写,但ProgID建议手动填写一下),点击完成生成一个ATL 简单对象,会发现项目中生成了刚才填写类名字的.h、.cpp、.rgs文件。

    打开.h文件,会发现刚才填写的C++类型的声明,请在继承语法的最后添加上

    public IContextMenu,public IShellExtInit

    添加COM类型映射:在宏BEGIN_COM_MAP与宏BEGIN_COM_END之间的列表下手动加上

    COM_INTERFACE_ENTRY(IContextMenu)
    
    COM_INTERFACE_ENTER(IShellExtInit)

    然后覆盖并实现IContextMenu接口(QueryInterface,GetCommandString、InvokeCommand)以及IShellExtInit接口(Initialize)

    系统对这些接口的调用顺序、时刻为:

    1. Initialize(用户右键点击某个Shell程序时)
    2. QueryContextMenu(1.返回S_OK或其他表示初始化成功的HRESULT时。插入自定义菜单的入口。)
    3. GetCommandString(用户光标盘旋(hover)在插入的菜单项时,系统status bar将显示的信息。Vista以后的系统不再有作用,不是实现的重点。)
    4. InvokeCommand(用户点击新插入的菜单项时,将会调用这个方法。用户点击菜单项回调的入口。)

    下面笔者来解析一下这些接口的作用,所有对本文较为有用的地方都以红色标注。

    ​HRESULT Initialize(
      PCIDLIST_ABSOLUTE pidlFolder,
      IDataObject       *pdtobj,
      HKEY              hkeyProgID
    );

    参数pdtobj,表示指向某个Shell Object的指针。可以通过这个指针获取用户右键单击的Shell Object信息。比如,可以获取该Shell Object的名称,并且判断其是不是我们需要处理的类型。特别地,对于右键单击桌面空白处或者是文件夹空白处,pdtobj为NULL

    注:只有当这个函数返回S_OK的时候,QueryContextMenu才会被调用。

    IShellExtInit::Initialize-MSDN

    HRESULT QueryContextMenu(
        HMENU hmenu,
        UINT indexMenu,
        UINT idCmdFirst,
        UINT idCmdLast,
        UINT uFlags
    );
    
    ​
    1. 参数hmenu,表示用户右键单击弹出的那个菜单的Handle。配合使用GetMenuItemCount、GetSubMenu、GetMenuString、InsertMenuItem等Win API可以将自定义的菜单插入到hemnu菜单树所包含的任意菜单中去。
    2. 参数indexMenu,表示你可以调用InsertMenu或者InsertMenuItem将你的菜单插入的起始位置。
    3. idCmdFirst,你可以用作作为你自定义菜单标识的最小值。
    4. idCmdLast,你可以用作作为你自定义菜单标识的最大值。
    5. uFlags,用于标识当前回调状态的标志位。一般只需要关注一个位标识:CMF_DEFAULTONLY.这个为表示用户只在右键双击Shell Object,这个时候不需要插入菜单,只需要简单返回MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0)即可。
    6. 函数返回值,一般为MAKE_HRESULT(SEVERITY_SUCCESS, 0 ,你插入的菜单数量)

    注:通过WIN API插入菜单的时候,需要注意的几点:

    自定义菜单的id值必须在区间[idCmdFirst,idCmdLast]之间,这个id值同时也是当你的菜单项被用户点击的时候,回调时用于区分你自己的多个菜单项的一个标识值。

    插入菜单代码逻辑流应为(位于QueryContextMenu函数内):
     

    if(CMF_DEFAULTONLY & uFlags)
    {
        return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, USHORT(0));
    }
    UINT uid = idCmdFirst;
    //当你插入菜单的时候,同时递增uid,同时保存uid值到对应菜单的映射。
    
    //递增uid时,也需要判断一下uid<=idCmdLast
    
    .....
    
    //插入菜单完毕
    return MAKE_HRESULT(SEVERITY_SUCCESS,0,uid-idCmdFirst);

    为hemu插入子菜单主要有两个WIN_API:InsertMenu以及InsertMenuItem。我们只关注更为常用的后者。

    BOOL InsertMenuItemA(
      HMENU            hmenu,
      UINT             item,
      BOOL             fByPosition,
      LPCMENUITEMINFOA lpmi
    );
    
    
    1. hemenu表示你的自定义菜单需要插入到的父菜单。
    2. Item表示位置或者菜单的Id
    3. fByPosition,True表示item为插入到菜单的位置,False表示item为插入菜单的id
    4. Lpmi,表示需要插入的子菜单的信息,见下文。
    typedef struct tagMENUITEMINFOW {
      UINT      cbSize;
      UINT      fMask;
      UINT      fType;
      UINT      fState;
      UINT      wID;
      HMENU     hSubMenu;
      HBITMAP   hbmpChecked;
      HBITMAP   hbmpUnchecked;
      ULONG_PTR dwItemData;
      LPWSTR    dwTypeData;
      UINT      cch;
      HBITMAP   hbmpItem;
    } MENUITEMINFOW, *LPMENUITEMINFOW;

     

    fMask 表示系统应该关注这个结构体的那些成员数据,我们可以用或位操作进行。比如我们让系统关注我们设置的fType\fState\wID,则需要设置fMask = MIIM_FTYPE | MIIM_ID|MIIM_STATE 。

    fType 表示我们将数据存到dwTypeData的数据类型。通常为MFT_STRING,并且将用于显示菜单名称的字符串赋值给dwTypeData

    wID 是最为重要的一个菜单标识。如前文所说,wID的赋值应为[idCmdFirst,idCmdLast]之间。

    并且这个值在InvokeCommand的回调当中用于确定自定义的哪个菜单被按下(见后文)

    为菜单插入图标:

    hbmpChecked\hbmpUnchecked:使用时必须在fMask中设置位MIIM_CHECKMASKS。

    hbmpItem :设置位MIIM_BITMAP。

    范例:

    在hmenu中插入一个名称叫做“Demo”的,图标显示为hbmpDemo的菜单项如下。

    ​
    MENUITEMINFO mii;
    ::memset(&mii, 0, sizeof(MENUITEMINFO));
    mii.cbSize = (UINT)sizeof(MENUITEMINFO);
    mii.fMask = MIIM_STRING|MIIM_ID|MIIM_FTYPE|MIIM_BITMAP;
    mii.fType = MFT_STRING;
    mii.dwTypeData = L”Demo”;
    mii.wID = id;//id 为[idCmdFirst,idCmdLast]之间某个值
    mii.hbmpItem = hbmpDemo;
    ::InsertMenuItem(hmenu, uiIndex, TRUE, (LPCMENUITEMINFO)&mii);
    
    ​

    IContextMenu::QueryContextMenu

    WIN_API InsertMenuItem 以及 MENUITEMINFO 结构体

    最后,响应菜单项被点击事件的入口在InvokeCommand函数

    HRESULT InvokeCommand( CMINVOKECOMMANDINFO *pici )
    {
        //利用pici的lpVerb判断对应哪个自定义菜单项被点击了
        WORD menuId = LOWORD(pici->lpVerb);
        //一般选择switch case的方法来进行判断
        switch(menuId)
        {
            ....//做某个菜单被点击的用户逻辑。   
        }
        //但也有直接用hash table or map将菜单id和回调绑定到一起,然后查询菜单所代表的业务逻辑的。
    }
    
    typedef struct _CMINVOKECOMMANDINFO {
        DWORD cbSize;
        DWORD fMask;
        HWND hwnd;
        LPCSTR lpVerb;
        LPCSTR lpParameters;
        LPCSTR lpDirectory;
        int nShow;
        DWORD dwHotKey;
        HANDLE hIcon; } CMINVOKECOMMANDINFO;

    InvokeCommand函数作为回调入口,重点关注lpVerb这个数据,这个数据的低位字(Low Word)表示被点击的菜单项的ID,这个ID和调用InsertMenuItem的时候,传入的MENUITEMINFO结构的wID相同

    通常,我们使用这个ID来区分自定义的菜单项。

    一旦确认某个菜单被点击了,就执行该菜单所代表的程序逻辑。

    IContextMenu::InvokeCommand

     

    三. 修改添加该类时自动生成的.rgs脚本文件

    .rgs文件是由ATL项目用于修改注册表的脚本文件。

    一般,在添加了一个简单的ATL对象类之后,会对应地生成一个.rgs脚本文件。并且,会自动生成如下信息(这些脚本主要作用是为你的类型自动注册COM组件)。

    HKCR
    {
    	DesktopContextMenuExtension.ShellExt.1 = s 'DesktopContextMenuExtension ShellExt Class'
    	{
    		CLSID = s '{721F6C56-9944-4E82-BCBB-977F7681D7AC}'
    	}
    	DesktopContextMenuExtension.ShellExt = s 'DesktopContextMenuExtension Class'
    	{		
    		CurVer = s 'DesktopContextMenuExtension.ShellExt.1'
    	} 
    	
    	NoRemove CLSID
    	{
    		ForceRemove {721F6C56-9944-4E82-BCBB-977F7681D7AC} = s 'DesktopContextMenuExtension Class'
    		{
    			ProgID = s 'DesktopContextMenuExtension.ShellExt.1'
    			VersionIndependentProgID = s 'DesktopContextMenuExtension.ShellExt'
    			ForceRemove Programmable
    			InprocServer32 = s '%MODULE%'
    			{
    				val ThreadingModel = s 'Apartment'
    			}
    			TypeLib = s '{AB96BF74-098F-4B26-916C-FA785E3C33B6}'
    			Version = s '1.0'
    		}
    	}
    }

    注:CLSID 

    简单来说,就是通过编写这个文件,将一切有关注册表的操作都交给该脚本语言的解析器去做,然后轻松粗暴解决频繁使用CKey类或者Win API对注册表进行读写步骤。

    注:使用CKey或者WINAPI也能达到目的,但对于编码来说难免会有些麻烦,必须在dll注册的函数体内注册表插入信息,然后在dll卸载的函数体内移除注册表中的信息,整个过程十分难受。该脚本的语法语义,请见 MSDN rgs脚本语法语义

     

    为了实现右键菜单的扩展,以桌面空白处以及文件夹空白处为例。

    需要在注册表中插入的位置以及信息为(HKCR == HKEY_CLASSES_ROOT):

    HKCR\\DesktopBackground\\shellex\\ContextMenuHandlers\\InsertedDemoName

    将InsertedDemoName的默认值改成你程序对应的CLSID

    还有两处需要插入的信息同上。位置为:

    HKCR\\Directory\\shellex\\ContextMenuHandlers

    HKCR\\Directory\\background\\shellex\\ContextMenuHandlers

    以DesktopBackground为例的.rgs脚本为:

    HKCR
    {
    	NoRemove DesktopBackground
    	{
    		NoRemove ShellEx
    		{
    			NoRemove ContextMenuHandlers
    			{
    				ForceRemove 'DesktopContextMenuExtension' = s '{721F6C56-9944-4E82-BCBB-977F7681D7AC}'
    			}
    		}
    	}
    }

    注:这里还可以对应不同类型文件右键菜单进行扩展,对应的扩展名下的HKCR\\扩展名\\shellex\\ContextMenuHandlers下插入信息同上。

    如在HKCR\\.pdf\\shellext\\ContextMenuHandlers插入,则当用户右键点击.pdf文件时,会调用到我们的Initialize -> QueryContextMenu...

    另外 文件夹:folder,快捷方式:.lnk,分区:drive等等

    三.5  有了IShellExtInit和IContextMenu接口,又有了修改注册表对应位置的.rgs脚本文件,现在终于可以来解析一下整个右键菜单扩展的调用流程了。

    当用户右键单击某个Shell对象的时候,此时Windows系统会自动在对应的注册表项中查找ShellExt\\ContextMenuHandlers下的所有键的列表。注:这便是为什么我们要往生成的.rgs文件添加我们修改注册表的脚本,将我们的类型的CLSID信息加入到XXXX\\ContextMenuHandlers当中去的原因

    此时系统会读取的列表当中的所有CLSID信息,并且在HKCR\\CLSID\\目录下找到对应名字就为这些CLSID的键项,里面会有我们注册的dll的位置信息。注:这是在我们添加一个ATL简单对象时,.rgs自动添加的那串脚本所做的事情。就是注册我们的COM组件。

    此时,系统将我们的dll加载到explorer进程的地址空间里边(载入过程只会进行一次),利用dll中的DllGetClassObject函数获取到了所有加载的dll中编写了继承了IShellExtInit和IContextMenu的类对象,(怎么判断类对象是否继承了IShellExtInit和IContextMenu?这就和COM相关了。DllGetClassObject中有一个参数为riid,就是为某些COM接口类的唯一一个标识,通过IUnkown中的QueryInterface就可以知道该实例对象是否继承了IShellExtInit和IContextMenu[1]),并调用Initialize,若该函数返回S_OK,就调用QueryContextMenu函数,我们往右键菜单插入自定义扩展菜单就是这样做的。

    注[1]:笔者在编写此文的时候,才刚刚开始阅读《COM本质论》了解COM的知识,此处可能会有错漏。

    后面当点击我们自定义的菜单的时候,explorer就会调用我们的InvokeCommand函数,此时我们的菜单被点击逻辑被执行。

    注:如果你尝试在被点击逻辑的代码中打开了模态窗口(例如MessageBox),那么对应的Explorer进程就会进入假死状态。阻塞代码同理。

     

    四.使用regsvr32注册该COM dll,并测试对应功能。

    右键项目属性,分别修改以下几项。

    编译项目,分别在不同平台测试。x64位dll对应64位系统,Win32对应32位系统。

    管理员方式运行cmd或powershell

    注册dll:regsvr32  “你的dll路径”

    卸载dll:regsvr32  /u  “你的dll路径”

    如果注册dll报“LoadLibrary(XXXX.dll)错误”,重点看上面红字红框,并且请尝试使用dll依赖工具查看依赖缺失。

    如果报“0x800200?”错误,请检查是否使用管理员身份运行cmd,若确定已使用来管理员权限,请检查.rgs文件脚本的语法是否出错(下面是我碰到过的小坑

    坑1:ForceRemove ‘MyProgram.Name.1’ =空格s空格 ’Demo’,注意检查空格。

    坑2:.rgs文件编码方式推荐选择无BOM的UTF-8编码

    目前已知问题:

    XP系统,插入到右键菜单“新建”二级菜单下,存在图标文字不齐问题。(Win7,Win10,无此问题)

    附上Demo源码。

    @Mapupcal    联系我 

     

    展开全文
  • 新的 Windows 11 操作系统最具争议的元素可能是新的开始菜单,它为操作系统带来了更像平板电脑的主屏幕。想要设置自己喜欢的开始菜单样式,该怎么操作呢?下面我们就来看看详细的教程。 重新排列图标并将应用...

    Win11怎么自定义设置开始菜单?开始菜单很常用,想要打造一个属于自己特色的开始菜单,该怎么自定义开始菜单呢?详细请看下文介绍

    新的 Windows 11 操作系统中最具争议的元素可能是新的开始菜单,它为操作系统带来了更像平板电脑的主屏幕。想要设置自己喜欢的开始菜单样式,该怎么操作呢?下面我们就来看看详细的教程。

    重新排列图标并将应用固定到 Windows 11 开始菜单

    1. 在任何 Windows 版本上找到您喜爱的应用程序的最佳方式是将它们固定到“开始”菜单。好吧,您也可以在 Windows 11 中执行相同的操作。只需单击右上角的“所有应用程序”,向下滚动并转到要固定到“开始”菜单的应用程序。

    2. 然后,右键单击它并选择“固定到开始”选项。您也可以从桌面或任何其他位置执行此操作。正如我们在下面解释的那样,您还可以将文件夹固定到“开始”菜单。

    3. 瞧!该应用程序将出现在“固定”部分的前面和中间。

    在 Windows 11 开始菜单中管理固定的应用程序

    1.您也可以拖动应用程序,将其移动到您喜欢的“固定”应用程序列表中的任何位置

    2. 此外,如果您将超过 18 个应用程序固定到“开始”菜单,则 Windows 11会添加第二个页面。您可以滚动以在固定应用程序的不同页面之间移动。

    3. 顺便说一下,您仍然可以按字母顺序搜索 Windows 11 上的应用程序。只需打开“所有应用程序”并单击任何字母。

    调整 Windows 11 开始菜单中的建议

    1. 首先,打开设置并从左侧窗格导航到“个性化”。在这里,向下滚动并转到“开始”设置。

    2. 现在,我建议在安装后立即启用“显示最近添加的应用程序”以在“开始”菜单中找到新的应用程序或程序。您无需滚动浏览整个应用程序列表来查找新安装的应用程序,从而节省时间。

    3.接下来,启用“显示最常用的应用程序”以在“开始”菜单中获得常用应用程序的推荐。

    4.接下来,如果“显示最常用的应用程序”切换是灰色的,您需要启用隐私设置才能使其工作。打开设置并从左侧窗格跳转到“隐私和安全”。在这里,单击“常规”。

    5. 之后,启用“让 Windows通过跟踪应用程序启动来改进开始和搜索结果”。现在,继续并再次打开个性化页面。您现在可以打开“显示最常用的应用程序”选项。

    6. 除此之外,启用“在开始、跳转列表和文件资源管理器中显示最近打开的项目”选项。它将让您快速访问您在 Windows 11 PC 上的“开始”菜单中访问的文件和程序。

    将文件夹添加到 Windows 11 开始菜单

    1. 与 Windows 10 类似,Windows 11 也允许您将文件夹添加到“开始”菜单。转到设置 -> 个性化 -> 开始页面,然后单击“文件夹”。

    2. 在这里,您可以将下载、文档、图片等文件夹添加到开始菜单。

    3. 文件夹将出现在开始菜单中电源菜单的左侧。这样,您可以从 Windows 11 开始菜单快速访问重要文件夹,而无需滚动固定应用程序或任何内容。

    4. 如果您想将自定义文件夹添加到“开始”菜单,这在 Windows 11 中也是可能的。为此,请右键单击该文件夹,然后单击“固定到开始”选项。新操作系统本身支持将文件夹固定到“开始”菜单,因此您无需使用任何第三方应用程序或调整 AppData 文件夹。

    5. 现在,自定义文件夹将出现在“开始”菜单的“固定”应用程序部分。您可以使用此功能保持桌面干净整洁。(点击查看详细的教程)

    在 Windows 11 中恢复经典开始菜单

    如果您不喜欢 Windows 11 上的 Windows 10X 风格的开始菜单,并希望在 Windows 11 上使用支持动态磁贴的经典开始菜单,您也可以这样做。只需按照我们链接的文章了解有关如何编辑注册表文件以访问旧的 Windows 10 风格的开始菜单的详细步骤。

    微软还添加了一个选项,可以将开始菜单和其他任务栏图标移回左边缘。导航到设置 -> 个性化 -> 任务栏,然后从新的“任务栏对齐”选项中选择“左”。(详细操作方法请点击查看)

    将 Windows 11 任务栏、开始菜单移至顶部或侧面

    这就是开始菜单的全部内容,但是如果您想将 Windows 11 上的任务栏移动到不同的一侧,比如顶部或右侧,那么您可以通过一些注册表调整来实现。只需按照我们有关如何将 Windows 11 任务栏移动到屏幕顶部、左侧或右侧的详细指南进行操作,您就大功告成了。(点击查看移动到顶部的教程)

    个性化 Windows 11 上的开始菜单以充分利用它

    因此,您可以通过这些方法自定义 Windows 11 开始菜单并改进应用和文件推荐,快速访问您喜欢的程序等。随着我越来越多地使用 Windows 11,很明显微软不希望你浏览整个应用程序列表。相反,它旨在从一开始就提供深度个性化的体验。

    以上就是打造创意的Windows11开始菜单的技巧,希望大家喜欢,请继续关注脚本之家。

    转自:Win11怎么自定义设置开始菜单? 打造创意的Windows11开始菜单的技巧_windows11_Windows系列_操作系统_脚本之家 (jb51.net)

    展开全文
  • 自定义Windows 10开始菜单的10种方法

    千次阅读 2020-09-20 14:54:26
    Windows 10 finally brought back the Start menu, and it’s more customizable than ever. Here’s a quick rundown of all the different ways that you can make the Start... Windows 10终于带回了“开始”菜单...
    windows desktop with open start menu

    Windows 10 finally brought back the Start menu, and it’s more customizable than ever. Here’s a quick rundown of all the different ways that you can make the Start menu your own.

    Windows 10终于带回了“开始”菜单,并且它比以往任何时候都更具可定制性。 这是您可以使“开始”菜单成为自己的所有不同方式的简要介绍。

    组织,编辑,删除或将新项目添加到应用程序列表 (Organize, Edit, Delete, or Add New Items to the Apps List)

    You can easily get to the Start menu’s folder structure on the hard drive to edit, rearrange, or even add new items. This also gives you the benefit of being able to search for these new shortcuts that you create. And yes, you can do this by dragging items around individually on (or to) the Start menu, but rearranging via File Explorer is much quicker if you have a bunch of things you want to change.

    您可以轻松地进入硬盘驱动器上“开始”菜单的文件夹结构 ,以进行编辑,重新排列甚至添加新项目。 这也使您能够搜索自己创建的这些新快捷方式。 是的,您可以通过在“开始”菜单上(或拖到“开始”菜单上)单独拖动项目来完成此操作,但是如果您要更改很多东西,则通过文件资源管理器进行重新排列要快得多。

    Start menu\programs folder in File Explorer

    It’s worth noting that the Start menu folder won’t show Universal apps you have installed, so you’ll need to deal with those just using the menu itself. For the most part, you can uninstall any app—except for some built-in apps—by right-clicking them in the Start menu and choosing “Uninstall.”

    值得注意的是,“开始”菜单文件夹不会显示您已安装的通用应用程序,因此您只需要使用菜单本身即可处理这些应用程序。 在大多数情况下,可以通过右键单击“开始”菜单中的“应用程序”并选择“卸载”来卸载任何应用程序(某些内置应用程序除外)。

    uninstall app from start menu

    调整开始菜单的大小 (Resize the Start Menu)

    You can quickly resize the Start menu by dragging the top or right edge of the menu with your mouse.

    您可以通过使用鼠标拖动菜单的顶部或右侧边缘来快速调整“开始”菜单的大小。

    drag edges to resize start menu

    Resizing vertically works just as you’d expect. When you resize horizontally, you can increase the Start menu by one full column of icon groups at a time—up to four columns. Unfortunately, you can only narrow the menu down to one column.

    垂直调整大小可以按照您的期望进行。 水平调整大小时,可以一次在“开始”菜单上增加一整列图标组的列,最多四列。 不幸的是,您只能将菜单缩小到一列。

    You can also set Windows to show a few extra tiles in each column. Just head to Settings > Personalization > Start and turn on the “Show more tiles on Start” option.

    您还可以将Windows设置为在每列中显示一些额外的图块。 只需转到“设置”>“个性化”>“开始”,然后打开“在开始时显示更多图块”选项即可。

    turn on show more tiles on start option

    With the “Show more tiles on Start” option on, you can see that the tile column has expanded by the width of one medium-sized tile.

    启用“在开始时显示更多图块”选项后,您会看到图块列已扩展了一个中型图块的宽度。

    start menu with extra tiles showing

    Note that if you do turn on the “Show more tiles” option, you can still resize the Start menu horizontally, but only up to three columns of icon groups instead of four.

    请注意,如果您确实启用了“显示更多图块”选项,则仍可以水平调整“开始”菜单的大小,但最多只能调整三列图标组,而不是四列。

    固定和取消固定瓷砖 (Pin and Unpin Tiles)

    You can easily pin and unpin tiles by right-clicking on each one and selecting “Unpin from Start.”

    右键单击每个磁贴,然后选择“从开始取消固定”,即可轻松固定和取消固定磁贴。

    unpin from start option on start menu

    If there’s an app that isn’t pinned, but you want a tile for it, just browse through the list of apps on the left side of the Start menu. When you find what you’re looking for, right-click the app and choose “Pin to Start.”

    如果有一个未固定的应用程序,但您需要一个图块,则只需浏览“开始”菜单左侧的应用程序列表即可。 找到所需的内容后,右键单击该应用程序,然后选择“固定到启动”。

    pin to start option on start menu

    调整瓷砖 (Resize Tiles)

    You can change the size of a tile by right-clicking it, pointing to “Resize,” and then picking the size you want.

    您可以通过右键单击并指向“调整大小”,然后选择所需的大小来更改图块的大小。

    resizing tile on start menu

    Four small tiles fit into a medium tile. Four medium tiles fit into a large tile. And a wide tile is the size of two side-by-side medium tiles.

    四个小砖块可放入一个中号砖块。 四个中等大小的瓷砖可放入一个大瓷砖中。 一个宽的磁贴等于两个并排的中等磁贴的大小。

    start menu showing relative tile sizes

    Unfortunately, the tiling can be a little weird, so if you have an odd number of small tiles, you’ll end up with blank space.

    不幸的是,平铺可能有点怪异,因此,如果您有奇数个小瓷砖,则最终会留有空白。

    关闭实时磁贴更新 (Turn Off Live Tile Updates)

    If all those flashing tiles end up annoying you, just right-click on them, point to “More,” and then choose “Turn live tile off.”

    如果所有这些闪烁的磁贴最终都惹恼了您,只需右键单击它们,指向“更多”,然后选择“关闭实时磁贴”。

    turn live tile off option on start menu

    Compared to the example above, you can see that the News tile is back to being a regular tile button.

    与上面的示例相比,您可以看到“新闻”图块已恢复为常规图块按钮。

    showing live tile now turned off

    For the most part, we find live tiles a little busy for our tastes, but they can be useful for tiles like Weather or Calendar where it’s nice to have some at-a-glance info.

    在大多数情况下,我们发现实时显示的图块忙于我们的口味,但对于诸如“天气”或“日历”之类的图块很有用,它们可以快速显示一些信息。

    将图块分组到文件夹中 (Group Tiles Into Folders)

    You can also group tiles on the Start menu into folders. These folders work much like app folders on a smartphone. To create a new folder, drag any tile and drop it onto another tile. Those tiles will then be grouped into a folder. You can then add other tiles to the folder by dragging them on top of the folder.

    您也可以将“开始”菜单上的图块分组到文件夹中。 这些文件夹的工作方式类似于智能手机上的应用程序文件夹。 要创建新文件夹,请将任何图块拖放到另一个图块上。 这些磁贴将被分组到一个文件夹中。 然后,可以通过将其他磁贴拖动到文件夹顶部来将其添加到该文件夹​​中。

    drag tile onto another tile

    Once you have tiles in a folder, you just have to click the folder to expand it.

    文件夹中有图块后,只需单击该文件夹即可将其展开。

    click a folder to expand it

    Then, you can click any tile inside to launch the app. Click the arrow above the folder to collapse it again.

    然后,您可以单击内部的任意图块以启动应用程序。 单击文件夹上方的箭头再次将其折叠。

    click arrow above tile group to close folder

    If you want to remove tiles from a folder, drag them back out of the folder and drop them directly on your Start menu. You could also unpin the tile from your Start menu and then pin it back again if dragging them out is too awkward.

    如果要从文件夹中删除磁贴,请将其拖出文件夹,然后将其直接放在“开始”菜单上。 您也可以从“开始”菜单中取消固定图块,然后再将其拖出(如果将它们拖出太尴尬)。

    如果您不喜欢,请删除所有活动瓷砖 (Remove All Live Tiles if You Don’t Like Them)

    If you don’t like the tiles on your Start menu at all, you can remove them. Just right-click each one and then click “Unpin from Start” until they’re all gone.

    如果您根本不喜欢“开始”菜单上的图块,则可以将其删除。 只需右键单击每个,然后单击“从开始取消固定”,直到它们全部消失。

    unpin from start option

    After you unpin the last tile, you can resize the Start menu horizontally by grabbing its right edge and dragging until the tile section disappears. You’re then left with just a nice, trim list of apps.

    取消固定最后一个图块后,您可以通过抓住右边缘并拖动直到图块部分消失来水平调整“开始”菜单的大小。 然后,您只剩下一个不错的应用清单。

    start menu with no tiles showing

    更改开始菜单(和任务栏)颜色 (Change the Start Menu (and Taskbar) Color)

    You can easily change the color of your Start Menu and Taskbar. Head to Settings > Personalization > Colors to get started. Windows lets you pick a single accent color from a preselected group, or you can fine tune the accent color you want by clicking the “Custom Color” button. Just click any color you want to use. You can also let Windows pick an accent color for you based on your current background wallpaper by selecting the “Automatically pick an accent color from my background” option.

    您可以轻松更改“开始”菜单和任务栏的颜色。 转到设置>个性化>颜色开始。 Windows使您可以从预选组中选择一种强调色,也可以通过单击“自定义颜色”按钮微调所需的强调色。 只需单击您要使用的任何颜色。 您还可以通过选择“从我的背景自动选择一种强调色”选项,让Windows根据当前背景墙纸为您选择一种强调色。

    choosing colors in the settings app

    After picking an accent color, your next step is choosing where that accent color gets used. Scroll down a bit to the “More Options” section. Your two options here are “Start, taskbar, and action center” and “Title bars.” The first option uses the accent color as the background for your Start menu, taskbar, and action center and also highlights certain items on those elements—such as app icons on the Start menu—with the same accent color. The second option uses the accent color for the title bar of your active window.

    选择一种强调色后,下一步就是选择该强调色的使用位置。 向下滚动到“更多选项”部分。 这里的两个选项是“开始,任务栏和操作中心”和“标题栏”。 第一个选项使用强调色作为开始菜单,任务栏和操作中心的背景,并使用相同的强调色突出显示这些元素上的某些项目(例如“开始”菜单上的应用程序图标)。 第二个选项为活动窗口的标题栏使用强调色。

    more options for colors

    Unfortunately, the Start menu, taskbar, and Action Center elements are grouped for color selection, and you can’t make them different colors. We do, however, have a quick registry hack that can at least let you keep a black background on your Start menu and action center. The second option uses the accent color on the title bar of active windows, though we also have another hack for you if you want to use the accent color on inactive windows, as well.

    不幸的是,“开始”菜单,任务栏和“操作中心”元素已分组以进行颜色选择,并且您不能将它们设置为不同的颜色。 但是,我们确实有一个快速的注册表黑客,至少可以让您在“开始”菜单和操作中心上保留黑色背景 。 第二个选项使用活动窗口标题栏上的强调色,尽管如果您也想在不活动窗口上使用强调色 ,我们也有另一种技巧。

    Back on the Colors personalization screen, you’ll also find a “Transparency effect” option for making your Start menu, taskbar, and action center transparent or not. This option does not affect the accent color if it’s used on those elements.

    返回到“颜色”个性化设置屏幕,您还将找到一个“透明效果”选项,以使“开始”菜单,任务栏和操作中心透明。 如果在这些元素上使用了强调色,则此选项不会影响其颜色。

    And finally, you can enable a dark mode for settings and apps. While this app mode setting doesn’t affect every app, we do have some tricks you might enjoy for using a dark theme almost everywhere in Windows 10.

    最后,您可以为设置和应用启用暗模式。 尽管此应用程序模式设置不会影响每个应用程序,但在Windows 10中几乎所有地方 ,我们都会为您提供一些使用暗色主题的技巧。

    控制您的应用列表在“开始”菜单上的显示方式 (Control How Your App Lists Appear on the Start Menu)

    By default, your Start menu displays several of your recently installed, most used, and suggested apps, followed by a list of all the apps installed on your system.

    默认情况下,“开始”菜单显示一些最近安装,使用最频繁和建议使用的应用程序,然后显示系统上安装的所有应用程序的列表。

    app lists on the start menu

    If you don’t like these—say you’d rather just see your full list of apps without having to scroll for it—all three sections are easy to turn off. Head to Settings > Personalization > Start. Look for the “Show app list in Start menu,” “Show recently added apps,” and “Show most used apps” options and turn off any you don’t want to see on your Start menu.

    如果您不喜欢这些工具(例如,您只想查看完整的应用程序列表而不用滚动即可),那么可以轻松关闭所有三个部分。 转到设置>个性化>开始。 查找“在“开始”菜单中显示应用程序列表”,“显示最近添加的应用程序”和“显示最常用的应用程序”选项,然后关闭所有不想在“开始”菜单上看到的内容。

    turning off app displays in the settings app

    选择出现在开始菜单上的文件夹 (Choose Which Folders Appear on the Start Menu)

    The User, Documents, Pictures, Settings, and Power options are now tucked away in a tiny column on the far left of the Start menu. Click the button at the top left of the Start menu to expand this column.

    现在,“用户”,“文档”,“图片”,“设置”和“电源”选项被藏在“开始”菜单最左侧的小栏中。 单击开始菜单左上方的按钮以展开此列。

    click hamburger menu at top of start menu to expand folder names

    You can see those same options with their full names and also a lot of nice, inviting open space above them. You can add stuff to that space.

    您可以看到具有相同全名的相同选项,并且在它们上方还有很多不错的,吸引人的开放空间。 您可以向该空间添加内容。

    start menu showing expanded folder names

    Head to Settings > Personalization > Start. On the right, scroll all the way to the bottom and click the “Choose which folders appear on Start” link.

    转到设置>个性化>开始。 在右侧,一直滚动到底部,然后单击“选择在“开始”中出现哪些文件夹”链接。

    choosing which folders appear on start in the settings app

    Choose whatever folders you want to appear on the Start menu.

    选择要显示在“开始”菜单上的任何文件夹。

    choosing which folders appear on start in the settings app

    And here’s a side-by-side look at how those new folders look as icons and in the expanded view.

    这是这些新文件夹在图标和展开视图中的外观的并排视图。

    start menu with icons showing for folders
    start menu with names showing for folders

    使用全屏开始菜单 (Use a Full-Screen Start Menu)

    On the other hand, if you really like the tiles and miss the full-screen Start experience from Windows 8, you can have the Start menu always open full screen. Head to Settings > Personalization > Start. Turn on the “Use Start full screen” option.

    另一方面,如果您真的很喜欢磁贴并错过Windows 8的全屏启动体验,则可以使“开始”菜单始终打开全屏。 转到设置>个性化>开始。 打开“使用开始全屏显示”选项。

    select the use start full screen option in settings

    Now, whenever you open your Start menu, you will see it in all its full-screen glory.

    现在,只要打开“开始”菜单,便会在所有全屏显示中看到它。

    desktop showing full start screen

    从您的应用列表中删除建议的应用 (Remove Suggested Apps from Your App List)

    As you’ve used your Start menu, you’ve probably noticed the occasional suggestions for apps you might want to install appear in your app list.

    使用“开始”菜单时,您可能会注意到偶尔会出现一些有关您可能要安装的应用程序的建议,这些建议会出现在应用程序列表中。

    suggest apps list on start menu

    To get rid of those, all you have to do is head to Settings > Personalization > Start and turn off the “Occasionally show suggestions in Start” option.

    要消除这些问题,您要做的就是前往“设置”>“个性化”>“启动”,然后关闭“偶尔在“启动”中显示建议”选项。

    disable the occasionally show suggestions in start option

    Note that these suggested apps are different than the preinstalled apps and ads—like Candy Crush—that you also likely don’t want. To get rid of those, you’ll need to right-click each one and uninstall it. And while you’re at it, you might want to look at how to disable all of Windows 10’s built-in advertising.

    请注意,这些建议的应用程序与您可能不希望的预装应用程序和广告(如Candy Crush)不同。 要摆脱这些漏洞,您需要右键单击每个漏洞并将其卸载。 在使用它时,您可能想看看如何禁用Windows 10的所有内置广告



    And don’t forget: if you don’t like the Windows 10 Start menu at all, you can return to the glory days of Windows 7—and still keep much of the Windows 10 functionality—with a Start menu replacement like Start10 or ClassicShell.

    并且不要忘记:如果您根本不喜欢Windows 10的“开始”菜单,则可以返回Windows 7的辉煌岁月,并且仍然保留许多Windows 10功能,并可以通过替换Start10ClassicShell开始菜单。

    翻译自: https://www.howtogeek.com/197836/8-ways-to-customize-the-windows-10-start-menu/

    展开全文
  • Windows特定文件添加右键菜单(二)

    千次阅读 2018-04-25 15:49:00
    给右键添加菜单项,微软首先推荐静态方式,即给文件类型或者系统子健添加一个conmmand命令 如果要添加一个右键菜单项,首先考虑添加范围,1)某一系统子健(系统所有文件、系统所有目录、系统空白右键、shift右键等...
  • RightMenuMgr是一款非常方便的管理器Windows右键菜单的工具。 界面如下,百度可下。 扩展项名称对应列表 可在RightMenuMgr(下文成为管理器)软件找到对应关系并设置。 右键菜单显示的名称 ...
  • Windows特定文件添加右键菜单(一)

    千次阅读 2018-03-27 16:40:55
    原本以为添加一个右键菜单是一个很简单的事情,添加一个command命令即可,但是后来发现command一定局限性,最终采用了shell handler方式 添加右键菜单有两种方式:   静态添加,即添加shell+command实现 动态...
  • Windows 窗体添加菜单菜单

    千次阅读 2016-01-21 06:34:15
    Windows 窗体上的菜单是使用 MainMenu 对象...还可以用编程方法添加菜单,方法是向 Windows 窗体添加一个或多个 MainMenu 对象并向该集合添加 MenuItem 对象。本主题的过程说明如何使用菜单设计器或代码创
  • Windows日志分析 一、Windows事件日志简介 1、Windows事件日志 ...Windows主要以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。 系统日志 Windows系统组件产生的事件,主要包括...
  • 本笔记源自windows游戏编程大师技巧第二版3.2章,记...打开resource.h后系统帮我们创建了两个宏定义,其中IDR_MEUN1也就是位数的就是菜单编号,五位数的选项ID,之后会用到。 使用菜单 1.关联在window里:...
  • If your Taskbar, System Tray, or Start menu acts up, you might be ... Instead, you can usually just restart Windows Explorer—and Windows makes it pretty easy. 如果“任务栏”,“系统任务栏”或“...
  • 本文总结的是一些程序员、办公高手常用的、实用的Windows快捷键,因此并非完整全面,却都相当实用。把这些快捷键掌握了,可以让你的工作效率大大大提高。
  • Android_菜单介绍

    万次阅读 2011-12-03 20:28:41
    Android的菜单分为种类型:选项菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu) 一.选项菜单 当用户单击设备上的菜单按钮(Menu),触发事件弹出的菜单就是选项菜单。选项菜单最多只有六个,...
  • 写这篇笔记的原因,是前几天在虚拟机 Vmware 重新安装了几个操作系统,突然发现 VMTools 这个工具成了一个特殊的问题,以前还没有发现,因为通常它就给你自动安装了。但是大多数时候也是需要手动安装的,不管是 ...
  • 想要在程序使用菜单,我们首先需要定义菜单资源,打开VS2010,新建一个Win32的空项目,新建一个源文件并把之前的windows应用程序的通用框架复制粘贴上去。然后,我们需要再新建一个资源脚本文件,在解决
  • windows右键菜单大揭密

    千次阅读 2015-09-26 15:37:53
    Windows系统,只要对着桌面或是文件(夹)单击右键,就会弹出一个快捷菜单,里面对该文件(夹)的一些常用操作命令,通过右键菜单,可以方便用户对文件的某些操作。不知道你是否对它感兴趣?是否想对它作一番...
  • Windows 7操作系统

    千次阅读 2021-10-24 11:03:03
    (1)右击“开始”按钮→快捷菜单中→打开 Windows资源管理器”。 (2)单击“开始”按钮→选择“所有程序”→单击“附件”→Windows资源管理器"; (3)单击“开始”按钮→“计算机”。 (4)按 Win十E快捷键也可以打开 ...
  • C#Windows应用程序开发—>菜单

    千次阅读 2017-03-22 13:15:56
    在system.windows.Forms的名称空间,所有与菜单相关的控件都是menu的子类,menu是一个实体,你不能直接将其实例化。  menu有三个子类: ContextMenu MainMenu MenuItem C#Windows应用程序开发之添加...
  • 我们前面刚讲到利用数据有效性制作级下拉菜单,很多读者学完后马上应用到工作了 但是如果需要同时录入多个选项的怎么办?例如在一个单元格内需要录入多个采购物品,这样就无法用数据有效性。 但是...
  • windows命令获取帮助Windows 10 has a built-in Get Help app that will offer solutions to problems and even connect you to a human support person. That’s just one of Windows 10’s convenient built-in ...
  • 1.身份鉴别 ... 本地用户和组 ,核查哪些用户,并尝试使用空口令登录。 4) 选择 控制面板 ==> 管理工具 ==> 本地安全策略 ==> 账户策略 ==> 密码策略;核查密码策略是否合理。 B.应具
  • Windows系统、Mac、桌面版Linux、Java Swing等,都可视化菜单。一、Android平台3种菜单 选项菜单(OptionMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu)。1.Option Menu 一般手机上都会提供Menu的按钮,对应的...
  • windows右键菜单中加入自己的程序

    千次阅读 2009-03-20 08:44:00
    修改右键菜单应该在...一般地说,只要是在windows系统已注册过的扩展名,在HKEY_CLASSES_ROOT下均“·该扩展名”子键 ,记录该扩展名的一些信息,对某种特定类型的文件的右键菜单的修改,便是在该键或“扩展名f
  • 理论题 —— Windows 7基础知识

    千次阅读 2021-04-12 22:18:42
    1.关于Windows 7的启动,以下描述错误的是________。 答案:D A.启动Windows7操作系统时,可选择登录账户 B.用户账户的登录密码可在控制面板设置 C.启动Window操作系统时,按F8可进入安全模式 D.用户账户登录时...
  • MacBook M1 Windows for ARM虚拟机体验

    千次阅读 2021-03-26 19:08:44
    前言 大家好,我是 刚进入春天还没来得及踏青又开始从早忙到晚的 蛮三刀。去年给大家带来了一篇比较详尽的MacBook M1评测。评测经历了全网的热情转载,成为...主要来感受一下MacBook M1芯片下使用Windows10虚拟机的体验
  • 精通Windows.API-函数、接口、编程实例.pdf

    千次下载 热门讨论 2013-01-27 11:49:55
    4.2.3 判断光驱是否光盘 81 4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息 83 4.3 文件和目录管理 86 4.3.1 删除、复制、重命名、移动文件 87 4.3.2 创建、打开、读写文件,获取文件大小 90 ...
  • 访问控制第一层级:根据当前登录用户动态加载菜单
  • Windows 本地安全策略

    千次阅读 2022-03-05 15:48:31
    Windows本地安全策略一、本地安全策略1. 概述2. 打开方式二、帐户策略1. 密码策略2. 帐户锁定策略、本地策略1. 审核策略2. 用户权限分配3. 安全选项四、本地安全策略应用案例一案例二案例 一、本地安全策略 1. ...
  • 1.什么是Windows API函数? Windows API是Windows 系统和应用程序间的标准接口,为应用程序提供Windows支持的函数定义、参数定义和消息格式等。 Visual C++提供两套完整的Windows程序开发系统: 直接使用Windows...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 130,542
精华内容 52,216
关键字:

windows菜单中有哪三类