1 名前:デフォルトの名無しさん [2007/06/12(火) 19:59:25 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
552 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 22:49:54 ] Analysisってそんなにすごいものなの? 70万もだしたというひとがいたが
553 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:00:05 ] >>552 Analysisだけに70万ではないし、 プロ用の開発ツールが高価なのは普通のことだから。 RationalのPurifyとか、 CompuwareのDevPartnerStudioとか、 かなりの金額するでしょ。
554 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:20:11 ] たとえ趣味でもつぎ込む人はつぎ込むしね
555 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:43:15 ] 現在開いてるページのURLとタイトルを取得したいのですが、 そのような関数がございましたらご教授下さい。 たとえばここでしたら、 タイトル→Win32API質問箱 Build54 URL→pc11.2ch.net/test/read.cgi/tech/1181645965/ と、獲得したいです。
556 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:46:56 ] 脱力
557 名前:デフォルトの名無しさん mailto:sage [2007/07/02(月) 23:57:42 ] >>555 FindWindowEx使って力業で探せ
558 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:06:31 ] 何でもAPI一つで出来ると思うな
559 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:11:19 ] 普通IWebBrowser2使うだろ
560 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:13:48 ] >>559 IEとは言ってない。 意地悪な解釈ではあるがな。
561 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:18:57 ] つーか >現在開いてるページのURLとタイトルを取得したいのですが、 >そのような関数がございましたらご教授下さい。 この質問通りに答えるなら「無い」が正解
562 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:33:13 ] >>560 「現在開いてる」というのを詳しく。 何が、誰が、 そういう情報がゴッソリ欠落しているぞ。
563 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 00:37:27 ] >>560 どういうわけか、 インタフェースとしてではなく、クラスを指してIWebBrowser2という人達が多いのです。 IEそのものや、既存のIEコンポーネントを使ったプログラムに対してではなく、 タイトルを取得するためだけに、新たにIEコンポーネントを使い、 URLのドキュメントを取ってこさせ、タイトルを取得するという手もなくはないです。
564 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 06:50:32 ] ダイアログベースのアプリで、キーリピートのときに鳴り続ける警告音を消したいのですが どうしたらよいのでしょうか。
565 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 08:47:12 ] もっと詳しく書かないと。
566 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 10:00:17 ] WM_KEYDOWNのLPARAM見てリピートが1より大きかったらメッセージ潰せばいいんじゃね
567 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 10:58:12 ] そのダイアログのせいで鳴ってるの? キューいっぱいとか。キーメッセージ握りつぶしてる?
568 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 11:04:29 ] メッセージポンプを自分で止めている可能性もあるな。
569 名前:デフォルトの名無しさん mailto:sage [2007/07/03(火) 12:13:46 ] >>561 IE6まではDDE使って取得できたんだがな、IE7以降これが動作しなくなった しかしFirefoxやOpera等使われていたら動かないわけで。 2chスレに限って言えば専ブラ使われていたらだめなわけで。
570 名前:562 mailto:sage [2007/07/03(火) 12:33:58 ] アンカーミスしてました。 >>562 は>>555 あてです。
571 名前:デフォルトの名無しさん [2007/07/03(火) 13:16:38 ] そんくれーわかるっつの
572 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 08:16:50 ] >>550 ちょwww 俺のPro版、なんかアナライズしてるww
573 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:11:47 ] IEでグーグル開いたときに検索窓でますよね あそこに文字列をいれるのにいい方法ってありますか? キーダウンで擬似的にキーボードおされた状態ってのはうまくいったのですが たまに失敗したり、一文字ごとにウェイトいれないとだめなのでちょっと・・・ セットウインドウテキストが良さげなので 全てのIEの子ウインドウハンドルに送ってみたのですがまったく反応ありませんでした
574 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:23:51 ] フォームに入力するのVBのサンプルならいっぱいある
575 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:24:58 ] Google限定なら別のアプローチのがよさげ
576 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:27:29 ] どうでもいいけど「キーダウン」とか「セットなんとか」とか 強烈に読みづらいから素直にアルファベット表記してくれ。 あとIEのテキストフォームはデザインがWindowsと同じってだけで IE独自の実装してるからテキストボックスに見えて テキストボックスじゃない。 API通していじるのは諦めた方がよさげ。
577 名前:573 mailto:sage [2007/07/04(水) 09:32:47 ] あ、ウインドウのタイトルが変わりましたw これ面白いですね そうなんですかどうりで反応しないわけだ VB覚えようかな
578 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:41:48 ] 1.クリップボードに好きな単語を入れる 2.C-V を送る でいいじゃん? 俺だったらそんな面倒くさいことせずに、 検索語を別の窓から入力させて、結果をIEで開くように作るが。
579 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:55:31 ] あ、クリップボードも試してみたのですが 効かなかったから・・・ハッ!Σ(゚□゚;)!! その貼り付けたには気づかなかったorz 別窓のは技術が高くないと無理かと
580 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 09:58:50 ] IE上のコントロールはドロップダウンリスト以外は全部ウィンドウハンドル持たないIEの独自描画。
581 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:04:28 ] いや、www.google.com/search?&q=hoge とかを そのままシェルに渡してやればいいだけだと思うんだが…
582 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:06:42 ] 別窓作って文字入力 入力文字をURLエンコードして連結 シェルに渡す
583 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:08:05 ] _人人人人人人人人人人人人人人_ > な なんだってー!! <  ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ 試行錯誤したのが馬鹿みたいだ
584 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:16:16 ] そうだね。
585 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:18:45 ] 試行錯誤すること自体は無駄じゃないよ
586 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:26:35 ] 質問の仕方がわるいんだからしょうがない。
587 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:39:00 ] どうしても、IE上のコントロールを制御したいと言うなら、 ↓スレあたりが参考になるやもしれん IEコンポーネントを使い倒すスレ Ver.2 pc11.2ch.net/test/read.cgi/tech/1145189322/
588 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:40:49 ] >>576 読みづらい以前に、 特別なキーワードを、 言い換え可能な普通の言葉で書いたら、 わけわかんないよ。 WM_KEYDOWNではなく、他のものかもしれないと気をつけて読まないといけないから。
589 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:42:35 ] >>577 VBでやると簡単だが、VBでしかできないわけじゃない。 Win32APIには、Cスタイルのものと、COMのものがある。 VBはCOMを扱うのが楽。VCだと慣れるまで面倒。 VB6ならともかく、VB.NETでやるくらいならC#でやりなされ。
590 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 10:57:36 ] いやあ日本人なのでカタカナの方が読みやすいかなと思ってw しかし天才がいるもんですね cgiとかってのに直接送ってるみたいなもんでしょ?驚きました
591 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 11:00:28 ] >>590 日本語版のMSDN に 「WM_KEYDOWN」 が 「キーダウン」 と書かれたらすげー迷惑 発音しているものが動作を指しているのか、特定のキーワードなのかを即座に区別できねーじゃん
592 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 12:58:05 ] プログラムの定数的なのは、別に英語でもそのまま定数で書くよw
593 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:11:46 ] ダブリューエム_キーダウンと書くかWM_KEYDOWNとするかは 翻訳者の自由だぁ〜〜!! 予約語いずフリーダム♪ ハイ一緒に!
594 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 13:16:14 ] 消えろ
595 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 14:20:11 ] キーダウンと書いたのを見て、実際にキーを押した事だと思ったよ・・・
596 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 16:50:55 ] こんにちは、ちょっとした疑問の解決作を教えてください。 エディタをサブクラッシングしようと思い、以下のコードを書きました。 WNDPROC OldEditProc; LRESULT CALLBACK EditSubProc(HWND,UINT,WPARAM,LPARAM); ... OldEditProc=(WNDPROC)SetWindowLong(hEdit,GWL_WNDPROC,(LONG)EditSubProc); しかし、これだとデフォルトの警告レベルで、warningが2つもでるんですよね・・・。 ( 『LRESULTからLONGに切り詰めます』 というのと、『LONGからWNDPROCへ変換します』 というもの ) これ、どうにかしてwarningを取る方法は無いでしょうか? ご教授御願いいたします。 環境はWinXPPro-sp2 ,VC++.NET です。
597 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:04:20 ] 何故warningになるのか考え、それの対処を調べるんだ ヒント:64bit
598 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 18:28:42 ] >>596 #include <atlwin.h>した上で、SetWindowLongではなく、SetWindowLongPtrを使え。 その際、そのLONG型のキャストをLONG_PTR型へのキャストにする必要がある。。 msdn.microsoft.com/library/ja/jpwinui/html/_Win32_SetWindowLongPtr.asp <atlwin.h>をインクルードする理由は、<windows.h>をインクルードしただけだと、 32ビット版でのSetWindowLongPtrがあまりにもお粗末なので、 結局警告が表示されることに変わりがないから。
599 名前:596 mailto:sage [2007/07/05(木) 00:32:56 ] おぉ〜凄いっ! 教えていただいた通りにやってみると、warningが出ないです〜っ!! 大変参考になりました。 本当にありがとうございました。 m(。−_−。)m
600 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 11:26:11 ] int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR, int); これを int APIENTRY WinMain(); こういう風にしたんですが、できませんか?
601 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:37:22 ] できません
602 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:40:38 ] できます
603 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:42:48 ] できますん
604 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:43:56 ] つかわないんならなくてもいいだろ
605 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 12:44:06 ] できます
606 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:01:44 ] APIENTRYだから、できませんね。 __cdeclならできるんだけど。
607 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:33:23 ] できます
608 名前:デフォルトの名無しさん [2007/07/05(木) 13:34:51 ] あぴえんとりー
609 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:44:52 ] キチガイが住み付いてるな。
610 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:53:45 ] 自己紹介乙
611 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:53:54 ] 自分で分かってるなら大丈夫だから安心していいよ
612 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 13:54:48 ] ワレワレハ、ウチュウジンダ
613 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 14:08:55 ] そういえば言語言ってなかった・・・ C言語なんですがやっぱ無理かったです 本当にありがとうございました
614 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:16:05 ] プログマーが日本語おかしいのはヤバイ 数学より国語的な能力が必要だとおもう
615 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:17:37 ] プログマー
616 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:19:02 ] 釣られるプロだクマー
617 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:20:19 ] プラグマー
618 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:21:26 ] >>617 差し替えで簡単に置きかえられるプログラマー?
619 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:23:10 ] #pragmar
620 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:25:44 ] プギャー
621 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:37:07 ] まるで動物園だな、ここは
622 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 16:34:57 ] 人間だって動物さ
623 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:31:04 ] マ板は釣り易いことで有名くま
624 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:33:42 ] プラモデルみたいなプラグラマ
625 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 19:35:36 ] >>624 語源は両方ともギリシア語だけど、出所が違うの。 スレ違いだからほどほどに。
626 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:38:06 ] プログマー笑ったwwwwwwwwwwwwwww
627 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:45:13 ] 面白くない。いい加減にしとけ
628 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:08:47 ] ウィンドウのタイトルバー上のホイール操作で ウィンドウを半透明にできるユーティリティを作りたいんだが システムフックしてDLL上でコードを長々と書いて一応できることはわかった。 だけどexe側で処理させたいのだが、なにかよい方法はないだろうか? exeに、呼び出されたDllのインスタンスハンドルを送ってそこで明示的な関数ロードとかやったけどできなかったよ
629 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:00:07 ] 今市意味が分からないんだけど ホイール操作を捕まえて半透明化するサブクラス化用のプロシージャを書いて フックを入れてからサブクラス化すればいいと思う
630 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:36:59 ] >>628 そういう機能のWindowTPというソフトがあるが、自分で作りたいだけ?
631 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:12:13 ] >>629 おk、サブクラス化試してみるわ ありがと >>630 今作ってる奴の機能の一部として搭載予定。 まぁ自己満足だけどね ありがとー
632 名前:628 mailto:sage [2007/07/06(金) 03:28:14 ] ('A`)・・・・? techtips.belution.com/ja/vc/0026/ >指定されたウィンドウの属性を変更する SetWindowLong() は、 >指定するウィンドウが呼び出し側のスレッドと同じプロセスに属していない場合に失敗します。 これを信じて四苦八苦してたのに 自身のexe側から他のプロセスのウィンドウを半透明化できちゃったぞ・・・? う〜む・・・
633 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 04:25:29 ] そんな古い上にどこの馬の骨が書いたか分からんようなサイト見ずに、MSDN読めよ。 msdn2.microsoft.com/en-us/library/ms633591.aspx > Windows 95/98/Me: The SetWindowLong function may fail if the window specified by the hWnd parameter does not belong to the same process as the calling thread.
634 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:45:15 ] Dllから呼び出したダイアログにXPスタイルが効かないんだけどなんでだかわかる? manifestやらcomctl32やらをexeの設定方法でやってんのがダメなのか…。 わかんなくて頭爆発しそうなのでそろそろ米国行きの飛行機に乗りに行きます。
635 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:51:55 ] どうぞ。
636 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:52:50 ] そのDLLを呼んでるEXEの設定はどうなのよ
637 名前:634 mailto:sage [2007/07/06(金) 15:08:31 ] >>636 最終的に写真屋のフィルタ(8bf)にするDLLなんでナカミはよぅわからんのです。 ただ、さっき「猫でも〜」の外部DLLからダイアログ呼ぶプログラムでも 試してみたけどコレもダメだったので 写真屋のAPIの問題っつーより私の問題らしいです。
638 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 15:52:17 ] >>634 ISOLATION_AWARE_ENABLEDについて調べるんだ
639 名前:634 mailto:sage [2007/07/06(金) 21:29:52 ] うおおおおおおおおおお! プリプロセッサにISOLATION_AWARE_ENABLED書いただけで うまくいきましたッ! >>638 ありがとーーーーーーー! 愛してるッ!
640 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 22:21:54 ] きんもー☆
641 名前:デフォルトの名無しさん mailto:age [2007/07/07(土) 08:08:18 ] 任意のプロセスがCreateFileしたファイルのパス、それを取得する方法て何かないですか? 使用OSはVistaです フィルタドライバ書かなきゃいけないんでしょうか?…
642 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 08:26:24 ] CreateFileのAPIフッ(ry
643 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 08:52:36 ] DLL側から、呼ばれているプロセスのIDかウインドウハンドルを取得するにはどうすればいいですか? FindWindowでウインドウタイトル指定して取得していたんですが、 多重起動されたらだめじゃんってことに気が付いて・・・・ おしえてくださいm(_ _)m
644 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 09:05:30 ] 普通に自分のプロセスIDを取得しろよ。 DLLをなんだと思っているんだ?
645 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 09:43:56 ] >>642 VistaでAPIフックしたら実行時に警告出ませんか?
646 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:31:26 ] >>644 普通にプロセスIDを取得する方法を教えてくださいm(_ _)m
647 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:33:33 ] GetProcessID()
648 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:35:14 ] www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=3D1FBAED-D122-45CF-9D46-1CAE384097AC
649 名前:デフォルトの名無しさん [2007/07/07(土) 10:44:49 ] >>646 GetCurrentProcessId() 名前からしてそのものズバリな訳だが このくらいググれ
650 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 10:54:50 ] >>645 > VistaでAPIフックしたら実行時に警告出ませんか? そりゃあドライバでも一緒だと思うが?
651 名前:デフォルトの名無しさん [2007/07/07(土) 10:56:57 ] 人を利用する事しか頭に無い奴に回答をくれてやるな。
652 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:05:24 ] 32bitVistaだとドライバの場合ロゴとらないとWindowsの動作自体に制限かかるんだっけ? 64bitだとフックもドライバも現実的じゃないよな