MindManager2018试用期过后 修改过期时间 破解使用(重点:需要修改注册表)

MindManager2018有30天的试用期。

试用结束后就不能用了,百度了一下,大部分人的方法都是转载的

1.找到路径:C:\Users\xxx\AppData\Roaming\MindManager\MindManager2018.ini 文件中记录了安装时间和最后一次启动时间。
2.打开MindManager2018.ini
[MindManager]
InstallTime=1537004338
LastLoading=1537004338

InstallTime代表安装时间,LastLoading记录最后一次启动时间。

3.30天过期之后,修改这两个时间等于当前时间的时间戳即可。

计算时间戳的网址

测试过后发现根本不能用,为什么呢?

做为一个程序员,放弃不是我的风格。

第一步:改系统时间,发现还是不行

第二步:查找注册表,因为我发现如果你的时间修改过后,打开MindManager2018时间会自然的被替换回来。

用替换回来的值,到注册表中查询,立马发现了端倪。

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MindManager\MindManager2018\

找到项Install:这个里面才记录了安装时间,把这个时间改了,就可以用了

 

但是每次修改只能用30天,也还是非常不方便的,如果确实用的着的话,建议大家支持一下,毕竟2018版,也不贵,才不到300。

发表在 实用软件 | 标签为 , | 留下评论

使用AcPlPlotEngine打印

整个打印的过程是比较复杂的, 要全面搞懂, 就要了解AcDbLayout、 AcDbPlotSettings、
AcDbPlotSettingsValidator、 AcPlPlotEngine、 AcPlPlotInfo几个类(缺一不可),以及它们之间的相互关系,而打印进度对话框可以不要。

注意加上头文件:#include “AcPlPlotEngine.h”

void batPlot()
{
//批量打印
// 取得当前layout
AcDbLayoutManager *pLayoutManager =
acdbHostApplicationServices()->layoutManager(); //取得布局管理器对象
AcDbLayout *pLayout =
pLayoutManager->findLayoutNamed(pLayoutManager->findActiveLayout(TRUE),TRUE);//获得当前布局
AcDbObjectId m_layoutId = pLayout->objectId();//获得布局的Id
//获得打印机验证器对象
AcDbPlotSettingsValidator *pPSV =NULL;
pPSV = acdbHostApplicationServices()->plotSettingsValidator();
//更新打印设备列表
pPSV->refreshLists(pLayout);
//打印机设置
ACHAR* m_strDevice = _T(“DWF6 ePlot.pc3”);//打印机名字
pPSV->setPlotCfgName(pLayout,m_strDevice);//设置打印设备
ACHAR* m_mediaName = _T(“ISO A4”);//图纸名称
pPSV->setCanonicalMediaName(pLayout,m_mediaName);//设置图纸尺寸
pPSV->setPlotType(pLayout,AcDbPlotSettings::kWindow);//设置打印范围为窗口
pPSV->setPlotWindowArea(pLayout,100,100,200,200);//设置打印范围,超出给范围的将打不出来
pPSV->setCurrentStyleSheet(pLayout,_T(“JSTRI.ctb”));//设置打印样式表
pPSV->setPlotCentered(pLayout,true);//是否居中打印
pPSV->setUseStandardScale(pLayout,true);//设置是否采用标准比例
pPSV->setStdScaleType(pLayout,AcDbPlotSettings::kScaleToFit);//布满图纸
pPSV->setPlotRotation(pLayout,AcDbPlotSettings::k90degrees);//设置打印方向

//pPSV->setPlotViewName(pLayout,_T(“打印1”));

//准备打印/////////////////////////////////////////////////////////////////////////
AcPlPlotEngine* pEngine = NULL;//创建打印引擎
if(AcPlPlotFactory::createPublishEngine(pEngine)!=Acad::eOk)
{
acedAlert(_T(“打印失败!”));
return;
}
// 打印进度对话框
AcPlPlotProgressDialog *pPlotProgDlg = acplCreatePlotProgressDialog(acedGetAcadFrame()->m_hWnd,false,1);
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kDialogTitle,_T(“lot API Progress”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kCancelJobBtnMsg,_T(“Cancel Job”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kCancelSheetBtnMsg,_T(“Cancel Sheet”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kSheetSetProgressCaption,_T(“Job Progress”));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kSheetProgressCaption,_T(“Sheet Progress”));
pPlotProgDlg->setPlotProgressRange(0,100);
pPlotProgDlg->onBeginPlot();
pPlotProgDlg->setIsVisible(true);
//begin plot
Acad::ErrorStatus es = pEngine->beginPlot(pPlotProgDlg);
AcPlPlotPageInfo pageInfo;//打印页信息
AcPlPlotInfo plotInfo; //打印信息
// 设置布局
plotInfo.setLayout(m_layoutId);
// 重置参数
plotInfo.setOverrideSettings(pLayout);
AcPlPlotInfoValidator validator;//创建打印信息验证器
validator.setMediaMatchingPolicy(AcPlPlotInfoValidator::kMatchEnabled);
es = validator.validate(plotInfo);
// begin document
const TCHAR *szDocName = acDocManager->curDocument()->fileName();//获得当前的文件名

//最后一个参数需要传入文件名
es = pEngine->beginDocument(plotInfo, szDocName, NULL,1,true,_T(“D:\\test.dwf”));
//给打印机和进度对话框发送消息
pPlotProgDlg->onBeginSheet();
pPlotProgDlg->setSheetProgressRange(0, 100);
pPlotProgDlg->setSheetProgressPos(0);
//begin page
es = pEngine->beginPage(pageInfo, plotInfo, true);
es = pEngine->beginGenerateGraphics();
es = pEngine->endGenerateGraphics();
//end page
es = pEngine->endPage();
pPlotProgDlg->setSheetProgressPos(100);
pPlotProgDlg->onEndSheet();
pPlotProgDlg->setPlotProgressPos(100);
//end document
es = pEngine->endDocument();
//end plot
es = pEngine->endPlot();
//返回资源
pEngine->destroy();
pEngine = NULL;
pPlotProgDlg->destroy();
pLayout->close();
}

发表在 ObjectArx | 留下评论

CAD二次开发环境搭建

CAD版本和ObjectArx+VS版本对应关系 更新到CAD2020

CAD版本

内部版本号

Arx版本

VS版本

备注

2004

R16.0

ObjectARX 2004/2006

VS2002/VS2003

2004不支持表格

2005

R16.1

2006

R16.2

2007

R17.0

ObjectARX 2007

VS2005

CAD2008后开始有64位版本

2008

R17.1

2009

R17.2

2010

R18.0

ObjectARX 2010

VS2008

需要升级到SP1,否则编译会报错

2011

R18.1

2012

R18.2

2013

R19.0

ObjectARX 2013

VS2010

 

2014

R19.1

2015

R20.0

ObjectARX 2015

VS2012/VS2013

 

2016

R20.1

2017

R21.0

ObjectARX 2017

VS2015

 

2018

R22.0

ObjectARX 2018

VS2015

升级到SP3

2019

R23.0

ObjectARX 2019

VS2017

升级到SP2

2020

R23.1

1:CAD的内部版本号格式为R大版本.小版本。大版本号相同的CAD可以用同一个Arx版本编译,但是低版本的CAD不支持高版本的Arx。例如ObjectArx2004编译的程序AutoCAD2004~2006都可以使用,但是ObjectArx2006编译的程序AutoCAD2006可以使用,2004和2005都不可以使用。 2:AutoCAD2013之前每三年推出一个大版本,之后每两年推出一个大版本。大版本之间无法做到相互支持,因为每个大版本对应的编译VS版本都不相同,MFC依赖库也不相同,无法相互兼容。 3:从CAD2006开始支持.Net二次开发,但是前面几个版本2006~2008接口也不完全相同,需要做一下兼容性调整,再后面的版本就基本稳定了,这个环境就容易的多。做一些简单的应用开发可以考虑采用.Net来做二次开发。    

发表在 ObjectArx | 留下评论

中印爆发最严重对峙之一个普通国民的思考

中印爆发最严重对峙

事件的前因后果网上,各种新闻铺天盖地

这里就不抄了,只想发表一下做为一个普通国民最基础最纯真的看法。

没有别的,中国人太可怜了。

强大的国家欺负我们,美国轰炸南斯拉夫大使馆,银河号事件,派遣航母进入台湾海峡,我们打不赢他们,我们忍了,我们抗议,我们要和平。

跟我们有的一拼的国家,当然有些人说印度、越南完全跟中国不在一个数量级上,我觉得也不完全说的过去,总体上来说他们肯定要比我们差一点,但至少不会有代差,不会有数量级上的差异,真的说他们比我国差很多的估计是捧杀。我们还是忍,我们还是抗议,还是让万能的外交部冲在最前面。总结起来就是我抗议你们欺负我,你们别再欺负我了啊。

弱小的国家欺负我们,例如印尼,菲律宾。我们还是忍,我们还是抗议,还是让万能的外交部冲在最前面。连经济制裁这种手段都不敢用。

中国人民能活下来真心不容易,对内有最牛逼哄哄的城管,拆迁队,警察。如果他们拿对付下面人民1%的战斗力去对付印度,菲律宾,他们还敢在边界猖狂。对付美国当然他们没有这个能力。对外有和平,和平,和平的政府。

什么时候才能想清楚,和平不是别人给你的施舍,而是你奋斗的结果。

发表在 其它 | 标签为 | 留下评论

高科西路(沪南路-罗山路)最新消息17年7月12日