求破解 Excel 中VBA工程文件密码方法?????
我有一个excel文档,但其中vba工程文件加密,能破解吗?我只知道excel的密码可以破解〉??
望知道的人指点...
破解 Excel 中VBA工程文件密码方法????? --------------------编程问答-------------------- 這個簡單啊,修改一個地方就可以了 --------------------编程问答-------------------- 中过一个宏病毒,在VBA中其源码加了密,怎么也弄不掉,只好重做了系统 --------------------编程问答-------------------- 解除是很簡單的,,,, --------------------编程问答--------------------
怎么除去 .....?? --------------------编程问答--------------------
实际控制操作
VOID ValveSet( GDC_CARD_INFO *pstNode ){FLOAT fSetValue = 0.0;
INT32 iSetValue = 0;UINT8 ucIICChan = 0;UINT32 ulRet = CCU_ERR;
CHECK_PARA1_NULL( pstNode );CHECK_PARA1_NULL(Y6);/* 判断是否存在阀门失效告警 */
IsValveFaultAlarm(pstNode->ucSlotId, Y6[VALVE_FAULT_NUM].fValveSetValue);
if ( AUTO_MODE != pstNode->ucMode ){return;}fSetValue = Y6[VALVE_FAULT_NUM].fTargetValueVoltage;
/* 如果设置电压值大于需保持阀门最小开度的电压值,按保持阀门最小开度电压值设置,目前是6.5V */
if ( fSetValue > Y7){fSetValue = Y7;}/* 设置电压值转换为DA转换的设置值,与硬件电路相关 */
iSetValue = (INT32)((fSetValue/10) * 65536);
/* 目前DA设置时设0不能成功,所以置设置值为1 */
if ( 0 == iSetValue ){iSetValue = 1;}if ( CCU_TRUE == ulSetDAValue){CCU_Printf;CCU_Printf;}
/* 更新实际设置电压值,以便下一次判断阀门失效告警 */
Y6[VALVE_FAULT_NUM].fValveSetValue = fSetValue;ucIICChan = pstNode->ucSlotId + START_IIC_CHAN_ID;
/* 调驱动适配接口设置 */
ulRet = AD5625_Write(ucIICChan, AD5626_ADDR, AD5625_OUTPUT_CHAN, iSetValue);
CHECK_RET_OK(ulRet);return; }
阀门控制
VOID ControlValve( GDC_CARD_INFO *pstNode ){VALVE_ADJUST_MODE enAdjustMode;
INT32 iDeltaTMax = 0;CHECK;CHECK_PARA1_NULL(Y6);
/* 如果有温度过高告警或传感器失效告警,控制阀门全开 */
if ( CCU_TRUE == IsOutputTempAlarm(pstNode) ){ return;}
/* 如果出现入风口大于出风口温度的异常告警,控制阀门全开,返回 */
if ( CCU_TRUE == IsInputTempErrAlarm(pstNode)){ return;}
/* 计算DeltaT,并取出最大值 */if ( CCU_OK != GetMaxDeltaT(pstNode, &iDeltaTMax) )
{return; }/* 计算阀门是否需要调节,返回调节方向 */
enAdjustMode = IsNeedAdjustValve(iDeltaTMax, (UINT8)Y6[INPUT_TEMP_SENSOR_INDEX].cDeltaTempUpperLmt,
(UINT8)Y6[INPUT_TEMP_SENSOR_INDEX].cDeltaTempLowerLmt, pstNode->ucDeltaTWIDE);
/* 根据调节模式计算调节目标电压值 */ValveStepControl(pstNode, enAdjustMode); }
--------------------编程问答-------------------- 定时保存配置文件
VOID SaveGdcConfigPer10Min( VOID ){
UINT32 i = 0;UINT32 ulLen = 0;
GDC_CARD_INFO *pstNode = CCU_NULL_PTR;
for ( i = 0 ; i < MAX_INSIDE_CARD_NUM; i++ )
{
if ( CCU_TRUE == Y2.ucIsOnLine)
{
pstNode = &g_stInsideBoardInfo.stGdcInfo[i];
ulLen = (UINT32)CCU_StrLen((CHAR*)pstNode->cBarCode);
CFG_SaveGDCCfg((UINT8)i, pstNode->cBarCode, ulLen);
}
}
}
处理告警卡
VOID PollAlarmCard( CARD_INFO *pstNode )
{
static UINT32 ulTimeCnt[MAX_INSIDE_CARD_NUM] = {0};
CHECK;
/* 定时5S点一次告警卡 */
if ( !(ulTimeCnt[pstNode->ucSlotId]%5) )
{
IllumeAlarmCard( pstNode->ucSlotId );
}
/* 累加计数器放在函数尾做,以便程序第一次起来后就设置一次阀门 */
ulTimeCnt[pstNode->ucSlotId]++;
return;
}
获取某个槽位上是否在位以及在位的话卡类型
UINT32 CCU_GetInsideBoardType(UINT8 ucSlotId,
INSIDE_BOARD_TYPE *penInsideBoardType, UINT8 *pucIsOnLine)
{
CHECK_PARA2_NULL_RN(penInsideBoardType,
pucIsOnLine, CCU_485_ERR_INVALID_PARAMETER)
if ( ucSlotId >= MAX_INSIDE_CARD_NUM )
{
return CCU_485_ERR_INVALID_PARAMETER;
}
*penInsideBoardType = (INSIDE_BOARD_TYPE)g_stInsideBoardInfo.stCardInfo[ ucSlotId ].ucBoardType;
*pucIsOnLine = g_stInsideBoardInfo.stCardInfo[ ucSlotId ].ucIsOnLine;
return CCU_OK;
} --------------------编程问答-------------------- GDC子卡传感器扫描和阀门控制
VOID PollGdcCard( GDC_CARD_INFO *pstNode )
{
static UINT32 ulTimeCnt[MAX_INSIDE_CARD_NUM] = {0};
CHECK_PARA1_NULL( pstNode );
/* 定时3S读取温度传感器值,并做相关告警处理 */
if ( !(ulTimeCnt[pstNode->ucSlotId]%3) )
{
ReadGdcSensor( pstNode );
}
/* 定时10S控制阀门开度 */
if ( !(ulTimeCnt[pstNode->ucSlotId]%10) )
{
/* 温控模式才计算阀门调节值 */
if ( AUTO_MODE == pstNode->ucMode )
{
ControlValve( pstNode );
}
/* 对于主控模式,还是要进入下面函数判断阀门失效告警 */
ValveSet(pstNode);
}
/* 定时10分钟保存配置文件 */
if ( !(ulTimeCnt[pstNode->ucSlotId]%500) )
{
SaveGdcConfigPer10Min();
}
/* 累加计数器放在函数尾做,以便程序第一次起来后就设置一次阀门 */
ulTimeCnt[pstNode->ucSlotId]++;
return;
}
按子卡类型扫描管理
VOID ProcInsideBoardByType(INSIDE_BOARD_TYPE enBoardType, UINT8 ucSlotId)
{
GDC_CARD_INFO *pstNode = CCU_NULL_PTR;
CARD_INFO *pstAlarmCardNode = CCU_NULL_PTR;
if ( ucSlotId >= MAX_INSIDE_CARD_NUM )
{
return;
}
Y8;
pstAlarmCardNode = &Y9;
switch ( enBoardType )
{
case CCU_INSIDE_BOARD_TYPE_GDC :
PollGdcCard( pstNode );
break;
case CCU_INSIDE_BOARD_TYPE_ALARM:
PollAlarmCard( pstAlarmCardNode );
break;
default:
break;
}
return;
} --------------------编程问答-------------------- 楼上 发的是什么哦?
补充:VB , 非技术类