■過去ログ置き場に戻る■
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#スレにいたものです^^;
w
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.