NX开发_打开配置数据文件


//==============================================================================
//  WARNING!!  This file is overwritten by the Block UI Styler while generating
//  the automation code. Any modifications to this file will be lost after
//  generating the code again.
//
//       Filename:  D:\DS_tool\application\pressure_plate.cpp
//
//        This file was generated by the NX Block UI Styler
//        Created by: Administrator
//              Version: NX 10
//              Date: 06-19-2022  (Format: mm-dd-yyyy)
//              Time: 22:59 (Format: hh-mm)
//
//==============================================================================

//==============================================================================
//==============================================================================

//These includes are needed for the following template code
#include "pressure_plate.hpp"
using namespace NXOpen;
using namespace NXOpen::BlockStyler;

Session *(pressure_plate::theSession) = NULL;
UI *(pressure_plate::theUI) = NULL;
pressure_plate::pressure_plate()
{
    try
    {
        pressure_plate::theSession = NXOpen::Session::GetSession();
        pressure_plate::theUI = UI::GetUI();
        theDlxFileName = "pressure_plate.dlx";
        theDialog = pressure_plate::theUI->CreateDialog(theDlxFileName);
        theDialog->AddApplyHandler(make_callback(this, &pressure_plate::apply_cb));
        theDialog->AddOkHandler(make_callback(this, &pressure_plate::ok_cb));
        theDialog->AddUpdateHandler(make_callback(this, &pressure_plate::update_cb));
        theDialog->AddCancelHandler(make_callback(this, &pressure_plate::cancel_cb));
        theDialog->AddFilterHandler(make_callback(this, &pressure_plate::filter_cb));
        theDialog->AddInitializeHandler(make_callback(this, &pressure_plate::initialize_cb));
        theDialog->AddDialogShownHandler(make_callback(this, &pressure_plate::dialogShown_cb));
    }
    catch(exception& ex)
    {
        throw;
    }
}

pressure_plate::~pressure_plate()
{
    if (theDialog != NULL)
    {
        delete theDialog;
        theDialog = NULL;
    }
}
extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)
{
    pressure_plate *thepressure_plate = NULL;
    try
    {
        thepressure_plate = new pressure_plate();
        thepressure_plate->Show();
    }
    catch(exception& ex)
    {
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    if(thepressure_plate != NULL)
    {
        delete thepressure_plate;
        thepressure_plate = NULL;
    }
}


#include 
#include 
#include 
#include 
#include    
#include 
#include <string.h>
#include  
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;



extern "C" DllExport int ufusr_ask_unload()
{
    //return (int)Session::LibraryUnloadOptionExplicitly;
    return (int)Session::LibraryUnloadOptionImmediately;
    //return (int)Session::LibraryUnloadOptionAtTermination;
}

extern "C" DllExport void ufusr_cleanup(void)
{
    try
    {
    }
    catch(exception& ex)
    {
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}

int pressure_plate::Show()
{
    try
    {
        theDialog->Show();
    }
    catch(exception& ex)
    {
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return 0;
}


//------------------------------------------------------------------------------
//Callback Name: initialize_cb
//------------------------------------------------------------------------------
void pressure_plate::initialize_cb()
{
    try
    {
        buttonP1 = theDialog->TopBlock()->FindBlock("buttonP1");
        buttonData = theDialog->TopBlock()->FindBlock("buttonData");
        buttonData1 = theDialog->TopBlock()->FindBlock("buttonData1");
    }
    catch(exception& ex)
    {
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}

//------------------------------------------------------------------------------
//Callback Name: dialogShown_cb
//------------------------------------------------------------------------------
void pressure_plate::dialogShown_cb()
{
    try
    {
    }
    catch(exception& ex)
    {
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
}

//------------------------------------------------------------------------------
//Callback Name: apply_cb
//------------------------------------------------------------------------------
int pressure_plate::apply_cb()
{
    int errorCode = 0;
    try
    {
    }
    catch(exception& ex)
    {
        errorCode = 1;
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return errorCode;
}

//------------------------------------------------------------------------------
//Callback Name: update_cb
//------------------------------------------------------------------------------
int pressure_plate::update_cb(NXOpen::BlockStyler::UIBlock* block)
{
    try
    {
        if(block == buttonP1)
        {



        }
        else if(block == buttonData)
        {

            //用记事本打开文件
            char txt[256+1] = "D:\\DS_tool\\datebase\\pressure_plate.txt";
            char eexe[512] =" ";
            sprintf(eexe, "notepad.exe %s", txt);
            LPWSTR txtt = CA2W(eexe);
            STARTUPINFO si = {sizeof(si)};
            PROCESS_INFORMATION pi = {0};
            if( CreateProcess(NULL, txtt, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi) )
            {
                CloseHandle(pi.hThread);
                CloseHandle(pi.hProcess);
            }

        }
        else if(block == buttonData1)
        {

            //打开文件夹
            ShellExecute(NULL, _T("open"), _T("D:\\DS_tool\\datebase\\pressure_plate.xlsx"), NULL, NULL, SW_SHOW);


        }
    }
    catch(exception& ex)
    {
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return 0;
}

//------------------------------------------------------------------------------
//Callback Name: ok_cb
//------------------------------------------------------------------------------
int pressure_plate::ok_cb()
{
    int errorCode = 0;
    try
    {
        errorCode = apply_cb();
    }
    catch(exception& ex)
    {
        errorCode = 1;
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return errorCode;
}

//------------------------------------------------------------------------------
//Callback Name: cancel_Cb
//------------------------------------------------------------------------------
int pressure_plate::cancel_cb()
{
    try
    {
    }
    catch(exception& ex)
    {
        pressure_plate::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
    }
    return 0;
}

//------------------------------------------------------------------------------
//Callback Name: filter_cb
//------------------------------------------------------------------------------
int pressure_plate::filter_cb(NXOpen::BlockStyler::UIBlock* block, NXOpen::TaggedObject* selectObject)
{
    return(UF_UI_SEL_ACCEPT);
}

//------------------------------------------------------------------------------
//Function Name: GetBlockProperties
//Description: Returns the propertylist of the specified BlockID
PropertyList* pressure_plate::GetBlockProperties(const char *blockID)
{
    return theDialog->GetBlockProperties(blockID);
}