ホーム » 2015
年別アーカイブ: 2015
WD Cloud に Joomla
WD Cloud に Joomla を追加しようとして,データベースの設定でつまずいていた.
ユーザ名がわからず,検索していたら phpMyAdmin を設定すればよさそうとわかった(pdf の 150 ページ辺り).
これで,ユーザ名に admin を指定して設定できた.
Win 10 10586
ドロップダウン付のツールバーで,ボタンが切れる現象は直った?
VS 2005 で作成した「Web セットアップ プロジェクト」のインストールはまだできない?
2015/12/10
ドロップダウン付のツールバーのサイズが正しくない現象が XP でも発生.
初期の Win 10 で現象が発生しやすかったことは確かだが,もっと他にも条件がありそう.
MFC 8 やフラットかどうかなど.
XP で発生した時,MFC 6 の exe は問題なかった.
いつも使用している環境では,フラットにしていないことが多い.
vector -> tstring
以前 MFC を使用した StringArrayToString を変更したが,今回は STL 版.
tstring String_Join (const std::vector<tstring>& srcAry,LPCTSTR sp)
{
tstring str ;
for (size_t index= 0 ; index<srcAry.size() ; index++) {
str += srcAry[index] ;
if (index+1 == srcAry.size()) { continue ; }
str += sp ;
}
return str ;
}
MFC 版は VC 6 までだったが,STL 版では VC 7 も遅い.
tstring String_Join (const std::vector<tstring>& srcAry,LPCTSTR sp)
{
tstring str ;
v_tstring tmpSA ;
tstring tmpStr ;
for (size_t index= 0 ; index<srcAry.size() ; index++) {
tmpStr += srcAry[index] ;
if (index+1 == srcAry.size()) { continue ; }
if ((index%128) == 100) {
tmpSA.push_back(tmpStr) ;
tmpStr.erase() ;
continue ;
}
tmpStr += sp ;
}
if (!tmpStr.empty()) {
tmpSA.push_back(tmpStr) ;
}
if (tmpSA.size() > 1) {
str = ::String_Join(tmpSA,sp) ;
}
else if (tmpSA.size() == 1) {
str = tmpSA[0] ;
}
return str ;
}
Shell Extension のデバッグ
Shell Extension で,縮小版の背景に GDI+ を使用して,どうも動作が安定しなくなった.
現象としては,環境によるが explorer.exe が「応答なし」に.
GDI+ の GdiplusShutdown の呼び方が悪かったみたいで,DllCanUnloadNow で終わらせる様にした.
また,今回デバッグ用にダンプする様にしていて,そのファイルをエクスプローラで選択しようとするとフリーズ.
これは,デフォルトでは出力しないことで回避.
今回これらをやっていて,以前から面倒と思っていた ShellExt.dll のデバッグ.
デバッグ版.dll が呼ばれる様に設定して,普通の exe で「開く」ダイアログで dll 内をデバッグできる.
VC include lib のパス
VC 6
HKCU\Software\Microsoft\DevStudio\6.0\Build System\Components\Platforms\Win32 (x86)\Directories
VC 7 , 7.1 , 8 , 9
C:\Users\Iwao\AppData\Local\Microsoft\VisualStudio\…\VCComponents.dat
VC 10 , 11 , 12
C:\Users\Iwao\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp. … .user.props
フォルダ以下の同期
先日追加した WD Cloud にソースなどをバックアップしたいと思い探していたら,robocopy.exe を見つけた.
まだ,単純にバックアップをとっているだけ.
robocopy \\DevXP\C_Drive\Temp\ \\WDCloud\Backup\Develop\DevXP\Temp\ /mir
UNICODE のフォルダやファイル名も,コピー中の表示は ‘?’ となるが問題なさそう.
GUI 版の RichCopy があるみたいだが,こっちはまだ未確認.
FTP もいける?
Win 8.1 –> Win 10 ?
勝手に Win 8 から 8.1 に更新された仮想マシン.
VirtualBox が 4.3.30 だったので,5.0.8 に.
しかし,変わらず.
「Win10_Japanese_x32.iso」を使用してインストールしてみた.
* すぐ上の Win 10 ダウンロードのリンク先は,利用 OS ? により異なる様です.この記事は mac を想定しています.
何とか環境を引継ぎインストールできたみたい.
うまく起動しない…
「知人から譲り受けた Win 7 のノート PC の起動が遅い」と言うことで調べてみると,
確かに,起動時のロゴが出て HDD のランプが点きっぱなし,1 時間程そのままにしておいたら起動していた.
怪しいのは HDD .
イベントビューアで確認しようとしたが,起動はするがデータが開けない.
ChkDsk で修復すると,
起動は通常の時間になったと思うが,動作が安定しない.
リカバリメディアの作成
PCG-71712N で実際必要だったメディア数は DVD で 5 枚,DL で 2 枚となっていた.
VPCCB38FJ が正しいモデル名?
ずっと PC についてはいなかったが,それぞれ 20 ~ 30 分程度.
4 枚目が少しかかっていたように思う.HDD の不良セクタの影響?
先ず,リカバリ領域からのリカバリ.2 時間程度.
ちょっと拝借,AP をインストールして今日ビルドした exe をテスト.
今度はリカバリメディアの DVD から
読込?に 1 時間程度(ディスク 5 枚).
さらに 2 時間弱.
Window Update で,170 個程を 6 時間位.
~iwao.n にアップしたものが動かない
//DevXP/Test/T_bxSldr/ を ~iwao.n/T_bxSldr にアップしたら動かない.
js の参照の関係とは思っていたが,少し時間がかかったのでメモ.
js を参照している部分のファイル名に大文字が混在していた.
VHD をバックアップしていたら…
ある程度区切りがついたので,VHD をバックアップ用にコピーしていたら,
64 GB のうち 20 GB 程コピーした段階で読み込めないとエラーに.
ホストのイベントビューアには特にエラーにはなってなかったのに.
また VirtualPC の動作も特に問題なく動いていた(と思ってた).
ChkDsk してみると,「不良クラスタを…」となってしまってる.
Chkdsk は読み取り/書き込みモードで実行されました。
D: のファイル システムをチェックしています
CHKDSK はファイルを検査しています (ステージ 1/3)…
521216 個のファイル レコードが処理されました。
ファイルの検査を完了しました。
244 個の大きなファイル レコードが処理されました。
0 個の問題のあるファイル レコードが処理されました。
0 個の EA レコードが処理されました。
0 個の再解析レコードが処理されました。
CHKDSK はインデックスを検査しています (ステージ 2/3)…
597812 個のインデックス エントリが処理されました。
インデックスの検査を完了しました。
CHKDSK はセキュリティ記述子を検査しています (ステージ 3/3)…
521216 個のファイル SD/SID が処理されました。
ファイル 0x9 のインデックス $SII から使用されていない 25 インデックス エントリを消去しています。
ファイル 0x9 のインデックス $SDH から使用されていない 25 インデックス エントリを消去しています。
25 未使用のセキュリティ記述子を消去しています。
セキュリティ記述子の検査を完了しました。
38299 個のデータ ファイルが処理されました。
CHKDSK は Usn ジャーナルを確認しています…
36424144 バイトの USN が 処理されました。
Usn ジャーナルの確認を完了しました。
オフセット 0xb999f000 で 0x10000 バイトの、状態 0xc0000185 の読み取り障害がありました。
オフセット 0xb99a3000 で 0x1000 バイトの、状態 0xc0000185 の読み取り障害がありました。
オフセット 0xb9a94000 で 0x10000 バイトの、状態 0xc0000185 の読み取り障害がありました。
オフセット 0xb9aa3000 で 0x1000 バイトの、状態 0xc0000185 の読み取り障害がありました。
ログ ファイルの不良クラスターを置換しています。
2 個の不良クラスターを不良クラスター ファイルに追加します。
ボリューム ビットマップ エラーを修復します。
ファイル システムを修正しました。
488384511 KB : 全ディスク領域
437401512 KB : 482638 個のファイル
122388 KB : 38300 個のインデックス
637735 KB : システムで使用中
65536 KB : ログ ファイルが使用
50222868 KB : 使用可能領域
4096 バイト : アロケーション ユニット サイズ
122096127 個 : 全アロケーション ユニット
12555717 個 : 利用可能アロケーション ユニット
VHD のコピーだけなら 30 分程度で終わるが,
VirtualPC が起動するので,個々のファイルをバックアップ.これは半日位かかる.
また,VHD 以外の他のファイルもバックアップしなければならない.
2015/10/02
もう一度チェックしてみると,
Chkdsk は読み取り/書き込みモードで実行されました。
D: のファイル システムをチェックしています
CHKDSK はファイルを検査しています (ステージ 1/3)…
521216 個のファイル レコードが処理されました。
ファイルの検査を完了しました。
244 個の大きなファイル レコードが処理されました。
0 個の問題のあるファイル レコードが処理されました。
0 個の EA レコードが処理されました。
0 個の再解析レコードが処理されました。
CHKDSK はインデックスを検査しています (ステージ 2/3)…
597812 個のインデックス エントリが処理されました。
インデックスの検査を完了しました。
CHKDSK はセキュリティ記述子を検査しています (ステージ 3/3)…
521216 個のファイル SD/SID が処理されました。
セキュリティ記述子の検査を完了しました。
38299 個のデータ ファイルが処理されました。
CHKDSK は Usn ジャーナルを確認しています…
36427184 バイトの USN が 処理されました。
Usn ジャーナルの確認を完了しました。
ファイル システムのチェックが終了しました。問題は見つかりませんでした。
488384511 KB : 全ディスク領域
437401516 KB : 482640 個のファイル
122388 KB : 38300 個のインデックス
637735 KB : システムで使用中
65536 KB : ログ ファイルが使用
50222864 KB : 使用可能領域
4096 バイト : アロケーション ユニット サイズ
122096127 個 : 全アロケーション ユニット
12555716 個 : 利用可能アロケーション ユニット
Chkdsk は読み取り/書き込みモードで実行されました。
D: のファイル システムをチェックしています
CHKDSK はファイルを検査しています (ステージ 1/5)…
521216 個のファイル レコードが処理されました。
ファイルの検査を完了しました。
244 個の大きなファイル レコードが処理されました。
0 個の問題のあるファイル レコードが処理されました。
0 個の EA レコードが処理されました。
0 個の再解析レコードが処理されました。
CHKDSK はインデックスを検査しています (ステージ 2/5)…
597812 個のインデックス エントリが処理されました。
インデックスの検査を完了しました。
CHKDSK はセキュリティ記述子を検査しています (ステージ 3/5)…
521216 個のファイル SD/SID が処理されました。
セキュリティ記述子の検査を完了しました。
38299 個のデータ ファイルが処理されました。
CHKDSK は Usn ジャーナルを確認しています…
36427360 バイトの USN が 処理されました。
Usn ジャーナルの確認を完了しました。
CHKDSK はファイル データを検査しています (ステージ 4/5)…
オフセット 0x27bd1e9000 で 0x10000 バイトの、状態 0xc0000185 の読み取り障害がありました。
オフセット 0x27bd1e9000 で 0x1000 バイトの、状態 0xc0000185 の読み取り障害がありました。
名前 \VirtualM\VIRTUA~1\_DevXP\_DevXP.vhd のファイル 165986 の不良
クラスターを置き換えました。
521200 個のファイルが処理されました。
ファイル データの検査を完了しました。
CHKDSK は空き領域を確認しています (ステージ 5/5)…
12555714 個の空きクラスターが処理されました。
空き領域の検査が終了しました。
1 個の不良クラスターを不良クラスター ファイルに追加します。
CHKDSK はマスター ファイル テーブル (MFT) ビットマップに割り当て済みとして
マークされている空き領域を検出しました。
ボリューム ビットマップ エラーを修復します。
ファイル システムを修正しました。
488384511 KB : 全ディスク領域
437401520 KB : 482641 個のファイル
122388 KB : 38300 個のインデックス
637735 KB : システムで使用中
65536 KB : ログ ファイルが使用
50222856 KB : 使用可能領域
4096 バイト : アロケーション ユニット サイズ
122096127 個 : 全アロケーション ユニット
12555714 個 : 利用可能アロケーション ユニット
VHD をコピーしてみると…
できた!
念のため別の所にもバックアップ.
Chkdsk は、ボリューム スナップショットで読み取り専用モードで実行されました。
D: のファイル システムをチェックしています
ファイル システムの種類は NTFS です。
警告: /F パラメーターが指定されていません
CHKDSK を読み取り専用モードで実行します。
CHKDSK はファイルを検査しています (ステージ 1/3)…
521216 個のファイル レコードが処理されました。
ファイルの検査を完了しました。
232 個の大きなファイル レコードが処理されました。
0 個の問題のあるファイル レコードが処理されました。
0 個の EA レコードが処理されました。
0 個の再解析レコードが処理されました。
CHKDSK はインデックスを検査しています (ステージ 2/3)…
597812 個のインデックス エントリが処理されました。
インデックスの検査を完了しました。
0 個のインデックスなしファイルがスキャンされました。
0 個のインデックスなしファイルが回復されました。
CHKDSK はセキュリティ記述子を検査しています (ステージ 3/3)…
521216 個のファイル SD/SID が処理されました。
セキュリティ記述子の検査を完了しました。
38299 個のデータ ファイルが処理されました。
CHKDSK は Usn ジャーナルを確認しています…
36427792 バイトの USN が 処理されました。
Usn ジャーナルの確認を完了しました。
ファイル システムのチェックが終了しました。問題は見つかりませんでした。
488384511 KB : 全ディスク領域
439891892 KB : 482643 個のファイル
122388 KB : 38300 個のインデックス
12 KB : 不良セクター
637735 KB : システムで使用中
65536 KB : ログ ファイルが使用
47732484 KB : 使用可能領域
4096 バイト : アロケーション ユニット サイズ
122096127 個 : 全アロケーション ユニット
11933121 個 : 利用可能アロケーション ユニット
WD Cloud を使ってみて…
いろいろなサイズのファイルのバックアップを取っていて,
VHD など大きなファイルのコピーで,ローカルの外付け HDD (USB 2 接続)より速そう.
それで簡単に計測してみた.
3 GB のファイルをコピー.
C , D は内蔵 HD .H は USB 2 接続.S は WSS .W は WD Cloud .
秒 | MB/s | |
---|---|---|
C->C | 583 | 5 |
C->D | 573 | 5 |
C->H | 384 | 8 |
C->S | 381 | 8 |
C->W | 389 | 8 |
H->C | 161 | 19 |
H->D | 111 | 29 |
H->S | 109 | 29 |
H->W | 110 | 29 |
S->D | 46 | 70 |
S->H | 133 | 30 |
W->D | 60 | 55 |
W->H | 134 | 30 |
動作を見ていると,内蔵 HDD からの読込で最初のうちは速いがある所を過ぎると 5 MB/s 程度に落ちてしまう.
NAS から内蔵 HDD の時も同様.ファイルサイズが 500 MB 程度なら速いと思う.
上と同じ条件のすべてでは計測はしてないが,10 秒以内.
2015/10/29
ソースなどをバックアップしていて,
時々,コピーが完了する前に何もなかったかの様に終わってしまう.
プロジェクトのバックアップの時は,1 プロジェクトだけコピーして終わっていた.
熱のせい?少し間を置くとコピーできる.すぐだと操作を間違えたかの様.
WD Cloud 追加
スマートフォンと PC のバックアップに使えそうだったので購入.
ユーザーマニュアルを見ながら進めていて,
セットアップアシスタントでの設定の最後の方でエラー?に.
メールアドレスの入力で何か間違えたみたい?
もう一度やり直そうとしても,「このドライブは既にセットアップ済みです」となる.
そのすぐ下のリンクをクリックしてもパスワードが入らず進められない.
結局は,「デバイスの設定に移動」で //wdcloud にアクセスする様になるが,この時のパスワードが違っていた.
「ユーザー」はいつものでパスワードもいつものを入れたつもりが,うまく登録されていなくて空の状態だった.
「ファイルに移動」の方は,上にも書いたが設定されてなかった.
ここでの入力は,メールアドレスとパスワードで,Web 経由の WD Cloud へのアクセスになるみたい.
最初から wdcloud にアクセスする方がわかりやすい様に感じた.
107SH と iPod touch に「WD Cloud モバイルアプリ」をインストール.
Android 版では思った様にバックアップできたが,iOS 版ではバックアップがうまくされてない.
Win 10 IE , Edge
Win 10 の IE や Edge からの User agent を調べていて,
Edge は “Edge/12.10240” が後ろの方にあるのでこれで判断できる.
他に AppleWebKit Chrome Safari などが前にあるので,Edge と限定するためにはコードの変更(判断順の変更)が必要.
IE では “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Trident/8.0; .NET4.0C; .NET4.0E)” となっている.
イントラネット環境で IE 11 とするには,「互換表示設定」の変更が必要.
Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko
MSDN ユーザー エージェント文字列の変更
Win 10 での デスクトップ AP の実行で,
ドロップダウン付のツールバーの表示がおかしくなる現象は,まだ残っているみたい.
ただ,以前の様に簡単には現象を再現できない.
Win 10 Pro 10240 にインストールできない
2015/09/11
IIS をアンインストールして,インストール(「Windows の機能の有効化または無効化」)してみたがダメ.
手作業で環境を作成しようとして…
オートメーションの部分が起動できない.
幾つかのいつもの設定は行ってたが,ちょっと忘れていて,
exe などを置いていたフォルダのアクセス権を正しく設定してなかった.
他に今回の固有の環境であるが,レジストリから登録情報を削除する必要もあった.
うまく動作したのは VC 8 Static MFC だったが VC 12 DLL にすると,またうまく動作しない?
VC 12 Static にしてもダメで VC 8 Static に戻したのに,今度はうまくない.
Win 10 を再起動してうまく通った.
うまく動作しなくなった後,タスクマネージャから終了できないものがありそれが影響するのか?
もう一回 VC 12 でビルドしたものにチャレンジ.
VC 12 Static MFC は通った.
VC 12 DLL MFC でも通り,結局原因は掴めず.
今回の事とは直接関係ないが,エクスプローラが何度か落ちた.
OS 自体の問題なのか,作成した シェルエクステンション の問題なのかは不明.
タスクトレイのチップが 64 …
XP 環境で,タスクトレイのチップが 64 文字で切れてしまっている.
VC8.exe は 64 で切られることはないが,VC 9 以降だとうまくない?
Win 7 環境での動作は問題ない.
まだ詳しく調べられてないが,とりあえずメモ.
2015/09/08
どうも _WIN32_WINNT によるみたい.
Win | UNICODE | MBCS | NOTIFYICONDATA | |
VC 6 | 400 | 152 | 88 | szTip[64] |
VC 7 | 501 | 936 | 488 | dwInfoFlag |
VC 8 | 502 | 936 | 488 | |
VC 9 | 600 | 956 | 508 | hBallonIcon |
VC10 | 601 | 956 | 508 | |
VC11 | 601 | 956 | 508 | |
VC12 | 601 | 956 |
Win は _WIN32_WINNT .
cbSize を NOTYFYICONDATA_V3_SIZE と指定すれば良いのか?
今回は,意図せず 64 文字で切れていたことを避けたかっただけなので,次の様に変更.
NOTIFYICONDATA nid ; ::ZeroMemory(&nid,sizeof(NOTIFYICONDATA)) ;
long maxLenTip = countof(nid.szTip)-1 ;
#if (_MSC_VER >= 1500) // VC 9 ~
if (::GetWindowsVersion() < 6) {
maxLenTip = 64-1 ;
}
#endif
if (::GetWindowsVersion() > maxLenTip) {
…
}
NotifyIcon クラスの使用
ダイアログまたは相当のクラスのヘッダに,NotifyIcon の変数を確保.
タスクトレイにアイコンを表示したい時は,NotifyIcon::Add または Mod を呼出す.
タスクトレイのアイコンを消したい時は,NotifyIcon::Del .
アニメーションの場合,NotifyIcon::StartAnimate とタイマで NotifyIcon::AnimateIcon .
アニメーションアイコンの登録は,NotifyIcon::AddIconA .登録されてない場合は,exe のアイコンと表示なしのトグル.
CAppDlg::OnInitDailog で StartAnimate ,CAppDlg::OnTimer で AnimateIcon だけで,exe アイコンが点滅する.
チップの設定は,NotifyIcon::SetTip .
最小化されたときに表示
void CXxxxDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
::FitWindow(this,&m_Image,0) ;
if (nType == SIZE_MINIMIZED) {
ShowWindow(SW_HIDE) ;
NotifyI.Mod() ;
}
}
ヘッダとソースへの MESSAGE MAP の追加
afx_msg LRESULT OnTrayCallback (WPARAM wParam,LPARAM lParam);
ON_MESSAGE (WM_TRAY_CALLBACK, OnTrayCallback)
マウスのクリックによる動作
LRESULT CXxxxDlg::OnTrayCallback (WPARAM wParam,LPARAM lParam)
{
UINT uID = (UINT)wParam;
UINT uMouseMsg = (UINT)lParam;
if (uMouseMsg == WM_LBUTTONDOWN) {
AfxGetMainWnd()->ShowWindow(SW_SHOW) ;
AfxGetMainWnd()->ShowWindow(SW_SHOWNORMAL) ;
}
if (uMouseMsg == WM_RBUTTONUP) {
CPoint curPos ; ::GetCursorPos(&curPos) ;
PopupMenu (NULL,IDR_POP_MENU,curPos,ID_XXXX) ;
}
return 0 ;
}
WM_TRAY_CALLBACK は,NotifyI.hxx に定義済.
2015/09/03
メニュー表示後,デスクトップなどのクリックでメニューが消えなかったので検索すると,
SetForegroundWindow を呼べば良いとのこと.
if (uMouseMsg == WM_RBUTTONUP) {
CPoint curPos ; ::GetCursorPos(&curPos) ;
SetForegroundWindow() ;
PopupMenu (NULL,IDR_POP_MENU,curPos,ID_XXXX) ;
}