Sakakibara, Y さんによる、WZ FILER(海賊版)のユーザマクロに登録して使う、ミニマクロ集です。
短いので、直接ここに記します。
全部くっつけて、.TLL 形式にしたほうがよいかもね。お好きにどうぞ。
残念ながらこのマクロ、WZ FILER(海賊版)の途中のバージョンから、動かなくなってしまいました。
このマクロの作り方がよろしくないためです。
うっかり動かしてしまって、WZ FILER(海賊版)を起動できなくなった時は、WZフォルダのfiler2.cfgにあるsbMacro:で定義しているこのマクロをエディタで削除してください。
/* ファイラーを終了し、WZ FILER(海賊版)を起動します。 ユーザマクロのリコンパイルを反映させるのに便利。 */ #include <windows.h> void main(void) { SendMessage(sh->hwndFiler, WM_CLOSE, 0,0); wzexec("/f_apfiler.txe"); }
/* WZファイラー(海賊版)からDOSプロンプトを開く NTでは、command.com の代わりに cmd.exe にすればよい。 */ #include <windows.h> extern "_apfiler" { int pathGetSourcelist(mchar szpath[CCHPATHNAME]); } void main(void) { mchar szpath[CCHPATHNAME]; mchar szcmdline[CCHPATHNAME + CCHWORD]; pathGetSourcelist(szpath); sprintf(szcmdline, "command.com /k cd \"%s\"", szpath); exec(szcmdline); }
/* マイコンピュータを起動 from WZ Filer 海賊版 パラメータに /e をつければ、マイコンピュータの代わりにエクスプローラが起動されます。 */ #include <windows.h> extern "_apfiler" { int txGetSourcelist(TX* text,BOOL fSetLong); int txGetTargetlist(TX* text,BOOL fSetLong); int pathGetSourcelist(mchar szpath[CCHPATHNAME]); int pathGetTargetlist(mchar szpath[CCHPATHNAME]); } void main(TX* text) { mchar szsrcpath[CCHPATHNAME]; pathGetSourcelist(szsrcpath); exec("EXPLORER.EXE " + szsrcpath); }
/* ディスクフォーマットのダイアログ表示 from WZ Filer 海賊版 SHFormatDrive の2番目のパラメータは、0:Aドライブ、1:B、2:C ...です。 */ extern "shell32.dll" { DWORD WINAPI SHFormatDrive( HWND hwnd, UINT drive, UINT fmtID, UINT options ); } #define SHFMT_ID_DEFAULT 0xFFFF #define SHFMT_OPT_QUICK 0x0000 // クイック フォーマット #define SHFMT_OPT_FULL 0x0001 // 通常のフォーマット #define SHFMT_OPT_SYSONLY 0x0002 // 起動専用 #define SHFMT_NOFORMAT 0xFFFFFFFDL // 指定されたドライブはフォーマット不能である #define SHFMT_CANCEL 0xFFFFFFFEL // フォーマットはキャンセルされた #define SHFMT_ERROR 0xFFFFFFFFL // 上記以外のエラー int main(void) { SHFormatDrive(sh->hwndFiler, 0, SHFMT_ID_DEFAULT, SHFMT_OPT_QUICK); return 0; }
/* ディスクコピーのダイアログを表示します。 */ #include <windows.h> void main(void) { WinExec("RunDll32.exe DiskCopy.dll,DiskCopyRunDll 0",SW_SHOW); return; }
#include <windows.h> int num = 0; void main(void) { HDIALOG hd = dialog("Windows の終了"); dialogCaption(hd, "次の方法で終了しますか?"); dialogControlRadioV(hd); dialogChoiceRadio(hd, &num, "再起動する(&R)", "電源を切れる状態にする(&S)", NULL); if (dialogOpen(hd) == IDOK) { switch (num) { case 0: ExitWindowsEx(EWX_REBOOT ,NULL); break; case 1: ExitWindowsEx(EWX_SHUTDOWN ,NULL); break; } } }