一括表示
タイトル
記事No
投稿日
投稿者
: QSOデータの共有オープン
: 721
: 2017/03/02(Thu) 19:52:47
: JA2BQX
お世話になります。
メニューの「環境設定」「設定2」の「QSOデータの共有オープン」に
レ点が付いているかどうかの確認はHelpに記載されている
「メインメニューには再読込み(R)が、ステータスバーには【共有】の文字が表示されます」とは別に
Hamlogw.ini の中の [Kankyo]の中の KSet の値を2進数に変換して
右から20桁目が 1 なら共有オープンされている..と言う
判断で良いでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: QSOデータの共有オープン
: 722
: 2017/03/03(Fri) 20:56:59
: JG1MOU浜田
> Hamlogw.ini の中の [Kankyo]の中の KSet の値を2進数に変換して
> 右から20桁目が 1 なら共有オープンされている..と言う
> 判断で良いでしょうか?
ビットシフトのループの中で判定してますので、何桁目なのかは即答
できませんけど、それでOKだと思います。
それから、HAMLOG50.DLLの、SetDbsShare(0)を呼び出してTRUEであれば
共有オープン中です。
HAMLOG本体ではこちらを使ってます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: QSOデータの共有オープン
: 723
: 2017/03/03(Fri) 22:33:23
: JG1MOU浜田
> それから、HAMLOG50.DLLの、SetDbsShare(0)を呼び出してTRUEであれば
> 共有オープン中です。
> HAMLOG本体ではこちらを使ってます。
よく考えてみたら、別のプロセスからDLL内の関数を呼び出すわけで
しょうから、意味はなかったですね。
[Kankyo]
KSet=nnn
・・・を使った方が良いかも。
nnnは、1を20ビット左シフトした値、すなわち&H80000とアンドが
とれれば共有、ということになるかと思います。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: QSOデータの共有オープン
: 724
: 2017/03/04(Sat) 06:55:51
: JA2BQX
浜田さん、お世話になります。
詳しい説明をありがとうございました。
> [Kankyo]
> KSet=nnn
> ・・・を使った方が良いかも。
はい、この値で判断しようとしています。
自分の処では正常に判断出来るのですが、ある方からの KSet=nnn では
右から20桁目が1では無いので? 「KSet=637677885」だそうです。
メインウインドウには「再読み込み」が表示されているとの事なのですが。
私の Hamlogw.ini に 「KSet=637677885」を書いて起動すると「再読み込み」が表示されない。
改めて確認してもらった方が良いでしょうね。
私の場合は KSet=1651177788、これなら共有と判断出来ています。メインウインドウ上にも「再読み込み」が表示されている。
> nnnは、1を20ビット左シフトした値、すなわち&H80000とアンドが
> とれれば共有、ということになるかと思います。
そう言う手法が良いのでしょうが、今のところは単純に10進数を2進数に変換して右から20桁を取得し左端の文字で判定しています。
20桁に満たない事もあるので2進数にしてからゼロを20ケ左側に加えていますが。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: QSOデータの共有オープン
: 725
: 2017/03/04(Sat) 08:19:20
: JG1MOU浜田
> > nnnは、1を20ビット左シフトした値、すなわち&H80000とアンドが
> > とれれば共有、ということになるかと思います。
>
> そう言う手法が良いのでしょうが、今のところは単純に10進数を2進数に変換して右から20桁を取得し左端の文字で判定しています。
> 20桁に満たない事もあるので2進数にしてからゼロを20ケ左側に加えていますが。
環境設定のチェックボックスのすべてチェックを外すと、KSet=0
共有オープンだけチェックを入れると、 KSet=524288
つまり、KSet=&H80000 です。これを使えば間違いありません。
if (nnn & 0x80000) // C言語
共有中;
if LongBool(nnn and $80000) then // PASCAL言語
共有中;
if (nnn And &H80000) > 0 then ; VisualBasicたぶんこんな感じ
共有中;
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: QSOデータの共有オープン
: 726
: 2017/03/04(Sat) 08:45:58
: JA2BQX 太田
浜田さん、毎度お世話になります。
サンプルをありがとうございました。
> if (nnn And &H80000) > 0 then ; VisualBasicたぶんこんな感じ
> 共有中;
下記ですんなり出来ました。 MNI TNX
If (KSet_str And &H80000) > 0 Then
Kyoyu_flag = 0
Label7.Text = "共有オープンされています"
Label7.ForeColor = Color.Blue
Else
Kyoyu_flag = 0
Label7.Text = "共有オープンされていません"
Label7.ForeColor = Color.Red
End If
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!