• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#objective-cqt誰得windowscocoapythonphprubygameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

Windows Apps


Commit MetaInfo

修订版bde886378fd1aed171670bc3807155b5dea91485 (tree)
时间2017-06-11 15:37:20
作者hyperoga <hyperoga@gmai...>
Commiterhyperoga

Log Message

WinDF Ver1.16

更改概述

差异

--- /dev/null
+++ b/wdf/HostSetup.cpp
@@ -0,0 +1,179 @@
1+// HostSetup.cpp : インプリメンテーション ファイル
2+//
3+
4+#include "stdafx.h"
5+#include "wdf.h"
6+#include "HostSetup.h"
7+
8+#ifdef _DEBUG
9+#define new DEBUG_NEW
10+#undef THIS_FILE
11+static char THIS_FILE[] = __FILE__;
12+#endif
13+
14+/////////////////////////////////////////////////////////////////////////////
15+// CHostSetup ダイアログ
16+
17+
18+CHostSetup::CHostSetup(CWnd* pParent /*=NULL*/)
19+ : CDialog(CHostSetup::IDD, pParent)
20+{
21+ //{{AFX_DATA_INIT(CHostSetup)
22+ // メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
23+ //}}AFX_DATA_INIT
24+}
25+
26+
27+void CHostSetup::DoDataExchange(CDataExchange* pDX)
28+{
29+ CDialog::DoDataExchange(pDX);
30+ //{{AFX_DATA_MAP(CHostSetup)
31+ // メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
32+ //}}AFX_DATA_MAP
33+}
34+
35+
36+BEGIN_MESSAGE_MAP(CHostSetup, CDialog)
37+ //{{AFX_MSG_MAP(CHostSetup)
38+ ON_BN_CLICKED(IDC_BUT_ADD, OnButAdd)
39+ ON_BN_CLICKED(IDC_BUT_DEL, OnButDel)
40+ //}}AFX_MSG_MAP
41+END_MESSAGE_MAP()
42+
43+/////////////////////////////////////////////////////////////////////////////
44+// CHostSetup メッセージ ハンドラ
45+
46+//
47+// Save Host, Port to wdf.ini
48+//
49+// --------------------------
50+// HOSTS=host1,host2,host3 ....
51+// PORT=9998
52+// --------------------------
53+//
54+void CHostSetup::SaveHosts()
55+{
56+ int i;
57+ char wk[1024];
58+ CWinApp* pApp = AfxGetApp();
59+
60+ // save hosts
61+ CListBox *lb = (CListBox *)GetDlgItem(IDC_LIST1);
62+ strcpy(wk, "");
63+ for (i = 0; i<lb->GetCount(); i++) {
64+ lb->GetText(i, m_hosts[i]);
65+ // host1,host2 ....
66+ if (i) strcat(wk, ",");
67+ strcat(wk, m_hosts[i]);
68+ }
69+ pApp->WriteProfileString("WinDF", "HOSTS", wk);
70+
71+ // save port
72+ ((CEdit *)GetDlgItem(IDC_EDIT_PORT))->GetWindowText(wk, sizeof(wk));
73+ m_port = atoi(wk);
74+ pApp->WriteProfileInt("WinDF", "PORT", m_port);
75+}
76+
77+//
78+// [追加]ボタン処理
79+//
80+void CHostSetup::OnButAdd()
81+{
82+ // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
83+ char wk[1024];
84+
85+ strcpy(wk, "");
86+ CListBox *lb = (CListBox *)GetDlgItem(IDC_LIST1);
87+ // wk <= host
88+ ((CEdit *)GetDlgItem(IDC_EDIT_HOST))->GetWindowText(wk, sizeof(wk));
89+ if (strlen(wk) == 0 || strlen(wk) > 254) {
90+ MessageBox("ホスト名は、1〜254文字の長さで指定してください。", "Error", MB_OK|MB_ICONWARNING);
91+ } else {
92+ if (lb->FindString(-1, wk) == LB_ERR) {
93+ // 存在しなければ追加する
94+ CListBox *lb = (CListBox *)GetDlgItem(IDC_LIST1);
95+ lb->AddString(wk);
96+ ++m_nhost;
97+ // EditBoxからホスト名消去
98+ SetDlgItemText(IDC_EDIT_HOST, "");
99+ } else {
100+ MessageBox("すでに登録されています。", "Error", MB_OK|MB_ICONWARNING);
101+ }
102+ }
103+
104+ // 10個になったら[追加]ボタングレーアウト
105+ if (lb->GetCount() >= 10) {
106+ // if nhost > 9 then disable add button
107+ GetDlgItem(IDC_BUT_ADD)->EnableWindow(FALSE);
108+ }
109+ GetDlgItem(IDC_BUT_DEL)->EnableWindow(TRUE);
110+}
111+
112+//
113+// [削除]ボタン処理
114+//
115+void CHostSetup::OnButDel()
116+{
117+ // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
118+ int i;
119+
120+ CListBox *lb = (CListBox *)GetDlgItem(IDC_LIST1);
121+
122+ i = lb->GetCurSel(); // cur index
123+ if (i != LB_ERR) {
124+ lb->DeleteString(i);
125+ --m_nhost;
126+ } else {
127+ MessageBox("削除するホストを選択してください。", "Error", MB_OK|MB_ICONWARNING);
128+ }
129+
130+ // 0個になったら[削除]ボタングレーアウト
131+ if (lb->GetCount() <= 0) {
132+ // no host => disable delete button
133+ GetDlgItem(IDC_BUT_DEL)->EnableWindow(FALSE);
134+ }
135+ GetDlgItem(IDC_BUT_ADD)->EnableWindow(TRUE);
136+}
137+
138+char *CHostSetup::ToStr(int val, char *buf)
139+{
140+ sprintf(buf, "%d", val);
141+ return buf;
142+}
143+
144+BOOL CHostSetup::OnInitDialog()
145+{
146+ CDialog::OnInitDialog();
147+
148+ // TODO: この位置に初期化の補足処理を追加してください
149+
150+ int i;
151+ char wk[1024];
152+
153+ SetDlgItemText(IDC_EDIT_PORT, ToStr(m_port, wk));
154+ CListBox *lb = (CListBox *)GetDlgItem(IDC_LIST1);
155+ for (i = 0; i < m_nhost; i++) {
156+ lb->AddString(m_hosts[i]);
157+ }
158+ if (m_nhost <= 0) {
159+ // no host => disable delete button
160+ GetDlgItem(IDC_BUT_DEL)->EnableWindow(FALSE);
161+ }
162+ if (m_nhost >= 10) {
163+ // if nhost > 9 then disable add button
164+ GetDlgItem(IDC_BUT_ADD)->EnableWindow(FALSE);
165+ }
166+
167+ return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
168+ // 例外: OCX プロパティ ページの戻り値は FALSE となります
169+}
170+
171+
172+// OKボタン処理
173+void CHostSetup::OnOK()
174+{
175+ // TODO: この位置にその他の検証用のコードを追加してください
176+ SaveHosts(); // host,portをwdf.iniに格納
177+
178+ CDialog::OnOK();
179+}
--- /dev/null
+++ b/wdf/HostSetup.h
@@ -0,0 +1,56 @@
1+#if !defined(AFX_HOSTSETUP_H__B624CD4E_2C26_4E8A_985A_9D1669990563__INCLUDED_)
2+#define AFX_HOSTSETUP_H__B624CD4E_2C26_4E8A_985A_9D1669990563__INCLUDED_
3+
4+#if _MSC_VER >= 1000
5+#pragma once
6+#endif // _MSC_VER >= 1000
7+// HostSetup.h : ヘッダー ファイル
8+//
9+
10+/////////////////////////////////////////////////////////////////////////////
11+// CHostSetup ダイアログ
12+
13+class CHostSetup : public CDialog
14+{
15+// コンストラクション
16+public:
17+ CHostSetup(CWnd* pParent = NULL); // 標準のコンストラクタ
18+
19+// ダイアログ データ
20+ //{{AFX_DATA(CHostSetup)
21+ enum { IDD = IDD_HOSTSETUP };
22+ // メモ: ClassWizard はこの位置にデータ メンバを追加します。
23+ //}}AFX_DATA
24+
25+ int m_port; // port number
26+ int m_nhost; // number of hosts
27+ char m_hosts[10][256]; // hosts
28+
29+
30+ void SaveHosts();
31+ char *ToStr(int val, char *buf);
32+
33+// オーバーライド
34+ // ClassWizard は仮想関数のオーバーライドを生成します。
35+ //{{AFX_VIRTUAL(CHostSetup)
36+ protected:
37+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV サポート
38+ //}}AFX_VIRTUAL
39+
40+// インプリメンテーション
41+protected:
42+
43+ // 生成されたメッセージ マップ関数
44+ //{{AFX_MSG(CHostSetup)
45+ afx_msg void OnButAdd();
46+ afx_msg void OnButDel();
47+ virtual BOOL OnInitDialog();
48+ virtual void OnOK();
49+ //}}AFX_MSG
50+ DECLARE_MESSAGE_MAP()
51+};
52+
53+//{{AFX_INSERT_LOCATION}}
54+// Microsoft Developer Studio は前行の直前に追加の宣言を挿入します。
55+
56+#endif // !defined(AFX_HOSTSETUP_H__B624CD4E_2C26_4E8A_985A_9D1669990563__INCLUDED_)
--- /dev/null
+++ b/wdf/LogCtrl.cpp
@@ -0,0 +1,82 @@
1+//
2+// LogCtrl.cpp : ログ出力
3+//
4+
5+#include "stdafx.h"
6+#include "LogCtrl.h"
7+
8+#include <string.h>
9+
10+#ifdef _DEBUG
11+#define new DEBUG_NEW
12+#undef THIS_FILE
13+static char THIS_FILE[] = __FILE__;
14+#endif
15+
16+/////////////////////////////////////////////////////////////////////////////
17+// LogCtrl
18+//
19+// LogCtrl::LogCtrl()
20+// LogCtrl::~LogCtrl()
21+// int LogCtrl::LogOut()
22+//
23+
24+LogCtrl::LogCtrl()
25+{
26+ LogCtrl("c:\\wdf.log");
27+}
28+
29+LogCtrl::LogCtrl(char *path)
30+{
31+ char wk[1024];
32+
33+ strcpy(m_logpath, path);
34+ m_logfp = fopen(m_logpath, "w");
35+ if (m_logfp == NULL) {
36+ sprintf(wk, "LogCtrl: m_logfp=%d errno=%d", m_logfp, errno);
37+ AfxMessageBox(wk);
38+ }
39+}
40+
41+LogCtrl::~LogCtrl()
42+{
43+#if 0
44+ if (m_logfp) fclose(m_logfp);
45+ m_logfp = NULL;
46+ m_logpath[0] = '\0';
47+#endif
48+ AfxMessageBox("~LogCtrl()");
49+}
50+
51+int LogCtrl::LogOut(char *msg)
52+{
53+ int ret = 0;
54+ char wk[1024];
55+
56+ if (m_logfp) {
57+ strcpy(m_msg, msg);
58+ ret = LogOut();
59+ } else {
60+ sprintf(wk, "LogOut: m_logfp=%d [%s]", m_logfp, msg);
61+ AfxMessageBox(wk);
62+ }
63+ return 0;
64+}
65+
66+int LogCtrl::LogOut()
67+{
68+ int ret = 0;
69+ char wk[1024];
70+
71+ if (m_logfp) {
72+ fprintf(m_logfp, "%s", m_msg);
73+ ret = fflush(m_logfp);
74+ } else {
75+ sprintf(wk, "LogOut2: m_logfp=%d %s", m_logfp, m_msg);
76+ //AfxMessageBox(wk);
77+ }
78+ m_msg[0] = '\0';
79+
80+ return ret;
81+}
82+
--- /dev/null
+++ b/wdf/LogCtrl.h
@@ -0,0 +1,37 @@
1+#if !defined(_LOGCTRL_H_INCLUDED_)
2+#define _LOGCTRL_H_INCLUDED_
3+
4+//
5+// LogCtrl.h : ヘッダー ファイル
6+//
7+
8+#include <stdio.h>
9+
10+class LogCtrl
11+{
12+// コンストラクション
13+public:
14+ LogCtrl();
15+ LogCtrl(char *path);
16+
17+// アトリビュート
18+public:
19+ char m_msg[4096]; // Log Message
20+ FILE *m_logfp;
21+ char m_logpath[1024]; // LogPath
22+
23+protected:
24+
25+// オペレーション
26+public:
27+ int LogOut(char *msg);
28+ int LogOut();
29+
30+// インプリメンテーション
31+public:
32+ virtual ~LogCtrl();
33+
34+};
35+
36+#endif // _LOGCTRL_H_INCLUDED_
37+
--- /dev/null
+++ b/wdf/MainFrm.cpp
@@ -0,0 +1,1171 @@
1+// MainFrm.cpp : CMainFrame クラスの動作の定義を行います。
2+//
3+// w10m_ofs推奨値
4+//
5+// 3GB以上 : -19
6+// 2GB : -18 or -19
7+// 1GB : -17
8+// 512MB : -16
9+// 256MB : -11
10+// 128MB : -3
11+// 64MB : 10
12+//
13+//
14+
15+#include "stdafx.h"
16+#include "wdf.h"
17+#include <winsock.h>
18+
19+#include "MainFrm.h"
20+#include "HostSetup.h"
21+
22+#ifdef _DEBUG
23+#define new DEBUG_NEW
24+#undef THIS_FILE
25+static char THIS_FILE[] = __FILE__;
26+#endif
27+
28+#define CALC_X(x) (x + GetSystemMetrics(SM_CXBORDER)*2)
29+//#define CALC_Y(y) (y + GetSystemMetrics(SM_CYBORDER)*2 \
30+// +GetSystemMetrics(SM_CYCAPTION) \
31+// +GetSystemMetrics(SM_CYMENU) \
32+// +tm.tmHeight * 1/2)
33+//// +tm.tmHeight * 3/2)
34+#define CALC_Y(y) (y + GetSystemMetrics(SM_CYMIN) \
35+ +GetSystemMetrics(SM_CYMENU) \
36+ +tm.tmHeight*1/4)
37+
38+// デバッグログ取得設定
39+//#define DEBUG_LOG // WDF11403-A
40+
41+extern int all;
42+extern int mega;
43+extern int graph;
44+extern int mem;
45+extern int uauto;
46+extern int localhd; // V1.03
47+extern int movef; // V1.03
48+extern int bigf; // V1.04
49+extern int activef; // V1.05
50+extern int w10m_ofs; // V1.07
51+extern int disp_max; // WDF11403-A
52+
53+extern int ucnt;
54+extern int nhost; // V1.10-A
55+extern int YSTEP; // V1.10-A
56+extern int port; // V1.10-A
57+
58+extern mem_t memdat[MAX_REMOT_HOST+1]; // メモリデータ V1.10-A WDF11306-C
59+extern char hosts[MAX_REMOT_HOST][256]; // V1.10-A WDF11306-C
60+extern int netf[MAX_REMOT_HOST]; // V1.10-A WDF11306-C
61+extern int loaddat[MAX_REMOT_HOST][MAX_LOAD_HIST]; // 負荷データ WDF11301-A
62+extern int loadpt[MAX_REMOT_HOST]; // 負荷データLastポインタ WDF11301-A
63+ // 最後のデータ+1を指している
64+
65+extern int loadpos; // xload表示位置 WDF11301-A
66+
67+extern int x0,y0; // 画面左上位置 V1.02
68+extern int width[],height[]; // Disk画面幅/高さ V1.02
69+
70+extern int lowpos; // ドライブ一覧の再下位置 V1.03
71+CMainFrame *mf; // MainFrampクラスへのポインタ V1.03
72+int movey; // 逃げの移動差分 V1.03
73+int framey; // フレームのyサイズ V1.03
74+int YLIM; // ルートWindowのyサイズ V1.03
75+int in_get = 0; // 簡易二重Timer処理禁止 V1.10-A
76+int rmemget = 1; // リモート時取得間隔調整 WDF11302-A
77+
78+char dbg_msg[1024];
79+
80+/* WDF11404-A start */
81+#ifdef DEBUG_LOG
82+void Log(char *msg)
83+{
84+ FILE *fp;
85+ if ((fp = fopen("c:\\wdf.log", "a")) != NULL) {
86+ fprintf(fp, msg);
87+ fclose(fp);
88+ }
89+}
90+#endif
91+/* WDF11404-A end */
92+
93+/////////////////////////////////////////////////////////////////////////////
94+// CMainFrame
95+
96+IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
97+
98+BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
99+ //{{AFX_MSG_MAP(CMainFrame)
100+ ON_WM_CREATE()
101+ ON_UPDATE_COMMAND_UI(ID_FMT_ALL, OnUpdateFmtAll)
102+ ON_UPDATE_COMMAND_UI(ID_FMT_GRAPH, OnUpdateFmtGraph)
103+ ON_UPDATE_COMMAND_UI(ID_FMT_MEGA, OnUpdateFmtMega)
104+ ON_COMMAND(ID_FMT_ALL, OnFmtAll)
105+ ON_COMMAND(ID_FMT_GRAPH, OnFmtGraph)
106+ ON_COMMAND(ID_FMT_MEGA, OnFmtMega)
107+ ON_COMMAND(ID_FMT_REDRAW, OnFmtRedraw)
108+ ON_UPDATE_COMMAND_UI(ID_FMT_REDRAW, OnUpdateFmtRedraw)
109+ ON_UPDATE_COMMAND_UI(ID_FMT_MEM, OnUpdateFmtMem)
110+ ON_COMMAND(ID_FMT_MEM, OnFmtMem)
111+ ON_WM_TIMER()
112+ ON_UPDATE_COMMAND_UI(ID_FMT_AUTO, OnUpdateFmtAuto)
113+ ON_COMMAND(ID_FMT_AUTO, OnFmtAuto)
114+ ON_UPDATE_COMMAND_UI(ID_FMT_SAVE, OnUpdateFmtSave)
115+ ON_COMMAND(ID_FMT_SAVE, OnFmtSave)
116+ ON_WM_MOVE()
117+ ON_WM_SIZE()
118+ ON_WM_LBUTTONDBLCLK()
119+ ON_COMMAND(ID_LOCAL, OnLocalHD)
120+ ON_UPDATE_COMMAND_UI(ID_LOCAL, OnUpdateLocalHD)
121+ ON_COMMAND(ID_FMT_MOVEF, OnFmtMovef)
122+ ON_UPDATE_COMMAND_UI(ID_FMT_MOVEF, OnUpdateFmtMovef)
123+ ON_COMMAND(ID_FMT_MEMBIG, OnFmtMembig)
124+ ON_UPDATE_COMMAND_UI(ID_FMT_MEMBIG, OnUpdateFmtMembig)
125+ ON_COMMAND(ID_FMT_ACTIVE, OnFmtActive)
126+ ON_UPDATE_COMMAND_UI(ID_FMT_ACTIVE, OnUpdateFmtActive)
127+ ON_COMMAND(ID_APP_HOSTSETUP, OnAppHostsetup)
128+ ON_UPDATE_COMMAND_UI(ID_APP_HOSTSETUP, OnUpdateAppHostsetup)
129+ ON_COMMAND(ID_FMT_KIRO, OnFmtKiro)
130+ ON_UPDATE_COMMAND_UI(ID_FMT_KIRO, OnUpdateFmtKiro)
131+ ON_COMMAND(ID_FMT_GIGA, OnFmtGiga)
132+ ON_UPDATE_COMMAND_UI(ID_FMT_GIGA, OnUpdateFmtGiga)
133+ ON_COMMAND(ID_FMT_MAX, OnFmtMax)
134+ ON_UPDATE_COMMAND_UI(ID_FMT_MAX, OnUpdateFmtMax)
135+ ON_COMMAND(ID_FMT_MAXCLEAR, OnFmtMaxclear)
136+ ON_UPDATE_COMMAND_UI(ID_FMT_MAXCLEAR, OnUpdateFmtMaxclear)
137+ //}}AFX_MSG_MAP
138+END_MESSAGE_MAP()
139+
140+static UINT indicators[] =
141+{
142+ ID_SEPARATOR, // ステータス ライン インジケータ
143+ ID_INDICATOR_KANA,
144+ ID_INDICATOR_CAPS,
145+ ID_INDICATOR_NUM,
146+ ID_INDICATOR_SCRL,
147+};
148+
149+WSADATA WsaData; // V1.10
150+
151+/////////////////////////////////////////////////////////////////////////////
152+// CMainFrame クラスの構築/消滅
153+
154+CMainFrame::CMainFrame()
155+{
156+ // TODO: この位置にメンバの初期化処理コードを追加してください。
157+
158+ if (WSAStartup(0x0101, &WsaData)) { // V1.10
159+ // none
160+ }
161+
162+ /* WDF11403-A start */
163+ memset(memdat, 0, sizeof(memdat));
164+ memset(hosts, 0, sizeof(hosts));
165+ memset(loaddat, 0, sizeof(loaddat));
166+ memset(netf, 0, sizeof(netf));
167+ /* WDF11403-A end */
168+
169+ m_pLog = NULL;
170+#ifdef DEBUG_LOG
171+ m_pLog = new LogCtrl(); // DEBUG default : c:\wdf.log WDF11306-A
172+ if (m_pLog == NULL) {
173+ AfxMessageBox("LogCtrl new failed.");
174+ } else {
175+ char buf[256];
176+ sprintf(buf, "new LogCtrl() m_pLog=0x%08x", m_pLog);
177+ AfxMessageBox(buf);
178+ }
179+#endif
180+
181+}
182+
183+CMainFrame::~CMainFrame()
184+{
185+ KillTimer(1);
186+ CWinApp* pApp = AfxGetApp();
187+ pApp->WriteProfileInt("WinDF", "X0", x0);
188+ pApp->WriteProfileInt("WinDF", "Y0", y0);
189+ pApp->WriteProfileInt("WinDF", "WIDTH0", width[0]);
190+ pApp->WriteProfileInt("WinDF", "HEIGHT0",height[0]);
191+ pApp->WriteProfileInt("WinDF", "WIDTH1", width[1]);
192+ pApp->WriteProfileInt("WinDF", "HEIGHT1",height[1]);
193+ pApp->WriteProfileInt("WinDF", "LOADPOS",loadpos); // WDF11301-A
194+ pApp->WriteProfileInt("WinDF", "SAVED", 1); // 書き込み済み
195+
196+ WSACleanup(); // V1.10
197+}
198+
199+int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
200+{
201+ if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
202+ return -1;
203+
204+#if 0 // by oga
205+ // ツールバー表示
206+ if (!m_wndToolBar.Create(this) ||
207+ !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
208+ {
209+ TRACE0("Failed to create toolbar\n");
210+ return -1; // 作成に失敗
211+ }
212+
213+ // ステータスバー表示
214+ if (!m_wndStatusBar.Create(this) ||
215+ !m_wndStatusBar.SetIndicators(indicators,
216+ sizeof(indicators)/sizeof(UINT)))
217+ {
218+ TRACE0("Failed to create status bar\n");
219+ return -1; // 作成に失敗
220+ }
221+
222+ // TODO: もしツール チップスが必要ない場合、ここを削除してください。
223+ m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
224+ CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
225+
226+ // TODO: ツール バーをドッキング可能にしない場合は以下の3行を削除
227+ // してください。
228+ m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
229+ EnableDocking(CBRS_ALIGN_ANY);
230+ DockControlBar(&m_wndToolBar);
231+#endif // 0
232+
233+ SetTimer(1, 2000, NULL); // event/2sec
234+
235+ movey = 0; // 逃げ差分初期化
236+
237+ // ルートWindowの最大Yサイズを求める
238+ CWnd *root = GetDesktopWindow(); // V1.03
239+ CRect rRect; // V1.03
240+
241+ root->GetWindowRect(&rRect); // V1.03
242+ YLIM = rRect.bottom; // V1.03
243+ // wsprintf(buf,"YLIM = %d",YLIM);
244+ // AfxMessageBox(buf,YLIM);
245+
246+ return 0;
247+}
248+
249+BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
250+{
251+ // TODO: この位置で CREATESTRUCT cs を修正して、Window クラスやスタイルを
252+ // 修正してください。
253+
254+ int i;
255+ int mh;
256+ int def_ofs = -17; // WDF11504-A
257+ char wk[2048];
258+ char *pt;
259+ BOOL ret;
260+ ret = CFrameWnd::PreCreateWindow(cs);
261+
262+ CWinApp* pApp = AfxGetApp();
263+ all = pApp->GetProfileInt("WinDF","ALL", 0);
264+ //mega = pApp->GetProfileInt("WinDF","MEGA", 1024); // V1.10-C
265+ mega = pApp->GetProfileInt("WinDF","MEGA2", 1024); // WDF11202-C
266+ graph = pApp->GetProfileInt("WinDF","GRAPH", 1);
267+ mem = pApp->GetProfileInt("WinDF","MEM", 1);
268+ uauto = pApp->GetProfileInt("WinDF","UAUTO", 1);
269+ localhd= pApp->GetProfileInt("WinDF","LOCALHD",1); // V1.03
270+ movef = pApp->GetProfileInt("WinDF","MOVEF", 0); // V1.03
271+ //bigf = pApp->GetProfileInt("WinDF","BIGF", 0); // V1.04 V1.06-C
272+ bigf = 0; // V1.10
273+ activef= pApp->GetProfileInt("WinDF","ACTIVEF",1); // V1.05
274+ w10m_ofs=pApp->GetProfileInt("WinDF","W10M_OFS",def_ofs); // V1.07-A WDF11504-C
275+ port = pApp->GetProfileInt("WinDF","PORT",9998); // V1.10-A
276+ loadpos= pApp->GetProfileInt("WinDF","LOADPOS", 300); // WDF11301-A
277+ strcpy(wk, pApp->GetProfileString("WinDF","HOSTS","").GetBuffer(10)); // V1.10-A
278+ disp_max = pApp->GetProfileInt("WinDF","DISPMAX", 0); // WDF11403-A
279+ nhost = 0;
280+ pt = strtok(wk, ",");
281+ while (pt != NULL) {
282+ strcpy(hosts[nhost], pt);
283+ ++nhost;
284+ pt = strtok(NULL, ",");
285+ }
286+
287+ // Initialize net info
288+ for (i = 0; i<MAX_REMOT_HOST; i++) {
289+ netf[i] = 0;
290+ m_pSysInfCl[i] = new SysInfCl();
291+ }
292+ if (mem) { // V1.10-A
293+ GetMemInfo(); // V1.10-A
294+ // WDF11504-A start
295+ if (memdat[0].total > ((mem_uint)2500)*1024*1024) {
296+ // 2.5GB以上 (4GB)
297+ def_ofs = -19;
298+ } else if (memdat[0].total > 1500*1024*1024) {
299+ // 1.5GB以上 (2GB)
300+ def_ofs = -18;
301+ } else if (memdat[0].total > 900*1024*1024) {
302+ // 0.9GB以上 (1GB)
303+ def_ofs = -17;
304+ } else if (memdat[0].total > 400*1024*1024) {
305+ // 400MB以上 (512MB)
306+ def_ofs = -16;
307+ } else if (memdat[0].total > 200*1024*1024) {
308+ // 200MB以上 (256MB)
309+ def_ofs = -16;
310+ } else if (memdat[0].total > 100*1024*1024) {
311+ // 100MB以上 (128MB)
312+ def_ofs = -3;
313+ } else {
314+ // 100MB以下
315+ def_ofs = 0;
316+ }
317+ w10m_ofs=pApp->GetProfileInt("WinDF","W10M_OFS", def_ofs);
318+ // WDF11504-A end
319+ } // V1.10-A
320+
321+ x0 = pApp->GetProfileInt("WinDF","X0", 20);
322+ y0 = pApp->GetProfileInt("WinDF","Y0", 20);
323+ if (y0 < 0 || y0 > 10000) { // V1.06-C
324+ y0 = 0;
325+ }
326+ if (x0 < 0 || x0 > 10000) { // V1.06-C
327+ x0 = 0; // V1.05
328+ }
329+ ucnt = 0;
330+
331+ if (bigf) {
332+ mh = 90;
333+ } else {
334+ mh = 60;
335+ }
336+
337+ //TEXTMETRIC tm; // WDF11501-M
338+ CDC* pDC=GetDC();
339+ pDC->GetTextMetrics(&tm);
340+ ReleaseDC(pDC);
341+ // cs.style = WS_SYSMENU|WS_MINIMIZEBOX; // サイズ固定になる
342+ cs.x = x0;
343+ cs.y = y0;
344+ if (pApp->GetProfileInt("WinDF","SAVED",0)) {
345+ // 2回目以降
346+ width[0] = pApp->GetProfileInt("WinDF","WIDTH0",420);
347+ height[0] = pApp->GetProfileInt("WinDF","HEIGHT0",85);
348+ width[1] = pApp->GetProfileInt("WinDF","WIDTH1",420);
349+ height[1] = pApp->GetProfileInt("WinDF","HEIGHT1",mh);
350+ } else {
351+ // 1回目
352+ width[0] = CALC_X(420); // 0 : disk info
353+ height[0] = CALC_Y(85);
354+ width[1] = CALC_X(420); // 1 : memory info
355+ height[1] = CALC_Y(mh-5);
356+ }
357+
358+ cs.cx = width[mem];
359+ cs.cy = height[mem];
360+ if (mem && cs.cy < CALC_Y(YSTEP) + bigf * 40) { // WDF11501-C
361+ //cs.cy = 110 + bigf * 40;
362+ cs.cy = CALC_Y(YSTEP) + bigf * 40; // WDF11501-C
363+ cs.cy += YSTEP*nhost; // WDF11501-A
364+ }
365+
366+ mf = this; // V1.03
367+ framey = CALC_Y(0); // V1.03
368+
369+ // DEBUGXXXXX
370+ //sprintf(wk, "m_pLog->m_logfp = %d", m_pLog->m_logfp);
371+ //MessageBox(wk);
372+
373+#ifdef DEBUG_LOG
374+ m_pLog->LogOut("start wdf!!\n");
375+ //Log("start wdf!!\n");
376+#endif
377+
378+ return ret;
379+}
380+
381+/////////////////////////////////////////////////////////////////////////////
382+// CMainFrame クラスの診断
383+
384+#ifdef _DEBUG
385+void CMainFrame::AssertValid() const
386+{
387+ CFrameWnd::AssertValid();
388+}
389+
390+void CMainFrame::Dump(CDumpContext& dc) const
391+{
392+ CFrameWnd::Dump(dc);
393+}
394+
395+#endif //_DEBUG
396+
397+/////////////////////////////////////////////////////////////////////////////
398+// CMainFrame メッセージ ハンドラ
399+
400+
401+
402+void CMainFrame::OnUpdateFmtAll(CCmdUI* pCmdUI)
403+{
404+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
405+ // メニュー表示時にコールされる。
406+ if (mem) {
407+ pCmdUI->Enable(0);
408+ } else {
409+ pCmdUI->Enable(1);
410+ }
411+
412+ pCmdUI->SetCheck(all);
413+}
414+
415+void CMainFrame::OnFmtAll()
416+{
417+ // char buf[256];
418+
419+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
420+ // メニュー選択時にコールされる。
421+ all = 1 - all;
422+ // sprintf(buf,"all = %d",all);
423+ // MessageBox(buf);
424+ Invalidate(FALSE); // WDF11401-C
425+}
426+
427+void CMainFrame::OnUpdateFmtGraph(CCmdUI* pCmdUI)
428+{
429+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
430+ // メニュー表示時にコールされる。
431+ if (mem) {
432+ pCmdUI->Enable(0);
433+ } else {
434+ pCmdUI->Enable(1);
435+ }
436+
437+ pCmdUI->SetCheck(graph);
438+
439+}
440+
441+void CMainFrame::OnFmtGraph()
442+{
443+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
444+ // メニュー選択時にコールされる。
445+ graph = 1 - graph;
446+ Invalidate(FALSE); // WDF11401-C
447+}
448+
449+void CMainFrame::OnUpdateFmtMega(CCmdUI* pCmdUI)
450+{
451+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
452+ // メニュー表示時にコールされる。
453+ if (mem) {
454+ pCmdUI->Enable(0);
455+ } else {
456+ pCmdUI->Enable(1);
457+ }
458+
459+ if (mega == 1024) {
460+ pCmdUI->SetCheck(1);
461+ } else {
462+ pCmdUI->SetCheck(0);
463+ }
464+
465+}
466+
467+void CMainFrame::OnFmtMega()
468+{
469+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
470+ // メニュー選択時にコールされる。
471+
472+ //mega = 1025 - mega; // 1 or 1024
473+ mega = 1024; // V1.12-C
474+ Invalidate(FALSE); // WDF11401-C
475+}
476+
477+// V1.12-A start
478+void CMainFrame::OnUpdateFmtKiro(CCmdUI* pCmdUI)
479+{
480+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
481+ // メニュー表示時にコールされる。
482+ if (mem) {
483+ pCmdUI->Enable(0);
484+ } else {
485+ pCmdUI->Enable(1);
486+ }
487+
488+ if (mega == 1) {
489+ pCmdUI->SetCheck(1);
490+ } else {
491+ pCmdUI->SetCheck(0);
492+ }
493+
494+}
495+
496+void CMainFrame::OnFmtKiro()
497+{
498+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
499+ mega = 1;
500+ Invalidate(FALSE); // WDF11401-C
501+
502+}
503+
504+void CMainFrame::OnUpdateFmtGiga(CCmdUI* pCmdUI)
505+{
506+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
507+ // メニュー表示時にコールされる。
508+ if (mem) {
509+ pCmdUI->Enable(0);
510+ } else {
511+ pCmdUI->Enable(1);
512+ }
513+
514+ if (mega == 1024*1024) {
515+ pCmdUI->SetCheck(1);
516+ } else {
517+ pCmdUI->SetCheck(0);
518+ }
519+
520+}
521+
522+void CMainFrame::OnFmtGiga()
523+{
524+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
525+ mega = 1024*1024;
526+ Invalidate(FALSE); // WDF11401-C
527+}
528+// V1.12-A end
529+
530+void CMainFrame::OnUpdateFmtRedraw(CCmdUI* pCmdUI)
531+{
532+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
533+ pCmdUI->Enable(1); // メニュー有効化
534+
535+}
536+
537+void CMainFrame::OnFmtRedraw()
538+{
539+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
540+ Invalidate(FALSE); // 再表示 WDF11401-C
541+
542+}
543+
544+void CMainFrame::OnUpdateFmtMem(CCmdUI* pCmdUI)
545+{
546+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
547+ pCmdUI->Enable(1); // メニュー有効化
548+ pCmdUI->SetCheck(mem);
549+}
550+
551+void CMainFrame::OnFmtMem()
552+{
553+ char buf[256];
554+
555+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
556+ mem = 1-mem;
557+
558+ // Window タイトル変更
559+#ifdef WIN98
560+ wsprintf(buf,"WinDF98 Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
561+#else
562+ wsprintf(buf,"WinDF Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
563+#endif
564+ SetWindowText(buf);
565+
566+ CRect rect;
567+ rect.left = x0;
568+ rect.top = y0 + movey; // V1.03
569+ rect.right = x0+width[mem];
570+ rect.bottom = y0+height[mem] + movey; // V1.03
571+ if (mem) {
572+ //rect.bottom = rect.top + 110 + bigf * 40; // V1.04
573+ rect.bottom = rect.top + CALC_Y(YSTEP) + bigf * 40; // WDF11501-C
574+ rect.bottom += YSTEP*nhost; // V1.12-A (fix)
575+ }
576+ MoveWindow(&rect,TRUE);
577+
578+ Invalidate(FALSE); // 再表示 WDF11401-C
579+
580+}
581+
582+// 自動更新
583+void CMainFrame::OnUpdateFmtAuto(CCmdUI* pCmdUI)
584+{
585+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
586+ pCmdUI->Enable(1); // メニュー有効化
587+ pCmdUI->SetCheck(uauto);
588+
589+}
590+
591+void CMainFrame::OnFmtAuto()
592+{
593+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
594+ uauto = 1-uauto;
595+
596+}
597+
598+void CMainFrame::OnTimer(UINT nIDEvent)
599+{
600+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
601+
602+ if (uauto) {
603+ // 自動更新時
604+ if (mem) {
605+ // メモリ情報モード
606+ // Invalidate前取得しておく(リモートの場合時間がかかるため)
607+ if (GetMemInfo()) {
608+ // 取得したらInvalidate
609+ Invalidate(FALSE); // update/2sec WDF11401-C
610+ }
611+ } else {
612+ // ディスク情報モード
613+ if ((++ucnt % 5) == 0) {
614+ Invalidate(FALSE); // update/10sec WDF11401-C
615+ }
616+ }
617+ }
618+ CFrameWnd::OnTimer(nIDEvent);
619+}
620+
621+
622+void CMainFrame::OnUpdateFmtSave(CCmdUI* pCmdUI)
623+{
624+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
625+ pCmdUI->Enable(1); // メニュー有効化
626+
627+}
628+
629+void CMainFrame::OnFmtSave()
630+{
631+ // MEGA :V1.00〜1.11b
632+ // MEGA2 :V1.12〜
633+
634+ CWinApp* pApp = AfxGetApp();
635+ pApp->WriteProfileInt("WinDF", "ALL", all);
636+ //pApp->WriteProfileInt("WinDF", "MEGA", mega); // WDF11202-D
637+ pApp->WriteProfileInt("WinDF", "MEGA2", mega); // WDF11202-C
638+ pApp->WriteProfileInt("WinDF", "GRAPH", graph);
639+ pApp->WriteProfileInt("WinDF", "MEM", mem);
640+ pApp->WriteProfileInt("WinDF", "UAUTO", uauto);
641+ pApp->WriteProfileInt("WinDF", "LOCALHD", localhd); // V1.03
642+ pApp->WriteProfileInt("WinDF", "MOVEF", movef); // V1.03
643+ pApp->WriteProfileInt("WinDF", "BIGF", bigf); // V1.04
644+ pApp->WriteProfileInt("WinDF", "ACTIVEF", activef); // V1.05
645+ pApp->WriteProfileInt("WinDF", "W10M_OFS", w10m_ofs); // V1.07-A
646+ pApp->WriteProfileInt("WinDF", "LOADPOS",loadpos); // WDF11301-A
647+ pApp->WriteProfileInt("WinDF", "DISPMAX",disp_max); // WDF11403-A
648+}
649+
650+// 画面を移動したら、その時のx0, y0を変更する。
651+void CMainFrame::OnMove(int x, int y)
652+{
653+ CFrameWnd::OnMove(x, y);
654+
655+ // TODO: この位置にメッセージ ハンドラ用のコードを追加してください
656+ CRect rect;
657+
658+ // X,Y座標を格納
659+ GetWindowRect(&rect);
660+ x0 = rect.left;
661+ y0 = rect.top - movey; // V1.03
662+ width[mem] = rect.right - x0;
663+ height[mem] = rect.bottom - y0 - movey; // V1.03
664+
665+#ifdef DEBUG
666+ char msg[256];
667+ wsprintf(msg,"Move: x0=%d y0=%d W=%d H=%d",x0,y0,width[mem],height[mem]);
668+ AfxMessageBox(msg,MB_OK);
669+#endif
670+
671+}
672+
673+void CMainFrame::OnSize(UINT nType, int cx, int cy)
674+{
675+ CFrameWnd::OnSize(nType, cx, cy);
676+
677+ // TODO: この位置にメッセージ ハンドラ用のコードを追加してください
678+ CRect rect;
679+
680+ // X,Y座標を格納
681+ GetWindowRect(&rect);
682+ x0 = rect.left;
683+ y0 = rect.top - movey; // V1.03
684+ width[mem] = rect.right - x0;
685+ height[mem] = rect.bottom - y0 - movey; // V1.03
686+
687+#ifdef DEBUG
688+ char msg[256];
689+ wsprintf(msg,"Size: x0=%d y0=%d W=%d H=%d",
690+ x0,y0,width[mem],height[mem]);
691+ AfxMessageBox(msg,MB_OK);
692+#endif
693+
694+}
695+
696+void CMainFrame::OnLButtonDblClk(UINT nFlags, CPoint point)
697+{
698+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
699+#if 0
700+ char buf[256];
701+
702+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
703+ mem = 1-mem;
704+
705+ // Window タイトル変更
706+#ifdef WIN98
707+ wsprintf(buf,"WinDF98 Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
708+#else
709+ wsprintf(buf,"WinDF Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
710+#endif
711+ SetWindowText(buf);
712+
713+ Invalidate(FALSE); // 再表示
714+ // RedrawWindow(TRUE); // 再表示
715+#endif
716+ CFrameWnd::OnLButtonDblClk(nFlags, point);
717+}
718+
719+// ローカルディスクのみ表示メニュー選択
720+// V1.03
721+void CMainFrame::OnLocalHD()
722+{
723+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
724+ localhd = 1 - localhd; // フラグ反転
725+ Invalidate(FALSE); // 再描画 WDF11401-C
726+}
727+
728+// メニュー表示時処理 (「ローカルドライブのみ表示」用の処理)
729+// V1.03
730+void CMainFrame::OnUpdateLocalHD(CCmdUI* pCmdUI)
731+{
732+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
733+ if (mem) {
734+ pCmdUI->Enable(0); // メモリ表示モードの場合、グレーアウト
735+ } else {
736+ pCmdUI->Enable(1); // ディスク表示モードの場合、Enable
737+ }
738+
739+ pCmdUI->SetCheck(localhd); // フラグ値により、チェックマークを入れる
740+}
741+
742+// 逃げるメニュー選択 V1.03
743+void CMainFrame::OnFmtMovef()
744+{
745+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
746+ movef = 1 - movef; // フラグ反転
747+
748+}
749+
750+// 逃げるメニュー表示時 V1.30
751+void CMainFrame::OnUpdateFmtMovef(CCmdUI* pCmdUI)
752+{
753+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
754+ pCmdUI->SetCheck(movef); // フラグ値により、チェックマークを入れる
755+
756+}
757+
758+// モード変更時、フレームのリサイズ
759+// V1.30
760+void CMainFrame::ResizeFrame()
761+{
762+ char buf[256];
763+
764+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
765+
766+ // Window タイトル変更
767+#ifdef WIN98
768+ wsprintf(buf,"WinDF98 Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
769+#else
770+ wsprintf(buf,"WinDF Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
771+#endif
772+ SetWindowText(buf);
773+
774+ CRect rect;
775+ rect.left = x0;
776+ rect.top = y0 + movey;
777+ rect.right = x0+width[mem];
778+ rect.bottom = y0+height[mem] + movey;
779+
780+ if (mem) {
781+ //rect.bottom = rect.top + 110 + bigf * 40; // V1.04-C
782+ rect.bottom = rect.top + CALC_Y(YSTEP) + bigf * 40; // WDF11501-C
783+ rect.bottom += YSTEP*nhost; // V1.10-A
784+ if (rect.right < rect.left + 200) {
785+ rect.right = rect.left + 200;
786+ }
787+#ifdef DEBUG_LOGX
788+ sprintf(m_pLog->m_msg, "CYBORDER:%d CYCAPTION:%d CYMENU:%d tmHeight:%d\n",
789+ GetSystemMetrics(SM_CYBORDER), // 1 x2
790+ GetSystemMetrics(SM_CYCAPTION), // 19
791+ GetSystemMetrics(SM_CYMENU), // 19
792+ tm.tmHeight); // 18 x1/2
793+ m_pLog->LogOut();
794+
795+ sprintf(buf, "CYBORDER:%d CYCAPTION:%d CYMENU:%d tmHeight:%d\n",
796+ GetSystemMetrics(SM_CYBORDER), // 1 x2
797+ GetSystemMetrics(SM_CYCAPTION), // 19
798+ GetSystemMetrics(SM_CYMENU), // 19
799+ tm.tmHeight); // 18 x1/2
800+ MessageBox(buf);
801+ Log(buf);
802+#endif
803+ }
804+
805+ MoveWindow(&rect,TRUE);
806+
807+ Invalidate(FALSE); // 再表示 WDF11401-C
808+
809+}
810+
811+// ウインドウ逃げる
812+// V1.03
813+void CMainFrame::MoveFrame()
814+{
815+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
816+ // char buf[256];
817+
818+ CRect rect;
819+
820+ // wsprintf(buf,"YLIM = %d",YLIM);
821+ // AfxMessageBox(buf,MB_OK);
822+ if (movey) {
823+ movey = 0;
824+ if (y0 < -8 ) {
825+ y0 = 0;
826+ } else if (y0 +height[mem] > YLIM+16) {
827+ y0 = YLIM - height[mem];
828+ }
829+ } else {
830+ movey = height[mem];
831+ if ((y0 + movey + height[mem]) > YLIM + 16) {
832+ movey = -height[mem];
833+ }
834+ }
835+
836+ // wsprintf(buf,"y0 = %d h = %d movey = %d",y0,height[mem],movey);
837+ // AfxMessageBox(buf,MB_OK);
838+
839+ rect.left = x0;
840+ rect.top = y0 + movey;
841+ rect.right = x0 + width[mem];
842+ rect.bottom = y0 + movey + height[mem];
843+ if (mem) {
844+ //rect.bottom = rect.top + 110 + bigf * 40; // V1.04
845+ rect.bottom = rect.top + CALC_Y(YSTEP) + bigf * 40; // WDF11501-C
846+ rect.bottom += YSTEP*nhost; // WDF11401-A (fix)
847+ }
848+
849+ MoveWindow(&rect,TRUE);
850+
851+ Invalidate(FALSE); // 再表示 WDF11401-C
852+
853+}
854+
855+// 大きく表示メニュー選択時 V1.04
856+void CMainFrame::OnFmtMembig()
857+{
858+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
859+ bigf = 1 - bigf;
860+ if (bigf) {
861+ width[1] *= 2;
862+ } else {
863+ width[1] /= 2;
864+ }
865+ w10m_ofs = 0; // 横幅補正値クリア V1.07-A
866+ ResizeFrame();
867+
868+}
869+
870+// 大きく表示メニュー表示時 V1.04
871+void CMainFrame::OnUpdateFmtMembig(CCmdUI* pCmdUI)
872+{
873+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
874+ pCmdUI->SetCheck(bigf); // フラグ値により、チェックマークを入れる
875+ if (mem) {
876+ pCmdUI->Enable(1); // メモリ表示モードの場合、Enable
877+ } else {
878+ pCmdUI->Enable(0); // ディスク表示モードの場合、グレーアウト
879+ }
880+
881+}
882+
883+// 自動アクティブメニュー選択時 V1.05
884+void CMainFrame::OnFmtActive()
885+{
886+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
887+ activef = 1 - activef;
888+}
889+
890+// 自動アクティブメニュー表示時 V1.05
891+void CMainFrame::OnUpdateFmtActive(CCmdUI* pCmdUI)
892+{
893+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
894+ pCmdUI->SetCheck(activef); // フラグ値により、チェックマークを入れる
895+}
896+
897+void CMainFrame::OnAppHostsetup()
898+{
899+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
900+ // ホスト設定ダイアログ起動
901+
902+ CHostSetup dlg;
903+ int i, j;
904+ dlg.m_port = port;
905+ dlg.m_nhost = nhost;
906+ for (i = 0; i<10; i++) {
907+ strcpy(dlg.m_hosts[i], hosts[i]);
908+ }
909+ if (dlg.DoModal() == IDOK) {
910+ // WDF11306-C
911+ // 一旦全Close
912+ for (i = 0; i < nhost; i++) {
913+ m_pSysInfCl[i]->Close();
914+ netf[i] = 0; // 待ちもリセット
915+ }
916+ // ホスト位置が移動したらデータも移動する
917+ //sprintf(m_pLog->m_msg, "host change.\n");
918+ //MessageBox(m_pLog->m_msg);
919+ //m_pLog->LogOut();
920+ if (nhost > 0 && dlg.m_nhost > 0) {
921+ for (i = nhost-1; i>=0; i--) {
922+ for (j = dlg.m_nhost-1; j>=0; j--) {
923+ //sprintf(m_pLog->m_msg, "[%d:%s]:[%d:%s]\n",
924+ // i, hosts[i], j, dlg.m_hosts[j]);
925+ //MessageBox(m_pLog->m_msg);
926+ //m_pLog->LogOut();
927+ if (!strcmp(hosts[i], dlg.m_hosts[j])
928+ && i != j) {
929+ //sprintf(m_pLog->m_msg, "copy [%d]->[%d]\n", i, j);
930+ //MessageBox(m_pLog->m_msg); // DEBUG
931+ //m_pLog->LogOut();
932+ memcpy(&memdat[j+1], &memdat[i+1], sizeof(mem_t));
933+ memcpy(&loaddat[j], &loaddat[i],
934+ sizeof(int)*MAX_LOAD_HIST);
935+ loadpt[j] = loadpt[i];
936+ netf[j] = netf[i];
937+
938+ // クリア
939+ memset(&memdat[i+1], 0, sizeof(mem_t));
940+ memset(&loaddat[i], 0, sizeof(int)*MAX_LOAD_HIST);
941+ }
942+ }
943+ }
944+ }
945+ // WDF11306-C
946+ port = dlg.m_port;
947+ nhost = dlg.m_nhost; // リモートホストの数
948+ for (i = 0; i<10; i++) {
949+ strcpy(hosts[i], dlg.m_hosts[i]);
950+ }
951+ ResizeFrame(); // resize
952+ }
953+}
954+
955+void CMainFrame::OnUpdateAppHostsetup(CCmdUI* pCmdUI)
956+{
957+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
958+ // メニューが表示される際にコールされる
959+ // 何もしない
960+}
961+
962+//
963+// OUT : ret 0 in process
964+// 1 success
965+//
966+int CMainFrame::GetMemInfo()
967+{
968+ //MEMORYSTATUS mst;
969+ MEMORYSTATUSEX mst; // WDF11502-C
970+ int i;
971+ int ret;
972+ int loadavg;
973+ //char buf[1024]; // DEBUG
974+
975+ mst.dwLength = sizeof(MEMORYSTATUSEX); // WDF11502-A
976+
977+ if (in_get == 1) {
978+ // busy
979+ return 0;
980+ }
981+ in_get = 1;
982+
983+ rmemget = 1 - rmemget; // WDF11302-A
984+
985+ // get all mem data
986+ for (i = 0; i <= nhost; i++) {
987+ // メモリ情報取得
988+ if (i == 0) {
989+ // local meminfo
990+#if 0 // WDF11502-C
991+ // to 4GB
992+ GlobalMemoryStatus(&mst);
993+ memdat[i].total = mst.dwTotalPhys;
994+ memdat[i].free = mst.dwAvailPhys;
995+ memdat[i].shared = 0;
996+ memdat[i].buffers = 0;
997+ memdat[i].cached = 0;
998+ memdat[i].swap_total = mst.dwTotalPageFile;
999+ memdat[i].swap_free = mst.dwAvailPageFile;
1000+#else
1001+ // upper 4GB
1002+ GlobalMemoryStatusEx(&mst);
1003+ memdat[i].total = mst.ullTotalPhys;
1004+ memdat[i].free = mst.ullAvailPhys;
1005+ memdat[i].shared = 0;
1006+ memdat[i].buffers = 0;
1007+ memdat[i].cached = 0;
1008+ memdat[i].swap_total = mst.ullTotalPageFile;
1009+ memdat[i].swap_free = mst.ullAvailPageFile;
1010+#endif
1011+ } else {
1012+ // remote mem info
1013+ int getfail = 0;
1014+
1015+ if (netf[i-1] > 0) {
1016+ continue;
1017+ }
1018+
1019+ /* WDF11302-A start */
1020+ if (rmemget) {
1021+ continue;
1022+ }
1023+ /* WDF11302-A start */
1024+
1025+#define KEEP_CONN /* コネクションを保持する */
1026+#ifdef KEEP_CONN
1027+ // 接続中でなければ接続
1028+ if (!(m_pSysInfCl[i-1]->IsConnect())) {
1029+ //wsprintf(buf, "Connect 0x%08x i=%d host=[%s]", &m_pSysInfCl[0], i, hosts[i-1]);
1030+ //MessageBox(buf); // DEBUG051016
1031+ if (m_pSysInfCl[i-1]->Connect(hosts[i-1], port) != 0) {
1032+ // connct failed
1033+ //MessageBox("Connect Failed"); // DEBUG051016
1034+ //netf[i-1] = 150; // skip 300sec
1035+ getfail = 1; // WDF11402-A
1036+ }
1037+ }
1038+
1039+ // 接続状態ならば情報取得
1040+ if (m_pSysInfCl[i-1]->IsConnect()) {
1041+ if (m_pSysInfCl[i-1]->GetMemInfo(&memdat[i]) == 0) {
1042+ // success
1043+ //wsprintf(buf, "host=[%s] port=%d mem=%d", hosts[i-1], port,memdat[i].total);
1044+ //MessageBox((CString)buf);
1045+ } else {
1046+ // get failed
1047+ netf[i-1] = 150; // skip 300sec
1048+ getfail = 1;
1049+ }
1050+
1051+ /* WDF11301-A start */
1052+ loadavg = 0;
1053+ if ((ret = m_pSysInfCl[i-1]->GetLoadInfo(&loadavg)) == 0) {
1054+ // success
1055+ loaddat[i-1][loadpt[i-1]] = loadavg;
1056+ //wsprintf(buf, "host=[%s] port=%d load=%d", hosts[i-1], port,loaddat[i-1][loadpt[i-1]]);
1057+ //MessageBox((CString)buf);
1058+ if (++loadpt[i-1] >= MAX_LOAD_HIST) {
1059+ loadpt[i-1] = 0;
1060+ }
1061+ } else {
1062+ // get failed
1063+ netf[i-1] = 150; // skip 300sec
1064+ getfail = 1;
1065+ }
1066+ //wsprintf(buf, "GetLoadInfo() ret = %d", ret);
1067+ //MessageBox((CString)buf);
1068+ /* WDF11301-A end */
1069+ }
1070+
1071+ if (getfail) {
1072+ m_pSysInfCl[i-1]->Close(); // 失敗したらクローズ
1073+ }
1074+
1075+#else // !KEEP_CONN
1076+ if (m_pSysInfCl[i-1]->Connect(hosts[i-1], port) == 0) {
1077+ if (m_pSysInfCl[i-1]->GetMemInfo(&memdat[i]) == 0) {
1078+ // success
1079+ //wsprintf(buf, "host=[%s] port=%d mem=%d", hosts[i-1], port,memdat[i].total);
1080+ //MessageBox((CString)buf);
1081+ } else {
1082+ // get failed
1083+ netf[i-1] = 150; // skip 300sec
1084+ }
1085+ m_pSysInfCl[i-1]->Close();
1086+ } else {
1087+ // connct failed
1088+ netf[i-1] = 150; // skip 300sec
1089+ }
1090+#endif // KEEP_CONN
1091+ }
1092+
1093+ /* WDF11403-A start */
1094+#ifdef DEBUG_LOGX
1095+ sprintf(m_pLog->m_msg, "memdat[%d].mem_max=%u cur_mem=%u\n", i,
1096+ memdat[i].mem_max, memdat[i].total - memdat[i].free
1097+ - memdat[i].buffers
1098+ - memdat[i].cached);
1099+ m_pLog->LogOut();
1100+
1101+ sprintf(dbg_msg, "memdat[%d].mem_max=%u cur_mem=%u\n", i,
1102+ memdat[i].mem_max, memdat[i].total - memdat[i].free
1103+ - memdat[i].buffers
1104+ - memdat[i].cached);
1105+ Log(dbg_msg);
1106+#endif
1107+
1108+ if (memdat[i].mem_max < (memdat[i].total - memdat[i].free - memdat[i].buffers - memdat[i].cached)) {
1109+ memdat[i].mem_max = memdat[i].total - memdat[i].free
1110+ - memdat[i].buffers
1111+ - memdat[i].cached;
1112+ }
1113+ if (memdat[i].swap_max < (memdat[i].swap_total - memdat[i].swap_free)) {
1114+ memdat[i].swap_max = memdat[i].swap_total - memdat[i].swap_free;
1115+ }
1116+ /* WDF11403-A end */
1117+ }
1118+
1119+ in_get = 0;
1120+ return 1; // success
1121+}
1122+
1123+
1124+/* WDF11403-A start */
1125+/* ピーク値の切替 */
1126+void CMainFrame::OnFmtMax()
1127+{
1128+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1129+ disp_max = 1 - disp_max;
1130+ Invalidate(FALSE);
1131+}
1132+
1133+/* ピーク値の表示/非表示 */
1134+void CMainFrame::OnUpdateFmtMax(CCmdUI* pCmdUI)
1135+{
1136+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
1137+ if (mem) {
1138+ pCmdUI->Enable(1);
1139+ } else {
1140+ pCmdUI->Enable(0);
1141+ }
1142+
1143+ pCmdUI->SetCheck(disp_max);
1144+
1145+}
1146+
1147+/* ピーク値のクリア */
1148+void CMainFrame::OnFmtMaxclear()
1149+{
1150+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1151+ int i;
1152+ for (i = 0; i < MAX_REMOT_HOST+1; i++) {
1153+ memdat[i].mem_max = 0;
1154+ memdat[i].swap_max = 0;
1155+ }
1156+ Invalidate(FALSE);
1157+}
1158+
1159+/* ピーク値のクリア */
1160+void CMainFrame::OnUpdateFmtMaxclear(CCmdUI* pCmdUI)
1161+{
1162+ // TODO: この位置に command update UI ハンドラ用のコードを追加してください
1163+ if (mem && disp_max) {
1164+ pCmdUI->Enable(1);
1165+ } else {
1166+ pCmdUI->Enable(0);
1167+ }
1168+}
1169+
1170+/* WDF11403-A end */
1171+
--- /dev/null
+++ b/wdf/MainFrm.h
@@ -0,0 +1,89 @@
1+// MainFrm.h : CMainFrame クラスの宣言およびインターフェイスの定義をします。
2+//
3+/////////////////////////////////////////////////////////////////////////////
4+
5+#include "SysInfCl.h"
6+#include "LogCtrl.h"
7+
8+class CMainFrame : public CFrameWnd
9+{
10+protected: // シリアライズ機能のみから作成します。
11+ CMainFrame();
12+ DECLARE_DYNCREATE(CMainFrame)
13+
14+// アトリビュート
15+public:
16+ LogCtrl *m_pLog; // ログ出力 WDF11306-A
17+ SysInfCl *m_pSysInfCl[MAX_REMOT_HOST]; // リモート情報取得Object V1.10-A WDF11306-C
18+ TEXTMETRIC tm; // テキストサイズ情報 WDF11501-M
19+
20+// オペレーション
21+public:
22+ void ResizeFrame();
23+ void MoveFrame();
24+ int GetMemInfo(); //V1.10-A
25+
26+// オーバーライド
27+ // ClassWizard は仮想関数を生成しオーバーライドします。
28+ //{{AFX_VIRTUAL(CMainFrame)
29+ virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
30+ //}}AFX_VIRTUAL
31+
32+// インプリメンテーション
33+public:
34+ virtual ~CMainFrame();
35+#ifdef _DEBUG
36+ virtual void AssertValid() const;
37+ virtual void Dump(CDumpContext& dc) const;
38+#endif
39+
40+protected: // コントロール バー用メンバ
41+ CStatusBar m_wndStatusBar;
42+ CToolBar m_wndToolBar;
43+
44+// 生成されたメッセージ マップ関数
45+protected:
46+ //{{AFX_MSG(CMainFrame)
47+ afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
48+ afx_msg void OnUpdateFmtAll(CCmdUI* pCmdUI);
49+ afx_msg void OnUpdateFmtGraph(CCmdUI* pCmdUI);
50+ afx_msg void OnUpdateFmtMega(CCmdUI* pCmdUI);
51+ afx_msg void OnFmtAll();
52+ afx_msg void OnFmtGraph();
53+ afx_msg void OnFmtMega();
54+ afx_msg void OnFmtRedraw();
55+ afx_msg void OnUpdateFmtRedraw(CCmdUI* pCmdUI);
56+ afx_msg void OnUpdateFmtMem(CCmdUI* pCmdUI);
57+ afx_msg void OnFmtMem();
58+ afx_msg void OnTimer(UINT nIDEvent);
59+ afx_msg void OnUpdateFmtAuto(CCmdUI* pCmdUI);
60+ afx_msg void OnFmtAuto();
61+ afx_msg void OnUpdateFmtSave(CCmdUI* pCmdUI);
62+ afx_msg void OnFmtSave();
63+ afx_msg void OnMove(int x, int y);
64+ afx_msg void OnSize(UINT nType, int cx, int cy);
65+ afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
66+ afx_msg void OnLocalHD();
67+ afx_msg void OnUpdateLocalHD(CCmdUI* pCmdUI);
68+ afx_msg void OnFmtMovef();
69+ afx_msg void OnUpdateFmtMovef(CCmdUI* pCmdUI);
70+ afx_msg void OnFmtMembig();
71+ afx_msg void OnUpdateFmtMembig(CCmdUI* pCmdUI);
72+ afx_msg void OnFmtActive();
73+ afx_msg void OnUpdateFmtActive(CCmdUI* pCmdUI);
74+ afx_msg void OnAppHostsetup();
75+ afx_msg void OnUpdateAppHostsetup(CCmdUI* pCmdUI);
76+ afx_msg void OnFmtKiro();
77+ afx_msg void OnUpdateFmtKiro(CCmdUI* pCmdUI);
78+ afx_msg void OnFmtGiga();
79+ afx_msg void OnUpdateFmtGiga(CCmdUI* pCmdUI);
80+ afx_msg void OnFmtMax();
81+ afx_msg void OnUpdateFmtMax(CCmdUI* pCmdUI);
82+ afx_msg void OnFmtMaxclear();
83+ afx_msg void OnUpdateFmtMaxclear(CCmdUI* pCmdUI);
84+ //}}AFX_MSG
85+ DECLARE_MESSAGE_MAP()
86+};
87+
88+/////////////////////////////////////////////////////////////////////////////
89+
--- /dev/null
+++ b/wdf/SysInfCl.cpp
@@ -0,0 +1,264 @@
1+// SysInfCl.cpp : インプリメンテーション ファイル
2+//
3+
4+#include "stdafx.h"
5+#include "wdf.h"
6+#include "SysInfCl.h"
7+
8+#ifdef _DEBUG
9+#define new DEBUG_NEW
10+#undef THIS_FILE
11+static char THIS_FILE[] = __FILE__;
12+#endif
13+
14+/////////////////////////////////////////////////////////////////////////////
15+// SysInfCl
16+//
17+// int SysInfCl::Connect()
18+// int SysInfCl::Close()
19+// int SysInfCl::Connect(char *hostn, int port)
20+// int SysInfCl::IsConnect()
21+// int SysInfCl::IsEof(char *buf, int len);
22+// int SysInfCl::Send(char *data, int size)
23+// int SysInfCl::Recv(char *buf, int bufsize)
24+// int SysInfCl::GetMemInfo(mem_t *mem)
25+// int SysInfCl::GetLoadInfo(int *mem)
26+//
27+
28+SysInfCl::SysInfCl()
29+{
30+ memset(m_hostn, 0, sizeof(m_hostn));
31+ m_port = SYSINF_PORT; // default port number (9998)
32+ m_sockfd = 0;
33+ m_connect = 0; // 0:disconnect status
34+}
35+
36+SysInfCl::~SysInfCl()
37+{
38+ if (m_sockfd) Close(); // WDF11304-A
39+}
40+
41+
42+int SysInfCl::Connect()
43+{
44+ return Connect(m_hostn, m_port);
45+}
46+
47+int SysInfCl::Close()
48+{
49+ if (m_sockfd) closesocket(m_sockfd); // WDF11304-C
50+ m_sockfd = 0; // WDF11304-A
51+ m_connect = 0; // reset connect status
52+ return 0;
53+}
54+
55+//
56+// IN : hostn hostname
57+// IN : port sysinfd port number
58+// OUT : ret 0 : success
59+// -n : error
60+//
61+int SysInfCl::Connect(char *hostn, int port)
62+{
63+ struct hostent *hostp;
64+ struct sockaddr_in serv_addr;
65+
66+ m_sockerr = 0;
67+
68+ hostp = gethostbyname(hostn);
69+ if (!hostp) {
70+ //printf("Error: gethostbyname(%s) error \n",hostn);
71+ m_sockerr = WSAGetLastError();
72+ return -1;
73+ }
74+
75+ serv_addr.sin_family = AF_INET;
76+ serv_addr.sin_addr.s_addr = *(int *)hostp->h_addr;
77+ serv_addr.sin_port = htons((short)port);
78+
79+ if((m_sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){
80+ //perror("socket");
81+ m_sockerr = WSAGetLastError();
82+ Close(); // WDF11402-A
83+ return -2;
84+ }
85+
86+ if (connect(m_sockfd, (struct sockaddr *)&serv_addr,
87+ sizeof(serv_addr)) < 0){
88+ //perror("connect");
89+ m_sockerr = WSAGetLastError();
90+ Close(); // WDF11402-A
91+ return -3;
92+ }
93+ m_connect = 1; // set connect status
94+ return 0;
95+}
96+
97+//
98+// int SysInfCl::IsConnect()
99+//
100+// IN : none
101+// OUT : ret 1 : in connect
102+// 0 : closed
103+//
104+int SysInfCl::IsConnect()
105+{
106+ return (m_connect);
107+}
108+
109+//
110+// int SysInfCl::IsEof(char *buf, int len)
111+//
112+// IN : buf : EOF check string
113+// len : data length
114+// OUT : ret 1 : EOF (\n\n)
115+// 0 : no EOF
116+//
117+int SysInfCl::IsEof(char *buf, int len)
118+{
119+ if (len < 2) {
120+ return 0; // no EOF
121+ }
122+ if (buf[len-2] == 0x0a && buf[len-1] == 0x0a) {
123+ return 1; // EOF
124+ }
125+ return 0; // no EOF
126+}
127+
128+//
129+// IN data send data
130+// IN size send data size
131+// OUT ret ret>=0 : success (send data size)
132+// ret<0 : error
133+//
134+int SysInfCl::Send(char *data, int size)
135+{
136+ int sendsize = 0;
137+ int retsize;
138+
139+ m_sockerr = 0;
140+
141+ do {
142+ retsize = send(m_sockfd, &data[sendsize], size - sendsize, 0);
143+ if (retsize < 0) {
144+ // error
145+ m_sockerr = WSAGetLastError();
146+ return -1;
147+ }
148+ sendsize += retsize;
149+ } while (sendsize < size);
150+ return sendsize;
151+}
152+
153+//
154+// IN bufsize size of recv data buffer
155+// OUT buf recv data buffer
156+// OUT ret ret>=0 : success (recv data size)
157+// ret<0 : error
158+//
159+//
160+int SysInfCl::Recv(char *buf, int bufsize)
161+{
162+ int recvsize = 0;
163+ int retsize;
164+
165+ m_sockerr = 0;
166+
167+ do {
168+ retsize = recv(m_sockfd, &buf[recvsize], bufsize-recvsize, 0);
169+ if (retsize < 0) {
170+ // error
171+ m_sockerr = WSAGetLastError();
172+ return -1;
173+ }
174+ recvsize += retsize;
175+ } while (retsize > 0 && !IsEof(buf, recvsize));
176+ return recvsize;
177+}
178+
179+int SysInfCl::GetMemInfo(mem_t *mem)
180+{
181+ char buf[8192];
182+ char *command = "GET_MEM\n";
183+
184+ /* WDF11404-C start */
185+ /* MAX 以外をクリア */
186+ //memset(mem, 0, sizeof(mem_t));
187+ mem->total = 0;
188+ mem->free = 0;
189+ mem->shared = 0;
190+ mem->buffers = 0;
191+ mem->cached = 0;
192+ mem->swap_total = 0;
193+ mem->swap_free = 0;
194+ /* WDF11404-C end */
195+
196+ if (Send(command, strlen(command)) < 0) {
197+ return -1;
198+ }
199+ if (Recv(buf, sizeof(buf)) < 0) {
200+ return -2;
201+ }
202+ //MessageBox((CString)buf);
203+ sscanf(buf, "%u %u %u %u %u %u %u",
204+ &mem->total,
205+ &mem->free,
206+ &mem->shared,
207+ &mem->buffers,
208+ &mem->cached,
209+ &mem->swap_total,
210+ &mem->swap_free);
211+ // KB => byte
212+ mem->total *= 1024;
213+ mem->free *= 1024;
214+ mem->shared *= 1024;
215+ mem->buffers *= 1024;
216+ mem->cached *= 1024;
217+ mem->swap_total *= 1024;
218+ mem->swap_free *= 1024;
219+
220+ //MessageBox("End sscanf");
221+ return 0;
222+}
223+
224+int SysInfCl::GetLoadInfo(int *loadavg)
225+{
226+ char buf[8192];
227+ char *command = "GET_LOAD\n";
228+ char wk[256];
229+ char *pt;
230+
231+ *loadavg = 0;
232+ memset(wk, 0, sizeof(wk));
233+
234+ if (Send(command, strlen(command)) < 0) {
235+ return -1;
236+ }
237+ if (Recv(buf, sizeof(buf)) < 0) {
238+ return -2;
239+ }
240+ sscanf(buf, "%s", wk);
241+
242+ /* 1.23 => 123 */
243+ //wk[1] = wk[2];
244+ //wk[2] = wk[3];
245+ //wk[3] = '\0';
246+ pt = strchr(wk, '.');
247+ if (pt) {
248+ strcpy(pt, pt+1);
249+ }
250+ *loadavg = atoi(wk);
251+
252+ return 0;
253+}
254+
255+
256+BEGIN_MESSAGE_MAP(SysInfCl, CWnd)
257+ //{{AFX_MSG_MAP(SysInfCl)
258+ // メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
259+ //}}AFX_MSG_MAP
260+END_MESSAGE_MAP()
261+
262+
263+/////////////////////////////////////////////////////////////////////////////
264+// SysInfCl メッセージ ハンドラ
--- /dev/null
+++ b/wdf/SysInfCl.h
@@ -0,0 +1,82 @@
1+#if !defined(AFX_SYSINFCL_H__E8EA7227_6909_41CA_898E_1A0B710BF7EF__INCLUDED_)
2+#define AFX_SYSINFCL_H__E8EA7227_6909_41CA_898E_1A0B710BF7EF__INCLUDED_
3+
4+#if _MSC_VER >= 1000
5+#pragma once
6+#endif // _MSC_VER >= 1000
7+// SysInfCl.h : ヘッダー ファイル
8+//
9+
10+#include <winsock.h>
11+
12+//typedef unsigned int mem_uint;
13+typedef DWORDLONG mem_uint; /* WDF11502-C */
14+
15+typedef struct _mem_t {
16+ mem_uint total;
17+ mem_uint free;
18+ mem_uint shared;
19+ mem_uint buffers;
20+ mem_uint cached;
21+ mem_uint swap_total;
22+ mem_uint swap_free;
23+ mem_uint mem_max; /* WDF11403-A */
24+ mem_uint swap_max; /* WDF11403-A */
25+} mem_t;
26+
27+// default port
28+#define SYSINF_PORT 9998
29+
30+/////////////////////////////////////////////////////////////////////////////
31+// SysInfCl ウィンドウ
32+
33+class SysInfCl : public CWnd
34+{
35+// コンストラクション
36+public:
37+ SysInfCl();
38+
39+// アトリビュート
40+public:
41+ char m_hostn[1024]; // port hostname
42+ int m_port; // port number
43+ SOCKET m_sockfd;
44+ int m_sockerr;
45+ int m_connect; // connect status 0:disconnect 1:connect
46+
47+// オペレーション
48+public:
49+ int Connect();
50+ int Close();
51+ int Connect(char *hostn, int port);
52+ int IsConnect();
53+ int IsEof(char *buf, int len);
54+ int Send(char *data, int size);
55+ int Recv(char *buf, int bufsize);
56+ int GetMemInfo(mem_t *mem);
57+ int GetLoadInfo(int *loadavg);
58+
59+// オーバーライド
60+ // ClassWizard は仮想関数のオーバーライドを生成します。
61+
62+ //{{AFX_VIRTUAL(SysInfCl)
63+ //}}AFX_VIRTUAL
64+
65+// インプリメンテーション
66+public:
67+ virtual ~SysInfCl();
68+
69+ // 生成されたメッセージ マップ関数
70+protected:
71+ //{{AFX_MSG(SysInfCl)
72+ // メモ - ClassWizard はこの位置にメンバ関数を追加または削除します。
73+ //}}AFX_MSG
74+ DECLARE_MESSAGE_MAP()
75+};
76+
77+/////////////////////////////////////////////////////////////////////////////
78+
79+//{{AFX_INSERT_LOCATION}}
80+// Microsoft Developer Studio は前行の直前に追加の宣言を挿入します。
81+
82+#endif // !defined(AFX_SYSINFCL_H__E8EA7227_6909_41CA_898E_1A0B710BF7EF__INCLUDED_)
--- /dev/null
+++ b/wdf/ToDo.txt
@@ -0,0 +1,8 @@
1+WinDF ToDo
2+
3+(1)HDD TOTAL 4TB超時hdall, hdfree変数がオーバーフローするので
4+ 対応が必要。
5+ いいかげんGetDiskFreeSpaceEx()を使う?
6+ => V1.16で対応
7+
8+(2)WIN98のビルドが出来なくなった
--- /dev/null
+++ b/wdf/readme.txt
@@ -0,0 +1,102 @@
1+========================================================================
2+ MICROSOFT FOUNDATION CLASS ライブラリ : wdf
3+========================================================================
4+
5+
6+AppWizard が生成した wdf には、Microsoft Foundation Class の基本的な
7+使い方が示されています。アプリケーション作成のひな型としてお使いください。
8+
9+このファイルには wdf を構成している各ファイルの概要説明が含まれています。
10+
11+
12+wdf.h
13+ このファイルはアプリケーションの中心となるインクルードファイルです。この
14+ ファイルは他のプロジェクトの固有のインクルードファイル(Resource.h も含
15+ みます) をインクルードし、また CWdfApp アプリケーションクラスを宣
16+ 言します。
17+
18+wdf.cpp
19+ このファイルは CWdfApp アプリケーションクラスを含むアプリケーション
20+ の中心となるソースファイルです。
21+
22+wdf.rc
23+ このファイルはプログラムが使用する Microsoft Windows のリソースを列挙しま
24+ す。このファイルは RES サブディレクトリに保存されているアイコン、ビットマ
25+ ップ、カーソルを含みます。このファイルは Microsoft Developer Studio で直接
26+ 編集可能です。
27+
28+res\wdf.ico
29+ このファイルは、アプリケーションのアイコンとして使用されるアイコンファイ
30+ ルです。このアイコンはリソース ファイル wdf.rc によってインクルード
31+ されます。
32+
33+res\wdf.rc2
34+ このファイルは Microsoft Developer によって編集されないリソースを含んでいま
35+ す。このファイルにリソース エディタで編集されないすべてのリソースを記述
36+ してください。
37+
38+wdf.clw
39+ このファイルは ClassWizard が既存のクラスの編集やクラスを新規作成すると
40+ きに使う情報を持っています。またこのファイルは、ClassWizard によるメッセ
41+ ージ マップやダイアログ データ マップの編集や生成、プロトタイプ メンバ関
42+ 数の生成に必要な情報も持っています。
43+
44+/////////////////////////////////////////////////////////////////////////////
45+
46+メイン フレーム ウィンドウ:
47+
48+MainFrm.h, MainFrm.cpp
49+ これらのファイルはフレーム クラス CMainFrame を含みます。
50+ フレーム クラス CMainFrame は CFrameWnd クラスから派生し、SDI の
51+ フレームを制御します。
52+
53+res\Toolbar.bmp
54+ このビットマップ ファイルはツールバーのイメージとして使います。 ツールバ
55+ ーやステータスバーの初期設定は CMainFrame クラスによって構築されま
56+ す。ツールバーのボタンコントロールを追加したい時には MainFrm.cpp
57+ ファイル内の配列にしたがってツールバーのビットマップを編集してください。
58+
59+/////////////////////////////////////////////////////////////////////////////
60+
61+AppWizard は 1 つのドキュメントタイプと 1 つのビューを作成します。
62+
63+wdfDoc.h, wdfDoc.cpp - ドキュメント
64+ これらのファイルは CWdfDoc クラスを含みます。特別なドキュメント デ
65+ ータを付け加えたり、CWdfDoc::Serialize を使ったファイルのセーブや
66+ ロード機能をインプリメントしたいときはこのファイルを編集してください。
67+
68+wdfView.h, wdfView.cpp - ビュー
69+ これらのファイルは CWdfView クラスを含みます。
70+ CWdfView オブジェクトは CWdfDoc オブジェクトを表示するために
71+ 使います。
72+
73+
74+
75+/////////////////////////////////////////////////////////////////////////////
76+その他の標準ファイル:
77+
78+StdAfx.h, StdAfx.cpp
79+ これらのファイルはプリコンパイル済ヘッダー ファイル (PCH) wdf.pch
80+ やプリコンパイル済型ファイル StdAfx.obj を構築するために使われるファイルです。
81+
82+Resource.h
83+ このファイルは新規リソース ID を定義する標準ヘッダー ファイルです。
84+ Microsoft Developer Studio はこのファイルを読み込み更新します。
85+
86+/////////////////////////////////////////////////////////////////////////////
87+その他の注意:
88+
89+"TODO:" で始まるコメントは、ソースコードの追加やカスタマイズの必要な場所を示
90+します。
91+
92+アプリケーションで共有 DLL 内で MFC を使用する場合や、アプリケーション
93+がオペレーティング システムで現在使用している言語以外の言語を使用してい
94+る場合は、Microsoft Visual C++ CD-ROM の system または system32 ディレクト
95+リから、ローカライズされたリソースに対応する MFC40XX.DLL をコピーして、
96+ファイル名を MFCLOC.DLL にする必要があります。("XXX" は言語の省略形を現
97+します。例えば、 MFC40DEU.DLL はドイツ語に翻訳されたリソースを含みます。)
98+このようにしたくない場合は、アプリケーション内のいくつかの UI 要素はオペ
99+レーティング システムの言語のまま残ります。
100+
101+/////////////////////////////////////////////////////////////////////////////
102+
--- /dev/null
+++ b/wdf/readme/wdf.txt
@@ -0,0 +1,197 @@
1+=====================================================
2+ WinDF Ver1.08 2000/08/26更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95または、WindowsNT 3.51または、WindowsNT 4.0の動作する機種。
22+ Windows2000でも動作するようです。
23+
24+3. 画面説明
25+
26+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
27+
28+ (1)ディスク情報画面
29+ Drv : ドライブ名
30+ Type : ドライブの種類
31+ FD : フロッピーディスク
32+ HDD : ローカルハードディスク
33+ NETDRV : ネットワーク接続ドライブ
34+ CDROM : CD-ROM
35+ REMOV. : 取り外し可能ドライブ (MOなど)
36+ Total : ディスクの全容量
37+ Used : ディスクの使用している容量
38+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
39+ Capa : ディスクの使用量のパーセント表示
40+ Cluster : ディスクのクラスタサイズ
41+
42+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
43+ また、Used,Capa,Clusterは表示されません。
44+
45+ HDD TOTAL : ローカルハードディスクのみの合計値
46+
47+ (2)メモリ情報画面
48+ MEMORY : メモリ使用状況
49+ 赤はメモリの使用量、緑はメモリの空き容量です。
50+ SWAP : スワップ使用状況
51+ 赤はスワップの使用量、緑はスワップの空き領域です。
52+
53+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
54+    できます。
55+ ・画面の左シングルクリックで、最新情報を表示します。
56+ ・画面を右ドラッグすると目盛り幅を変更することができます。(V1.07)
57+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
58+ 手動で調整してください(^^;
59+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
60+ は橙色で表示されます。(V1.06以降)
61+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
62+ います。V1.05までは、赤+橙色を赤で表示していました。
63+
64+4. メニュー
65+
66+ (1) ファイル
67+ ・印刷 (V1.08以降)
68+ 表示されている内容を印刷します。
69+
70+ ・WinDFの終了
71+ WinDFを終了します。
72+
73+ (2) 表示
74+
75+ ○メモリ使用状況
76+ ・チェックがついている場合
77+ メモリの情報が表示されます。
78+ ・チェックがついていない場合
79+ ディスクのの情報が表示されます。
80+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
81+ できます。
82+
83+ ○大きく表示 (V1.04)
84+ ・チェックがついている場合
85+ メモリ使用状況の表示を大きく表示します。
86+ ・チェックがついていない場合
87+ メモリ使用状況の表示を小さく表示します。
88+
89+ ○再表示
90+ 最新の情報を表示します。
91+
92+ ○自動更新
93+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
94+ 最新情報に更新します
95+
96+ ○カーソルがくると逃げる
97+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
98+  移動します。画面がじゃまな場合に使用します。
99+
100+ ○カーソルがくるとアクティブ (V1.05以降)
101+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
102+ アクティブになります。
103+
104+ ○グラフ表示
105+ ・チェックがついている場合
106+ ディスク情報をグラフで表示します。
107+ ・チェックがついていない場合
108+ UNIXのdfコマンドの形式で表示します。
109+ 各パーティションのクラスタサイズも表示します。
110+
111+ ○メガバイト表示
112+ ・チェックがついている場合
113+ ディスクの情報をメガバイト単位で表示します。
114+ (1Mバイト = 1024*1024バイト)
115+ ・チェックがついていない場合
116+ ディスクの情報をバイト単位で表示します。
117+
118+ ○FDも表示
119+ ・チェックがついている場合
120+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
121+ 情報取得に少し時間がかかります。
122+ ・チェックがついていない場合
123+ A:,B:ドライブの情報は表示しません。
124+
125+ ○ローカルドライブのみ表示
126+ ・チェックがついている場合
127+ ネットワークドライブを表示しません。
128+ ・チェックがついていない場合
129+ ネットワークドライブも表示します。
130+
131+ ○設定保存
132+ 上記の設定を保存しておきます。
133+
134+ (3) ヘルプ
135+ ・バージョン情報(WinDF)
136+ WinDFのバージョンを表示します。
137+
138+5. メモリ情報について
139+
140+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
141+ MEMORYを使い切ると、SWAPを使いはじめます。
142+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
143+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
144+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
145+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
146+ SWAPファイルには書き込まれていないようです。(想像)
147+
148+6. 使用上の注意
149+
150+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
151+ このプログラムを使用したことにより、何らかの障害、損害が発生した
152+ としても作者は何の責も負いません(^^;
153+
154+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
155+ 再起動してください(^^;
156+ (または、タスクバーから最大化していったん終了して再度起動する)
157+
158+9. 更新履歴
159+
160+ 00/08/26 V1.08
161+ (1) 画面印刷機能を追加。
162+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
163+ 表示でこける問題を修正。
164+
165+ 99/05/26 V1.07
166+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
167+
168+ 99/02/12 V1.06
169+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
170+ 修正(wdf98.exe)
171+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
172+ ようにした。
173+
174+ 98/05/28 V1.05
175+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
176+ (C) Motif,FVWM
177+ (注)Win98,Win2000だとうまく画面が上にこないようです。
178+
179+ 98/05/17 V1.04
180+ (1) メモリの表示を小さくできるようにした。
181+
182+ 98/03/31 V1.03
183+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
184+ 設定サイズに切り替えるようにした。
185+ (2) ローカルドライブのみ表示できるようにした。
186+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
187+
188+ 97/09/29 V1.02
189+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
190+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
191+
192+ 97/05/01 V1.01
193+ (1) リムーバブルディスクでの問題を修正
194+
195+ 97/02/09 V1.00
196+ 初期バージョン
197+
--- /dev/null
+++ b/wdf/readme/wdf98.txt
@@ -0,0 +1,191 @@
1+=====================================================
2+ WinDF98 Ver1.07 99/05/26更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows98または、WindowsNT 4.0の動作する機種。
22+
23+3. 画面説明
24+
25+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
26+
27+ (1)ディスク情報画面
28+ Drv : ドライブ名
29+ Type : ドライブの種類
30+ FD : フロッピーディスク
31+ HDD : ローカルハードディスク
32+ NETDRV : ネットワーク接続ドライブ
33+ CDROM : CD-ROM
34+ REMOV. : 取り外し可能ドライブ (MOなど)
35+ Total : ディスクの全容量
36+ Used : ディスクの使用している容量
37+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
38+ Capa : ディスクの使用量のパーセント表示
39+ Cluster : ディスクのクラスタサイズ
40+
41+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
42+ また、Used,Capa,Clusterは表示されません。
43+
44+ HDD TOTAL : ローカルハードディスクのみの合計値
45+
46+ (2)メモリ情報画面
47+ MEMORY : メモリ使用状況
48+ 赤はメモリの使用量、緑はメモリの空き容量です。
49+ SWAP : スワップ使用状況
50+ 赤はスワップの使用量、緑はスワップの空き領域です。
51+
52+ (注)・画面をダブルクリックするとメモリ画面とディスク画面を切り替えることが
53+    できます。
54+ ・画面のシングルクリックで、最新情報を表示します。
55+ ・画面を右ドラッグすると目盛り幅を変更することができます。(V1.07)
56+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
57+ 手動で調整してください(^^;
58+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
59+ は橙色で表示されます。(V1.06以降)
60+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
61+ います。V1.05までは、赤+橙色を赤で表示していました。
62+
63+4. メニュー
64+
65+ (1) ファイル
66+ ・WinDFの終了
67+ WinDFを終了します
68+
69+ (2) 表示
70+
71+ ○メモリ使用状況
72+ ・チェックがついている場合
73+ メモリの情報が表示されます。
74+ ・チェックがついていない場合
75+ ディスクのの情報が表示されます。
76+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
77+ できます。
78+
79+ ○大きく表示 (V1.04)
80+ ・チェックがついている場合
81+ メモリ使用状況の表示を大きく表示します。
82+ ・チェックがついていない場合
83+ メモリ使用状況の表示を小さく表示します。
84+
85+ ○再表示
86+ 最新の情報を表示します。
87+
88+ ○自動更新
89+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
90+ 最新情報に更新します
91+
92+ ○カーソルがくると逃げる
93+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
94+  移動します。画面がじゃまな場合に使用します。
95+
96+ ○カーソルがくるとアクティブ (V1.05以降)
97+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
98+ アクティブになります。
99+
100+ ○グラフ表示
101+ ・チェックがついている場合
102+ ディスク情報をグラフで表示します。
103+ ・チェックがついていない場合
104+ UNIXのdfコマンドの形式で表示します。
105+ 各パーティションのクラスタサイズも表示します。
106+
107+ ○メガバイト表示
108+ ・チェックがついている場合
109+ ディスクの情報をメガバイト単位で表示します。
110+ (1Mバイト = 1024*1024バイト)
111+ ・チェックがついていない場合
112+ ディスクの情報をバイト単位で表示します。
113+
114+ ○FDも表示
115+ ・チェックがついている場合
116+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
117+ 情報取得に少し時間がかかります。
118+ ・チェックがついていない場合
119+ A:,B:ドライブの情報は表示しません。
120+
121+ ○ローカルドライブのみ表示
122+ ・チェックがついている場合
123+ ネットワークドライブを表示しません。
124+ ・チェックがついていない場合
125+ ネットワークドライブも表示します。
126+
127+ ○設定保存
128+ 上記の設定を保存しておきます。
129+
130+ (3) ヘルプ
131+ ・バージョン情報(WinDF)
132+ WinDFのバージョンを表示します。
133+
134+5. メモリ情報について
135+
136+ Windows98では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
137+ MEMORYを使い切ると、SWAPを使いはじめます。
138+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
139+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
140+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
141+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
142+ SWAPファイルには書き込まれていないようです。(想像)
143+
144+6. 使用上の注意
145+
146+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
147+ このプログラムを使用したことにより、何らかの障害、損害が発生した
148+ としても作者は何の責も負いません(^^;
149+
150+ ○画面から見えなくなったら、Windowsディレクトリのwdf98.iniを削除して、
151+ 再起動してください(^^;
152+ (または、タスクバーから最大化していったん終了して再度起動する)
153+
154+9. 更新履歴
155+
156+ 99/05/26 V1.07
157+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
158+
159+ 99/05/22 V1.06a
160+ (1) V1.06のFAT32対応時に、デグってしまい4GB超のディスク容量表示がおか
161+ しくなるバグを修正した。
162+
163+ 99/02/12 V1.06
164+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
165+ 修正(wdf98.exe)
166+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
167+ ようにした。
168+
169+ 98/05/28 V1.05
170+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
171+ (C) Motif,FVWM
172+
173+ 98/05/17 V1.04
174+ (1) メモリの表示を小さくできるようにした。
175+
176+ 98/03/31 V1.03
177+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
178+ 設定サイズに切り替えるようにした。
179+ (2) ローカルドライブのみ表示できるようにした。
180+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
181+
182+ 97/09/29 V1.02
183+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
184+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
185+
186+ 97/05/01 V1.01
187+ (1) リムーバブルディスクでの問題を修正
188+
189+ 97/02/09 V1.00
190+ 初期バージョン
191+
--- /dev/null
+++ b/wdf/readme/wdf98_108.txt
@@ -0,0 +1,199 @@
1+=====================================================
2+ WinDF98 Ver1.08 2000/08/26更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows98または、WindowsNT 4.0の動作する機種。
22+
23+3. 画面説明
24+
25+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
26+
27+ (1)ディスク情報画面
28+ Drv : ドライブ名
29+ Type : ドライブの種類
30+ FD : フロッピーディスク
31+ HDD : ローカルハードディスク
32+ NETDRV : ネットワーク接続ドライブ
33+ CDROM : CD-ROM
34+ REMOV. : 取り外し可能ドライブ (MOなど)
35+ Total : ディスクの全容量
36+ Used : ディスクの使用している容量
37+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
38+ Capa : ディスクの使用量のパーセント表示
39+ Cluster : ディスクのクラスタサイズ
40+
41+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
42+ また、Used,Capa,Clusterは表示されません。
43+
44+ HDD TOTAL : ローカルハードディスクのみの合計値
45+
46+ (2)メモリ情報画面
47+ MEMORY : メモリ使用状況
48+ 赤はメモリの使用量、緑はメモリの空き容量です。
49+ SWAP : スワップ使用状況
50+ 赤はスワップの使用量、緑はスワップの空き領域です。
51+
52+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
53+    できます。
54+ ・画面の左シングルクリックで、最新情報を表示します。
55+ ・画面を右ドラッグすると目盛り幅を変更することができます。(V1.07)
56+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
57+ 手動で調整してください(^^;
58+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
59+ は橙色で表示されます。(V1.06以降)
60+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
61+ います。V1.05までは、赤+橙色を赤で表示していました。
62+
63+4. メニュー
64+
65+ (1) ファイル
66+ ・印刷プレビュー (V1.08以降)
67+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
68+ 広げないと見にくいでしょう(^^;
69+ ・印刷 (V1.08以降)
70+ 表示されている内容を印刷します。
71+
72+ ・WinDFの終了
73+ WinDFを終了します。
74+
75+ (2) 表示
76+
77+ ○メモリ使用状況
78+ ・チェックがついている場合
79+ メモリの情報が表示されます。
80+ ・チェックがついていない場合
81+ ディスクのの情報が表示されます。
82+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
83+ できます。
84+
85+ ○大きく表示 (V1.04)
86+ ・チェックがついている場合
87+ メモリ使用状況の表示を大きく表示します。
88+ ・チェックがついていない場合
89+ メモリ使用状況の表示を小さく表示します。
90+
91+ ○再表示
92+ 最新の情報を表示します。
93+
94+ ○自動更新
95+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
96+ 最新情報に更新します
97+
98+ ○カーソルがくると逃げる
99+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
100+  移動します。画面がじゃまな場合に使用します。
101+
102+ ○カーソルがくるとアクティブ (V1.05以降)
103+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
104+ アクティブになります。
105+
106+ ○グラフ表示
107+ ・チェックがついている場合
108+ ディスク情報をグラフで表示します。
109+ ・チェックがついていない場合
110+ UNIXのdfコマンドの形式で表示します。
111+ 各パーティションのクラスタサイズも表示します。
112+
113+ ○メガバイト表示
114+ ・チェックがついている場合
115+ ディスクの情報をメガバイト単位で表示します。
116+ (1Mバイト = 1024*1024バイト)
117+ ・チェックがついていない場合
118+ ディスクの情報をバイト単位で表示します。
119+
120+ ○FDも表示
121+ ・チェックがついている場合
122+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
123+ 情報取得に少し時間がかかります。
124+ ・チェックがついていない場合
125+ A:,B:ドライブの情報は表示しません。
126+
127+ ○ローカルドライブのみ表示
128+ ・チェックがついている場合
129+ ネットワークドライブを表示しません。
130+ ・チェックがついていない場合
131+ ネットワークドライブも表示します。
132+
133+ ○設定保存
134+ 上記の設定を保存しておきます。
135+
136+ (3) ヘルプ
137+ ・バージョン情報(WinDF)
138+ WinDFのバージョンを表示します。
139+
140+5. メモリ情報について
141+
142+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
143+ MEMORYを使い切ると、SWAPを使いはじめます。
144+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
145+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
146+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
147+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
148+ SWAPファイルには書き込まれていないようです。(想像)
149+
150+6. 使用上の注意
151+
152+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
153+ このプログラムを使用したことにより、何らかの障害、損害が発生した
154+ としても作者は何の責も負いません(^^;
155+
156+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
157+ 再起動してください(^^;
158+ (または、タスクバーから最大化していったん終了して再度起動する)
159+
160+9. 更新履歴
161+
162+ 00/08/26 V1.08
163+ (1) 画面印刷機能を追加。
164+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
165+ 表示でこける問題を修正。
166+
167+ 99/05/26 V1.07
168+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
169+
170+ 99/02/12 V1.06
171+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
172+ 修正(wdf98.exe)
173+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
174+ ようにした。
175+
176+ 98/05/28 V1.05
177+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
178+ (C) Motif,FVWM
179+ (注)Win98,Win2000だとうまく画面が上にこないようです。
180+
181+ 98/05/17 V1.04
182+ (1) メモリの表示を小さくできるようにした。
183+
184+ 98/03/31 V1.03
185+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
186+ 設定サイズに切り替えるようにした。
187+ (2) ローカルドライブのみ表示できるようにした。
188+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
189+
190+ 97/09/29 V1.02
191+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
192+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
193+
194+ 97/05/01 V1.01
195+ (1) リムーバブルディスクでの問題を修正
196+
197+ 97/02/09 V1.00
198+ 初期バージョン
199+
--- /dev/null
+++ b/wdf/readme/wdf_108.txt
@@ -0,0 +1,200 @@
1+=====================================================
2+ WinDF Ver1.08 2000/08/26更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95または、WindowsNT 3.51または、WindowsNT 4.0の動作する機種。
22+ Windows2000でも動作するようです。
23+
24+3. 画面説明
25+
26+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
27+
28+ (1)ディスク情報画面
29+ Drv : ドライブ名
30+ Type : ドライブの種類
31+ FD : フロッピーディスク
32+ HDD : ローカルハードディスク
33+ NETDRV : ネットワーク接続ドライブ
34+ CDROM : CD-ROM
35+ REMOV. : 取り外し可能ドライブ (MOなど)
36+ Total : ディスクの全容量
37+ Used : ディスクの使用している容量
38+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
39+ Capa : ディスクの使用量のパーセント表示
40+ Cluster : ディスクのクラスタサイズ
41+
42+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
43+ また、Used,Capa,Clusterは表示されません。
44+
45+ HDD TOTAL : ローカルハードディスクのみの合計値
46+
47+ (2)メモリ情報画面
48+ MEMORY : メモリ使用状況
49+ 赤はメモリの使用量、緑はメモリの空き容量です。
50+ SWAP : スワップ使用状況
51+ 赤はスワップの使用量、緑はスワップの空き領域です。
52+
53+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
54+    できます。
55+ ・画面の左シングルクリックで、最新情報を表示します。
56+ ・画面を右ドラッグすると目盛り幅を変更することができます。(V1.07)
57+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
58+ 手動で調整してください(^^;
59+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
60+ は橙色で表示されます。(V1.06以降)
61+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
62+ います。V1.05までは、赤+橙色を赤で表示していました。
63+
64+4. メニュー
65+
66+ (1) ファイル
67+ ・印刷プレビュー (V1.08以降)
68+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
69+ 広げないと見にくいでしょう(^^;
70+ ・印刷 (V1.08以降)
71+ 表示されている内容を印刷します。
72+
73+ ・WinDFの終了
74+ WinDFを終了します。
75+
76+ (2) 表示
77+
78+ ○メモリ使用状況
79+ ・チェックがついている場合
80+ メモリの情報が表示されます。
81+ ・チェックがついていない場合
82+ ディスクのの情報が表示されます。
83+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
84+ できます。
85+
86+ ○大きく表示 (V1.04)
87+ ・チェックがついている場合
88+ メモリ使用状況の表示を大きく表示します。
89+ ・チェックがついていない場合
90+ メモリ使用状況の表示を小さく表示します。
91+
92+ ○再表示
93+ 最新の情報を表示します。
94+
95+ ○自動更新
96+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
97+ 最新情報に更新します
98+
99+ ○カーソルがくると逃げる
100+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
101+  移動します。画面がじゃまな場合に使用します。
102+
103+ ○カーソルがくるとアクティブ (V1.05以降)
104+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
105+ アクティブになります。
106+
107+ ○グラフ表示
108+ ・チェックがついている場合
109+ ディスク情報をグラフで表示します。
110+ ・チェックがついていない場合
111+ UNIXのdfコマンドの形式で表示します。
112+ 各パーティションのクラスタサイズも表示します。
113+
114+ ○メガバイト表示
115+ ・チェックがついている場合
116+ ディスクの情報をメガバイト単位で表示します。
117+ (1Mバイト = 1024*1024バイト)
118+ ・チェックがついていない場合
119+ ディスクの情報をバイト単位で表示します。
120+
121+ ○FDも表示
122+ ・チェックがついている場合
123+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
124+ 情報取得に少し時間がかかります。
125+ ・チェックがついていない場合
126+ A:,B:ドライブの情報は表示しません。
127+
128+ ○ローカルドライブのみ表示
129+ ・チェックがついている場合
130+ ネットワークドライブを表示しません。
131+ ・チェックがついていない場合
132+ ネットワークドライブも表示します。
133+
134+ ○設定保存
135+ 上記の設定を保存しておきます。
136+
137+ (3) ヘルプ
138+ ・バージョン情報(WinDF)
139+ WinDFのバージョンを表示します。
140+
141+5. メモリ情報について
142+
143+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
144+ MEMORYを使い切ると、SWAPを使いはじめます。
145+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
146+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
147+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
148+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
149+ SWAPファイルには書き込まれていないようです。(想像)
150+
151+6. 使用上の注意
152+
153+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
154+ このプログラムを使用したことにより、何らかの障害、損害が発生した
155+ としても作者は何の責も負いません(^^;
156+
157+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
158+ 再起動してください(^^;
159+ (または、タスクバーから最大化していったん終了して再度起動する)
160+
161+9. 更新履歴
162+
163+ 00/08/26 V1.08
164+ (1) 画面印刷機能を追加。
165+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
166+ 表示でこける問題を修正。
167+
168+ 99/05/26 V1.07
169+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
170+
171+ 99/02/12 V1.06
172+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
173+ 修正(wdf98.exe)
174+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
175+ ようにした。
176+
177+ 98/05/28 V1.05
178+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
179+ (C) Motif,FVWM
180+ (注)Win98,Win2000だとうまく画面が上にこないようです。
181+
182+ 98/05/17 V1.04
183+ (1) メモリの表示を小さくできるようにした。
184+
185+ 98/03/31 V1.03
186+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
187+ 設定サイズに切り替えるようにした。
188+ (2) ローカルドライブのみ表示できるようにした。
189+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
190+
191+ 97/09/29 V1.02
192+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
193+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
194+
195+ 97/05/01 V1.01
196+ (1) リムーバブルディスクでの問題を修正
197+
198+ 97/02/09 V1.00
199+ 初期バージョン
200+
--- /dev/null
+++ b/wdf/readme/wdf_110.txt
@@ -0,0 +1,224 @@
1+=====================================================
2+ WinDF Ver1.10 2002/02/23更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95/98/Meまたは、WindowsNT 3.51または、WindowsNT 4.0の動作する機種。
22+ Windows2000, Windows XP でも動作するようです。
23+
24+3. 画面説明
25+
26+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
27+
28+ (1)ディスク情報画面
29+ Drv : ドライブ名
30+ Type : ドライブの種類
31+ FD : フロッピーディスク
32+ HDD : ローカルハードディスク
33+ NETDRV : ネットワーク接続ドライブ
34+ CDROM : CD-ROM
35+ REMOV. : 取り外し可能ドライブ (MOなど)
36+ Total : ディスクの全容量
37+ Used : ディスクの使用している容量
38+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
39+ Capa : ディスクの使用量のパーセント表示
40+ Cluster : ディスクのクラスタサイズ
41+
42+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
43+ また、Used,Capa,Clusterは表示されません。
44+ ・ネットワーク接続ドライブの場合、共有名も表示されます。(V1.10以降)
45+
46+ HDD TOTAL : ローカルハードディスクのみの合計値
47+
48+ (2)メモリ情報画面
49+ MEMORY : メモリ使用状況
50+ 赤はメモリの使用量、緑はメモリの空き容量です。
51+ リモートホスト(Linux)の情報の場合は、橙色がcached、黄色がbuffers
52+ を表しています。(V1.10以降)
53+ SWAP : スワップ使用状況
54+ 赤はスワップの使用量、緑はスワップの空き領域です。
55+
56+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
57+    できます。
58+ ・画面を右ドラッグすると目盛り幅を変更することができます。(V1.07以降)
59+ ・画面の左シングルクリックで、最新情報を表示します。
60+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
61+ 手動で調整してください(^^;
62+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
63+ は橙色で表示されます。(V1.06以降)
64+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
65+ います。V1.05までは、赤+橙色を赤で表示していました。
66+
67+4. メニュー
68+
69+ (1) ファイル
70+ ○印刷プレビュー (V1.08以降)
71+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
72+ 広げないと見にくいでしょう(^^;
73+
74+ ○印刷 (V1.08以降)
75+ 表示されている内容を印刷します。
76+
77+ ○WinDFの終了
78+ WinDFを終了します。
79+
80+ (2) 表示
81+
82+ ○メモリ使用状況
83+ ・チェックがついている場合
84+ メモリの情報が表示されます。
85+ ・チェックがついていない場合
86+ ディスクのの情報が表示されます。
87+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
88+ できます。
89+
90+ ○再表示
91+ 最新の情報を表示します。
92+
93+ ○自動更新
94+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
95+ 最新情報に更新します
96+
97+ ○カーソルがくると逃げる
98+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
99+  移動します。画面がじゃまな場合に使用します。
100+
101+ ○カーソルがくるとアクティブ (V1.05以降)
102+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
103+ アクティブになります。
104+
105+ ○グラフ表示
106+ ・チェックがついている場合
107+ ディスク情報をグラフで表示します。
108+ ・チェックがついていない場合
109+ UNIXのdfコマンドの形式で表示します。
110+ 各パーティションのクラスタサイズも表示します。
111+
112+ ○メガバイト表示
113+ ・チェックがついている場合
114+ ディスクの情報をメガバイト単位で表示します。
115+ (1Mバイト = 1024*1024バイト)
116+ ・チェックがついていない場合
117+ ディスクの情報をバイト単位で表示します。
118+
119+ ○FDも表示
120+ ・チェックがついている場合
121+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
122+ 情報取得に少し時間がかかります。
123+ ・チェックがついていない場合
124+ A:,B:ドライブの情報は表示しません。
125+
126+ ○ローカルドライブのみ表示
127+ ・チェックがついている場合
128+ ネットワークドライブを表示しません。
129+ ・チェックがついていない場合
130+ ネットワークドライブも表示します。
131+
132+ ○設定保存
133+ 上記の設定を保存しておきます。
134+
135+ (3) リモート (V1.10以降)
136+ ○ホスト設定
137+ リモートホストのメモリ情報を見るための設定を行います。
138+
139+ <<監視ホストダイアログ>>
140+ ・監視ホスト
141+ sysinfdが起動しているLinuxマシンのホスト名またはIPアドレスを入力して
142+ [追加]ボタンを押します。
143+ 削除する場合は削除したいホスト名を選択して[削除]ボタンを押します。
144+ ・ポート番号
145+ sysinfdが使用するポート番号(通常9998)を指定してください。
146+ sysinfd にポート番号を指定して起動している場合は、そのポート番号を
147+ 指定します。
148+ (注)ホストごとにポート番号を指定することはできません。
149+
150+ (4) ヘルプ
151+ ○バージョン情報(WinDF)
152+ WinDFのバージョンを表示します。
153+
154+5. メモリ情報について
155+
156+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
157+ MEMORYを使い切ると、SWAPを使いはじめます。
158+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
159+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
160+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
161+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
162+ SWAPファイルには書き込まれていないようです。(想像)
163+
164+6. 使用上の注意
165+
166+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
167+ このプログラムを使用したことにより、何らかの障害、損害が発生した
168+ としても作者は何の責も負いません(^^;
169+
170+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
171+ 再起動してください(^^;
172+ (または、タスクバーから最大化していったん終了して再度起動する)
173+
174+9. 更新履歴
175+
176+ 02/02/23 V1.10
177+ (1) ネットワーク経由でLinuxのメモリ情報を9個まで表示できるようにした。
178+ この機能を使用する場合、Linux側で
179+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
180+ を起動しておく必要があります。
181+ (2) ネットワークドライブの場合共有名を表示するようにした。
182+ (3) 大きく表示する機能を削除。(使ってる人いないよね、多分)
183+
184+ 00/08/26 V1.08
185+ (1) 画面印刷機能を追加。
186+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
187+ 表示でこける問題を修正。
188+
189+ 99/05/26 V1.07
190+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
191+
192+ 99/02/12 V1.06
193+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
194+ 修正(wdf98.exe)
195+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
196+ ようにした。
197+
198+ 98/05/28 V1.05
199+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
200+ (C) Motif,FVWM
201+ (注)Win98,Win2000だとうまく画面が上にこないようです。
202+
203+ 98/05/17 V1.04
204+ (1) メモリの表示を小さくできるようにした。
205+
206+ 98/03/31 V1.03
207+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
208+ 設定サイズに切り替えるようにした。
209+ (2) ローカルドライブのみ表示できるようにした。
210+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
211+
212+ 97/09/29 V1.02
213+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
214+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
215+
216+ 97/05/01 V1.01
217+ (1) リムーバブルディスクでの問題を修正
218+
219+ 97/02/09 V1.00
220+ 初期バージョン
221+
222+- 以上 -
223+
224+
--- /dev/null
+++ b/wdf/readme/wdf_111.txt
@@ -0,0 +1,232 @@
1+=====================================================
2+ WinDF Ver1.11b 2003/04/20更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95/98/Meまたは、WindowsNT 3.51または、WindowsNT 4.0の動作する機種。
22+ Windows2000, Windows XP でも動作するようです。
23+
24+3. 画面説明
25+
26+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
27+
28+ (1)ディスク情報画面
29+ Drv : ドライブ名
30+ Type : ドライブの種類
31+ FD : フロッピーディスク
32+ HDD : ローカルハードディスク
33+ NETDRV : ネットワーク接続ドライブ
34+ CDROM : CD-ROM
35+ REMOV. : 取り外し可能ドライブ (MOなど)
36+ Total : ディスクの全容量
37+ Used : ディスクの使用している容量
38+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
39+ Capa : ディスクの使用量のパーセント表示
40+ Cluster : ディスクのクラスタサイズ
41+
42+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
43+ また、Used,Capa,Clusterは表示されません。
44+ ・ネットワーク接続ドライブの場合、共有名も表示されます。(V1.10以降)
45+
46+ HDD TOTAL : ローカルハードディスクのみの合計値
47+
48+ (2)メモリ情報画面
49+ MEMORY : メモリ使用状況
50+ 赤はメモリの使用量、緑はメモリの空き容量です。
51+ リモートホスト(Linux)の情報の場合は、橙色がcached、黄色がbuffers
52+ を表しています。(V1.10以降)
53+ SWAP : スワップ使用状況
54+ 赤はスワップの使用量、緑はスワップの空き領域です。
55+
56+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
57+    できます。
58+ ・画面上で右ドラッグすると目盛り幅を変更することができます。(V1.07以降)
59+ (右ダブルクリックで通常の幅に戻ります)
60+ ・画面の左シングルクリックで、最新情報を表示します。
61+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
62+ 手動で調整してください(^^;
63+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
64+ は橙色で表示されます。(V1.06以降)
65+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
66+ います。V1.05までは、赤+橙色を赤で表示していました。
67+
68+4. メニュー
69+
70+ (1) ファイル
71+ ○印刷プレビュー (V1.08以降)
72+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
73+ 広げないと見にくいでしょう(^^;
74+
75+ ○印刷 (V1.08以降)
76+ 表示されている内容を印刷します。
77+
78+ ○WinDFの終了
79+ WinDFを終了します。
80+
81+ (2) 表示
82+
83+ ○メモリ使用状況
84+ ・チェックがついている場合
85+ メモリの情報が表示されます。
86+ ・チェックがついていない場合
87+ ディスクのの情報が表示されます。
88+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
89+ できます。
90+
91+ ○再表示
92+ 最新の情報を表示します。
93+
94+ ○自動更新
95+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
96+ 最新情報に更新します
97+
98+ ○カーソルがくると逃げる
99+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
100+  移動します。画面がじゃまな場合に使用します。
101+
102+ ○カーソルがくるとアクティブ (V1.05以降)
103+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
104+ アクティブになります。
105+
106+ ○グラフ表示
107+ ・チェックがついている場合
108+ ディスク情報をグラフで表示します。
109+ ・チェックがついていない場合
110+ UNIXのdfコマンドの形式で表示します。
111+ 各パーティションのクラスタサイズも表示します。
112+
113+ ○メガバイト表示
114+ ・チェックがついている場合
115+ ディスクの情報をメガバイト単位で表示します。
116+ (1Mバイト = 1024*1024バイト)
117+ ・チェックがついていない場合
118+ ディスクの情報をバイト単位で表示します。
119+
120+ ○FDも表示
121+ ・チェックがついている場合
122+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
123+ 情報取得に少し時間がかかります。
124+ ・チェックがついていない場合
125+ A:,B:ドライブの情報は表示しません。
126+
127+ ○ローカルドライブのみ表示
128+ ・チェックがついている場合
129+ ネットワークドライブを表示しません。
130+ ・チェックがついていない場合
131+ ネットワークドライブも表示します。
132+
133+ ○設定保存
134+ 上記の設定を保存しておきます。
135+
136+ (3) リモート (V1.10以降)
137+ ○ホスト設定
138+ リモートホストのメモリ情報を見るための設定を行います。
139+
140+ <<監視ホストダイアログ>>
141+ ・監視ホスト
142+ sysinfdが起動しているLinuxマシンのホスト名またはIPアドレスを入力して
143+ [追加]ボタンを押します。
144+ 削除する場合は削除したいホスト名を選択して[削除]ボタンを押します。
145+ ・ポート番号
146+ sysinfdが使用するポート番号(通常9998)を指定してください。
147+ sysinfd にポート番号を指定して起動している場合は、そのポート番号を
148+ 指定します。
149+ (注)ホストごとにポート番号を指定することはできません。
150+
151+ (4) ヘルプ
152+ ○バージョン情報(WinDF)
153+ WinDFのバージョンを表示します。
154+
155+5. メモリ情報について
156+
157+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
158+ MEMORYを使い切ると、SWAPを使いはじめます。
159+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
160+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
161+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
162+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
163+ SWAPファイルには書き込まれていないようです。(想像)
164+
165+6. 使用上の注意
166+
167+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
168+ このプログラムを使用したことにより、何らかの障害、損害が発生した
169+ としても作者は何の責も負いません(^^;
170+
171+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
172+ 再起動してください(^^;
173+ (または、タスクバーから最大化していったん終了して再度起動する)
174+
175+9. 更新履歴
176+
177+ 03/04/20 V1.11b
178+ (1)UXGA(1600x1200), QXGA(2048x1536)など、横幅1500を越えるときに
179+ メモリ表示のバックが一部白くなる問題を修正
180+
181+ 03/03/31 V1.11
182+ (1) 大容量ディスクでパーセントとグラフが不正になる問題を修正
183+
184+ 02/02/23 V1.10
185+ (1) ネットワーク経由でLinuxのメモリ情報を9個まで表示できるようにした。
186+ この機能を使用する場合、Linux側で
187+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
188+ を起動しておく必要があります。
189+ (2) ネットワークドライブの場合共有名を表示するようにした。
190+ (3) 大きく表示する機能を削除。(使ってる人いないよね、多分)
191+
192+ 00/08/26 V1.08
193+ (1) 画面印刷機能を追加。
194+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
195+ 表示でこける問題を修正。
196+
197+ 99/05/26 V1.07
198+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
199+
200+ 99/02/12 V1.06
201+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
202+ 修正(wdf98.exe)
203+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
204+ ようにした。
205+
206+ 98/05/28 V1.05
207+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
208+ (C) Motif,FVWM
209+ (注)Win98,Win2000だとうまく画面が上にこないようです。
210+
211+ 98/05/17 V1.04
212+ (1) メモリの表示を小さくできるようにした。
213+
214+ 98/03/31 V1.03
215+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
216+ 設定サイズに切り替えるようにした。
217+ (2) ローカルドライブのみ表示できるようにした。
218+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
219+
220+ 97/09/29 V1.02
221+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
222+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
223+
224+ 97/05/01 V1.01
225+ (1) リムーバブルディスクでの問題を修正
226+
227+ 97/02/09 V1.00
228+ 初期バージョン
229+
230+- 以上 -
231+
232+
--- /dev/null
+++ b/wdf/readme/wdf_112.txt
@@ -0,0 +1,244 @@
1+=====================================================
2+ WinDF Ver1.12 2004/01/09更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95/98/Meまたは、WindowsNT 4.0、 Windows2000, Windows XP
22+ の動作する機種。
23+
24+3. 画面説明
25+
26+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
27+
28+ (1)ディスク情報画面
29+ Drv : ドライブ名
30+ Type : ドライブの種類
31+ FD : フロッピーディスク
32+ HDD : ローカルハードディスク
33+ NETDRV : ネットワーク接続ドライブ
34+ CDROM : CD-ROM
35+ REMOV. : 取り外し可能ドライブ (MOなど)
36+ Total : ディスクの全容量
37+ Used : ディスクの使用している容量
38+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
39+ Capa : ディスクの使用量のパーセント表示
40+ Cluster : ディスクのクラスタサイズ
41+
42+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
43+ また、Used,Capa,Clusterは表示されません。
44+ ・ネットワーク接続ドライブの場合、共有名も表示されます。(V1.10以降)
45+
46+ HDD TOTAL : ローカルハードディスクのみの合計値
47+
48+ (2)メモリ情報画面
49+ MEMORY : メモリ使用状況
50+ 赤はメモリの使用量、緑はメモリの空き容量です。
51+ リモートホスト(Linux)の情報の場合は、橙色がcached、黄色がbuffers
52+ を表しています。(V1.10以降)
53+ SWAP : スワップ使用状況
54+ 赤はスワップの使用量、緑はスワップの空き領域です。
55+
56+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
57+    できます。
58+ ・画面上で右ドラッグすると目盛り幅を変更することができます。(V1.07以降)
59+ (右ダブルクリックで通常の幅に戻ります)
60+ ・画面の左シングルクリックで、最新情報を表示します。
61+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
62+ 手動で調整してください(^^;
63+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
64+ は橙色で表示されます。(V1.06以降)
65+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
66+ います。V1.05までは、赤+橙色を赤で表示していました。
67+
68+4. メニュー
69+
70+ (1) ファイル
71+ ○印刷プレビュー (V1.08以降)
72+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
73+ 広げないと見にくいでしょう(^^;
74+
75+ ○印刷 (V1.08以降)
76+ 表示されている内容を印刷します。
77+
78+ ○WinDFの終了
79+ WinDFを終了します。
80+
81+ (2) 表示
82+
83+ ○メモリ使用状況
84+ ・チェックがついている場合
85+ メモリの情報が表示されます。
86+ ・チェックがついていない場合
87+ ディスクのの情報が表示されます。
88+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
89+ できます。
90+
91+ ○再表示
92+ 最新の情報を表示します。
93+
94+ ○自動更新
95+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
96+ 最新情報に更新します
97+
98+ ○カーソルがくると逃げる
99+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
100+  移動します。画面がじゃまな場合に使用します。
101+
102+ ○カーソルがくるとアクティブ (V1.05以降)
103+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
104+ アクティブになります。
105+
106+ ○グラフ表示
107+ ・チェックがついている場合
108+ ディスク情報をグラフで表示します。
109+ ・チェックがついていない場合
110+ UNIXのdfコマンドの形式で表示します。
111+ 各パーティションのクラスタサイズも表示します。
112+
113+ ○ギガバイト表示 (V1.12以降)
114+ ・チェックがついている場合
115+ ディスクの情報をギガバイト単位で表示します。
116+ (1Gバイト = 1024*1024*1024バイト)
117+
118+ ○メガバイト表示
119+ ・チェックがついている場合
120+ ディスクの情報をメガバイト単位で表示します。
121+ (1Mバイト = 1024*1024バイト)
122+
123+ ○キロバイト表示
124+ ・チェックがついている場合
125+ ディスクの情報をメガバイト単位で表示します。
126+ (1Kバイト = 1024バイト)
127+
128+ ○FDも表示
129+ ・チェックがついている場合
130+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
131+ 情報取得に少し時間がかかります。
132+ ・チェックがついていない場合
133+ A:,B:ドライブの情報は表示しません。
134+
135+ ○ローカルドライブのみ表示
136+ ・チェックがついている場合
137+ ネットワークドライブを表示しません。
138+ ・チェックがついていない場合
139+ ネットワークドライブも表示します。
140+
141+ ○設定保存
142+ 上記の設定を保存しておきます。
143+
144+ (3) リモート (V1.10以降)
145+ ○ホスト設定
146+ リモートホストのメモリ情報を見るための設定を行います。
147+
148+ <<監視ホストダイアログ>>
149+ ・監視ホスト
150+ sysinfdが起動しているLinuxマシンのホスト名またはIPアドレスを入力して
151+ [追加]ボタンを押します。
152+ 削除する場合は削除したいホスト名を選択して[削除]ボタンを押します。
153+ ・ポート番号
154+ sysinfdが使用するポート番号(通常9998)を指定してください。
155+ sysinfd にポート番号を指定して起動している場合は、そのポート番号を
156+ 指定します。
157+ (注)ホストごとにポート番号を指定することはできません。
158+
159+ (4) ヘルプ
160+ ○バージョン情報(WinDF)
161+ WinDFのバージョンを表示します。
162+
163+5. メモリ情報について
164+
165+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
166+ MEMORYを使い切ると、SWAPを使いはじめます。
167+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
168+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
169+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
170+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
171+ SWAPファイルには書き込まれていないようです。(想像)
172+
173+6. 使用上の注意
174+
175+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
176+ このプログラムを使用したことにより、何らかの障害、損害が発生した
177+ としても作者は何の責も負いません(^^;
178+
179+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
180+ 再起動してください(^^;
181+ (または、タスクバーから最大化していったん終了して再度起動する)
182+
183+9. 更新履歴
184+
185+ 05/01/09 V1.12
186+ (1) SWAPが2GB以上あると表示が不正になる問題を修正 (03/08/13)
187+ (2) HDD容量をGB単位表示ができるようにした。 (05/01/09)
188+
189+ 03/04/20 V1.11b
190+ (1)UXGA(1600x1200), QXGA(2048x1536)など、横幅1500を越えるときに
191+ メモリ表示のバックが一部白くなる問題を修正
192+
193+ 03/03/31 V1.11
194+ (1) 大容量ディスクでパーセントとグラフが不正になる問題を修正
195+
196+ 02/02/23 V1.10
197+ (1) ネットワーク経由でLinuxのメモリ情報を9個まで表示できるようにした。
198+ この機能を使用する場合、Linux側で
199+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
200+ を起動しておく必要があります。
201+ (2) ネットワークドライブの場合共有名を表示するようにした。
202+ (3) 大きく表示する機能を削除。(使ってる人いないよね、多分)
203+
204+ 00/08/26 V1.08
205+ (1) 画面印刷機能を追加。
206+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
207+ 表示でこける問題を修正。
208+
209+ 99/05/26 V1.07
210+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
211+
212+ 99/02/12 V1.06
213+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
214+ 修正(wdf98.exe)
215+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
216+ ようにした。
217+
218+ 98/05/28 V1.05
219+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
220+ (C) Motif,FVWM
221+ (注)Win98,Win2000だとうまく画面が上にこないようです。
222+
223+ 98/05/17 V1.04
224+ (1) メモリの表示を小さくできるようにした。
225+
226+ 98/03/31 V1.03
227+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
228+ 設定サイズに切り替えるようにした。
229+ (2) ローカルドライブのみ表示できるようにした。
230+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
231+
232+ 97/09/29 V1.02
233+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
234+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
235+
236+ 97/05/01 V1.01
237+ (1) リムーバブルディスクでの問題を修正
238+
239+ 97/02/09 V1.00
240+ 初期バージョン
241+
242+- 以上 -
243+
244+
--- /dev/null
+++ b/wdf/readme/wdf_113.txt
@@ -0,0 +1,254 @@
1+=====================================================
2+ WinDF Ver1.13 2005/10/16更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95/98/Meまたは、WindowsNT 4.0、 Windows2000, Windows XP
22+ の動作する機種。
23+
24+3. 画面説明
25+
26+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
27+
28+ (1)ディスク情報画面
29+ Drv : ドライブ名
30+ Type : ドライブの種類
31+ FD : フロッピーディスク
32+ HDD : ローカルハードディスク
33+ NETDRV : ネットワーク接続ドライブ
34+ CDROM : CD-ROM
35+ REMOV. : 取り外し可能ドライブ (MOなど)
36+ Total : ディスクの全容量
37+ Used : ディスクの使用している容量
38+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
39+ Capa : ディスクの使用量のパーセント表示
40+ Cluster : ディスクのクラスタサイズ
41+
42+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
43+ また、Used,Capa,Clusterは表示されません。
44+ ・ネットワーク接続ドライブの場合、共有名も表示されます。(V1.10以降)
45+
46+ HDD TOTAL : ローカルハードディスクのみの合計値
47+
48+ (2)メモリ情報画面
49+ MEMORY : メモリ使用状況
50+ 赤はメモリの使用量、緑はメモリの空き容量です。
51+ リモートホスト(Linux)の情報の場合は、橙色がcached、黄色がbuffers
52+ を表しています。(V1.10以降)
53+ SWAP : スワップ使用状況
54+ 赤はスワップの使用量、緑はスワップの空き領域です。
55+
56+ リモートホスト(Linux)の場合右側にLoadAverage情報が表示されます。(V1.13以降)
57+ グラフを左ドラックすると好きな位置に移動できます。
58+
59+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
60+    できます。
61+ ・画面上で右ドラッグすると目盛り幅を変更することができます。(V1.07以降)
62+ (右ダブルクリックでデフォルトの幅に戻ります)
63+ ・画面の左シングルクリックで、最新情報を表示します。
64+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
65+ 手動で調整してください(^^;
66+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
67+ は橙色で表示されます。(V1.06以降)
68+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
69+ います。V1.05までは、赤+橙色を赤で表示していました。
70+ ・赤+橙の値がメモリ搭載量を超えるようならメモリを追加したほうが良いです。
71+
72+4. メニュー
73+
74+ (1) ファイル
75+ ○印刷プレビュー (V1.08以降)
76+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
77+ 広げないと見にくいでしょう(^^;
78+
79+ ○印刷 (V1.08以降)
80+ 表示されている内容を印刷します。
81+
82+ ○WinDFの終了
83+ WinDFを終了します。
84+
85+ (2) 表示
86+
87+ ○メモリ使用状況
88+ ・チェックがついている場合
89+ メモリの情報が表示されます。
90+ ・チェックがついていない場合
91+ ディスクのの情報が表示されます。
92+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
93+ できます。
94+
95+ ○再表示
96+ 最新の情報を表示します。
97+
98+ ○自動更新
99+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
100+ 最新情報に更新します
101+
102+ ○カーソルがくると逃げる
103+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
104+  移動します。画面がじゃまな場合に使用します。
105+
106+ ○カーソルがくるとアクティブ (V1.05以降)
107+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
108+ アクティブになります。
109+
110+ ○グラフ表示
111+ ・チェックがついている場合
112+ ディスク情報をグラフで表示します。
113+ ・チェックがついていない場合
114+ UNIXのdfコマンドの形式で表示します。
115+ 各パーティションのクラスタサイズも表示します。
116+
117+ ○ギガバイト表示 (V1.12以降)
118+ ・チェックがついている場合
119+ ディスクの情報をギガバイト単位で表示します。
120+ (1Gバイト = 1024*1024*1024バイト)
121+
122+ ○メガバイト表示
123+ ・チェックがついている場合
124+ ディスクの情報をメガバイト単位で表示します。
125+ (1Mバイト = 1024*1024バイト)
126+
127+ ○キロバイト表示
128+ ・チェックがついている場合
129+ ディスクの情報をメガバイト単位で表示します。
130+ (1Kバイト = 1024バイト)
131+
132+ ○FDも表示
133+ ・チェックがついている場合
134+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
135+ 情報取得に少し時間がかかります。
136+ ・チェックがついていない場合
137+ A:,B:ドライブの情報は表示しません。
138+
139+ ○ローカルドライブのみ表示
140+ ・チェックがついている場合
141+ ネットワークドライブを表示しません。
142+ ・チェックがついていない場合
143+ ネットワークドライブも表示します。
144+
145+ ○設定保存
146+ 上記の設定を保存しておきます。
147+
148+ (3) リモート (V1.10以降)
149+ ○ホスト設定
150+ リモートホストのメモリ情報を見るための設定を行います。
151+
152+ <<監視ホストダイアログ>>
153+ ・監視ホスト
154+ sysinfdが起動しているLinuxマシンのホスト名またはIPアドレスを入力して
155+ [追加]ボタンを押します。
156+ 削除する場合は削除したいホスト名を選択して[削除]ボタンを押します。
157+ ・ポート番号
158+ sysinfdが使用するポート番号(通常9998)を指定してください。
159+ sysinfd にポート番号を指定して起動している場合は、そのポート番号を
160+ 指定します。
161+ (注)ホストごとにポート番号を指定することはできません。
162+
163+ (4) ヘルプ
164+ ○バージョン情報(WinDF)
165+ WinDFのバージョンを表示します。
166+
167+5. メモリ情報について
168+
169+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
170+ MEMORYを使い切ると、SWAPを使いはじめます。
171+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
172+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
173+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
174+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
175+ SWAPファイルには書き込まれていないようです。(想像)
176+
177+6. 使用上の注意
178+
179+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
180+ このプログラムを使用したことにより、何らかの障害、損害が発生した
181+ としても作者は何の責も負いません(^^;
182+
183+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
184+ 再起動してください(^^;
185+ (または、タスクバーから最大化していったん終了して再度起動する)
186+
187+9. 更新履歴
188+
189+ 05/10/09 V1.13
190+ (1) Linuxホストのメモリ情報の横にxload風のLoadAverage情報表示機能を追加 (05/09/19)
191+ (2) メモリ情報が複数ある場合印刷がおかしいので修正。(05/09/19)
192+ (3) メモリ情報のメモリ幅を200MB単位まで縮めれめようにした (05/10/09)
193+ (4) HDD表示である条件の時「秘」が表示されるようにした (05/10/09)
194+
195+ 05/01/09 V1.12
196+ (1) SWAPが2GB以上あると表示が不正になる問題を修正 (03/08/13)
197+ (2) HDD容量をGB単位表示ができるようにした。 (05/01/09)
198+
199+ 03/04/20 V1.11b
200+ (1)UXGA(1600x1200), QXGA(2048x1536)など、横幅1500を越えるときに
201+ メモリ表示のバックが一部白くなる問題を修正
202+
203+ 03/03/31 V1.11
204+ (1) 大容量ディスクでパーセントとグラフが不正になる問題を修正
205+
206+ 02/02/23 V1.10
207+ (1) ネットワーク経由でLinuxのメモリ情報を9個まで表示できるようにした。
208+ この機能を使用する場合、Linux側で
209+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
210+ を起動しておく必要があります。
211+ (2) ネットワークドライブの場合共有名を表示するようにした。
212+ (3) 大きく表示する機能を削除。(使ってる人いないよね、多分)
213+
214+ 00/08/26 V1.08
215+ (1) 画面印刷機能を追加。
216+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
217+ 表示でこける問題を修正。
218+
219+ 99/05/26 V1.07
220+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
221+
222+ 99/02/12 V1.06
223+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
224+ 修正(wdf98.exe)
225+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
226+ ようにした。
227+
228+ 98/05/28 V1.05
229+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
230+ (C) Motif,FVWM
231+ (注)Win98,Win2000だとうまく画面が上にこないようです。
232+
233+ 98/05/17 V1.04
234+ (1) メモリの表示を小さくできるようにした。
235+
236+ 98/03/31 V1.03
237+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
238+ 設定サイズに切り替えるようにした。
239+ (2) ローカルドライブのみ表示できるようにした。
240+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
241+
242+ 97/09/29 V1.02
243+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
244+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
245+
246+ 97/05/01 V1.01
247+ (1) リムーバブルディスクでの問題を修正
248+
249+ 97/02/09 V1.00
250+ 初期バージョン
251+
252+- 以上 -
253+
254+
--- /dev/null
+++ b/wdf/readme/wdf_114.txt
@@ -0,0 +1,270 @@
1+=====================================================
2+ WinDF Ver1.14 2006/10/15更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95/98/Meまたは、WindowsNT 4.0、 Windows2000, Windows XP
22+ の動作する機種。
23+
24+3. 画面説明
25+
26+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
27+
28+ (1)ディスク情報画面
29+ Drv : ドライブ名
30+ Type : ドライブの種類
31+ FD : フロッピーディスク
32+ HDD : ローカルハードディスク
33+ NETDRV : ネットワーク接続ドライブ
34+ CDROM : CD-ROM
35+ REMOV. : 取り外し可能ドライブ (MOなど)
36+ Total : ディスクの全容量
37+ Used : ディスクの使用している容量
38+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
39+ Capa : ディスクの使用量のパーセント表示
40+ Cluster : ディスクのクラスタサイズ
41+
42+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
43+ また、Used,Capa,Clusterは表示されません。
44+ ・ネットワーク接続ドライブの場合、共有名も表示されます。(V1.10以降)
45+
46+ HDD TOTAL : ローカルハードディスクのみの合計値
47+
48+ (2)メモリ情報画面
49+ MEMORY : メモリ使用状況
50+ 赤はメモリの使用量、緑はメモリの空き容量です。
51+ リモートホスト(Linux)の情報の場合は、橙色がcached、黄色がbuffers
52+ を表しています。(V1.10以降)
53+ SWAP : スワップ使用状況
54+ 赤はスワップの使用量、緑はスワップの空き領域です。
55+
56+ リモートホスト(Linux)の場合右側にLoadAverage情報が表示されます。(V1.13以降)
57+ グラフを左ドラックすると好きな位置に移動できます。
58+
59+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
60+    できます。
61+ ・画面上で右ドラッグすると目盛り幅を変更することができます。(V1.07以降)
62+ (右ダブルクリックでデフォルトの幅に戻ります)
63+ ・画面の左シングルクリックで、最新情報を表示します。
64+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
65+ 手動で調整してください(^^;
66+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
67+ は橙色で表示されます。(V1.06以降)
68+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
69+ います。V1.05までは、赤+橙色を赤で表示していました。
70+ ・赤+橙の値がメモリ搭載量を超えるようならメモリを追加したほうが良いです。
71+
72+4. メニュー
73+
74+ (1) ファイル
75+ ○印刷プレビュー (V1.08以降)
76+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
77+ 広げないと見にくいでしょう(^^;
78+
79+ ○印刷 (V1.08以降)
80+ 表示されている内容を印刷します。
81+
82+ ○WinDFの終了
83+ WinDFを終了します。
84+
85+ (2) 表示
86+
87+ ○メモリ使用状況
88+ ・チェックがついている場合
89+ メモリの情報が表示されます。
90+ ・チェックがついていない場合
91+ ディスクのの情報が表示されます。
92+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
93+ できます。
94+
95+ ○再表示
96+ 最新の情報を表示します。
97+
98+ ○自動更新
99+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
100+ 最新情報に更新します
101+
102+ ○カーソルがくると逃げる
103+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
104+ 移動します。画面がじゃまな場合に使用します。
105+
106+ ○カーソルがくるとアクティブ (V1.05以降)
107+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
108+ アクティブになります。
109+
110+ ○ピーク値の表示 (V1.14以降)
111+ ・チェックをいれると、メモリとスワップ使用量のピーク値を
112+ 表示します。
113+
114+ ○ピーク値のクリア (V1.14以降)
115+ ・ピーク値をクリアします。
116+
117+ ○グラフ表示
118+ ・チェックがついている場合
119+ ディスク情報をグラフで表示します。
120+ ・チェックがついていない場合
121+ UNIXのdfコマンドの形式で表示します。
122+ 各パーティションのクラスタサイズも表示します。
123+
124+ ○ギガバイト表示 (V1.12以降)
125+ ・チェックがついている場合
126+ ディスクの情報をギガバイト単位で表示します。
127+ (1Gバイト = 1024*1024*1024バイト)
128+
129+ ○メガバイト表示
130+ ・チェックがついている場合
131+ ディスクの情報をメガバイト単位で表示します。
132+ (1Mバイト = 1024*1024バイト)
133+
134+ ○キロバイト表示
135+ ・チェックがついている場合
136+ ディスクの情報をメガバイト単位で表示します。
137+ (1Kバイト = 1024バイト)
138+
139+ ○FDも表示
140+ ・チェックがついている場合
141+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
142+ 情報取得に少し時間がかかります。
143+ ・チェックがついていない場合
144+ A:,B:ドライブの情報は表示しません。
145+
146+ ○ローカルドライブのみ表示
147+ ・チェックがついている場合
148+ ネットワークドライブを表示しません。
149+ ・チェックがついていない場合
150+ ネットワークドライブも表示します。
151+
152+ ○設定保存
153+ 上記の設定を保存しておきます。
154+
155+ (3) リモート (V1.10以降)
156+ ○ホスト設定
157+ リモートホストのメモリ情報を見るための設定を行います。
158+ (注)この機能を使用する場合、Linux側で
159+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
160+ を起動しておく必要があります。
161+
162+ <<監視ホストダイアログ>>
163+ ・監視ホスト
164+ sysinfdが起動しているLinuxマシンのホスト名またはIPアドレスを入力して
165+ [追加]ボタンを押します。
166+ 削除する場合は削除したいホスト名を選択して[削除]ボタンを押します。
167+ ・ポート番号
168+ sysinfdが使用するポート番号(通常9998)を指定してください。
169+ sysinfd にポート番号を指定して起動している場合は、そのポート番号を
170+ 指定します。
171+ (注)ホストごとにポート番号を指定することはできません。
172+
173+ (4) ヘルプ
174+ ○バージョン情報(WinDF)
175+ WinDFのバージョンを表示します。
176+
177+5. メモリ情報について
178+
179+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
180+ MEMORYを使い切ると、SWAPを使いはじめます。
181+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
182+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
183+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
184+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
185+ SWAPファイルには書き込まれていないようです。(想像)
186+
187+6. 使用上の注意
188+
189+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
190+ このプログラムを使用したことにより、何らかの障害、損害が発生した
191+ としても作者は何の責も負いません(^^;
192+
193+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
194+ 再起動してください(^^;
195+ (または、タスクバーから最大化していったん終了して再度起動する)
196+
197+9. 更新履歴
198+
199+ 06/07/09 V1.14
200+ (1) 逃げる機能でリモートホストが表示されないのを修正 (06/07/09)
201+ (2) ちらつき防止 (06/07/09)
202+ (3) リモートホストが落ちているときにハンドルの開放もれがあったのを修正 (06/07/24)
203+ (4) メモリ使用量のピーク値を表示できるようにした (06/10/09)
204+
205+ 05/10/09 V1.13
206+ (1) Linuxホストのメモリ情報の横にxload風のLoadAverage情報表示機能を追加 (05/09/19)
207+ (2) メモリ情報が複数ある場合印刷がおかしいので修正。(05/09/19)
208+ (3) メモリ情報のメモリ幅を200MB単位まで縮めれめようにした (05/10/09)
209+ (4) HDD表示で、ある条件の時「秘」が表示されるようにした (05/10/09)
210+
211+ 05/01/09 V1.12
212+ (1) SWAPが2GB以上あると表示が不正になる問題を修正 (03/08/13)
213+ (2) HDD容量をGB単位表示ができるようにした。 (05/01/09)
214+
215+ 03/04/20 V1.11b
216+ (1)UXGA(1600x1200), QXGA(2048x1536)など、横幅1500を越えるときに
217+ メモリ表示のバックが一部白くなる問題を修正
218+
219+ 03/03/31 V1.11
220+ (1) 大容量ディスクでパーセントとグラフが不正になる問題を修正
221+
222+ 02/02/23 V1.10
223+ (1) ネットワーク経由でLinuxのメモリ情報を9個まで表示できるようにした。
224+ この機能を使用する場合、Linux側で
225+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
226+ を起動しておく必要があります。
227+ (2) ネットワークドライブの場合共有名を表示するようにした。
228+ (3) 大きく表示する機能を削除。(使ってる人いないよね、多分)
229+
230+ 00/08/26 V1.08
231+ (1) 画面印刷機能を追加。
232+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
233+ 表示でこける問題を修正。
234+
235+ 99/05/26 V1.07
236+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
237+
238+ 99/02/12 V1.06
239+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
240+ 修正(wdf98.exe)
241+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
242+ ようにした。
243+
244+ 98/05/28 V1.05
245+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
246+ (C) Motif,FVWM
247+ (注)Win98,Win2000だとうまく画面が上にこないようです。
248+
249+ 98/05/17 V1.04
250+ (1) メモリの表示を小さくできるようにした。
251+
252+ 98/03/31 V1.03
253+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
254+ 設定サイズに切り替えるようにした。
255+ (2) ローカルドライブのみ表示できるようにした。
256+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
257+
258+ 97/09/29 V1.02
259+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
260+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
261+
262+ 97/05/01 V1.01
263+ (1) リムーバブルディスクでの問題を修正
264+
265+ 97/02/09 V1.00
266+ 初期バージョン
267+
268+- 以上 -
269+
270+
--- /dev/null
+++ b/wdf/readme/wdf_115.txt
@@ -0,0 +1,274 @@
1+=====================================================
2+ WinDF Ver1.15 2010/02/20更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows2000, Windows XP, Windows Vista, Windows 7 の動作する機種。
22+
23+3. 画面説明
24+
25+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
26+
27+ (1)ディスク情報画面
28+ Drv : ドライブ名
29+ Type : ドライブの種類
30+ FD : フロッピーディスク
31+ HDD : ローカルハードディスク
32+ NETDRV : ネットワーク接続ドライブ
33+ CDROM : CD-ROM
34+ REMOV. : 取り外し可能ドライブ (MOなど)
35+ Total : ディスクの全容量
36+ Used : ディスクの使用している容量
37+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
38+ Capa : ディスクの使用量のパーセント表示
39+ Cluster : ディスクのクラスタサイズ
40+
41+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
42+ また、Used,Capa,Clusterは表示されません。
43+ ・ネットワーク接続ドライブの場合、共有名も表示されます。(V1.10以降)
44+
45+ HDD TOTAL : ローカルハードディスクのみの合計値
46+
47+ (2)メモリ情報画面
48+ MEMORY : メモリ使用状況
49+ 赤はメモリの使用量、緑はメモリの空き容量です。
50+ リモートホスト(Linux)の情報の場合は、橙色がcached、黄色がbuffers
51+ を表しています。(V1.10以降)
52+ SWAP : スワップ使用状況
53+ 赤はスワップの使用量、緑はスワップの空き領域です。
54+
55+ リモートホスト(Linux)の場合右側にLoadAverage情報が表示されます。(V1.13以降)
56+ グラフを左ドラックすると好きな位置に移動できます。
57+
58+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
59+    できます。
60+ ・画面上で右ドラッグすると目盛り幅を変更することができます。(V1.07以降)
61+ (右ダブルクリックでデフォルトの幅に戻ります)
62+ ・画面の左シングルクリックで、最新情報を表示します。
63+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
64+ 手動で調整してください(^^;
65+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
66+ は橙色で表示されます。(V1.06以降)
67+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
68+ います。V1.05までは、赤+橙色を赤で表示していました。
69+ ・赤+橙の値がメモリ搭載量を超えるようならメモリを追加したほうが良いです。
70+
71+4. メニュー
72+
73+ (1) ファイル
74+ ○印刷プレビュー (V1.08以降)
75+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
76+ 広げないと見にくいでしょう(^^;
77+
78+ ○印刷 (V1.08以降)
79+ 表示されている内容を印刷します。
80+
81+ ○WinDFの終了
82+ WinDFを終了します。
83+
84+ (2) 表示
85+
86+ ○メモリ使用状況
87+ ・チェックがついている場合
88+ メモリの情報が表示されます。
89+ ・チェックがついていない場合
90+ ディスクのの情報が表示されます。
91+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
92+ できます。
93+
94+ ○再表示
95+ 最新の情報を表示します。
96+
97+ ○自動更新
98+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
99+ 最新情報に更新します
100+
101+ ○カーソルがくると逃げる
102+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
103+ 移動します。画面がじゃまな場合に使用します。
104+
105+ ○カーソルがくるとアクティブ (V1.05以降)
106+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
107+ アクティブになります。
108+
109+ ○ピーク値の表示 (V1.14以降)
110+ ・チェックをいれると、メモリとスワップ使用量のピーク値を
111+ 表示します。
112+
113+ ○ピーク値のクリア (V1.14以降)
114+ ・ピーク値をクリアします。
115+
116+ ○グラフ表示
117+ ・チェックがついている場合
118+ ディスク情報をグラフで表示します。
119+ ・チェックがついていない場合
120+ UNIXのdfコマンドの形式で表示します。
121+ 各パーティションのクラスタサイズも表示します。
122+
123+ ○ギガバイト表示 (V1.12以降)
124+ ・チェックがついている場合
125+ ディスクの情報をギガバイト単位で表示します。
126+ (1Gバイト = 1024*1024*1024バイト)
127+
128+ ○メガバイト表示
129+ ・チェックがついている場合
130+ ディスクの情報をメガバイト単位で表示します。
131+ (1Mバイト = 1024*1024バイト)
132+
133+ ○キロバイト表示
134+ ・チェックがついている場合
135+ ディスクの情報をメガバイト単位で表示します。
136+ (1Kバイト = 1024バイト)
137+
138+ ○FDも表示
139+ ・チェックがついている場合
140+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
141+ 情報取得に少し時間がかかります。
142+ ・チェックがついていない場合
143+ A:,B:ドライブの情報は表示しません。
144+
145+ ○ローカルドライブのみ表示
146+ ・チェックがついている場合
147+ ネットワークドライブを表示しません。
148+ ・チェックがついていない場合
149+ ネットワークドライブも表示します。
150+
151+ ○設定保存
152+ 上記の設定を保存しておきます。
153+
154+ (3) リモート (V1.10以降)
155+ ○ホスト設定
156+ リモートホストのメモリ情報を見るための設定を行います。
157+ (注)この機能を使用する場合、Linux側で
158+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
159+ を起動しておく必要があります。
160+
161+ <<監視ホストダイアログ>>
162+ ・監視ホスト
163+ sysinfdが起動しているLinuxマシンのホスト名またはIPアドレスを入力して
164+ [追加]ボタンを押します。
165+ 削除する場合は削除したいホスト名を選択して[削除]ボタンを押します。
166+ ・ポート番号
167+ sysinfdが使用するポート番号(通常9998)を指定してください。
168+ sysinfd にポート番号を指定して起動している場合は、そのポート番号を
169+ 指定します。
170+ (注)ホストごとにポート番号を指定することはできません。
171+
172+ (4) ヘルプ
173+ ○バージョン情報(WinDF)
174+ WinDFのバージョンを表示します。
175+
176+5. メモリ情報について
177+
178+ WindowsNT系では、SWAPの使用量が仮想メモリの使用量のようです。
179+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
180+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
181+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
182+ SWAPファイルには書き込まれていないようです。(想像)
183+
184+6. 使用上の注意
185+
186+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
187+ このプログラムを使用したことにより、何らかの障害、損害が発生した
188+ としても作者は何の責も負いません(^^;
189+
190+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
191+ 再起動してください(^^;
192+ (または、タスクバーから最大化していったん終了して再度起動する)
193+
194+9. 更新履歴
195+
196+ 10/02/20 V1.15
197+ (1) Windows Vista, Windows 7で画面サイズ調整方法を訂正 (09/05/17)
198+ (2) 2GB超のメモリで正しく表示されない問題を修正 (09/07/05)
199+ これにより、Windows95系のサポートを中止
200+ (3) 500MBメモリスケールを追加 (09/07/06)
201+ (4) デフォルトのメモリスケールを搭載メモリを見て決定 (10/02/20)
202+
203+ 06/07/09 V1.14
204+ (1) 逃げる機能でリモートホストが表示されないのを修正 (06/07/09)
205+ (2) ちらつき防止 (06/07/09)
206+ (3) リモートホストが落ちているときにハンドルの開放もれがあったのを修正 (06/07/24)
207+ (4) メモリ使用量のピーク値を表示できるようにした (06/10/09)
208+
209+ 05/10/09 V1.13
210+ (1) Linuxホストのメモリ情報の横にxload風のLoadAverage情報表示機能を追加 (05/09/19)
211+ (2) メモリ情報が複数ある場合印刷がおかしいので修正。(05/09/19)
212+ (3) メモリ情報のメモリ幅を200MB単位まで縮めれめようにした (05/10/09)
213+ (4) HDD表示で、ある条件の時「秘」が表示されるようにした (05/10/09)
214+
215+ 05/01/09 V1.12
216+ (1) SWAPが2GB以上あると表示が不正になる問題を修正 (03/08/13)
217+ (2) HDD容量をGB単位表示ができるようにした。 (05/01/09)
218+
219+ 03/04/20 V1.11b
220+ (1)UXGA(1600x1200), QXGA(2048x1536)など、横幅1500を越えるときに
221+ メモリ表示のバックが一部白くなる問題を修正
222+
223+ 03/03/31 V1.11
224+ (1) 大容量ディスクでパーセントとグラフが不正になる問題を修正
225+
226+ 02/02/23 V1.10
227+ (1) ネットワーク経由でLinuxのメモリ情報を9個まで表示できるようにした。
228+ この機能を使用する場合、Linux側で
229+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
230+ を起動しておく必要があります。
231+ (2) ネットワークドライブの場合共有名を表示するようにした。
232+ (3) 大きく表示する機能を削除。(使ってる人いないよね、多分)
233+
234+ 00/08/26 V1.08
235+ (1) 画面印刷機能を追加。
236+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
237+ 表示でこける問題を修正。
238+
239+ 99/05/26 V1.07
240+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
241+
242+ 99/02/12 V1.06
243+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
244+ 修正(wdf98.exe)
245+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
246+ ようにした。
247+
248+ 98/05/28 V1.05
249+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
250+ (C) Motif,FVWM
251+ (注)Win98,Win2000だとうまく画面が上にこないようです。
252+
253+ 98/05/17 V1.04
254+ (1) メモリの表示を小さくできるようにした。
255+
256+ 98/03/31 V1.03
257+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
258+ 設定サイズに切り替えるようにした。
259+ (2) ローカルドライブのみ表示できるようにした。
260+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
261+
262+ 97/09/29 V1.02
263+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
264+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
265+
266+ 97/05/01 V1.01
267+ (1) リムーバブルディスクでの問題を修正
268+
269+ 97/02/09 V1.00
270+ 初期バージョン
271+
272+- 以上 -
273+
274+
--- /dev/null
+++ b/wdf/readme/wdf_116.txt
@@ -0,0 +1,279 @@
1+=====================================================
2+ WinDF Ver1.16 2010/07/10更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows2000, Windows XP, Windows Vista, Windows 7 の動作する機種。
22+
23+3. 画面説明
24+
25+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
26+
27+ (1)ディスク情報画面
28+ Drv : ドライブ名
29+ Type : ドライブの種類
30+ FD : フロッピーディスク
31+ HDD : ローカルハードディスク
32+ NETDRV : ネットワーク接続ドライブ
33+ CDROM : CD-ROM
34+ REMOV. : 取り外し可能ドライブ (MOなど)
35+ Total : ディスクの全容量
36+ Used : ディスクの使用している容量
37+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
38+ Capa : ディスクの使用量のパーセント表示
39+ Cluster : ディスクのクラスタサイズ
40+
41+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
42+ また、Used,Capa,Clusterは表示されません。
43+ ・ネットワーク接続ドライブの場合、共有名も表示されます。(V1.10以降)
44+
45+ HDD TOTAL : ローカルハードディスクのみの合計値
46+
47+ (2)メモリ情報画面
48+ MEMORY : メモリ使用状況
49+ 赤はメモリの使用量、緑はメモリの空き容量です。
50+ リモートホスト(Linux)の情報の場合は、橙色がcached、黄色がbuffers
51+ を表しています。(V1.10以降)
52+ SWAP : スワップ使用状況
53+ 赤はスワップの使用量、緑はスワップの空き領域です。
54+
55+ リモートホスト(Linux)の場合右側にLoadAverage情報が表示されます。(V1.13以降)
56+ グラフを左ドラックすると好きな位置に移動できます。
57+
58+ (注)・画面を左ダブルクリックするとメモリ画面とディスク画面を切り替えることが
59+    できます。
60+ ・画面上で右ドラッグすると目盛り幅を変更することができます。(V1.07以降)
61+ (右ダブルクリックでデフォルトの幅に戻ります)
62+ ・画面の左シングルクリックで、最新情報を表示します。
63+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
64+ 手動で調整してください(^^;
65+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
66+ は橙色で表示されます。(V1.06以降)
67+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
68+ います。V1.05までは、赤+橙色を赤で表示していました。
69+ ・赤+橙の値がメモリ搭載量を超えるようならメモリを追加したほうが良いです。
70+
71+4. メニュー
72+
73+ (1) ファイル
74+ ○印刷プレビュー (V1.08以降)
75+ 印刷の際のプレビューを確認できます。が画面が小さいのでその都度
76+ 広げないと見にくいでしょう(^^;
77+
78+ ○印刷 (V1.08以降)
79+ 表示されている内容を印刷します。
80+
81+ ○WinDFの終了
82+ WinDFを終了します。
83+
84+ (2) 表示
85+
86+ ○メモリ使用状況
87+ ・チェックがついている場合
88+ メモリの情報が表示されます。
89+ ・チェックがついていない場合
90+ ディスクのの情報が表示されます。
91+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
92+ できます。
93+
94+ ○再表示
95+ 最新の情報を表示します。
96+
97+ ○自動更新
98+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
99+ 最新情報に更新します
100+
101+ ○カーソルがくると逃げる
102+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
103+ 移動します。画面がじゃまな場合に使用します。
104+
105+ ○カーソルがくるとアクティブ (V1.05以降)
106+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
107+ アクティブになります。
108+
109+ ○ピーク値の表示 (V1.14以降)
110+ ・チェックをいれると、メモリとスワップ使用量のピーク値を
111+ 表示します。
112+
113+ ○ピーク値のクリア (V1.14以降)
114+ ・ピーク値をクリアします。
115+
116+ ○グラフ表示
117+ ・チェックがついている場合
118+ ディスク情報をグラフで表示します。
119+ ・チェックがついていない場合
120+ UNIXのdfコマンドの形式で表示します。
121+ 各パーティションのクラスタサイズも表示します。
122+
123+ ○ギガバイト表示 (V1.12以降)
124+ ・チェックがついている場合
125+ ディスクの情報をギガバイト単位で表示します。
126+ (1Gバイト = 1024*1024*1024バイト)
127+
128+ ○メガバイト表示
129+ ・チェックがついている場合
130+ ディスクの情報をメガバイト単位で表示します。
131+ (1Mバイト = 1024*1024バイト)
132+
133+ ○キロバイト表示
134+ ・チェックがついている場合
135+ ディスクの情報をメガバイト単位で表示します。
136+ (1Kバイト = 1024バイト)
137+
138+ ○FDも表示
139+ ・チェックがついている場合
140+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
141+ 情報取得に少し時間がかかります。
142+ ・チェックがついていない場合
143+ A:,B:ドライブの情報は表示しません。
144+
145+ ○ローカルドライブのみ表示
146+ ・チェックがついている場合
147+ ネットワークドライブを表示しません。
148+ ・チェックがついていない場合
149+ ネットワークドライブも表示します。
150+
151+ ○設定保存
152+ 上記の設定を保存しておきます。
153+
154+ (3) リモート (V1.10以降)
155+ ○ホスト設定
156+ リモートホストのメモリ情報を見るための設定を行います。
157+ (注)この機能を使用する場合、Linux側で
158+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
159+ を起動しておく必要があります。
160+
161+ <<監視ホストダイアログ>>
162+ ・監視ホスト
163+ sysinfdが起動しているLinuxマシンのホスト名またはIPアドレスを入力して
164+ [追加]ボタンを押します。
165+ 削除する場合は削除したいホスト名を選択して[削除]ボタンを押します。
166+ ・ポート番号
167+ sysinfdが使用するポート番号(通常9998)を指定してください。
168+ sysinfd にポート番号を指定して起動している場合は、そのポート番号を
169+ 指定します。
170+ (注)ホストごとにポート番号を指定することはできません。
171+
172+ (4) ヘルプ
173+ ○バージョン情報(WinDF)
174+ WinDFのバージョンを表示します。
175+
176+5. メモリ情報について
177+
178+ WindowsNT系では、SWAPの使用量が仮想メモリの使用量のようです。
179+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
180+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
181+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
182+ SWAPファイルには書き込まれていないようです。(想像)
183+
184+6. 使用上の注意
185+
186+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
187+ このプログラムを使用したことにより、何らかの障害、損害が発生した
188+ としても作者は何の責も負いません(^^;
189+
190+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
191+ 再起動してください(^^;
192+ (または、タスクバーから最大化していったん終了して再度起動する)
193+
194+9. 更新履歴
195+
196+ 10/06/13 V1.16
197+ (1) HDDのトータル容量が2TB以上の場合に「HDD TOTAL」が表示されない
198+ 問題を修正 (10/06/13)
199+ (2) HDDの容量が2TB以上のHDDに対応 (10/07/10)
200+
201+ 10/02/20 V1.15
202+ (1) Windows Vista, Windows 7で画面サイズ調整方法を訂正 (09/05/17)
203+ (2) 2GB超のメモリで正しく表示されない問題を修正 (09/07/05)
204+ これにより、Windows95系のサポートを中止
205+ (3) 500MBメモリスケールを追加 (09/07/06)
206+ (4) デフォルトのメモリスケールを搭載メモリを見て決定 (10/02/20)
207+
208+ 06/07/09 V1.14
209+ (1) 逃げる機能でリモートホストが表示されないのを修正 (06/07/09)
210+ (2) ちらつき防止 (06/07/09)
211+ (3) リモートホストが落ちているときにハンドルの開放もれがあったのを修正 (06/07/24)
212+ (4) メモリ使用量のピーク値を表示できるようにした (06/10/09)
213+
214+ 05/10/09 V1.13
215+ (1) Linuxホストのメモリ情報の横にxload風のLoadAverage情報表示機能を追加 (05/09/19)
216+ (2) メモリ情報が複数ある場合印刷がおかしいので修正。(05/09/19)
217+ (3) メモリ情報のメモリ幅を200MB単位まで縮めれめようにした (05/10/09)
218+ (4) HDD表示で、ある条件の時「秘」が表示されるようにした (05/10/09)
219+
220+ 05/01/09 V1.12
221+ (1) SWAPが2GB以上あると表示が不正になる問題を修正 (03/08/13)
222+ (2) HDD容量をGB単位表示ができるようにした。 (05/01/09)
223+
224+ 03/04/20 V1.11b
225+ (1)UXGA(1600x1200), QXGA(2048x1536)など、横幅1500を越えるときに
226+ メモリ表示のバックが一部白くなる問題を修正
227+
228+ 03/03/31 V1.11
229+ (1) 大容量ディスクでパーセントとグラフが不正になる問題を修正
230+
231+ 02/02/23 V1.10
232+ (1) ネットワーク経由でLinuxのメモリ情報を9個まで表示できるようにした。
233+ この機能を使用する場合、Linux側で
234+ sysinfd (http://www2d.biglobe.ne.jp/~oga/pc/linux/ltool.html)
235+ を起動しておく必要があります。
236+ (2) ネットワークドライブの場合共有名を表示するようにした。
237+ (3) 大きく表示する機能を削除。(使ってる人いないよね、多分)
238+
239+ 00/08/26 V1.08
240+ (1) 画面印刷機能を追加。
241+ (2) WinNTでCD-ROMドライブに音楽CDを入れていると、ディスク情報
242+ 表示でこける問題を修正。
243+
244+ 99/05/26 V1.07
245+ (1) メモリ表示の目盛り幅を右ドラッグで変更できるようにした。
246+
247+ 99/02/12 V1.06
248+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
249+ 修正(wdf98.exe)
250+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
251+ ようにした。
252+
253+ 98/05/28 V1.05
254+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
255+ (C) Motif,FVWM
256+ (注)Win98,Win2000だとうまく画面が上にこないようです。
257+
258+ 98/05/17 V1.04
259+ (1) メモリの表示を小さくできるようにした。
260+
261+ 98/03/31 V1.03
262+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
263+ 設定サイズに切り替えるようにした。
264+ (2) ローカルドライブのみ表示できるようにした。
265+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
266+
267+ 97/09/29 V1.02
268+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
269+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
270+
271+ 97/05/01 V1.01
272+ (1) リムーバブルディスクでの問題を修正
273+
274+ 97/02/09 V1.00
275+ 初期バージョン
276+
277+- 以上 -
278+
279+
Binary files /dev/null and b/wdf/rel98/wdf98.exe differ
Binary files /dev/null and b/wdf/release/wdf.exe differ
Binary files /dev/null and b/wdf/res/toolbar.bmp differ
Binary files /dev/null and b/wdf/res/wdf.ico differ
--- /dev/null
+++ b/wdf/res/wdf.rc2
@@ -0,0 +1,13 @@
1+//
2+// WDF.RC2 - resources Microsoft Visual C++ does not edit directly
3+//
4+
5+#ifdef APSTUDIO_INVOKED
6+ #error this file is not editable by Microsoft Visual C++
7+#endif //APSTUDIO_INVOKED
8+
9+
10+/////////////////////////////////////////////////////////////////////////////
11+// Add manually edited resources here...
12+
13+/////////////////////////////////////////////////////////////////////////////
Binary files /dev/null and b/wdf/res/wdfdoc.ico differ
--- /dev/null
+++ b/wdf/resource.h
@@ -0,0 +1,42 @@
1+//{{NO_DEPENDENCIES}}
2+// Microsoft Developer Studio generated include file.
3+// Used by wdf.rc
4+//
5+#define IDD_ABOUTBOX 100
6+#define IDR_MAINFRAME 128
7+#define IDR_WDFTYPE 129
8+#define IDD_HOSTSETUP 130
9+#define IDC_EDIT_URL 1002
10+#define IDC_LIST1 1003
11+#define IDC_EDIT_HOST 1004
12+#define IDC_BUT_ADD 1005
13+#define IDC_BUT_DEL 1006
14+#define IDC_EDIT_PORT 1007
15+#define ID_FMT_GRAPH 32771
16+#define ID_FMT_MEGA 32772
17+#define ID_FMT_ALL 32773
18+#define ID_FMT_REDRAW 32774
19+#define ID_FMT_MEM 32775
20+#define ID_FMT_AUTO 32776
21+#define ID_FMT_SAVE 32777
22+#define ID_LOCAL 32778
23+#define ID_FMT_MOVEF 32779
24+#define ID_FMT_MEMBIG 32780
25+#define ID_FMT_ACTIVE 32781
26+#define ID_APP_HOSTSETUP 32783
27+#define ID_FMT_GIGA 32784
28+#define ID_FMT_KIRO 32785
29+#define ID_FMT_MAX 32786
30+#define ID_FMT_MAXCLEAR 32787
31+
32+// Next default values for new objects
33+//
34+#ifdef APSTUDIO_INVOKED
35+#ifndef APSTUDIO_READONLY_SYMBOLS
36+#define _APS_3D_CONTROLS 1
37+#define _APS_NEXT_RESOURCE_VALUE 131
38+#define _APS_NEXT_COMMAND_VALUE 32788
39+#define _APS_NEXT_CONTROL_VALUE 1008
40+#define _APS_NEXT_SYMED_VALUE 103
41+#endif
42+#endif
--- /dev/null
+++ b/wdf/stdafx.cpp
@@ -0,0 +1,6 @@
1+// stdafx.cpp : 標準インクルードファイルを含むソース ファイル
2+// wdf.pch : 生成されるプリコンパイル済ヘッダー
3+// stdafx.obj : 生成されるプリコンパイル済タイプ情報
4+
5+#include "stdafx.h"
6+
--- /dev/null
+++ b/wdf/stdafx.h
@@ -0,0 +1,14 @@
1+// stdafx.h : 標準のシステム インクルード ファイル、
2+// または参照回数が多く、かつあまり変更されない
3+// プロジェクト専用のインクルード ファイルを記述します。
4+//
5+
6+#define VC_EXTRALEAN // Windows ヘッダーから殆ど使用されないスタッフを除外します。
7+
8+#include <afxwin.h> // MFC の標準コンポーネント
9+#include <afxext.h> // MFC の拡張部分
10+
11+#ifndef _AFX_NO_AFXCMN_SUPPORT
12+#include <afxcmn.h> // MFC の Windows 95 コモン コントロール サポート
13+#endif // _AFX_NO_AFXCMN_SUPPORT
14+
--- /dev/null
+++ b/wdf/wdf.clw
@@ -0,0 +1,160 @@
1+; CLW ファイルは MFC ClassWizard の情報を含んでいます。
2+
3+[General Info]
4+Version=1
5+LastClass=CMainFrame
6+LastTemplate=CDialog
7+NewFileInclude1=#include "stdafx.h"
8+NewFileInclude2=#include "wdf.h"
9+LastPage=0
10+
11+ClassCount=7
12+Class1=CWdfApp
13+Class2=CWdfDoc
14+Class3=CWdfView
15+Class4=CMainFrame
16+
17+ResourceCount=3
18+Resource1=IDR_MAINFRAME
19+Class5=CAboutDlg
20+Class6=SysInfCl
21+Resource2=IDD_ABOUTBOX
22+Class7=CHostSetup
23+Resource3=IDD_HOSTSETUP
24+
25+[CLS:CWdfApp]
26+Type=0
27+HeaderFile=wdf.h
28+ImplementationFile=wdf.cpp
29+Filter=N
30+
31+[CLS:CWdfDoc]
32+Type=0
33+HeaderFile=wdfDoc.h
34+ImplementationFile=wdfDoc.cpp
35+Filter=N
36+
37+[CLS:CWdfView]
38+Type=0
39+HeaderFile=wdfView.h
40+ImplementationFile=wdfView.cpp
41+Filter=C
42+LastObject=CWdfView
43+BaseClass=CView
44+VirtualFilter=VWC
45+
46+[CLS:CMainFrame]
47+Type=0
48+HeaderFile=MainFrm.h
49+ImplementationFile=MainFrm.cpp
50+Filter=T
51+LastObject=ID_FMT_MAXCLEAR
52+BaseClass=CFrameWnd
53+VirtualFilter=fWC
54+
55+
56+
57+[CLS:CAboutDlg]
58+Type=0
59+HeaderFile=wdf.cpp
60+ImplementationFile=wdf.cpp
61+Filter=D
62+LastObject=CAboutDlg
63+
64+[DLG:IDD_ABOUTBOX]
65+Type=1
66+Class=CAboutDlg
67+ControlCount=5
68+Control1=IDC_STATIC,static,1342177283
69+Control2=IDC_STATIC,static,1342308481
70+Control3=IDC_STATIC,static,1342308353
71+Control4=IDOK,button,1342373889
72+Control5=IDC_EDIT_URL,edit,1342244869
73+
74+[MNU:IDR_MAINFRAME]
75+Type=1
76+Class=CMainFrame
77+Command1=ID_FILE_PRINT_PREVIEW
78+Command2=ID_FILE_PRINT
79+Command3=ID_APP_EXIT
80+Command4=ID_FMT_MEM
81+Command5=ID_FMT_REDRAW
82+Command6=ID_FMT_AUTO
83+Command7=ID_FMT_MOVEF
84+Command8=ID_FMT_ACTIVE
85+Command9=ID_FMT_MAX
86+Command10=ID_FMT_MAXCLEAR
87+Command11=ID_FMT_GRAPH
88+Command12=ID_FMT_ALL
89+Command13=ID_LOCAL
90+Command14=ID_FMT_GIGA
91+Command15=ID_FMT_MEGA
92+Command16=ID_FMT_KIRO
93+Command17=ID_FMT_SAVE
94+Command18=ID_APP_HOSTSETUP
95+Command19=ID_APP_ABOUT
96+CommandCount=19
97+
98+[ACL:IDR_MAINFRAME]
99+Type=1
100+Class=CMainFrame
101+Command1=ID_FILE_NEW
102+Command2=ID_FILE_OPEN
103+Command3=ID_FILE_SAVE
104+Command4=ID_FILE_PRINT
105+Command5=ID_EDIT_UNDO
106+Command6=ID_EDIT_CUT
107+Command7=ID_EDIT_COPY
108+Command8=ID_EDIT_PASTE
109+Command9=ID_EDIT_UNDO
110+Command10=ID_EDIT_CUT
111+Command11=ID_EDIT_COPY
112+Command12=ID_EDIT_PASTE
113+Command13=ID_NEXT_PANE
114+Command14=ID_PREV_PANE
115+CommandCount=14
116+
117+[TB:IDR_MAINFRAME]
118+Type=1
119+Class=?
120+Command1=ID_FILE_NEW
121+Command2=ID_FILE_OPEN
122+Command3=ID_FILE_SAVE
123+Command4=ID_EDIT_CUT
124+Command5=ID_EDIT_COPY
125+Command6=ID_EDIT_PASTE
126+Command7=ID_FILE_PRINT
127+Command8=ID_APP_ABOUT
128+CommandCount=8
129+
130+[CLS:SysInfCl]
131+Type=0
132+HeaderFile=SysInfCl.h
133+ImplementationFile=SysInfCl.cpp
134+BaseClass=generic CWnd
135+Filter=W
136+LastObject=ID_APP_ABOUT
137+
138+[DLG:IDD_HOSTSETUP]
139+Type=1
140+Class=CHostSetup
141+ControlCount=9
142+Control1=IDC_EDIT_HOST,edit,1350631552
143+Control2=IDC_BUT_ADD,button,1342242817
144+Control3=IDC_LIST1,listbox,1352728835
145+Control4=IDC_BUT_DEL,button,1342242816
146+Control5=IDOK,button,1342242816
147+Control6=IDCANCEL,button,1342242816
148+Control7=IDC_STATIC,static,1342308352
149+Control8=IDC_STATIC,static,1342308352
150+Control9=IDC_EDIT_PORT,edit,1350639616
151+
152+[CLS:CHostSetup]
153+Type=0
154+HeaderFile=HostSetup.h
155+ImplementationFile=HostSetup.cpp
156+BaseClass=CDialog
157+Filter=D
158+LastObject=CHostSetup
159+VirtualFilter=dWC
160+
--- /dev/null
+++ b/wdf/wdf.cpp
@@ -0,0 +1,144 @@
1+// wdf.cpp : アプリケーション用クラスの機能定義を行います。
2+//
3+
4+#include "stdafx.h"
5+#include "wdf.h"
6+
7+#include "MainFrm.h"
8+#include "wdfDoc.h"
9+#include "wdfView.h"
10+
11+#ifdef _DEBUG
12+#define new DEBUG_NEW
13+#undef THIS_FILE
14+static char THIS_FILE[] = __FILE__;
15+#endif
16+
17+/////////////////////////////////////////////////////////////////////////////
18+// CWdfApp
19+
20+BEGIN_MESSAGE_MAP(CWdfApp, CWinApp)
21+ //{{AFX_MSG_MAP(CWdfApp)
22+ ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
23+ // メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
24+ // この位置に生成されるコードを編集しないでください。
25+ //}}AFX_MSG_MAP
26+ // 標準のファイル基本ドキュメント コマンド
27+ ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
28+ ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
29+ // 標準の印刷セットアップ コマンド
30+ ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
31+END_MESSAGE_MAP()
32+
33+/////////////////////////////////////////////////////////////////////////////
34+// CWdfApp クラスの構築
35+
36+CWdfApp::CWdfApp()
37+{
38+ // TODO: この位置に構築用コードを追加してください。
39+ // ここに InitInstance 中の重要な初期化処理をすべて記述してください。
40+
41+}
42+
43+/////////////////////////////////////////////////////////////////////////////
44+// 唯一の CWdfApp オブジェクト
45+
46+CWdfApp theApp;
47+
48+
49+/////////////////////////////////////////////////////////////////////////////
50+// CWdfApp クラスの初期化
51+
52+BOOL CWdfApp::InitInstance()
53+{
54+ // 標準的な初期化処理
55+ // もしこれらの機能を使用せず、実行ファイルのサイズを小さく
56+ // したければ以下の特定の初期化ルーチンの中から不必要なもの
57+ // を削除してください。
58+
59+#ifdef _AFXDLL
60+ Enable3dControls(); // 共有 DLL の中で MFC を使用する場合にはここをコールしてください。
61+#else
62+ Enable3dControlsStatic(); // MFC と静的にリンクしている場合にはここをコールしてください。
63+#endif
64+
65+ LoadStdProfileSettings(); // 標準の INI ファイルのオプションをロー爪します (MRU を含む)
66+ // アプリケーション用のドキュメント テンプレートを登録します。ドキュメント テンプレート
67+ // はドキュメント、フレーム ウィンドウとビューを結合するために機能します。
68+
69+ CSingleDocTemplate* pDocTemplate;
70+ pDocTemplate = new CSingleDocTemplate(
71+ IDR_MAINFRAME,
72+ RUNTIME_CLASS(CWdfDoc),
73+ RUNTIME_CLASS(CMainFrame), // メイン SDI フレーム ウィンドウ
74+ RUNTIME_CLASS(CWdfView));
75+ AddDocTemplate(pDocTemplate);
76+
77+ // DDE、file open など標準のシェル コマンドのコマンドラインを解析します。
78+ CCommandLineInfo cmdInfo;
79+ ParseCommandLine(cmdInfo);
80+
81+ // コマンドラインでディスパッチ コマンドを指定します。
82+ if (!ProcessShellCommand(cmdInfo))
83+ return FALSE;
84+
85+ return TRUE;
86+}
87+
88+/////////////////////////////////////////////////////////////////////////////
89+// アプリケーションのバージョン情報で使われる CAboutDlg ダイアログ
90+
91+class CAboutDlg : public CDialog
92+{
93+public:
94+ CAboutDlg();
95+
96+// ダイアログ データ
97+ //{{AFX_DATA(CAboutDlg)
98+ enum { IDD = IDD_ABOUTBOX };
99+ //}}AFX_DATA
100+
101+ // ClassWizard は仮想関数を生成しオーバーライドします。
102+ //{{AFX_VIRTUAL(CAboutDlg)
103+protected:
104+ virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV のサポート
105+ //}}AFX_VIRTUAL
106+
107+// Implementation
108+protected:
109+ //{{AFX_MSG(CAboutDlg)
110+ // メッセージ ハンドラはありません。
111+ //}}AFX_MSG
112+ DECLARE_MESSAGE_MAP()
113+};
114+
115+CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
116+{
117+ //{{AFX_DATA_INIT(CAboutDlg)
118+ //}}AFX_DATA_INIT
119+}
120+
121+void CAboutDlg::DoDataExchange(CDataExchange* pDX)
122+{
123+ CDialog::DoDataExchange(pDX);
124+ //{{AFX_DATA_MAP(CAboutDlg)
125+ //}}AFX_DATA_MAP
126+ SetDlgItemText(IDC_EDIT_URL, "e-mail: oga@mxg.mesh.ne.jp\r\nURL: http://www2d.biglobe.ne.jp/~oga/");
127+}
128+
129+BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
130+ //{{AFX_MSG_MAP(CAboutDlg)
131+ // メッセージ ハンドラがありません。
132+ //}}AFX_MSG_MAP
133+END_MESSAGE_MAP()
134+
135+// ダイアログを実行するためのアプリケーション コマンド
136+void CWdfApp::OnAppAbout()
137+{
138+ CAboutDlg aboutDlg;
139+ aboutDlg.DoModal();
140+}
141+
142+/////////////////////////////////////////////////////////////////////////////
143+// CWdfApp コマンド
144+
--- /dev/null
+++ b/wdf/wdf.dsp
@@ -0,0 +1,219 @@
1+# Microsoft Developer Studio Project File - Name="wdf" - Package Owner=<4>
2+# Microsoft Developer Studio Generated Build File, Format Version 6.00
3+# ** 編集しないでください **
4+
5+# TARGTYPE "Win32 (x86) Application" 0x0101
6+
7+CFG=wdf - Win32 Release
8+!MESSAGE これは有効なメイクファイルではありません。 このプロジェクトをビルドするためには NMAKE を使用してください。
9+!MESSAGE [メイクファイルのエクスポート] コマンドを使用して実行してください
10+!MESSAGE
11+!MESSAGE NMAKE /f "wdf.mak".
12+!MESSAGE
13+!MESSAGE NMAKE の実行時に構成を指定できます
14+!MESSAGE コマンド ライン上でマクロの設定を定義します。例:
15+!MESSAGE
16+!MESSAGE NMAKE /f "wdf.mak" CFG="wdf - Win32 Release"
17+!MESSAGE
18+!MESSAGE 選択可能なビルド モード:
19+!MESSAGE
20+!MESSAGE "wdf - Win32 Release" ("Win32 (x86) Application" 用)
21+!MESSAGE "wdf - Win32 Debug" ("Win32 (x86) Application" 用)
22+!MESSAGE "wdf - Win32 Rel98" ("Win32 (x86) Application" 用)
23+!MESSAGE
24+
25+# Begin Project
26+# PROP AllowPerConfigDependencies 0
27+# PROP Scc_ProjName ""
28+# PROP Scc_LocalPath ""
29+CPP=cl.exe
30+MTL=midl.exe
31+RSC=rc.exe
32+
33+!IF "$(CFG)" == "wdf - Win32 Release"
34+
35+# PROP BASE Use_MFC 6
36+# PROP BASE Use_Debug_Libraries 0
37+# PROP BASE Output_Dir ".\Release"
38+# PROP BASE Intermediate_Dir ".\Release"
39+# PROP BASE Target_Dir ""
40+# PROP Use_MFC 6
41+# PROP Use_Debug_Libraries 0
42+# PROP Output_Dir ".\Release"
43+# PROP Intermediate_Dir ".\Release"
44+# PROP Ignore_Export_Lib 0
45+# PROP Target_Dir ""
46+# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c
47+# ADD CPP /nologo /MD /W3 /GX /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /YX /FD /c
48+# ADD BASE MTL /nologo /D "NDEBUG" /win32
49+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
50+# ADD BASE RSC /l 0x411 /d "NDEBUG" /d "_AFXDLL"
51+# ADD RSC /l 0x411 /d "NDEBUG" /d "_AFXDLL"
52+BSC32=bscmake.exe
53+# ADD BASE BSC32 /nologo
54+# ADD BSC32 /nologo
55+LINK32=link.exe
56+# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
57+# ADD LINK32 wsock32.lib mpr.lib kernel32.lib /nologo /subsystem:windows /map /machine:I386
58+
59+!ELSEIF "$(CFG)" == "wdf - Win32 Debug"
60+
61+# PROP BASE Use_MFC 6
62+# PROP BASE Use_Debug_Libraries 1
63+# PROP BASE Output_Dir ".\Debug"
64+# PROP BASE Intermediate_Dir ".\Debug"
65+# PROP BASE Target_Dir ""
66+# PROP Use_MFC 6
67+# PROP Use_Debug_Libraries 1
68+# PROP Output_Dir ".\Debug"
69+# PROP Intermediate_Dir ".\Debug"
70+# PROP Ignore_Export_Lib 0
71+# PROP Target_Dir ""
72+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c
73+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FD /c
74+# SUBTRACT CPP /YX /Yc /Yu
75+# ADD BASE MTL /nologo /D "_DEBUG" /win32
76+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
77+# ADD BASE RSC /l 0x411 /d "_DEBUG" /d "_AFXDLL"
78+# ADD RSC /l 0x411 /d "_DEBUG" /d "_AFXDLL"
79+BSC32=bscmake.exe
80+# ADD BASE BSC32 /nologo
81+# ADD BSC32 /nologo
82+LINK32=link.exe
83+# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386
84+# ADD LINK32 wsock32.lib mpr.lib kernel32.lib /nologo /subsystem:windows /debug /machine:I386
85+
86+!ELSEIF "$(CFG)" == "wdf - Win32 Rel98"
87+
88+# PROP BASE Use_MFC 5
89+# PROP BASE Use_Debug_Libraries 0
90+# PROP BASE Output_Dir "wdf___Wi"
91+# PROP BASE Intermediate_Dir "wdf___Wi"
92+# PROP BASE Target_Dir ""
93+# PROP Use_MFC 6
94+# PROP Use_Debug_Libraries 0
95+# PROP Output_Dir "Rel98"
96+# PROP Intermediate_Dir "Rel98"
97+# PROP Ignore_Export_Lib 0
98+# PROP Target_Dir ""
99+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
100+# SUBTRACT BASE CPP /YX /Yc /Yu
101+# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "WIN98" /D "_AFXDLL" /FD /c
102+# SUBTRACT CPP /YX /Yc /Yu
103+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
104+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
105+# ADD BASE RSC /l 0x411 /d "NDEBUG"
106+# ADD RSC /l 0x411 /d "NDEBUG" /d "_AFXDLL"
107+BSC32=bscmake.exe
108+# ADD BASE BSC32 /nologo
109+# ADD BSC32 /nologo
110+LINK32=link.exe
111+# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
112+# ADD LINK32 wsock32.lib mpr.lib /nologo /subsystem:windows /machine:I386 /out:"Rel98/wdf98.exe"
113+
114+!ENDIF
115+
116+# Begin Target
117+
118+# Name "wdf - Win32 Release"
119+# Name "wdf - Win32 Debug"
120+# Name "wdf - Win32 Rel98"
121+# Begin Group "Source Files"
122+
123+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
124+# Begin Source File
125+
126+SOURCE=.\HostSetup.cpp
127+# End Source File
128+# Begin Source File
129+
130+SOURCE=.\LogCtrl.cpp
131+# End Source File
132+# Begin Source File
133+
134+SOURCE=.\MainFrm.cpp
135+# End Source File
136+# Begin Source File
137+
138+SOURCE=.\ReadMe.txt
139+# End Source File
140+# Begin Source File
141+
142+SOURCE=.\StdAfx.cpp
143+# ADD CPP /Yc"stdafx.h"
144+# End Source File
145+# Begin Source File
146+
147+SOURCE=.\SysInfCl.cpp
148+# End Source File
149+# Begin Source File
150+
151+SOURCE=.\wdf.cpp
152+# End Source File
153+# Begin Source File
154+
155+SOURCE=.\wdf.rc
156+# End Source File
157+# Begin Source File
158+
159+SOURCE=.\wdfDoc.cpp
160+# End Source File
161+# Begin Source File
162+
163+SOURCE=.\wdfView.cpp
164+# End Source File
165+# End Group
166+# Begin Group "Header Files"
167+
168+# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
169+# Begin Source File
170+
171+SOURCE=.\HostSetup.h
172+# End Source File
173+# Begin Source File
174+
175+SOURCE=.\MainFrm.h
176+# End Source File
177+# Begin Source File
178+
179+SOURCE=.\StdAfx.h
180+# End Source File
181+# Begin Source File
182+
183+SOURCE=.\SysInfCl.h
184+# End Source File
185+# Begin Source File
186+
187+SOURCE=.\wdf.h
188+# End Source File
189+# Begin Source File
190+
191+SOURCE=.\wdfDoc.h
192+# End Source File
193+# Begin Source File
194+
195+SOURCE=.\wdfView.h
196+# End Source File
197+# End Group
198+# Begin Group "Resource Files"
199+
200+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
201+# Begin Source File
202+
203+SOURCE=.\res\Toolbar.bmp
204+# End Source File
205+# Begin Source File
206+
207+SOURCE=.\res\wdf.ico
208+# End Source File
209+# Begin Source File
210+
211+SOURCE=.\res\wdf.rc2
212+# End Source File
213+# Begin Source File
214+
215+SOURCE=.\res\wdfDoc.ico
216+# End Source File
217+# End Group
218+# End Target
219+# End Project
--- /dev/null
+++ b/wdf/wdf.dsw
@@ -0,0 +1,29 @@
1+Microsoft Developer Studio Workspace File, Format Version 6.00
2+# 警告: このワークスペース ファイル を編集または削除しないでください!
3+
4+###############################################################################
5+
6+Project: "wdf"=.\wdf.dsp - Package Owner=<4>
7+
8+Package=<5>
9+{{{
10+}}}
11+
12+Package=<4>
13+{{{
14+}}}
15+
16+###############################################################################
17+
18+Global:
19+
20+Package=<5>
21+{{{
22+}}}
23+
24+Package=<3>
25+{{{
26+}}}
27+
28+###############################################################################
29+
--- /dev/null
+++ b/wdf/wdf.h
@@ -0,0 +1,52 @@
1+// wdf.h : WDF アプリケーションのメイン ヘッダー ファイル
2+//
3+
4+#ifndef __AFXWIN_H__
5+ #error include 'stdafx.h' before including this file for PCH
6+#endif
7+
8+#include "resource.h" // メイン シンボル
9+
10+#define VER "1.16"
11+
12+#define MAX_LOAD_HIST 150 // 負荷情報履歴数
13+#define MAX_REMOT_HOST 10 // リモートホスト最大数
14+
15+//#define DEBUG_LOG // デバッグログ出力
16+
17+typedef unsigned long ulong;
18+typedef unsigned int uint;
19+typedef unsigned __int64 uint64;
20+typedef __int64 int64;
21+
22+/////////////////////////////////////////////////////////////////////////////
23+// CWdfApp:
24+// このクラスの動作の定義に関しては wdf.cpp ファイルを参照してください。
25+//
26+
27+class CWdfApp : public CWinApp
28+{
29+public:
30+ CWdfApp();
31+
32+// オーバーライド
33+ // ClassWizard は仮想関数を生成しオーバーライドします。
34+ //{{AFX_VIRTUAL(CWdfApp)
35+ public:
36+ virtual BOOL InitInstance();
37+ //}}AFX_VIRTUAL
38+
39+// インプリメンテーション
40+
41+ //{{AFX_MSG(CWdfApp)
42+ afx_msg void OnAppAbout();
43+ // メモ - ClassWizard はこの位置にメンバ関数を追加または削除します。
44+ // この位置に生成されるコードを編集しないでください。
45+ //}}AFX_MSG
46+ DECLARE_MESSAGE_MAP()
47+
48+};
49+
50+
51+/////////////////////////////////////////////////////////////////////////////
52+
--- /dev/null
+++ b/wdf/wdf.ini
@@ -0,0 +1 @@
1+0,1,1,1,1
\ No newline at end of file
--- /dev/null
+++ b/wdf/wdf.mak
@@ -0,0 +1,341 @@
1+# Microsoft Developer Studio Generated NMAKE File, Format Version 40001
2+# ** 編集しないでください **
3+
4+# TARGTYPE "Win32 (x86) Application" 0x0101
5+
6+!IF "$(CFG)" == ""
7+CFG=wdf - Win32 Debug
8+!MESSAGE 構成が指定されていません。デフォルトの wdf - Win32 Debug を設定します。
9+!ENDIF
10+
11+!IF "$(CFG)" != "wdf - Win32 Release" && "$(CFG)" != "wdf - Win32 Debug"
12+!MESSAGE 指定された ビルド モード "$(CFG)" は正しくありません。
13+!MESSAGE コマンド ライン上でマクロ 'CFG' を定義することによって
14+!MESSAGE NMAKE 実行時にビルド モードを指定できます。例えば:
15+!MESSAGE
16+!MESSAGE NMAKE /f "wdf.mak" CFG="wdf - Win32 Debug"
17+!MESSAGE
18+!MESSAGE 選択可能なビルド モード:
19+!MESSAGE
20+!MESSAGE "wdf - Win32 Release" ("Win32 (x86) Application" 用)
21+!MESSAGE "wdf - Win32 Debug" ("Win32 (x86) Application" 用)
22+!MESSAGE
23+!ERROR 無効な構成が指定されています。
24+!ENDIF
25+
26+!IF "$(OS)" == "Windows_NT"
27+NULL=
28+!ELSE
29+NULL=nul
30+!ENDIF
31+################################################################################
32+# Begin Project
33+# PROP Target_Last_Scanned "wdf - Win32 Release"
34+CPP=cl.exe
35+RSC=rc.exe
36+MTL=mktyplib.exe
37+
38+!IF "$(CFG)" == "wdf - Win32 Release"
39+
40+# PROP BASE Use_MFC 6
41+# PROP BASE Use_Debug_Libraries 0
42+# PROP BASE Output_Dir "Release"
43+# PROP BASE Intermediate_Dir "Release"
44+# PROP BASE Target_Dir ""
45+# PROP Use_MFC 6
46+# PROP Use_Debug_Libraries 0
47+# PROP Output_Dir "Release"
48+# PROP Intermediate_Dir "Release"
49+# PROP Target_Dir ""
50+OUTDIR=.\Release
51+INTDIR=.\Release
52+
53+ALL : "$(OUTDIR)\wdf.exe"
54+
55+CLEAN :
56+ -@erase ".\Release\wdf.exe"
57+ -@erase ".\Release\MainFrm.obj"
58+ -@erase ".\Release\wdf.pch"
59+ -@erase ".\Release\wdfView.obj"
60+ -@erase ".\Release\wdfDoc.obj"
61+ -@erase ".\Release\StdAfx.obj"
62+ -@erase ".\Release\wdf.obj"
63+ -@erase ".\Release\wdf.res"
64+
65+"$(OUTDIR)" :
66+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
67+
68+# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c
69+# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c
70+CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\
71+ "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)/wdf.pch" /Yu"stdafx.h" /Fo"$(INTDIR)/" /c
72+CPP_OBJS=.\Release/
73+CPP_SBRS=
74+# ADD BASE MTL /nologo /D "NDEBUG" /win32
75+# ADD MTL /nologo /D "NDEBUG" /win32
76+MTL_PROJ=/nologo /D "NDEBUG" /win32
77+# ADD BASE RSC /l 0x411 /d "NDEBUG" /d "_AFXDLL"
78+# ADD RSC /l 0x411 /d "NDEBUG" /d "_AFXDLL"
79+RSC_PROJ=/l 0x411 /fo"$(INTDIR)/wdf.res" /d "NDEBUG" /d "_AFXDLL"
80+BSC32=bscmake.exe
81+# ADD BASE BSC32 /nologo
82+# ADD BSC32 /nologo
83+BSC32_FLAGS=/nologo /o"$(OUTDIR)/wdf.bsc"
84+BSC32_SBRS=
85+LINK32=link.exe
86+# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
87+# ADD LINK32 /nologo /subsystem:windows /machine:I386
88+LINK32_FLAGS=/nologo /subsystem:windows /incremental:no\
89+ /pdb:"$(OUTDIR)/wdf.pdb" /machine:I386 /out:"$(OUTDIR)/wdf.exe"
90+LINK32_OBJS= \
91+ "$(INTDIR)/MainFrm.obj" \
92+ "$(INTDIR)/wdfView.obj" \
93+ "$(INTDIR)/wdfDoc.obj" \
94+ "$(INTDIR)/StdAfx.obj" \
95+ "$(INTDIR)/wdf.obj" \
96+ "$(INTDIR)/wdf.res"
97+
98+"$(OUTDIR)\wdf.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
99+ $(LINK32) @<<
100+ $(LINK32_FLAGS) $(LINK32_OBJS)
101+<<
102+
103+!ELSEIF "$(CFG)" == "wdf - Win32 Debug"
104+
105+# PROP BASE Use_MFC 6
106+# PROP BASE Use_Debug_Libraries 1
107+# PROP BASE Output_Dir "Debug"
108+# PROP BASE Intermediate_Dir "Debug"
109+# PROP BASE Target_Dir ""
110+# PROP Use_MFC 6
111+# PROP Use_Debug_Libraries 1
112+# PROP Output_Dir "Debug"
113+# PROP Intermediate_Dir "Debug"
114+# PROP Target_Dir ""
115+OUTDIR=.\Debug
116+INTDIR=.\Debug
117+
118+ALL : "$(OUTDIR)\wdf.exe"
119+
120+CLEAN :
121+ -@erase ".\Debug\vc40.pdb"
122+ -@erase ".\Debug\wdf.pch"
123+ -@erase ".\Debug\vc40.idb"
124+ -@erase ".\Debug\wdf.exe"
125+ -@erase ".\Debug\MainFrm.obj"
126+ -@erase ".\Debug\wdfView.obj"
127+ -@erase ".\Debug\wdf.obj"
128+ -@erase ".\Debug\StdAfx.obj"
129+ -@erase ".\Debug\wdfDoc.obj"
130+ -@erase ".\Debug\wdf.res"
131+ -@erase ".\Debug\wdf.ilk"
132+ -@erase ".\Debug\wdf.pdb"
133+
134+"$(OUTDIR)" :
135+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
136+
137+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c
138+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /c
139+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\
140+ /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)/wdf.pch" /Yu"stdafx.h" /Fo"$(INTDIR)/"\
141+ /Fd"$(INTDIR)/" /c
142+CPP_OBJS=.\Debug/
143+CPP_SBRS=
144+# ADD BASE MTL /nologo /D "_DEBUG" /win32
145+# ADD MTL /nologo /D "_DEBUG" /win32
146+MTL_PROJ=/nologo /D "_DEBUG" /win32
147+# ADD BASE RSC /l 0x411 /d "_DEBUG" /d "_AFXDLL"
148+# ADD RSC /l 0x411 /d "_DEBUG" /d "_AFXDLL"
149+RSC_PROJ=/l 0x411 /fo"$(INTDIR)/wdf.res" /d "_DEBUG" /d "_AFXDLL"
150+BSC32=bscmake.exe
151+# ADD BASE BSC32 /nologo
152+# ADD BSC32 /nologo
153+BSC32_FLAGS=/nologo /o"$(OUTDIR)/wdf.bsc"
154+BSC32_SBRS=
155+LINK32=link.exe
156+# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386
157+# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386
158+LINK32_FLAGS=/nologo /subsystem:windows /incremental:yes\
159+ /pdb:"$(OUTDIR)/wdf.pdb" /debug /machine:I386 /out:"$(OUTDIR)/wdf.exe"
160+LINK32_OBJS= \
161+ "$(INTDIR)/MainFrm.obj" \
162+ "$(INTDIR)/wdfView.obj" \
163+ "$(INTDIR)/wdf.obj" \
164+ "$(INTDIR)/StdAfx.obj" \
165+ "$(INTDIR)/wdfDoc.obj" \
166+ "$(INTDIR)/wdf.res"
167+
168+"$(OUTDIR)\wdf.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
169+ $(LINK32) @<<
170+ $(LINK32_FLAGS) $(LINK32_OBJS)
171+<<
172+
173+!ENDIF
174+
175+.c{$(CPP_OBJS)}.obj:
176+ $(CPP) $(CPP_PROJ) $<
177+
178+.cpp{$(CPP_OBJS)}.obj:
179+ $(CPP) $(CPP_PROJ) $<
180+
181+.cxx{$(CPP_OBJS)}.obj:
182+ $(CPP) $(CPP_PROJ) $<
183+
184+.c{$(CPP_SBRS)}.sbr:
185+ $(CPP) $(CPP_PROJ) $<
186+
187+.cpp{$(CPP_SBRS)}.sbr:
188+ $(CPP) $(CPP_PROJ) $<
189+
190+.cxx{$(CPP_SBRS)}.sbr:
191+ $(CPP) $(CPP_PROJ) $<
192+
193+################################################################################
194+# Begin Target
195+
196+# Name "wdf - Win32 Release"
197+# Name "wdf - Win32 Debug"
198+
199+!IF "$(CFG)" == "wdf - Win32 Release"
200+
201+!ELSEIF "$(CFG)" == "wdf - Win32 Debug"
202+
203+!ENDIF
204+
205+################################################################################
206+# Begin Source File
207+
208+SOURCE=.\ReadMe.txt
209+
210+!IF "$(CFG)" == "wdf - Win32 Release"
211+
212+!ELSEIF "$(CFG)" == "wdf - Win32 Debug"
213+
214+!ENDIF
215+
216+# End Source File
217+################################################################################
218+# Begin Source File
219+
220+SOURCE=.\wdf.cpp
221+DEP_CPP_WDF_C=\
222+ ".\StdAfx.h"\
223+ ".\wdf.h"\
224+ ".\MainFrm.h"\
225+ ".\wdfDoc.h"\
226+ ".\wdfView.h"\
227+
228+
229+"$(INTDIR)\wdf.obj" : $(SOURCE) $(DEP_CPP_WDF_C) "$(INTDIR)"\
230+ "$(INTDIR)\wdf.pch"
231+
232+
233+# End Source File
234+################################################################################
235+# Begin Source File
236+
237+SOURCE=.\StdAfx.cpp
238+DEP_CPP_STDAF=\
239+ ".\StdAfx.h"\
240+
241+
242+!IF "$(CFG)" == "wdf - Win32 Release"
243+
244+# ADD CPP /Yc"stdafx.h"
245+
246+BuildCmds= \
247+ $(CPP) /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D\
248+ "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)/wdf.pch" /Yc"stdafx.h" /Fo"$(INTDIR)/" /c\
249+ $(SOURCE) \
250+
251+
252+"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
253+ $(BuildCmds)
254+
255+"$(INTDIR)\wdf.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
256+ $(BuildCmds)
257+
258+!ELSEIF "$(CFG)" == "wdf - Win32 Debug"
259+
260+# ADD CPP /Yc"stdafx.h"
261+
262+BuildCmds= \
263+ $(CPP) /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS"\
264+ /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)/wdf.pch" /Yc"stdafx.h" /Fo"$(INTDIR)/"\
265+ /Fd"$(INTDIR)/" /c $(SOURCE) \
266+
267+
268+"$(INTDIR)\StdAfx.obj" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
269+ $(BuildCmds)
270+
271+"$(INTDIR)\wdf.pch" : $(SOURCE) $(DEP_CPP_STDAF) "$(INTDIR)"
272+ $(BuildCmds)
273+
274+!ENDIF
275+
276+# End Source File
277+################################################################################
278+# Begin Source File
279+
280+SOURCE=.\MainFrm.cpp
281+DEP_CPP_MAINF=\
282+ ".\StdAfx.h"\
283+ ".\wdf.h"\
284+ ".\MainFrm.h"\
285+
286+
287+"$(INTDIR)\MainFrm.obj" : $(SOURCE) $(DEP_CPP_MAINF) "$(INTDIR)"\
288+ "$(INTDIR)\wdf.pch"
289+
290+
291+# End Source File
292+################################################################################
293+# Begin Source File
294+
295+SOURCE=.\wdfDoc.cpp
296+DEP_CPP_WDFDO=\
297+ ".\StdAfx.h"\
298+ ".\wdf.h"\
299+ ".\wdfDoc.h"\
300+
301+
302+"$(INTDIR)\wdfDoc.obj" : $(SOURCE) $(DEP_CPP_WDFDO) "$(INTDIR)"\
303+ "$(INTDIR)\wdf.pch"
304+
305+
306+# End Source File
307+################################################################################
308+# Begin Source File
309+
310+SOURCE=.\wdfView.cpp
311+DEP_CPP_WDFVI=\
312+ ".\StdAfx.h"\
313+ ".\wdf.h"\
314+ ".\wdfDoc.h"\
315+ ".\wdfView.h"\
316+
317+
318+"$(INTDIR)\wdfView.obj" : $(SOURCE) $(DEP_CPP_WDFVI) "$(INTDIR)"\
319+ "$(INTDIR)\wdf.pch"
320+
321+
322+# End Source File
323+################################################################################
324+# Begin Source File
325+
326+SOURCE=.\wdf.rc
327+DEP_RSC_WDF_R=\
328+ ".\res\wdf.ico"\
329+ ".\res\wdfDoc.ico"\
330+ ".\res\Toolbar.bmp"\
331+ ".\res\wdf.rc2"\
332+
333+
334+"$(INTDIR)\wdf.res" : $(SOURCE) $(DEP_RSC_WDF_R) "$(INTDIR)"
335+ $(RSC) $(RSC_PROJ) $(SOURCE)
336+
337+
338+# End Source File
339+# End Target
340+# End Project
341+################################################################################
Binary files /dev/null and b/wdf/wdf.mdp differ
--- /dev/null
+++ b/wdf/wdf.rc
@@ -0,0 +1,432 @@
1+//Microsoft Developer Studio generated resource script.
2+//
3+#include "resource.h"
4+
5+#define APSTUDIO_READONLY_SYMBOLS
6+/////////////////////////////////////////////////////////////////////////////
7+//
8+// Generated from the TEXTINCLUDE 2 resource.
9+//
10+#include "afxres.h"
11+
12+/////////////////////////////////////////////////////////////////////////////
13+#undef APSTUDIO_READONLY_SYMBOLS
14+
15+/////////////////////////////////////////////////////////////////////////////
16+// 日本語 resources
17+
18+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
19+#ifdef _WIN32
20+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
21+#pragma code_page(932)
22+#endif //_WIN32
23+
24+#ifdef APSTUDIO_INVOKED
25+/////////////////////////////////////////////////////////////////////////////
26+//
27+// TEXTINCLUDE
28+//
29+
30+1 TEXTINCLUDE DISCARDABLE
31+BEGIN
32+ "resource.h\0"
33+END
34+
35+2 TEXTINCLUDE DISCARDABLE
36+BEGIN
37+ "#include ""afxres.h""\r\n"
38+ "\0"
39+END
40+
41+3 TEXTINCLUDE DISCARDABLE
42+BEGIN
43+ "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
44+ "#define _AFX_NO_OLE_RESOURCES\r\n"
45+ "#define _AFX_NO_TRACKER_RESOURCES\r\n"
46+ "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
47+ "\r\n"
48+ "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)\r\n"
49+ "#ifdef _WIN32\r\n"
50+ "LANGUAGE 17, 1\r\n"
51+ "#pragma code_page(932)\r\n"
52+ "#endif\r\n"
53+ "#include ""res\\wdf.rc2"" // Microsoft Visual C++ 以外のツールで編集されたリソース\r\n"
54+ "#include ""l.jpn\\afxres.rc"" // 標準のコンポーネント\r\n"
55+ "#include ""l.jpn\\afxprint.rc"" // 印刷/印刷プレビュー リソース\r\n"
56+ "#endif\0"
57+END
58+
59+#endif // APSTUDIO_INVOKED
60+
61+
62+/////////////////////////////////////////////////////////////////////////////
63+//
64+// Icon
65+//
66+
67+// Icon with lowest ID value placed first to ensure application icon
68+// remains consistent on all systems.
69+IDR_MAINFRAME ICON DISCARDABLE "res\\wdf.ico"
70+IDR_WDFTYPE ICON DISCARDABLE "res\\wdfDoc.ico"
71+
72+/////////////////////////////////////////////////////////////////////////////
73+//
74+// Bitmap
75+//
76+
77+IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp"
78+
79+/////////////////////////////////////////////////////////////////////////////
80+//
81+// Toolbar
82+//
83+
84+IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15
85+BEGIN
86+ BUTTON ID_FILE_NEW
87+ BUTTON ID_FILE_OPEN
88+ BUTTON ID_FILE_SAVE
89+ SEPARATOR
90+ BUTTON ID_EDIT_CUT
91+ BUTTON ID_EDIT_COPY
92+ BUTTON ID_EDIT_PASTE
93+ SEPARATOR
94+ BUTTON ID_FILE_PRINT
95+ BUTTON ID_APP_ABOUT
96+END
97+
98+
99+/////////////////////////////////////////////////////////////////////////////
100+//
101+// Menu
102+//
103+
104+IDR_MAINFRAME MENU PRELOAD DISCARDABLE
105+BEGIN
106+ POPUP "ファイル(&F)"
107+ BEGIN
108+ MENUITEM "印刷プレビュー(&V)", ID_FILE_PRINT_PREVIEW
109+ MENUITEM "印刷(&P)", ID_FILE_PRINT
110+ MENUITEM "WinDFの終了(&X)", ID_APP_EXIT
111+ END
112+ POPUP "表示(&D)"
113+ BEGIN
114+ MENUITEM "メモリ使用状況(&U)", ID_FMT_MEM
115+ MENUITEM SEPARATOR
116+ MENUITEM "再表示(&R)", ID_FMT_REDRAW
117+ MENUITEM "自動更新(&A)", ID_FMT_AUTO
118+ MENUITEM "カーソルがくると逃げる(&E)", ID_FMT_MOVEF
119+ MENUITEM "カーソルがくるとアクティブ(&W)", ID_FMT_ACTIVE
120+ MENUITEM "ピーク値の表示(&P)", ID_FMT_MAX
121+ MENUITEM "ピーク値のクリア(&C)", ID_FMT_MAXCLEAR
122+ MENUITEM SEPARATOR
123+ MENUITEM "グラフ表示(&G)", ID_FMT_GRAPH
124+ MENUITEM "FDも表示(&F)", ID_FMT_ALL
125+ MENUITEM "ローカルドライブのみ表示(&L)", ID_LOCAL
126+ MENUITEM SEPARATOR
127+ MENUITEM "ギガバイト表示(&B)", ID_FMT_GIGA
128+ MENUITEM "メガバイト表示(&M)", ID_FMT_MEGA
129+ MENUITEM "キロバイト表示(&K)", ID_FMT_KIRO
130+ MENUITEM SEPARATOR
131+ MENUITEM "設定保存(&S)", ID_FMT_SAVE
132+ END
133+ POPUP "リモート(&R)"
134+ BEGIN
135+ MENUITEM "ホスト設定(&S)...", ID_APP_HOSTSETUP
136+ END
137+ POPUP "ヘルプ(&H)"
138+ BEGIN
139+ MENUITEM "バージョン情報 (WinDF) (&A)...", ID_APP_ABOUT
140+ END
141+END
142+
143+
144+/////////////////////////////////////////////////////////////////////////////
145+//
146+// Accelerator
147+//
148+
149+IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE
150+BEGIN
151+ "N", ID_FILE_NEW, VIRTKEY, CONTROL
152+ "O", ID_FILE_OPEN, VIRTKEY, CONTROL
153+ "S", ID_FILE_SAVE, VIRTKEY, CONTROL
154+ "P", ID_FILE_PRINT, VIRTKEY, CONTROL
155+ "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL
156+ "X", ID_EDIT_CUT, VIRTKEY, CONTROL
157+ "C", ID_EDIT_COPY, VIRTKEY, CONTROL
158+ "V", ID_EDIT_PASTE, VIRTKEY, CONTROL
159+ VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT
160+ VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT
161+ VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL
162+ VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT
163+ VK_F6, ID_NEXT_PANE, VIRTKEY
164+ VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT
165+END
166+
167+
168+/////////////////////////////////////////////////////////////////////////////
169+//
170+// Dialog
171+//
172+
173+IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 191, 93
174+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
175+CAPTION "バージョン情報 (WinDF)"
176+FONT 9, "MS Pゴシック"
177+BEGIN
178+ ICON IDR_MAINFRAME,IDC_STATIC,15,7,20,20
179+ CTEXT "WinDF Version 1.16",IDC_STATIC,43,15,105,8,SS_NOPREFIX
180+ CTEXT "Copyright (C) 1997, 2010, おが☆製作所",IDC_STATIC,7,33,
181+ 177,8
182+ DEFPUSHBUTTON "OK",IDOK,77,71,37,14,WS_GROUP
183+ EDITTEXT IDC_EDIT_URL,24,49,147,21,ES_CENTER | ES_MULTILINE |
184+ ES_READONLY | NOT WS_BORDER
185+END
186+
187+IDD_HOSTSETUP DIALOG DISCARDABLE 0, 0, 130, 121
188+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
189+CAPTION "監視ホスト登録"
190+FONT 9, "MS Pゴシック"
191+BEGIN
192+ EDITTEXT IDC_EDIT_HOST,7,17,75,12,ES_AUTOHSCROLL
193+ DEFPUSHBUTTON "追加",IDC_BUT_ADD,89,18,34,14
194+ LISTBOX IDC_LIST1,7,31,75,50,LBS_SORT | LBS_NOINTEGRALHEIGHT |
195+ WS_VSCROLL | WS_TABSTOP
196+ PUSHBUTTON "削除",IDC_BUT_DEL,89,34,34,14
197+ PUSHBUTTON "OK",IDOK,89,83,34,14
198+ PUSHBUTTON "キャンセル",IDCANCEL,89,99,34,14
199+ LTEXT "監視ホスト(sysinfd稼動ホスト)",IDC_STATIC,7,7,116,10
200+ LTEXT "ポート番号",IDC_STATIC,7,89,45,8
201+ EDITTEXT IDC_EDIT_PORT,7,99,39,14,ES_NUMBER
202+END
203+
204+
205+#ifndef _MAC
206+/////////////////////////////////////////////////////////////////////////////
207+//
208+// Version
209+//
210+
211+VS_VERSION_INFO VERSIONINFO
212+ FILEVERSION 1,0,16,1
213+ PRODUCTVERSION 1,0,16,1
214+ FILEFLAGSMASK 0x3fL
215+#ifdef _DEBUG
216+ FILEFLAGS 0x1L
217+#else
218+ FILEFLAGS 0x0L
219+#endif
220+ FILEOS 0x4L
221+ FILETYPE 0x1L
222+ FILESUBTYPE 0x0L
223+BEGIN
224+ BLOCK "StringFileInfo"
225+ BEGIN
226+ BLOCK "041104b0"
227+ BEGIN
228+ VALUE "Comments", "UNIXy DF and Memory Status for Windows\0"
229+ VALUE "CompanyName", "OGA SOFT.\0"
230+ VALUE "FileDescription", "WinDF Ver1.16\0"
231+ VALUE "FileVersion", "1, 0, 16, 1\0"
232+ VALUE "InternalName", "WDF\0"
233+ VALUE "LegalCopyright", "Copyright (C) 1997, 2010, OGA SOFT. (Moritaka Ogasawara)\0"
234+ VALUE "LegalTrademarks", "\0"
235+ VALUE "OriginalFilename", "WDF.EXE\0"
236+ VALUE "PrivateBuild", "\0"
237+ VALUE "ProductName", "WinDF\0"
238+ VALUE "ProductVersion", "1.16\0"
239+ VALUE "SpecialBuild", "\0"
240+ END
241+ END
242+ BLOCK "VarFileInfo"
243+ BEGIN
244+ VALUE "Translation", 0x411, 1200
245+ END
246+END
247+
248+#endif // !_MAC
249+
250+
251+/////////////////////////////////////////////////////////////////////////////
252+//
253+// DESIGNINFO
254+//
255+
256+#ifdef APSTUDIO_INVOKED
257+GUIDELINES DESIGNINFO DISCARDABLE
258+BEGIN
259+ IDD_ABOUTBOX, DIALOG
260+ BEGIN
261+ LEFTMARGIN, 7
262+ RIGHTMARGIN, 184
263+ TOPMARGIN, 7
264+ BOTTOMMARGIN, 86
265+ END
266+
267+ IDD_HOSTSETUP, DIALOG
268+ BEGIN
269+ LEFTMARGIN, 7
270+ RIGHTMARGIN, 123
271+ TOPMARGIN, 7
272+ BOTTOMMARGIN, 114
273+ END
274+END
275+#endif // APSTUDIO_INVOKED
276+
277+
278+/////////////////////////////////////////////////////////////////////////////
279+//
280+// String Table
281+//
282+
283+STRINGTABLE PRELOAD DISCARDABLE
284+BEGIN
285+ IDR_MAINFRAME "by oga.\nWinDF Ver1.16"
286+END
287+
288+STRINGTABLE PRELOAD DISCARDABLE
289+BEGIN
290+ AFX_IDS_APP_TITLE "WinDF Ver1.16"
291+ AFX_IDS_IDLEMESSAGE "OGA SOFT."
292+END
293+
294+STRINGTABLE DISCARDABLE
295+BEGIN
296+ ID_INDICATOR_EXT "EXT"
297+ ID_INDICATOR_CAPS "CAP"
298+ ID_INDICATOR_NUM "NUM"
299+ ID_INDICATOR_SCRL "SCRL"
300+ ID_INDICATOR_OVR "上書"
301+ ID_INDICATOR_REC "記録"
302+ ID_INDICATOR_KANA "カナ"
303+END
304+
305+STRINGTABLE DISCARDABLE
306+BEGIN
307+ ID_FILE_NEW "新規にファイルを作成\n新規ファイル"
308+ ID_FILE_OPEN "既存のファイルを開く\n開く"
309+ ID_FILE_CLOSE "作業中のファイルを閉じる\n閉じる"
310+ ID_FILE_SAVE "作業中のファイルを保存\n保存"
311+ ID_FILE_SAVE_AS "作業中のファイルに名前を付けて保存\n名前をつけて保存"
312+ ID_FILE_PAGE_SETUP "印刷設定の変更\n印刷設定"
313+ ID_FILE_PRINT_SETUP "プリンタ/印刷設定の変更\nプリンタの設定"
314+ ID_FILE_PRINT "作業中のファイルを印刷\n印刷"
315+ ID_FILE_PRINT_PREVIEW "フルスクリーンで表示\n印刷プレビュー"
316+END
317+
318+STRINGTABLE DISCARDABLE
319+BEGIN
320+ ID_APP_ABOUT "プログラムの情報、バージョンそして著作権を表示\nバージョン情報"
321+ ID_APP_EXIT "アプリケーションを終了し、ファイルの保存を指示\n終了"
322+END
323+
324+STRINGTABLE DISCARDABLE
325+BEGIN
326+ ID_FILE_MRU_FILE1 "指定のファイルを開く"
327+ ID_FILE_MRU_FILE2 "指定のファイルを開く"
328+ ID_FILE_MRU_FILE3 "指定のファイルを開く"
329+ ID_FILE_MRU_FILE4 "指定のファイルを開く"
330+ ID_FILE_MRU_FILE5 "指定のファイルを開く"
331+ ID_FILE_MRU_FILE6 "指定のファイルを開く"
332+ ID_FILE_MRU_FILE7 "指定のファイルを開く"
333+ ID_FILE_MRU_FILE8 "指定のファイルを開く"
334+ ID_FILE_MRU_FILE9 "指定のファイルを開く"
335+ ID_FILE_MRU_FILE10 "指定のファイルを開く"
336+ ID_FILE_MRU_FILE11 "指定のファイルを開く"
337+ ID_FILE_MRU_FILE12 "指定のファイルを開く"
338+ ID_FILE_MRU_FILE13 "指定のファイルを開く"
339+ ID_FILE_MRU_FILE14 "指定のファイルを開く"
340+ ID_FILE_MRU_FILE15 "指定のファイルを開く"
341+ ID_FILE_MRU_FILE16 "指定のファイルを開く"
342+END
343+
344+STRINGTABLE DISCARDABLE
345+BEGIN
346+ ID_NEXT_PANE "次のウィンドウに切り替える\n次ページ"
347+ ID_PREV_PANE "前のウィンドウに切り替える\n前ページ"
348+END
349+
350+STRINGTABLE DISCARDABLE
351+BEGIN
352+ ID_WINDOW_SPLIT "作業中のウィンドウを分割\n分割"
353+END
354+
355+STRINGTABLE DISCARDABLE
356+BEGIN
357+ ID_EDIT_CLEAR "選択範囲を消去\n消去"
358+ ID_EDIT_CLEAR_ALL "すべて消去\nすべて消去"
359+ ID_EDIT_COPY "選択範囲をコピーしてクリップボードに保存\nコピ-"
360+ ID_EDIT_CUT "選択範囲を切り取ってクリップボードに保存\n切り取り"
361+ ID_EDIT_FIND "指定した文字列の検索\n検索"
362+ ID_EDIT_PASTE "クリップボードの内容を貼り付け\n貼り付け"
363+ ID_EDIT_REPEAT "直前に行った動作を繰り返す\nリピート"
364+ ID_EDIT_REPLACE "指定した文字列を他の文字列で置換\n置換"
365+ ID_EDIT_SELECT_ALL "ファイル全体を選択\nすべて選択"
366+ ID_EDIT_UNDO "直前に行った動作を元に戻す\n元に戻す"
367+ ID_EDIT_REDO "直前に行った動作を繰り返す\nやり直し"
368+END
369+
370+STRINGTABLE DISCARDABLE
371+BEGIN
372+ ID_VIEW_TOOLBAR "ツール バーの表示/非表示\nツール バーの表示/非表示"
373+ ID_VIEW_STATUS_BAR "ステータス バーの表示/非表示\nステータス バーの表示/非表示"
374+END
375+
376+STRINGTABLE DISCARDABLE
377+BEGIN
378+ AFX_IDS_SCSIZE "ウィンドウのサイズを変更"
379+ AFX_IDS_SCMOVE "ウィンドウの位置を変更"
380+ AFX_IDS_SCMINIMIZE "ウィンドウをアイコン化する"
381+ AFX_IDS_SCMAXIMIZE "ウィンドウを最大表示にする"
382+ AFX_IDS_SCNEXTWINDOW "次のウィンドウに切り替える"
383+ AFX_IDS_SCPREVWINDOW "前のウィンドウに切り替える"
384+ AFX_IDS_SCCLOSE "作業中のウィンドウを閉じ、変更したファイルの保存を指示"
385+END
386+
387+STRINGTABLE DISCARDABLE
388+BEGIN
389+ AFX_IDS_SCRESTORE "ウィンドウを通常のサイズに戻す"
390+ AFX_IDS_SCTASKLIST "アプリケーションの切り替え"
391+END
392+
393+STRINGTABLE DISCARDABLE
394+BEGIN
395+ AFX_IDS_PREVIEW_CLOSE "印刷プレビュー モードを閉じる\nプレビューのキャンセル"
396+END
397+
398+STRINGTABLE DISCARDABLE
399+BEGIN
400+ ID_FMT_GRAPH "テキスト表示、グラフ表示の切り替え"
401+ ID_FMT_MEGA "KB/MB表示の切り替え"
402+ ID_FMT_ALL "FDDの情報も表示"
403+ ID_FMT_REDRAW "再表示"
404+END
405+
406+#endif // 日本語 resources
407+/////////////////////////////////////////////////////////////////////////////
408+
409+
410+
411+#ifndef APSTUDIO_INVOKED
412+/////////////////////////////////////////////////////////////////////////////
413+//
414+// Generated from the TEXTINCLUDE 3 resource.
415+//
416+#define _AFX_NO_SPLITTER_RESOURCES
417+#define _AFX_NO_OLE_RESOURCES
418+#define _AFX_NO_TRACKER_RESOURCES
419+#define _AFX_NO_PROPERTY_RESOURCES
420+
421+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
422+#ifdef _WIN32
423+LANGUAGE 17, 1
424+#pragma code_page(932)
425+#endif
426+#include "res\wdf.rc2" // Microsoft Visual C++ 以外のツールで編集されたリソース
427+#include "l.jpn\afxres.rc" // 標準のコンポーネント
428+#include "l.jpn\afxprint.rc" // 印刷/印刷プレビュー リソース
429+#endif
430+/////////////////////////////////////////////////////////////////////////////
431+#endif // not APSTUDIO_INVOKED
432+
--- /dev/null
+++ b/wdf/wdf.txt
@@ -0,0 +1,183 @@
1+=====================================================
2+ WinDF Ver1.06 99/02/12更新
3+
4+ Presented by おが☆
5+ E-mail: oga@mxg.mesh.ne.jp
6+ URL : http://www2d.biglobe.ne.jp/~oga/
7+=====================================================
8+
9+1. 概要
10+
11+ このソフトは、ディスクの空き容量情報や、メモリ/スワップの使用状況を
12+ 視覚的に見るためのものです。
13+ メモリの増設が必要かどうかの判断に使えると思います。
14+
15+ WinDFという名称は、UNIXのdfコマンドのWindows版のを作ろうとしたために
16+ ついた名前で、いつのまにかメモリの情報表示機能もおまけについてしまい
17+ ました。
18+
19+2. 動作環境
20+
21+ Windows95または、WindowsNT 3.51または、WindowsNT 4.0の動作する機種。
22+
23+3. 画面説明
24+
25+ 表示モードは「ディスク情報」と「メモリ/スワップ情報」の2モードあります。
26+
27+ (1)ディスク情報画面
28+ Drv : ドライブ名
29+ Type : ドライブの種類
30+ FD : フロッピーディスク
31+ HDD : ローカルハードディスク
32+ NETDRV : ネットワーク接続ドライブ
33+ CDROM : CD-ROM
34+ REMOV. : 取り外し可能ドライブ (MOなど)
35+ Total : ディスクの全容量
36+ Used : ディスクの使用している容量
37+ Avail : ディスクの空き容量 (グラフ表示ではFreeで表示)
38+ Capa : ディスクの使用量のパーセント表示
39+ Cluster : ディスクのクラスタサイズ
40+
41+ ・グラフ表示している場合、赤はディスクの使用領域、緑は空き領域を示します。
42+ また、Used,Capa,Clusterは表示されません。
43+
44+ HDD TOTAL : ローカルハードディスクのみの合計値
45+
46+ (2)メモリ情報画面
47+ MEMORY : メモリ使用状況
48+ 赤はメモリの使用量、緑はメモリの空き容量です。
49+ SWAP : スワップ使用状況
50+ 赤はスワップの使用量、緑はスワップの空き領域です。
51+
52+ (注)・画面をダブルクリックするとメモリ画面とディスク画面を切り替えることが
53+    できます。
54+ ・画面のシングルクリックで、最新情報を表示します。
55+ ・Windowサイズはある程度自動的に切り替えますが、おかしい場合は、
56+ 手動で調整してください(^^;
57+ ・Windows NTの場合、SWAP使用量として得られる値のうち、メモリ使用量分
58+ は橙色で表示されます。(V1.06以降)
59+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えて
60+ います。V1.05までは、赤+橙色を赤で表示していました。
61+
62+4. メニュー
63+
64+ (1) ファイル
65+ ・WinDFの終了
66+ WinDFを終了します
67+
68+ (2) 表示
69+
70+ ○メモリ使用状況
71+ ・チェックがついている場合
72+ メモリの情報が表示されます。
73+ ・チェックがついていない場合
74+ ディスクのの情報が表示されます。
75+ (注) 画面のダブルクリックでもディスク情報/メモリ情報を切り替えることが
76+ できます。
77+
78+ ○大きく表示 (V1.04)
79+ ・チェックがついている場合
80+ メモリ使用状況の表示を大きく表示します。
81+ ・チェックがついていない場合
82+ メモリ使用状況の表示を小さく表示します。
83+
84+ ○再表示
85+ 最新の情報を表示します。
86+
87+ ○自動更新
88+ ディスクの情報は1回/10秒、メモリの情報は1回/2秒の頻度で自動的に
89+ 最新情報に更新します
90+
91+ ○カーソルがくると逃げる
92+ ・チェックをいれると、画面上にカーソルが来ると画面が上下に
93+  移動します。画面がじゃまな場合に使用します。
94+
95+ ○カーソルがくるとアクティブ (V1.05以降)
96+ ・チェックをいれると、画面上にカーソルが来ると画面が自動的に
97+ アクティブになります。
98+
99+ ○グラフ表示
100+ ・チェックがついている場合
101+ ディスク情報をグラフで表示します。
102+ ・チェックがついていない場合
103+ UNIXのdfコマンドの形式で表示します。
104+ 各パーティションのクラスタサイズも表示します。
105+
106+ ○メガバイト表示
107+ ・チェックがついている場合
108+ ディスクの情報をメガバイト単位で表示します。
109+ (1Mバイト = 1024*1024バイト)
110+ ・チェックがついていない場合
111+ ディスクの情報をバイト単位で表示します。
112+
113+ ○FDも表示
114+ ・チェックがついている場合
115+ A:,B:ドライブの情報も表示します。FDの情報も表示する場合、
116+ 情報取得に少し時間がかかります。
117+ ・チェックがついていない場合
118+ A:,B:ドライブの情報は表示しません。
119+
120+ ○ローカルドライブのみ表示
121+ ・チェックがついている場合
122+ ネットワークドライブを表示しません。
123+ ・チェックがついていない場合
124+ ネットワークドライブも表示します。
125+
126+ ○設定保存
127+ 上記の設定を保存しておきます。
128+
129+ (3) ヘルプ
130+ ・バージョン情報(WinDF)
131+ WinDFのバージョンを表示します。
132+
133+5. メモリ情報について
134+
135+ Windows95では、MEMORY使用量+SWAPの使用量が仮想メモリの使用量のようです。
136+ MEMORYを使い切ると、SWAPを使いはじめます。
137+ WindowsNTでは、SWAPの使用量が仮想メモリの使用量のようです。
138+ MEMORYを使い切らなくても、不要な部分を積極的にSWAPに追い出すようです。
139+ 赤はSWAPファイル書き出しサイズ, 赤+橙色は仮想メモリ使用量と考えています。
140+ 橙色分は、APIからはSWAP使用量に含まれて取得されますが、
141+ SWAPファイルには書き込まれていないようです。(想像)
142+
143+6. 使用上の注意
144+
145+ ○このプログラムは正しく動作するように作成したつもりですが、万が一
146+ このプログラムを使用したことにより、何らかの障害、損害が発生した
147+ としても作者は何の責も負いません(^^;
148+
149+ ○画面から見えなくなったら、Windowsディレクトリのwdf.iniを削除して、
150+ 再起動してください(^^;
151+ (または、タスクバーから最大化していったん終了して再度起動する)
152+
153+9. 更新履歴
154+
155+ 99/02/12 V1.06
156+ (1) Win95 OSR2/Win98 の FAT32で正しくDISK容量が取得できなかった問題を
157+ 修正
158+ (2) WindowsNTの場合、SWAP使用量のうち、メモリ使用量分を橙色で表示する
159+ ようにした。
160+
161+ 98/05/28 V1.05
162+ (1) カーソルがくると自動的にアクティブになる(Auto Rise)機能を追加した。
163+ (C) Motif,FVWM
164+
165+ 98/05/17 V1.04
166+ (1) メモリの表示を小さくできるようにした。
167+
168+ 98/03/31 V1.03
169+ (1) ダブルクリックでメモリ/ディスク画面の切り替え時、それぞれの
170+ 設定サイズに切り替えるようにした。
171+ (2) ローカルドライブのみ表示できるようにした。
172+ (3) カーソルがくると逃げる機能を追加した。 (C)たら(きつねとけい)
173+
174+ 97/09/29 V1.02
175+ (1) ダブルクリックでメモリ/ディスク画面の切り替えをするようにした。
176+ (2) 正常終了時画面の位置、サイズを記憶するようにした。
177+
178+ 97/05/01 V1.01
179+ (1) リムーバブルディスクでの問題を修正
180+
181+ 97/02/09 V1.00
182+ 初期バージョン
183+
--- /dev/null
+++ b/wdf/wdfdoc.cpp
@@ -0,0 +1,83 @@
1+// wdfDoc.cpp : CWdfDoc クラスの動作の定義を行います。
2+//
3+
4+#include "stdafx.h"
5+#include "wdf.h"
6+
7+#include "wdfDoc.h"
8+
9+#ifdef _DEBUG
10+#define new DEBUG_NEW
11+#undef THIS_FILE
12+static char THIS_FILE[] = __FILE__;
13+#endif
14+
15+/////////////////////////////////////////////////////////////////////////////
16+// CWdfDoc
17+
18+IMPLEMENT_DYNCREATE(CWdfDoc, CDocument)
19+
20+BEGIN_MESSAGE_MAP(CWdfDoc, CDocument)
21+ //{{AFX_MSG_MAP(CWdfDoc)
22+ // メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
23+ // この位置に生成されるコードを編集しないでください。
24+ //}}AFX_MSG_MAP
25+END_MESSAGE_MAP()
26+
27+/////////////////////////////////////////////////////////////////////////////
28+// CWdfDoc クラスの構築/消滅
29+
30+CWdfDoc::CWdfDoc()
31+{
32+ // TODO: この位置に1回だけ構築用のコードを追加してください。
33+
34+}
35+
36+CWdfDoc::~CWdfDoc()
37+{
38+}
39+
40+BOOL CWdfDoc::OnNewDocument()
41+{
42+ if (!CDocument::OnNewDocument())
43+ return FALSE;
44+
45+ // TODO: この位置に再初期化処理を追加してください。
46+ // (SDI ドキュメントはこのドキュメントを再利用します。)
47+
48+ return TRUE;
49+}
50+
51+/////////////////////////////////////////////////////////////////////////////
52+// CWdfDoc シリアライゼーション
53+
54+void CWdfDoc::Serialize(CArchive& ar)
55+{
56+ if (ar.IsStoring())
57+ {
58+ // TODO: この位置に保存用のコードを追加してください。
59+ }
60+ else
61+ {
62+ // TODO: この位置に読み込み用のコードを追加してください。
63+ }
64+}
65+
66+/////////////////////////////////////////////////////////////////////////////
67+// CWdfDoc クラスの診断
68+
69+#ifdef _DEBUG
70+void CWdfDoc::AssertValid() const
71+{
72+ CDocument::AssertValid();
73+}
74+
75+void CWdfDoc::Dump(CDumpContext& dc) const
76+{
77+ CDocument::Dump(dc);
78+}
79+#endif //_DEBUG
80+
81+/////////////////////////////////////////////////////////////////////////////
82+// CWdfDoc コマンド
83+
--- /dev/null
+++ b/wdf/wdfdoc.h
@@ -0,0 +1,46 @@
1+// wdfDoc.h : CWdfDoc クラスの宣言およびインターフェイスの定義をします。
2+//
3+/////////////////////////////////////////////////////////////////////////////
4+
5+
6+class CWdfDoc : public CDocument
7+{
8+protected: // シリアライズ機能のみから作成します。
9+ CWdfDoc();
10+ DECLARE_DYNCREATE(CWdfDoc)
11+
12+// アトリビュート
13+public:
14+
15+// オペレーション
16+public:
17+
18+//オーバーライド
19+ // ClassWizard は仮想関数を生成しオーバーライドします。
20+ //{{AFX_VIRTUAL(CWdfDoc)
21+ public:
22+ virtual BOOL OnNewDocument();
23+ virtual void Serialize(CArchive& ar);
24+ //}}AFX_VIRTUAL
25+
26+// インプリメンテーション
27+public:
28+ virtual ~CWdfDoc();
29+#ifdef _DEBUG
30+ virtual void AssertValid() const;
31+ virtual void Dump(CDumpContext& dc) const;
32+#endif
33+
34+protected:
35+
36+// 生成されたメッセージ マップ関数
37+protected:
38+ //{{AFX_MSG(CWdfDoc)
39+ // メモ - ClassWizard はこの位置にメンバ関数を追加または削除します。
40+ // この位置に生成されるコードを編集しないでください。
41+ //}}AFX_MSG
42+ DECLARE_MESSAGE_MAP()
43+};
44+
45+/////////////////////////////////////////////////////////////////////////////
46+
--- /dev/null
+++ b/wdf/wdfview.cpp
@@ -0,0 +1,1574 @@
1+// wdfView.cpp : CWdfView クラスの動作の定義を行います。
2+//
3+// -DWIN98 : GetDiskFreeSpaceEx()を使用する場合
4+// (Win95 OSR2,Win98, WinNT4.0以降のみ)
5+//
6+// V1.16からは WDFもWIN98もどちらもGetDiskFreeSpaceEx()を使うため
7+// 同じ物になった
8+// USE_DISKFREE_EX : GetDiskFreeSpaceEx()を使用する
9+//
10+
11+#include "stdafx.h"
12+#include "wdf.h"
13+
14+#include "wdfDoc.h"
15+#include "wdfView.h"
16+#include "MainFrm.h"
17+#include <sys/stat.h>
18+
19+#ifdef _DEBUG
20+#define new DEBUG_NEW
21+#undef THIS_FILE
22+static char THIS_FILE[] = __FILE__;
23+#endif
24+
25+// DiskFreeSpaceEx()を使用する WDF11601-A
26+#define USE_DISKFREE_EX
27+
28+//#define WIN98
29+//#define LOAD_LIB 1
30+//#define DEBUG
31+
32+#ifdef WIN98
33+#ifndef USE_DISKFREE_EX
34+#define USE_DISKFREE_EX
35+#endif
36+#endif
37+
38+#ifdef DEBUG
39+#define dMessageBox MessageBox
40+#else
41+#define dMessageBox
42+#endif
43+
44+//
45+// define by oga.
46+//
47+#define BLACK RGB( 0, 0, 0)
48+#define BLUE RGB( 0, 0,0xff)
49+#define RED RGB(0xe0, 0, 0)
50+#define RED2 RGB(0xa0, 0, 0)
51+#define RED3 RGB(0x50, 0, 0)
52+#define GREEN RGB( 0,0xd0, 0)
53+#define GREEN2 RGB( 0,0x90, 0)
54+#define CYAN RGB( 0,0xff,0xff)
55+#define YELLOW RGB(0xff,0xff, 0)
56+#define YELLOW2 RGB(0x90,0x90, 0)
57+#define ORANGE RGB(0xff,0xaa, 0)
58+#define ORANGE2 RGB(0xaa,0x66, 0)
59+#define WHITE RGB(0xff,0xff,0xff)
60+#define GRAY5 RGB(0x33,0x33,0x33)
61+#define GRAY6 RGB(0x66,0x66,0x66)
62+#define GRAY8 RGB(0x88,0x88,0x88)
63+#define PURPLE RGB(0xcc, 0,0xff) /* WDF11403-A */
64+
65+#define FSZ 14 // font size
66+#define FSZP 70 // font size for print //WDF10802-A
67+#define FULLSZ 150 // Bar size
68+int YSTEP = 60; // Y step size //V1.10-A
69+
70+int all; // 1: FDDも表示
71+int mega; // 1: KB 1024:MB 1024*1024:GB
72+int graph; // 1: グラフ表示
73+int mem; // 1: Display meminfo
74+int uauto; // 1: auto update
75+int localhd; // 1: ローカルドライブのみ表示 V1.03
76+int movef; // 1: カーソルがくると逃げる
77+int bigf=0; // 1: メモリ大きいフォント
78+int activef; // 1: カーソルがくると自動active
79+int disp_max; // 1: ピーク値の表示 WDF11403-A
80+
81+int ucnt; // update count
82+int d1st; // 1: 画面クリア不要
83+int m1st; // 1: 画面クリア不要
84+int in_process = 0; // 2重処理防止 V1.10-A
85+
86+int x0,y0; // 画面左上位置 V1.02-A
87+int width[2],height[2]; // 画面幅/高さ V1.02-A
88+int w10m_ofs = 0; // メモリ横幅補正値 V1.07-A
89+int nhost = 0; // リモートホストの数 V1.10-A
90+
91+//
92+// memdat[0] (local)
93+// memdat[1] (host0) hosts[0] netf[0] loaddat[0] loadpt[0] m_pSysInfCl[0]
94+// memdat[2] (host1) hosts[0] netf[1] loaddat[1] loadpt[1] m_pSysInfCl[1]
95+//
96+mem_t memdat[MAX_REMOT_HOST+1]; // メモリデータ V1.10-A WDF11306-C
97+char hosts[MAX_REMOT_HOST][256]; // リモートホスト名 V1.10-A WDF11306-C
98+int loaddat[MAX_REMOT_HOST][MAX_LOAD_HIST]; // 負荷データ WDF11301-A
99+int loadpt[MAX_REMOT_HOST]; // 負荷データLastポインタ WDF11301-A
100+ // 最後のデータ+1を指している
101+int netf[MAX_REMOT_HOST]; // Net保留フラグ V1.10-A WDF11306-C
102+
103+int loadpos = 300; // xload表示位置 WDF11301-A
104+int port = 9998; // リモート情報取得ポート V1.10-A
105+
106+int lowpos = 50; // V1.03
107+extern CMainFrame *mf; // V1.03
108+extern int movey; // V1.03
109+extern int framey; // V1.03
110+extern void Log(char *msg); // WDF11601-A
111+
112+/////////////////////////////////////////////////////////////////////////////
113+// CWdfView
114+
115+IMPLEMENT_DYNCREATE(CWdfView, CView)
116+
117+BEGIN_MESSAGE_MAP(CWdfView, CView)
118+ //{{AFX_MSG_MAP(CWdfView)
119+ ON_WM_LBUTTONDOWN()
120+ ON_WM_SIZE()
121+ ON_WM_MOVE()
122+ ON_WM_MOUSEMOVE()
123+ ON_WM_LBUTTONDBLCLK()
124+ ON_WM_LBUTTONUP()
125+ ON_WM_RBUTTONDOWN()
126+ ON_WM_RBUTTONUP()
127+ ON_WM_RBUTTONDBLCLK()
128+ ON_WM_ERASEBKGND()
129+ //}}AFX_MSG_MAP
130+ // 標準印刷コマンド
131+ ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
132+ ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
133+ ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
134+END_MESSAGE_MAP()
135+
136+/////////////////////////////////////////////////////////////////////////////
137+// CWdfView クラスの構築/消滅
138+
139+CWdfView::CWdfView()
140+{
141+ // TODO: この場所に構築用のコードを追加してください。
142+ int plat = 0;
143+
144+ //// setting font
145+ // for hostname/mem value
146+ if (!newfont0.CreateFont(10,0,0,0,FW_ULTRABOLD, // Weight
147+ FALSE, // Italic
148+ FALSE, // Under Line
149+ 0, // Strike Out
150+ DEFAULT_CHARSET, // Char Set
151+ OUT_DEFAULT_PRECIS, // OutPrecision
152+ CLIP_DEFAULT_PRECIS, // ClipPrecision
153+ DEFAULT_QUALITY, // Quality
154+ DEFAULT_PITCH|FF_DONTCARE, // Pitch & Family
155+ "MS ゴシック"))
156+ {
157+ MessageBox((CString)"Font生成エラー0");
158+ }
159+
160+ // for HDD Status
161+ if (!newfont.CreateFont(FSZ,0,0,0,FW_ULTRABOLD, // Weight
162+ FALSE, // Italic
163+ FALSE, // Under Line
164+ 0, // Strike Out
165+ DEFAULT_CHARSET, // Char Set
166+ OUT_DEFAULT_PRECIS, // OutPrecision
167+ CLIP_DEFAULT_PRECIS, // ClipPrecision
168+ DEFAULT_QUALITY, // Quality
169+ DEFAULT_PITCH|FF_DONTCARE, // Pitch & Family
170+ "MS ゴシック"))
171+ {
172+ MessageBox((CString)"Font生成エラー1");
173+ }
174+
175+ // not use
176+ if (!newfont2.CreateFont(FSZ+4,0,0,0,FW_ULTRABOLD, // Weight
177+ FALSE, // Italic
178+ FALSE, // Under Line
179+ 0, // Strike Out
180+ DEFAULT_CHARSET, // Char Set
181+ OUT_DEFAULT_PRECIS, // OutPrecision
182+ CLIP_DEFAULT_PRECIS, // ClipPrecision
183+ DEFAULT_QUALITY, // Quality
184+ DEFAULT_PITCH|FF_DONTCARE, // Pitch & Family
185+ "MS ゴシック"))
186+ {
187+ MessageBox((CString)"Font生成エラー2");
188+ }
189+
190+ // WDF10802-A start
191+ // for MEM/SWAP string
192+ if (!newfont3.CreateFont(FSZP,0,0,0,FW_ULTRABOLD, // Weight
193+ FALSE, // Italic
194+ FALSE, // Under Line
195+ 0, // Strike Out
196+ DEFAULT_CHARSET, // Char Set
197+ OUT_DEFAULT_PRECIS, // OutPrecision
198+ CLIP_DEFAULT_PRECIS, // ClipPrecision
199+ DEFAULT_QUALITY, // Quality
200+ DEFAULT_PITCH|FF_DONTCARE, // Pitch & Family
201+ "MS ゴシック"))
202+ {
203+ MessageBox((CString)"Font生成エラー2");
204+ }
205+
206+ // for Printing
207+ if (!newfont4.CreateFont((FSZP*14)/18,0,0,0,FW_ULTRABOLD, // Weight
208+ FALSE, // Italic
209+ FALSE, // Under Line
210+ 0, // Strike Out
211+ DEFAULT_CHARSET, // Char Set
212+ OUT_DEFAULT_PRECIS, // OutPrecision
213+ CLIP_DEFAULT_PRECIS, // ClipPrecision
214+ DEFAULT_QUALITY, // Quality
215+ DEFAULT_PITCH|FF_DONTCARE, // Pitch & Family
216+ "MS ゴシック"))
217+ {
218+ MessageBox((CString)"Font生成エラー2");
219+ }
220+ // WDF10802-A end
221+
222+ // for load value WDF11306-A
223+ if (!newfont5.CreateFont(10,0,0,0,FW_NORMAL, // Weight
224+ FALSE, // Italic
225+ FALSE, // Under Line
226+ 0, // Strike Out
227+ DEFAULT_CHARSET, // Char Set
228+ OUT_DEFAULT_PRECIS, // OutPrecision
229+ CLIP_DEFAULT_PRECIS, // ClipPrecision
230+ DEFAULT_QUALITY, // Quality
231+ DEFAULT_PITCH|FF_DONTCARE, // Pitch & Family
232+ "MS ゴシック"))
233+ {
234+ MessageBox((CString)"Font生成エラー5");
235+ }
236+
237+ pen0p = new CPen;
238+ pen1p = new CPen;
239+ pen2p = new CPen;
240+ pen3p = new CPen; // graph delimiter
241+ pen4p = new CPen; // graph delimiter for print
242+ pen5p = new CPen; // black1
243+ pen6p = new CPen; // purple (for max) WCF11403-A
244+ pen0p->CreatePen(PS_SOLID,2,BLACK); // create pen (black)2
245+ pen1p->CreatePen(PS_SOLID,1,RED); // create pen (red)
246+ pen2p->CreatePen(PS_SOLID,1,GREEN); // create pen (green)
247+ pen3p->CreatePen(PS_SOLID,1,WHITE); // create pen (white)
248+ pen4p->CreatePen(PS_SOLID,3,BLACK); // create pen (black)3
249+ pen5p->CreatePen(PS_SOLID,1,BLACK); // create pen (black)1
250+ pen6p->CreatePen(PS_SOLID,1,PURPLE); // create pen (purple) WDF11403-A
251+
252+ m_drag = 0; // V1.07 clear drag flag (R)
253+ m_dragx0 = 0; // V1.07 clear drag start point x
254+ m_dragL = 0; // WDF11301-A clear drag flag (L)
255+
256+ CDC *pDCwk = GetDC(); //WDF11303-A
257+ DCmem.CreateCompatibleDC(pDCwk); //WDF11303-A
258+ ReleaseDC(pDCwk); //WDF11303-A
259+
260+ // V1.06-A start
261+ m_exok = 1;
262+ m_nt = 0;
263+ m_hinstLib = NULL;
264+ m_FuncAdd = NULL;
265+ if (FreeExAvail(&plat)) {
266+ m_exok = 1; // GetDiskFreeSpaceEx()が使えるパージョン(Win95 OSR2)
267+ }
268+ if (plat == VER_PLATFORM_WIN32_NT) {
269+ m_nt = 1; // オレンジ表示要
270+ }
271+#ifdef LOAD_LIB // 関数コール時にうまくいかないため現在使用せず。
272+ if (m_exok) {
273+ // NT3.51用に GetDiskFreeSpaceEx()はLoadLibraryで利用する。
274+ m_hinstLib = LoadLibrary((char *)"KERNEL32.DLL");
275+ if (m_hinstLib == NULL) {
276+ MessageBox("Load KERNEL32.DLL failed");
277+ m_exok = 0;
278+ }
279+ // GetDiskFreeSpaceEx()のアドレス取得
280+ m_FuncAdd =(DLFUNC)GetProcAddress(m_hinstLib,"GetDiskFreeSpaceExA");
281+ if (m_FuncAdd == NULL) {
282+ MessageBox("GetProcAddress failed");
283+ m_exok = 0;
284+ }
285+#ifdef DEBUG
286+ char buf[256];
287+ sprintf(buf,"FreeSpaceEx Addr=0x%08x",m_FuncAdd);
288+ MessageBox(buf);
289+#endif // DEBUG
290+ }
291+#endif // LOAD_LIB
292+ // V1.06-A end
293+}
294+
295+CWdfView::~CWdfView()
296+{
297+ // V1.06-A free DLL
298+ if (m_hinstLib) FreeLibrary(m_hinstLib);
299+ DCmem.DeleteDC();
300+}
301+
302+BOOL CWdfView::PreCreateWindow(CREATESTRUCT& cs)
303+{
304+ // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを
305+ // 修正してください。
306+
307+ // Move to MainFrm.cpp
308+ //int i;
309+ //m_pSysInfCl = new SysInfCl();
310+ //for (i = 0; i<10; i++) {
311+ // netf[i] = 0;
312+ //}
313+
314+ return CView::PreCreateWindow(cs);
315+}
316+
317+/////////////////////////////////////////////////////////////////////////////
318+// CWdfView クラスの描画
319+
320+void CWdfView::OnDraw(CDC* pDC)
321+{
322+ CWdfDoc* pDoc = GetDocument();
323+ ASSERT_VALID(pDoc);
324+
325+ // TODO: この場所にネイティブ データ用の描画コードを追加します。
326+ CRect rect; //WDF11303-A
327+ CDC *targetDC; //WDF11303-A
328+
329+ if (in_process == 1) return;
330+ in_process = 1;
331+
332+ if (pDC->IsPrinting()) {
333+ targetDC = pDC;
334+ } else {
335+ GetWindowRect(&rect);
336+ bmpwk.CreateCompatibleBitmap(pDC, rect.right - rect.left, rect.bottom - rect.top); //WDF11303-A
337+ DCmem.SelectObject(&bmpwk);
338+ targetDC = &DCmem;
339+ }
340+
341+ if (mem) {
342+ DispMemInfo(targetDC);
343+ } else {
344+ DispDiskInfo(targetDC);
345+ }
346+
347+ // メインDCに転送 WDF11303-A start
348+ if (!pDC->IsPrinting()) {
349+ pDC->BitBlt(0, 0,
350+ rect.right - rect.left, rect.bottom - rect.top,
351+ &DCmem,
352+ 0, 0,
353+ SRCCOPY);
354+ bmpwk.DeleteObject();
355+ }
356+ // WDF11303-A end
357+
358+ in_process = 0;
359+}
360+
361+/////////////////////////////////////////////////////////////////////////////
362+// CWdfView クラスの印刷
363+
364+BOOL CWdfView::OnPreparePrinting(CPrintInfo* pInfo)
365+{
366+ // デフォルトの印刷準備
367+ return DoPreparePrinting(pInfo);
368+}
369+
370+void CWdfView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
371+{
372+ // TODO: 印刷前の特別な初期化処理を追加してください。
373+}
374+
375+void CWdfView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
376+{
377+ // TODO: 印刷後の後処理を追加してください。
378+}
379+
380+/////////////////////////////////////////////////////////////////////////////
381+// CWdfView クラスの診断
382+
383+#ifdef _DEBUG
384+void CWdfView::AssertValid() const
385+{
386+ CView::AssertValid();
387+}
388+
389+void CWdfView::Dump(CDumpContext& dc) const
390+{
391+ CView::Dump(dc);
392+}
393+
394+CWdfDoc* CWdfView::GetDocument() // 非デバッグ バージョンはインラインです。
395+{
396+ ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWdfDoc)));
397+ return (CWdfDoc*)m_pDocument;
398+}
399+#endif //_DEBUG
400+
401+/////////////////////////////////////////////////////////////////////////////
402+// CWdfView クラスのメッセージ ハンドラ
403+
404+//
405+// wdf Display Disk Info.
406+//
407+
408+void CWdfView::DispDiskInfo(CDC* pDC)
409+{
410+ DWORD drv;
411+ char *drvn = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
412+ char *type;
413+ char path[256];
414+ char hibun_path[256]; /* hibun check WDF11305-A */
415+ char buf[1024]; /* work text buff */
416+ char drv_letter[10]; /* DrvLetter V1.10-A */
417+ char sh_name[512]; /* Share Name V1.10-A */
418+ DWORD bufsize; /* V1.10-A */
419+ int st; /* V1.10-A */
420+ int i;
421+ int yloc;
422+ DWORD sect; /* Sectors/Cluster */
423+ DWORD bytes; /* Btyes/Sector */
424+ DWORD free; /* Num of Free Cluster */
425+ DWORD total; /* Total Clusters */
426+ int bpc; /* bytes/Cluster */
427+ int fsz = FSZ; /* font size */
428+ int barsz = FULLSZ; /* bar size */
429+ int per; /* percent V1.11-A */
430+#ifdef USE_DISKFREE_EX
431+ ULARGE_INTEGER ufree, totalx, freex;
432+#endif
433+ uint64 totalb,freeb; /* Total,Free (KB) WDF11601-C */
434+ uint64 hdall=0,hdfree=0; /* HDD Total WDF11601-C */
435+ char *unit="KB";
436+ struct stat stbuf;
437+
438+ pDC->SetTextColor(BLACK);
439+ //pDC->SelectObject(pen0p);
440+
441+ if (!d1st) {
442+ // WDF11102-C start
443+ CRect rect;
444+ GetWindowRect(&rect);
445+
446+ CRect Rect = CRect(0,0,
447+ rect.right - rect.left,
448+ rect.bottom - rect.top);
449+ // WDF11102-C end
450+
451+ pDC->FillSolidRect(&Rect,WHITE);
452+ // d1st = 1;
453+ // m1st = 0;
454+ }
455+
456+ if (pDC->IsPrinting()) { // WDF10802-A start
457+ pDC->TextOut(250,150,"WinDF Disk Status.");
458+ pDC->SetWindowOrg(-250, -250);
459+ pDC->SelectObject(&newfont4); //set text font for print
460+ fsz = FSZP-20;
461+ barsz = FULLSZ * 6 * 6 / 10;
462+ } else { // WDF10802-A end
463+ pDC->SelectObject(&newfont); //set font
464+ }
465+ pDC->SetBkMode(TRANSPARENT); //set text color
466+
467+ // MAIN
468+ if (mega == 1024) {
469+ unit = "MB";
470+ } else if (mega == 1024*1024) { // WDF11202-C
471+ unit = "GB"; // WDF11202-A
472+ } // WDF11202-A
473+
474+ if (graph) {
475+ wsprintf(buf,"Drv Type 0%% 50%% 100%% Free/ Total");
476+ pDC->TextOut(5,5,(CString)buf);
477+ // draw scale
478+ pDC->SelectObject(pen0p);
479+ pDC->MoveTo(5+fsz*6,10+fsz*1);
480+ pDC->LineTo(5+fsz*6+barsz,10+fsz*1);
481+ for (i = 0; i <= 10; i++) {
482+ pDC->MoveTo(5+fsz*6+barsz*i/10,10+fsz*1-4);
483+ pDC->LineTo(5+fsz*6+barsz*i/10,10+fsz*1);
484+ }
485+ } else {
486+ wsprintf(buf,"Drv Type Total(%s) Used(%s) Avail(%s) Capa Cluster(B)",
487+ unit,unit,unit);
488+ pDC->TextOut(5,5,(CString)buf);
489+ }
490+
491+
492+ yloc = 1;
493+
494+ drv = GetLogicalDrives();
495+ for (i = 0; i<26; i++) {
496+ if (drv & (1 << i)) {
497+ wsprintf(path,"%c:\\",drvn[i]);
498+ sprintf(hibun_path,"%c:\\_hibun_.sys",drvn[i]); //WDF11305-A
499+ switch (GetDriveType(path)) {
500+ case 0:
501+ type = "unknown";
502+ break;
503+ case 1:
504+ type = "Disable";
505+ break;
506+ case DRIVE_REMOVABLE:
507+ if (i < 3) {
508+ type = "FD";
509+ } else {
510+ type = "REMOV.";
511+ }
512+ break;
513+ case DRIVE_FIXED:
514+ type = "HDD";
515+ break;
516+ case DRIVE_REMOTE:
517+ type = "NETDRV";
518+ if (localhd) {
519+ // ローカルドライブのみ表示なら、NETWORK_DRIVEは無視
520+ continue;
521+ }
522+ break;
523+ case DRIVE_CDROM:
524+ type = "CDROM";
525+ break;
526+ case DRIVE_RAMDISK:
527+ type = "RAMDISK";
528+ break;
529+ default :
530+ type = "ERR";
531+ break;
532+ }
533+ if (all || strcmp(type,"FD")) {
534+ wsprintf(buf," %c: %-7s",drvn[i],type);
535+ pDC->TextOut(5,12+fsz*yloc+2,(CString)buf);
536+ if (GetDiskFreeSpace(path,&sect,&bytes,&free,&total) != TRUE) {
537+ wsprintf(buf,"NO DISK!");
538+ pDC->TextOut(5+fsz*6,12+fsz*yloc+2,(CString)buf);
539+ ++yloc;
540+ continue;
541+ }
542+ bpc = sect * bytes; /* calc bytes/Cluster */
543+ totalb = ((uint64)total)*(bpc/512)/2;
544+ freeb = ((uint64)free)*(bpc/512)/2;
545+
546+ // WDF10801-A start
547+ if (totalb == 0) {
548+ if (!strcmp(type, "CDROM")) {
549+ wsprintf(buf,"Audio CD!?");
550+ } else {
551+ wsprintf(buf,"NO SPACE!");
552+ }
553+ pDC->TextOut(5+fsz*6,12+fsz*yloc+2,(CString)buf);
554+ ++yloc;
555+ continue;
556+ }
557+ // WDF10801-A end
558+
559+#ifdef USE_DISKFREE_EX // Load Lib化できればこのifdefははずせる
560+ // V1.06-A for FAT32 start
561+ if (m_exok) {
562+ /* Win95 OS2 FAT32対応 */
563+ // call GetDsikFreeSpaceEx()@kernel32.dll
564+ dMessageBox("Start GetDiskFreeSpaceEx()!!");
565+#ifdef LOAD_LIB
566+ if (((m_FuncAdd)(path,
567+ &ufree, /* user free */
568+ &totalx, /* total */
569+ &freex)) != TRUE) /* free */
570+#else // !LOAD_LIB
571+ if ((GetDiskFreeSpaceEx(path,
572+ &ufree, /* user free */
573+ &totalx, /* total */
574+ &freex)) != TRUE) /* free */
575+#endif // !LOAD_LIB
576+ {
577+ MessageBox("GetDiskFreeSpaceEx Error!!");
578+ wsprintf(buf,"NO DISK!");
579+ pDC->TextOut(5+fsz*6,12+fsz*yloc+2,(CString)buf);
580+ ++yloc;
581+ continue;
582+ }
583+ dMessageBox("Call End2!!");
584+ //Devide1024(&totalx, &totalb);
585+ Hyper2ui64(totalx, &totalb);
586+ totalb /= 1024;
587+ //dMessageBox("Call End3!!");
588+ //Devide1024(&freex, &freeb);
589+ Hyper2ui64(freex, &freeb);
590+ freeb /= 1024;
591+ //dMessageBox("DEBUG3!!");
592+ }
593+ //dMessageBox("DEBUG4!!");
594+ // V1.06-A for FAT32 end
595+#endif // USE_DISKFREE_EX
596+
597+ if (!strcmp(type,"HDD")) {
598+ // Local HDD Total
599+ //dMessageBox("DEBUG4-0!!");
600+ hdall += totalb;
601+ hdfree += freeb;
602+ }
603+ //dMessageBox("DEBUG4-1!!");
604+
605+ /* for Share Name Display V1.10-A start */
606+ if (!strcmp(type,"NETDRV")) {
607+ sprintf(drv_letter, "%c:", drvn[i]); /* ex. "C:" */
608+ bufsize = sizeof(sh_name); /* limit 20 char */
609+ st = WNetGetConnection(drv_letter, sh_name, &bufsize);
610+ if (st != NO_ERROR) {
611+ /* error */
612+ switch(st) {
613+ case ERROR_BAD_DEVICE:
614+ strcpy(sh_name, "BAD_DEVICE");
615+ break;
616+ case ERROR_NOT_CONNECTED:
617+ strcpy(sh_name, "NOT_CONNECTED");
618+ break;
619+ case ERROR_CONNECTION_UNAVAIL:
620+ strcpy(sh_name, "CONNECTION_UNAVAIL");
621+ break;
622+ case ERROR_NO_NETWORK:
623+ strcpy(sh_name, "NO_NETWORK");
624+ break;
625+ case ERROR_NO_NET_OR_BAD_PATH:
626+ strcpy(sh_name, "NO_NET_OR_BAD_PATH");
627+ break;
628+ default:
629+ wsprintf(sh_name, "Error %d", st);
630+ break;
631+ }
632+ }
633+ } else {
634+ strcpy(sh_name, "");
635+ }
636+ /* V1.10-A end */
637+
638+ /* WDF11101-A start */
639+ if (totalb >= 1024*1024) {
640+ /* 1GB以上の場合 */
641+ per = (int)(100*(totalb/1024-freeb/1024)/(totalb/1024));
642+ } else {
643+ per = (int)(100*(totalb-freeb)/totalb);
644+ }
645+ /* WDF11101-A end */
646+
647+ if (graph) {
648+ // graph
649+ //dMessageBox("DEBUG4-2!!");
650+ DispBar(pDC, per, yloc, //WDF11101-C
651+ fsz, barsz); //WDF10802-C
652+ //dMessageBox("DEBUG4-3!!");
653+
654+ // WDF11305-A start
655+ if (!stat(hibun_path, &stbuf)) {
656+ // 秘文マーク
657+ pDC->TextOut(5+fsz*17,12+fsz*yloc, "秘");
658+ }
659+ // WDF11305-A end
660+
661+ if (mega <= 1024) { // KB,MB WDF11202-A
662+ char str_free[128], str_total[128];
663+ ui64toStr(freeb/(uint64)mega, str_free);
664+ ui64toStr(totalb/(uint64)mega, str_total);
665+ //Log("Start I64u\n");
666+ wsprintf(buf,"%8s/%8s %s %s",str_free,
667+ str_total,
668+ //(mega == 1)? "KB":"MB",
669+ unit, //WDF11202-C
670+ sh_name);
671+ //Log("End I64u\n");
672+ } else { // GB WDF11202-A
673+ sprintf(buf,"%8.2f/%8.2f %s %s", //WDF11202-A
674+ ((float)((int64)freeb))/mega, //WDF11202-A
675+ ((float)((int64)totalb))/mega, //WDF11202-A
676+ unit, //WDF11202-A
677+ sh_name); //WDF11202-A
678+ } //WDF11202-A
679+ //dMessageBox("DEBUG4-4!!");
680+ pDC->TextOut(5+fsz*18,12+fsz*yloc,(CString)buf);
681+ //dMessageBox("DEBUG4-5!!");
682+
683+ } else {
684+ // text
685+ if (mega <= 1024) { // KB,MB WDF11202-A
686+ char str_total[128], str_used[128], str_avail[128];
687+ ui64toStr(totalb/(uint64)mega, str_total);
688+ ui64toStr((totalb-freeb)/(uint64)mega, str_used);
689+ ui64toStr(freeb/(uint64)mega, str_avail);
690+ //Log("Start I64u 2\n");
691+ wsprintf(buf,"%10s %10s %10s %3d%% %6d %s",
692+ str_total, /* total */
693+ str_used, /* used */
694+ str_avail, /* available */
695+ per, /* percent WDF11101-C */
696+ bpc, /* cluster size */
697+ sh_name /* shaer name */
698+ );
699+ //Log("End I64u 2\n");
700+ //WDF11202-A start
701+ } else { // GB
702+ sprintf(buf,"%10.2f %10.2f %10.2f %3d%% %6d %s",
703+ ((float)((int64)totalb))/mega, /* total */
704+ ((float)((int64)(totalb-freeb)))/mega, /* used */
705+ ((float)((int64)freeb))/mega, /* available */
706+ per, /* percent */
707+ bpc, /* cluster size */
708+ sh_name /* shaer name */
709+ );
710+ } //WDF11202-A
711+ //WDF11202-A end
712+ pDC->TextOut(5+fsz*6,12+fsz*yloc,(CString)buf);
713+ }
714+ //dMessageBox("DEBUG5 ++yloc!!");
715+ ++yloc;
716+ }
717+ }
718+ }
719+ if (graph && hdall > 0) {
720+ // Display Local HDD Total
721+ pDC->SetTextColor(BLUE);
722+ wsprintf(buf,"HDD TOTAL");
723+ pDC->TextOut(5,12+fsz*yloc+2,(CString)buf);
724+
725+ /* WDF11101-A start */
726+ if (hdall >= 1024*1024) {
727+ /* 1GB以上の場合 */
728+ //Log("Start Calc uint64 3\n");
729+ per = (int)(100*(hdall/1024-hdfree/1024)/(hdall/1024));
730+ //Log("End Calc uint64 3\n");
731+ } else {
732+ per = (int)(100*(hdall-hdfree)/hdall);
733+ }
734+ /* WDF11101-A end */
735+
736+ DispBar(pDC, per, yloc, fsz, barsz); //WDF11101-C
737+ if (mega <= 1024) { // KB,MB WDF11202-A
738+ char str_free[128], str_all[128];
739+ ui64toStr(hdfree/(uint64)mega, str_free);
740+ ui64toStr(hdall/(uint64)mega, str_all);
741+ //Log("Start I64u 4\n");
742+ wsprintf(buf,"%8s/%8s %s",str_free,
743+ str_all,
744+ //(mega == 1)? "KB":"MB"
745+ unit //WDF11202-C
746+ );
747+ //Log("End I64u 4\n");
748+ } else { // GB WDF11202-A
749+ sprintf(buf,"%8.2f/%8.2f %s",((float)((int64)hdfree))/mega, //WDF11202-A
750+ ((float)((int64)hdall))/mega, //WDF11202-A
751+ unit //WDF11202-A
752+ ); //WDF11202-A
753+ } //WDF11202-A
754+ pDC->TextOut(5+fsz*18,12+fsz*yloc,(CString)buf);
755+ lowpos = 15+fsz*yloc; // V1.03
756+ }
757+
758+}
759+
760+
761+// DispBar for Disk Info
762+//
763+// IN per : percent
764+// i : y location
765+//
766+void CWdfView::DispBar(CDC* pDC, int per, int i, int fsz, int barsz)
767+{
768+
769+ int j,k;
770+ CRect Rect;
771+ int shadow = 1; // 影の幅 WDF10802-A
772+ int sp = fsz/7; // 上下の空き
773+
774+ if (pDC->IsPrinting()) { // WDF10802-A start
775+ shadow = 3;
776+ pDC->SelectObject(pen4p); // 目盛り用 for Print
777+ } else {
778+ pDC->SelectObject(pen3p); // 目盛り用
779+ }
780+
781+ for (k = 3; k>=0 ; k-=1) {
782+ Rect.SetRect(5+fsz*6-k*shadow,
783+ 12+fsz*i+sp+k*shadow,
784+ 5+fsz*6+barsz*per/100-k*shadow,
785+ 12+fsz*i+fsz-sp+k*shadow);
786+ pDC->FillSolidRect(&Rect,k?RED2:RED);
787+
788+ if (per < 100) {
789+ // free space (green)
790+ Rect.SetRect(5+fsz*6+barsz*per/100-k*shadow,
791+ 12+fsz*i+sp+k*shadow,
792+ 5+fsz*6+barsz -k*shadow,
793+ 12+fsz*i+fsz-sp+k*shadow);
794+ pDC->FillSolidRect(&Rect,k?GREEN2:GREEN);
795+ }
796+
797+ // 目盛り
798+ for (j = 1; j < 10; j++) {
799+ pDC->MoveTo(5+fsz*6+barsz*j/10-1-k*shadow,
800+ 12+fsz*i+sp+k*shadow);
801+ pDC->LineTo(5+fsz*6+barsz*j/10-1-k*shadow,
802+ 12+fsz*i+fsz-sp+k*shadow);
803+ }
804+ }
805+ pDC->SetBkColor(WHITE); // restore bg color
806+}
807+
808+//
809+// wdf Display Memory Info. (BIG)
810+//
811+void CWdfView::DispMemInfo(CDC* pDC)
812+{
813+ //MEMORYSTATUS mst;
814+ char buf[1024];
815+ char label2[512];
816+ int W10MY;
817+ int i;
818+
819+ // clear display
820+ if (!m1st) {
821+ CRect Rect; //WDF10802-C
822+
823+ // WDF11102-C start
824+ CRect rect;
825+ GetWindowRect(&rect);
826+
827+ Rect.SetRect(0,0,
828+ rect.right - rect.left,
829+ rect.bottom - rect.top);
830+ // WDF11102-C end
831+
832+ //WDF10802-A start
833+ if (!pDC->IsPrinting()) {
834+ // In print
835+ pDC->FillSolidRect(&Rect,BLACK);
836+ }
837+ //WDF10802-A end
838+
839+ // m1st = 1; // 2回目以降はbgを塗らないための処理
840+ // d1st = 0;
841+ }
842+
843+ for (i = 0; i <= nhost; i++) {
844+ // V1.10-A start
845+ if (i == 0) {
846+ strcpy(label2, "local");
847+ } else {
848+ DispLoad(pDC, &loaddat[i-1][0], loadpt[i-1], i*YSTEP);
849+
850+ strcpy(label2, hosts[i-1]);
851+ if (strlen(label2) > 8) {
852+ label2[8] = '\0';
853+ }
854+ }
855+ // V1.10-A end
856+
857+ pDC->SetBkMode(TRANSPARENT); // 背景透明
858+ // かげ文字 MEMORY/SWAP
859+
860+ if (pDC->IsPrinting()) {
861+ // for Print
862+ W10MY = 130;
863+
864+ pDC->SelectObject(&newfont4); //set text font
865+ pDC->SetTextColor(BLACK); //set text color
866+
867+ //pDC->TextOut(250,150,"WinDF Memory Status.");
868+ pDC->SetWindowOrg(-250, -250);
869+ pDC->TextOut(0, -80, "WinDF Memory Status.");
870+
871+ // label(hostname)表示 V1.10-A start
872+ pDC->TextOut(10, 5+YSTEP*i*9, (CString)label2); //WDF11302-C
873+ // V1.10-A end
874+
875+ pDC->SelectObject(&newfont3); // set text font
876+ pDC->SetTextColor(YELLOW2); // set text color
877+ // MEMORY for Print
878+ wsprintf(buf,"MEM");
879+ pDC->TextOut(10-9,80+9+YSTEP*i*9,(CString)buf); //WDF11302-C
880+ pDC->SetTextColor(YELLOW); // set text color
881+ pDC->TextOut(10, 80+YSTEP*i*9, (CString)buf); //WDF11302-C
882+ // SWAP
883+ wsprintf(buf,"SWAP");
884+ pDC->SetTextColor(YELLOW2); // set text color
885+ pDC->TextOut(10-9, 160+9+YSTEP*i*9, (CString)buf); //WDF11302-C
886+ pDC->SetTextColor(YELLOW); // set text color
887+ pDC->TextOut(10, 160+YSTEP*i*9, (CString)buf); //WDF11302-C
888+ } else {
889+ W10MY = 20;
890+
891+ // label(hostname)表示 V1.10-A start
892+ pDC->SelectObject(&newfont0); //set text font
893+ if (i > 0 && netf[i-1] > 0) {
894+ pDC->SetTextColor(RED); //set text color (not avail)
895+ } else {
896+ pDC->SetTextColor(WHITE); //set text color (available)
897+ }
898+ pDC->TextOut(5, 3+i*YSTEP, (CString)label2);
899+ // V1.10-A end
900+
901+ pDC->SelectObject(&newfont); // set text font
902+ pDC->SetTextColor(YELLOW2); // set text color
903+ // MEMORY mini
904+ wsprintf(buf,"MEM");
905+ pDC->TextOut(5-3,18+3+YSTEP*i,(CString)buf);
906+ pDC->SetTextColor(YELLOW); // set text color
907+ pDC->TextOut(5, 18+YSTEP*i, (CString)buf);
908+ // SWAP
909+ wsprintf(buf,"SWAP");
910+ pDC->SetTextColor(YELLOW2); // set text color
911+ pDC->TextOut(5-3,18+(20)+3+YSTEP*i,(CString)buf);
912+ pDC->SetTextColor(YELLOW); // set text color
913+ pDC->TextOut(5, 18+(20)+YSTEP*i, (CString)buf);
914+ }
915+
916+ // メモリ情報表示
917+ if (i == 0) {
918+ DispMemBar(pDC, &memdat[i], 0);
919+ } else {
920+ if (netf[i-1] > 0) {
921+ --netf[i-1];
922+ }
923+ //DispLoad(pDC, &loaddat[i-1][0], loadpt[i-1], i*YSTEP);
924+ DispMemBar(pDC, &memdat[i], i*YSTEP);
925+ }
926+ }
927+
928+}
929+
930+//
931+// DispLoad for Load Info (for Linux only) WDF11301-A
932+//
933+// IN load[] : load info
934+// loadpos : load oldest pointer
935+// yofs : y offset
936+//
937+#define LOAD_H 48 // xload height
938+void CWdfView::DispLoad(CDC* pDC, int *load, int aloadpt, int yofs)
939+{
940+
941+ int i, j;
942+ int max = 0;
943+ int latest_load = 0; // latest load value
944+ int zoom = 1;
945+ char buf[256];
946+ CRect Rect;
947+
948+ yofs += 5;
949+
950+ if (pDC->IsPrinting()) {
951+ yofs *= 9;
952+ zoom = 5;
953+ } else {
954+ }
955+
956+ // xload BG
957+ Rect.SetRect((loadpos-3)*zoom, yofs+(3)*zoom,
958+ (loadpos+MAX_LOAD_HIST-3)*zoom, yofs+(LOAD_H+1+3)*zoom);
959+ pDC->FillSolidRect(&Rect, GRAY5); // shadow
960+
961+ Rect.SetRect((loadpos)*zoom, yofs+(1)*zoom,
962+ (loadpos+MAX_LOAD_HIST)*zoom, yofs+(LOAD_H+1)*zoom);
963+ pDC->FillSolidRect(&Rect, RED3); // xload BG
964+
965+ // 最大値を求める
966+ for (i = 0; i < MAX_LOAD_HIST; i++) {
967+ if (load[i] > max) {
968+ max = load[i];
969+ }
970+ }
971+
972+ // 縦軸の最大目盛を求める
973+ max = ((max+100)/100)*100;
974+
975+ //// 負荷グラフ
976+ pDC->SelectObject(pen1p); // red pen
977+ i = 0;
978+ for (j = aloadpt; j < MAX_LOAD_HIST; j++) {
979+ pDC->MoveTo((loadpos+i)*zoom, yofs+(LOAD_H)*zoom);
980+ pDC->LineTo((loadpos+i)*zoom, yofs+(LOAD_H-load[j]*LOAD_H/max)*zoom);
981+ if (load[j] > max) {
982+ max = load[j];
983+ }
984+ latest_load = load[j];
985+ ++i;
986+ }
987+ for (j = 0; j < aloadpt; j++) {
988+ pDC->MoveTo((loadpos+i)*zoom, yofs+(LOAD_H)*zoom);
989+ pDC->LineTo((loadpos+i)*zoom, yofs+(LOAD_H-load[j]*LOAD_H/max)*zoom);
990+ if (load[j] > max) {
991+ max = load[j];
992+ }
993+ latest_load = load[j];
994+ ++i;
995+ }
996+
997+ // XLoad 目盛り (横線)
998+ if (max >= 100) {
999+ pDC->SelectObject(pen5p); // black for print
1000+ for (j = 1; j < max/100; j++) {
1001+ pDC->MoveTo((loadpos)*zoom,
1002+ yofs+(LOAD_H-(j*LOAD_H/(max/100)))*zoom);
1003+ pDC->LineTo((loadpos+MAX_LOAD_HIST)*zoom,
1004+ yofs+(LOAD_H-(j*LOAD_H/(max/100)))*zoom);
1005+ }
1006+ }
1007+
1008+ // 最新Laod値表示
1009+ if (pDC->IsPrinting()) {
1010+ pDC->SelectObject(&newfont4); // set text font (for print)
1011+ } else {
1012+ pDC->SelectObject(&newfont5); // set text font (no bold)
1013+ }
1014+ pDC->SetTextColor(ORANGE); // set text color
1015+ //sprintf(buf, "%d", latest_load);
1016+ sprintf(buf, "%.2f", ((float)latest_load)/100);
1017+ pDC->TextOut((loadpos)*zoom, yofs+(1)*zoom ,(CString)buf);
1018+
1019+ pDC->SetBkColor(WHITE); // restore bg color
1020+}
1021+
1022+//
1023+// DispMemBar for Mem Info
1024+//
1025+// IN tm : Total Memory
1026+// fm : Free Memory
1027+// ts : Total Swap Space
1028+// fs : Free Swap Space
1029+// yofs : y offset
1030+//
1031+void CWdfView::DispMemBar(CDC* pDC, mem_t *mem, int yofs)
1032+{
1033+
1034+ int j,k;
1035+ CRect Rect;
1036+ char buf[256];
1037+ int W10MY; // 縦幅のパラメタ(W10Mの基本値) V1.07-A
1038+ int W10M; // 10MBのピクセル幅
1039+ int OFS;
1040+ int memh,swaph;
1041+ int shadow = 1; // 影の幅 WDF10802-A
1042+ unsigned long tm, fm, ts, fs, bm, cm;
1043+ unsigned long mmax, smax; // WDF11502-A
1044+
1045+ tm = (unsigned long)(mem->total/1024);
1046+ fm = (unsigned long)(mem->free/1024);
1047+ bm = (unsigned long)(mem->buffers/1024);
1048+ cm = (unsigned long)(mem->cached/1024);
1049+ ts = (unsigned long)(mem->swap_total/1024);
1050+ fs = (unsigned long)(mem->swap_free/1024);
1051+ mmax = (unsigned long)(mem->mem_max/1024); // WDF11502-A
1052+ smax = (unsigned long)(mem->swap_max/1024); // WDF11502-A
1053+
1054+ //sprintf(buf, "tm=%d / fm=%d / ts=%d / fs=%d", tm,fm,ts,fs);
1055+ //MessageBox((CString)buf);
1056+
1057+ // WDF10802-A start
1058+ if (pDC->IsPrinting()) {
1059+ // for Print
1060+ W10MY= 100;
1061+ W10M = W10MY + w10m_ofs * 5;
1062+ OFS = 10+(FSZP/2)*5; // 棒グラフの開始横位置
1063+ memh = 20*4;
1064+ swaph = 40*4;
1065+ shadow = 3;
1066+ yofs *= 9; // WDF11302-C
1067+ } else {
1068+ // WDF10802-A end
1069+ W10MY= 20;
1070+ W10M = W10MY + w10m_ofs; // V1.07-C
1071+ OFS = 45;
1072+ memh = 20;
1073+ swaph = 40;
1074+ }
1075+
1076+ /* WDF11403-A start */
1077+ /* Max値表示 */
1078+ if (disp_max) {
1079+ /* mem max */
1080+ pDC->SelectObject(pen6p); /* purple */
1081+ if (mmax > 0) {
1082+#if 1
1083+ /* 三角 */
1084+ pDC->MoveTo(OFS+(mmax)*W10M/10240-1, memh+yofs-1);
1085+ pDC->LineTo(OFS+(mmax)*W10M/10240-1, memh+yofs-4*shadow);
1086+ pDC->LineTo(OFS+(mmax)*W10M/10240-1+3*shadow, memh+yofs-4*shadow);
1087+ pDC->LineTo(OFS+(mmax)*W10M/10240-1, memh+yofs-1);
1088+ pDC->LineTo(OFS+(mmax)*W10M/10240-1+2*shadow, memh+yofs-4*shadow);
1089+#else
1090+ /* ピン型 */
1091+ pDC->MoveTo(OFS+(mmax)*W10M/10240-1, memh+yofs-1);
1092+ pDC->LineTo(OFS+(mmax)*W10M/10240-1-1*shadow, memh+yofs-4*shadow);
1093+ pDC->LineTo(OFS+(mmax)*W10M/10240-1+1*shadow, memh+yofs-4*shadow);
1094+ pDC->LineTo(OFS+(mmax)*W10M/10240-1, memh+yofs-1);
1095+ pDC->LineTo(OFS+(mmax)*W10M/10240-1, memh+yofs-4*shadow);
1096+#endif
1097+ }
1098+ /* swap max */
1099+ if (smax > 0) {
1100+#if 1
1101+ /* 三角 */
1102+ pDC->MoveTo(OFS+(smax)*W10M/10240-1, swaph+yofs-1);
1103+ pDC->LineTo(OFS+(smax)*W10M/10240-1, swaph+yofs-4*shadow);
1104+ pDC->LineTo(OFS+(smax)*W10M/10240-1+3*shadow, swaph+yofs-4*shadow);
1105+ pDC->LineTo(OFS+(smax)*W10M/10240-1, swaph+yofs-1);
1106+ pDC->LineTo(OFS+(smax)*W10M/10240-1+2*shadow, swaph+yofs-4*shadow);
1107+#else
1108+ /* ピン型 */
1109+ pDC->MoveTo(OFS+(smax)*W10M/10240-1, swaph+yofs-1);
1110+ pDC->LineTo(OFS+(smax)*W10M/10240-1-1*shadow, swaph+yofs-4*shadow);
1111+ pDC->LineTo(OFS+(smax)*W10M/10240-1+1*shadow, swaph+yofs-4*shadow);
1112+ pDC->LineTo(OFS+(smax)*W10M/10240-1, swaph+yofs-1);
1113+ pDC->LineTo(OFS+(smax)*W10M/10240-1, swaph+yofs-4*shadow);
1114+#endif
1115+ }
1116+ }
1117+ /* DF11403-A end */
1118+
1119+ for (k = 4; k>=0 ; k-=1) {
1120+ // Memory (red)
1121+ Rect.SetRect(OFS-k*shadow,
1122+ memh+k*shadow+yofs,
1123+ OFS+(tm)*W10M/10240-k*shadow,
1124+ memh+W10MY/2+k*shadow+yofs);
1125+ pDC->FillSolidRect(&Rect,k?RED2:RED);
1126+
1127+ if (yofs && cm > 0) {
1128+ // cached space (orange)
1129+ Rect.SetRect(OFS+(tm-fm-bm-cm)*W10M/10240-k*shadow,
1130+ memh+k*shadow+yofs,
1131+ OFS+(tm-fm-bm)*W10M/10240-k*shadow,
1132+ memh+W10MY/2+k*shadow+yofs);
1133+ pDC->FillSolidRect(&Rect,k?ORANGE2:ORANGE);
1134+ }
1135+
1136+ if (yofs && bm > 0) {
1137+ // buffers space (yellow)
1138+ Rect.SetRect(OFS+(tm-fm-bm)*W10M/10240-k*shadow,
1139+ memh+k*shadow+yofs,
1140+ OFS+(tm-fm)*W10M/10240-k*shadow,
1141+ memh+W10MY/2+k*shadow+yofs);
1142+ pDC->FillSolidRect(&Rect,k?YELLOW2:YELLOW);
1143+ }
1144+
1145+ if (fm > 0) {
1146+ // free space (green)
1147+ Rect.SetRect(OFS+(tm-fm)*W10M/10240-k*shadow,
1148+ memh+k*shadow+yofs,
1149+ OFS+(tm)*W10M/10240-k*shadow,
1150+ memh+W10MY/2+k*shadow+yofs);
1151+ pDC->FillSolidRect(&Rect,k?GREEN2:GREEN);
1152+ }
1153+
1154+ // Swap
1155+ Rect.SetRect(OFS-k*shadow,
1156+ swaph+k*shadow+yofs,
1157+ OFS+(ts)*W10M/10240-k*shadow,
1158+ swaph+W10MY/2+k*shadow+yofs);
1159+ pDC->FillSolidRect(&Rect,k?RED2:RED);
1160+ if (fs > 0) {
1161+ // free space (green)
1162+ Rect.SetRect(OFS+(abs(ts-fs))*W10M/10240-k*shadow,
1163+ swaph+k*shadow+yofs,
1164+ OFS+(ts)*W10M/10240-k*shadow,
1165+ swaph+W10MY/2+k*shadow+yofs);
1166+ pDC->FillSolidRect(&Rect,k?GREEN2:GREEN);
1167+ }
1168+ // V1.06-A start
1169+ if (m_nt && yofs == 0) {
1170+ // NTの場合、swapサイズ中のメモリ分 (orange)表示
1171+ int ogst; // orange開始点
1172+ ogst = ts-fs-(tm-fm);
1173+ if (ogst < 0) {
1174+ // swapがメモリよりも小さいことがあるため。
1175+ // 結局NTのSWAPって本当にそれだけ使ってるのか???
1176+ ogst = 0;
1177+ }
1178+ Rect.SetRect(OFS+(ogst)*W10M/10240-k*shadow,
1179+ swaph+k*shadow+yofs,
1180+ OFS+(abs(ts-fs))*W10M/10240-k*shadow,
1181+ swaph+W10MY/2+k*shadow+yofs);
1182+ pDC->FillSolidRect(&Rect,k?ORANGE2:ORANGE);
1183+ }
1184+ // V1.06-A end
1185+
1186+ // 目盛り
1187+ if (pDC->IsPrinting()) {
1188+ // for print
1189+ pDC->SelectObject(pen4p); // black for print
1190+ } else {
1191+ pDC->SelectObject(pen3p); // white
1192+ }
1193+ for (j = 1; j < ((int)(tm/10240))+2; j++) {
1194+ if (w10m_ofs < -15 && (j % 5 != 0)) continue; //WDF11304-A
1195+ if (w10m_ofs < -18 && (j % 10 != 0)) continue; //WDF11503-A
1196+ pDC->MoveTo(OFS+j*W10M-1-k*shadow,memh+k*shadow+yofs);
1197+ pDC->LineTo(OFS+j*W10M-1-k*shadow,memh+W10MY/2+k*shadow+yofs);
1198+ }
1199+ for (j = 1; j < ((int)(ts/10240))+2; j++) {
1200+ if (w10m_ofs < -15 && (j % 5 != 0)) continue; //WDF11304-A
1201+ if (w10m_ofs < -18 && (j % 10 != 0)) continue; //WDF11503-A
1202+ pDC->MoveTo(OFS+j*W10M-1-k*shadow,swaph+k*shadow+yofs);
1203+ pDC->LineTo(OFS+j*W10M-1-k*shadow,swaph+W10MY/2+k*shadow+yofs);
1204+ }
1205+ }
1206+
1207+ // 単位表示
1208+ // WDF10802-A start
1209+ if (pDC->IsPrinting()) {
1210+ pDC->SelectObject(&newfont4); //set text font
1211+ } else {
1212+ // WDF10802-A end
1213+ pDC->SelectObject(&newfont0); //set text font
1214+ }
1215+
1216+ if (pDC->IsPrinting()) { //WDF10802-A
1217+ // for Printer //WDF10802-A
1218+ pDC->SetTextColor(BLACK); //set text color //WDF10802-A
1219+ pDC->SetBkColor(WHITE); //set text bg color //WDF10802-A
1220+ // メモリ情報表示(文字列)
1221+ DispMemStr(pDC, tm, fm, ts, fs, OFS, yofs); //WDF10802-A
1222+ } else { //WDF10802-A
1223+ pDC->SetTextColor(WHITE); //set text color
1224+ pDC->SetBkColor(BLACK); //set text bg color
1225+ } //WDF10802-A
1226+
1227+ for (j = 1; j < ((int)( ((tm > ts)?tm:ts)/10240))+2; j++) {
1228+ if (IsSkipDisp(j)) continue; // V1.07-A
1229+ // WDF10802-A start
1230+ if (pDC->IsPrinting()) {
1231+ wsprintf(buf,"%d",j*10);
1232+ pDC->TextOut(OFS+j*W10M-FSZ*2,5+yofs,(CString)buf);
1233+ } else {
1234+ // WDF10802-A end
1235+ wsprintf(buf,"%d",j*10);
1236+ pDC->TextOut(40+j*W10M,3+yofs,(CString)buf);
1237+ // 単位への補助線
1238+ pDC->MoveTo(OFS+j*W10M-1, memh+yofs); // WF11503-A
1239+ pDC->LineTo(OFS+j*W10M-1+0, memh+yofs-2); // WF11503-A
1240+ }
1241+ }
1242+ pDC->SetBkColor(WHITE); // restore bg color
1243+}
1244+
1245+//
1246+// DispMemStr for Mem Info WDF10802-A
1247+//
1248+// IN tm : Total Memory (KB)
1249+// fm : Free Memory (KB)
1250+// ts : Total Swap Space (KB)
1251+// fs : Free Swap Space (KB)
1252+//
1253+void CWdfView::DispMemStr(CDC* pDC, int tm, int fm, int ts, int fs, int ofs, int yofs)
1254+{
1255+ char buf[1024];
1256+
1257+ wsprintf(buf,"Memory Total :%7d KB", tm);
1258+ pDC->TextOut(ofs, yofs + 240,(CString)buf);
1259+ wsprintf(buf,"Memory Used :%7d KB", (tm-fm));
1260+ pDC->TextOut(ofs, yofs + 240+(FSZP+20)/2*1,(CString)buf);
1261+ wsprintf(buf,"Memory Free :%7d KB", fm);
1262+ pDC->TextOut(ofs, yofs + 240+(FSZP+20)/2*2,(CString)buf);
1263+ wsprintf(buf,"Swap Total :%7d KB", ts);
1264+ pDC->TextOut(ofs, yofs + 240+(FSZP+20)/2*3,(CString)buf);
1265+ wsprintf(buf,"Swap Used :%7d KB", (ts-fs));
1266+ pDC->TextOut(ofs, yofs + 240+(FSZP+20)/2*4,(CString)buf);
1267+ wsprintf(buf,"Swap Free :%7d KB", fs);
1268+ pDC->TextOut(ofs, yofs + 240+(FSZP+20)/2*5,(CString)buf);
1269+}
1270+
1271+void CWdfView::OnLButtonDown(UINT nFlags, CPoint point)
1272+{
1273+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1274+
1275+ // WDF11301-A start
1276+ if (mem) { // メモリ表示の場合のみ
1277+ if (loadpos <= point.x && point.x <= loadpos+MAX_LOAD_HIST) {
1278+ // グラフ位置あたりをドラッグした場合
1279+ m_dragL = 1; // move xload
1280+ m_dragx0 = point.x; // ドラッグ開始位置保存
1281+ }
1282+ }
1283+ // WDF11301-A end
1284+
1285+ // ボタンが押されたら再表示
1286+ Invalidate(FALSE); // WDF11401-C
1287+
1288+ CView::OnLButtonDown(nFlags, point);
1289+}
1290+
1291+// V1.07 for change scale
1292+void CWdfView::OnLButtonUp(UINT nFlags, CPoint point)
1293+{
1294+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1295+ m_dragL = 0;
1296+
1297+ CView::OnLButtonUp(nFlags, point);
1298+}
1299+
1300+void CWdfView::OnSize(UINT nType, int cx, int cy)
1301+{
1302+ CView::OnSize(nType, cx, cy);
1303+
1304+ // TODO: この位置にメッセージ ハンドラ用のコードを追加してください
1305+
1306+}
1307+
1308+void CWdfView::OnMove(int x, int y)
1309+{
1310+ // RECT rect;
1311+#if 0
1312+ char buf[1024];
1313+
1314+ wsprintf(buf,"x = %d / y = %d",x,y); // DEBUG
1315+ MessageBox((CString)buf); // DEBUG
1316+#endif
1317+
1318+ CView::OnMove(x, y);
1319+
1320+ // TODO: この位置にメッセージ ハンドラ用のコードを追加してください
1321+ // GetWindowRect(&rect);
1322+ // rect.left = 10;
1323+ // rect.top = 10;
1324+ // rect.right = 200;
1325+ // rect.bottom = 200;
1326+ // MoveWindow(&rect,TRUE);
1327+
1328+}
1329+
1330+#define MVLIMX 30
1331+#define MVLIMY 15
1332+void CWdfView::OnMouseMove(UINT nFlags, CPoint point)
1333+{
1334+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1335+
1336+
1337+#if 0
1338+ char buf[256];
1339+ wsprintf(buf,"mx=%d my=%d",point.x,point.y);
1340+ MessageBox(buf);
1341+#endif
1342+
1343+ if (point.x > MVLIMX && point.x < width[mem] - MVLIMX &&
1344+ point.y > MVLIMY && point.y < height[mem] - MVLIMY - framey &&
1345+ movef) {
1346+ mf->MoveFrame(); // V1.03
1347+ }
1348+ if (activef) {
1349+ SetForegroundWindow(); // V1.05 Auto Rise
1350+ }
1351+
1352+ if (m_drag) { // V1.07 change scale
1353+ w10m_ofs += (point.x - m_dragx0);
1354+ //if (w10m_ofs < -15) w10m_ofs = -15;
1355+ //if (w10m_ofs < -18) w10m_ofs = -18; // WDF11304-C
1356+ if (w10m_ofs < -19) w10m_ofs = -19; // WDF11503-C
1357+ if (w10m_ofs > 1000) w10m_ofs = 1000;
1358+ m_dragx0 = point.x;
1359+ Invalidate(FALSE); // 再表示 WDF11401-C
1360+ }
1361+
1362+ if (m_dragL) { // WDF11301-A move xload
1363+ loadpos += (point.x - m_dragx0);
1364+ m_dragx0 = point.x;
1365+ Invalidate(FALSE); // 再表示 WDF11401-C
1366+ }
1367+
1368+ CView::OnMouseMove(nFlags, point);
1369+}
1370+
1371+// V1.02
1372+void CWdfView::OnLButtonDblClk(UINT nFlags, CPoint point)
1373+{
1374+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1375+ char buf[256];
1376+
1377+ // TODO: この位置にコマンド ハンドラ用のコードを追加してください
1378+ mem = 1-mem;
1379+
1380+ // Window タイトル変更
1381+#ifdef WIN98
1382+ wsprintf(buf,"WinDF98 Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
1383+#else
1384+ wsprintf(buf,"WinDF Ver%s - %s", VER, mem?"Memory Info":"Disk Info");
1385+#endif
1386+ SetWindowText(buf);
1387+
1388+ Invalidate(FALSE); // 再表示 WDF11401-C
1389+
1390+ mf->ResizeFrame(); // V1.03
1391+
1392+ CView::OnLButtonDblClk(nFlags, point);
1393+}
1394+
1395+// V1.06-A start
1396+/*
1397+ * GetDiskFreeSpaceEx()が使用可能なバージョンかチェックする。
1398+ *
1399+ * Windows95 OSR2以降のみ使用可能と判断する。(FAT32があるかのチェックのため)
1400+ * (NT4.0でも使用できるようだが)
1401+ *
1402+ * OUT : plat ... dwPlatformIdの値
1403+ * VER_PLATFORM_WIN32_NT ; NT
1404+ * VER_PLATFORM_WIN32_WINDOWS : Win95/Win98
1405+ *
1406+ * 戻り値 : 1:GetDiskFreeSpaceEx()使用可能(Win95 OSR2 以降)
1407+ * 0:使用不可
1408+ */
1409+int CWdfView::FreeExAvail(int *plat)
1410+{
1411+ char *strPlat = "unknown";
1412+ OSVERSIONINFO ver;
1413+ char msg[256];
1414+
1415+ *plat = 0;
1416+
1417+ memset(&ver, 0, sizeof(OSVERSIONINFO));
1418+ ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
1419+
1420+ if (GetVersionEx(&ver)) {
1421+ *plat = ver.dwPlatformId;
1422+ if (ver.dwPlatformId == VER_PLATFORM_WIN32s) {
1423+ strPlat = "Windows 3.1";
1424+ } else if (ver.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
1425+ strPlat = "Windows 95";
1426+ } else if (ver.dwPlatformId == VER_PLATFORM_WIN32_NT) {
1427+ strPlat = "Windows NT";
1428+ }
1429+
1430+ /* Win95 OSR2以降か? */
1431+ if (ver.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS &&
1432+ ver.dwBuildNumber > 1000) {
1433+ return 1;
1434+ }
1435+ } else {
1436+ wsprintf(msg,"GetVersionEx() error(%d)\n",GetLastError());
1437+ MessageBox(msg);
1438+ }
1439+ return 0;
1440+}
1441+
1442+/*
1443+ * Devide1024()
1444+ * ULARGE_INTEGER を1024で割って、戻り値として返す。
1445+ *
1446+ */
1447+
1448+void CWdfView::Devide1024(ULARGE_INTEGER *uli, u_int *ui)
1449+{
1450+ //u_int ans;
1451+
1452+ //MessageBox("Devide1024!!");
1453+ *ui = (uli->LowPart >> 10); /* 1024で割る */
1454+ *ui |= (uli->HighPart << 22); /* 4G超部分を1024で割ったものをORするV1.06.2*/
1455+ //dMessageBox("Devide1024 end!!");
1456+
1457+ //return ans;
1458+}
1459+// V1.06-A end
1460+
1461+// WDF11601-A start
1462+/*
1463+ * Hyper2ui64()
1464+ * ULARGE_INTEGER を uint64(unsigned __int64)に変換する
1465+ *
1466+ */
1467+void CWdfView::Hyper2ui64(ULARGE_INTEGER uli, uint64 *ui)
1468+{
1469+ //u_int ans;
1470+
1471+ //MessageBox("Hyper2ui64!!");
1472+ *ui = uli.HighPart;
1473+ *ui *= 0x10000; // 16bit shift
1474+ *ui *= 0x10000; // 16bit shift
1475+ *ui += uli.LowPart;
1476+ //MessageBox("Hyper2ui64 end!!");
1477+
1478+ //return ans;
1479+}
1480+// WDF11601-A start
1481+
1482+// V1.07-A start
1483+void CWdfView::OnRButtonDown(UINT nFlags, CPoint point)
1484+{
1485+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1486+ if (mem) { // メモリ表示の場合のみ
1487+ m_drag = 1;
1488+ m_dragx0 = point.x; // ドラッグ開始位置保存
1489+ }
1490+
1491+ CView::OnRButtonDown(nFlags, point);
1492+}
1493+
1494+void CWdfView::OnRButtonUp(UINT nFlags, CPoint point)
1495+{
1496+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1497+ m_drag = 0;
1498+
1499+ CView::OnRButtonUp(nFlags, point);
1500+}
1501+
1502+// 右ダブルクリック
1503+void CWdfView::OnRButtonDblClk(UINT nFlags, CPoint point)
1504+{
1505+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1506+ w10m_ofs = 0; // V1.07 clear scale width offset
1507+ Invalidate(FALSE); // 再表示 WDF11401-C
1508+
1509+ CView::OnRButtonDblClk(nFlags, point);
1510+}
1511+
1512+//
1513+// 目盛り(数字)表示をスキップすべきかを判定
1514+//
1515+int CWdfView::IsSkipDisp(int nn)
1516+{
1517+ int val = 1; // 目盛り表示間隔
1518+
1519+ if (w10m_ofs < -18) { // WDF11503-A
1520+ val = 50; // 500MB単位 WDF11503-A
1521+ } else if (w10m_ofs < -17) { // WDF11304-A
1522+ val = 20; // 200MB単位
1523+ } else if (w10m_ofs < -15) { // WDF11304-A
1524+ val = 10; // 100MB単位
1525+ } else if (w10m_ofs < -10) { // WDF11304-A
1526+ val = 5; // 50MB単位
1527+ } else if (w10m_ofs < -2) {
1528+ val = 2; // 20MB単位
1529+ }
1530+ if ((nn/val)*val == nn) return FALSE; // 表示すべき
1531+ return TRUE; // 表示しないべき
1532+}
1533+// V1.07-A end
1534+
1535+// WDF11401-A start
1536+// リサイズ時にWM_ERASEBKGNDイベントがあがり画面全体が消去されるため、
1537+// 消去メソッドをオーバーライドして消去されないようにする。
1538+BOOL CWdfView::OnEraseBkgnd(CDC* pDC)
1539+{
1540+ // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
1541+
1542+ //return CView::OnEraseBkgnd(pDC);
1543+ return TRUE; // 何もしないようにする。
1544+}
1545+// WDF11401-A end
1546+
1547+// WDF11601-A start
1548+//
1549+// uint64を文字列にする (sprintfが%I64uに対応していないため)
1550+//
1551+char *CWdfView::ui64toStr(uint64 val, char *ostr)
1552+{
1553+ int i;
1554+ char buf[1024];
1555+
1556+ for (i = 0; ; i++) {
1557+ buf[i] = (char)(val - (val/10)*10) + '0'; // 下1桁を取り出して文字にする
1558+ val /= 10;
1559+ if (val == 0) break;
1560+ }
1561+ buf[++i] = '\0';
1562+
1563+ // 逆に並び替える
1564+ for (i = 0; i<(int)strlen(buf); i++) {
1565+ ostr[i] = buf[strlen(buf)-i-1];
1566+ }
1567+ ostr[i] = '\0';
1568+
1569+ return ostr;
1570+}
1571+// WDF11601-A end
1572+
1573+
1574+
--- /dev/null
+++ b/wdf/wdfview.h
@@ -0,0 +1,107 @@
1+// wdfView.h : CWdfView クラスの宣言およびインターフェイスの定義をします。
2+//
3+/////////////////////////////////////////////////////////////////////////////
4+
5+#include "SysInfCl.h"
6+
7+// V1.06-A start
8+typedef unsigned int u_int;
9+typedef BOOL (*DLFUNC)(LPCTSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); // GetDiskFreeSpaceEx()の型
10+// V1.06-A end
11+
12+class CWdfView : public CView
13+{
14+protected: // シリアライズ機能のみから作成します。
15+ CWdfView();
16+ DECLARE_DYNCREATE(CWdfView)
17+
18+// アトリビュート
19+public:
20+ CWdfDoc* GetDocument();
21+
22+// オペレーション
23+public:
24+
25+// オーバーライド
26+ // ClassWizard は仮想関数を生成しオーバーライドします。
27+ //{{AFX_VIRTUAL(CWdfView)
28+ public:
29+ virtual void OnDraw(CDC* pDC); // このビューを描画する際にオーバーライドされます。
30+ virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
31+ protected:
32+ virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
33+ virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
34+ virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
35+ //}}AFX_VIRTUAL
36+
37+// インプリメンテーション
38+public:
39+ virtual ~CWdfView();
40+#ifdef _DEBUG
41+ virtual void AssertValid() const;
42+ virtual void Dump(CDumpContext& dc) const;
43+#endif
44+
45+protected:
46+ // oga func.
47+ void DispDiskInfo(CDC* pDC);
48+ void DispMemInfo(CDC* pDC);
49+ void DispLoad(CDC* pDC, int *load, int loadpos, int yofs); //WDF11301-A
50+ void DispBar(CDC* pDC, int per, int i, int fsz, int barsz);//WDF10802-C
51+ //void DispMemBar(CDC* pDC, int tm, int fm, int ts, int fs, int yofs);
52+ void DispMemBar(CDC* pDC, mem_t *mem, int yofs);
53+ void DispMemStr(CDC* pDC, int tm, int fm, int ts, int fs, int ofs, int yofs); //WDF10802-A
54+ //u_int Devide1024(ULARGE_INTEGER *uli); // V1.06-A
55+ void Devide1024(ULARGE_INTEGER *uli, u_int *ui); // V1.06-A
56+ void Hyper2ui64(ULARGE_INTEGER uli, uint64 *ui); // WDF11601-A
57+ char *ui64toStr(uint64 val, char *ostr); // WDF11601-A
58+ int FreeExAvail(int *plat); // V1.06-A
59+ int IsSkipDisp(int nn); // V1.07-A
60+
61+ // oga var.
62+ CFont newfont, newfont2, newfont0;
63+ CFont newfont3, newfont4; //WDF10802-A
64+ CFont newfont5; //WDF11306-A
65+ CFont* oldfontp;
66+ CPen *pen0p, *pen1p, *pen2p, *pen3p, *pen4p, *oldpenp; //WDF10802-C
67+ CPen *pen5p; //WDF11301-A
68+ CPen *pen6p; //WDF11403-A
69+
70+ CDC DCmem; // パックグラウンド描画用DC //WDF11303-A
71+ CBitmap bmpwk; // DCmem用BMP //WDF11303-A
72+
73+ // V1.06-A start
74+ int m_exok; // 1:GetDiskFreeSpaceEx()が使用できるVersion
75+ int m_nt; // 1:WindowsNTである
76+ HINSTANCE m_hinstLib; // kernel32.dllのハンドル
77+ DLFUNC m_FuncAdd;
78+ // V1.06-A end
79+ int m_drag; // 右ドラッグ中フラグ V1.07-A
80+ int m_dragx0; // 前回のマウス移動イベントのx値 V1.07-A
81+ //SysInfCl *m_pSysInfCl; // リモート情報取得Object V1.10-A
82+ int m_dragL; // 左ドラッグ中フラグ V1.07-A
83+
84+// 生成されたメッセージ マップ関数
85+protected:
86+ //{{AFX_MSG(CWdfView)
87+ afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
88+ afx_msg void OnSize(UINT nType, int cx, int cy);
89+ afx_msg void OnMove(int x, int y);
90+ afx_msg void OnMouseMove(UINT nFlags, CPoint point);
91+ afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
92+ afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
93+ afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
94+ afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
95+ afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point);
96+ afx_msg BOOL OnEraseBkgnd(CDC* pDC);
97+ //}}AFX_MSG
98+ DECLARE_MESSAGE_MAP()
99+};
100+
101+#ifndef _DEBUG // wdfView.cpp ファイルがデバッグ環境の時使用されます。
102+inline CWdfDoc* CWdfView::GetDocument()
103+ { return (CWdfDoc*)m_pDocument; }
104+#endif
105+
106+/////////////////////////////////////////////////////////////////////////////
107+