2025年1月
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 103,662 アクセス


Android への VNC 接続

あまり用途は浮かばないが,スマートフォンに VNC 接続する方法.


検索すると droidVNC-NG というのがあった.


最初 droidVNC-NG の設定画面で「START」後,
「CONNECT TO A LISTENING VIEWER」で,クライアントの IP を指定する必要がある?
また,この時フリーズすることがあった.
一度接続できると特に難しい所はない.
VNC Server moto g8 power lite
文字入力などが楽になるかと思ったが,うまく動作しない?
スクリーンキーボードを表示しての操作となるため,スマートフォンで直接操作した方が早い.
スクリーンショットを撮るなどの用途か?

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

NAS ADM 4.0.2.RPL2 の更新で…

気づいたら,ASUSTOR NAS の favicon.ico が変わってしまっていた.
LAN 内からその NAS の先頭ページを表示しようとすると ADM の入り口へのリンクが存在する.
ASUSTOR NAS ADM の入口ページ
ファイアウォールで設定しているので大丈夫だろうとは思うが,ADM のポートが見える様になるのではないか?
ちょっと危険と思われるので,index.php と htm を以前のものに戻した.


外部から NAS へのアクセスの確認
ASUSTOR NAS ADM


2022/03/28
ADM 4.0.5.RRS1 に更新されて,ADM への入り口のリンクは表示されなくなった.

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

Synology Mail Server

先日 ASUSTOR NASメール関係を設定した が,うまく動作しないので今度は Synology NAS で.
Web で検索する と MailPlus Server と Mail Server が見つかる.
が,DS116 には MailPlus Server はインストールできないみたい.
Synology Mail Server
Synology Mail Server は次の様な感じ.
Synology Mail Server SMTP 設定
他に POP3 を有効に.
ルータで ASUSTOR NAS へ転送していたものを Synology NAS に(ポートフォワーディングの設定).
Synology Mail Server 概要
ここまでは意外とすんなり.



メーラの設定はまだ完全にはわかってないが,何とか受信できることは確認できた.


直接は関係ないが,ドメインの情報を更新しようとして,確認後の「設定する」を行うとエラー.
お名前.com メンテナンス中のためエラー
メンテナンス情報 のへの入り方がわかり難い.
不要なメールが多いとは思っていたが,重要な情報が伝わりにくいのは如何なものか?
アナウンスのあった 1/26 18:00 頃まで更新できなかった.


2022/01/27
メールのデータは,それぞれのユーザの .Maildir 以下に存在しているみたい.

Iwao@DS116:~$ pwd
/var/services/homes/Iwao
Iwao@DS116:~$ tree .Maildir/
.Maildir/
├── cur
│   ├── 1643079743.M431357P3027.DS116,S=1201,W=1238:2,S
│   ├── 1643079976.M326882P4473.DS116,S=1005,W=1033:2,S
│   ├── 1643080038.M170836P5420.DS116,S=1192,W=1231:2,S
│   ├── 1643080114.M298271P5625.DS116,S=1038,W=1065:2,S
│   ├── 1643085691.M688765P22375.DS116,S=1238,W=1275:2,S
│   ├── 1643085822.M842535P22866.DS116,S=1246,W=1283:2,S
│   ├── 1643086897.M829597P27644.DS116,S=1239,W=1276:2,S
│   ├── 1643087608.M44210P30687.DS116,S=797,W=815:2,S
│   ├── 1643087691.M559494P31029.DS116,S=1238,W=1275:2,S
│   ├── 1643087805.M721122P31507.DS116,S=1247,W=1284:2,S
│   ├── 1643088000.M130631P32277.DS116,S=1230,W=1259:2,S
│   ├── 1643088239.M540466P7084.DS116,S=967,W=995:2,S
│   ├── 1643089198.M442878P23850.DS116,S=1813,W=1852:2,S
│   ├── 1643098555.M720684P30677.DS116,S=1360,W=1401:2,S
│   ├── 1643117771.M942067P12351.DS116,S=881,W=908:2,S
│   ├── 1643153388.M81263P4817.DS116,S=1348,W=1382:2,S
│   ├── 1643202594.M299954P12263.DS116,S=1207,W=1237:2,S
│   ├── 1643204390.M317273P22253.DS116,S=1283,W=1325:2,S
│   ├── 1643258521.M138648P15962.DS116,S=4419,W=4555:2,S
│   └── 1643258534.M602782P15995.DS116,S=5528,W=5694:2,S
├── dovecot.index.cache
├── dovecot.index.log
├── dovecot.list.index.log
├── dovecot-uidlist
├── dovecot-uidvalidity
├── dovecot-uidvalidity.61ef683f
├── maildirfolder
├── new
└── tmp

3 directories, 27 files
Iwao@DS116:~$

Synology NAS tree .Maildir

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

仮想ホストの設定 ポート

先日の設定 で LAN 内からそれぞれの NAS に振り分けられる様にはなったが,今度は WAN を含めたもの.


A レコードの設定.
A レコードの設定


Synology NAS
Synology NAS 仮想ホスト ポートの設定
「ポート」の設定で 54321 の様にポート番号を指定する.


ASUSTOR NAS
ASUSTOR NAS 仮想ホスト ポート番号
ポート番号 54322 を追加する.


QNAP NAS
QNAP NAS 仮想ホスト ポート番号の追加
ポート番号 54323 を追加.


これで LAN 内からは test1.mish.work:54321 の様にアクセス可能になる.


あとはルータでそれぞれのポートを通す必要がある.
次の様に振り分けることも可能.

if (hn == "test1.mish")	{	location.href = "http://test1.mish.work:54321/" ;	}
if (hn == "test2.mish")	{	location.href = "http://test2.mish.work:54322/" ;	}
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

NAS の仮想ホストの設定

LAN 内で NAS の特定のディレクトリに test1.mish.work の様にアクセスするための設定.


ドメインの AAAA レコードを設定する.
AAAA レコードの設定


Synology NAS
「Web Station」-「Web サービスポータル」の「作成」-「サービスポータルの作成」.
Synology NAS ポータルタイプを選択
「仮想ホスト」を選択.
Synology NAS 仮想ホストのセットアップ
ホスト名を test1.mish.work ,ドキュメントルートを NAS 上のあるディレクトリを指定.
これで LAN 内から test1.mish.work の様にアクセスできるようになる.
2023/11/06 DSM 7.2 仮想ホストの設定


ASUSTOR NAS
「Web Center」-「仮想ホスト」の「追加」.
ASUSTOR NAS 仮想ホストの設定
ホスト名を test2.mish.work ,フォルダ名は NAS 上のあるディレクトリを指定.


QNAP NAS
「コントロールパネル」-「アプリケーション」-「Web サーバー」の「仮想ホスト」-「仮想ホストの作成」.
QNAP NAS 仮想ホストの設定
ホスト名を test3.mish.work ,ルートディレクトリは NAS 上のあるディレクトリを指定.


Synology NAS リバースプロキシ設定

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

m_atime 2446/05/11 07:38:55

アクセス日時が正しくないファイルができてしまった.
アクセス日時が 2446/05/11 07:38:55


2022/01/17
VC 2019 でビルドした exe でも特に変わらず.
ローカルドライブや Synology NAS では,正しく設定される.
MFC exe で QNAP NAS 上に上書き保存した時にその様になってしまう?
ASUSTOR NAS でも QNAP NAS 同様に正しくない.

デバッガで追いかけると,
CMirrorFile::Close で MFC9EA4BEB9.tmp を ::ReplaceFile の時.
出力されたファイルを CFileStatus で見ると 0x000000037fffffff .
m_atime が 2446/05/11
0000 0003 7fff ffff が 2446/05/11 になる.

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

QNAP NAS WordPress Import

ブログのバックアップ用に,Blogger にインポート
データが少ないものは移行できたが,メインのブログはうまくインポートできない.
それで QNAP NAS の WordPress に…


WordPress でインポートしようとすると 2M の制限で読み込めない.
phpinfo() ; で表示させると 2047M にはなっている.php.ini も.
どこに持っている情報なのかわからないので ,htaccess で指定することにした.
QNAP NAS WordPress .htaccess


インポートしていると,何故かエラーになってしまう.
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request
Reason: Error reading from remote server
QNAP NAS WordPress import Proxy Error
投稿一覧を見るとデータは入っていそうなので,この状態で様子見.

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

ASUSTOR NAS upload_max_filesize

ASUSTOR NAS でアップロードできるファイルの制限は 2M になっている.
ASUSTOR NAS upload_max_filesize


今回,別の NAS の WordPress ファイルをインポートしようとすると,2MB の制限に引っ掛かって読み込めない.
以前は PHP 5.6 に切替て対応した が,今はこの方法が使えないので php.ini を変更することに.
php.ini upload_max_filesize を 20M に
SSH 接続 して php.ini の upload_max_filesize を 20M に.
反映させるために App Central で PHP 7 を一度停止して,すぐに実行.
Web Center の「Webサーバー」で「有効」にする必要がある.
今回のインポートしようとしたファイルは,11 MB 程度あった.
そのため post_max_size も 8M から 32M に変更.


1 時間程度かかってインポートできた.

WordPress のインポート
Iwao の新規ユーザを作成できませんでした。投稿は現在のユーザに関連付けられます。
amp_validation_error 48cc07251c8d5157b9e9a897d0ed4499 のインポートに失敗しました
amp_validation_error 502662b90c836da49548b5e05fa9600e のインポートに失敗しました
amp_validation_error 6ba58cff20693639d052998163af35c9 のインポートに失敗しました
amp_validation_error 74f0569466346207f7e684496a8f8abc のインポートに失敗しました
amp_validation_error 8c32527465654f1f049900723ae0e156 のインポートに失敗しました
amp_validation_error 95f0f68b6007fd64c4baaea2c4190c0d のインポートに失敗しました
amp_validation_error a23b7a8625ee5499036e0a944b77fb53 のインポートに失敗しました
amp_validation_error e9e8eb16d0b29ff8c18b17b472b7e774 のインポートに失敗しました
“https://mish.myds.me/wordpress/dev/2021/12/03/ws2022-iis-php/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/about/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/2021/12/03/ws2022-iis-php/ws2022_iis_add_php_8/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/2021/12/22/asustor-nas-mail-server/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/2021/12/22/asustor-nas-mail-server/as5202t_mail_server_receive/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/2021/12/28/asustor-mail-server-fw/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/2021/12/28/asustor-mail-server-fw/as5202t_mail_server_return/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/2022/01/05/do-not-work-qnap-nas-page/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。
“https://mish.myds.me/wordpress/dev/2022/01/05/do-not-work-qnap-nas-page/qnap_install_perl/” をインポートできませんでした。投稿タイプ amp_validated_url が有効ではありません。

すべて完了しました。 ではお楽しみください !

インポートしたユーザーのパスワードと権限を更新してください。

https://as.mish.work/wordpress/


.htaccess で指定する方法


試してはいませんが,WordPress でのサイズのみであれば .htaccess を直接編集した方が簡単です.
ASUSTOR NAS WordPress .htaccess
次の様な記述を最後に追加します.
php_value post_max_size 20M
php_value upload_max_filesize 20M

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

QNAP NAS 上の WordPress の場所

QNAP NAS 上の App Center で,WordPress の更新版 5.8.2 があった.
特に意識しないで更新すると…
今まで \\(NAS)\Web\WordPress\(WordPress のファイル) となっていたものが,なくなってしまった?
以前 Synology NAS を更新 した時も場所が変わってしまったことがあった.


今回はなかなか場所がわからない.
QuLog Center の「イベントログ」で,やっと見つけた.
/share/…/.qpkg/WordPress にあった.
QNAP NAS WordPress の新しい場所


ダッシュボードの動作が遅くなった気がする.
また,先頭のページは表示されるが,それぞれの記事は 404 になってしまう?
記事の編集は問題なくできそうなので,どこかの設定がまだうまくないみたい.

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

QNAP NAS 上のサイトが…

QNAP NAS 上の幾つかのページがうまく動作しなくなった.
静的なページや,WordPressJoomla! のページは問題ない.
いろいろと動きを見ると,C++ で書いたコードを呼出しているページがうまく動作していない様子.
SSH 接続して幾つかのコマンドを実行すると command not found となってしまう.
which gcc などで探すと,gcc が見つからない.
以前 gcc などは入れている ので,/opt/bin/gcc として存在するはず.
/opt/bin/ を見ると,perl 関係のものしか入ってない.
QNAP /opt/bin  perl
App Center で入れた Perl 5.26.1.0.1 がいけなかったみたい.


Entware-std 1.03 を入れ直すことでうまく動作する様になった.
AppCenter にある Perl のパッケージとは共存できない?

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

ASUSTOR NAS Mail Server – 2

先日から幾つかの所の設定を変更してやっていたが,うまくできないでいた.
今日も設定を確認していて,気づいた所があり.
「設定」-「ADMディフェンダー」-「ファイアウォール」で 80 以外が許可されていなかった.
「app#mail-server」を「許可」する様に.
ASUSTOR NAS ファイアウォール Mail Server


これで少し進展.エラーが Mail Server から返る様になった.
iwao@mish.work に対してのエラーの返信
あとは,メールアカウントの追加か?


これをやっていた時の,Let’s Encrypt での証明書の取得.
*.mish.work はうまく取得できるが,*.myasustor.com はうまくない.
設定を適用できません。 再試行してください。 (Ref. 5401)
ルータの設定を一時的に変更して,80 と 443 を NAS に設定したら「成功」した.


2022/02
うまく動作させることができなかったので,Synology NAS を使用 することに.

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

「ダイアログ バー」の追加

Win10 環境で VC 6 を使えるようにはなったが,「コンポーネントギャラリ」はうまく機能しないみたい.
VC 6 コンポーネント ギャラリ
今回利用しようとしたのは「ダイアログ バー」.ヘルプの内容は次の様なもの.


ダイアログ バー コンポーネント : 挿入結果
ダイアログ バー コンポーネントを挿入すると、プロジェクト コードに次の変更が加えられます。

  • プロジェクトのリソース スクリプトにダイアログ テンプレート リソースが追加されます。このダイアログ テンプレートにコントロールを追加するには、Visual C++ のダイアログ エディタを使用できます。
  • 指定したフレーム ウィンドウ クラスに、CDialogBar 型のメンバ変数の宣言が追加されます。デフォルトの変数名 m_wndMyDialogBar は変更できます。ダイアログ バーの初期プロパティ (標準では可視、ドッキング可能など) も指定できます。
  • フレーム ウィンドウの OnCreate メンバ関数に初期化コードが追加されます。この初期化コードは、CDialogBar::Create を呼び出して、ダイアログ バーのドッキング オプションを設定します。また、ダイアログ バーの表示/非表示に関する初期化もここで行います。
  • ダイアログ バーの表示/非表示に関するメニュー項目のサポートが追加されます。

ダイアログ バー コンポーネントを挿入しても、ダイアログ バーの表示/非表示を切り替えるためのメニュー項目はメニュー リソースに追加されません。このメニュー項目はメニュー エディタを使用して手作業で追加する必要があります。コンポーネントは、メニュー項目の追加手順を記述した “TODO” コメントを追加します。このコメントは、ダイアログ バーを追加したフレーム クラスの OnCreate 関数に挿入できます。

  • 2 つの関数のハンドラがフレーム ウィンドウ クラスのメッセージ マップに追加されます。
  • OnUpdateXXX 関数はメニュー項目の状態を随時更新します。
  • 次に、OnBarCheck 関数は、メニュー項目のチェックマークのオン/オフどおりに、ダイアログ バーが表示/非表示になっているかどうかを調べます。

メニュー項目のプロンプト文字列がプロジェクトのストリング テーブル リソースに追加されます。コマンド ハンドラをインプリメントするには、ClassWizard を使用して、次の手順に従います。

  1. ResourceView で、ダイアログ バーのダイアログ テンプレートを開きます。
  2. Ctrl キーを押しながら W キーを押して ClassWizard を開きます。[クラスの追加] ダイアログ ボックスが表示されます。
  3. [クラスを選択] をクリックして、[OK] をクリックします。[クラスの選択] ダイアログ ボックスが表示されます。
  4. ダイアログ バー コンポーネントを挿入したときに指定したフレーム ウィンドウ クラスの名前をクリックして、[選択] をクリックします。このクラスとダイアログ リソースを関連付けるかどうかを確認するメッセージ ボックスが表示されます。
  5. [はい] をクリックします。[MFC ClassWizard] ダイアログ ボックスの [メッセージ マップ] タブの [オブジェクト ID] ボックスの一覧に、ダイアログ バーのコントロールの ID が表示されます。
  6. 通常の方法で、コントロールにコマンド ハンドラを割り当てます。

メモ ActiveX コントロールをダイアログ バーに追加する場合は、プロジェクトが ActiveX コントロール コンテナ機能をサポートしている必要があります。AppWizard でプロジェクトのスケルトンを生成したときに [ActiveX コントロール] オプションを選択していた場合は、ActiveX コントロール コンテナ機能のサポートがプロジェクトに含まれています。サポートがない場合は、[Gallery] の [Visual C++ Components] フォルダから [ActiveX コントロール コンテナ コンポーネント] を選択してプロジェクトに挿入する必要があります。


実際のコードなどの編集は次の様な手順.

ダイアログリソースの追加.
	「スタイル」を「チャイルド」に.
	「境界線」を「しない」に.
	「タイトルバー」のチェックを外す.

CMainFrame に変数を追加.
	CDialogBar	m_wndDlgBar ;

CMainFrame::OnCreate に追加.
	{
		if (!m_wndDlgBar.Create(this, IDD_DIALOG_BAR,
			CBRS_RIGHT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
			ID_DIALOG_BAR))
		{
			TRACE0("Failed to create dialog bar m_wndDlgBar\n");
			return -1;      // fail to create
			}
	//	m_wndDlgBar.EnableDocking(CBRS_ALIGN_RIGHT | CBRS_ALIGN_LEFT);
	//	EnableDocking(CBRS_ALIGN_ANY);
	//	DockControlBar(&m_wndDlgBar);
		}

Resource.h に ID_DIALOG_BAR を追加.

ダイアログバー上のコントロールに対しての操作は次の様な感じ.
void CMainFrame::OnSize(UINT nType, int cx, int cy) 
{
	CFrameWnd::OnSize(nType, cx, cy);
	if (m_wndDlgBar.GetSafeHwnd() == NULL)	{	return	;	}
	CListBox*	listBI = (CListBox*)m_wndDlgBar.GetDlgItem(IDC_LIST_BI) ;
	FitWindow(&m_wndDlgBar,listBI,3,	FALSE,	FALSE,	FALSE,	FALSE) ;
	}
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ASUSTOR NAS Mail Server

調べごとをしていたら,ASUSTOR NAS の Mail Server というのがあった.

mail.mish.work   as.mish.work
設定がよくわからなかったので,Mail Server をインストール.
ASUSTOR NAS Mail Server のインストール

マニュアルに沿って幾つか設定してみたが…
ASUSTOR NAS Mail Server SMTP 設定

うまく受信できない.

ASUSTOR NAS Mail Server 概要


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

VNC 接続が安定しない?

最近は使う頻度が減ってきたが…
QNAP NAS の Virtualization Station の Win10 x86 への VNC 接続が安定しない.
他にも幾つか登録しているが,うまく開けないものが多い.
また Android からは,いつからかわからないが開けなくなってしまっている.
Android からの VNC 接続
Virtualization Station へはブラウザからも接続できて操作はできるが,ちょっと反応が悪い.


VNC のクライアントは VNC Viewer ,サーバは UltraVNC を使用している.
ハッキリわからないが,Win10 などのバージョンが上がった関係か?


先ず VNC Viewer を Windows 版 6.21.1109 に更新.Android 版は最新版になっていた.
予想通りだが,特に変わらず.


サーバ側の UltraVNC は 1.2.24 や 1.2.40 が入っていた.これを 1.3.60 に更新.
インストール後,再起動が要求されるが,試しに Android から接続するとうまくいった.
どうも UltraVNC が古いことがまずかったと思われる.
Windows Server 2022 に VNC 接続

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

IShellLink::SetShowCmd

ツールなどのスタートアップへの登録.


スタートアップのパスの取得は次の様な感じ.

	LPITEMIDLIST	pidl = 0 ;
	::SHGetSpecialFolderLocation(NULL,CSIDL_STARTUP,&pidl) ;
	tstring	start_path = ::SH_GetPathFromIDList(pidl) ;

lnk の作成は,以前にツールを作成してその時のものを利用.
http://mish.work/joomla/index.php/i-tools/create-l.html
https://mish.myds.me/wordpress/dev/2020/01/11/msdn-createlink/
lnk のスタートアップへの登録は次の様にできる.

	tstring	start_lnk = ::Path_AddLastSP(start_path) + ::Path_GetTitle(file_path) + _T(".lnk") ;
	tstring	descript = _T("コメント") ;
	::Create_lnk(file_path.c_str(),start_lnk.c_str(),descript.c_str()) ;

今回は,robocopy のコマンドを BAT ファイルとして生成し,それをスタートアップへ登録したかった.
http://mish.work/joomla/index.php/i-tools/cl-copy.html
「ディレクトリ以下のコピー」ツール
動作としてはうまく機能するが,BAT ファイルを使用しているためコマンドプロンプトが表示されてしまう.
最小化された状態で起動する方が動作はスマート?
lnk 作成時に指定できるだろうと思い 検索 するとあった.
シェルリンク
IShellLink::SetShowCmd を使えば良さそう.
SW_SHOWMINIMIZED を指定してもうまく動作しない.SW_SHOWMAXIMIZED はうまく動作する.
SW_SHOWMINIMIZED ではなく SW_SHOWMINNOACTIVE を使うみたい.
::Create_lnk(file_path.c_str(),start_lnk.c_str(),descript.c_str(),work_dir.c_str(),SW_SHOWMINNOACTIVE) ;
::CreateLink している所を変更してうまくいった.
S_lnk.hxx

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

WS2022 IIS 環境に PHP インストール

先日作成した Windows Server 2022 の IIS 環境 に PHP をインストール.
先ず,CGI を追加.
CGI の追加


Web PI のインストール.
Web Platform Installer で PHP 8 のインストール.
PHP 8 のインストール
次の内容の php を開き,うまく動作していることを確認.
<?php phpinfo(); ?>

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

Edge で WebGL が表示できない?

Edge で three.js を利用したデータが表示できなかった.
WebGL Cube
WebGL で表示可能な形式に変換
https://itl.mish.work/i_Tools/to_wgl/


デバッガで追いかけると,WebGL を利用できない様なエラー.


Edge を再起動すると,うまく表示できるようになった.
何だったのだろう?



2023/01/17
Win8.1 環境の Edge で「使用可能な場合はハードウェア …」を OFF にする必要があった.
Edge  「使用可能な場合はハードウェア アクセラレータを使用する」を OFF に


2024/07/18
仮想マシンの Win11 Edge で表示できなくなっていたので,その設定.
Edge の「設定」-「システムとパフォーマンス」で
Edge の「設定」-「システムとパフォーマンス」で「使用可能な場合はグラフィック アクセラレータを使用する」を「OFF」に
「使用可能な場合はグラフィック アクセラレータを使用する」を「OFF」にして「再起動」.


2024/07/24
環境や 3D データなどによると思いますが,
「…グラフィック アクセラレータを…」を「OFF」にすると表示が遅くなったり,表示されなくなることもあります.

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

::CreateMutex の名称

以前作成した W_mutex を利用.
同じドキュメントを開かない様なガードに使えると思い,単体テスト用のコードを書いた.

#include	"messbar.hxx"
#include	"itls_tmp.hxx"
#include	"cmd_line.hxx"
#include	"S_Exec.hxx"
#include	"W_mutex.hxx"

tstring	make_mutex_name	(const tstring& doc_name)
{
	tstring		mutex_name ;
	v_tstring	argv = ::get_arg() ;
	if (argv.size() > 0) {
		mutex_name += argv[0] ;
		mutex_name += _T(" ") ;
		}
	mutex_name += doc_name ;
///////////////////////////////////////////////////////////////
//	mutex_name = ::Path_Normalize(mutex_name,_T('/')) ;
///////////////////////////////////////////////////////////////
	std::terr << mutex_name << std::endl ;
	return	mutex_name ;
	}

bool	t_wait	(const tstring& doc_name)
{
	tstring		mutex_n = ::make_mutex_name(doc_name) ;
	size_t		bar_max = 1000 ;
	MessageBar	bar(_T("wait"),bar_max) ;
	for (size_t index=0 ; index<bar_max ; index++) {
		::Sleep(100) ;
		W_mutex	mutex(mutex_n.c_str()) ;
		bar.SetBarInc() ;
		if (mutex.Is_exist()) {
			}
		else {
			break ;
			}
		}
	return	true ;
	}

bool	t_loop	(const tstring& doc_name)
{
	tstring		mutex_n = ::make_mutex_name(doc_name) ;
	W_mutex		mutex(mutex_n.c_str()) ;
	size_t		bar_max = 100 ;
	MessageBar	bar(_T("loop"),bar_max) ;
	for (size_t index=0 ; index<bar_max ; index++) {
		bar.SetBarInc() ;
		::Sleep(30) ;
		}
	::Sleep(2000) ;
	return	true ;
	}

bool	test	(const tstring& doc_name)
{
	::t_wait(doc_name) ;
	::t_loop(doc_name) ;
	return	true ;
	}

int	_tmain	(int argc,TCHAR* argv[])
{
	_tsetlocale(LC_ALL,_T("")) ;
	::reg_argv(argc,argv) ;
	if (argc > 1) {
		test(argv[1]) ;
		}
	else {
		time_t	now = ::time(NULL) ;
		size_t	count = 5 ;
		tstring	test_cmd ;
		S_Exec	se ;
		{
			tstring	exe_name ;
			tstring	tmp_name ;
			{
				exe_name = argv[0] ;
				}
			{
				tstring	temp_dir = ::Get_i_Tools_tmp() ;
				tstring	time_str = ::Now_Format(_T("%H%M%S")) ;
					tmp_name = ::Path_AddLastSP(temp_dir) + time_str + _T(".tmp") ;
				}
			{
				test_cmd = exe_name + _T(" ") + tmp_name ;
				}
			{
				se.SetFile      (exe_name.c_str()) ;
				se.SetParamaters(tmp_name.c_str()) ;
				}
			{
				for (size_t index=0 ; index<count ; index++) {
					std::terr << test_cmd << std::endl ;
					se.Execute() ;
					::Sleep(2000) ;
					}
				}
			{
				::Sleep(1000) ;
				tstring		mutex_n = ::make_mutex_name(tmp_name.c_str()) ;
				size_t		bar_max = 1000 ;
				MessageBar	bar(_T("test wait "),bar_max) ;
				for (size_t index=0 ; index<bar_max ; index++) {
					W_mutex	mutex(mutex_n.c_str()) ;
					if (mutex.Is_exist()) {
						bar.SetBarInc() ;
						::Sleep(100) ;
						}
					else {
						break ;
						}
					}
				}
			}
		}
	return	0 ;
	}

#include	"messbar.cxx"

Mutex の名称としては,exe 名とドキュメント名を連結したものとした.


最初,実行させるとうまく動作しない(Mutex オブジェクトが存在するはずなのに抜ける).
::CreateMutex に与えている名称がうまくなかった.’\’ が使えない.
パスの区切りを ‘/’ に変更してうまくいった.
CreateMutex の名称で '\' は使えない


次の様なコードをアプリケーションクラスの InitInstance に追加.

	{
		if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileOpen) {
			tstring	doc_name = cmdInfo.m_strFileName ;
			tstring	exe_name = ::Get_module_name() ;
			tstring	mtx_name = exe_name + _T(" ") + doc_name ;
				mtx_name = ::Path_Normalize(mtx_name,_T('/')) ;
			static	W_mutex	mutex(mtx_name.c_str()) ;
			if (mutex.Is_exist()) {
				return	FALSE ;
				}
			}
		}
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

Jetpack Boost の影響?

このページもそうだが,
WordPress のページにつけている「QR コード」が意図した位置に表示されていないことに気づいた.


先日,表示が速くなるかなと思い「Jetpack Boost」の設定を変更した.
どうもこれが影響していたみたい.
Jetpack Boost 「必須ではない JavaScript を後回しに」
「必須ではない JavaScript を後回しに」の機能を「OFF」に.


* QRコードは株式会社デンソーウェーブの登録商標です.
https://www.qrcode.com/faq.html#patentH2Title


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

再起動マネージャ

何年か前に有効にした「再起動マネージャ」.
VC 2010 再起動マネージャ
Restart Manager in MFC
MFC 再起動マネージャ
その実装がうまくなかった.


編集操作中に「自動保存」が動作すると,意図しない状態になってしまうことがあった.
原因は,実装方法がうまくないだけではあるが,なかなか難しい.
Serialize が呼ばれた時に,一部の情報を更新しているため,例えば選ばれているものに影響を与えてしまう.
実際はデータに応じて選択状態が変わるのだが,それに気づかず操作してしまうことがある.


これとは別にバックアップ機能を持っているので「自動保存」が動作しない様に修正することに.
本当はこれだけでは足りない.
編集操作中に「上書き保存」された時も同様に動作するため,この部分の修正が必要か?
ユーザが意識している操作なので,現状のままとするか?

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