ホーム » Windows (ページ 12)
「Windows」カテゴリーアーカイブ
B65/R 追加
dynabook B65/R 追加.
はじめに.pdf にある通り,次の作業.
リカバリーメディアの作成.
PC 引越ナビ.
Win 10 のメディアは付属していたが,Win 7 が入っている状態.
セットアップで 32 / 64 ビットの選択があり,
メモリが 4 G なので 32 を選択.
DVD-ROM ドライブのため,BRD-UT16WX を接続して作成.
DVR-R 4.7G メディアは 4 枚で,作成時間は 1 時間程度.
よく知らなかったが,
DVD-ROM ドライブでも DVD-R のメディアは読めるみたい.
旧 PC は TXE/68HE で,USB メモリと LAN ケーブルを使う方法で.
USB メモリは空きが 50 MB 程度のものを利用.
LAN は旧 PC の制限で 100 M bps みたい.
転送されたデータは 100 G 程度で,6 時間位かかった.
その後 Web に接続して,MSSE をインストール.
高 DPI
高 DPI についての情報
MSDN 高 DPI アプリケーションの記述方法
MSDN ユーザー インターフェイス: 高 DPI 対応
blogs.msdn アプリの高 DPI 対応について
PDC 2008 高 DPI 対応の Win32 アプリケーションを記述する
MSDN magazine Windows 8.1 用の高 DPI アプリケーションを作成する
Win 10 10586 3D Builder
3MF 形式ではいたデータが,10586 にしてから開けないでいた.エラー : 0x80004005
model タグに,xmlns 属性が必要になった?
<model unit= "millimeter " xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02 " >
ply だと,
3MF でのテクスチャは未だ.
2016/05/02 テクスチャなどの大文字,小文字も区別される?また,path も / から正しく指定する必要がある.
テクスチャの場合,colorid の指定が object の属性では効果がなくなった?
triangle 内での指定が必要?
Win 10 10586
ドロップダウン付のツールバーで,ボタンが切れる現象は直った?
VS 2005 で作成した「Web セットアップ プロジェクト」のインストールはまだできない?
2015/12/10
ドロップダウン付のツールバーのサイズが正しくない現象が XP でも発生.
初期の Win 10 で現象が発生しやすかったことは確かだが,もっと他にも条件がありそう.
MFC 8 やフラットかどうかなど.
XP で発生した時,MFC 6 の exe は問題なかった.
いつも使用している環境では,フラットにしていないことが多い.
Shell Extension のデバッグ
Shell Extension で,縮小版の背景に GDI+ を使用して,どうも動作が安定しなくなった.
現象としては,環境によるが explorer.exe が「応答なし」に.
GDI+ の GdiplusShutdown の呼び方が悪かったみたいで,DllCanUnloadNow で終わらせる様にした.
また,今回デバッグ用にダンプする様にしていて,そのファイルをエクスプローラで選択しようとするとフリーズ.
これは,デフォルトでは出力しないことで回避.
今回これらをやっていて,以前から面倒と思っていた ShellExt.dll のデバッグ.
デバッグ版.dll が呼ばれる様に設定して,普通の exe で「開く」ダイアログで dll 内をデバッグできる.
フォルダ以下の同期
先日追加した WD Cloud にソースなどをバックアップしたいと思い探していたら,robocopy.exe を見つけた.
まだ,単純にバックアップをとっているだけ.
robocopy \\DevXP\C_Drive\Temp\ \\WDCloud\Backup\Develop\DevXP\Temp\ /mir
UNICODE のフォルダやファイル名も,コピー中の表示は ‘?’ となるが問題なさそう.
GUI 版の RichCopy があるみたいだが,こっちはまだ未確認.
FTP もいける?
うまく起動しない…
「知人から譲り受けた 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 時間位.
VC 10 でビルドした exe を XP で…
以前から VC10 以降でビルドした exe が Win XP 環境で起動できてなかった(ビルド環境の Win 7 では OK).
—————————
M—.exe – エントリ ポイントが見つかりません
—————————
プロシージャ エントリ ポイント K32GetProcessMemoryInfo がダイナミック リンク ライブラリ KERNEL32.dll から見つかりませんでした。
—————————
OK
—————————
日本語化された GetProcessMemoryInfo には書かれてないが,
こちら (GetProcessMemoryInfo function) には,Win 7 以降変わっているような記述がある.
対応としては App.h(アプリケーションクラスのヘッダファイル)に以下を追加した.
#ifndef PSAPI_VERSION
#define PSAPI_VERSION 1
#pragma comment (lib, “PSAPI.Lib”)
#else
#pragma message (“defined PSAPI_VERSION *************”)
#endif
ファイル数
あるフォルダに,ユーザが作成した 3D データを,自動でファイル名を振って保存する様にしている.
但しファイル名の一部はユーザ指定.
ロジック上は,36^4 で 1,679,616 管理できるはず.
これがいっぱいになったと言われて…
通常の運用であれば,1 日に 100 個はかなりきつい.
それでも 16,000 日かかる.
そんなことがあり,ファイル名の空きを検出するツールを作成中.
かなり前の事だが,iRMX の FD のフォーマット?で,指定しないと 200 個位がデフォルトだったと記憶している.
NTFS ではその様なことはないと思ってたが,はっきりした情報があったのでメモ.
TechNet – ファイル システム
クリップボードに…
オフスクリーンにレンダリングしたものをクリップボードにコピーしていて,
5000x5000x4 バイトの CF_BITMAP がうまく動作しない.
原因は Office クリップボードの制限みたいで 8 M まで.
Office クリップボードにアイテムを追加できない場合の確認事項
無効にして対応.
よくわからないが,以下の様にした.
CF_METAFILEPICT StretchDIBits
CF_BITMAP AlphaBlend
AlphaBlend function (Windows) – TechNet – Microsoft に,
An error occurs (…) if the source device context identifies an enhanced metafile device context.
コピー画像は,
いろいろやっていて,一度 EMF に吐いて
::GetEnhMetaFile(…) で返される HENHMETAFILE を CF_ENHMETAFILE で意図した動作となった.
{
CString tmpPath = ::GetTempPath() ;
tmpPath = CString(::Path_AddLastSP(tmpPath).c_str()) + _T(“Debug.tmp”) ;
tmpPath = CString(::Path_AddLastSP(tmpPath).c_str()) + ::GetFileTitle(::GetModuleFileName()) ;
CString nowStr = CTime::GetCurrentTime().Format(_T(“%d%H%M%S”)) ;
CString tmpName = CString(::Path_AddLastSP(tmpPath).c_str()) + nowStr + _T(“.emf”) ;
::CreateFolder(tmpPath) ;
::ToEMF(dib,tmpName) ;
HENHMETAFILE hMetaFile = ::GetEnhMetaFile(tmpName) ;
return hMetaFile ;
}
…
::SetClipboardData(CF_ENHMETAFILE, hGMemEnhM) ;
i_DIB_x.hxx
i_DIB_Fn.hxx
i_dib.hxx
今度はメモリメタファイル(第 2 引数を NULL)にして,
{
CMetaFileDC mf_DC ;
BOOL ret = mf_DC.CreateEnhanced(NULL,NULL,NULL,NULL) ;
::AlphaBlend (mf_DC.GetSafeHdc(),dRect,dib) ;
HENHMETAFILE hEnhMetaF = mf_DC.CloseEnhanced() ;
return hEnhMetaF ;
}
CreateEnhanced の幾つかの引数が NULL は知らなかった.
CreateEnhMetaFile
Programming Windows 5 18.2.2
Programming Windows 5
XP 環境のクリップブックや,Word 2003 などでの CF_METAFILEPICT がうまくない.
{
CMetaFileDC mf_DC ;
BOOL ret = mf_DC.Create() ;
::StretchDIBits (mf_DC.GetSafeHdc(),dRect,dib) ;
HMETAFILE hMetaFile = mf_DC.Close() ;
hGMemMeta = ::GlobalAlloc( GHND, (DWORD) sizeof(METAFILEPICT)) ;
{
LPMETAFILEPICT lpMFP = (LPMETAFILEPICT)GlobalLock(hGMemMeta) ;
lpMFP->mm = MM_TEXT ;
lpMFP->xExt = dRect.right ;
lpMFP->yExt = dRect.bottom ;
lpMFP->hMF = hMetaFile ;
}
::GlobalUnlock(hGMemMeta) ;
return hGMemMeta ;
}
StretchDIBits とした.
Win 10 TP
Win 10 TP JP 9926 を入れてみた.
詳しく調べてないが,幾つか気になったことを.
VerifyVersionInfo で取る様に直したと思うが,6.2 として認識している?
ウィンドウのフレームの幅が広い?
ドロップダウン付きのツールバー?で,後ろのボタンが切れてしまうことがある.
Web に上げた exe だと?
コンテキストメニューが表示されない
あるダイアログベースの exe をテストしていて,右クリックでメニューが表示されない現象となった.
ボタンによる動作のメニューは表示される.
デバッガで追いかけると,次の様なコードの CMenu::LoadMenu が FALSE となっていた.
void CXxxxDlg::PopupSingleSel(CPoint pt,CWnd *wnd)
{
CMenu menu ;
if (!menu.LoadMenu(IDR_SINGL_SEL)) { return ; }
CMenu* pPopup = menu.GetSubMenu(0);
…
}
ボタンによるメニュー表示は次のコード.
void CXxxxDlg::OnOther()
{
CMenu menu ;
if (!menu.LoadMenu(IDR_OTHER)) { return ; }
CMenu* pPopup = menu.GetSubMenu(0);
…
}
時刻の同期
6/20 に HDL-Z2WM2C2 を追加した.
ソースファイルの保管のサーバとしての利用で,Win7 USB 2 HDD と比べても遜色ない.
ひとつ気になることが,思っていたよりファンの音がうるさい.
先日,クライアントの PC と WSS で,時間が少しずれていたので time.windows.com で時刻を合わせた.
今日時刻を見てみると 10 秒位の差ができてしまっている.
もう少し精度が欲しかったので検索すると,
インターネット時刻機能のポーリング間隔を調整する方法
Windowsの時計がずれる / 自動で正確に合わせる小技 (Windows 7/8.1編)
これらを参考にさせてもらって,1 日に 1 回程度の設定とした.
Win7 srv 2021
VirtualPC の Win 7 で,
ログの名前: System
ソース: srv
日付: 2014/04/25 10:33:13
イベント ID: 2021
タスクのカテゴリ: なし
レベル: 警告
キーワード: クラシック
ユーザー: N/A
コンピューター: DevS
説明:
サーバーは 60 秒間に 1 回、作業項目を割り当てることができませんでした。
検索すると,イベント ID 2021 およびイベント ID 2022 のトラブルシューティング方法.
メモリを 512 M だったのを 1024 に.
同じ様な状況下で 2021 は出ていないので,ひとまず様子見.
2014/05/22 追記
頻度はかなり減ったが,5/19 ~ 5/21 で何度かログが残っている.
Win XP 100%
RegSvr32 で ocx などの登録
ocx や dll の登録は,「管理者として実行」した「コマンド プロンプト」で次の様にを入力する.
RegSvr32 c:\~\AcListFF.ocx
Vista 以降では管理者として実行していないと,
[Window Title]
RegSvr32
[Content]
モジュール “C:\Users\Iwao\Desktop\Temp\AcListFF.ocx” は読み込まれましたが、DllRegisterServer への呼び出しはエラー コード 0x80040200 により失敗しました。
この問題の詳細については、エラー コードを検索語として入力してオンラインで検索してください。
[OK]
次の様に,「コマンド プロンプト」を「管理者として実行」する.
そして,
2024/05/21
RegSvr32 と入力すると
---------------------------
RegSvr32
---------------------------
モジュールを登録するには、バイナリ名を指定する必要があります。
使用法: regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname
既定- DllRegisterServer を呼び出してサーバーを登録する。
/u - DllUnregisterServer を呼び出してサーバーを登録解除する。
/s - サイレント; メッセージ ボックスを表示しない。
/i - /u と併用しない場合は、DllRegisterServer の呼び出しが成功した後で、
DllInstall(TRUE, [cmdline]) を呼び出して dll をインストールする。
/u と併用する場合は、DllInstall(FALSE, [cmdline]) を呼び出して dll を
アンインストールし、DllInstall が成功したら DllUnregisterServer を呼び出す。
/n - DllRegisterServer または DllUnregisterServer を呼び出さない。
このオプションは /i と併用する必要がある。
dllname - エントリ ポイントを呼び出す DLL への (絶対または相対) パス。この DLL は、選択したオプション (DllRegisterServer、DllUnregisterServer、DllInstall) に応じて呼び出されるエントリ ポイントをエクスポートするために必要です。
---------------------------
OK
---------------------------