磁碟去唯讀屬性也是有兩種方法,一種是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 裡面的 自動獲得,序列化也沒有意義 但如果目的是傳輸給其它程式,可能就不一定了 我目前接觸到的乙個專案就...