ホーム » Windows (ページ 13)

Windows」カテゴリーアーカイブ

2025年7月
 12345
6789101112
13141516171819
20212223242526
2728293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 117,940 アクセス




フォルダ以下の同期

先日追加した WD Cloud にソースなどをバックアップしたいと思い探していたら,robocopy.exe を見つけた.
まだ,単純にバックアップをとっているだけ.
  robocopy \\DevXP\C_Drive\Temp\ \\WDCloud\Backup\Develop\DevXP\Temp\ /mir
UNICODE のフォルダやファイル名も,コピー中の表示は ‘?’ となるが問題なさそう.


GUI 版の RichCopy があるみたいだが,こっちはまだ未確認.
FTP もいける?


robocopy 補助ツール
robocopy 補助ツール

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

うまく起動しない…

「知人から譲り受けた 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 時間位.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Windows Update 2015.10

「シャットダウン」に黄色い「盾」のマークがあったので,
  「コントロール パネル」-「Windows Update」を見ると,

この環境では予約した記憶もないのに…

この項目のチェックを外して,「非表示」に.
これで対応できれていば良いが,8 から 8.1 に強制的にアップされたこともあったので…


この件とは直接関係ないと思いたいが,
  PC の調子が悪いと感じたのは,これもあったのか?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ファイル数

あるフォルダに,ユーザが作成した 3D データを,自動でファイル名を振って保存する様にしている.
但しファイル名の一部はユーザ指定.
ロジック上は,36^4 で 1,679,616 管理できるはず.
これがいっぱいになったと言われて…
  通常の運用であれば,1 日に 100 個はかなりきつい.
  それでも 16,000 日かかる.
そんなことがあり,ファイル名の空きを検出するツールを作成中.


かなり前の事だが,iRMX の FD のフォーマット?で,指定しないと 200 個位がデフォルトだったと記憶している.
NTFS ではその様なことはないと思ってたが,はっきりした情報があったのでメモ.
TechNet – ファイル システム

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

クリップボードに…

オフスクリーンにレンダリングしたものをクリップボードにコピーしていて,
  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 とした.


i_ToDIB

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win 10 TP

Win 10 TP JP 9926 を入れてみた.
詳しく調べてないが,幾つか気になったことを.
VerifyVersionInfo で取る様に直したと思うが,6.2 として認識している?
ウィンドウのフレームの幅が広い?

ドロップダウン付きのツールバー?で,後ろのボタンが切れてしまうことがある.
Web に上げた exe だと?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

コンテキストメニューが表示されない

あるダイアログベースの 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);
     …
     }


メニューが表示されない原因はリソース不足.
不要なエクスプローラのウィンドウを閉じて,意図した動作となることを確認.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win 8 環境が…

AP テスト用の Win 8 環境で,今まで Win 8.1 にならない様にしていたのに,…
回避手順を間違えて,8.1 になってしまった.
Win 8 に戻す手段はなさそうで,困ったことに.


MBP は 12/17 に Yosemite に.
今回は時間をおいたので,それ程問題はなさそう.


自分でも AP を作っているのであまり言えないが,(過去に何度かやらかしているので)
Update の品質や,回避する手段などは改善してほしい.
ここ 2 年位で,かなりの時間を取られた様に思う.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

時刻の同期

6/20 に HDL-Z2WM2C2 を追加した.
ソースファイルの保管のサーバとしての利用で,Win7 USB 2 HDD と比べても遜色ない.
ひとつ気になることが,思っていたよりファンの音がうるさい.


先日,クライアントの PC と WSS で,時間が少しずれていたので time.windows.com で時刻を合わせた.
今日時刻を見てみると 10 秒位の差ができてしまっている.
もう少し精度が欲しかったので検索すると,
インターネット時刻機能のポーリング間隔を調整する方法
Windowsの時計がずれる / 自動で正確に合わせる小技 (Windows 7/8.1編)
これらを参考にさせてもらって,1 日に 1 回程度の設定とした.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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 で何度かログが残っている.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win XP 100%

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

WinFile.exe Settings

HKEY_CURRENT_USER\Software\Microsoft\File Manager\Settings

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

RegSvr32 で ocx などの登録

ocx や dll の登録は,「管理者として実行」した「コマンド プロンプト」で次の様にを入力する.
RegSvr32 c:\~\AcListFF.ocx


Vista 以降では管理者として実行していないと,
[Window Title]
RegSvr32
[Content]
モジュール “C:\Users\Iwao\Desktop\Temp\AcListFF.ocx” は読み込まれましたが、DllRegisterServer への呼び出しはエラー コード 0x80040200 により失敗しました。
この問題の詳細については、エラー コードを検索語として入力してオンラインで検索してください。
[OK]
エラー コード 0x80040200 により失敗しました
次の様に,「コマンド プロンプト」を「管理者として実行」する.
「コマンド プロンプト」を「管理者として実行」
そして,
「コマンド プロンプト」で RegSvr32 ___.ocx


ActiveX.exe , ActiveX.dll の登録


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   
---------------------------

RegSvr32



regsvr32 でコンポーネント登録に失敗する
64bit Windowsで32bit DLL・OCX・ActiveXを動作させる仕組みを解説!
Regsvr32には32ビット版と64ビット版がある
Windows 10 / 11(64bit)で32bitのOCXを登録
Windows7などでDLL/OCXのレジストリ登録を自動化する

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

LCMapString , _tmain , setlocale

_mbctombb を呼出しているコードがあり,その対象の箇所は以下の様なコードで置換え可能とわかった.
::LCMapString(::GetUserDefaultLCID(),LCMAP_FULLWIDTH,str,-1,newStr..)


LCMapString の動作をコンソール AP として確認していて,
2 つ目の引数 dwMapFlags で LCMAP_SIMPLIFIED_CHINESE を見つけた.

ちょっと忙しいので詳細は後で,

_tsetlocale(LC_ALL,_T(“”)) を呼出してなかったため,UNICODE.exe でコンソールに何も表示されなかった.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Win7 が勝手に起動

以前にも似た様な現象で悩まされたが,…
この時は,
 Vista プレインストールのディスクが壊れたので,Win 7 に.
 Win 7 としての使用を始めた時からの現象で,14:00 頃の決まった時間に起動された.
 ここに書かれていることがそのまま当てはまったので,その内容で解決した.


今回はちょっと違う.
 起動される時間が不定期.0:00 頃落として,20~30 後や,17:00 頃など.
 休止状態にして,一度落ちてすぐ起動することもあり.
 現象は最近 1 週間位.
 デバイスや AP をインストールした記憶はないが,Update はあり得る.
一先ず,デバイスマネージャの NIC の「…スタンバイ状態を解除…」のチェックを外した.


それとは異なる会社の Win XP
時間がなかったのであまり確認できなかったが,…
「休止状態」にしても,電源が落ちないで再起動となってしまう.
こっちは NIC の関係か?


2012/09/27 追記
Win 7 の方は,「デバイスマネージャ」の設定を変更してから,今の所,勝手には起動していない.


2012/10/09 追記
先日 10/5 会社に行った時,特に設定変更してないのに「休止状態」にできた.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

iShelExt.dll ダウン

explorer.exe の 0x000000018001907b (iShelExt.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0x00000000000000b0 を読み込み中にアクセス違反が発生しました。

コードを見たが,原因が特定できなかったのでハードコピー.


同様に MShellE.dll でも
explorer.exe の 0x0000000180061830 (MShellE.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0xffffffffffffffff を読み込み中にアクセス違反が発生しました。

これもよくわからない.


2012/08/10 追記
explorer.exe の 0x000000018003938e (MShellE.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0xffffffffffffffff を読み込み中にアクセス違反が発生しました。


2012/08/30 追記
explorer.exe の 0x0000000180018e30 (iShelExt.dll) でハンドルされていない例外が発生しました:
0xC0000005: 場所 0x00000000000000c0 を読み込み中にアクセス違反が発生しました。


2012/09/25 追記
Cache のインデックスが 2 ,Cache はクリアされている.


2012/09/27 追記
2 つのスレッドから Profile::GetInt 内を指した状態で止まっている.


2012/10/08 追記
IL_Env_GetStr など,static で確保しているのが原因か?


2012/10/11 追記
やはり,static Env ?


2012/11/12 追記
DocIB::GetBitmap に以下を追加して排他管理する様に変更してみた.
  _MutexS_ mt(FALSE,_T(“DocIB::GetBitmap”)) ;
  MutexS m(&mt) ;
また,Mutex の動作が機能する様にするためには,アプリケーションクラスのヘッダで以下が必要.
  #include AfxMT.h

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

印刷ジョブの削除

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ログオン スクリーンセーバを無効に

[HKEY_USERS\.DEFAULT\Control Panel\Desktop]
“ScreenSaveActive”=”0”
LogonScreenSave.zip

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Shell.Tile…

以前,デスクトップ上のウィンドウを操作したいことがあった.


ToggleDT.scf
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop


TileVert.vbs
Set objShell = CreateObject(“Shell.Application”)
objShell.TileVertically


TileHorz.vbs
Set objShell = CreateObject(“Shell.Application”)
objShell.TileHorizontally


CascadeW.vbs
Set objShell = CreateObject(“Shell.Application”)
objShell.CascadeWindows


//**************************************************************************************************
// ファイル名 :CtrlDskT.cxx
// 機能名 :デスクトップの制御
// 作成者 :
// 作成年月日 :’07/08/08
// 変更履歴 :
//**************************************************************************************************
//
#include <Afx.h>

#include "DelFileE.hxx"
#include "CharMFC.hxx"
#include "ShellExc.hxx"
#include "HelpAPI.hxx"
#include "CtrlDskT.hxx"

////
//*******************************************************************************
// 関数名 :デスクトップの表示
// 作成日 :’07/08/08
//*******************************************************************************
// http://support.microsoft.com/kb/190355/ja
// クイック起動バーに [デスクトップの表示] アイコンを再登録する方法
BOOL ControlDesktop::ToggleDesktop (void)
{
  CString td_scf = ::GetTempPath()+_T("Command.tmp\\") + _T("ToggleDT.scf") ;
  if (::FileIsNothing(td_scf)) {
  // "デスクトップの表示.scf" の生成
    ::CreateEmptyFile(td_scf) ;
    CString tdCmd ;
    tdCmd += _T("[Shell]\r\n") ;
    tdCmd += _T("Command=2\r\n") ;
    tdCmd += _T("IconFile=explorer.exe,3\r\n") ;
    tdCmd += _T("[Taskbar]\r\n") ;
    tdCmd += _T("Command=ToggleDesktop\r\n") ;
    ::SaveText(td_scf,tdCmd) ;
    }
  ShellExec se ;
  se.SetFile(td_scf) ;
  se.Execute() ;
  { // 終了時に削除するように登録
    static DelFileE dfe ;
    dfe.Add(td_scf) ;
    }
  return TRUE ;
  }

////
//*******************************************************************************
// 関数名 :重ねて表示,上下に並べて表示,左右に並べて表示
// 作成日 :’07/08/08
//*******************************************************************************
// http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/jul05/hey0726.mspx
// Hey, Scripting Guy! デスクトップ上にウィンドウを並べて表示する方法はありますか
#define CD_AW_CascadeW 0
#define CD_AW_TileHorz 1
#define CD_AW_TileVert 2

BOOL ControlDesktop::CascadeWindows (void) { return
ArrangeWindows(CD_AW_CascadeW) ; }
BOOL ControlDesktop::TileHorizontally(void) { return
ArrangeWindows(CD_AW_TileHorz) ; }
BOOL ControlDesktop::TileVertically (void) { return
ArrangeWindows(CD_AW_TileVert) ; }

BOOL ControlDesktop::ArrangeWindows (const long type)
{
  CString cw_vbs = ::GetTempPath()+_T("Command.tmp\\") + _T("CascadeW.vbs") ;
  CString th_vbs = ::GetTempPath()+_T("Command.tmp\\") + _T("TileHorz.vbs") ;
  CString tv_vbs = ::GetTempPath()+_T("Command.tmp\\") + _T("TileVert.vbs") ;
  CString cmdvbs ;
  CString cmdExc ;
  switch (type) {
    case CD_AW_CascadeW : cmdvbs = cw_vbs ; cmdExc = _T("objShell.CascadeWindows \r\n") ; break ;
    case CD_AW_TileHorz : cmdvbs = th_vbs ; cmdExc = _T("objShell.TileHorizontally \r\n") ; break ;
    case CD_AW_TileVert : cmdvbs = tv_vbs ; cmdExc = _T("objShell.TileVertically \r\n") ; break ;
    default : cmdvbs = cw_vbs ; cmdExc = _T("objShell.CascadeWindows \r\n") ; break ;
    }
  if (::FileIsNothing(cmdvbs)) {
    ::CreateEmptyFile(cmdvbs) ;
    CString awCmd ;
    awCmd += _T("Set objShell = CreateObject(\"Shell.Application\")\r\n") ;
    awCmd += cmdExc ;
      // objShell.TileHorizontally
      // objShell.TileVertically
      // objShell.CascadeWindows
    ::SaveText(cmdvbs,awCmd) ;
    }
  ShellExec se ;
  se.SetFile(cmdvbs) ;
  se.SetShowCmd(SW_HIDE) ;
  se.Execute() ;
  { // 終了時に削除するように登録
    static DelFileE dfe ;
    dfe.Add(cmdvbs) ;
    }
  return TRUE ;
  }

デスクトップ上にウィンドウを並べて表示する方法はありますか
Shell.TileHorizontally method

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.