C 實現磁碟去唯讀屬性

2021-08-20 08:35:03 字數 1480 閱讀 5007

磁碟去唯讀屬性也是有兩種方法,一種是diskpart工具的 attributes disk clear readonly 命令,還有一種是執行wmi的帶引數方法。

關於如何寫c++ 呼叫diskpart工具和c++ wmi在前面兩篇文章:c++實現磁碟聯機 和 c++實現磁碟初始化中都提及到了。

直接附上**:

1. diskpart方法:

核心**只有一行:

ret = writefile(hchildstdinwr, "attributes disk clear readonly",sizeof("attributes disk clear readonly"), &dwwritten, null); 

2. wmi方法

核心**如下:

wchar_t msftdiskobjectid[256];

getwmimsftdiskobjectid(msftdiskobjectid, index);

ccomptr< iwbemclassobject > pclass = null;

bstr methodname = sysallocstring(l"setattributes");

bstr classname = sysallocstring(l"msft_disk");

hr = service->getobject(classname, 0, null, &pclass, null);

if (failed(hr))

ccomptr< iwbemclassobject > pinparams = null;

hr = pclass->getmethod(methodname, 0, &pinparams, null);

if (failed(hr))

ccomptr< iwbemclassobject > pclassinstance = null;

hr = pinparams->spawninstance(0, &pclassinstance);

if (failed(hr))

variant varcommand;

varcommand.vt = vt_bool;

varcommand.ulval = false;

hr = pclassinstance->put(l"isreadonly", 0, &varcommand, 0);

if (failed(hr))

ccomptr< iwbemclassobject > poutparams = null;

hr = service->execmethod(msftdiskobjectid, methodname, 0, null, pclassinstance, &poutparams, null);

if (failed(hr))

sysfreestring(classname);

sysfreestring(methodname);

return 0;

C 中使用 實現唯讀屬性

今天在閱讀unity的fps microgame原始碼時,發現了以下奇怪的語句 public gameobject knowndetectedtarget m detectionmodule.knowndetectedtarget public bool istargetinattackrange ...

怎麼實現唯讀屬性

方法一 物件私有化 usr bin env python coding utf 8 author jia shilin class person object def init self,x self.age 20 def get age self return self.age a person ...

C 序列化 唯讀屬性

在直接序列化唯讀屬性的時候,由於該屬性沒有 setter 在反序列化時無法給其賦值,所以該屬性將不被序列化 個人理解 而且,如果序列化的目的如果只是儲存,反序列化之後唯讀屬性的值可以通過 get 裡面的 自動獲得,序列化也沒有意義 但如果目的是傳輸給其它程式,可能就不一定了 我目前接觸到的乙個專案就...