■掲示板に戻る■ 全部 1- 101- 最新50
【質問】プログラマー用総合質問スレ【Win32】

1 :がいあ@開発主任@管理人っぽ ★:2003/11/16 16:56 ID:???
プログラムに関する技術的質問専用のスレッドです。
遠慮なくどんどん質問して下さい。

但し、管理人はBorland C++Builderしか知りませんので、VBやVC++、Delphiなどの言語で
質問されても回答できない場合が多々あります(使えないヤツ
その辺は仕様です。thx

尚、基本的なウィンドウ操作などの質問をする場合、必ずご自分で検索し、それでも判らない
場合のみ投稿して下さい。(API操作など)

79 :しろーとぷろぐらま:04/08/23 10:21 ID:unRY6OfE
返信ありがとうございます!!
1、・・は勘違いをしてスキルを取得しようとしたときにも
  SendMesssageの返り値を取ろうとしたのが原因みたいです・・・^^;
  Get Skill 関数があるんですね・・^^
 (UOAの関数のHPを読んだのですが、単に項目だとおもって、
 (関数名だと思わずに)全部SendMessageで取得するものだと思ってました)

2.3に関しては他の方はどうやって包帯等のアイテムを識別しているのでしょうか?
 (FindWindowで直接・・??)

80 :がいあ@開発係長 ★:04/08/23 14:47 ID:???
>>79
Get Skillは、関数ではありません。
SendMessegeで送る値です。
WM_USER+203 をパラメータに入れて送って下さい。

包帯などは、ユーザー定義リソースを使っているんでしょう。
User1〜User6まであるリソースの中、User1を包帯とかに
決めておけば、取得は容易です。

81 :しろーとぷろぐらま:04/08/25 09:18 ID:W1eli0O2
1、すいません・・・プログラムの変数宣言で凡ミスしてまして(2重宣言)
  クリエイト時のUOAハンドルがうまく他の関数に渡ってなかったのが
  原因でした・・・><
  修正してうまく動くようになりました!!
  ありがとうございました!
2・3 そうなんですか。。。ご回答ありがとうございました

82 :LACHE@AoA:04/09/10 22:47 ID:8qOZmi7k
UOをプレイしているときに、あるタイミングで、
別のウィンドウ(UOLinkの生成したウィンドウ)を前面に表示したいのですが、
やり方がわからなくて困っています。
SetForgroundWindow()やSetFocus()、SetActiveWindow()は駄目でした…
どう駄目かといいますと、それらのAPIを使用してもタスクバー内で点滅するだけで
前面に表示されないのです。

あるサイトで、win2000以降はAPIがそういう仕様になり
ForgroundWindow()を使用する前にプロセスを
アタッチしなければならないとありました。

で、AttachThreadInput()を使用してみたところ…
UOLinkもClientも落ちてしまいました。

もしかしてフックしているのがまずいのか!?
と思ったり…。

というわけで、前面に表示するよい方法がありましたらご教授頂けないでしょうか。
よろしくおねがいします。

83 :LACHE@AoA:04/09/10 22:50 ID:8qOZmi7k
問題のソースです。
どこかのサイトからのパクリです^^;

void SetAbsoluteForegroundWindow( HWND hWnd ) {

int nTargetID, nForegroundID;
DWORD sp_time;

// フォアグラウンドウィンドウを作成したスレッドのIDを取得
nForegroundID = GetWindowThreadProcessId( GetForegroundWindow(), NULL );
// 目的のウィンドウを作成したスレッドのIDを取得
nTargetID = GetWindowThreadProcessId( hWnd, NULL );

// スレッドのインプット状態を結び付ける
AttachThreadInput( nTargetID, nForegroundID, TRUE ); // TRUE で結び付け

// 現在の設定を sp_time に保存
SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &sp_time, 0 );
// ウィンドウの切り替え時間を 0ms にする
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0, 0 );

// ウィンドウをフォアグラウンドに持ってくる
SetForegroundWindow( hWnd );

// 設定を元に戻す
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0, &sp_time, 0 );

// スレッドのインプット状態を切り離す
AttachThreadInput( nTargetID, nForegroundID, FALSE ); // FALSE で切り離し

} // SetAbsoluteForgroundWindow

84 :がいあ@開発係長 ★:04/09/10 23:32 ID:???
>>82-83
UOshipで昔UOで自動釣り中にブラウザを見ていて、シーサーペントが
釣れたらUOにフォーカスを戻すというプロセスをやったことがあります。
この場合、ブラウザ→UOクライアントへフォーカスを移動させることから、
同じ処理とも言えます。

色々とやってみた結果、(>>83も試しましたw)自分(UOship本体)を一度
アクティブにしてからSetForgroundWindow()でUOクライアントにフォーカス
を当てるとうまくいきました(笑
(フォーカスを制御するアプリがアクティブであれば、仕様に引っかからない
からです)

もしかすると、回答の意味を外しているかもしれませんが、お試し下さい^^

85 :LACHE@AoA:04/09/11 20:13 ID:AQUi8zns
回答ありがとうございます。
>フォーカスを制御するアプリがアクティブであれば、仕様に引っかからない
からです
これが決め手で解決しました^^

UOLinkでなくuoclientが直接SetForegroundWindow()を発行するようにしたら上手くいきました。
本当に有難う御座いました。

86 :名無しのユーザーさん:04/10/09 21:11:37 ID:Ui11IIOM
perl ベースのスクリプトソフトを作ってみました
http://www.vector.co.jp/soft/winnt/util/se332987.html
(シェアウェアとなっていますが使用制限はないです)
Perl の"use Win32Api" option
を使えばuohook.dllの機能を使うことはできるのでしょうか?

87 :がいあ@開発係長 ★:04/10/09 23:24:03 ID:???
>>86
UOHOOK.DLLの話題は、ご遠慮願います(ぺこり

88 :名無しのユーザーさん:04/10/11 20:14:50 ID:kG5GYwgs
もうしわけありません。
以後きおつけます。
またUOHOOK.DLLとは関係なしに
ご利用いただければ幸せです。

89 :名無しのユーザーさん:04/10/11 23:37:38 ID:KSqsI4lw
初めまして。

現在、VB.NETにて、UOYellのような発言ツールと、
まったりちゃっとαやUOSAのようなジャーナル表示ツールを
2つまとめた感じのツールを作成しようとしています。

発言ツールとしての機能は、ほぼ完成しているのですが、
ジャーナルログの取得が出来ず四苦八苦しております。

UOのプロセスからのジャーナルアドレスの検索・取得の方法が、
わかれば解決出来るのだろうと思っているのですが、
その辺の情報を、どなたか教えていただけると幸いです。

よろしくお願いします。


90 :89:04/10/11 23:50:25 ID:KSqsI4lw
ごめんなさい。
ageちゃいました><

91 :がいあ@開発係長 ★:04/10/12 12:22:01 ID:???
>>89
下記のサイトに元祖まったりちゃっとのソースがありますので、
それを解析すると良いと思います。(当方もやりました)

ttp://page.freett.com/sarion/

92 :89:04/10/12 21:06:12 ID:gvy9B/d2
あら、ソースがあったのですね。
これで、なんとか頑張ってみます。

ありがとうございました。
また、何かあったらお世話になるかもしれませんが、
その時は、よろしくお願いします^-^;

93 :89:04/10/13 01:07:59 ID:A0qJFHn+
4時間ほどソースと睨めっこしてみましたが、
どうやら私の出来る範疇では無さそうで…
OpenProcessまではうまく行ったのですが、
その後のログ取得部分(Bufferに溜める部分)で、お手上げ状態です。
もうちょっとわかりやすくならないかな〜。

ジャーナルログが拾えれば、色々とやりたいことが広がるんですが…
以上、出来ない人の愚痴でした><

94 :名無しのユーザーさん:04/10/20 16:56:26 ID:JMjTywM+
こんにちは。
UOAのDisplay text (WM_USER+207)なんですが、
WPARAM loword = color にどのような数値を指定すると、
何色になるのかの資料ってどこかにないでしょうか?

95 :がいあ@開発係長 ★:04/10/20 17:04:24 ID:???
>>94
開発お疲れ様です。

InsideUOのHuesを見て下さい。
そのリストを見れば、大体の色の検討がつくと思います。
左端の数字を入れれば、その色になります。

96 :94:04/10/20 17:45:05 ID:JMjTywM+
左端の数字に対して右側のカラーチャートがえらい多いので
ちょっと戸惑いましたが、そのままの色が出るわけではなく、
少し丸められた(?)色になる感じなのかしらと理解しました。

ありがとうございました。

97 :がいあ@開発係長 ★:04/10/21 00:23:47 ID:???
>>96
フォントなので使う色は限られているワケでして・・・(笑
なので、そんなどぎつい色にはなりません。
重要なのは、ゲーム画面上でもジャーナル上でも見やすい色を選ぶことです。

98 :94:04/10/21 01:32:17 ID:fz3aDGg+
>>97
そですね。

まだ色は決め切れてないけれど、
とりあえずブツはそれっぽくできたです。助かりました。

99 :名無しのユーザーさん:04/11/10 13:20:03 ID:X/1hL0AQ
すいません、ちょっとわかりづらい説明になると思いますが。

・キーボードの[Home]を押すとUOAのデフォルトの設定で割り当てられた機能が起動し、プレイヤーは動かない
・テンキーのNumlockを切った状態で[7](Home)を押すとプレイヤーが斜めに移動

プレイヤーの動きを制御する処理を作りたいのですが、Homeを送信するとUOAに引っかかるため
どうにかして上記の下の状態を再現できないでしょうか。
こちらで調べた限りはNumlockを切った状態の[7]は[Home]と同じキーコードだと思います。

ご存知の方いらっしゃいましたら、どうかよろしくお願いします。

100 :名無しのユーザーさん:04/11/16 20:27:07 ID:rNygQVF6
いろいろ方法はあると思います。
1、HomeキーはUOAのマクロで使わずにUOマクロ「Walk West」を割り当てる。
2、キーフックをしてNumLockの状態取得。ONならそのままHome送信
OFFなら別のキーにすり替えて送信。(別のキーにはWalk WestのUOマクロを組んでおく。
3、2とほぼ同じでMoveRequestは直接サーバーにパケットを送る。

101 :名無しのユーザーさん:04/11/17 12:29:00 ID:yUEako1c
返信ありがとうございます。
UOマクロにWalkがあるって初めて知りました・・
パケットの送信は一度やってみたいのですが、1アカなので試すのがちょっと怖いなと。

一応自己解決できましたので報告。
WM_KEYDOWNの送信時のlParamの24bitめの値「拡張キーであるか」
をUOA側でしっかり判断されているようで、lParamの値を設定して送信することで解決しました。

作ってる物はSayと移動とUOAマクロ起動で歌ったり踊ったりする、ちょっと痛いツールになる予定です。
バックダンサー付きでマ〇ケンサンバを踊れるようにがんばって作成します。

102 :名無しのユーザーさん:04/12/07 00:01:10 ID:1GRG8Bv6
初心者プログラマーです。
今日からVBを使ってUOA連携のツールを作ろうと勉強してます。

早速質問なのですが、Skill値の取得が上手く出来ません。
現象としては、WM_USER+203のコマンドの戻り値が-1になってしまいます。

SendMessageのパラメータは
FindWindowで取得したUOAのハンドル, WM_USER + 203. 1, 0
を渡しております。
WM_USER + 201のコマンドに変更し、実行したところ
リソースカウントは行われたので、UOAハンドルの取得やコマンドの実行は
問題無いと思います。

スキル値の取得のみ上手く出来ないのですが、どこに問題があるのか
お分かりの方がいましたら、ご教授ください。


103 :名無しのユーザーさん:04/12/12 00:52:48 ID:NUEUS9Fg
スキル取得のパラメータは
UOAハンドル,WM_USER+203,取得するスキルの番号,取得内容
Sendmessage(UOAHandle,WM_USER+203,0,1);
これでスキル番号0のスキルのリアル値が取得できる

104 :名無しのユーザーさん:05/01/05 20:01:24 ID:VjOwrEyY
こんにちは
IperlGUIm作者の ひろろです
最近、メインで作ってる(作ろうとしてる)
ソフト(マクロじゃないよ!)
が未踏ソフトというのに採択されてしまいました。
http://internet.watch.impress.co.jp/cda/news/2004/12/21/5901.html
そしてEUOのフォーラムとかに書き込んでたのがみつかると
まずいのかなって思ってます。
困った....

105 :Elise@偽名 :05/03/11 17:19:36 ID:2rAxgMR6
>>がいあ@開発係長様

騎士魔法の持続時間を表示する詠唱サポートツールを公開しました。
もしよろしければリンクしていただけたらと思ったりしてます。

106 :がいあ@開発係長 ★:05/03/11 18:06:08 ID:???
>>105
ご報告ありがとうございます。

今、こちらのミスによりちょいとばかりゴタゴタがありまして、
リンク追加を見送っております。
全て解決し次第、再開いたしますので、それまでお待ち下さい。

107 :Elise@偽名 :05/03/11 21:59:38 ID:2rAxgMR6
んー、なにやらあったようですね。
うちは連絡とかいらんので、じっくりまってます。

108 :Elise@偽名:05/03/14 23:56:42 ID:bBJCDzc2
リンク追加、感謝です。

109 :ななしん(仮名):05/03/26 02:29:02 ID:upPUWaWc
がいあ@開発係長様
ちょこちょこβ版からがんばって作ってきた
UOあかうんと支援ツールの「うおあか」が協力いただいた方々のおかげで
やっと形になりましたので、よろしければリンクしていただけると幸いです
板汚し失礼致しました。
http://sfmt.hp.infoseek.co.jp/

110 :名無しのユーザーさん:05/04/01 19:27:03 ID:dDyPLdro
あげとこ

111 :詐欺:05/09/26 07:43:09 ID:IyWTVm7w
すぐに新しい[UO Super Viewer UO:ML ] 来ることか. あなたに感謝しなさい

112 :名無しのユーザーさん:06/01/02 01:56:42 ID:y86j9Ze2
こんにちは。ここで質問させて頂くのは初めてです。
ジャーナルバッファの検索・ジャーナルログの取得方法が分からずに困っています。

過去ログを読んで、まったりちゃっとのソースを解析すれば良いと分かったのですが、
件のページはもう公開されていないのですね。

どなたか処理方法をご存知の方、ご教授願えませんでしょうか。
あるいはまったりちゃっとのソースをお持ちの方、株分けしていただけませんか?^^;

113 :名無しのユーザーさん:06/08/14 10:27:40 ID:jJ1l3RUc
このような事を聞いて良いのかどうか、、。

これからプログラムの勉強を始めたいと思ってるんだけども
EUOを使うにあたって必要なのはどのようなプログラムで
何から勉強していけば良いのかな?


114 :Iz:06/10/08 22:40:28 ID:w1lEwuZc
はじめまして。
ギルドに韓国人プレイヤーが入隊したことから日韓翻訳チャットを作成中です。
ツール側テキストボックスに入力した日本語文章を外部の翻訳サイトに投げて、
返ってきたハングルの翻訳結果をUOで直接発言させようとしています。

翻訳サイトからハングルを取得する部分は完成したものの、
SendMessageWでUOクライアントに送ると文字化けしてしまいました。
(SendMessageAで日本語を発言できるのは確認しました)


For i = 1 To LenB(txtJarnal.Value) STEP 2
Call SendMessageW(wUoHand, WM_IME_CHAR, AscW(MidB(txtJarnal.Value, i, 2)), 0)
Next i
Call SendMessageA(wUoHand, WM_IME_CHAR, vbKeyReturn, 0)


何処が間違っているのか気づいた点があればご指摘願えないでしょうか?
また、UOクライアントからジャーナルを取得する手法についても、教えていただけたら嬉しいです。
よろしくお願いします。

115 :太郎:2008/05/19(月) 12:25:03 ID:czVD/txA
はじめまして!!今度研究室でC++Builderを使います。研究内容は動画編集でCMカットをできるようにすることです。
場面の変わり目を自動的に調べられるようにしたいのです。。。今は画像の差を調べたいのですが
何か良い方法があったら教えてください


33KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail(省略可)

0ch BBS 2007-01-24