■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build48
501 名前:デフォルトの名無しさん :2007/01/01(月) 12:26:17
>>500
もう一言だけ。
猫は焼き捨てること。

502 名前:デフォルトの名無しさん :2007/01/01(月) 12:39:17
ニャー

503 名前:デフォルトの名無しさん :2007/01/01(月) 13:05:28
「日本語の資料で」「お金をかけることで自分を奮起させて」「順を追って学習したい」「完全な初学者」
なら猫も悪くないと思うぜ 立ち読みした印象だけど

504 名前:デフォルトの名無しさん :2007/01/01(月) 13:27:34
全然知らないところに突撃する前のウォーミングアップにも便利だよ

505 名前:デフォルトの名無しさん :2007/01/01(月) 14:38:20
webで全部読めるのに本買う馬鹿がいるとは思わなかった

506 名前:デフォルトの名無しさん :2007/01/01(月) 14:43:12
あれをwebで全部読む馬鹿がいるとは思わなかった

507 名前:デフォルトの名無しさん :2007/01/01(月) 15:09:34
webの方の最初の章は古くなったネタがあるが、
本では改修されていたりする。
Windows の UNICODE のフォローは無いが。

508 名前:デフォルトの名無しさん :2007/01/01(月) 15:32:27
猫のサンプルソースが全部全角になってるのはコピペ対策?

509 名前:デフォルトの名無しさん :2007/01/01(月) 15:46:27
その方がかっこいいからだ!

510 名前:デフォルトの名無しさん :2007/01/01(月) 15:53:28
全角になってるとこなんてある?
全角のように見えるけど全部半角じゃね?

511 名前:デフォルトの名無しさん :2007/01/01(月) 16:37:38
あそこは字がでかすぎて読みづらいし、
余分なところまで載せてるから長くて読んでられない。
ビルドするにはいいけど

512 名前:デフォルトの名無しさん :2007/01/02(火) 06:39:57
なんでもかんでもグローバル使い杉
小さい子が真似したらどうすんだよ

513 名前:デフォルトの名無しさん :2007/01/02(火) 07:05:17
サンプルコードってのは、できるだけ簡素に書いた方がいいんだよ。
俺は単機能のサンプルくらいならソースは1ファイル構成でクラス等は
使わずにほぼCの機能だけで書く。

514 名前:デフォルトの名無しさん :2007/01/02(火) 07:06:15
グローバル便利じゃん
免許のいらない自動車ぐらい便利だと思う

515 名前:デフォルトの名無しさん :2007/01/02(火) 10:16:17
ただで清ますか、安物買って、結局2chに助けを求め、混ぜっ返され、混沌と化す。
そんな末路をたどるくらいなら、Petzold買え。


516 名前:デフォルトの名無しさん :2007/01/02(火) 11:25:02
漏れは、WIN32Apiに関連した、単語を検索すると、猫のサイトがよくヒットしてたので
時々見ていたが、こいつの本だけは絶対に買わないと決めた
Charles Petzoldの上下買うのは多少勇気がいったが買ってよかったと思う
単なるできたらいい、動けばいいといった内容ではなく、Windowsの歴史から
書いてあるので、一から順序立てて書いてあるので理解がしやすい。
また、Windows本のバイブルと言われる理由も納得できる。
長尾 高弘氏の訳もすばらしい。

517 名前:デフォルトの名無しさん :2007/01/02(火) 12:34:03
Petzoldってそんなにいいのか。
買って見ようかな。
自分はAdvanced Windowsで理解した口だけど。

518 名前:デフォルトの名無しさん :2007/01/02(火) 12:41:59
これは?
ttp://www.jbook.co.jp/p/p.aspx/1938530/s/


519 名前:デフォルトの名無しさん :2007/01/02(火) 15:46:06
タブコントロールを作成して、タブバーを除く領域全体に、
ボタンやエディットのウインドウを貼り付けるにはどうすればいいですか?
タブコントロールのサイズに合わせて表示したら、
タブバーの上にまで、乗せられてしまいます。

520 名前:デフォルトの名無しさん :2007/01/02(火) 17:52:41
GetKeyStateに関する質問です。

SetWindowsHookExに渡すハンドラ内で
Capsキーが{押された,離された}(Shift無し)を取得したいと考えています。

VK_OEM_ATTN(0xF0)が該当のキーコードであることまでは自力で調べられたのですが、
GetKeyStateにVK_OEM_ATTNを引数として渡すと、
キーの状態に関わらず返り値の最上位ビットは常に立っています。
(ほかのキーコードを引数にするときは期待する値が返ってくる)

GetKeyStateではVK_OEM_ATTNの状態は取得できないのでしょうか?
よろしくお願いします。

521 名前:sage :2007/01/02(火) 17:54:15
520です。。
sage忘れました。まことに申し訳ない。。。

522 名前:デフォルトの名無しさん :2007/01/02(火) 18:20:10
使い方を間違ってる

523 名前:デフォルトの名無しさん :2007/01/02(火) 18:20:32
>>519
TCM_ADJUSTRECT
ttp://msdn2.microsoft.com/en-us/library/ms650963.aspx


524 名前:デフォルトの名無しさん :2007/01/02(火) 18:34:58
GetAsyncKeyStateなら取れるんじゃね?

525 名前:520 :2007/01/02(火) 19:00:23
>>524
レスありがとうございます。

早速試してみたのですが、
最上位,最下位ビット共に0(ビット立たず)でした。
GetKeyStateとはまったく逆の結果が取れるんでしょうか。。
GetAsyncKeyStateに関しても他のキーコードは正しく取得できているようです。

VK_OEM_ATTNのキーコードは例外的な扱いなのでしょうか・・

526 名前:デフォルトの名無しさん :2007/01/02(火) 19:27:05
VK_CAPITALじゃないの?

527 名前:520 :2007/01/02(火) 19:41:24
>>526
説明不足で誤解を招いてしまい申し訳ないです。

CtrlキーとCapsキーを「起動している間だけ入れ替える」
アプリケーションを作るのが私の目的です。

VK_CAPITALは
"Shiftキー"を押しながら"CapsLockキー"を押した時
発生するキーイベントなので目的とは違ってしまうんです。

私もはじめはVK_CAPITALかと思ってずーっとハマってました。
VK_OEM_ATTNか!なるほど!と思って進めたらこんな状態です。



528 名前:519 :2007/01/02(火) 19:42:18
>>523
ありがとうございました。

529 名前:デフォルトの名無しさん :2007/01/03(水) 01:42:08
>>527
GetKeyStateで取得したい仮想キーと0x80の論理積が求まれば
幸せになれるかも^^ね、外していたらスマソ

530 名前:デフォルトの名無しさん :2007/01/03(水) 02:20:04
仮想キーコードはシステムの状態に応じてOSが作り出した仮想的なキーコードです。
キーボード上のキーと仮想キーコードは、必ずしも1対1に対応しているわけではありません。
中にはキー操作だけでは発生させることのできないキーコードもあります。


531 名前:デフォルトの名無しさん :2007/01/03(水) 02:41:10
>>520
最初の一回目だけ bit 15-7 が
0->1
になるのを確認出来た
bit 6-1 はずっと 0
bit 0 は 1->0 になった

そのあとは押しても放してもずっと変化しないみたい
プログラム終了して実行しなおしても変わらなかった

どこかで状態リセットする必要があるんじゃないかな


532 名前:デフォルトの名無しさん :2007/01/03(水) 03:37:44
GetKeyState 呼ぶ直前に
SetKeyboardState で 0 * 256 書き込んだらクリアされるみたい
一回押すと覚えてしまうみたいなので毎回 SetKeyboardState 呼ぶ必要あり

533 名前:デフォルトの名無しさん :2007/01/03(水) 03:44:09
あと、他のキーの状態分からなくなると困るので
char kbuf[256];
GetKeyboardState(kbbuf);
で現在の状態を配列に読み込んでから
kbbuf[0x0F0] = 0;
SetKeyboardState(kbbuf);
GetKeyState(0x0F0);
かな

押された状態を覚えてしまってるので
キーが放されてても拾ってしまうケースがありそう



534 名前:デフォルトの名無しさん :2007/01/03(水) 03:45:31
GetKeyboardState と SetKeyboardState の間が
アトミックじゃないのはあきらめるしかないのかな

535 名前:デフォルトの名無しさん :2007/01/03(水) 03:48:19
そもそも、入れ替えだけなら調べる必要ないだろ

536 名前:デフォルトの名無しさん :2007/01/03(水) 06:31:23
とある場所でLocalAlloc/LocalFreeというAPIを見たのですが
ググってもほとんど説明がない、これはなんですか?

537 名前:デフォルトの名無しさん :2007/01/03(水) 07:07:30
普通に msdn にあるだろうが。

538 名前:デフォルトの名無しさん :2007/01/03(水) 07:13:05
16ビットの時の名残だな
今は明確な違いは無いだろう

539 名前:デフォルトの名無しさん :2007/01/03(水) 09:22:36
>>535
だよね。WH_KEYBOARD_LLのフックプロシージャ内で、コードもわかるし、握り潰しもできるらしいし。。
あ、でもOEM_ATTNは、押下はわかるけど、開放はわからないっぽい。だとすると同時押しに対応できない?

540 名前:デフォルトの名無しさん :2007/01/03(水) 10:51:55
VK_OEM_ATTNは違うよ。マウスでガチャガチャやるだけで立つ。
WM_KEYDOWNで来るのは0xFFF0だった様な気が。スキャンコードは不変。
535に一票。

541 名前:デフォルトの名無しさん :2007/01/03(水) 11:02:03
ドライバ使えばできるよ。





マイナスドライバで引っぺがしてCAPSとCTRL入れ替えるの。

542 名前:デフォルトの名無しさん :2007/01/03(水) 11:26:56
手でいいじゃん


ぼくドラえもんさんですか?

543 名前:デフォルトの名無しさん :2007/01/03(水) 11:49:24
レジストリでいけたような
Keymapだったっけ?


544 名前:520 :2007/01/03(水) 11:52:24
>>529
GetKeyStateの返り値と{0x80,0x01}の論理積で確認しています。
ささいな事でも情報をいただけるだけで助かります。

>>530
なるほど。すごく勉強になります。VCでのプログラミング経験が浅いので
そういった基礎知識が欠けているような気がします。
仮想キーコードに関して少し勉強してみます。

>>531
わざわざ確認までしていただき恐縮です。
状態リセットですか。それも一度やってみたのですが、
Ctrlとして動作させるのにプログラム側でリセットすると
非常に使いづらいCtrlキーになってしまいました。
Upのイベントを取得できるのが理想なのですが。。

>> 532-534
やはりそうなのですか。ただ上で書いたとおりプログラム側から
のリセットはタイミングが非常に難しいです。
GetKeyStateは今回の用途に向いていないんですね。


545 名前:520 :2007/01/03(水) 11:52:55

>>535
おっしゃる通りです。
WH_KEYBOARD_LLでグローバルフックを仕込んでいます。
キーイベントが発生するとフックプロシージャが呼ばれるので、
そこでキーコードだけ調べればいいというお話ですよね。
しかし、VK_OEM_ATTNだけUpのイベントが取得できませんでした。
プロシージャ内にMessageBoxなどを仕込むと、
キーを押して離すと当然2つのMessageBoxが出現するのですが、
Caps(VK_OEM_ATTN)のみMessageBoxは1つ,キーダウンの時だけでした。

そこでGetKeyStateなら調べられるのではないかと思っていたのですが。。

>>539
私もみなさんの意見をいただいて今そのように考えています。
なんとか開放を知りたいですね。

>>540
マウスでガチャガチャというのはどういう意味でしょうか??
重要なヒントな気が。
よろしければ詳しく教えていただけないでしょうか。

>>541
USBメモリに入れて環境を汚染せずに使いたいと思ってます。
そうか!ドライバを持ち歩けry

>>542
そうか!これで何も持たずry


546 名前:540 :2007/01/03(水) 12:37:35
以前、EDITとPUSHBUTTONをもつモードレスダイアログを作ったとき、
マウスでダイアログのアクティブ/非アクティブ/フォーカス変更を行うと
GetKeyboardState()のVK_OEM_ATTNが立ちっぱなしになった経験あり(WinXP)。

547 名前:デフォルトの名無しさん :2007/01/03(水) 12:41:20
リッチエディットはデフォルトで、 Ctrl+V で貼り付け動作を行いますが、
このとき書式はコピーしないようにするには、どうすればいいですか?
アクセラレータの無効化を考えましたが、方法がわかりませんでした。

548 名前:デフォルトの名無しさん :2007/01/03(水) 12:50:15
・YOKODORIする
-or-
・そういうnofityがくるんじゃないかと期待しつつリファレンスを眺める

549 名前:デフォルトの名無しさん :2007/01/03(水) 12:57:59
IRichEditOleCallback::QueryAcceptData でCF_TEXT だけ受けるようにするとか

550 名前:デフォルトの名無しさん :2007/01/03(水) 13:07:04
>>549
CF_UNICODEもアイシテ!

551 名前:547 :2007/01/03(水) 14:10:50
WM_KEYDOWN で Ctrl+V の時は元のプロシージャを呼ばないようにしました。
ありがとうございました。


552 名前:デフォルトの名無しさん :2007/01/03(水) 14:30:06
それだとKEYDOWN以外での貼り付け操作(たとえばコンテキストメニュー)
に対応できなくないか

それともctrl+vだけ対応できてればいいのか

553 名前:デフォルトの名無しさん :2007/01/03(水) 14:35:49
RichEditには標準のコンテキストメニューは無い品。

554 名前:デフォルトの名無しさん :2007/01/03(水) 14:49:45
しかし皆さんフック好きですね一体何がしたいのやら( ̄ー ̄)ニヤリ
フックのプログラムってマジで実験するとき覚悟しないと、CTRL+ALT+DELも
効かずに強制電源OFFしないといけない羽目になる事を覚悟してね
漏れはそれでOS3回再インスコしましたww
まぁ普段からプログラムコードや大切なファイルは外付けのMOに
書いてるし再インスコもnlite使ってるから慣れたもので20分くらいで
XP様ご一行が入ってくるけどねww
気をつけてね>>520さん


555 名前:デフォルトの名無しさん :2007/01/03(水) 14:56:50
昔のコピペ?

556 名前:デフォルトの名無しさん :2007/01/03(水) 15:01:07
見ちゃいけません!

557 名前:デフォルトの名無しさん :2007/01/03(水) 16:54:37
ノックとパンチは引退。青芝フックガンガレ。

558 名前:デフォルトの名無しさん :2007/01/04(木) 00:07:23
猫まねき
ttp://www.remus.dti.ne.jp/~kurotora/intro.htm

559 名前:デフォルトの名無しさん :2007/01/04(木) 01:18:11
僕ハッカー

560 名前:デフォルトの名無しさん :2007/01/04(木) 01:19:00
僕バッカー

561 名前:デフォルトの名無しさん :2007/01/04(木) 01:26:29
バカバッカー

562 名前:デフォルトの名無しさん :2007/01/04(木) 01:29:30
>>559-561
吹いた

563 名前:デフォルトの名無しさん :2007/01/04(木) 01:54:58
暇人多いよな

564 名前:デフォルトの名無しさん :2007/01/04(木) 09:30:27
冬休みももうすぐおわりだな

565 名前:デフォルトの名無しさん :2007/01/04(木) 12:05:15
俺一生冬休み

566 名前:デフォルトの名無しさん :2007/01/04(木) 15:32:19
選択されているタブアイテムのハンドルを取得する方法はありますか?

567 名前:デフォルトの名無しさん :2007/01/04(木) 15:52:34
何のタブアイテムだよ。
現状でわかってるのはどれとどれ。
取得するのはTCM_GETITEMメッセージを送ればいい。

もしかしてC#のスレの人?
他のプロセスからだとそのままポインタ渡せないから
VirtualAllocEx とかReadProcessMemoryも必要になるので注意な。

568 名前:566 :2007/01/04(木) 16:21:38
>>567
sysTabControlの選択されたタブアイテムです
選択されているインデックスは取得できたし
EnumWindowでタブアイテムのハンドルをすべて取得したんだけど
どれが選択されているかどうかがわかりません
タブアイテムのVisible状態で判断しようかと思ったんだけど
うまくいかず。もっと簡単な方法があるのでは?と思いまして

TCM_GETITEMは情報を取得するものってのは知っていましたが
どんな情報なのか?あと、パラメータの設定が難しそうなので
避けてました。ちゃんと調べて見ます
ありがとう。

ちなみに、C#スレにいたものです^^;

569 名前:デフォルトの名無しさん :2007/01/04(木) 17:07:47
>もしかしてC#のスレの人?
>ちなみに、C#スレにいたものです^^;


570 名前:デフォルトの名無しさん :2007/01/04(木) 17:59:28
>>568
ハンドルとって何したいの?


571 名前:デフォルトの名無しさん :2007/01/04(木) 18:11:20
C#ってWin32 API直接呼べるのか?
別プロセスのリストビューにGETITEM送るには、、>>567が言うとおり、
そのウインドウを所有するプロセスのアドレス空間にメモリを確保しなければならないのだが。

572 名前:デフォルトの名無しさん :2007/01/04(木) 18:17:41
>>570
盗んだバイクで走り〜出す〜

573 名前:デフォルトの名無しさん :2007/01/04(木) 18:18:44
Marshal.AllocHGlobal/FreeHGlobalでいけない?

574 名前:デフォルトの名無しさん :2007/01/04(木) 18:48:29
VirtualAllocEx() でないと無理。 GlobalAlloc の戻りハンドルはプロセス間共有できない

575 名前:デフォルトの名無しさん :2007/01/04(木) 18:53:48
>>574
>GlobalAlloc の戻りハンドルはプロセス間共有できない
これ知らずに嵌ったことがあるんだが、何のためにこんな名前になってるん?

576 名前:デフォルトの名無しさん :2007/01/04(木) 18:54:57
>>575
Win16時代は共有できてたし、その名残じゃね?

577 名前:566 :2007/01/04(木) 19:10:34
>>570
選択されているタブ内のcomboboxやtextboxに文字列を送りたいんですけど
選択されているタブのハンドルがわからないと、その子ウィンドウのハンドルもわからないわけで
メッセージも送れないというわけです。
enumwindowなどでtextBoxのハンドル自体は取得できても、それが現在アクティブなタブのものなのかは
わからないので、どうすればいいのかなと。

578 名前:デフォルトの名無しさん :2007/01/04(木) 19:22:33
普通のタブコントロールって、
タブページごとのハンドルとかって無いよね?
唯一のタブ HWND Tab を親にして全部乗っけるっていう形で。

579 名前:デフォルトの名無しさん :2007/01/04(木) 19:28:34
IsWindowVisibleでしらべりゃいんじゃね?

580 名前:デフォルトの名無しさん :2007/01/04(木) 19:46:02
そもそも、よそんちのコントロールに何か書き込むなんて、何か理由があるんだろうから
それが判定のきっかけにならないかねえ

581 名前:566 :2007/01/04(木) 19:46:33
>>579
それがですね、TCM_SETCURSELで選択しても
見た目は確かにタブは切り替わりますが
実際にはといいますか、visibleにはならないんですよ
visible状態なのは切り替える前のタブのままなんですよね
マウスでクリックしてやればvisibleになりますけど
まだ試してないですが、マウスのクリックイベントを送ってやればいいのかもしれないですけど・・・
やっぱブサイクですよね?

582 名前:デフォルトの名無しさん :2007/01/04(木) 20:28:15
カッコイイ!

583 名前:デフォルトの名無しさん :2007/01/04(木) 20:56:52
最近、「寄生派遣」という言葉をよく聞くようになりました。
契約終了を切り出されると「切られたら生活できません」などと
泣き落としで契約更新を迫る派遣のことです。
今月初め、半年前に辞めた派遣が出社してきてみんなびっくりしました。
影でコソコソ偉い人に泣きついて再契約したそうです。同じ部署の人には黙って・・・
そんなことまでして自宅の近くの派遣先にこだわって人間として恥ずかしくないのですか。
派遣でスキルアップ、派遣で収入アップとか言うなら一箇所にしがみつかず
複数の会社を渡り歩いてください。
ひとつの会社で派遣向けの単調な仕事をしていたらスキルアップなんてありえないでしょう。
狭いワンルームを電化製品で埋めるために派遣で足りない収入は親にも寄生して、
いつ切られるんじゃないかとビクビクしながら人事権のある人間とだけ仲良くし、
契約終了を通知されれば泣き落とし。悲惨な人生ですね。
氏んだほうがいいんじゃないですか。


584 名前:デフォルトの名無しさん :2007/01/04(木) 20:58:34
>>581
Invalidateとか?

585 名前:デフォルトの名無しさん :2007/01/04(木) 21:06:04
>>583
で、君の生きてる価値は?

586 名前:デフォルトの名無しさん :2007/01/04(木) 21:06:46 ?2BP(0)
SendMessage(hwnd566, WM_COOOOOOOOOOOOOOOOOL, COOL_CODE, 0);

587 名前:デフォルトの名無しさん :2007/01/04(木) 21:09:29
ああ、SetCurSelはタブしか切り替えないから。
切り替えたあと>>584のようにInvalidateしてだめなら
いったん非表示にして表示させるといいよ

588 名前:デフォルトの名無しさん :2007/01/04(木) 21:09:34
すいません、質問させてください。
ウインドウクラス名からそのクラスが既に登録されているかを
調べたいんですが、FindWindowでクラス名だけ指定しても検出できませんでした。
他にうまい方法はないものでしょうか?

589 名前:デフォルトの名無しさん :2007/01/04(木) 21:17:06
GetClassInfoExが成功するかどうかを、登録されているかどうかの判断に使用したらどう?
FindWindowだと登録されているけど、そのクラスで1つもウィンドウが作られていない場合にうまくいかないと思う。

590 名前:デフォルトの名無しさん :2007/01/04(木) 21:27:20
なるほど、やはりウインドウが作成されていないとダメですか…

> GetClassInfoExが成功するかどうか
この方法で完璧にチェック出来ました。どうもありがとうございます。

591 名前:デフォルトの名無しさん :2007/01/04(木) 21:31:51
TCM_SETCURSELじゃなくて、TCM_SETCURFOCUS使えばいんじゃね?

592 名前:566 :2007/01/04(木) 21:58:45
>>591
>>584
>>587
いろいろありがとう試して見ます

593 名前:デフォルトの名無しさん :2007/01/04(木) 23:26:02
指定したUNICODE文字列が数値かどうかを判断するWin32APIってありますか?
その後の_ttoi()がエラーを返してくれないのでチェックをしなくてはならないんです。
よろしくお願いします。

594 名前:デフォルトの名無しさん :2007/01/04(木) 23:28:27
MSDNよく嫁

595 名前:デフォルトの名無しさん :2007/01/04(木) 23:40:21
MSDNのどこに書いてあるのかわからないんです・・・。
数値の入っていない文字列に_ttoi()を実行すると0が返されるんですが、数値が0であった場合との区別がつかないので。
的外れな質問かも知れませんがよろしくお願いします。

596 名前:デフォルトの名無しさん :2007/01/04(木) 23:50:16
MSDNよく嫁

597 名前:デフォルトの名無しさん :2007/01/05(金) 00:01:18
_ttoi()の部分については2回読んだんですが・・・
どこを読めばよいのでしょう?
"入力がこの型の値に変換できない場合の戻り値は、0 (atoi、_atoi64、_wtoi および _wtoi64)"
こう書いてあるので数値が0のときと比較できない気がしたんです・・・

598 名前:デフォルトの名無しさん :2007/01/05(金) 00:12:46
無い希ガス。
まぁ全文字iswdigitで調べるだけだから自分で書いても。

599 名前:デフォルトの名無しさん :2007/01/05(金) 00:13:27
>>597
あのなぁ、>>594,596は不親切だから俺が結論を出してやるよ。
そんな判定をするAPIは無いってのがMSDNを読んでわからんの?

600 名前:デフォルトの名無しさん :2007/01/05(金) 00:18:23
そうですね、やはり的外れな質問すみませんでした。
自分で組むことにします。

601 名前:デフォルトの名無しさん :2007/01/05(金) 00:22:23
TrackPopupMenuEx()の使い方がよく判りません
このAPIでポップアップメニューは表示できるのですが…

一般的なアプリケーションだとポップアップメニュー範囲外をクリックする事で
メニュー選択がキャンセルとなりますが、自分で作ったアプリケーションだと
メニューが出っ放しで何か選択しない事には消えてくれない実装にしてしまっています。

範囲外をクリックする事でポップアップメニューを消す動作はどのように実現するのでしょうか

602 名前:デフォルトの名無しさん :2007/01/05(金) 00:28:10
>>601
>>594

603 名前:デフォルトの名無しさん :2007/01/05(金) 00:33:04
>>601
通知アイコンでやtってんのかな?
メニュー出すときに、SetForegroundWindow()呼んどけ

604 名前:601 :2007/01/05(金) 00:47:26
>603
出来ました
マリガトウ

>602
どうせならMSDNの何処を読めばいいのか教えてくれ


605 名前:デフォルトの名無しさん :2007/01/05(金) 01:02:37
>>604
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus/menureference/menufunctions/trackpopupmenu.asp
のRemarks。
TrackPopupMenuも見てみる、という考えが思いつかないようだったらアレだが。

606 名前:デフォルトの名無しさん :2007/01/05(金) 01:09:20
MSDN日本語版では注意書き消えてるな
これじゃ仕方ない

607 名前:デフォルトの名無しさん :2007/01/05(金) 01:15:30
>>606
酷ぇw

608 名前:デフォルトの名無しさん :2007/01/05(金) 01:23:05
>>606
小学生か
それじゃ仕方ない

609 名前:デフォルトの名無しさん :2007/01/05(金) 01:30:01
こんな事で笠に着て威張る小学生>>608はカッコヨス

610 名前:608 :2007/01/05(金) 02:04:35
ふーん

611 名前:デフォルトの名無しさん :2007/01/05(金) 03:17:57
>600
なんでtcstolにしなかったの?

612 名前:デフォルトの名無しさん :2007/01/05(金) 06:29:45
自作ウィンドウのタイトルバーを掴んでドラッグ(移動)中に
SetWindowPlacementでウィンドウのサイズを変更すると
マウスを止めている間は変更したサイズのままなのに
マウスを動かすと変更前のサイズに戻ってしまいます

これをドラッグ状態を維持できるできないに関わらず
なんとか変更後のサイズを維持する方法はないでしょうか?

SetWindowPlacementをする直前にドラッグ状態から
抜けさせてしまえばいいかなと思ってWM_EXITSIZEMOVE
送ってみたりしましたがダメでした


613 名前:デフォルトの名無しさん :2007/01/05(金) 15:35:59
APIで自動でエロゲを攻略してくれるソフト作れますか?

614 名前:デフォルトの名無しさん :2007/01/05(金) 15:37:26
作れます。

615 名前:デフォルトの名無しさん :2007/01/05(金) 15:59:49
GUIのテストツールとかあるから
そういうの真似れば自動でチャートまで作ってくれるエロゲ攻略ソフトが作れるかも・・・

616 名前:デフォルトの名無しさん :2007/01/05(金) 17:06:07
SendMessage(*, WM_USER, *, *);
して
case WM_USER:
SendMessage(*, WM_USER, *, *);
しても無限にSendMessageされないのなんで?


617 名前:デフォルトの名無しさん :2007/01/05(金) 17:16:47
>>616
SendMessage(*, WM_USER, *, *);
して
case 0x0400:
SendMessage(*, WM_USER, *, *);

これで動くか?

618 名前:デフォルトの名無しさん :2007/01/05(金) 17:40:13
無限ループに陥った
ためしにUINT MsgをWM_LBUTTONUPやWM_KEYDOWNにしたら40回しかループしないん
だけどなんで?

619 名前:デフォルトの名無しさん :2007/01/05(金) 17:45:26
メッセージループを通るやつと直接呼ばれるやつの差で、
メッセージキューのサイズが影響してるとか?

620 名前:デフォルトの名無しさん :2007/01/05(金) 18:16:15
>>616
> しても無限にSendMessageされないのなんで?
>
>>618
> 無限ループに陥った

621 名前:デフォルトの名無しさん :2007/01/05(金) 18:19:27
>>620


622 名前:デフォルトの名無しさん :2007/01/05(金) 18:56:41
>>593
> 指定したUNICODE文字列が数値かどうかを判断するWin32APIってありますか?

GetStringTypeA / GetStringTypeW / GetStringTypeEx
ttp://msdn.microsoft.com/library/ja/jpwinui/html/_win32_getstringtypew.asp
ttp://msdn.microsoft.com/library/ja/jpwinui/html/_win32_getstringtypeex.asp


623 名前:デフォルトの名無しさん :2007/01/05(金) 19:04:05
つうか、過去ログにもあったな

ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html

206 名前:デフォルトの名無しさん :03/03/27 17:03
文字列が数値かどうか判定するAPIってありましたでしょうか?
VBでいうところのIsNumericです。

207 名前:デフォルトの名無しさん :03/03/27 17:16
>>206
GetStringType, GetStringTypeEx かなぁ?

208 名前:デフォルトの名無しさん :03/03/27 17:20
>>206
IsCharAlphaNumeric() && !IsCharAlpha()
ではどうか?

624 名前:デフォルトの名無しさん :2007/01/05(金) 20:48:12
PostMessage(hWnd, WM_APP, (WPARAM)new Foo, NULL);
(中略)
case WM_APP: delete (Foo*)wParam;

みたいなメッセージを100万回とかアホみたいに送り付けると
キューからあふれた分はメモリーリークするって事でOKですか?

625 名前:デフォルトの名無しさん :2007/01/05(金) 21:02:43
PostMessageの戻り値ってなんだっけ?

626 名前:デフォルトの名無しさん :2007/01/05(金) 21:17:14
>>625
成功したか否か

627 名前:デフォルトの名無しさん :2007/01/05(金) 21:19:25
>>625
BOOL

628 名前:デフォルトの名無しさん :2007/01/05(金) 21:30:45
>>625
つまり

Foo *foo = new Foo();
if (PostMessage(hWnd, WM_APP, (WPARAM)foo, NULL) == FALSE)
  delete foo;

にしろということ?

629 名前:デフォルトの名無しさん :2007/01/05(金) 21:51:10
== FALSE
がキモい

630 名前:デフォルトの名無しさん :2007/01/05(金) 22:07:55
>>628
PostMessageが成功してもすぐに処理されるわけじゃないから、deleteしちゃいかんでしょ。

631 名前:デフォルトの名無しさん :2007/01/05(金) 22:10:07
Win32APIの関数で現在見ている、見ているInternetExplrerのアドレスを取得する
関数があれば関数名を教えてください
やっぱりSocket使わないと無理なのかなぁ?

632 名前:デフォルトの名無しさん :2007/01/05(金) 22:19:18
 

633 名前:デフォルトの名無しさん :2007/01/05(金) 22:34:54
日本語でおk

634 名前:デフォルトの名無しさん :2007/01/05(金) 22:37:49
>>631
現在見ているInternetExplrerのアドレスを取得する為のWin32APIというものは存在しません。
また、Socketを使っても出来ません。

635 名前:デフォルトの名無しさん :2007/01/05(金) 22:44:03
>>631
Win32API でとなると面倒
IE、アドレス、DDEとかでググレ

636 名前:デフォルトの名無しさん :2007/01/05(金) 22:53:01
>>630
>>629

637 名前:デフォルトの名無しさん :2007/01/05(金) 22:56:52
見ている、見ている

638 名前:デフォルトの名無しさん :2007/01/05(金) 23:00:51
アドレスバーのComboboxから取れるんじゃね

639 名前:デフォルトの名無しさん :2007/01/05(金) 23:35:50
GetActiveObjectから、なんだかんだを経てIWebBrowser2へのポインタを取得すればいいだけでは?

640 名前:デフォルトの名無しさん :2007/01/05(金) 23:59:48
皆様方、新年おめでとうございます。
今年も、Win32APIが健全でありますよう、
願う者でございます。

Win32APIが末永く、Windowsの基礎であるよう、
切に願う者でございます。

641 名前:デフォルトの名無しさん :2007/01/06(土) 00:00:49
InternetExplrer2つ立ち上げてる場合の
現在見ている、見ているInternetExplrerのアドレスってどれ?

642 名前:デフォルトの名無しさん :2007/01/06(土) 00:15:05
>>639
>>631です
IWebBrowser2でいけそうですね、全然知らなかったのでマネージドかと思ったけど
MSDN見たらアンマネージドでした使えそうです
サンクス

643 名前:デフォルトの名無しさん :2007/01/06(土) 00:15:34
視線認識だな。がんばれ。

644 名前:デフォルトの名無しさん :2007/01/06(土) 00:20:37
641はグーイを作ろうとしている(なつかしっ)

645 名前:デフォルトの名無しさん :2007/01/06(土) 01:14:05
ファイル名の文字コードにEUCを使いたいのですが、movefileを使ってもうまくいきませんでした。
具体的には、"やわらか.txt"をEUCコードの文字列にすると「A4 E4 A4 EF A4 E9 A4 AB 2E 74 78 74 00」となるのですが
これを引数としてファイル名を変えると、「A4 E4 A4 81 45 E9 A4 AB 2E 74 78 74 00」と一部が勝手に変換されてしまいます。

windowsではEUCコードの文字列をファイル名に用いることは無理なのでしょうか?

646 名前:デフォルトの名無しさん :2007/01/06(土) 01:45:26
Vistaのことも考えてUnicodeにしておくのが無難

647 名前:デフォルトの名無しさん :2007/01/06(土) 01:47:26
それ、途中でUTFとして扱ってそう。
UTFでEFは確か特別な意味があった予感。

648 名前:デフォルトの名無しさん :2007/01/06(土) 01:47:48
ファイルシステムにはunicodeで格納されるんだが
何をやりたいのかがわからん

649 名前:デフォルトの名無しさん :2007/01/06(土) 02:00:30
>>645
ワイド文字列に無理矢理 EUC ぶちこんでUNICODE系のAPIを使え。

650 名前:デフォルトの名無しさん :2007/01/06(土) 04:31:04
>>645
少なくともNT系のOS(2000とかXPとか)はファイル名を内部的には
Unicodeで持っているから、EUCとか無意味。つーか無理。

95系なら可能かもな。

651 名前:デフォルトの名無しさん :2007/01/06(土) 04:46:18
9x系でもIFSレベルではUnicodeで扱われるしVFATの長いファイル名もUnicodeで
記録されるし。

652 名前:デフォルトの名無しさん :2007/01/06(土) 15:09:57
>>646-651
ありがとうございます。
どうやら無理そうですね、勉強になりました。

653 名前:デフォルトの名無しさん :2007/01/06(土) 15:28:37
ShowWindowでもタスクトレイにアイコン化されたものを
元のサイズに戻せないんだけどどうすればいい?

654 名前:デフォルトの名無しさん :2007/01/06(土) 16:02:37
OpenIconじゃね?

655 名前:デフォルトの名無しさん :2007/01/06(土) 16:18:19
>>654
それでもうまくいかないです
別のアプリだからかな?
hideになってるフォームが表示されるだけで
実体はアイコン化されたままなので描画されないんです

656 名前:デフォルトの名無しさん :2007/01/06(土) 16:24:45
もしかしてDelphiアプリケーションか?

657 名前:デフォルトの名無しさん :2007/01/06(土) 16:25:37
タスクトレイじゃ無くてタスクバーじゃないの?
ShowWindowでいいはずだけど、パラメタ間違ってない?

658 名前:デフォルトの名無しさん :2007/01/06(土) 16:28:37
元に戻す操作をした時のWM_COMMANDとかをSPY++で調べてみりゃいんじゃね?

659 名前:デフォルトの名無しさん :2007/01/06(土) 16:39:04
>>656
そうです

>>657
タスクバーって最小化されてタブ化されているとこですよね?
そうじゃなくて、時計のところのタスクトレイにアイコン化されて
フォームはhideされている状態で、タスクバーにはタブ化されてません

>>658
それもやってみていたんです。
アイコン化されたものをクリックして元に戻したりしてみたんですが
wm_commandは送られてません
syscommandで元に戻すようにしてみたり
wm_activeしてみたりいろいろしたんですけど

660 名前:デフォルトの名無しさん :2007/01/06(土) 16:41:01
Delphiは隠しウィンドウがあるからごにょごにょ

661 名前:デフォルトの名無しさん :2007/01/06(土) 16:42:56
>>659
Delphiのウィンドウは透明のアプリケーションウィンドウの子ウィンドウだから、そっちにもメッセージ送らんといかん

662 名前:デフォルトの名無しさん :2007/01/06(土) 16:56:10
>>660
>>661
ありがとう
delphiは特殊だったんですね
調べて見ます

663 名前:デフォルトの名無しさん :2007/01/06(土) 17:24:53
つーかタスクトレイは最小化したウィンドウじゃないぜ?
なんか勘違いしてないか。
まあ通知用に非表示のウィンドウを1つ持たせるのが普通だけど
そういう決まりがあるわけじゃなし

664 名前:659 :2007/01/06(土) 17:42:09
TApplicaitonってものだったんですね
この数日ずっと調べてたのにSW_Restoreであっさりいけました^^;
感謝感激

>>663
アイコンはアイコンで別で構造体を定義したものを追加してるだけなんですよね
で、メインフォームはHIDEされていると。
でも、非表示ウィンドウをメインフォームとは別に用意している場合があるってのが
知らなくて苦労しました

665 名前:デフォルトの名無しさん :2007/01/06(土) 18:18:21
分からない事があったので、質問させてもらいます。
ttp://www14.big.or.jp/~ken1/tech/tech9.html
void Blit(HDC from,HDC to,int x,int y,int width,int height,int fromx,int fromy,COLORREF tran)
:
mmono=CreateCompatibleDC(from);
bmono=CreateBitmap(width,height,1,1,NULL);
SelectObject(mmono,bmono);
SetBkColor(from,tran);
BitBlt(mmono,0,0,width,height,from,fromx,fromy,SRCCOPY);
ビットマップmmono作成してこれを表示するプログラムなんですが
640×2880のビットマップをfromyに0から480ずつ足していき、
アニメーションをさせたいのです。
しかし、0の値の時しか表示しません。
Blit(hTzk,hBuf,0,0,640,480,0,btStartY,RGB(255 , 0 , 255));
お願いします。

666 名前:デフォルトの名無しさん :2007/01/06(土) 18:27:59
事故解決しますた;
表示するとき作成したビットマップを超えたY領域指定した
スンマセン

667 名前:659 :2007/01/06(土) 21:28:39
いけたと思ったのにいけてなかった
そのときはアイコン化されてなかったのか?

同じコードでやっても全然反応しない
TApplicationをRestoreするとタスクバーに表示されるだけで
アイコンは残ったまま
メインフォームをrestoreしてもフォームが表示されるだけで
アイコンは残ったまま

何が悪いんだろ

668 名前:デフォルトの名無しさん :2007/01/06(土) 21:34:26
>>667
タスクトレイのアイコンはフォームの最小化とは無関係だから。

669 名前:デフォルトの名無しさん :2007/01/06(土) 21:36:27
>>667
もともとやってることが邪道

外部から無理やりにリストアされた時にタスクアイコンを消去するように組まれてないんだろ。

670 名前:659 :2007/01/06(土) 21:57:43
>>668
いやまあ、それはそうなんですけど
取り出さないと機能が戻らないんですよね
フォームが再描画されないってことです

>>669
そういう場合もあるんですか・・
ってなると、タスクトレイのツールバーからアイコン情報取得して
何かしらのイベント送って、正規の手順を踏んだように見せないとだめってことかなぁ・・

671 名前:デフォルトの名無しさん :2007/01/06(土) 22:08:49
>>670
そういうことじゃない。
タスクトレイのアイコンはフォームの最小化とは無関係ってのは
フォームをRestoreした時に自動的にトレイアイコンも消えるようにはなってないって事。
トレイアイコンを消すのは自分でやるの。

672 名前:デフォルトの名無しさん :2007/01/06(土) 22:23:40
自分で簡単なタスクトレイアプリ作ってみればわかると思うよ

673 名前:デフォルトの名無しさん :2007/01/07(日) 00:06:21
自分でタスクトレイアプリを作ったことが一度もないのに
他のアプリのトレイアイコンを操ろうとするなんておこがましいと思わんかね?

674 名前:659 :2007/01/07(日) 00:27:36
もしかしてこういうことをいいたいんですか?

Shell_NotifyIcon(NIM_DELETE, NID)

アイコンの追加も削除の仕方も知ってるんですけど・・

フォームとアイコンは関係ないとか言ってますけど
そりゃ表示上は別々に機能するでしょうけど
内部で連動してる場合もあるわけで
アイコンを削除したらいいって単純なことじゃないんですけど

675 名前:デフォルトの名無しさん :2007/01/07(日) 00:31:17
いや、俺も流石にこれ以上は釣られないぞ

676 名前:デフォルトの名無しさん :2007/01/07(日) 00:32:21
>内部で連動してる場合もあるわけで
ありません。完全に別のものです。

677 名前:デフォルトの名無しさん :2007/01/07(日) 00:34:43
>>674
OS/Shell/Applicationの管轄がそれぞれどこからどこまでかもう一度勉強しなおしてきてくれ。

678 名前:659 :2007/01/07(日) 00:39:30
>>676
では、アイコンは勝手に削除されるわけですね?
アプリが終了しようとしまいと関係なく独立しているわけだ。なるほどね

ここでレベルの低い人を相手にしてても仕方がないので
自分で調べますよ

679 名前:デフォルトの名無しさん :2007/01/07(日) 00:50:31
>>678
>アプリが終了しようとしまいと
いいえ、フォームとトレイアイコンの関連の話です。

680 名前:デフォルトの名無しさん :2007/01/07(日) 00:54:40
アプリが終了したら、プロセスが所有するリソースは基本的にOSが回収するってだけで。
フォームとトレイアイコンの関係とは全く別問題だよね?

681 名前:659 :2007/01/07(日) 00:58:09
そんな屁理屈みたいなこと言って楽しいわけ?
表示上は別物だって何度も言ってるでしょ

682 名前:デフォルトの名無しさん :2007/01/07(日) 00:59:36
もう秋田

683 名前:659 :2007/01/07(日) 00:59:44
煽りだけは一丁前だけど
全然解答だせないじゃないw
初心者に毛が生えたような知識でえらそうにするなよw

684 名前:デフォルトの名無しさん :2007/01/07(日) 00:59:52
MutexとかOSが回収しない物もあったような

685 名前:デフォルトの名無しさん :2007/01/07(日) 01:02:59
自分に利が無いと判断した時点でレスは全て無視しとけ

686 名前:デフォルトの名無しさん :2007/01/07(日) 01:04:13
>>678
アイコンを管理してるのはシェルだから、アプリケーションが落ちたからといってすぐに消えるわけじゃない。

687 名前:659 :2007/01/07(日) 01:08:53
どうでもいいけど、アイコン化されたアプリを
元のサイズに戻して、機能も戻す方法は教えてくれないわけ?

688 名前:デフォルトの名無しさん :2007/01/07(日) 01:18:52
>687
どっちかってぇとDelphi/BDSスレに行ったほうがいいんじゃまいか?
ただそんな態度じゃ相手にしてもらえないような気もするが。

689 名前:デフォルトの名無しさん :2007/01/07(日) 01:23:40
NOTIFYICONDATA とWM_TRAYICONMESSAGEでいけると思うがね。
あとはテメーで調べろ。


690 名前:デフォルトの名無しさん :2007/01/07(日) 01:24:28
クリックしたときに送られるWM_COMMANDのIDとかがわからないならクリックのメッセージ送ればいいだろ・・・

691 名前:659 :2007/01/07(日) 01:29:47
ほんと頭にくるね
こっちはわかり易く現状言ってるのにそれに揚げ足取るなんてな
フォームとアプリとアイコンが別物だってことぐらい知ってるわ

表現上わかり易く伝えるために、フォームは表示されるけど
内部的にはアイコン化された状態だって言ってるのに

「フォームが最小化してアイコンになるわけじゃない」
とかW
>>657
パラメータってなんだよWWパラメータってW
>>658
WM_COMMANDってwwメニュー操作じゃねーんだからなw

>>689
ありがとう
それで調べてみる

>>690
わからないじゃなくて送られてないの
あとさ、クリックイベント送るっつーことは
タスクトレイ、つまりtoolbarに対してグローバルメモリ割り当てて
情報取り出してメッセージ送らなきゃならないわけ
そこまで面倒なことしなくてもいいのか知りたいから質問しただけ

692 名前:デフォルトの名無しさん :2007/01/07(日) 01:34:13
さあて>>659が必死になってまいりました

693 名前:659 :2007/01/07(日) 01:36:10
>>689
つか、それアイコンの構造体じゃねーか
そんなのわかってんだよ
自アプリのアイコンを削除したいわけじゃねーの

>>690
ボタン押すのと同じと思ってないか?

694 名前:デフォルトの名無しさん :2007/01/07(日) 01:37:47
つか間違った意見であっても"出してくれる人"に頭下げられない奴はダメな気がする

695 名前:デフォルトの名無しさん :2007/01/07(日) 01:40:55
自分でできないで人に頼ってるくせにこいつは何でこんなに偉そうなんだ?wwwwwww

696 名前:659 :2007/01/07(日) 01:42:03
>>694
間違っていることを伝えられるのも2ちゃんねる
煽りや虚言にお礼言っててどうすんだよ・・

>>695
わからないならだまっとけ

697 名前:659 :2007/01/07(日) 01:46:27
もう一度言う。自アプリのアイコンを削除したいわけじゃない

698 名前:デフォルトの名無しさん :2007/01/07(日) 01:50:20
こいつ最低だな。
現実世界でも、自分の思い通りの回答やらアドバイスしないと罵倒しまくる奴なんだろうな。

699 名前:695 :2007/01/07(日) 01:50:55
よーしDQNな俺様が解決してやる
用件定義を言え>>655でいいのか?

700 名前:デフォルトの名無しさん :2007/01/07(日) 01:51:14
人間として最低。

701 名前:695 :2007/01/07(日) 01:54:05
概要はタスクバーにあるアイコンを元のサイズに戻したいってわけか
Shell_NotifyIcon(...);
ShowWindow(ウィンドウハンドル, SW_SHOW);
でいいんでね?

702 名前:695 :2007/01/07(日) 01:54:41
別アプリならハンドルは取得してるはずだよな?な?

703 名前:デフォルトの名無しさん :2007/01/07(日) 01:56:46
>ShowWindowでもタスクトレイにアイコン化されたものを
>元のサイズに戻せないんだけどどうすればいい?

って事だろ。
ならば、WINDOWPOSあたりかな。



704 名前:659 :2007/01/07(日) 01:58:41
>>699
そです。

>>702
取得済みです
でも、そのハンドルが正しいかはわかりません
一応spyでメインフォームだけでなく、関連するフォームの
すべてに対してSW_RESTOREを送ったけれどもだめでした

705 名前:695 :2007/01/07(日) 02:01:03
タスクトレイを元に戻すのってまず最初にタスクトレイにある対象アイコンを削除してから
表示しないとダメなんじゃなかったっけ?NOTIFYICONDATA構造体で

NOTIFYICONDATA notify;

notify初期化

/* 削除 */
Shell_NotiffyIcon(NIM_DELETE, ¬ify);
ShowWindow(対象ハンドル, SW_SHOW);



でいけるんでね?

706 名前:デフォルトの名無しさん :2007/01/07(日) 02:02:57
SPY++等で、対象のアプリがNOTIFYICONDATAのuCallbackMessageとuIDに設定した値を調べて、
対象のアプリのウィンドウに、SendMessageでwParamにuID、
lParamに対象のアプリが元のサイズにもどるマウス操作のメッセージを突っ込めばいいでない?

707 名前:659 :2007/01/07(日) 02:08:49
>>705
それをやればいけるのはわかっているんですけど
他プロセスのnotifyを取得するには
そうなるとVirtualAllocExでメモリ確保してReadProcessMemoryで
自プロセスメモリにコピーしてとかやらないとだめですよね?

708 名前:659 :2007/01/07(日) 02:11:42
>>706
私もそれは考えました
ただ、どうもそのメッセージを送っている相手のハンドルが違っているためか
上手く取得できません
アイコンを作成するときに、どのハンドルにそのコールバックmsgを送るか指定しますよね?
つまり、そのハンドルを持っているウィンドウが隠されてたり、わからなかったりすると
うまく取得できないですよね?

709 名前:695 :2007/01/07(日) 02:11:43
OpenProcessとかでマップすればなんとかならないっけ?
少なくともReadProcessMemoryなんかめんどくさい事は少なくとも俺は絶対やらない(やりたくない)

710 名前:デフォルトの名無しさん :2007/01/07(日) 02:17:59
馬鹿が知識もなしにとんちんかんなことをやろうとしてるのがわからんあいのか

711 名前:659 :2007/01/07(日) 02:19:54
>>706
ちなみにuCallbackMessageとuIDのメッセージを送るのは
何を見ればわかりますか?
WM_APP
WM_ACTIVATEAPP
かなと思ったんですがどうも違うみたい

712 名前:659 :2007/01/07(日) 02:21:44
>>710
バカの定義は知識がないことですか?
バカがバカと気づいていない、知識があると思い込んでいるのが
バカだと私は思いますよW
バカじゃないなら教えてくださいな

713 名前:デフォルトの名無しさん :2007/01/07(日) 02:22:57
ShowWindowでもタスクトレイにアイコン化されたものを
元のサイズに戻せないんだけどどうすればいい?

714 名前:デフォルトの名無しさん :2007/01/07(日) 02:23:36
今夜はいつもに増して乳臭い流れだな

715 名前:695 :2007/01/07(日) 02:23:41
表示させる前提がタスクトレイのアイコン削除だから
頑張って削除できるようにしろとしかいいようがない。おじさん寝るよ

716 名前:695 :2007/01/07(日) 02:24:45
>>712
後できればcapslockを解除汁

717 名前:デフォルトの名無しさん :2007/01/07(日) 02:26:27
バカの定義
バカがバカと気づいていない、知識があると思い込んでいる

718 名前:659 :2007/01/07(日) 02:27:51
>>715
>>699

>>716
今マクロ記述してたから・・

719 名前:659 :2007/01/07(日) 02:29:49
>>715
ツールバー内の何番目のアイコンがどのプログラムかなんて
調べれたら、そりゃTB_DELETEで削除はできますけど
どのアイコンがどのプログラムかなんて調べようとしたら大変で・・・

とにかくお休みなさい。
ありがとうございました

720 名前:695 :2007/01/07(日) 02:31:30
>>718
残念だがおじさん他プロセスのNOTIFYICONDATAの取得
なんてやったことないからわからない。

そうかマクロか。



721 名前:デフォルトの名無しさん :2007/01/07(日) 02:50:45
689だが・・・書き忘れた事があって来たんだが・・よくわからん事になってるなぁ。

sleepかませないとうまくいかない事が多いよ。数値はマシンによって違ってくるケースもあるから
そこら辺はてきとーに。漏れは100程度にしてるが。

元の大きさに戻らないって事だろ?
って事はハンドルは取得出来てるって事だよな。

722 名前:デフォルトの名無しさん :2007/01/07(日) 02:51:56
>>711
uCallbackMessageはクリックしたときに送られるメッセージの中から推測するしかないだろうね。
そのwParamがuID。lParamにはそのアイコン上のマウスメッセージが入ってる。

WM_MOUSEMOVEって送られてきたっけ

723 名前:デフォルトの名無しさん :2007/01/07(日) 02:59:37
すまん途中で書きこんでしまった。

もしWM_MOUSEMOVE飛んでくるなら、タスクトレイ上でマウス動かしまくれば、
lParamにWM_MOUSEMOVEの値(0x0200)で大量にメッセージ来るからわかるはず…

メインウィンドウじゃないウィンドウに通知させてるかもしれないなら、
これでプロセスに属するウィンドウ調べてSPY++で補足とか。
http://www001.upp.so-net.ne.jp/yamashita/product/debug/ww.htm

SPY++って単純にウィンドウの列挙で、どのプロセスかは開かないとわかんなかったよね?
いま、手元にSPY++ないんで見当はずれのこと言ってたらスマソ。

724 名前:659 :2007/01/07(日) 03:28:28
>>721
フォーム自体は元のサイズに戻るし表示もされるけど
そのアプリが描画する処理をしてくれないんです
たとえば、そのフォームのステータスバーの時間が止まったままになってるとか
で、アイコンを直接クリックすれば、描画が始まるという具合です

sleep?どのsleepの意味ですか?




>>722
監視するのはそのアプリのハンドルでいいんですよね?
タスクトレイのツールバーや、その中のアイコンボタンってことじゃないですよね?
アプリに対してはWM_*MOUSE*関連のものは一切送られてないです
WM_APP AM_ACTIVATEAPPとか、でもこれはアクティブになるウィンドウと
非アクティブに送られるものだから違うだろうし
あとは描画させるためのWM_ERASEBKGNDやらサイズ変更を促すものやら
SHOWWINDOWも送られてくるけどuIDらしきものがないんです

>>723
> lParamにWM_MOUSEMOVEの値(0x0200)で大量にメッセージ来るからわかるはず…
送られてきてないです
> メインウィンドウじゃないウィンドウに通知させてるかもしれないなら、
> これでプロセスに属するウィンドウ調べてSPY++で補足とか。
> http://www001.upp.so-net.ne.jp/yamashita/product/debug/ww.htm
ありがとう、調べて見ます
> SPY++って単純にウィンドウの列挙で、どのプロセスかは開かないとわかんなかったよね?
私はSPY++じゃなくて、WispectorSpyを使ってます
これはvisibleでない子ウィンドウは表示されないです。

725 名前:デフォルトの名無しさん :2007/01/07(日) 03:57:28
本当にここは使えないインターネットですね

726 名前:デフォルトの名無しさん :2007/01/07(日) 04:01:40
>>724
オメーそれ対象のアプリがどのタイミングでどのウィンドウに
どのメッセージを受けたときにどうやってタスクトレイから
アイコン消してるかがわからなきゃ一生無理じゃねーか

SPY系のツール使って普通に操作してタスクトレイから復元したときの
メッセージの流れ追うしか解決方法はない
隠しウィンドウが独自メッセージ送ってるかもしれんぞ?

727 名前:デフォルトの名無しさん :2007/01/07(日) 04:15:45
>>724
そのアプリ所有のウィンドウね。フォームのウィンドウに通知させてるとは限らないよ。
メッセージはWM_*MOUSE*ではなくて、ユーザ定義のメッセージね。
WM_USER + xxxとかWM_APP + xxxとかなってると思う。
そのlParamにマウスメッセージが入ってる。
ツール上だと、WM_MOUSEMOVEみたいに表記されず単に数値だから注意。


WM_MOUSEMOVE飛んでくるようだから、
WinspectorSpyのProcessタブから、そのアプリのウィンドウ全部監視して、
タスクトレイのアイコン上でマウス動かせばわかると思うよ。
(クリックして元に戻すと、いろんなメッセージ飛ぶから戻さないこと)

728 名前:659 :2007/01/07(日) 04:43:44
>>727
どうも参考になります
processタブ開いたことなかったけど、こっちのが使い易いですね
調べて見ます
ありがとう

729 名前:659 :2007/01/07(日) 05:41:02
>>727
言われたとおりやってみたらばっちしでした^^
メッセージを送っているウィンドウは別にありまして
それを監視したらちゃんともとのサイズに戻りました
ほんとにありがとう

730 名前:デフォルトの名無しさん :2007/01/07(日) 08:09:49
さあここで一番最初のレスを振り返ってみよう
>>660-661

731 名前:デフォルトの名無しさん :2007/01/07(日) 09:08:42
親切に教えるからつけあがるんだ

732 名前:デフォルトの名無しさん :2007/01/07(日) 09:11:50
やさしいお兄さんお姉さんが答えてくれる かも

733 名前:デフォルトの名無しさん :2007/01/07(日) 09:27:50
かわいい妹かもしれん

734 名前:デフォルトの名無しさん :2007/01/07(日) 10:36:34
>>730
ナイスつっこみ!!!


735 名前:659 :2007/01/07(日) 11:02:33
終わったんで風俗逝ってきまつ

736 名前:デフォルトの名無しさん :2007/01/07(日) 11:02:42
本当に本当に本当にこのスレは馬鹿豚どもの集まりだなwww
恥ずかしすぎて見てられないwwwww

737 名前:デフォルトの名無しさん :2007/01/07(日) 11:05:20
>>736
キモイよ。

738 名前:デフォルトの名無しさん :2007/01/07(日) 11:34:10
教えてください
UNIXのメッセージに相当するWinAPIは名前付パイプであっているでしょうか?

739 名前:デフォルトの名無しさん :2007/01/07(日) 12:03:13
いいえ、名つきパイプはメッセージではありません。

740 名前:デフォルトの名無しさん :2007/01/07(日) 13:09:57
>>729
何に何をしたら思ったとおりにうごいたのん? そして、どこにつまづいたといった反省点は?
同じ道を歩むかもしれない人の為に、詳しく報告すべきじゃない?
質問したからにはどう解決したのかちゃんと書こうよ。これだけ引っ掻き回したんだしさ。

741 名前:デフォルトの名無しさん :2007/01/07(日) 13:25:31
まあ、待て
今ソープ中だ

742 名前:デフォルトの名無しさん :2007/01/07(日) 14:14:57
特定のアプリに対してだけ何かしたかったんじゃないのかね
これに汎用性のある手段は無いからな。
だったらそう書けばいいのに。

最近、単純な質問をして後から別プロセスだと情報小出しにするやつが多いが同じ人なのかね?

743 名前:デフォルトの名無しさん :2007/01/07(日) 14:20:14
同じ人種なのは確かだ

744 名前:デフォルトの名無しさん :2007/01/07(日) 15:42:24
スレ違いかもしれんがSFU使ってるやつっているか?

745 名前:デフォルトの名無しさん :2007/01/07(日) 16:17:17
「かも」じゃない。

746 名前:デフォルトの名無しさん :2007/01/07(日) 16:25:05
かと言ってUnix板とも違うし、
より妥当なところがあるなら案内してもらえるとありがたい。

で、SFU上では通常のWindows APIを呼ぶことってできるの?

747 名前:デフォルトの名無しさん :2007/01/07(日) 16:30:13
普通にコンソールアプリとかWSHのスクリプト作って呼ぶだけじゃだめなの?

748 名前:デフォルトの名無しさん :2007/01/07(日) 16:37:00
一般的にWM_PAINTメッセージでペイント描画を行うときに、何ms以内に処理を終えれば、もっさり感がないでしょうか??
もちろん、アプリケーションの種類によりますが、Notepadもどきのようなものを作っております。
よって、スクロールバーによるスクロールができればいいなと思っています。
まだ、実装していないのですが、スクロール時にWM_PAINTでの描画にもたつき、
スクロールがカクカクになるの嫌だなぁと思って、最大でも何ms以内に処理を終える目標を立てればいいのかなぁ考えています。



749 名前:デフォルトの名無しさん :2007/01/07(日) 16:55:07
そんなもん実装する前から悩まんでもいいよ。
完成した後で、もっさりが問題になってからチューニングすればいい話だし。
そもそも応答時間なんて環境依存なんだから、目標なんて設定しようがない。

750 名前:デフォルトの名無しさん :2007/01/07(日) 18:13:37
俺なら設計の段階で軽くテストしてモッサリ感がなさそうなのを確認してから作る。
設計ミス > 一応完成 > チューニング > 絶望ってのが一番凹む。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.