[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 06/22 14:31 / Filesize : 90 KB / Number-of Response : 427
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build55



1 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:57:45 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで


237 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:15:18 ]
>> 234

それは全部 >>224 の引用元の方法でも同様に抱えている問題。

そうはいってもDLLを使わないわけにはいかないし(COMはもっと遅いし)
すべてをCインターフェイスに書き換える手間をかけても、
得られるのはコンパイラ互換性くらいだろ。
basic_stringはどっちにしてもDLL越しには使えない。

聞きたいのは、>>224 が言ってる2点で、新たに問題が起きるかどうか、じゃないか?

と、偉そうに言うオレはDLLなんかここ3年使ってない。

238 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:22:06 ]
>>237
> と、偉そうに言うオレはDLLなんかここ3年使ってない
ぶっちゃけC++に関してはそれで正解じゃまいか?
COMにいくか、全部ヘッダに入れる/スタティックリンクするの2極だと思う。

COMは遅いだけじゃなくて普通のC++クラスと同じように使えないのも問題だな。
「C++の」ライブラリとして便利なものが欲しいなら、後者にならざるを得ない。

239 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:32:40 ]
Crazy for you.

240 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:37:01 ]
>>238
COMは常に遅いというわけではないだろ。
DLLに実装した場合に限れば、インタフェースメソッド呼出は、
(アパートメント越えのマーシャリングを起こさない限り)
原理的に仮想関数呼出と同じコストしかかからないぞ。

241 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:46:47 ]
>>240
普通にCOMの作法に従うと、文字列受け渡すにもSysAllocString()とか
いちいち使うことになるんで、やはり遅いと思うが

242 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 12:46:58 ]
>>240
普通のDLL的な使い方をするにはサイドバイサイドの実装が遅すぎた感じだよな。

243 名前:224 mailto:sage [2007/07/26(木) 12:58:02 ]
224です。
>>235のPDF読みますた。
とりあえずCOMの勉強をしてまた出直します。
ありがとうございました。




244 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:09:24 ]
>>241
ああすまん、そういうことか。

例えば文字列ならLPSTR/LPWSTRにすれば対等だしという具合で、
関数呼出自体のコストしか考えていなかった。

245 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:11:28 ]
ちょっとスレ違いかもしれませんがお尋ねします。
Linux とか Mac で Win32API に相当するものは何ですか?
あと、そのスレがあれば教えてください。



246 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:17:03 ]
>>245
system callだな。つまり、manのセクション2。

247 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:21:27 ]
つWine
流石にこれは冗談半分。

LinuxはWin32のkernel関係に当たるのがPOSIX。
GUI系はいろいろラッパがあってよくわからん。
ただ、どいつもX Window Systemが基底になっている。

Mac OS XはCocoaとCarbon。

こうでいいのか?

248 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:23:08 ]
ううん

249 名前:245 mailto:sage [2007/07/26(木) 13:35:49 ]
>>247
ありがとうございます!
主にGUI系が知りたいんですけど、それぞれのOSでウィンドウを表示するコード
(C++などメジャーな言語で)が載っているウェブサイトってないでしょうか…。

250 名前:初めからそう言えやカス mailto:sage [2007/07/26(木) 13:39:54 ]
If you give a mouse a cookie, it's gonna want a glass of milk.

251 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:42:43 ]
So, what's the point?

252 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:45:07 ]
スレ違いとわかってるなら続けんなよ・・・

253 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:45:33 ]
>>249
Unix系のOSに、WinAPIに相当するGUIなんかないぞ。
いずれにしろ、スレ違いだ。

254 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:58:46 ]
うそ?

255 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:06:12 ]
>>245
ほら、LinuxでもMacでも(恐らく)最小のウインドウを表示するプログラムやるからどっか行け。
--
/// For compile: gcc -std=c99 this.c -lX11 -L/usr/X11R6/lib
#include <X11/Xlib.h>

int main()
{
static const int WinWidth = 100;
static const int WinHeight = 100;
static const int WinBorder = 2;

Display * dpy = XOpenDisplay(NULL);
Window win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy),
0, 0, WinWidth, WinHeight, WinBorder,
BlackPixel(dpy, DefaultScreen(dpy)), WhitePixel(dpy, DefaultScreen(dpy)));
XSelectInput(dpy, win, KeyPressMask);
XMapWindow(dpy, win);

XEvent event;
do {
XNextEvent(dpy, & event);
} while (event.type != KeyPress);
XDestroyWindow(dpy, win);
XCloseDisplay(dpy);
return 0;
}




256 名前:255 mailto:sage [2007/07/26(木) 14:07:42 ]
日本語が変だった。
LinuxでもMacでも動く(恐らく)最小の、ウインドウを表示(してキー入力待ち)するだけのプログラムだな。

257 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:09:58 ]
なんだかんだ言ってやさしいな
あんたかっこいいよ

258 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:11:24 ]
プログラマはツンデレ多いな

259 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:12:41 ]
とりあえず「できない」と返事しておかないと
やっかいなことになる職業だから

260 名前:245 mailto:sage [2007/07/26(木) 14:15:54 ]
ツンデレさん、ありがとうございました!

261 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:15:54 ]
>>259
あ、それなんとなくうけるw
俺は注文する側だけど、そういう奴確かにいるw

262 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:17:05 ]
「(金と時間が十分に与えられるなら)できます」

263 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:21:31 ]
「できます(よそにまる投げだけど)」

264 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:24:55 ]
>>229
ヒントありがとう、早速試してみます

265 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:25:11 ]
なんでも「できます」と答えることがどんだけ酷いことになるかを身をもって体感してきた若かりし頃。
といっても高校時代だが・・・



266 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:27:40 ]
なんでも「できます」と答えることがどんだけおいしいことになるかを身をもって体感してきた若かりし頃。
といっても高校時代だが・・・

267 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 17:03:03 ]
>>229
解決しました
ウィンドウ変更する時に使ってたSetWindowPos()に
SWP_DRAWFRAME (再描画時にウィンドウの枠も再描画の対象にする)
をセットしていないというミスが原因でした、お騒がせしました

268 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:19:23 ]
おかげで騒ぎまくったお

⊂⌒ヽ          (⌒⊃
  \ \  /⌒ヽ  / /
 ⊂二二二( ^ω^)ニニ二⊃
     \ \_∩_/ /
      (  (::)(::)  )
       ヽ_,*、_ノ  ブーン
   ///
 ///


269 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:20:50 ]
>>231
SendInput()を試して見れ


270 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 05:43:50 ]
>>269
なるほど。
早速試してみたいと思います。
ありがとうございました。

271 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 01:05:01 ]
>>268
なるほど。
早速試してみたいと思います。
ありがとうございました。

272 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 01:22:10 ]
ためさんでよろしい

273 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 01:24:59 ]
わろた。遅レスなのがいい。

274 名前:デフォルトの名無しさん [2007/07/28(土) 15:37:21 ]
GetKeyboardStateってウィンドウがなきゃ使えないの?
コンソールアプリで使ったら全然取得できなかったんだけど

275 名前:デフォルトの名無しさん mailto:sage [2007/07/28(土) 20:58:23 ]
そうですよ



276 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 00:00:51 ]
現在フルスクリーンになったらウィンドウを非表示にするプログラムを組んでいるんですが
何か良い方法はないでしょうか?
検索をしてみても中々見つからなくて_no

277 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 00:07:06 ]
自分自身なのかほかのウィンドウかわかんね

278 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 00:28:45 ]
タスクバーやらタイトルバーが消える、
Power Pointのスライドショー実行中画面みたいなものを作りたい、
という感じ?


279 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 00:30:37 ]
_no on_

280 名前:276 mailto:sage [2007/07/29(日) 00:46:12 ]
言葉足らずで申し訳ありません_no
フルスクリーンを検出したら自分自身を非表示にする為の方法を探しております

281 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 00:51:47 ]
自分自身がフルスクリーン?

282 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 00:53:09 ]
名前が違う。ウザイ

283 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 00:56:04 ]
他所のウィンドウがフルスクリーンになったらって事か

そもそもフルスクリーン化の方法は多種多様だから
画一的な検出方法はないと思う

284 名前:276 mailto:sage [2007/07/29(日) 01:02:26 ]
言葉足らずで申し訳ありません_no
自分自身のフルスクリーンを検出したら自分自身を非表示にする為の方法を探しております

285 名前:本物276 mailto:sage [2007/07/29(日) 01:09:29 ]
自己解決しました



286 名前:偽者276 mailto:sage [2007/07/29(日) 01:17:58 ]
引き続き情報お願いします。


あと、寿司食いたい

287 名前:名無しさん@そうだ選挙に行こう mailto:sage 選挙…どうしたものか [2007/07/29(日) 01:21:10 BE:372388853-2BP(5)]
どれが本物かわかんねwww

フルスクリーンって最大化だったりするw?
それならIsZoomedで定期的に調べるか
WM_SIZEのwParamを調べればいいんでない
あとShowWindowで隠す

画面を覆いつくしてるか調べるんなら
クライアント領域の広さ>スクリーンの広さで良いんじゃね?
最前面かどうかも調べる必要があるけど

288 名前:本物276 mailto:sage [2007/07/29(日) 01:29:41 ]
いやもう事故解決したから

289 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 01:50:30 ]
質問をさせて頂きました276です
>>283さん
>>287さん
レス有難うございます。
非常に参考になりました(^^

290 名前:276 mailto:sage [2007/07/29(日) 01:55:58 ]
どいつもこいつも的外れ
ボタンひとつでできるアピをおしえろや

291 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 01:59:02 ]
Win32API質問箱 Build55

292 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 02:09:10 ]
ボタン一つ作るのにどれだけアピが必要か分かって言ってるのか

293 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 02:11:17 ]
そうだ!そうだ!ボタンつけてくれる彼女作るのにどれだけアピったか分かって言ってるのか

294 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 02:12:24 ]
なんだよそれwアピール?

295 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 02:23:40 ]
ボタン付けは手作業だしアイロンがけも手作業です

魔法使いなのにね♪

orz

!!!!!!!!!!!!!!!11111111



296 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 02:27:49 ]
おもんねーんだよ

297 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 02:32:41 ]
     ///////
    ///////____________
    ///////  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄
   ///////              (~) チリンチリン
   ///////              ノ,,
  ///////     ∧_∧
  ///////     ( ´∀`)( 厨 ) )) <  夏だなあ〜
 ///////      (つ へへ つ
///////   //△ ヽλ  ) ) 旦
//////  l ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
/////    ̄| .| ̄ ̄ ̄ ̄ ̄ ̄ ̄| .| ̄
////     ^^^          ^^^

         2chの夏。厨房の夏。

298 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 04:22:16 ]
ボタンつけてくれる彼女ホスィ

299 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 09:07:10 ]
アピってなんのことかと思った

300 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 11:49:10 ]
今時の彼女は OpenWindow() 位で他にいろいろ可能なアピってあるのか。

例え話になるが、東京マガジンの、やってトーライとか見ているとアピは
少ないな。

今話題の宮崎県って、姉さん女房が多いとか。歳食っているとアピは
増えてんだろうな。

マ、うちは年下で年数かけてアピを増やした。また別の新手を確保して
イチからやるってもう面倒。OpenWindow() 実装頻度も下がったし。

301 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 12:17:29 ]
チラシの裏でアピれよアホ

302 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 12:46:20 ]
アピ に一致する日本語のページ 約 354,000 件

303 名前:名無しさん@そうだ選挙に行こう [2007/07/29(日) 13:53:20 ]
CreateHardLinkしてファイル名が二つある場合、
一方のファイル名から他方を割り出すにはどうすればいいですか?

304 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 13:57:42 ]
プロセスが掴んでいるファイルのフルパス名一覧を得たいのですが、
やり方教えてください。

305 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 14:22:10 ]
市販のアプリのボタンってさ、なんか丸かったり結構デザインに凝ってたりするけど
あれどうやんの?



306 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 14:27:52 ]
>>303
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnw2k/htm/ntfs2000.asp

| リンクされているファイルの名前をすべて列挙するのはやや困難です。
| 基本的に、ボリューム全体を調べて、ファイルごとに割り当てられてい
| る一意の ID を 1 つ 1 つ確認しなければなりません。同じ ID を見つ
| かったら、そのファイルはハード リンクです。ファイルの一意の ID
| はシステムによって割り当てられ、BY_HANDLE_FILE_INFORMATION の
| nFileIndexHighおよびnFileIndexLowフィールドに格納されます。

307 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 14:30:54 ]
日本語がおかしいな
自動詞が目的語を取ってる

308 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 14:32:52 ]
>>305
SetWindowRgn

309 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 14:33:10 ]
>>305
Winampのカスタムスキンを.zipにリネームして中見ればわかるけど
各パーツのビットマップを自前でペタペタ貼ってるだけ。

310 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 15:13:40 ]
>>303
FindFirstFileName
ただしVista限定

311 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 17:53:19 ]
普通のウィンドウのリージョンを変えたいときってWS_POPUPを指定しないと駄目かな?
WS_POPUPを指定しないとリージョン変わらないし、WS_POPUPを指定すると
今度はキャプションが表示されない
どうしたものか・・・

312 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 18:40:09 ]
>>311
両方指定すれば?

313 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 19:27:11 ]
>>312
WS_SYSMENU | WS_POPUP
とやっても、キャプションは表示されないです

314 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 19:28:43 ]
WS_CAPTION

315 名前:名無しさん@そうだ選挙に行こう mailto:sage [2007/07/29(日) 19:47:15 ]
>>302
やっぱアピって一般的な呼び方だったんだな



316 名前:名無しさん@そうだ選挙に行こう [2007/07/29(日) 20:05:51 ]
>>304

317 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:43:08 BE:670300439-2BP(5)]
>>316
なんだ?催促か?

>>304
モジュールの列挙なら↓参考
www7a.biglobe.ne.jp/~lshen/EternalWindows/Special/DLL/DLL05.html

CreateFile等でオープンしてるファイルの一覧を取る方法は知らん

318 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:44:57 ]
vistaなら取得できた気がしないでもない

319 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 20:51:44 ]
定期的に出るけどその辺はカーネルで管理されてると思うな
まったりreact os とかのソース読めばわかるかも

320 名前:デフォルトの名無しさん [2007/07/29(日) 21:38:25 ]
>>317
いやそうじゃなくて、CreateFileとかで開いてるファイルの列挙です。

321 名前:304 mailto:sage [2007/07/29(日) 21:41:36 ]
>>317
ありがとうございます。EnumProcessModulesで得られるファイルの列挙でした。

322 名前:デフォルトの名無しさん [2007/07/29(日) 22:40:20 ]
>>321
ひどいなあ

323 名前: ◆CRF62MVOAI [2007/07/29(日) 22:42:40 ]
プロセスが掴んでいるCreateFileとかで開いてるファイルの
フルパス名一覧を得たいのですが、 やり方教えてください。

324 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 22:46:29 ]
54のログにこんなのがあった

641 名前:デフォルトの名無しさん[age] 投稿日:2007/07/07(土) 08:08:18
任意のプロセスがCreateFileしたファイルのパス、それを取得する方法て何かないですか?
使用OSはVistaです
フィルタドライバ書かなきゃいけないんでしょうか?…

642 名前:デフォルトの名無しさん[sage] 投稿日:2007/07/07(土) 08:26:24
CreateFileのAPIフッ(ry

たぶん323には実現不可能だね

325 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 22:53:30 ]
>>323
なんか最近この質問多いよな。

Process ExplorerとかWinDbgとかと同じ方法をとればできるのは確実だけど、
軽く聞いて何とかなるってレベルじゃないと思う。



326 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 22:54:16 ]
まあ323には実現不可能だね

327 名前: ◆CRF62MVOAI [2007/07/29(日) 22:56:29 ]
自己解決しました!

328 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 22:57:43 ]
おそっ

329 名前:デフォルトの名無しさん [2007/07/29(日) 22:59:00 ]
ひどい

330 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:09:40 0]
なんだ解決したのか。

まあFAQっぽいのでこれも貼っておく。
ttp://www.microsoft.com/technet/sysinternals/utilities/handle.mspx

まあ同じことやったらVistaでも動くはずなのでどうしてもやりたいって人はこれ解析してくれ。


331 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:45:28 0]
ドライブがUSBメモリかどうかを判定する方法を教えてください。

332 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:50:35 0]
APIならGetDriveTypeかな?

リムーバブルドライブかどうかしか分からんけど

333 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:09:24 ]
じゃあドライブってのは間違いですね
回転してないし

334 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 00:31:03 ]
さっきから糞レスを付けてる馬鹿はなんなの?

335 名前:デフォルトの名無しさん [2007/07/30(月) 00:54:56 ]
全然詳しくないので質問させてください。
いつも仕事中にWebばかり見てる派遣クンが
「Win32APIがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
彼のWindowsプログラムが動かないのを調べるのは誰の仕事なのでしょうか?




336 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 01:01:02 ]
お前の仕事

337 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 01:01:53 ]
どう考えてもお前の仕事






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<90KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef