- 1 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 15:23:00 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ! 過去スレ、関連リンクは>>2-10くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage Win32API質問箱 Build85 pc12.2ch.net/test/read.cgi/tech/1262430441/
- 666 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:56:21 ]
- Windows APIってどの位覚えればプログラミングが
ラクになるんでしょうか?先輩に聞いたら 「10個程度覚えれば後は都度調べればいいけど0個じゃ辛い」 といってるんですが信じていいでしょうか?
- 667 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:07:55 ]
- 別に都度ググってもいいです
ただ、どのDLLがどの機能を管轄しているかくらいは知っておくといいかもしれません /* 6個でウィンドウ表示 RegisterClassEx CreateWindowEx GetMessage TranslateMessage DispatchMessage PostQuitMessage */
- 668 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:14:10 ]
- 10個じゃきついだろ・・・。
- 669 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:18:00 ]
- ググるためにもある程度体系がわかってれば良い
- 670 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 13:36:32 ]
- Windows API を覚えても
Windowsアプリを作ったり、Windowsの仕組みを覚えられるだけで あまりプログラミングは楽にならない でも画像処理とかは楽になるかもしれない
- 671 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:12:45 ]
- 構造体とメッセージもセットで
- 672 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:34:06 ]
- おばけのQちゃんの絵描き歌をシミュレートして
繰り返しアニメーション表示するアプリをAPIだけで組みたい んだけどどう組めばいいですか?
- 673 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:36:15 ]
- まずウィンドウクラスを登録します
- 674 名前:672 mailto:sage [2010/03/14(日) 14:38:25 ]
- マウスで画面のサイズを変えた際に、縦横の比率を
変えないようにし、書かれているアニメもそれに 応じて(途中迄でも)大きさを変えたいです。
- 675 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:40:13 ]
- ウィンドウを表示して、その上に描画していけばいい。
で、ウィンドウサイズが変更されようとしているときに、縦横比率を変えないように変更して、 ウィンドウサイズに合わせて描画サイズを変えればいい。
- 676 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:43:20 ]
- 演奏してる曲と同期してアニメーションさせるって話なら少し面倒。
- 677 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:46:58 ]
- タイミング固定とかならそれほどでもないだろうけどね。
- 678 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 14:47:55 ]
- 歌詞ファイルみたいなフォーマットを決めてやるとか
- 679 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:10:24 ]
- マルチコア環境でプロセス毎のCPU使用率を正しく取得するにはどうすればよいのでしょう?
PdhGetFormattedCounterValueで取得してみたところ、取得できるCPU使用率は タスクマネージャで確認できるCPU使用率の2倍になっています(2コアだから?)。 ということは取得できるCPU使用率の最大値は200となるはずと思っていたのですが 何故か100までしか取得できませんでした。(100以上は100として取得できる模様) ちなみにWindows付属のパフォーマンスモニターで確認してみると、こちらも タスクマネージャの2倍の値が表示されていますが、100以上の値もきっちり正しく表示されます。 取得できる上限を200にする方法か、タスクマネージャで表示されている値を 簡単に取得できる方法はありませんか?
- 680 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:16:50 ]
- ちょっと取得してる部分のコード晒してみろよ
- 681 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:30:47 ]
- このような感じです。
// オープン HQUERY hQuery; PdhOpenQuery(NULL,0,&hQuery); // カウンタ追加 HCOUNTER hCounter; std::string str = "\\Process(GOM)\\% Processor Time"; PdhAddCounter(hQuery, str.c_str(), 0, &hCounter ); // 3秒間の負荷計測 PdhCollectQueryData(hQuery); Sleep(3000); PdhCollectQueryData(hQuery); // 計測結果取得 PDH_FMT_COUNTERVALUE fntValue; PdhGetFormattedCounterValue(hCounter, PDH_FMT_LONG, NULL, &fntValue); // クローズ PdhCloseQuery( m_hQuery ); std::cout << fntValue.longValue << std::endl;
- 682 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 20:42:15 ]
- >>666
俺なんて引数も戻り値もちゃんと覚えているのは10個もない。 ただ、どんなAPIが「存在するか」はだいたい把握している。
- 683 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:16:25 ]
- >>681
PdhGetFormattedCounterValueのヘルプを見てみたが、 dwFormatにPDH_FMT_NOCAP100フラグが無いと、 100を超える値は全て100で返る仕様っぽいぞ。 家はシングルコアだから試しようが無いけどなorz
- 684 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 21:29:01 ]
- >>683
おっしゃるとおりでした! PDH_FMT_NOCAP100フラグを立てると100以上の値も取得できるようになりました。 ありがとうございます!
- 685 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:00:40 ]
- >>666
Win32APIの目次みたいな一覧が色んな所にあるから 一通り流し読む 引数とかは一切無視 関数名と1行説明だけ読む そんでおわり その先輩はちょっと若いな あんま意味の無い助言
- 686 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:52:55 ]
- 昔Win32本といえばpetzoldだったけどあの本も今や.net本になってしもうたな
- 687 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:53:54 ]
- グローバルフック使ってプログラム側からキーボード操作したいんだけど、どうすればいいのか全然分からん
検索ワードだけでいいから誰か教えておくれ
- 688 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:57:59 ]
- msdn.microsoft.com/ja-jp/library/cc429971.aspx
大して難しくないような まあどうすればいいか全然分からんって言う奴は はじめからやる気がないんですけどね
- 689 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:14:17 ]
- ウィンドウメッセージを使ってるのかGetAsyncKeyState()系を使うのかで
挙動が違ってくるし、 突き詰めたらそんなに簡単な話でもないと思うけど。
- 690 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:24:05 ]
- ありがと
でもググっても監視する方しか分かんないや
- 691 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:22:08 ]
- 送るだけならフックの必要は無いから見つからないのも当然
- 692 名前:デフォルトの名無しさん [2010/03/15(月) 20:19:51 ]
- シリアル通信について教えてください。
「WaitCommEvent」はタイムアウトで戻す事は出来ないんでしょうか? タイムアウトはRead,Writeのみなんでしょうか?
- 693 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 21:59:48 ]
- 非同期通信に対応してるのだから、勝手にタイムアウトでも何でもすればいい。
- 694 名前:692 [2010/03/15(月) 22:19:59 ]
- そのタイムアウトさせるのを、監視するスレッドを自前で作る必要があるのか
SetCommTimeoutsみたいな設定で、WaitCommEventからイベント無しで 戻せるのか知りたいんです。
- 695 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:52:42 ]
- >>692
昔やった方法 ・CreateFile()でPENDINGで開く ・WaitCommEvent()でイベントオブジェクトとともに渡す→すぐ返る→戻り値0、GetLastError()がPENDINGなら正常 ・WaitForMultipleObjects()に指定し、でタイムアウトつきで待つ スレッド化してるからWait〜で他のイベントオブジェクトもついでに待ってたな。 ググればどこかにサンプルがあるはず。自力で書けなかった記憶があるから。 特にPENDINGを使用する箇所
- 696 名前:692 mailto:sage [2010/03/15(月) 23:23:06 ]
- >>695
PENDINGとはオーバーラップド構造体云々ってやつですか? 良く分からないので明日ヘルプ見ながら実機でちまちま試してみます、 有難うございました
|

|