ObjectARX
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

any way to remove password from a dwg

8 REPLIES 8
SOLVED
Reply
Message 1 of 9
Anonymous
6152 Views, 8 Replies

any way to remove password from a dwg

I want to remove password from dwgs whose password is know.  I can open these dwgs by known pasword, but I can't find a way to save them without password.

 

        SecurityParams secParams;
        {
            secParams.cbSize = 48;
            secParams.ulFlags = 1;
            secParams.ulProvType = 1;
            secParams.ulAlgId = 26625;
            secParams.ulKeyLength = 40;
            secParams.wszPassword = szPassword;//if I give NULL to this param, the "saveAs" method crushes.
            secParams.wszProvName = _T("Microsoft Base Cryptographic Provider v1.0");
        }

     es = pDb->saveAs(szFileName,&secParams);// I want to remove their passsword

 

8 REPLIES 8
Message 2 of 9
owenwengerd
in reply to: Anonymous

Pass NULL for the second argument to saveAs().

--
Owen Wengerd
ManuSoft
Message 3 of 9
Anonymous
in reply to: owenwengerd

thanks, but are you sure? I tried the following code,  it dosen't work. The password of the dwg still exists.

          

             AcDbDatabase* pDb = new AcDbDatabase(false);
            Acad::ErrorStatus es = pDb->readDwgFile(iterS->c_str(),_SH_DENYWR,false,szOldPassword);
            if (Acad::eOk == es)
            {
                if (_tcscmp(szPassword,_T("")) == 0)
                {
                    es = pDb->saveAs(iterS->c_str(),NULL);
                }
                else
                {
                    es = pDb->saveAs(iterS->c_str(),&secParams);
                }
                
                if (Acad::eOk == es ) ++nCount;
            }

Message 4 of 9
Alexander.Rivilis
in reply to: Anonymous

Try:

secParams.wszPassword =_T("");

 

 

 

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 5 of 9
Anonymous
in reply to: Alexander.Rivilis

CAD enters dead loop, If I pass an empty string(not null) .

Message 6 of 9
Alexander.Rivilis
in reply to: Anonymous

What about save dwg with other filename without password?

There is a method AcDbDatabase::setSecurityParams. Try pass NULL to it.

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 7 of 9
Anonymous
in reply to: Alexander.Rivilis

I tried, "save as" with a new file name, but the new dwg still has the same password from the old dwg.

Message 8 of 9
Alexander.Rivilis
in reply to: Anonymous

OK. Working code:

static bool RemovePasswordProtection(AcDbDatabase *pDb)
{
    const SecurityParams *parSecOld = pDb->cloneSecurityParams();
    SecurityParams parSecNew = *parSecOld;
    parSecNew.ulFlags = 0; // Clear all security flags
    return (pDb->setSecurityParams(&parSecNew));
}
// Main function remove password from current drawing
static void PWDRemovePwd(void)
{
    AcDbDatabase *pCurDb  = acdbCurDwg();
    AcApDocument *pCurDoc = curDoc();
    RemovePasswordProtection(pCurDb);
    pCurDb->saveAs(pCurDoc->fileName(),NULL);
}

 

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 9 of 9
Anonymous
in reply to: Alexander.Rivilis

thanks so much. It did work.  I noticed that cad  automatically remembers password , but found no way to remove this mechanism.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report

”Boost