Win32API質問箱 Build33
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/07/01(金) 02:45:20やさしいお兄さんたちが答えてくれるかも。
∧_∧
( ´∀`) < 0x20
過去スレ、関連リンクは>>2-5くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0232デフォルトの名無しさん
2005/07/08(金) 21:17:09本気で言ってるなら、哀れだな
0233デフォルトの名無しさん
2005/07/08(金) 21:17:580234デフォルトの名無しさん
2005/07/08(金) 21:19:53フックでもメッセージはfuckしないだろう。
0235デフォルトの名無しさん
2005/07/08(金) 21:23:30ttp://dictionary.goo.ne.jp/search.php?MT=fuck&kind=ej
0236デフォルトの名無しさん
2005/07/08(金) 21:30:06ttp://66.102.7.104/search?q=cache:XgNpPqJvT_IJ:www.globalgasm.com/inside.htm+global+fuck&hl=ja
0237226
2005/07/08(金) 21:31:39つか、あげ足鳥ばっかで、質問に答えられるヤシはいねーのかよ orz
0238226
2005/07/08(金) 21:33:080239デフォルトの名無しさん
2005/07/08(金) 21:34:440240デフォルトの名無しさん
2005/07/08(金) 21:45:14要はそういうことだ
0241デフォルトの名無しさん
2005/07/08(金) 21:47:44どう間違ったらfuckになるんだ?
0242デフォルトの名無しさん
2005/07/08(金) 22:07:280243デフォルトの名無しさん
2005/07/08(金) 22:08:10お前にフィッシングの被害者を釣らせないため
0244213
2005/07/08(金) 22:23:24ありがとうございます。
とりあえず、WM_ACTIVATEをWM_ACTIVATEAPPに変えてみたんですが
変化ありませんでした。
DirectXを使ってるせいか、メニューを開いてる間は描画されないみたいです。
今度はWM_INITMENUメッセージが来た時にWM_CANCELを送ってメニューを
消してみましたが、一瞬メニューが表示されてしまいます。
ぐぐって検索してみましたが、システムメニューを削除すると右上の×ボタンも
使えなくなるそうですし・・・
なんとかならないでしょうか・・・。
0245デフォルトの名無しさん
2005/07/08(金) 22:31:390246デフォルトの名無しさん
2005/07/08(金) 22:45:470247デフォルトの名無しさん
2005/07/09(土) 00:05:22よおわからんけどSPYで来るメッセージ調べた?
NCのつくメセジで何かすりゃなんとかなるんちゃう?
0249デフォルトの名無しさん
2005/07/09(土) 00:35:25Win32APIのReadFile()を使って、標準関数fgets()に相当する関数を作るには
どうすればいいのでしょうか?
0250デフォルトの名無しさん
2005/07/09(土) 00:37:45「fgets()に相当する」というだけでは、具体的にどの程度の仕様を求めている
のかわからないが、
VC++にはCランタイムのソースがついているので、それを読むのが良かろう。
0251デフォルトの名無しさん
2005/07/09(土) 00:40:33fgets で十分ではないか?
0252デフォルトの名無しさん
2005/07/09(土) 00:48:37あるいはマルチスレッド環境で意図的に排他を行わないことにより高速性を
実現した
バッファリングI/Oの層を作りたいのかもしれない
前者はたとえばBSD4.4のfunopen()のようなものがあればFILE*の世界で
実現可能だが、残念ながらMicrosoftのstdioにはそのようなものはない
0253デフォルトの名無しさん
2005/07/09(土) 01:11:16ReadFileを1バイトずつn-1回読み込んで、sにセットしていけば。
ファイル終端や改行があったら抜ける。
0254デフォルトの名無しさん
2005/07/09(土) 01:15:38TOOLKITなので、多分SPYはないのです・・・。
0255デフォルトの名無しさん
2005/07/09(土) 01:20:550256デフォルトの名無しさん
2005/07/09(土) 01:21:21ランタイムライブラリを使いたくネーンダヨ
0257デフォルトの名無しさん
2005/07/09(土) 01:26:41だからVC++のソース見れと。
PlatformSDKにも確かlibcのソースが不完全ながらついてるから
タダで見れるはずだぞ。
要するにFILE構造体相当の、バッファを保持する構造と、それを使って
入出力する関数を自前で作るだけだ。
0258デフォルトの名無しさん
2005/07/09(土) 01:29:480259デフォルトの名無しさん
2005/07/09(土) 01:30:57そーか?
俺はDLL組むんなら、出来るならランタイムへの依存は避けるがな
0260デフォルトの名無しさん
2005/07/09(土) 01:37:240262デフォルトの名無しさん
2005/07/09(土) 01:59:150263デフォルトの名無しさん
2005/07/09(土) 02:00:56LIBCに依存しとるDLLを使う場合、ユーザプログラムもLIBCのバージョンや
変種をあわせないといかんだろ?
それがウザいから、LIBC非依存にできるんならそうしたいという
ただそれだけの話だよ
0264デフォルトの名無しさん
2005/07/09(土) 02:45:530265デフォルトの名無しさん
2005/07/09(土) 02:51:11DLLとユーザプログラムでCRTのオブジェクトを受け渡しする場合、
同じCRTのDLLを使う以外の方法は無いよ。スタティックリンクは論外。
素人は出てこないでね。
0266デフォルトの名無しさん
2005/07/09(土) 04:16:510267デフォルトの名無しさん
2005/07/09(土) 04:25:10Functions by Releaseの項目にXPSP2が載ってないんですが
SP1->SP2 で追加されたAPIってないのでしょうか?
0268デフォルトの名無しさん
2005/07/09(土) 04:47:09はあ?
あんた、FILE*をいちいちラップしないと気がすまない人?
そんなら、そもそもCRTなんか、つかわなきゃいいんじゃないの?(w
ま、何にせよUNIX系から出てきたオープンソースのライブラリには、そういうのは
よくあるよ。
FILE*やerrno、ロケールのようなものが絡むようなやつね。
無論、DLLとクライアントプログラムで、片方でmalloc()してもう
片方でfree()、なんてのもダメ。
0269デフォルトの名無しさん
2005/07/09(土) 05:17:000270デフォルトの名無しさん
2005/07/09(土) 07:34:56「CRTは極力使わない」という話から「UNIX系から出てきた」とか、まったく逆のことを言っているのに自分で気づかないバカか?
0271デフォルトの名無しさん
2005/07/09(土) 08:42:200272デフォルトの名無しさん
2005/07/09(土) 09:13:38自作アプリケーションのフォームにフォーカスが当たらないようにする方法はありますか?
感覚的には、見えていても触れないようになればよいのですが。
0273デフォルトの名無しさん
2005/07/09(土) 09:16:570274272
2005/07/09(土) 10:21:56「操作を透過させる」いう言い方をすれば早かったようです。
>273
すいません。説明不足でした。
0275デフォルトの名無しさん
2005/07/09(土) 10:35:33027650
2005/07/09(土) 10:45:30ありがとうございました。
0277デフォルトの名無しさん
2005/07/09(土) 10:46:200278デフォルトの名無しさん
2005/07/09(土) 11:07:400279272
2005/07/09(土) 11:09:44>マウス操作を透過させることも可能。
>これにより常にデスクトップに表示していても、
>本ソフトの下に表示されているほかのソフトを自由に操作することができる。
例えばこういうソフトでやられているようなことをしたいわけです。
「WM_NCHITTESTでHTTRANSPARENTを返す」という方法を見つけたんですが
これでも操作を受け付けなくなるだけでした。
0280デフォルトの名無しさん
2005/07/09(土) 11:22:24そのソフトをインストールして、SPYで観察したら?
もしかしたら、ウィンドウじゃないかもしれないし。
0281デフォルトの名無しさん
2005/07/09(土) 11:23:45猫でもわかるプログラミング、SDK65章についてです。
case WM_NOTIFY:
switch (((LPNMHDR)lp)->code) {
case TTN_NEEDTEXT:
lptip = (LPTOOLTIPTEXT)lp;
lptip->hinst = hInst;
switch (lptip->hdr.idFrom) {
case IDM_PARENT:
lptip->lpszText
= MAKEINTRESOURCE(IDS_TIPS_PARENT);
break;
〜以下省略〜
WM_NOTIFYを受け取っているのでここでlp(LPARAM)の型はLPNMHDRですよね?
LPTOOLTIPTEXTのlptipにlpを入れるときに、
lptip = (LPTOOLTIPTEXT)lp;というように、
TOOLTIPTEXT構造体のポインタにキャストして代入することが可能らしいのですが、
何故、どのように代入されるのかがよくわかりません。
また、switch (lptip->hdr.idFrom)というようになっていますが、
ただ単にコントロールを調べるだけなので、WPARAMで指定した方が楽ではないかと思うのですが、
それでは何か問題が発生するのでしょうか?
よろしくお願いします。
0282デフォルトの名無しさん
2005/07/09(土) 11:53:14TOOLTIPTEXTの最初のメンバはNMHDRだからlParamはHMHDR *でも受け取れるようになっている。
けどcodeがTTN_NEEDTEXTのときにはTOOLTIPTEXT *を投げているのでTOOLTIPTEXT *として扱える。
ようするにC++の継承もどきみたいなことをしている。
0283デフォルトの名無しさん
2005/07/09(土) 11:53:58http://www.mm2d.net/c/c-14.shtml
http://yokohama.cool.ne.jp/chokuto/urawaza/message/WM_NOTIFY.html
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/common/messages/wm_notify.asp
ここを読めばわかるんだが、wParamはユニークじゃないので、idFormとcodeを使えと書いてある。
0284281
2005/07/09(土) 12:02:59なるほど・・・。
理解できました。お二方ともありがとうございます。
C言語はポインタや構造体を含め、ほぼ理解したつまりなんですが、
WinApiに入ってくると、同じことをやってるにしてもなんとなくややこしてくて・・・。
これからも質問する機会があるかもしれませんので、そのときはよろしくお願いいたします。
0285デフォルトの名無しさん
2005/07/09(土) 12:51:54CreateProcessでCREATE_SUSPENDEDフラグを指定すればいいんじゃない?
0286デフォルトの名無しさん
2005/07/09(土) 12:53:57IPv4とIPv6の判定ができるAPIってあるのでしょうか?
Linuxでいうinet_ptonだと思うのですが
0287デフォルトの名無しさん
2005/07/09(土) 12:54:08WS_EX_TRANSPARENTってのはどう?
0288226
2005/07/09(土) 13:09:03本当にスゴイ人はこんな所で初心者の面倒見て優越感に浸ってるヒマないもんな・・・
唯一マトモっぽい回答は240だけ・・・ま、自分でタスクリスト作るかな。マンドクセ
0289デフォルトの名無しさん
2005/07/09(土) 13:21:460290デフォルトの名無しさん
2005/07/09(土) 13:22:11まともな質問をしないで、まともな回答を要求するのは
あまりにも自分勝手だと思うぞ。
0291デフォルトの名無しさん
2005/07/09(土) 13:25:290292デフォルトの名無しさん
2005/07/09(土) 13:41:53ttp://wiki.livedoor.jp/program1/
もし、よろしければご活用ください。
0293デフォルトの名無しさん
2005/07/09(土) 14:38:53パスの最大長MAX_PATHはNULL分も含んでいるのですか?
サンプルにより
TCHAR szPath[MAX_PATH];
TCHAR szPath[MAX_PATH+1];
というのがあるんですけど。
0294デフォルトの名無しさん
2005/07/09(土) 14:46:190295デフォルトの名無しさん
2005/07/09(土) 14:48:35含んでいる。
当のMSもTCHAR szPath[MAX_PATH];を使っている。
俺自身としてもどこかでパスの最大は259文字と聞いた記憶がある。(MAX_PATHは260)
0296デフォルトの名無しさん
2005/07/09(土) 14:54:210297デフォルトの名無しさん
2005/07/09(土) 15:03:19TCHAR szTempName[MAX_PATH + 1];
て書いてあるし・・・・
http://msdn.microsoft.com/library/en-us/http/http/http_server_sample_application.asp?frame=true
0298デフォルトの名無しさん
2005/07/09(土) 15:12:15WM_WINDOWPOSCHANGEDをフックするんじゃなくて
WH_CBTを使ってみては?
0299デフォルトの名無しさん
2005/07/09(土) 15:20:59乙。ぜひ活用しましょう。
0300デフォルトの名無しさん
2005/07/09(土) 15:45:400301デフォルトの名無しさん
2005/07/09(土) 15:54:420303デフォルトの名無しさん
2005/07/09(土) 16:05:06そもそもMAX_PATHでは足りないという話も。
0304デフォルトの名無しさん
2005/07/09(土) 16:24:02それは「階層掘りすぎ」とか「だらだら日本語名付け過ぎ」とかの、また別の話だ
0305デフォルトの名無しさん
2005/07/09(土) 16:26:29Win側に持っていったら途中からアクセスできなかったのはちと萎えた。
0306デフォルトの名無しさん
2005/07/09(土) 16:28:42アダプタ名を取得するにはどうすればいいんでしょうか?教えてください。
iphlpapi.hには無かったです。。
0307デフォルトの名無しさん
2005/07/09(土) 16:30:36> 掘りすぎ
ウホッ?
0308デフォルトの名無しさん
2005/07/09(土) 16:34:040310デフォルトの名無しさん
2005/07/09(土) 18:50:27自分のウィンドウをクリックしてもアクティブにしないようにするには、どうすればいいのでしょうか?
ご教授おねがいします。
0311デフォルトの名無しさん
2005/07/09(土) 19:00:510312310
2005/07/09(土) 19:56:26WM_MOUSEACTIVATE で MA_NOACTIVE を返せばいいみたいです
スレ汚しすまそ
0313デフォルトの名無しさん
2005/07/09(土) 20:29:58全然違うシステムから直接触るなんざバカのすることじゃん
0314デフォルトの名無しさん
2005/07/09(土) 20:36:16理解できなかったのね。ゴメンネw
0315デフォルトの名無しさん
2005/07/09(土) 20:39:13FATファイルシステムの出来栄えの話なんだが、頭大丈夫か?
0316デフォルトの名無しさん
2005/07/09(土) 20:44:320317デフォルトの名無しさん
2005/07/09(土) 20:48:40やってみたの?それとも理屈ちゃん?
0318デフォルトの名無しさん
2005/07/09(土) 20:49:390319デフォルトの名無しさん
2005/07/09(土) 21:04:09Windowsで使う限り問題無い
0320310
2005/07/09(土) 22:20:20WM_MOUSEACTIVATE で MA_NOACTIVE を返すとそのウィンドウがアクティブにならないのはいいんですが、
前アクティブだったウィンドウが非アクティブになってしまいます。
これをアクティブなウィンドウを変えないようにするにはどうすればいいのでしょうか?
0321デフォルトの名無しさん
2005/07/09(土) 22:22:51どこまで深い階層を作ったのか知らんが、
50階層までなら辿れたぞ
それ以上は面倒だからやってないがな。
0322デフォルトの名無しさん
2005/07/09(土) 22:30:03>>311
0323デフォルトの名無しさん
2005/07/09(土) 22:31:44+1する必要はない英語版のMSDNがたぶん(w)正確
そもそも TCHAR なのに +1 ってバカすぎる
+sizeof(TCHAR) にしないと意味ない
TCHAR を分かってない奴大杉
0324デフォルトの名無しさん
2005/07/09(土) 22:38:01おまいさんが恥ずかしい奴だってことだけは分かった
0325デフォルトの名無しさん
2005/07/09(土) 22:38:56最後の3行すげーこっ恥ずかしいな
0326デフォルトの名無しさん
2005/07/09(土) 22:41:560327デフォルトの名無しさん
2005/07/09(土) 22:49:26ワロスwwwww
0328デフォルトの名無しさん
2005/07/09(土) 22:50:490329デフォルトの名無しさん
2005/07/09(土) 22:52:260330デフォルトの名無しさん
2005/07/09(土) 22:58:310331デフォルトの名無しさん
2005/07/09(土) 23:33:11/V\
/◎:::.:..__ヽ
_ ム::::( .)::| ∧∧
ヽツ.( ):::::::::.:::::::...| (,,゚Д゚) ξ 釣り宣言まで待つとするか
ヾソ:::::::::::::::::.:ノ / ⊃旦.
` ー ‐'"‐' (__)
■ このスレッドは過去ログ倉庫に格納されています