2025年07月10日

Windows11home から Ubuntu の samba(ファイル共有)に失敗する

Ubuntuに入れたsambaにWindows11home でアクセスできない場合(Windows11proではアクセスできる)でネットワークリソースを使用するアクセス許可がない可能性があるというメッセージとネットワークエラー1208の表示がある場合の対処。


1)win + R でファイル名を指定して実行 → regedit と入力

コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters に移動
右側空白部分クリック、新規→DWORD32BIT値をクリック
キー名:AllowInsecureGuestAuth 
できたAllowInsecureGuestAuthキーをダブルクリック、値を1にする

コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
右側空白部分クリック、新規→DWORD32BIT値をクリック
キー名:LmCompatibilityLevel 
できたLmCompatibilityLevelキーをダブルクリック、値を1にする
レジストリエディタを閉じる


2)PowerShell を管理者権限で立ち上げて入力(管理者権限は右クリックで選択する)
Set-SmbClientConfiguration -RequireSecuritySignature $false -Force
Set-SmbClientConfiguration -EnableInsecureGuestLogons $true -Force

確認
Get-SmbClientConfiguration 
を実行し
RequireSecuritySignature がFalse
EnableInsecureGuestLogons がTrue
を確認してリブートする。


posted by すら at 11:49| Windows用ソフトウエア

2025年04月03日

旧バージョンのC++Builder 32bit から C++Builder12 64bit アプリの移行に失敗したら

旧バージョンのC++Builderで作った32bitアプリケーションを、C++Builder12で64Bitアプリにしようとしてエラーが出た場合。
そのなかで
[bcc64x エラー] (アプリ名).cpp: a type specifier is required for all declarations
[bcc64x ヒント] tchar.h(132): expanded from macro '_tWinMain'

と出たら
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
の先頭に int を足して
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
とすること。

余りにエラーが的を得てなくて悩むパターン。
posted by すら at 16:05| Windows用ソフトウエア

2025年02月24日

消してはいけない_fastcall

C++Builder11にて

フォームのコンストラクタ(デストラクタ)の _fastcall は消すとメモリアクセス異常で落ちるようになる。
消してはいけない(^^;
posted by すら at 12:57| Windows用ソフトウエア

2024年10月14日

UDP のブロードキャスト送信を行うインターフェースはどれ?

UDP のBroadCast送信がうまくいかない場合。
ファイヤーウォールの設定を見直すのはもちろんとして。

PC上に複数のネットワークインターフェースがある場合は、送りたい宛先があるグループにつながったインターフェースに対して送信を行っているかをチェックすること。
これはWireSharkでインターフェースを選び、どのインターフェースにブロードキャストのパケットが出ているかを見ることで確認できる。たとえば、ループバックに一生懸命出してもほかのPCに届かないのは当然だったり。(これではまりました)

で。もしこれが原因なら出力先インターフェースを選択したくなるわけです。
WindowsならGetAdaptersAddressesという関数でインターフェース名をリストし、setsockopt の SO_BINDTODEVICE で指定することも可能ではありますが・・・インターフェース名取得すると日本語は文字が化けるんだwww

代わりの方法として。
ブロードキャストアドレスを指定する方法が簡単だった。
"255.255.255.255" と指定するところを、例えば "192.168.1.255" とする。
この例の場合は192.168.1.*のアドレスへ限定して送る。つまり、192.168.1.* のグループのインターフェースにしか送らないということ。

上手くできてますね(^^)


つまり、ブロードキャストだから、と何も考えずに”255.255.255.255”に送ってると罠にはまるかもしれませんよ、と。
posted by すら at 21:20| Windows用ソフトウエア

2024年09月27日

Tee Chart のグリッドの値を度分表記にする(C++Builder)

TeeChartを画面に貼り付けて Chart1 とする。
(グラフ描画までは省略)

Chart1の イベントでonGetAxisLabel に以下記載
※ddd-mm.mmmm で小数点以下4桁としてみた

void __fastcall TForm1::Chart1GetAxisLabel(TChartAxis *Sender, TChartSeries *Series,
          int ValueIndex, UnicodeString &LabelText)
{
    if (Sender == Chart1->LeftAxis || Sender == Chart1->BottomAxis)
    {
        double value = StrToFloat(LabelText);
        int degrees = (int)value;
        double minutes = ((value - degrees) * 60.0);
        UnicodeString outs;
        outs.sprintf( L"%d-%2.4lf", degrees, minutes );
        LabelText = outs;
    }
}
posted by すら at 10:32| Windows用ソフトウエア

2024年03月09日

TrueImageで復元先のドライブ(それも新品)が候補に出てこない

TrueImageで復元時に復元先のドライブが候補リストに出ない場合。
それも復元先ドライブが新品の場合。

ディスクの管理で、ドライブの初期化画面になっている(と思われ)
パーテーションの選択でGPTなりを選択するとリストに出てくるようになる。
posted by すら at 15:55| Windows用ソフトウエア

2022年11月14日

[C++Builder] 時刻のUTC表記(ISO8601)

C++Builder での、ISO8601の時刻拡張表記についての処理いろいろ。
※なお、拡張形式のみで基本形式のFunctionはない様子。


#include <System.DateUtils.hpp>     // DateToISO8601, ISO8601ToDate, TTimeZone::Localで必要


// TDateTime -> ISO8601 文字列 --------------------------
TDateTime  nn = Now();

//UTC 表記の場合 2022-11-14T04:50:23.100Z と出力したい場合
Edit1->Text = DateToISO8601( TTimeZone::Local->ToUniversalTime(nn), true );

// Local時刻+時差表記の場合 2022-11-14T13:50:23.100+09:00 と出力したい場合
Edit1->Text = DateToISO8601( nn, false );

※DateToISO8601() は入力時刻をそのまま出力する。つまりUTC/Local の時刻変換はしない
これは違うTimeZoneの時刻を扱うことができるようにするため、みたいだ。


//  ISO8601 文字列 -> TDateTime --------------------------
bool  bUtc = false;   // dtに入れるのがUTCならtrue, Localならfalse
TDateTime dt = ISO8601ToDate( Edit1->Text, bUtc );

※ISO8601ToDate() は文字列から時刻データ変換時にUTC/Local の時刻変換を行う
表記の文字列に扱う時刻のタイムゾーンは入っているので、そこからUTCを生成、
あとはUTCで扱うか、自分の今いるLocalに直すかどうかをフラグで指定する。


// UTC とLocal の TDateTime コンバージョン ------------------------
TDateTime  dtnow = Now();         // Now() はLocal時刻

// Local -> UTC :入力をLocalとし、UTC時刻を求める(日本ならー9時間)
TDateTime dtworld = TTimeZone::Local->ToUniversalTime( dtnow, false );

// UTC -> Local :入力をUTCとし、Local時刻を求める(日本なら+9時間)
TDateTime dtlocal = TTimeZone::Local->ToLocalTime( dtWorld, false );


// 余談 --------------------------------------------------------------
年月日の区切りが '-' で日付と時刻の区切りが ’T', 末尾にタイムゾーン指定子: ISO8601の時刻拡張表記
年月日を区切りが '.' で元号を使う場合(JIS X0301):令04.11.14 や R04.11.14 など
年月日の区切りが '/' ならまあ一般的な西暦



posted by すら at 14:11| Windows用ソフトウエア

2022年06月25日

リモートデスクトップ接続の接続相手固定ショートカット作成

リモートデスクトップ接続で相手IPアドレスを入れるてボタンクリックするのがめんどくさいとか。
いくつかの接続先を切り替えて使う時用に固定接続先のショートカットの作り方。


以下、Windows11 の場合
たぶんWindows10も似たようなものだと思う。

デスクトップの何もないところで右クリック
→新規作成
→ショートカット

ショートカットの作成が開く
項目の場所を以下のように記載
※以下は例として192.168.0.1 に接続する場合
%SystemRoot%\system32\mstsc.exe /v:192.168.0.1

ショートカットの名前を適当につけて完了をクリック。

なお。
/v:192.168.0.1 のスラッシュの後ろ部分をでたらめにすると引数の設定項目が参照できる。

posted by すら at 11:01| Windows用ソフトウエア

2022年05月10日

chmファイルのコンテンツが表示されない

Windows11において
ダウンロードしたchmファイル(HTMLヘルプ)の右側が表示されない場合の対策。

元のchmファイル上で右クリック
→その他ほオプションを表示
→プロパティ
→セキュリティ:他のコンピュータから取得云々の右の許可するにチェックを入れる。
posted by すら at 12:08| Windows用ソフトウエア

2021年12月02日

WSLに未実装

WSLでPOSIXメッセージキューを使用しようとしたら
mq_open()で Function not implemente とのこと。

どうやらWSLではシステムコールが未実装なものが結構あるようだ。

単体機能のデバッグに使用したかったのだが、思惑が外れました・・・。


posted by すら at 21:48| Windows用ソフトウエア

2021年11月17日

C++Builder11 の再インストール時のパスによるエラー

C++Builder11 を再インストールするとき、パスの長さが規定を超えた的なエラーが出た。
エンバカデロのInstallation Path Length Problemのページに飛ばされるが、内容が無い。

どうやら、一度インストールすると、すでにPATHに登録されているのでエラーになっている模様。消してみたらエラーが出なくなった。
解消方法
1)ファイル名を指定して実行からsystempropertiesadvanced.exeを起動する
2)システムのプロパティが開く。環境変数(N)をクリック
3)下側のシステム環境変数(S)の中から、Pathを選択して編集クリック
4)Embarcadero\Studio\22.0 を含むパス4つをそれぞれ選択状態にして削除クリック
  ※22.0は C++Builder11を指す。 ちなみにC++Builder10.4なら21.0
5)OKクリックして閉じる、環境変数のダイアログもOKをクリックして閉じる。システムのプロパティもOKで閉じる。

その後、再インストールを実施。
posted by すら at 16:05| Windows用ソフトウエア

2021年11月10日

C++Builder10.4 GetItの有効化

Windowsのコマンドプロンプト起動

cd C:\Program Files (x86)\Embarcadero\Studio\21.0\bin
GetItCmd.exe -c=useonline

とする。

参考
https://docwiki.embarcadero.com/Support/ja/GetIt%E3%81%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84%EF%BC%88RAD_Studio%E3%80%81Delphi%E3%80%81C%2B%2BBuilder_10.4%EF%BC%89
posted by すら at 11:55| Windows用ソフトウエア

2020年09月15日

ヘルプファイル(chm)のコンテンツが表示できない

Windows10 でchmファイルを開いたとき、右側のコンテンツ部が表示できない場合。

往々にして、ダウンロードしたファイルなので
ファイルのプロパティの全般から、セキュリティの「許可する(K)」にチェックを入れる。
posted by すら at 09:28| Windows用ソフトウエア

2020年09月07日

oleauto.h でエラーが出る場合

oleauto.h をIncludeして、エラーが出る場合

Line35
EXTERN_C const IID IID_StdOle; ←宣言の構文エラー
Line48
typedef DWORD LCID; ←,が必要, 一つ前のDWORD の定義位置

というのが出る場合のおまじない。
#include    <ShlObj.h>
#include    <oleauto.h>
の前に置く。
posted by すら at 17:45| Windows用ソフトウエア

2016年12月14日

SynapseによるFTP Upload (C++Builder)

Synapseを使ったFTPの例。
Indyが使えるときはIndyを使った方が幸せになれそう。

マニュアルにこっそりとDirectFileのところで書いているが、ファイルとして転送したい場合はDirectFileプロパティをTrueにすること。(でないとすべてストリーム経由でデータを渡すようになる)
また、その時、DirectFileNameを設定すること。

#なんだよー、マニュアルにはストリームは特殊な機能作る時用だと書いているのに、ストリームがデフォとはどういうこったい!

なお、ftpsend.hppは例によって、ftpsend.pasをプロジェクト登録でファイルが自動生成される。

// ヘッダ側
#include    "ftpsend.hpp"
 TFTPSend    *ftp;
// CPP側
// コンストラクタ
    ftp = new TFTPSend();

// デストラクタ
    delete ftp;

// 接続
        ftp->TargetHost = edHost->Text;
        ftp->UserName = edUser->Text;
        ftp->Password = edPass->Text;
        ftp->TargetPort = edPort->Text;
        ftp->PassiveMode = cbPassiveMode->Checked;
        if( cbAscii->Checked == false )
            ftp->BinaryMode = true;
        else
            ftp->BinaryMode = false;
        ftp->DirectFile = true;
        bool resutl = ftp->Login();

// 切断
   ftp->Logout();

// サーバー側ホルダ変更
     ftp->ChangeWorkingDir( 変更先 );

// アップロード
        ftp->DirectFileName = SourceFile;
        //ファイルをアップロードする
        ftp->StoreFile( SourceFile, false );

とりあえず、アップロードはできた。
posted by すら at 20:39| Windows用ソフトウエア

2014年06月02日

セキュリティアップデートのため、XPをembedded POSReady2009に見せかける。

テキストファイル[XP.reg]を新規作成、以下の内容をペーストして保存後、ダブルクリックで実行。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\WPA\PosReady]
"Installed"=dword:00000001
posted by すら at 10:38| Windows用ソフトウエア

2013年06月20日

MSDN / TechNet

MSDN
http://sourceforge.jp/license-online/msdn.php
※SourceForge.JP経由で購入すると安い。

TechNet Subscription
https://technet.microsoft.com/ja-jp/subscriptions/buy/hh442910
posted by すら at 14:21| Windows用ソフトウエア

2012年12月01日

XPのインストール

最近のPCでXPのインストールで、CDからドライバ読み込みのタイミングでブルー画面が出る場合、ハードディスクがSATAなのが原因。

BIOSとかでハードディスクの接続をAHCIからIDE(ATA)に変更する。
特に速度が必要なければそのまま放置。
posted by すら at 14:21| Windows用ソフトウエア

2011年10月07日

BDS2006 + Windows7

Borland Developer Studio 2006は、何でもありインストールをWindows7に対して行うと
ちゃんと動作しない。

そもそも、starteamをインストールしないのが好ましいようだが、
インストールしてしまって、途中でエラーで動作を停止するようなら、
レジストリエディタで以下を削除する。

"HKEY_CURRENT_USER\Software\Borland\BDS\4.0\Known IDE Packages"



"$(BDS)\Bin\stide100.bpl"

の内容をクリアする

posted by すら at 11:09| Windows用ソフトウエア

2011年09月15日

ELECOM UC-SGT インストール不良対策

ELECOM UC-SGT (USB-RS232C変換器)について。

Windows7 Home のノートパソコンにインストールした際、インストール直後は良いが一度電源をOFFにしたら認識しなくなった。
ELECOMホームページからドライバをダウンロードしても同じ。
# Windows7対応と謳っている割にはちょっとお粗末な感じ。



PROLIFIC社のPL-2303というチップを使っているようなので、このドライバを入れると正常に動作するようになった。
64bitのWindowsにも対応。
http://www.prolific.com.tw/eng/downloads.asp?ID=31

秋月で入手できるシリアル変換器も同じチップらしい(未確認)



[2012/07/10追記]
この記事を書いた後(2011/11/15)、ELECOMホームページのドライバが更新されています(Ver.14.0.0.162)
そのドライバは、Windows7でも正常に動作しました。


[2012/12/05追記]
おそらくドライバの不具合だと思われますが、57.6KBpsで通信してると電文がでたらめになることがありましたので使うのを止めました。(受信は出来るがゴミが挿入される症状)

・corega CG-USBRS232R
・ラトックシステム REX-USB60F
・I-O DATA USB-RSAQ5
などは実際に使ってみましたが安定していました。

このページを見て何とかしようとされている方(特に仕事で使う方は)は他のものに買い換えをお勧めします。


[2012/12/16追記]
どうやらPROLIFIC社のPL-2303を載せているものは不具合があるように見受けられます。
おそらくドライバかチップの問題で、高速に通信している時は、WidnowsAPIの ReadFile(), GetOverlappedResult() の読み込み済み文字数でのレポートがおかしいケース、あるいは読み込んだ文字が化けることがありました。

PROLIFIC社のPL-2303を使用しているものは以下です。
・ELECOM UC-SGT
・corega CG-USBRS232R
・I-O DATA USB-RSAQ5
この3つは同じ文字化け、読み込み済み文字数不良が発生します。
高速なボーレート(57.6KBps以上)の時は使うのを避けたほうが良さそうです。

なお、ラトックシステム REX-USB60Fは115.2Kbpsの通信でも正常に出来ました。
posted by すら at 19:50| Windows用ソフトウエア