ホーム » メモ
「メモ」カテゴリーアーカイブ
Win11 コンソール AP で DC
今まで Win10 をメインで使用していたので気づかなかったが…
Win10 でうまく使えていた GDI の描画が Win11 ではうまく行われない?
どうも,デフォルトの設定では新しい「ターミナル」が使用されることによるみたい.
ターミナルの「設定」から入って「Windows コンソール ホスト」を選択して「保存」する.
error LNK2001: unresolved …
空のコンソール AP プロジェクトを作成して,_tmain を含む cpp を追加してビルドすると
--------------------Configuration: t_MBP - Win32 Debug--------------------
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
c:\Temp\MBP\t_MBP\Debug.060/t_MBP.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
t_MBP.exe - 3 error(s), 0 warning(s)
この cpp では MFC を使用しているので,「共有 DLL で MFC を使用」に変更する.
他の PC からの再起動
先日から Win10 PC が突然フリーズする現象が発生する様になった.
仮想メモリの設定を自動にしてからは,画面が突然止まってしまう.
マウスやキーも入らない.「Num Lock」を押してもランプは変わらない.
ディスクアクセスのオレンジのランプはアクセスに応じて点滅している.
他の PC から,共有ファイルなどは見える.
「電源ボタン」で休止状態となる様に設定したが,反応はしない.
NAS を含む Linux であれば,SSH 接続して reboot コマンドなどが使用できる.
検索すると幾つか方法がありそう.
* リモートデスクトップ
* shutdown コマンド
* Power Shell の Restart-Computer コマンド
Windows 系OS で、リモートシャットダウンを設定する
パソコンをリモートでシャットダウンまたは再起動する方法は?
他のコンピュータをシャットダウンまたは再起動する方法
リモートデスクトップでの操作は期待できないが,取りあえず設定した.
コマンドによる操作は,対象 PC 上ではうまく機能するが,別の PC からはうまく機能しない.
SSH 接続でもうまくいかない.
結局 SSH 接続する時のアカウントに管理者権限を与えて,そこから shutdown /r /t 300 とすることでうまくいった.
これで目的を達するかの確認は,次にフリーズした時なのでまだ何とも言えない.
Mouse without Borders
先日,Win11 24H2 で調べていた時に見つけた「Mouse without Borders」.
以前は,切替器を使用していた頃もあったが,最近は VNC 接続にしているで必要なくなっていた.
ただ,一つ問題が… VNC 接続のため?「半角/全角」を切替えた直後のキーがうまく入らない.
Win10 と Win11 のそれぞれに「Mouse without Borders」をインストール.
デフォルトの設定のまま,1 週間ほど使用した.
キーはうまく入ることが確認できた.
時々,ホストのタスクバーの「VS」のアイコンが押されてしまい,VS 2017 や 2019 が起動してしまう.
幾つかの設定を変更して,しばらく様子見.
Win11 24H2 対応 ユーザの追加
先日 24H2 をいろいろ調べた時「ゲストログオンを有効にする」ことで対応した.
が,それではセキュリティの問題があるため改めて調べてみた.
それで検索してみたが,わかりやすいページがあまり見つからず,私の環境での設定をまとめた.
画像は仮想マシンで Win10 Home と Win11 Pro 24H2 を用意してのもの.
サーバ側 Win10-Home
「スタート」をクリックして「user」と入力.「他のユーザーの追加、編集、削除」を選択.
「他のユーザー」の「その他のユーザーをこの PC に追加」を選択.
「Microsoft アカウントを持たないユーザーを追加する」をクリック.
共有アクセスするためのユーザー(ここでは “cad” )を追加.この時,必ずパスワードを設定すること.
クライアント側 Win11-24H2
「スタート」をクリックして「shikaku」と入力.「資格情報マネージャー」を選択.
「Windows 資格情報」を選択.「Windows 資格情報の追加」をクリック.
「サーバー名」,「ユーザー名」,「パスワード」を入力して「OK」.
これで \\Win10-Home としてアクセスできる様になる.
Win11 24H2 インストール
Win11 24H2 に上げた環境で,あるパッケージの 2021版での不具合が発生.
最新版にすることでうまく動作する様になったようだが,原因が絞れ切れない.
そのため仮想環境の Win11 21H2 を更新することに.
最初,更新しようとしても Win11 に対応していないと弾かれた.
原因は,仮想マシンを作成したのが VirtualBox 6.1 で TPM 2.0 になっていなかった.
Insider Program に参加したりしてみたが 23H2 までしか上げられなかった.
結局 24H2 の ISO を手に入れ,仮想マシンにマウントしてインストール.
不具合の現象を再現できた.
更に調べると VC 2005 でビルドした exe がうまくない様子.同じコードを 2015 以降でビルドしたものは問題ない.
VC 2008 ,2010 ,2012 ,2013 でビルドして試すと,2005 と 2008 がうまくないことがわかった.
他に 24H2 に更新したことにより,Win10 の共有ドキュメントに接続できなくなってしまった.NAS は OK .
2024/10/26
Win10 の共有ドキュメントに接続できなくなったことへの対応は,Win10 Ent の 2021/11 の時と同じ.
「ゲストログオンを有効にする」必要がある.
Windows11にアップグレード後、ネットワーク上の共有フォルダにアクセスできなくなった。
Windows 11 23H2 から 24H2 に更新するべきか?
Windows11 24H2を今すぐダウンロードしてアップデートする方法
2024/11/15
ゲストログオンを有効にしない共有アクセス用のユーザを追加しての対応方法
サムネイル表示が止まる?
以前作成したエクスプローラのサムネイル表示.
前からの現象だが,不定期に表示が止まってしまうことがあった.
ほとんどが個人的に作成したシェルエクステンションの影響だが,今回は違ったように思う.
全ての explorer.exe を終了させても改善されない.
再起動すれば良いのはわかっているが,順に exe を終了させることに…
dllhost.exe を終了させると,止まっていた表示が動き出した.
ハッキリしたことがわかってないので,とりあえずメモ.
0x80030002
次の様なエラーになると連絡が…
ファイルのコピー
予期しないエラーのため、ファイルをコピーできません。…
エラー 0x80030002: ***** が見つかりませんでした。
よくある “file not found” とはエラーコードが異なる.
ERROR_FILE_NOT_FOUND 0x00000002
また,更新日時やサイズが表示されているので「ファイルがない」わけではなさそう.
表示されているファイル名は ZIP 圧縮したファイルの一部?
タイトルバーがアプリケーション名などになっていないので,API 呼出しの中などで表示されているか?
0x80030002 は STG_E_FILENOTFOUND .
幾つか心当たりがある操作などを試してみたが,現象は確認できなかった.
その後現象が発生しなくなったとのことで詳細はわからず.とりあえずメモ.
VirusTotal 誤検知 trojan
以前よりは良くなった気もするが…
Avast Win32:Evo-gen [Trj]
AVG Win32:Evo-gen [Trj]
GData Win32.Trojan.Agent.8G1FEV
Ikarus Trojan-Spy.Evo
MaxSecure Trojan.Malware.121218.susgen
Skyhigh (SWG) GenericRXWN-PP!3F53C2B1E9DD
Trellix (ENS) Artemis!E2A95C89EB37
以前 VC 2017 などでビルドしたものは誤検知も少なかったと思うが,最近はそうでもない?
今年の初め位から誤検出が増えた気がする.
個人的なツールはほとんど問題ないが,一度誤検知されるとその後いろいろと面倒.
以前 McAfee に報告したが,その時は半年近くかかった.
¥¥(コンピュータ名) を開く
\\(ComputerName) を開きたいと思い,次の様なコードを書いた.
{
tstring self_name = _T("\\\\") + ::GetComputerName() + _T("\\") ;
S_Exec se ;
se.SetFile(self_name.c_str()) ;
se.Execute() ;
}
これはこれでうまく動作するが,それを perplexity に問い合わせると
#include <windows.h>
#include <shellapi.h>
int main()
{
TCHAR computerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(computerName) / sizeof(computerName[0]);
// コンピューター名を取得
if (GetComputerName(computerName, &size))
{
// ネットワークパスを構築
TCHAR networkPath[MAX_PATH];
wsprintf(networkPath, TEXT("\\\\%s"), computerName);
// ShellExecuteを使用してエクスプローラーを起動
ShellExecute(NULL, TEXT("open"), TEXT("explorer.exe"), networkPath, NULL, SW_SHOWNORMAL);
}
return 0;
}
そのままで動作するコードが表示されている.
コンソール AP のアイコン
以前,コンソール AP にアイコンなどのリソースを追加する方法はいろいろとやった.
それを今回,動作時にアイコンを変更できないかと…
最初 Copilot で問合わせたがうまい情報は引っ掛からなかった.
それで今度は最近利用し始めた perplexity で…
「Windows cpp で コンソール AP のアイコンを指定する方法と動的に変更する方法」と入力.
kernel32 にある SetConsoleIcon が使えるらしい.
それで次の様なコードを書いてみたが…
BOOL WINAPI SetConsoleIcon(HICON hIcon)
{
typedef BOOL (WINAPI *SetConsoleIconFn)(HICON);
static SetConsoleIconFn setConsoleIcon = NULL;
if (setConsoleIcon == NULL)
{
HMODULE hKernel32 = GetModuleHandleA("kernel32.dll");
if (hKernel32 == NULL) return FALSE;
setConsoleIcon = (SetConsoleIconFn)GetProcAddress(hKernel32, "SetConsoleIcon");
if (setConsoleIcon == NULL) return FALSE;
}
return setConsoleIcon(hIcon);
}
bool test (c_tstring& str)
{
std::terr << str << std::endl ;
::pause(10) ;
HICON hIcn2 = ::LoadIcon(::GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON2)) ;
HICON hIcn3 = ::LoadIcon(::GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON3)) ;
{
HWND hWnd = ::GetConsoleWindow() ;
::SendMessage(hWnd,WM_SETICON,TRUE, (LPARAM)hIcn2) ;
::SendMessage(hWnd,WM_SETICON,FALSE,(LPARAM)hIcn2) ;
}
::pause(20) ;
{
SetConsoleIcon(hIcn3) ;
}
::pause(30) ;
return true ;
}
Win7 や 8.1 ではうまく変更できたが,Win10 や 11 では変更できなかった.
robocopy エラー 87
IO DATA SSPA-USC500K が手に入ったので,テストを兼ねてソースなどをバックアップ.
自前の「ディレクトリ以下のコピー」ツールでコピーしていると…
100% 新しいファイル 1300 Vxx_P_A_.hxx
2024/06/23 15:44:41 エラー 87 (0x00000057) ファイル属性を変更しています \\DS220\Public\Document\Develop\_.SRC\__Iwao\P_A_gnsa.hxx
パラメーターが間違っています。
5 秒間待機しています... 再試行しています...
全てのファイルがこの様になるわけではない.
原因は,恐らくコピー先が exFAT のため?
ちゃんと調べたわけではないが,更新日時が古い(最近編集していない)ファイルでエラーになる模様.
これらのファイルは,昔 NT サーバなどで管理していたものを NAS に移して運用している.
その後,その NAS 上のものを編集する様になり,更新したものはエラーにはなっていない?
コピーはできているのと,同じコマンドの再実行ではエラーにはならないのでこのままとする.
エラーになったファイルは「作成日時」と「アクセス日時」がコピーしたタイミングに更新されてしまっている.
2024/07/10
改めて調べてみると,コピー元のアクセス日時が正しくない.
SetWindowPos で最前面に
以前から CWnd::SetWindowPos などを使用してウィンドウを最前面にしているツールがいくつかある.
ほとんどの場合これでうまくいっているが,先日テストしていて最前面に移動しない現象を確認.
2 つの exe があり,A.exe から B.exe を起動している.
B.exe はダイアログベースで,そのウィンドウを A.exe のウィンドウより前面に表示するもの.
Spy++ で見ると最前面に移動できた時は WS_EX_TOPMOST がある.
が,うまくいかない場合には WS_EX_TOPMOST がない状態.
いろいろと操作してみたが,なかなか現象が絞れなかった.
結局は B.exe を起動する時,他のウィンドウにフォーカスが移っている?と,最前面にならないみたい.
B.exe の起動をエクスプローラなどから行い,ウィンドウが表示される前にブラウザなどに切替えると最前面にならない.
今回対象のものは,最前面に移動しなくても問題ないと思われるのでこのままとする.
「Windows 検索」設定
Windwos Search の「インデックスのオプション」を開きたいと問い合わせが入った.
以前の Windows であれば「コントロールパネル」から入ると「インデックスのオプション」があった.
Win10 以降?は「コントロールパネル」も簡単には開けない.
Windows の検索ボックスで “インデックスのオプション” と入力すれば良かったのだが…
それが思い出せず,”Windows サーチ” や “Windows 検索” と入力して,うまくたどり着けない.
“Windows Search” と入力しないとうまくないみたい.
「Windows 検索」の「クラッシック」の下の「…検索場所をカスタマイズ…」を選ぶと表示できる.
Windows の設定などは,キーワードを英語で入力する方が良いのかもしれない.
2024/06/19
「スタート」で表示される「検索ボックス」に何か入力すると「…」(オプション メニュー)が表示される.
それを選択すると「インデックス オプション」などがある.
2024/06/20
「インデックス オプション」は次の様なコマンドでも可能なので,::ShellExecute で呼び出す様にした.
control.exe /name Microsoft.IndexingOptions
VirusTotal Trojan 472047
最近 ViruaTotal で,VC 2022 ビルドの exe が引っ掛かる様になった気がする.
Antiy-AVL GrayWare/Win32.Wacapew
Arcabit Trojan.Lazy.D733EF [many]
BitDefender Gen:Variant.Lazy.472047
Emsisoft Gen:Variant.Lazy.472047 (B)
GData Gen:Variant.Lazy.474792
MAX Malware (ai Score=87)
MaxSecure Trojan.Malware.121218.susgen
McAfee GenericRXWN-PP!71DE1C7042EF
Rising Trojan.Generic@AI.83 (RDML:km3T2NBP/pqn91WCd2xwaA)
Skyhigh (SWG) GenericRXWN-PP!71DE1C7042EF
Trellix (FireEye) Gen:Variant.Lazy.472047
VIPRE Gen:Variant.Lazy.472047
VC 2015 や 2017 でビルドしたものはほぼ大丈夫だが,2019 や 2022 ではうまくない.
また,以前は検出されなかったものが,引っ掛かる様になったものもある.
誤検知と思われるが,どうしたものか…
プレーン テキスト フィルター ?
Windows Search でインデックスを作成するために,
[HKEY_CLASSES_ROOT\.(ext)\PersistentHandler]
@="{5E941D80-BF96-11CD-B579-08002B30BFEB}"
[HKEY_CURRENT_USER\SOFTWARE\Classes\.(ext)\PersistentHandler]
@="{5E941D80-BF96-11CD-B579-08002B30BFEB}"
いろいろ試したが,HKLM 以下が必要?
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.(ext)\PersistentHandler]
@="{5E941D80-BF96-11CD-B579-08002B30BFEB}"
反映される(インデックスが作成される)までに時間がかかるのでよくわからない.
確実なのは「プレーン テキスト フィルター」に設定して,「インデックスの設定」タブの「再構築」か?
ネットワーク上のファイルも検索できるみたいだが…
検索場所を指定して「 *.txt MICROSOFT FOUNDATION CLASS LIBRARY 」.
ネットワークドライブとして割り当てると検索できる?
検索されるまで時間がかかるのと,サーバにより?うまく検索できないことがある.
C2440: ‘return’ : cannot convert …
以前,ini や レジストリ を操作する関数を作成した.
それで,少しずつ書き換えていると…
--------------------Configuration: PrtctT - Win32 Debug--------------------
Compiling...
PrtctT.cpp
t:\develop\_.src\__win\ri_reg.hxx(383) : error C2440: 'return' : cannot convert from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'int'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
l:\document\develop\tools\_yet\_other\key2013\prtctt\prtctt.cpp(162) : see reference to function template instantiation 'int __cdecl REG_get(struct HKEY__ *,const class std::basic_string<char,struct std::char_traits<char>,class std::allocato
r<char> > &,const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,const int &)' being compiled
Error executing cl.exe.
PrtctT_d.exe - 1 error(s), 0 warning(s)
通常の関数であればうまく機能すると思うが…
関数 template は難しい.
コメントにしている部分で書き換えれば OK .
シン クラウド Free に WordPress
「サーバーパネル」の「WordPress簡単インストール」.
マニュアル 通り進めれば,それほど難しくはない.
この環境の「ファイルマネージャ」での //mish.cloudfree.jp/public_html/ には他の幾つかのファイルが存在する.
そのため,マニュアルと同様に …/public_html/wp とした.
この WordPress は,ここ のバックアップ用として利用予定.
QNAP NAS の MARS で定期的にバックアップしているものを,https://mish.cloudfree.jp/wp/ に復元.
MARS(Multi-Application Recovery Service)を使って WordPress サイトをバックアップ、リストアする方法
WordPress プラグインの「QNAP NAS Backup」をインストール.
MARS で「WordPressのサービスの作成」.
「復元ジョブの作成」で次の様に入力,
「今すぐ復元」.
エラーになってしまう.
「特定のバージョンを使用」で「2022-12-30 12:00:00」を選択して「今すぐ復元」ではうまくいった.
が,更にいろいろとやっていたら,まともに表示されず php のエラーが表示されるようになってしまった.
Jetpack でエラーになっている様だったので,「ファイルマネージャ」で「削除」.
何とか php のエラーはなくなった.
どこかの 1 GB の制限に引っ掛かっている様だが,対応方法がわからない.
2023/11/18
他の NAS の WordPress 環境に復元しようとすると,一番古いバックアップの 772 MB でもできない.
QNAP NAS Backup の「Maximum upload file size」が,32 MB となっていることに気づいた.
同様に mish.cloudfree.jp の方を見ると,1 GB となっている.
最初,…/wp/.htaccess を編集して php_value upload_max_filesize 2048M などを追加してみたが,500 エラー.
この方法は使えないみたいで,php.ini を編集する方法で行って,2 GB にはできた.
が,それで「復元」操作をしても,1 GB を超えるものはエラーになってしまう.
まだどこかの制限があるみたいだかわからない.
シン・クラウド for Free 申込み
以前から,テスト用に Xfree を利用してきた.
それで困っていたのが,https 化と WordPress が開けなくなったこと.
WordPress は DB の容量不足( 94 / 100 MB )と思われる.
1ヶ月位前,シン・アカウントへの統合と「シン・クラウド for Free」になるとメールが来ていた.
その時,アカウント情報は更新したが,既存の mish.*.xdomain.jp はそのままとしていた.
「シン・クラウド for Free お申し込みフォーム」から「ログイン」して申し込み.
無料レンタルサーバーの申し込み.
サーバーは 5 つまで 追加できる.
暫くすると,***.cloudfree.jp にアクセスできる様になった.
https://mish.cloudfree.jp/
アップロード用の php をコピーして動作することを確認.
https://jml.mish.work/index.php/i-tools/upload-htm-php.html
DSM 7.2 仮想ホストの設定
以前設定した時と変更されているみたいで,DSM 7.2 での設定手順.
「Web Station」を起動して「Web サービス」を選択して「作成」.
今回は静的なページのため「静的なウェブサイト」を選択して「次へ」.
「ドキュメント ルート」などを指定して「次へ」,「作成」.
「Web Station」の「Web ポータル」を選択して「作成」.
「サービス」は「Web サービス」で追加したものを選択.
サブドメインの設定がまだなので,ホスト名は仮の名称(ここでは image ).
//image/… でアクセスできる様になる.
あとはドメインの DNS レコードを設定して,ホスト名をサブドメインに設定.