ホーム » Windows (ページ 12)

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

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930

カテゴリー

アーカイブ

ブログ統計情報

  • 99,514 アクセス


ファイル数

あるフォルダに,ユーザが作成した 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

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.

Web 接続のリモート

サーバが WIn XP
 リモート デスクトップ Web 接続をインストール
 ms-its:C:\WINDOWS\Help\rdesktop.chm::/rdesktop_install_Webcli.htm
外部にサーバを公開する
 http://www.aterm.jp/function/guide12/model/190/k/index.html
http://(サーバ名)/tsweb/

Web 経由の場合は,サーバ名を入力

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

ビルドエラー fatal error C1060

VC 8 でのビルドでエラー
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxtempl.h(674) : fatal error C1060: ヒープの領域を使い果たしました。
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxtempl.h(675): クラス テンプレート のメンバ関数 ‘void CArray::AssertValid(void) const’ のコンパイル中
with
[
TYPE=Circle,
ARG_TYPE=Circle
]
\\dp340xpp\d_drive\develop\circary.hxx(79) : コンパイルされたクラスの テンプレート のインスタンス化 ‘CArray’ の参照を確認してください
with
[
TYPE=Circle,
ARG_TYPE=Circle
]

エラーメッセージの通り,不要な AP を終了することにより対応.

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.

オフラインファイルのタイムスタンプ

サーバがオフラインの時に,サーバ上のファイルを WinFile.exe で移動
 この時,更新日時が,移動(実際は同期)した日時に変更されてしまう?
 クライアント,サーバ共に Win XP SP3.

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