精华内容
下载资源
问答
  • 图标右下角有一个盾牌,很明显表示受保护,打开程序需要我们点击确认才会运行,确实安全不少,但是又很麻烦,每次都要点击确定才能进去。 以win10系统为例,此... ... ...我们能看到一个可以滑动的杆,这里代表通知...

    图标右下角有一个盾牌,很明显表示受保护,打开程序需要我们点击确认才会运行,确实安全不少,但是又很麻烦,每次都要点击确定才能进去。
    在这里插入图片描述
    以win10系统为例,此电脑右键-属性-控制面板主页,然后点击进入。
    在这里插入图片描述
    在这里插入图片描述
    在【控制面板】中,选择【用户账户】点进去。
    在这里插入图片描述
    在下一层界面里,继续点击【用户账户】。
    在这里插入图片描述
    到这里我们可以看到【更改用户账户控制设置】,选择这个选项进入。
    在这里插入图片描述
    我们能看到一个可以滑动的杆,这里代表通知等级。具体代表什么不做过多解释了,总之调到越高就越麻烦。所以,为了去掉小盾牌,让进入游戏更畅快。我们就把这个滑动的杆调到最低,虽然系统提示不推荐,但是好用啊,省心啊,所以大家还是调到最低吧。之后点击【确定】,大功告成。这样我们切回桌面,点击原来带小盾牌的程序,直接进入,有没有。很实用吧。
    在这里插入图片描述

    展开全文
  • VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单并删除程序组菜单的实例,这些小技巧都是在平时软件开发过程中经常用到的功能,有必要掌握。删除快捷方式只需要简单地调用文件操作函数SHFileOperation()就...

    VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单并删除程序组菜单的实例,这些小技巧都是在平时软件开发过程中经常用到的功能,有必要掌握。删除快捷方式只需要简单地调用文件操作函数SHFileOperation()就可以了,在完成上述操作后,要调用SHChangeNotify()通知Windows外壳更新状态变化。

    VC++增加程序组(创建文件夹)和快捷方式,及删除操作相关代码如下:

    001 //浏览文件夹
    002 BOOL CShortCutDlg::BrowseForFolder(
    003     LPITEMIDLIST pidlRoot,//浏览开始处的PIDL
    004     LPITEMIDLIST *ppidlDestination,
    005                 //浏览结束时所选择的PIDL
    006     LPCSTR lpszTitle)//浏览对话框中的提示文字
    007 {
    008     BROWSEINFO BrInfo ;
    009     ZeroMemory( &BrInfo, sizeof(BrInfo)) ;
    010     BrInfo.hwndOwner = HWND_DESKTOP ;
    011     BrInfo.pidlRoot = pidlRoot ;
    012     BrInfo.lpszTitle = lpszTitle ;
    013     //浏览文件夹
    014     *ppidlDestination= SHBrowseForFolder(&BrInfo);
    015     //用户选择了取消按钮
    016     if(NULL == *ppidlDestination)
    017         return FALSE ;
    018     return TRUE ;
    019 }
    020 //取得快捷方式的目标应用程序名
    021 BOOL CShortCutDlg::SelectMenuItem( LPSTR szFileName)
    022 {
    023     OPENFILENAME ofn ;
    024     static CHAR szFilter[] = "Programs\0*.exe\0" ;
    025     ZeroMemory(&ofn, sizeof( OPENFILENAME)) ;
    026     ofn.lStructSize = sizeof( OPENFILENAME) ;
    027     ofn.hwndOwner = HWND_DESKTOP;
    028     ofn.lpstrFilter = szFilter ;
    029     ofn.nFilterIndex = 0 ;
    030     ofn.nMaxFile = MAX_PATH ;
    031     ofn.lpstrTitle = "请选择目标应用程序:" ;
    032     ofn.lpstrFile = szFileName ;
    033     ofn.Flags = OFN_FILEMUSTEXIST |
    034             OFN_PATHMUSTEXIST | OFN_EXPLORER ;
    035     //文件浏览
    036     if(!GetOpenFileName( &ofn))//选择了取消按钮
    037         return FALSE ;
    038     return TRUE ;
    039 }
    040 //取得要创建的快捷方式的名字
    041 BOOL CShortCutDlg::GetShortcutCrt(LPSTR szPath)
    042 {
    043     LPITEMIDLIST pidlBeginAt, pidlDestination ;
    044  
    045     // 取得开始菜单或桌面的PIDL
    046     SHGetSpecialFolderLocation( HWND_DESKTOP,
    047                 nBeginAt, &pidlBeginAt) ;
    048     // 取得要创建的快捷方式所在的位置
    049     if( !BrowseForFolder(pidlBeginAt, &pidlDestination,
    050                 "请选择快捷方式所在的位置:"))
    051         return FALSE ;
    052     // 把PIDL转换为路径名
    053     SHGetPathFromIDList( pidlDestination, szPath) ;
    054     // 取得快捷方式名称
    055     CNameDlg name_dlg;
    056     if(name_dlg.DoModal() == IDCANCEL)
    057         return FALSE ;
    058     //把快捷方式名和扩展名.LNK添加到路径名后
    059     //形成完整的快捷方式数据文件名
    060     wsprintf(szPath+lstrlen(szPath),"\\%s.lnk",
    061                 name_dlg.m_strName) ;
    062     return TRUE ;
    063 }
    064 //创建快捷方式
    065 BOOL CShortCutDlg::CreateLink (
    066     LPSTR szPath,//快捷方式的目标应用程序名
    067     LPSTR szLink)//快捷方式的数据文件名(*.lnk)
    068 {
    069     HRESULT hres ;
    070     IShellLink * psl ;
    071     IPersistFile* ppf ;
    072     WORD wsz[ MAX_PATH] ;
    073     //创建一个IShellLink实例
    074     hres = CoCreateInstance( CLSID_ShellLink, NULL,
    075         CLSCTX_INPROC_SERVER, IID_IShellLink,
    076         (void **)&psl) ;
    077     if( FAILED( hres))
    078         return FALSE ;
    079     //设置目标应用程序
    080     psl -> SetPath( szPath) ;
    081     //设置快捷键(此处设为Shift+Ctrl+'R')
    082     psl -> SetHotkey( MAKEWORD( 'R',
    083         HOTKEYF_SHIFT |HOTKEYF_CONTROL)) ;
    084     //从IShellLink获取其IPersistFile接口
    085     //用于保存快捷方式的数据文件 (*.lnk)
    086     hres = psl -> QueryInterface( IID_IPersistFile,
    087         (void**)&ppf) ;
    088     if( FAILED( hres))
    089         return FALSE ;
    090     // 确保数据文件名为ANSI格式
    091     MultiByteToWideChar( CP_ACP, 0, szLink, -1,
    092         wsz, MAX_PATH) ;
    093     //调用IPersistFile::Save
    094     //保存快捷方式的数据文件 (*.lnk)
    095     hres = ppf -> Save( wsz, STGM_READWRITE) ;
    096     //释放IPersistFile和IShellLink接口
    097     ppf -> Release( ) ;
    098     psl -> Release( ) ;
    099     return TRUE;
    100 }
    101 BOOL CShortCutDlg::DeleteFolder( LPSTR pszFolder)
    102 {
    103     SHFILEOPSTRUCT fos ;
    104  
    105     ZeroMemory( &fos, sizeof( fos)) ;
    106     fos.hwnd = HWND_DESKTOP;
    107     fos.wFunc = FO_DELETE ;
    108     fos.fFlags = FOF_SILENT | FOF_ALLOWUNDO ;
    109     fos.pFrom = pszFolder ;
    110     // 删除文件夹及其内容
    111     if( 0 != SHFileOperation( &fos))
    112         return FALSE ;
    113     return TRUE;
    114 }
    115 //取得要删除的快捷方式
    116 BOOL CShortCutDlg::GetShortcutDel (
    117         LPSTR lpszInitDir,//选择文件的开始目录
    118         LPSTR lpszShortcut)//快捷方式名
    119 {
    120     OPENFILENAME ofn ;
    121     char szFilter[] = "Shortcuts\0*.lnk\0" ;
    122     ZeroMemory(&ofn,sizeof( OPENFILENAME));
    123     ofn.lStructSize = sizeof( OPENFILENAME) ;
    124     ofn.hwndOwner = HWND_DESKTOP ;
    125     ofn.lpstrFilter = szFilter ;
    126     ofn.nFilterIndex = 0 ;
    127     ofn.nMaxFile = MAX_PATH ;
    128     ofn.lpstrTitle = "请选择要删除的快捷方式:" ;
    129     ofn.lpstrFile = lpszShortcut;
    130     ofn.lpstrInitialDir = lpszInitDir ;
    131     ofn.Flags = OFN_FILEMUSTEXIST |
    132         OFN_PATHMUSTEXIST | OFN_EXPLORER |
    133         OFN_NODEREFERENCELINKS ;
    134     //文件浏览
    135     if(! GetOpenFileName( &ofn))//选择了取消按钮
    136         return FALSE ;
    137     return TRUE ;
    138 }
    139 //删除快捷方式的数据文件 (*.lnk)
    140 BOOL CShortCutDlg::DeleteLink( LPSTR lpszShortcut)
    141 {
    142     SHFILEOPSTRUCT fos ;
    143     ZeroMemory( &fos, sizeof(fos)) ;
    144     fos.hwnd = HWND_DESKTOP ;
    145     fos.wFunc = FO_DELETE ;
    146     fos.pFrom = lpszShortcut;
    147     fos.pTo = NULL ;
    148     fos.fFlags = FOF_SILENT | FOF_ALLOWUNDO ;
    149     //删除快捷方式(*.lnk)
    150     if( 0 != SHFileOperation( &fos))
    151         return FALSE ;
    152     return TRUE ;
    153 }
    154 // 通知shell有关变化
    155 void CShortCutDlg::NotifyShell(LONG wEventId,//事件标志
    156             LPSTR szPath)//路径
    157 {
    158     SHChangeNotify( wEventId,
    159                     SHCNF_FLUSH | SHCNF_PATH,
    160                     szPath,0);
    161     //取得szPath的父目录
    162     char* p;
    163     for( p=szPath+lstrlen(szPath)-1;
    164             *p != '\\';
    165             p--);
    166     *p='\0';
    167     SHChangeNotify(SHCNE_UPDATEDIR
    168             |SHCNE_INTERRUPT,
    169             SHCNF_FLUSH | SHCNF_PATH,szPath,0);
    170 }
    171 void CShortCutDlg::OnCreateGroup()
    172 {
    173     UpdateData(TRUE);
    174     if(m_nLocation==0)
    175     {
    176         //设置起始文件夹为桌面
    177         nBeginAt=CSIDL_DESKTOPDIRECTORY ;
    178     }
    179     else
    180     {
    181         //设置起始文件夹为“开始”菜单
    182         nBeginAt=CSIDL_STARTMENU;
    183     }
    184     LPITEMIDLIST pidlBeginAt, pidlDestination ;
    185     char szPath[ MAX_PATH] ;
    186     // 取得开始菜单或桌面的PIDL
    187     SHGetSpecialFolderLocation( HWND_DESKTOP,
    188             nBeginAt, &pidlBeginAt) ;
    189     // 取得新建文件夹的父文件夹
    190     if( !BrowseForFolder(pidlBeginAt ,
    191             &pidlDestination,
    192             "请选择新建文件夹/菜单组的位置:"))
    193         return ;
    194     // 把PIDL转换为路径名
    195     SHGetPathFromIDList( pidlDestination, szPath) ;
    196     //取得新建文件夹的名字
    197     CNameDlg name_dlg;
    198     if(name_dlg.DoModal() == IDCANCEL)
    199         return;
    200     //形成完整的新建文件夹名
    201     wsprintf(szPath+lstrlen(szPath),"\\%s",
    202                 name_dlg.m_strName);
    203     //创建文件夹(子目录)
    204     if( !CreateDirectory( szPath, NULL))
    205     {
    206