新着表示
タイトル
記事No
投稿日
投稿者
: Re: Th527api
: 907
: 2020/04/06(Mon) 16:35:54
: je6lao長野
いえいえ、sendmessageを送った後です。
Handleを使わなければ、
・postmessageは使えないのでしょうか。
・Handleに適当な値を入れておけばいいのでは。
self->Handle, logqso->Handle などは既に試していらっしゃいますよね。エラーメッセージも同じでしょうね。
> > それからsendmessageの後、Handleを使って何かするのですか。
>
> Hamlog にJTDXでのQSOデータを転送しようとしています。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: Th527api
:
906
:
2020/04/06(Mon) 15:36:39
:
JA2BQX 太田
:
こんにちは。
> 1.JTDXにLogQSOを組み込んでコンパイル。 JTDX でQSOしてログに記録するウインドウが LogQSO です。
このソース内にコードを追加しています。
> 2.そのLogQSOは、JTDXで得られたデータをHamlogへデータを転送。 はい、Hamlogへデータを転送するコードを追加中です。
> JTDXのフォームハンドルは、Form1->Handleでエラーになる。> 代案として frm1->Handle が提示されていましたが、これは試したのでしょうか。 はい、ビルドエラーが出ます。
> そもそもJTDXやLogQSOのフォーム名をどう指定しているのでしょうか。> Qtは指定できない?Qt ではフォーム名は logqso.ui となっています。
ソースコードは logqso.cpp に書き、ヘッダー部は logqso.h です。
ソースコード全体は下記にあります。
https://github.com/jtdx-project/jtdx/releases/ > それからsendmessageの後、Handleを使って何かするのですか。 Hamlog にJTDXでのQSOデータを転送しようとしています。
私のHPで既に出来ているEXEと改修をしたソースコードは公開しています。
JTDXは今までは32Bit版のみでしたが最近は32Bit版と64Bit版の両方になりました。
32Bit版では Hamlog50.dll が使えますが64Bit版では使えない(Hamlog50.dll が64Bitに未対応)のでその代替え策をやろうとしています。
Qtでの32Bit版及び64Bit版のビルド環境の構築方法も私のHPからリンクを張ってあります。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: Th527api
: 905
: 2020/04/06(Mon) 11:41:55
: je6lao長野
Qtはまったく知りませんので的外れでしょうが・・・。
全体がよく見えません。
1.JTDXにLogQSOを組み込んでコンパイル。
2.そのLogQSOは、JTDXで得られたデータをHamlogへデータを転送。
JTDXのフォームハンドルは、Form1->Handleでエラーになる。
代案として frm1->Handle が提示されていましたが、これは試したのでしょうか。
そもそもJTDXやLogQSOのフォーム名をどう指定しているのでしょうか。
Qtは指定できない?
それからsendmessageの後、Handleを使って何かするのですか。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: Upload Logs Directly Into Club Log
: 904
: 2020/04/06(Mon) 10:58:43
: JA2BQX 太田
JA9AOB 銅子さん、ありがとうございます。
パソコンは Win10 で JTDX は 64Bit版でビルドしています。
Hamlog.hdb をバイナリーで読んで処理する自前のコードでは Hamlog.hdb へのQSOデータ書き込みは成功しています。
sendmessage() 関数を使用しての処理にトライ中です。
32Bit版は Hamlog50.h 使用でビルド出来ますので。
WinIDと言うソフトでJTDXの中で [ Log QSO ] ウインドウのハンドルを取得出来ます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: Upload Logs Directly Into Club Log
: 903
: 2020/04/06(Mon) 10:01:57
: JA9AOB 銅子
> はい、JTDXの中で [ Log QSO ] ウインドウが表示されたら自分自身 [ Log QSO ] ウインドウのハンドルを取得したいのです。
>
私はVC++なのでマイクロソフトのMFC対応ウィンドウであれば 簡単ですが 異なるのでお役に立てませんね。
VC++ 付属のspy++ でもJTDXのウィンドウはトップレベルのウィンドウの情報しか得られません。
どうしてでもと言う事であれば、Win Apiを駆使して検索するより手が無いようにも思えます。
HWND hWnd = 0;
while (hWnd = FindWindowEx(hDlg, hWnd, _TEXT("Button"), NULL))
{ TCHAR title[128];
TCHAR className[128];
GetWindowText(hWnd, title, sizeof(title) / sizeof(TCHAR));//ウインドウの文字を取得して、
GetClassName(hWnd, className, sizeof(className) / sizeof(TCHAR));
_ftprintf(fp, _TEXT("\"%s\" \"%s\" %0.8x\n"), title, className, (DWORD)hWnd);}
の様な例もあります。 内容的には、ウィンドウのテキストを順次表示するだけですが、FindWindowEx の初期設定を 前回のC#の様にすれば、JTDXの各ウィンドウが得られるはずですが。
これで目的のウィンドウが見つける手掛かりが得られるのではないでしょうか。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: Upload Logs Directly Into Club Log
:
902
:
2020/04/05(Sun) 21:36:39
:
JA2BQX 太田
:
浜田さん、こんばんは。
書き込みありがとうございます。
Win10 64Bit だと何かと違うのでしょうか。
まだまだ、当分は解決しそうにありません。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: Upload Logs Directly Into Club Log
: 901
: 2020/04/05(Sun) 21:21:42
: JG1MOU浜田
ちょっと関連して・・・
Windows10 64bitになってから、FindWindow() の動作で悩んでいます。
WM_COPYDATAの動作がおかしいのかも知れません。
HAMLOGのヘルプメニューから道の駅Get'sを立ち上げると、正常です。
道の駅Get'sで集計する際、HAMLOGにメッセージを送ってHAMLOG側は
ファイルをすべて閉じます。
そのすきに、道の駅Get'sではQSOデータを開いて集計しています。
集計が終わると、道の駅Get'sからHAMLOGにメッセージを送って
HAMLOG側はファイルをすべて開きます。
これが、HAMLOGと道の駅Get'sを別々に立ち上げるとうまくいきません。
Windows7の頃は大丈夫だったような気がするのですが・・・。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: Upload Logs Directly Into Club Log
: 900
: 2020/04/05(Sun) 18:12:46
: JA2BQX 太田
ありがとうございます。
> あ、すみません 自分自身のWin ハンドルを取得するのですか。稼働しているWSJT-Xのハンドルかと思いました。
はい、JTDXの中で [ Log QSO ] ウインドウが表示されたら自分自身 [ Log QSO ] ウインドウのハンドルを取得したいのです。
銅子さんのC#のソースをQtの中に書いて取得も出来るのでしょうけど長くて途中でミスでエラーを出しそうです。
関数で取得出来るのではと検索していますが有っても書き方が悪いのかエラーばかりで。
JTDXの開発チームに聞いても多忙らしく返事がありません。
JTDXのMLで広く問い合わせをしなければ答えは得られないかも。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: Upload Logs Directly Into Club Log
: 899
: 2020/04/05(Sun) 16:29:30
: JA9AOB 銅子
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
参照先
:
Re: Upload Logs Directly Into Club Log
:
898
:
2020/04/05(Sun) 10:29:47
:
JA2BQX 太田
:
ありがとうございます。
以前にWeb上の情報で下記の様なコードを試していました。
http://www.atmarkit.co.jp/fdotnet/dotnettips/224controls/controls.html改めて試したらこれで JTDX のメインウインドウと LogQSO ウインドウの HWND が取れました。
JTDXの Qt 言語上で自分自身の HWND を取得する関数を見つけられなければ VB.net や C# のコードをQt用に書き換えが必要になりますね。
これもまた大変で...。 時間を掛けて努力はしてみます。
VB.net の自作ソフトでハンドルを取得しファイルに書き出して、それをJTDX側で読み込む手法も無くは無いですが。
JTDXの Qt で他アプリの起動、終了が出来る様になれば可能性もありますが。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!