为了账号安全,请及时绑定邮箱和手机立即绑定

如何防止用户通过在 AutoCAD 中设置当前按钮来更改配置文件?

如何防止用户通过在 AutoCAD 中设置当前按钮来更改配置文件?

PHP
慕尼黑5688855 2022-12-04 10:30:39
我有一个 WPF 应用程序,我正在从我的应用程序中打开 AutoCAD 中的绘图。我只是想限制用户使用设置当前按钮更改当前配置文件,我不想在注册表设置中更改配置文件。
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

我终于找到了答案,只需使用 UrrentProfileChangingEventHandler 显示弹出窗口,并在 CurrentProfileChangedEventHandler 事件上激活您想要的配置文件。这是代码。


放上初始化方法


UserConfigurationManager bnb = Autodesk.AutoCAD.ApplicationServices.Core.Application.UserConfigurationManager;


            bnb.CurrentProfileChanging += UserConfigManagerEvent_CurrentProfileChanging_Handler;


            bnb.CurrentProfileChanged += UserConfigManagerEvent_CurrentProfileChanged_Handler;

添加调用配置文件更改事件的方法


private void UserConfigManagerEvent_CurrentProfileChanging_Handler(object sender,ProfileEventArgs e)

        {

            string profileName = acApp.GetSystemVariable("CPROFILE").ToString();

            curProfile = e.ProfileName;

            if (profileName != curProfile && !IsMessageDisplayed)

            {

                IsMessageDisplayed = true;

                MessageBox.Show("The selected profile is not associated with Project");

            }


            if (string.IsNullOrEmpty(prevProfile))

            {

                prevProfile = profileName;

            }

        }

配置文件更改事件后调用


private void UserConfigManagerEvent_CurrentProfileChanged_Handler(object sender, ProfileEventArgs e)

        {

            AcadApplication app = (AcadApplication)Application.AcadApplication;

            AcadPreferences pref = app.Preferences;

            string cur = curProfile;

            if (curProfile.Equals(prevProfile))

            {

                IsMessageDisplayed = false;

                return;

            }

            else

            {

                pref.Profiles.ActiveProfile = prevProfile;

            }

        }


查看完整回答
反对 回复 2022-12-04
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号