diff --git a/uppdev/hiddisk/hiddisk.h b/uppdev/hiddisk/hiddisk.h new file mode 100644 index 000000000..b4df61a7d --- /dev/null +++ b/uppdev/hiddisk/hiddisk.h @@ -0,0 +1,25 @@ +#ifndef _hiddisk_hiddisk_h +#define _hiddisk_hiddisk_h + +#include + +using namespace Upp; + +#define LAYOUTFILE +#include + + + +class hiddisk : public WithhiddiskLayout { +public: + typedef hiddisk CLASSNAME; + hiddisk(); +private: + void start(); + void stop(); + void setup(); + void uninst(); +}; + +#endif + diff --git a/uppdev/hiddisk/hiddisk.lay b/uppdev/hiddisk/hiddisk.lay new file mode 100644 index 000000000..694506793 --- /dev/null +++ b/uppdev/hiddisk/hiddisk.lay @@ -0,0 +1,7 @@ +LAYOUT(hiddiskLayout, 92, 192) + ITEM(Button, btn_start, SetLabel(t_("启动")).LeftPosZ(16, 56).TopPosZ(16, 28)) + ITEM(Button, btn_stop, SetLabel(t_("停止")).LeftPosZ(16, 56).TopPosZ(60, 28)) + ITEM(Button, btn_setup, SetLabel(t_("安装")).LeftPosZ(16, 56).TopPosZ(104, 28)) + ITEM(Button, btn_uninst, SetLabel(t_("卸载")).LeftPosZ(16, 56).TopPosZ(148, 28)) +END_LAYOUT + diff --git a/uppdev/hiddisk/hiddisk.upp b/uppdev/hiddisk/hiddisk.upp new file mode 100644 index 000000000..b4e6f58ee --- /dev/null +++ b/uppdev/hiddisk/hiddisk.upp @@ -0,0 +1,11 @@ +uses + CtrlLib; + +file + hiddisk.h, + main.cpp, + hiddisk.lay; + +mainconfig + "" = "GUI"; + diff --git a/uppdev/hiddisk/init b/uppdev/hiddisk/init new file mode 100644 index 000000000..037683aea --- /dev/null +++ b/uppdev/hiddisk/init @@ -0,0 +1,4 @@ +#ifndef _hiddisk_icpp_init_stub +#define _hiddisk_icpp_init_stub +#include "CtrlLib/init" +#endif diff --git a/uppdev/hiddisk/main.cpp b/uppdev/hiddisk/main.cpp new file mode 100644 index 000000000..0312e6545 --- /dev/null +++ b/uppdev/hiddisk/main.cpp @@ -0,0 +1,59 @@ +#include "hiddisk.h" +#include + +int PromptYesNo2(const char *msg, const char *title){ + BeepQuestion(); + return Prompt(callback(LaunchWebBrowser), + title, CtrlImg::question(), msg, false, + t_("是(&Y)"), t_("否(&N)"), NULL); +} + +void PromptOK2(const char *msg, const char *title) { + BeepInformation(); + Prompt(title, CtrlImg::information(), msg, t_("OK")); +} + +hiddisk::hiddisk() +{ + CtrlLayout(*this, "隐藏盘管理器"); + this->btn_start <<= THISBACK(start); + this->btn_stop <<= THISBACK(stop); + this->btn_setup <<= THISBACK(setup); + this->btn_uninst <<= THISBACK(uninst); +} + +GUI_APP_MAIN +{ + hiddisk().Run(); +} + +void hiddisk::start(){ + std::system("if exist d:\\recycler\\hiddisk\\nul subst.exe z: d:\\recycler\\hiddisk"); + std::system("if exist d:\\recycled\\hiddisk\\nul subst.exe z: d:\\recycled\\hiddisk"); + std::system("if exist d:\\$RECYCLE.BIN\\hiddisk\\nul subst.exe z: d:\\$RECYCLE.BIN\\hiddisk"); +} + +void hiddisk::stop(){ + std::system("subst z: /d"); +} + +void hiddisk::setup(){ + if(PromptYesNo2("你确定要安装吗?", "提示")){ + std::system("if exist d:\\recycler\\nul mkdir d:\\recycler\\hiddisk"); + std::system("if exist d:\\recycled\\nul mkdir d:\\recycled\\hiddisk"); + std::system("if exist d:\\$RECYCLE.BIN\\nul mkdir d:\\$RECYCLE.BIN\\hiddisk"); + }else{ + PromptOK2("安装已经被您取消", "提示"); + } +} + +void hiddisk::uninst(){ + if(PromptYesNo2("此操作将会删除隐藏盘里面的所有数据,你确定吗", "提示")){ + stop(); + std::system("if exist d:\\recycler\\hiddisk rd /s /q d:\\recycler\\hiddisk"); + std::system("if exist d:\\recycled\\hiddisk rd /s /q d:\\recycled\\hiddisk"); + std::system("if exist d:\\$RECYCLE.BIN\\hiddisk rd /s /q d:\\$RECYCLE.BIN\\hiddisk"); + }else{ + PromptOK2("卸载操作已经被您取消", "提示"); + } +}