2ちゃんねる★スマホ版★■掲示板に戻る■全部1-最新50

Win32API質問箱 Build123©2ch.net

1 :
2016/10/08(土) 12:33:02.29 ID:0jaJMPXG
Win32APIについての質問はこちらへどうぞ。

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

■過去スレ
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
2 :
デフォルトの名無しさん
2016/10/08(土) 12:35:25.10 ID:RMZHGp4O
>>1 乙乙
3 :
2016/10/08(土) 12:43:30.04 ID:0jaJMPXG
関連スレ

【C++】 DirectX初心者質問スレ Part40
http://echo.2ch.net/test/read.cgi/tech/1474782237/

Visual Studio 2015 Part7
http://echo.2ch.net/test/read.cgi/tech/1475491685/
4 :
2016/10/08(土) 12:44:15.44 ID:0jaJMPXG
5 :
2016/10/08(土) 12:45:29.36 ID:0jaJMPXG
番外編

MacでもLinuxでも使えるVisual Studio Code
http://echo.2ch.net/test/read.cgi/tech/1430403713/

D言語 Part34
http://echo.2ch.net/test/read.cgi/tech/1422155249/
6 :
2016/10/08(土) 12:48:44.68 ID:SDbMDtMb
MFCはオワコン

MFC相談室 mfc23d.dll
http://echo.2ch.net/test/read.cgi/tech/1474384848/
7 :
2016/10/08(土) 12:50:40.14 ID:iZfxeHbI
Win32API が使える windows 用の Objective-C ってある?
8 :
2016/10/08(土) 12:53:21.93 ID:0jaJMPXG
おまいらもう今時デフォで-DUNICODEだよな?
ASCII版なんて作ってないよな?
9 :
2016/10/08(土) 12:57:43.73 ID:iZfxeHbI
_T はやめて L しか使ってないな
10 :
2016/10/08(土) 13:05:44.01 ID:SDbMDtMb
VC++のBOMなしutf-8対応はよ
11 :
2016/10/08(土) 13:10:51.31 ID:T/Z20i9z
>>9
同じく
さすがに CreateFileW( ) まではしないけど
12 :
2016/10/08(土) 13:13:10.90 ID:RMZHGp4O
swiftでWin32API叩けるんかな
13 :
2016/10/08(土) 15:49:59.12 ID:so+5PAmM
>815 デフォルトの名無しさん (ワッチョイ 353c-pu+C) sage 2016/10/08(土) 14:11:25.37 7aqZN51I0
>Swiftの美しい文法を使ってWin32APIをディスることはできるよ
14 :
2016/10/08(土) 17:40:11.77 ID:GxOhc35M
DirectXとOpenGLでベクトルの縦横とか掛ける方向が逆ってのがあれで
転置行列にすりゃええのかと思いきや行列はそのまま共通っつー判りやすさ
15 :
2016/10/08(土) 19:01:31.79 ID:GxOhc35M
誤爆orz
16 :
デフォルトの名無しさん
2016/10/09(日) 14:41:37.01 ID:zS2VLXB8
17 :
2016/10/12(水) 13:29:03.98 ID:CGbCriuU
なんでWin64APIって出ないんだろうね
18 :
2016/10/12(水) 18:18:40.76 ID:rUC8jhfl
_T でもう慣れちまった
19 :
2016/10/12(水) 18:36:12.56 ID:bqn+ql9d
いまさらだけど mbcs 系と wchar 系で名前に一貫性が無いのはやめてほしい
20 :
デフォルトの名無しさん
2016/10/15(土) 13:31:49.50 ID:5kX/FrWC
>>9
+1
21 :
2016/10/15(土) 19:45:46.65 ID:D3zuPPkw
>>18
スレッド的には TEXT 一択
22 :
2016/10/16(日) 12:20:45.02 ID:ZLsyfFKf
>>17
64bit環境でも使えるんだしいいんじゃない?
新しいものが増えることよりも今あるものが使い続けられるかどうかのほうが重要。
23 :
2016/10/16(日) 21:15:11.36 ID:9M/UHFkb
部分的には64bitAPI出てるよ
アドレス長対応する必要あるから
24 :
デフォルトの名無しさん
2016/10/22(土) 16:23:27.83 ID:O48rD9qT
avi や mpeg などをエンコードする api ってどれですか?
25 :
2016/10/22(土) 16:36:41.69 ID:ypW/SG0/
どれ?と聞く場合は、選択肢を並べてくれないと。
26 :
デフォルトの名無しさん
2016/10/22(土) 16:48:10.11 ID:O48rD9qT
自分で調べたら FFmpeg みたいだけど Win32API じゃないですね
27 :
2016/10/23(日) 01:08:31.63 ID:qtfTOnQW
OS標準のエンコーダちゅーたらこのへんのくらいしかねえぞ
https://msdn.microsoft.com/en-us/library/windows/desktop/ff819077.aspx
28 :
2016/10/23(日) 01:13:24.04 ID:qtfTOnQW
あー、aviとか言ってるしVFWやDMOの方がええんかね
29 :
デフォルトの名無しさん
2016/10/23(日) 10:32:03.27 ID:CGzeXgZh
Video for Windows
30 :
デフォルトの名無しさん
2016/10/26(水) 13:52:39.34 ID:58gjeL/k
ジョイステックってキーボードやマウスみたいにフックできるのでしょうか
こんなコードが検索でかかるのですが、これをつかいますか?
Input in={0};
in.type=INPUT_HARDWARE;
in.hi.uMsg=?????;
in.hi.wParamL=?????:
in.hi.wParamH=?????;
SendInput(1,&in,sizeof(in));
31 :
デフォルトの名無しさん
2016/10/31(月) 08:39:50.35 ID:L3NvQGUf
ドライバーの存在しないデバイスに無理矢理標準のゲームパットのドライバをインストールさせることは可能でしょうか
32 :
2016/10/31(月) 11:48:02.42 ID:8iOXYzaz
それのどこがWin32APIなの?
33 :
デフォルトの名無しさん
2016/10/31(月) 14:23:59.11 ID:oRn+7MiJ
DDKの使い方ならここかな
34 :
2016/10/31(月) 14:24:45.40 ID:oRn+7MiJ
35 :
2016/11/01(火) 07:22:31.26 ID:BruE0qoG
あざす
36 :
2016/11/05(土) 00:23:48.13 ID:jJRBXXEI
cのfopenはvc++でコンパイルするとCreateFileをよびだすのかな?
もしそうだとすると、標準ライブラリを使うとワンクッションはいるので
遅くなりますよね?
37 :
2016/11/05(土) 00:31:14.92 ID:DUzD1Vkt
そうだな
そんなに速度に対してシビアなプログラミングしてるのか?w
38 :
2016/11/05(土) 01:16:53.89 ID:echkH5Mx
>>37
あえて遅い方を選ぶ理由は?
39 :
2016/11/05(土) 01:39:59.98 ID:q1Fthh0N
CreateFileじゃなくメモリ関連で以前コンソール使ってやったけど
最適化すると一緒
40 :
2016/11/05(土) 03:05:01.84 ID:jJRBXXEI
VCの最適化は糞なんでOFFしてます
41 :
2016/11/05(土) 03:43:13.15 ID:QPrRTgR0
SSD使えよ
42 :
2016/11/05(土) 07:35:56.48 ID:DUzD1Vkt
>>38
スレチになるがマルチプラットフォーム
43 :
2016/11/05(土) 07:53:22.41 ID:QPrRTgR0
Win32でもconio.hで書けるよ
44 :
2016/11/05(土) 11:28:45.86 ID:qKcyypJI
>>38
FILE構造体が便利ならstdio使うし、Windows専用アプリで細かい制御をしたいならCreateFile()を使うし、
普通の人は臨機応変に使い分けることができる。
45 :
2016/11/05(土) 11:58:41.60 ID:2n9hgzl5
普通の人は使い分けてるのか?
普通のwinプログラミングじゃfopen見ないと思うんだが
46 :
2016/11/05(土) 12:11:34.73 ID:Bnw8PuKo
>>45
ホントカネー
47 :
2016/11/05(土) 12:34:09.41 ID:2n9hgzl5
winプログラミングで使うなら_tfopen_sになると思うが、ぐぐって1700ヒットだよ。_tfopenでようやく2万w
mallocなみに見かけないと思う
48 :
2016/11/05(土) 12:50:18.04 ID:0pOl8O7N
>>47
_tfopen_sの実態は
fopen_s, _wfopen_sなんだがw

fopen 9,180,000件
適当こいてんじゃねーよw
49 :
2016/11/05(土) 12:58:41.81 ID:qKcyypJI
>>45
アスペじゃなければ使い分けくらいできるしするだろ。
いちいちReadFileだのWriteFileだのやってられないし。普通は。
50 :
2016/11/05(土) 12:59:37.00 ID:2n9hgzl5
>>48
プログラミングしたことある?
fopenはwin以外にも使われてるからヒット数多いに決まってるよwww

CreateFileの実態がCreateFileAWってのと同じ
winプログラミングはTでいくのが普通だからAW(fopen_s, _wfopen_s)なんてめったに扱わないし
特にファイルオープンに関しちゃ、A(fopen_s)をわざわざ選ぶ理由なんて皆無でしょ
51 :
2016/11/05(土) 13:02:14.41 ID:qKcyypJI
>>50
>winプログラミングはTでいくのが普通だから

そんなことはない。
52 :
2016/11/05(土) 13:02:47.17 ID:GQrwHyiX
>>36
むしろfreadの実装が結構頑張ってるので、例えばファイルから
1バイトずつ読む場合は、標準で用意されている関数の中では
freadが一番速いくらい。
53 :
2016/11/05(土) 13:19:32.14 ID:0pOl8O7N
>>50
>>47でヒット件数に言及しておいてそれかよw

プログラミングした事ある?
そのまま返すわ
54 :
2016/11/05(土) 13:54:15.41 ID:V6+SRNFm
>>44
Windowsでfopenを使う理由はないよ
55 :
2016/11/05(土) 14:03:10.02 ID:qKcyypJI
>>54
まあアスペにはWin32API「しか」使えないわな。
こんな奴が本当にプログラミングしてるんだから、
使いにくいプログラムがあふれかえるわけだ。
56 :
2016/11/05(土) 15:09:08.22 ID:EOaqGeXp
俺はfopen()(大抵はfsopen_s())良く使うなあ
"wt"でテキストファイル書く時"\n"を"\r\n"にしてくれるのとか便利じゃん
それにfprintf()とかfscanf()とか同じことをWin32APIでやると面倒だし
57 :
2016/11/05(土) 18:58:42.67 ID:Y72Y2Zla
Linuxでビルドできないと困るので標準関数を主に使う
58 :
デフォルトの名無しさん
2016/11/05(土) 21:37:32.05 ID:AA4Sk0Wd
リング0を行き来するのはオーバーヘッドになるからまとめて引き渡したい
そういう理由もあって標準関数を好むけど
59 :
2016/11/05(土) 23:04:33.19 ID:kO1gZKnI
おまえら、なんの話してんだ?
linuxってなんだよwスレタイを0xffffffffffffffff回復唱しろよ
60 :
2016/11/05(土) 23:08:52.31 ID:qKcyypJI
こんなスレに来るんだからプログラム書くんだろうに、
Linuxの名前くらい知らずに仕事になるの?
61 :
2016/11/05(土) 23:09:10.47 ID:Y72Y2Zla
既にスレ全体を-1回読んでいる
62 :
2016/11/05(土) 23:13:07.08 ID:kO1gZKnI
>>60
誰が知らないっていったよ、バカですか?
おまえ、会社でも「一から十まで説明しなきゃいけない?」ってよく言われるだろw
63 :
2016/11/05(土) 23:16:43.75 ID:/oeNR6O2
>>59
-1回復唱するとは?
64 :
2016/11/05(土) 23:24:36.93 ID:jJRBXXEI
>>63
ggれかす
65 :
2016/11/06(日) 07:41:54.96 ID:DwuXTERT
Cの教科書に載ってるのfopenで、CreateFileは詰め込みすぎててややこしいから
fopenを使い続けてるって層が多そう
66 :
デフォルトの名無しさん
2016/11/06(日) 08:25:12.31 ID:wprJ6aec
わざわざ環境依存の関数使うぐらいなんだから理由あるんだよね?
67 :
2016/11/06(日) 08:26:18.85 ID:8+fmWTOK
スレタイが環境に依存してるのはいいのか?
68 :
2016/11/06(日) 08:28:24.06 ID:LG3GvlVh
っえ?
linuxでもWin32api呼べるよ
69 :
2016/11/06(日) 08:31:46.68 ID:5/z3Ppl4
>>68
そんなんですか、だとしたらますますfopenを呼ぶ理由はない、呼び出しが多くなるから遅くなりますよね
70 :
2016/11/06(日) 09:01:33.07 ID:TO8zu+f0
fopenを使わずに何を使うかここまで言及無し
71 :
2016/11/06(日) 09:15:57.80 ID:rGVVvSQ9
>>65
それで問題ない
UTF-8だけなら
72 :
2016/11/06(日) 09:19:59.65 ID:TO8zu+f0
>>71
UTF-16LEも
73 :
2016/11/06(日) 11:25:27.53 ID:7DBohWvr
>>66
だから必要に応じて使い分けるものだと何度言えば。
74 :
2016/11/06(日) 12:54:43.57 ID:4E5k1HKy
プログラムからデバッガに接続ってできませんか?
75 :
2016/11/06(日) 12:55:35.60 ID:5/z3Ppl4
つConnectDebugger
76 :
デフォルトの名無しさん
2016/11/06(日) 13:55:29.40 ID:E1Cvk6Xz
>>69
そうだね。
常にどんな環境でもCreateFileつかっておけば間違いないよ。
77 :
2016/11/06(日) 14:17:46.54 ID:PBN3DkC0
どんな環境でも win32api が使えるのかね?
78 :
2016/11/06(日) 14:25:48.09 ID:7DBohWvr
使える、呼べる、の定義次第だな。
呼ぶだけ(何もしない)ならすぐできる。
79 :
2016/11/06(日) 15:06:15.30 ID:jrejtDgu
winプログラムをガッツリ作ることになったワイ。
CreateFile系のAPIも使わなあかんのやろか?と使い始めるも面倒くさすぎなので、
fopen系を自分で使いやすいようにカスタムしたようなAPIラッパーを自分で用意、
中でCreateFile系を呼ぶようにした無駄な努力。
80 :
2016/11/06(日) 15:20:40.29 ID:PBN3DkC0
>>78
そんなものを win32api というのかね?
81 :
2016/11/06(日) 15:22:12.40 ID:aWGLyRUt
正直何を言ってるのかさっぱりわからん
ただ >>79 が CreateFile を理解してないことはわかった
82 :
2016/11/06(日) 15:26:33.42 ID:jrejtDgu
アホが釣れたで
83 :
2016/11/06(日) 15:31:19.18 ID:5/z3Ppl4
本当わけわからん
Win32API質問箱というスレタイでlinuxなんて意味不明なこと言い出す馬鹿とか、
環境依存とか・・・

っあ、分かったWin32APIというものがなんなのかしらないのか
84 :
2016/11/06(日) 15:36:21.57 ID:7DBohWvr
>>83
プログラマならLinuxくらい勉強しておこうぜ。
85 :
2016/11/06(日) 15:40:05.04 ID:5/z3Ppl4
>>84
おまえは馬鹿?
Linuxなんてこのスレとなんの関係があるんだ?

プログラマならLinuxとWin32APIの関係性くらい勉強しておこうぜ。
86 :
2016/11/06(日) 15:42:58.36 ID:AJmk7i6z
linuxってc++を理解できないアフォが作ったゴミですよね
87 :
2016/11/06(日) 15:48:22.75 ID:7DBohWvr
>>85
APIと実装は違うというのはわかってるよね?
88 :
2016/11/06(日) 15:50:49.53 ID:t67ppMyH
>>87
プログラマなら皆まで言われなくとも理解ようぜ
89 :
2016/11/06(日) 15:59:46.37 ID:xHDOqiQx
90 :
2016/11/06(日) 16:01:51.83 ID:YPGx/bgn
Lindows
91 :
2016/11/06(日) 16:07:35.75 ID:5/z3Ppl4
wineもLindows関する話題もOKですね
boostもOKですか?
92 :
2016/11/06(日) 16:11:14.07 ID:bCh//xB2
おまいはだめ
93 :
2016/11/06(日) 16:12:50.49 ID:5/z3Ppl4
おまえはなんでいいの?
94 :
2016/11/06(日) 17:59:51.67 ID:7DBohWvr
>>88
わからないんなら、わかりませんごめんなさいだろ?
なんで突然単発でわいてくるんだよ。

>>91
LindowsのどこにWin32APIがあるんだよ。
boostもだ。
95 :
2016/11/06(日) 19:22:43.11 ID:5/z3Ppl4
>>94
そりゃこっちが聞きてーわw
Win32apiと銘打ってるスレでlinuxなんて意味の分からんこと言い出したの己らちゃんうかい
96 :
2016/11/06(日) 19:47:14.00 ID:YPGx/bgn
今今C
97 :
デフォルトの名無しさん
2016/11/06(日) 21:09:59.89 ID:MLGlQdvO
>>79
ファイルポインタ, ファイル記述子, ファイルハンドル の相互変換あるから
ほんっとに無駄だな
98 :
デフォルトの名無しさん
2016/11/06(日) 21:36:12.60 ID:hZSM5tbK
初心者です。

中断ボタンを出そうと考えています。
スレッドから、CreateDialogで中断の画面を出すとダイアログが一瞬で
消えてしまいます。
ご存じの方いませんか?

ちなみに、DialogBoxでは処理が滞ってしまいました。
99 :
2016/11/06(日) 22:08:54.07 ID:eC1CzNtZ
>>98
スレッドが一瞬で終わってんじゃないの?
100 :
2016/11/06(日) 22:28:42.23 ID:RUueNHTq
そりゃそうだろw
何を当たり前のことを???
101 :
2016/11/06(日) 23:04:20.64 ID:AHO3vAwR
CreateDialogはモードレスダイアログボックスを作るので、
要するにnewされているからスタック以外のどっかに作られるので、
CreateDialogを呼び出した後はダイアログは表示されてもすぐ消えて
元の処理に戻る。こいつを維持したければShowWindowをしろ。
DialogBoxはモーダルダイアログボックスを作るが、これはスタックに
作るのでこいつが閉じられない限り呼び出し元の処理を続行出来なくなる。
処理が滞るというのはそういうことだな。
102 :
2016/11/06(日) 23:04:51.46 ID:AHO3vAwR
だから当たり前のこと。
103 :
2016/11/07(月) 00:33:16.97 ID:bxaGR4em
>>98
IsDialogMessage使ったか?
104 :
2016/11/07(月) 01:14:31.84 ID:tfEbFCgf
>>101
スタックに作ったとしても処理は止まらんだろ。
スタック解放されたらメモリリーク等になるだけだ。
105 :
デフォルトの名無しさん
2016/11/07(月) 04:01:23.41 ID:EaPQMBZD
>>101
これはひどい
106 :
2016/11/07(月) 07:43:13.48 ID:/5KK1SgJ
ここまで酷いと98が釣りに思えてきた
107 :
2016/11/07(月) 08:37:44.05 ID:fwwW9lIx
>>101
何を言っているんだ?
108 :
2016/11/07(月) 16:06:23.47 ID:iTWgrf69
イベントループまわしてない糞アプリは結構あるけどな
109 :
2016/11/07(月) 21:00:42.32 ID:lMECrzfj
あるね
110 :
2016/11/07(月) 23:24:31.73 ID:geFZXkbd
WindowsServerの共有フォルダに対して
一台のPCで複数のセッションを
張りたいのですが
そういうことは可能でしょうか?

セッション枯渇をシュミレーション
したいのですが、数十台の
クライアントを用意するのが厳しいので、
よろしくお願いします
111 :
デフォルトの名無しさん
2016/11/07(月) 23:35:14.98 ID:xNTfrSvb
98です。

残念ながら本当にわかっていなくて、
なにがひどいのかもわかりません。

一瞬で終わっているのは事実です。
IsDialogMessageは使っています。
原因を調べています。
112 :
2016/11/07(月) 23:52:47.40 ID:bxaGR4em
>>111
ダイアログはメインスレッドで作った方がいいんじゃないか?
そうじゃなきゃ、作成したスレッドでイベント処理が必要になる。
113 :
2016/11/08(火) 00:02:16.77 ID:AW+lzuxI
メッセージキューはスレッドごとに用意されていて、ウィンドウのメッセージは
ウィンドウ作成元のスレッドのメッセージキューにたまる。
114 :
デフォルトの名無しさん
2016/11/08(火) 00:42:20.76 ID:/LmyXqRX
>>110
シュミレーションってなに?
115 :
2016/11/08(火) 00:44:34.04 ID:unHUC1CF
シュミなら何でもできる
116 :
2016/11/08(火) 01:35:14.19 ID:Y3RxQGSc
シュミーズとスリップとキャミソールの違いってなに?
117 :
2016/11/08(火) 01:36:27.03 ID:unHUC1CF
1.80代
2.60代
3.40代
118 :
2016/11/08(火) 02:08:30.02 ID:U/Ju3opf
>>114
その程度も想像できない人の意見なんてどうでもいいです
119 :
2016/11/08(火) 02:32:59.30 ID:Y3RxQGSc
その想像力を駆使して趣味レーションすればいいんじゃね?
Win32APIには関係ない話だし。
120 :
2016/11/08(火) 03:20:49.30 ID:jUCVZHcM
win32apiに関係なくてもいいんじゃなかったけ?
121 :
98
2016/11/08(火) 06:00:23.87 ID:EP2Ba4mn
>>112

ありがとうございます。
試してみます。
122 :
2016/11/10(木) 21:09:42.83 ID:AasTbJ+R
123 :
2016/11/11(金) 12:10:47.06 ID:9ZvufmQn
IDないときにID導入で言い争いなくなってたのに
久しぶりにここ来たらIDありでも構わず言い争いしててワロタ

ついでに次スレはワッチョイでもつけよう
124 :
2016/11/11(金) 12:39:26.27 ID:/bmaODHZ
もうホスト名表示でいいだろ
125 :
2016/11/11(金) 13:02:50.32 ID:kcpLk0Bj
何を付けても言い争いが発生するんだから、
IDくらいがちょうどいいんじゃないの。
どこのスレ見ても、荒らす奴はなにやっても荒らすし。
126 :
2016/11/11(金) 13:10:25.05 ID:UQPlBidt
IDとかワッチョイとか何の意味もないのに付けたがるよね
今の2ちゃんなんか人少なくて気にするほどの書き込みもないのに
127 :
2016/11/11(金) 13:18:14.05 ID:FF2/z6GJ
>>123みたいな奴が色んなスレで終盤になって現れる
その後不自然にワッチョイの話題で加速

付けてもいいけど伸びた方を使う
128 :
2016/11/11(金) 19:38:22.83 ID:F0Rj6jl1
IDでじゅうぶん
129 :
2016/11/11(金) 20:04:48.37 ID:0rL2xNMJ
ホスト名がベター
130 :
2016/11/11(金) 20:06:12.51 ID:DbOMb6Sb
ホスト名出して主張してくれや
131 :
2016/11/11(金) 20:12:52.08 ID:LmTjZr7C
ワッチョイは争いの火種
最初からないほうがまし
別にIDもいらない
132 :
2016/11/11(金) 20:36:56.45 ID:F0Rj6jl1
IDはあったほうがいいね
133 :
sp49-98-77-115.mse.spmode.ne.jp
2016/11/11(金) 20:37:29.90 ID:0rL2xNMJ
ホスト名がベター
134 :
2016/11/11(金) 20:44:35.64 ID:X9bDlJ5d
ホスト名は「たちばな誠」
135 :
2016/11/11(金) 20:51:04.74 ID:Tfn5AWDv
ホスト名が良いカモね
136 :
2016/11/12(土) 04:05:38.85 ID:6wPviZ3t
スレチ
137 :
デフォルトの名無しさん
2016/11/12(土) 04:37:47.35 ID:xxkpve4k
急激に過疎ったスレとして資料価値がある
一番勢いあったのがIDなかった時代だというのが興味深い
138 :
デフォルトの名無しさん
2016/11/12(土) 07:40:36.69 ID:VYJ07zOJ
単にWin32から.NETへの移行が進んだだけでしょう
139 :
2016/11/12(土) 09:21:42.48 ID:cY8zOPne
たんに荒らしが伸ばしてただけでしょう
140 :
2016/11/12(土) 10:58:41.72 ID:aMxeZQXn
>>137
勢いじゃなく、荒らされていた時期な
141 :
2016/11/12(土) 11:01:50.42 ID:MjZ+e3Wz
回顧モード中ですが、ちょっと教えてくだされ。
スケーリング対応ってどの辺のAPIを使うといいの?
もしくは、どの辺のAPIを見直せばいいのか。
142 :
デフォルトの名無しさん
2016/11/12(土) 13:10:05.51 ID:VYJ07zOJ
うろ覚えだけど
SetWindowOrgEx
SetViewportOrgEx
辺りじゃないの
143 :
2016/11/12(土) 16:51:53.48 ID:KzeRaaZ8
@AoA = (
[ "fred", "barney" ],
[ "george", "jane", "elroy" ],
[ "homer", "marge", "bart" ],
);
を関数に渡したいんですが、どうすればいいの?
144 :
2016/11/12(土) 18:18:57.26 ID:B8iRPOxS
はあ…
145 :
2016/11/12(土) 21:46:22.81 ID:6wPviZ3t
loopyを3回となえてください
146 :
2016/11/13(日) 04:10:41.48 ID:+F2H1InO
>>141
DPIスケーリングならここ見ていけば大体書いてある
https://msdn.microsoft.com/en-us/library/windows/desktop/dd464646(v=vs.85).aspx
この辺のAPI使う
https://msdn.microsoft.com/en-us/library/windows/desktop/hh447398%28v=vs.85%29.aspx
真面目に対応しようとするとけっこう面倒
147 :
2016/11/13(日) 14:25:24.31 ID:Wy5L1qQW
EnableMenuItem
https://msdn.microsoft.com/ja-jp/library/cc410786.aspx

>MF_DISABLED メニュー項目を無効化します。淡色表示にはしませんが、そのメニュー項目は使用不可能であり、選択できません。
>MF_GRAYED メニュー項目を淡色表示にします。そのメニュー項目は使用不可能であり、選択できません。

となっており、MF_DISABLEDはグレー表示されないように書かれていますが、
Win7で使ってみたところ、グレー表示され、MF_GRAYEDとまったく同じになりました。

MSDNが更新されていないだけで、MF_DISABLEDとMF_GRAYEDは同一挙動になったのでしょうか?
それとも、何か微妙に違いがあったりするのでしょうか?
148 :
2016/11/13(日) 19:35:16.34 ID:wHFHc9ra
>>146
俺はGetWindowRectがまともに動かない時点でスケーリング対応は諦めたわ。なんなのこのクソOS
149 :
2016/11/13(日) 20:07:24.28 ID:dhGoOq8f
>>148
adjustするのが定石
150 :
2016/11/13(日) 22:00:12.35 ID:Wy5L1qQW
TrackPopupMenu()でポップアップメニューを表示できますが、
ポップアップメニューが表示されたことを検知できるウィンドウメッセージ等はないのでしょうか?

また、ポップアップメニュー以外のところをクリックするとポップアップメニューが非表示になりますが、
これも同様に、どのように検知すればよいでしょうか?
151 :
2016/11/13(日) 22:35:31.57 ID:Wy5L1qQW
ポップアップメニューが表示されようとしたときはWM_INITMENUPOPUPが送られてくることが分かりました。
152 :
2016/11/13(日) 23:32:34.76 ID:+F2H1InO
非表示はWM_UNINITMENUPOPUP

MF_DISABLEDとMF_GRAYEDが違ったのはWindows3.1とかの時代で今は同じ
153 :
2016/11/13(日) 23:57:21.61 ID:Wy5L1qQW
>>152
ありがとうございました!
助かりました!
154 :
デフォルトの名無しさん
2016/11/14(月) 17:38:20.71 ID:lPYI51le
リストビューを一番下までスクロールさせるプログラムは?
155 :
2016/11/14(月) 17:39:51.88 ID:L1+AAJlg
>>154
WM_VSCROLL
156 :
2016/11/14(月) 17:51:37.15 ID:LtnXkA90
メッセージおくれ
157 :
2016/11/14(月) 18:02:49.89 ID:NhpFtVry
ListView_EnsureVisible()マクロないしは
ListView_Scroll()マクロ
158 :
2016/11/14(月) 19:38:32.87 ID:lPYI51le
>>156-157
サンクス!
159 :
デフォルトの名無しさん
2016/11/18(金) 03:17:57.05 ID:OSOzrvg7
> MF_DISABLEDとMF_GRAYEDが違ったのはWindows3.1とかの時代で今は同じ
xpはどちら?
160 :
2016/11/18(金) 03:36:41.14 ID:AM2vlSzW
えっ?
161 :
2016/11/18(金) 03:58:35.98 ID:2yb3wpBY
>>156
つ メッセージ
162 :
2016/11/18(金) 07:05:51.48 ID:8X6DMoza
Win3.1(Win16) ならスレ違いだろw
163 :
2016/11/18(金) 11:11:21.47 ID:GZ4BhfWs
Win32sかもしれない
164 :
デフォルトの名無しさん
2016/11/18(金) 15:45:40.16 ID:sN4pSlll
WS_EX_TOOLWINDOWに関して質問です。

タイトルバーに関してです。
普通のタイトルバーより小さいタイトルバーを持つ旨説明がありますが、
小さくなりません。
通常のスタイルも色々試しましたが、通常のタイトルバーと変わりません。
変える方法を教えてください。
165 :
2016/11/18(金) 16:01:28.45 ID:AM2vlSzW
win8辺りからタイトルバーが小さくならなくなったべ。
理由は知らんけど、エアログラス廃止→モダンUIの流れの一環で何か変わったのかもね。
166 :
デフォルトの名無しさん
2016/11/19(土) 12:52:23.68 ID:LZczXE+c
> MF_DISABLEDとMF_GRAYEDが違ったのはWindows3.1とかの時代で今は同じ
7で非エアロ + 視覚効果を無効にした場合はどちらになりますか
167 :
2016/11/19(土) 22:31:46.85 ID:m8v4iLe9
>>165
なるほど、そういうことだったんですか。
ありがとうございます。
168 :
2016/11/20(日) 10:34:28.02 ID:rUGeTkRI
Windows3.1 って 標準で1画面に16色しか使えなかった時代の名残だから忘れていい
169 :
2016/11/20(日) 10:50:09.74 ID:pCJ1qvOZ
3.1のときには256や6万色普通にあったろ
170 :
2016/11/20(日) 12:16:32.29 ID:KiQiujJB
16bit と間違ったんじゃね
171 :
2016/11/20(日) 12:20:21.09 ID:IiH4Q+hE
PC-9801の話だと思った。
172 :
2016/11/20(日) 16:35:07.06 ID:HG1JDYXN
PCG
173 :
2016/11/21(月) 11:15:47.37 ID:RFCc0VFb
ビデオカード次第だったよな
174 :
2016/11/21(月) 12:21:40.28 ID:gVIfBZaZ
PSG
175 :
デフォルトの名無しさん
2016/11/22(火) 15:36:11.99 ID:qW+6ZAFd
sscanf(buffer, "%4s", &data)の4の部分に変数を使いたい場合ってどうしたらいいんでしょう?
176 :
2016/11/22(火) 15:42:16.93 ID:eab8TQx6
"%4s"をsprintfで作る
177 :
2016/11/22(火) 15:44:33.07 ID:iRpYF31I
"%*s"
178 :
2016/11/22(火) 15:45:01.21 ID:RWgWe0KR
>>175
int space = 4;
sscanf(buffer, "%*s", space, "t")
179 :
2016/11/22(火) 15:47:04.45 ID:RWgWe0KR
>>175
"t"は編集ミスだから気にしないで
*の所にspaceの値が指定される
180 :
2016/11/22(火) 18:37:11.83 ID:mC9XTyoU
ウンコしてくる
181 :
2016/11/27(日) 05:47:03.44 ID:9mn0D+RY
windows8.1 環境下、imm にて ImmSetCompositionString で漢字変換したい文字列を設定し、
ImmNotifyIME で CPS_CONVERT、NI_OPENCANDIDATE を投げて
変換候補リストを表示したいのですが、MS-IME 系では問題なく使えていますが、
GoogleIME では変換候補リストが表示されません。

変換したい文字列が入力された状態にはなっていますが、変換候補リストが表示されない
だけでなく、キーボードで変換キーを押しても変換自体ができません。
(GoogleIME ではキー入力でただちに予測変換一覧が表示される仕組みだからか?)

これを実現するには、imm ではなく tsf に移行するしかないのでしょうか?

imm を使わず keybd_event でキー入力をエミュレートすればある程度実現できたのですが、
(文字入力→変換キー→変換候補一覧表示)
変換候補一覧を表示するための変換キーを押す回数が、MS-IME と GoogleIME では異なる
のが困ります。

ImmGetDescription で動作を切り分けることも考えましたが、そもそも ImmGetDescription が
廃止されてしまってこの手が使えません。
182 :
2016/11/27(日) 16:59:16.60 ID:CC34oqbC
Watashi no Namae wa Nakano desu
183 :
2016/11/27(日) 19:36:59.90 ID:iFUA1Ofz
Watashi ni Namae wa Nakattano desu
184 :
デフォルトの名無しさん
2016/11/28(月) 15:21:52.39 ID:msYXnjQ5
情報通信業の残業やばす
https://www.youtube.com/watch?v=TnZEDQchkJk
185 :
デフォルトの名無しさん
2016/11/29(火) 12:19:49.33 ID:ITJWJL4i
分かる方、教えて下さい。

プログラムの処理時間を計っているのですが、
GetThreadTimes()で取得した時間をもとに計算した処理時間(CPU時間)が
timeGetTime()で取得した時間をもとに計算した処理時間(実時間)より長くなりました。
スレッドが複数のコアを同時に使うことはないので
こういうことは起こらないはずだと思うのですが、
どういう場合に起こるのでしょうか。

なお、1/16秒くらいの精度しかないことは、認識しています。
その上でループを何度も回して十分な時間動作させた上で、
前者が後者の2倍くらいになってしまうのです。
186 :
2016/11/29(火) 12:57:55.07 ID:NaRikWXT
GetThreadTimesで計算したのは処理時間でなくスレッド生成オーバーヘッドとかも含んでるからとか?
187 :
185
2016/11/29(火) 13:40:47.29 ID:ITJWJL4i
>>186
そうでもないです。
スレッド生成終了は含まない部分を計っています。
チェックポイントで各関数で時刻を取り、差を計算して、
チェックポイント間にかかった時間を出しています。

>>185
1/16は1/64の誤りです。
188 :
2016/11/29(火) 13:46:46.72 ID:W5POPsuB
>>185
思いつくのはこのあたり
・単位は合っているか。GetThreadTimes()は100ナノ秒単位、timeGetTime()は1ミリ秒単位
・GetThreadTimes()の計算方法は、作成時刻から終了時刻までの差なのか、カーネル・ユーザモードの実行時間の合計なのか
・timeGetTime()はいつどのタイミング、またどの場所で呼び出しているのか
・timeGetTime()が計測スレッド内部で実行されているなら
GetThreadTimes()の“作成時刻”からtimeGetTime()が実行されるまでの時間が含まれていない
・timeGetTime()が計測スレッド内部で実行されているなら
終了時のtimeGetTime()の呼び出しからGetThreadTimes()の“終了時刻”までの時間が含まれていない
・カーネル・ユーザモードの合計なら他のスレッドの“実行時間”が含まれていない
189 :
2016/11/29(火) 14:01:14.55 ID:W5POPsuB
>>187
GetThreadTimes()がtimeGetTime()の2倍なんでしょ?
ただ2倍と言っても1ミリ秒が2ミリ秒になったってのと1分が2分になったというのではかなり違う
平均して何ミリ秒が何ミリ秒になったの?

timeGetTime() チェックポイントA
スレッド作成  ポイントα
timeGetTime() チェックポイントB
いろいろ実行
timeGetTime() チェックポイントC
スレッド終了  ポイントβ
timeGetTime() チェックポイントD

GetThreadTimes()はαやβの時刻であって、timeGetTime()でA〜Dのいずれかで計測しても誤差は生じる。
「スレッドが複数のコアを〜」からすると計測スレッドでチェックポイントを設けているように見受けられるので
B、C間とするとαからBまでの差が含まれていないと思うけど。
ポイントαの時刻って言うのも「スレッドの作成を開始した時刻」なのか「スレッドの作成が完了した時刻」なのかでも誤差は生じる。
190 :
185
2016/11/29(火) 14:28:28.52 ID:ITJWJL4i
>>188
・timeGetTime()とGetThreadTimes()の単位の違いは認識しています。
・GetThreadTimes()による時間の計り方ですが、
 CreationTimeとExitTimeは一切使用せず、
 KernelTimeとUserTimeだけを使用して、チェックポイント間の差を取り、
 ユーザーモード時間とカーネルモード時間を個別に出しています。
・スレッドの開始及び終了は、チェックポイント間に入っていません。
 >>189のイメージでいう所のBとCの間のいろいろ実行の部分だけを計っている感じです。

>>189
・今動かしてみたら、
 500回ほど回して平均を取った上での数字として、
 B-C間の測定結果が、
 timeGetTime()の場合で9msec
 カーネルモード時間が429usec
 ユーザモード時間が14037usec
 になりました。
 2倍までいってませんが、2倍くらいになることもあります。
・スレッド生成及び終了の処理部分は計っていません。
191 :
2016/11/29(火) 15:45:24.23 ID:1SK7brxW
GetThreadTimesが必ずしも正確な時間を返さない可能性もある
スレッドの切り替えは可能な限り超早業で行う必要があるので
細かな正確な時間など、二の次かもしれない

もっと長い時間のかかる処理(10秒とか)を走らせてみて
実時間とスレッド時間を比較してみては?
もしそれで上手くいくのなら、スレッド時間の精度の問題という
可能性が濃厚になる
192 :
185
2016/11/29(火) 16:21:45.88 ID:ITJWJL4i
>>191
volatile変数をひたすらインクリメントするコードを書いて、
試してみました。

 timeGetTime()で計った時間:10560msec
 カーネルモード時間:280801usec
 ユーザモード時間:10296066usec

4個のコアを食いつぶさせるために5個同時に動かすと、

 timeGetTime()で計った時間:12sec〜18sec
 カーネルモード時間:343msec〜608msec
 ユーザモード時間:11902msec〜12729msec

1プロセスから2スレッド起動するのもやってみましたが、

 timeGetTime()で計った時間:11869msec
 スレッド1
  カーネルモード時間:312msec
  ユーザモード時間:11403msec
 スレッド2
  カーネルモード時間:390msec
  ユーザモード時間:11528msec
 プロセス
  カーネルモード時間:1092msec
  ユーザモード時間:22776msec

ほぼ期待通り(本来あるべき)の結果となりました。
193 :
2016/11/29(火) 16:46:40.42 ID:1SK7brxW
もう一つの可能性として
timeGetTimeの方の精度があまりよくない可能性もある
>Windows NT:timeGetTime 関数の既定の精度は、マシンによっては 5 ミリ秒以上になる場合があります。
とMSDNにも書いてあるしな
君が最初に測ろうとしていた処理の時間は
>timeGetTime()の場合で9msec
であるから、timeGetTime の「デフォルト」の精度の「5ミリ秒以上になる」は無視できない誤差だね
194 :
185
2016/11/29(火) 17:48:25.90 ID:ITJWJL4i
>>193
十msec規模の誤差がありうることや、
9msecに対して5msecが無視できないことは理解します。
ただ、>>190に書いた9msecは
500回動かして平均を取っ(て整数にまるめ)た数字です。
誤差が毎回毎回プラスあるいはマイナスに偏って出るとは考えにくいので、
スレッドのCPU時間が実時間の1.5〜2倍になることについては、
誤差以外の原因があるのではないかとかんぐっています。
195 :
2016/11/29(火) 18:02:52.57 ID:kNMZE4WL
>>194
> 誤差が毎回毎回プラスあるいはマイナスに偏って出るとは考えにくいので

誤差が均等にバラつくなんていう保証はないだろ
196 :
2016/11/29(火) 18:14:13.77 ID:NaRikWXT
時間取得のオーバーヘッドじゃないか?

>>195
誤差の定義てか確率論の考え方を真っ向から否定してるなww
197 :
2016/11/29(火) 18:40:14.32 ID:3TFqVZYr
いや、、、誤差の平均取るなら複数の環境でやらんと
同じ環境ならプラスばっかりとかマイナスばっかりとかあるべ
198 :
2016/11/29(火) 19:46:40.98 ID:w2ftYsPy
環境というか仕組み上プラスしかないとかマイナスしかないということもある
199 :
2016/11/29(火) 19:46:41.38 ID:Ofu9bBqm
どちらか言えばDDK(WDK)の領域じゃね
200 :
185
2016/11/29(火) 20:53:31.95 ID:ITJWJL4i
新たな発見がありました。

スレッドのCPU時間が実時間よりだいぶ長くなるコードの時間測定ですが、
該当コードを2回実行するコードと3回実行するコードも計ってみました。
(いずれも500回平均です。)

1回
timeGetTime()による時間:7msec
カーネルモード時間:1060usec
ユーザモード時間:13540usec

2回
timeGetTime()による時間:14msec
カーネルモード時間:2246usec
ユーザモード時間:13291usec

3回
timeGetTime()による時間:21msec
カーネルモード時間:2527usec
ユーザモード時間:19468usec

このデータから、
timeGetTime()はかなり正確であり、
GetThreadTimes()が真値より随分大きな値を返していることが強く疑われます。

クロックの誤差は、通常は、クロック更新粒度に起因する誤差であり、
それは一様な分布であるため、平均処理で抑えられます。

しかし、明らかにプラス方向の誤差が生じており、
クロック精度とは別の何らかの原因があるはずなのですが、
現在、原因の特定に至っていません。
201 :
2016/11/30(水) 00:10:42.24 ID:V/PBKRN8
>>200
「クロック更新粒度」がいわゆるtickのことなら常に一方向に偏るはず。
timeGetTimeはtick単位の値を返すから、より正確な値を返すGetThreadTimesより
短い時間を返す、ということじゃないの?
202 :
2016/11/30(水) 00:21:37.30 ID:tnQQtKaj
いや
開始タイムが実際の時間より小さければ、測定タイムは増えるし
終了タイムが実際の時間より小さければ、測定タイムは減るので
・・・
何が言いたいのか自分でもよくわからなくなったが
同じ方向へ偏っても、end - begin で計算するから
符号は反対だから打ち消しあうといいますか
複数回測定して平均をとれば均一になるという彼の意見も一理あるかと
ただ、なぜ、timeBeginPeriod しないのかは謎だけど、いや、しているのかもしれんが
203 :
2016/11/30(水) 00:52:07.64 ID:ZP8Eu14+
単純に時間取ってくる関数とスレッドのアクセス権取ってきたりしなきゃ関数とで比べたら後者の方が時間かかるよ
1度の実行でmsec変わるなら別に原因あるだろうが
204 :
デフォルトの名無しさん
2016/11/30(水) 02:17:24.90 ID:WhaKofQb
馬鹿発見
205 :
デフォルトの名無しさん
2016/11/30(水) 03:54:14.51 ID:tfyAgmME
おいおい
話逸れすぎていて草
206 :
185
2016/11/30(水) 16:27:00.78 ID:NmhabroG
>>200の2回実行するケースについて
1回目と2回目に分けて測定しました。

すなわち、

 timeGetTime(); GetThreadTimes();
 時間測定対象コード A
 timeGetTime(); GetThreadTimes();
 時間測定対象コード B
 timeGetTime(); GetThreadTimes();

とし、500回の平均で計測しました。
AとBは全く同じコードです。

下記結果となりました。


timeGetTime()による時間:8msec
カーネルモード時間:343usec
ユーザモード時間:14664usec

timeGetTime()による時間:7msec
カーネルモード時間:93usec
ユーザモード時間:904usec

スレッドCPU時間において、
AがBより圧倒的に長くなりました。
なぜこのようなことが起こるのか分かりません。
どのような可能性があるでしょうか。

なお、>>200で触れましたが、
timeGetTime()は比較的正確です。
207 :
2016/11/30(水) 18:01:03.98 ID:3E8a/W4X
まあ当然の結果だな
208 :
185
2016/11/30(水) 18:01:22.28 ID:NmhabroG
ああ、もう時間がない。
今日までにCPU時間測定結果を報告しないといけないので。
GetThreadTimes()は信用できないという前提のもと、
timeGetTime()の結果も参考に、
推測されるおおよそのCPU時間ってことで報告するしかなさそうです。

皆さんありがとうございました。
209 :
185
2016/11/30(水) 18:02:13.44 ID:NmhabroG
>>207
おっと!
なぜ当然の結果なのですか。
教えて下さい。
210 :
2016/11/30(水) 18:03:45.74 ID:3E8a/W4X
ゲームスレで聞いてみ
211 :
185
2016/11/30(水) 18:15:54.33 ID:NmhabroG
>>210
そうですか。教えてくれないなら結構です。
212 :
185
2016/11/30(水) 19:24:20.97 ID:NmhabroG
>>200に示したように、1回だけ実行すると、
実時間7msec、スレッドCPU時間14msecという不整合が起きます。

ところが10回実行して計ると、
実時間78msec、スレッドCPU時間80msecとなります。

これでも不整合はあるものの、
実時間≒スレッドCPU時間であることから、
1回の場合でも実時間≒スレッドCPU時間であることが想定される。
また実時間の方がより信頼できることが分かっている。
したがって、1回実行時のスレッドCPU時間は7.8msec程度であろう。

このようなスレッドCPU時間の見積もり方で妥当でしょうか。
213 :
デフォルトの名無しさん
2016/11/30(水) 20:49:07.15 ID:5wEUj1of
>>212
GetThreadTimesの精度は15.6msなので、ある程度時間のかかる処理でないと
意味が無い。7msの処理をはかると0か15になるかのどちらか。
数百回の平均をとるのではなく1回だけ測定してみると意味ないのがわかる。
214 :
デフォルトの名無しさん
2016/11/30(水) 20:49:57.04 ID:o1dhiyLy
.
.
■■人間性に批判殺到 あの悪質パクツイ垢 @copy__writing の管理人は東京都三鷹市の莉里子■■
http://i.imgur.com/5qAgsHG.png
http://i.imgur.com/kldi84l.png
http://i.imgur.com/8vCymiC.jpg


■今までのプライベート垢
@riricoco0
@bibliophilia333
@muzimuzi333
@nekomatagensou
@hanasoraumimori
@mirainosekai3
@zibanyan666
@parlorchild
@liliririko
@EriotN
@mike_peko
@riricoco0
@ririko_neko
@nyanpas ※1
@telegraphyneko


@riricatputi (新アカ)  http://imgur.com/a/X1vQA


100垢以上作ってるキチガイ出会い厨 (粘着やめろ詐欺師!はやく捕まれホラ吹きネットストーカー犯罪者!!)
215 :
185
2016/11/30(水) 22:05:18.43 ID:b9TNuS14
>>212の方法でスレッドCPU時間を見積もって報告し、帰宅しました。
ID変わります。

>>213
クロック更新粒度に基づく精度のことは認識しています(>>185>>187)。
500回の平均を取ることでその問題を回避し、
その上で>>200>>206の結果になります。

>>206のデータは、
1回目で実時間を大きく上回るCPU時間が記録されており、
2回目で殆どCPU時間が経過していないことを表しています。
GetThreadTimes()で取得したクロックは、どうしてこのようになってしまうのか。
それが分からないんです。

どういう場合にこうなり得るのか、御存知の方は教えて下さい。
216 :
デフォルトの名無しさん
2016/11/30(水) 23:20:53.03 ID:EvMIugyq
1回目はいろいろオーバーヘッドあるよね
217 :
185
2016/11/30(水) 23:52:18.25 ID:b9TNuS14
>>216
ですと、実時間を超えるCPU時間になり得ると?
プロセスCPU時間ではなくスレッドCPU時間で。
同じ処理なのに2回目が1回目の6%のCPU時間で妥当だと?

メモリアクセスのキャッシュヒット率に違いがあるとか
そういうことであれば分かります。
でも、CPU時間ですよ。
CPU時間で圧倒的に2回目が有利でしょうか?
だとしても、
実時間の2倍近いスレッドCPU時間って何なのでしょうか?

不思議だらけで、困惑しております。
218 :
2016/11/30(水) 23:54:22.80 ID:R/TXkRDp
>>217
先ずその測定方法では誤差が偏り問題を回避できなかったという事実を認めろ
500回繰り替えして全体の時間を500で割るなら誤差を縮小出来るが
一回分の時間を積み上げたところで誤差も同じように積み上がったということだろ

一回分の時間を積算して精度の問題を解消するには測定開始時刻が
tick周期に対して完全に自由でなければならないのでは?
どんな測定方法をしたのか分からないけどプログラムの起動やスレッド生成や
スケジューリングのスイッチなどがtickと相関関係にあれば破綻する方法だったんだろ
219 :
デフォルトの名無しさん
2016/11/30(水) 23:55:15.34 ID:nOqMl3Nb
>>215
GetThreadTimesが切り捨てなのか切り上げなのか、平均をとればうまい具合になるのか
あなたの環境で要確認。
206-Aは精度的にあり得るが、Bは異様に少なすぎるので、測定ミスを疑われるレベルですね。
コードを見ないとなんとも言えないですが、対象部分を適当な計算をするループに
変えても起こるんでしょうか?
220 :
2016/12/01(木) 00:37:40.42 ID:cvCPUZP4
みんな憶測で偉そうに話すしかできないんだから、再現コード上げたらいいだけやん
221 :
デフォルトの名無しさん
2016/12/01(木) 00:49:48.35 ID:O5qZU2qd
GetThreadTimes,つまりスレッドを作っているんだろ
1回目と2回目以降で違って当然じゃねぇ?
222 :
デフォルトの名無しさん
2016/12/01(木) 00:54:41.76 ID:O5qZU2qd
クロックカウンタ使えよ
223 :
2016/12/01(木) 02:56:36.59 ID:wMlr02vN
CPUがいくら速くても切り替えは60Hzくらい
224 :
デフォルトの名無しさん
2016/12/01(木) 04:56:48.70 ID:O5qZU2qd
スタック生成だけ考えても1回目と2回目以降で違ってくると思う
225 :
185
2016/12/01(木) 11:21:31.25 ID:SFr2s2fw
>>218
第一段落はやり方が悪いというご批判だと思いますが、
ティックが粗いことによる誤差は平均で軽減しました。
その上で誤差が起こっています。
ティックが粗いこと以外の理由で誤差が起こっています。
その理由を知りたく、知恵を拝借したいのです。
間違っていないと思います。

第二段落第一文は、おっしゃる通りです。
第二段落第二文は、思いつきのご発言でしょうか、
それとも知識や経験に基づく助言でしょうか。
後者であれば、もうちょっと詳しくお願いします。
>>206のようなコードで起こりうるでしょうか。
226 :
185
2016/12/01(木) 11:39:04.09 ID:SFr2s2fw
>>220
職業プログラマなので実際のコードを公開することはできませんが、大よそ以下のようなものです。
========ここから========
tRealA=0;
tRealB=0;
tUserA=0;
tUserB=0;
for (int i=0; i<500; ++i){
いろいろ
tReal1=timeGetTime();
GetThreadTimes(...,&tUser1);
func(...); //A
tReal2=timeGetTime();
GetThreadTimes(...,&tUser2);
func(...); //B
tReal3=timeGetTime();
GetThreadTimes(...,&tUser3);
いろいろ
tRealA += tReal2-tReal1;
tRealB += tReal3-tReal2;
tUserA += tUser2-tUser1;
tUserB += tUser3-tUser2;
}
tRealA/=500;
tRealB/=500;
tUserA/=500;
tUserB/=500;
========ここまで========
>>219
func()がvolatile intをひたすらインクリメントするコードの場合は、期待通りの結果>>192がでます。しかし、func()を目的のコード(他者製ライブラリの関数)にすると、不自然な結果>>206になります。
>>216>>224
AとBで何がそんなに変わるでしょうか。
227 :
2016/12/01(木) 11:55:52.25 ID:lOA8D/0g
最適化切ったら
228 :
デフォルトの名無しさん
2016/12/01(木) 12:02:28.97 ID:5zfWITAP
木屋さん元気かな
事故ったのは知ってるけど
どのくらいご回復されたかな
229 :
2016/12/01(木) 12:14:25.23 ID:i7gsdi/t
>>225
> 第二段落第一文は、おっしゃる通りです。
> 第二段落第二文は、思いつきのご発言でしょうか、

思いつきと言われればその通りだが、確からしい事(あなたの測定結果)
から推測された事(第二段落第一文の条件が満たされていない)です


>>226
> func()がvolatile intをひたすらインクリメントするコードの場合は、期待通りの結果>>192がでます。しかし、func()を目的のコード(他者製ライブラリの関数)にすると、不自然な結果>>206になります。

それはfunc()の一回の時間が桁違いだから誤差に埋もれるか埋もれないかが変わっただけだろ
230 :
185
2016/12/01(木) 13:04:50.94 ID:SFr2s2fw
>>227
コンパイラの最適化のことですよね。
コンパイラの最適化を無効にして、やってみました。

A
timeGetTime()による時間:7msec
カーネルモード時間:499usec
ユーザモード時間:14882usec

B
timeGetTime()による時間:7msec
カーネルモード時間:31usec
ユーザモード時間:124usec

同じ傾向になりました。
231 :
デフォルトの名無しさん
2016/12/01(木) 13:30:33.53 ID:O5qZU2qd
>>226
> >>216>>224
> AとBで何がそんなに変わるでしょうか。

スタックは初期化されてアプリに引き渡すだろ
スタックの中で使われずに解放されたページは論理アドレスでは解放状態でも
OSがリザーブしておけば新たなスレッド生成で使い回しできるじゃないかな

他にもスタック以外でページの最初に書き込み時点でページをコピーするとかあるよね
232 :
デフォルトの名無しさん
2016/12/01(木) 13:34:44.58 ID:RgG4Eqmg
>>226
いろいろ のところでライブラリの初期化とかやってない?
1回目はデータ構築処理があるのでCPUタイムを食うが、2回目は不要なのでCPUタイムを食わないとか。
で、DBとかサーバーへの問い合わせがあるので、7msくらいはかかってしまうなんてことは無いのか。

あるいは、2回目はfuncの中で別スレッドを起動して計算しているので、元スレッドのCPUタイムは食わないとか。

A B だけでなく A B C D と4回くらいやっても同じ傾向か、平均でなくすべてのタイムを見て
極端にばらつく値がないか調べるとかも必要では?
233 :
2016/12/01(木) 22:49:24.47 ID:/t7qmsTu
>>226
後だし感すごいな。
他者製ライブラリとやらの中身も分からず議論になるかってーの。
234 :
2016/12/02(金) 08:27:00.87 ID:GvPbDV6s
どこがWin32APIの話なんだよ、ってことになるよなあ。
長々と議論に付き合ってた方々、お疲れ様。
235 :
2016/12/02(金) 09:07:26.76 ID:0vMtCyDD
粒度の平均化してるとか言って全く出来てないし
精度の悪い数字を正しいと断定してるし
しかも間違ってる
何度も指摘してるのに正そうとしない
全部ダメでしょ。
236 :
2016/12/02(金) 09:21:55.13 ID:+ocxhyeH
>>211みたいな事言ってるからお察し
237 :
185
2016/12/02(金) 10:43:58.72 ID:H1x5ETqP
報告書は突っ返されたので、まだまだ続きそうです。

まず、大大大前提を確認したいのですが、
GetThreadTimes()で取得するCPU時間は
スレッドがCPUをとっている時間で、
一つのスレッドが同時に複数のコアを占有することはないので、
(精度云々ではなく定義上は)スレッドのCPU時間は実時間以下である(以下のペースで進む)。

これは、大前提としてあってますよね?
238 :
2016/12/02(金) 10:47:04.34 ID:rEQGNTwO
なんだ学校の課題だったのか
239 :
2016/12/02(金) 11:24:10.48 ID:EDk65fqO
質問者より賢い人はいないのか?
これでは、質問箱が成り立たないなw
240 :
2016/12/02(金) 11:27:08.99 ID:+ocxhyeH
>>239
そうだな
じゃあ頼んだ
241 :
2016/12/02(金) 11:48:56.99 ID:2Jj/uLxs
だから再現できるサンプルをサクッと上げろよ。
だれも実物や社外ライブラリまで上げろといってないんだわ。
コーディングやデバッグ能力以外の能力が大きく欠如してるだろ。
242 :
185
2016/12/02(金) 11:58:27.27 ID:H1x5ETqP
10回やってみました。
つまり、>>226のコードでAとBだけでなく、AからJまでやってみました。

A
timeGetTime()による時間:7msec
カーネルモード時間:1092usec
ユーザモード時間:14133usec
B
timeGetTime()による時間:7msec
カーネルモード時間:249usec
ユーザモード時間:343usec
C
timeGetTime()による時間:7msec
カーネルモード時間:936usec
ユーザモード時間:9141usec
D
timeGetTime()による時間:7msec
カーネルモード時間:1372usec
ユーザモード時間:4180usec
E
timeGetTime()による時間:7msec
カーネルモード時間:561usec
ユーザモード時間:6583usec
F
timeGetTime()による時間:7msec
カーネルモード時間:717usec
ユーザモード時間:7737usec
G
timeGetTime()による時間:7msec
カーネルモード時間:468usec
ユーザモード時間:4773usec
243 :
185
2016/12/02(金) 11:58:51.26 ID:H1x5ETqP
H
timeGetTime()による時間:7msec
カーネルモード時間:655usec
ユーザモード時間:9672usec
I
timeGetTime()による時間:7msec
カーネルモード時間:218usec
ユーザモード時間:4149usec
J
timeGetTime()による時間:7msec
カーネルモード時間:405usec
ユーザモード時間:10795usec
全体(A〜J)
timeGetTime()による時間:74msec
カーネルモード時間:6645usec
ユーザモード時間:71510usec
244 :
2016/12/02(金) 12:10:39.48 ID:fHtgnGrJ
仕事が出来ないから、タダで手取り足取り協力してくれってか
245 :
185
2016/12/02(金) 13:02:57.14 ID:H1x5ETqP
本件、私としては以下の結論に至りました。

○timeGetTime()は信頼できる。
○GetThreadTime()は信用できない
 (ティック間切り上げ的な傾向あり。理由不明。)。
○timeGetTime()を基準に>>212のような方法をとるほかない。

もう一度GetThreadTime()はどうしても信用ならず、
他に有用な代替手段もないため、
>>212の方法が限界である旨を報告することにします。

何人かの真剣に助言して下さった方々、
本当にありがとうございました。
246 :
2016/12/02(金) 13:27:24.15 ID:bjzW9gj9
>>228
ドラスレの木屋さんも、timeGetTimeのこと調べてたな
247 :
デフォルトの名無しさん
2016/12/02(金) 14:04:58.11 ID:ELslSS33
timeGetTimeやめてQueryPerformanceCounterを使ったら?
248 :
2016/12/02(金) 14:15:28.80 ID:ocojT6FV
内容のアホさからして
オバケじゃないことは確実
249 :
2016/12/02(金) 14:17:49.26 ID:6Vgvdyao
あらかじめtimeBeginPeriodも呼んでおかないと精度変わる
250 :
デフォルトの名無しさん
2016/12/02(金) 14:21:54.01 ID:ELslSS33
静的領域に書き込みすると、コピーオンライトが発生し、
動的領域を確保すると、最初とおよび足りない時はOSで確保と初期化があると思う
それが1回目が遅い理由な気がする
251 :
2016/12/02(金) 14:30:05.73 ID:LG3SGwVv
質問者はアレだが
それはそうと、どうでも良いことをいうのはやめたほうが良いだろう
実時間とスレッド時間が食い違うって話だから
1回目が遅いとかそういう話ではない
252 :
デフォルトの名無しさん
2016/12/02(金) 17:49:56.46 ID:EDk65fqO
結局>>237すら教えてあげなかったんだな。
253 :
2016/12/02(金) 18:15:57.54 ID:2Jj/uLxs
質問者のアプローチや解釈が正しいのかが分からないのに、憶測で質問者回答者とも上から目線で
やりあってる状況にまず疑問を抱いた方がいい。
そしてそれら以下の書き込みしかできないID:EDk65fqOはクソ中のクソだと認識した方がいい。
254 :
2016/12/02(金) 22:19:54.42 ID:rH7Be8WN
最初からGetThreadTimesは約1/64秒の精度しか無いって分かっていたはずなのにね。
平均とっても意味がないってことが改めて分かったことだけが成果か。
255 :
2016/12/02(金) 23:51:36.19 ID:DveiiCO5
>>247とか>>249とか、全然関係ないことじゃん。
256 :
2016/12/03(土) 10:51:33.05 ID:YdYTZThj
OSがどうやってカーネルモードやユーザーモードの時間を計測しているのか想像できないのかねえ
オーバーヘッドが高いやり方は採用できないと分かりそうなもんだが
257 :
2016/12/03(土) 11:08:29.93 ID:JHScEEfz
触発されてGetThreadTimes=NtQueryInformationThread調べたんだけど”スレッド”の中身が興味深かった
質問者糞だから詳細は書かないがw
258 :
2016/12/03(土) 20:00:37.46 ID:6jC0i+kE
俺もほんとはGetThreadTimesの特性知ってるけど、
質問者が土下座しないと教えてやらねぇw
259 :
2016/12/03(土) 20:35:28.76 ID:xp0AwakX
GO
260 :
2016/12/03(土) 20:36:25.77 ID:xp0AwakX
the old new thing
261 :
2016/12/04(日) 11:31:12.68 ID:8oIVw/6i
Windows10ってCOMポート番号は最大何番までなんでしょうか?
262 :
2016/12/04(日) 11:37:47.55 ID:NE4G8kum
com1〜com256まで
263 :
2016/12/04(日) 12:08:20.93 ID:HYzaL+1F
昔、レジストリから認識してるポート名を取得するサンプルあったな。
MSDNだったかな
264 :
2016/12/04(日) 12:22:02.41 ID:SxgHpTya
select欲しい
265 :
2016/12/04(日) 16:50:15.73 ID:8oIVw/6i
>>262
>>263
ありがとうございました!
266 :
デフォルトの名無しさん
2016/12/09(金) 00:46:48.41 ID:WzSsU1Dc
WM_CHARでWPARAMに入ってくるコード一覧どっかない?
普通のキーならそのままだが、Back SpaceとかCtrl+Vとかのコードが知りたい。
267 :
2016/12/09(金) 01:04:26.73 ID:IirsZJ4E
>>266
キーが押されてるかどうかの確認は、WM_KEYDOWNを使う。
「仮想キーコード一覧」で検索。
ただし、Ctrl,Shift,Altはmodifiersと呼ばれ、特別扱い。CtrlとShiftは
GetKeyState(VK_SHIFT) < 0
GetKeyState(VK_CONTROL) < 0
で確認でき、AltはWM_NCKEYDOWNで確認できる。
268 :
2016/12/09(金) 01:07:15.74 ID:IirsZJ4E
訂正。
× AltはWM_NCKEYDOWNで確認できる。
○ AltはWM_SYSKEYDOWNで確認できる。
269 :
2016/12/12(月) 20:09:14.26 ID:UWkfYPy/
プログラム実行中のログテキストをエディットコントロールに出力しようと思ったのですが、
32KB制限があり実用できないことが分かりました。

リッチエディットではそのような制限はないようなので、
特に問題なければこれでいこうかと考えているのですが、
他に良い方法があればご教示ください。
270 :
2016/12/12(月) 20:14:54.27 ID:cpVlzpwx
>>269
つ AllocConsole
271 :
2016/12/12(月) 20:17:01.65 ID:dREO/TsY
EM_SETLIMITTEXT
272 :
2016/12/12(月) 20:41:35.46 ID:UWkfYPy/
>>270
ありがとうございます。
今回は検索機能とかも付けたいので、エディット系コントロールを利用することにします。

>>271
ありがとうございます。
これで通常のエディットコントロールで32KB以上を扱えます。
助かりました!
273 :
2016/12/13(火) 09:08:32.63 ID:GC6m09wL
>>272
検索が必要ならリッチエディット
274 :
2016/12/13(火) 21:50:24.46 ID:EhPW3kvE
>>273
リッチエディットで実装を進めていて、あとは検索機能だけ、というところまで作れたんですが、
まさかリッチエディット自体に検索機能があったとは・・・!
ここでお聞きしてよかったです。
ありがとうございました!
275 :
デフォルトの名無しさん
2016/12/19(月) 05:43:50.59 ID:qsdLnaaR
paint.netのツールウィンドウみたいなやつってどうやって表示するの?
ウィンドウスタイルを色々試してみたけどあれと同じようなウィンドウが出ない。
276 :
2016/12/19(月) 07:17:38.33 ID:jpBVYjvn
拡張ウィンドウスタイル使え。
277 :
2016/12/19(月) 23:46:04.62 ID:qsdLnaaR
>>276
ありがとう。
拡張スタイル使ってもやっぱり無理だ。
思い通りに動かない。
数年前からずっと謎なんだよなこれ。
動作上問題が少ないから我慢してたんだけども。

それっぽいウインドウは出るものの、paint.netのように全ウインドウがアクティブ状態にならない。
【参考画像】http://news.softpedia.com/images/extra/WINDOWS3/large/paint.net/paint.net%20interface.jpg
paint.netを実際に使ってるとよく分かるんだが、
参考画像のようにメインのウインドウもツール用のウインドウも常にアクティブな状態が維持される。
しかし、拡張スタイルでWS_EX_TOOLWINDOWを指定してもアクティブなウインドウは常に1つ。
メインのウインドウをクリックすればツール用ウインドウは非アクティブになり、
ツール用ウインドウをクリックすればメインウインドウは非アクティブになる。
非常に気持ちが悪い。
確かにWS_EX_TOOLWINDOWを利用すればメインウインドウより常に前面になり、
タスクバーにも表示されず、非常にpaint.netのツールウインドウと似たような挙動になるが、
このアクティブ/非アクティブに関しては挙動が全く違う。
ちなみにアクティブ/非アクティブの判断はタイトルバーの色で判断している。
さらに参考画像のツールウインドウのような右上の正方形の閉じるボタンの表示のさせかたも分からない。

・・・と思ったら出てきたわ。
http://www.catch22.net/tuts/docking-toolbars-part-1

やっと出てきた。
WS_EX_TOOLWINDOWで検索してもノイズが多くてなかなか出てこなかった。
(ノイズ = MSDNのウインドウスタイルの一覧をコピペしただけのゴミサイト)
ノイズゴミサイトマジで迷惑。
嫌がらせでしかない。
278 :
2016/12/19(月) 23:50:28.70 ID:qsdLnaaR
結局今回のカギはGoogle画像検索。
ふと「サンプル載せてるサイトの半数くらいはスクショも載せてるのではないか」と思い、
例の拡張スタイルで画像検索。
俺がやりたいのと同じ状況になってる画像を見つけて開いたらビンゴ。
画像検索なんて今まで思いもよらなかったよ。
文字検索するとノイズゴミサイトばかり出てきてどうにもならなかった。
279 :
2016/12/19(月) 23:52:55.75 ID:qsdLnaaR
MSDNのコピペサイト作ってるゴミ共は早く死ねばいいのにな。
役に立たないどころか大迷惑。
最近流行りの質の低いキュレーションサイト()と同レベル。
280 :
2016/12/20(火) 00:02:24.24 ID:tFkwVopE
>>275の意味がまったくわからなkったわww
281 :
2016/12/20(火) 06:12:08.47 ID:ADGhogoA
google personal blocklistでかたっぱしからブロックしてる
xxxユーザー会もノイズ源だね
282 :
2016/12/20(火) 09:20:12.73 ID:F0IdvAwo
顔写真ブロックは必須
おまえらキモ面なのに何故あんな目立つ場所に配置すんだ
283 :
デフォルトの名無しさん
2016/12/20(火) 12:55:43.49 ID:lAXr92yw
>>278
おめ
興奮は伝わったが
もちつけ
284 :
デフォルトの名無しさん
2016/12/20(火) 13:00:10.44 ID:lAXr92yw
>>279
はてぶのことですねわかります
285 :
2016/12/20(火) 16:58:42.80 ID:WXAyO/1W
>>277
そういうときはいっそそのソフト解析したら?
Paint.NETなら簡単に逆コンパイルできるし、Spy++とか使うだけでもある程度わかる
286 :
2016/12/20(火) 17:33:10.55 ID:Sq2CbWR0
OSSのソフトを逆コンパイルするの?
287 :
2016/12/20(火) 17:44:58.45 ID:F0IdvAwo
今はちがうだろ
288 :
2016/12/20(火) 18:45:47.25 ID:lAXr92yw
新手のアフィか
289 :
2016/12/20(火) 19:12:59.79 ID:F0IdvAwo
アフィだったのかよ。新手すぎてアフィの影すら俺には見えん
290 :
デフォルトの名無しさん
2016/12/20(火) 22:05:37.09 ID:JPbALvOm
MSDNのコピペサイト全般のことだろう>アフィ
291 :
2016/12/21(水) 01:04:08.51 ID:HCdO29Rc
質問
writefile関数を使用してint型で、データ保存ができません。同じ悩み持ったことある人いらっしゃいませんか。
292 :
2016/12/21(水) 01:09:18.76 ID:GvkBvmPc
int Data = 123456;;
DWORD writeLen;
WriteFile(hFile,&Data,sizeof(Data),&writeLen,NULL);

こういうことだろ?
293 :
2016/12/21(水) 01:10:40.03 ID:kLgQ2k1v
変数のアドレスをwritefileにわたさないとだめ。数値そのままわたしてるんでしょ
294 :
2016/12/21(水) 21:06:02.77 ID:HCdO29Rc
>>292
>>293

ありがとうございます。引数としてアドレスを渡さないといけないのですね。試してみます!
295 :
2016/12/22(木) 08:34:56.43 ID:tk15BRot
msdn 関数名
でググる癖をつけよう
296 :
デフォルトの名無しさん
2016/12/22(木) 12:50:31.88 ID:y+mdv7YD
-jp もお忘れなく
297 :
2016/12/22(木) 13:04:48.47 ID:hYDEOt1H
どうしてこういう訳そのままずっと放置してんだろうな

> 関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
> If the function fails, the return value is zero. To get extended error information, call GetLastError.
298 :
デフォルトの名無しさん
2016/12/22(木) 18:24:16.26 ID:zHNnrJEM
>>296
なんで付けるの?
誤訳トラップにハマりたいの?

俺は誤訳トラップどころか英語版と日本語版で引数違うトラップにハマったことがあるけども。
日本語版を穴が空くほど見て確認したけど何日経ってもコンパイルが通らず、
何の気なしに英語版開いたら引数の数が違って、
英語版見ながら修正したら一発でコンパイル通ったわ。
299 :
2016/12/22(木) 18:39:46.34 ID:hYDEOt1H
>>298
+jp じゃなくて -jp
300 :
2016/12/22(木) 18:47:30.93 ID:YVr1LIe6
>>298
今時どんな開発環境使ってるんだよ w
VisualStudio なら関数名 + '(' を入力した時点でプロトタイプが表示されるだろ
301 :
デフォルトの名無しさん
2016/12/22(木) 18:55:29.30 ID:zHNnrJEM
>>299
ごめんなさいwww

>>300
その当時はVector辺りで見つけてきた適当なテキストエディタとBCCだったよ。
302 :
2016/12/22(木) 19:02:14.56 ID:tk15BRot
>>301
C言語を始めよう!
303 :
2016/12/22(木) 22:46:25.55 ID:+nnZ9oR0
レポートタイプのリストビューをクリックしたら、その行のデータに対応する内容を
別の窓に詳細表示するというような動作をしているのですが、クリック時は NM_CLICK
を処理してクリックされた行を nmLv->iItem メンバを参照して知ることができます。

オペレーションとしてはマウスだけではなくキーボード操作でリストビューの選択行を
次々と移動させることも多いので、LVN_KEYDOWN も処理して上記と同様の動作を
させたいのですが、LVN_KEYDOWN 処理時は nmLv->iItem の中身が不定です。

LVN_KEYDOWN 処理時に ListView_GetNextItem で LVNI_ALL | LVNI_SELECTED を
指定して選択行を調べると、キーボードを押して選択行を変更する前の選択行が
得られてしまいます。

この辺は、一旦メッセージループを回すなどしてから現在の選択行を得ること自体は
可能と言えば可能なのですが、ここまでしないとダメなのかという疑問があります。

LVN_KEYDOWN 処理時、もしくはキーボード操作で選択行を変更した際、簡潔に
現在の選択行を得る方法はありますでしょうか?
304 :
2016/12/22(木) 23:02:45.31 ID:hYDEOt1H
LVN_ITEMCHANGED
305 :
2016/12/23(金) 14:54:42.80 ID:qGVMhgWM
質問です。

win10 x64

windows がキャッシュしてる dns の名前解決結果の一部を書き換えることは可能ですか?
または、名前解決の最中に結果をいじるようなフックは出来ませんか?

例えば、example.com の ttl を長めに書き換える、とかです。

よろしくお願いします。
306 :
2016/12/23(金) 15:00:49.80 ID:3xdKhrkh
>>305
デバッグ特権があれば、別のプロセスのプロセスメモリーにアクセスすることも可能。
307 :
2016/12/23(金) 15:29:20.66 ID:Kb3OsEli
対象アプリ限られてくるけどAPIフックすりゃ簡単に結果改竄はできるな
キャッシュ改竄はフィルタードライバあてる面倒なのしか思いつかない
308 :
2016/12/23(金) 15:36:22.73 ID:5J5pLbD7
以下の処理を実装したく、助言をお願いします。

ダブルクリックや右クリ開くなどで、ファイルを開く際に
関連付けの有無に関わらず、そのファイルのパスを取得したい。

ShellProcあたりのフックかと考えましたが、パスをどうやって
調べるのか分かりません。

どうぞ宜しくお願いします。
309 :
2016/12/23(金) 15:54:43.63 ID:Kb3OsEli
目的次第だがShellProcは違うんじゃないか
explorer.exeに対してShellExecuteあたりのフックか?
310 :
デフォルトの名無しさん
2016/12/23(金) 15:59:09.98 ID:5tPECy1o
>>305
proxy arp
311 :
2016/12/23(金) 16:14:48.81 ID:sqLqmtwC
>>305, 306

レスありがとうございます。
DLL注入やアタッチのよるDNS改ざんは確かにできそうですね。
検討してみます。

ちなみに、プロセスは基本的には chrome です。


>>307

できればフィルタードライバの設計を、おおざっぱでもいいので教えて頂けませんか?
(ドライバのコーディングは、ほぼ経験が無く、ネットワークそのものの知識はあるものの、windows内部での扱いやAPIはまったく知識が無いです)

ちなみに、VPNによる仮想アダプタと、複数のネットワークカード(アダプタ)があるのですが、それでも対応可能でしょうか?
(直感的には、特定アダプタに対するフィルターだと、アダプタの優先度に左右されそう。アダプタ依存にはしたくないです)
312 :
2016/12/23(金) 16:17:28.56 ID:gpKoKuI/
>>304
解決しました。
どうもありがとうございました。
313 :
2016/12/23(金) 16:45:40.87 ID:Kb3OsEli
>>311
WDKサンプルのこのあたりが参考になるのかな
NDIS 6.0 Filter Driver
Windows Filtering Platform Packet Modification Sample
314 :
2016/12/24(土) 07:41:05.18 ID:AXa0yhpU
>>313
ありがとうございます。参考にさせて頂きます。
315 :
2016/12/24(土) 20:58:07.38 ID:3KzFEnUI
>>314
きっとおまえがやりたいことはchrome拡張でonbeforerequestいじれば解決する・・・
316 :
2016/12/25(日) 22:10:16.80 ID:n7UGfNqJ
iniファイルから文字列を読み込むGetPrivateProfileString()なんですが、
セミコロン以下のコメント文まで読み込んでしまいます。

コメント文は読み込まないようにできないでしょうか?
それとも自分でコメント文を削除するしかないでしょうか?
317 :
2016/12/26(月) 00:55:07.08 ID:cwwyPIk6
同一行にコメントはwindows的にアウト
318 :
2016/12/26(月) 01:06:56.36 ID:CvSBnmkv
>>317
なるほど!
ありがとうございました!
319 :
2016/12/26(月) 08:40:18.91 ID:I+2Q+LPS
コメントを勘違いしてるんじゃね?
320 :
2016/12/26(月) 21:20:51.81 ID:SUV7MStA
セミコロン付けたらコメントになるって言うけどよー
あれ実際は特別扱いなんかしてなくて、例えば
;abc=def
にしたら「;abc」って名前になるから「abc」に一致しなくなるだけじゃないかと疑ってる
321 :
2016/12/26(月) 21:34:05.02 ID:sfc5Nc1U
じゃあ「;abc」で試してみればよくね?
322 :
2016/12/26(月) 22:12:12.96 ID:ffv778mh
セミコロンは行頭にある時だけを特別扱いしているみたいだ
323 :
2016/12/29(木) 11:37:53.16 ID:E1SACFDz
使ってるエディタが.iniの同一行コメントもコメント色に変換してくれるので、誤解してしまいました。
気を付けます。
324 :
2016/12/30(金) 13:34:08.58 ID:qor2kyvR
winsockの関数フックしたいんですけどインポートアドレステーブル上の
ws2_32.dllの関数だけ取得できません。どうしたら?

ttp://up2.cache.kouploader.jp/koups19399.txt
このコードは
自身のロードしたDLLの関数名を列挙するだけのシンプルなものですが、
やはりwinsockの関数名だけ取得できないです。

ImageDirectoryEntryToData()の第3引数を
IMAGE_DIRECTORY_ENTRY_IATや
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORTに変えても取得できませんでした(そもそも関数がnull返してくる
325 :
2016/12/30(金) 13:46:15.25 ID:ymKNG2iV
WSAStartupは成功してんの?
326 :
2016/12/30(金) 13:47:50.05 ID:LToUj4mC
名無しだからcontinueですっ飛ばしてんだろ
327 :
2016/12/30(金) 14:07:12.37 ID:nsN9rWIv
GetLastError()を調べてみよ。
328 :
2016/12/30(金) 14:41:23.26 ID:qor2kyvR
>>325
成功しているようです

>>326
関数名が名無しということですか?

>>327
どのタイミングでですか?


if(IMAGE_SNAP_BY_ORDINAL(pThunkData->u1.Ordinal))
winsockの関数だけこのif文が真になります。

ttp://i.imgur.com/jWNmlgm.png

デバッガでIAT覗くと、正しい関数名ではないが、2つの関数らしきもの?が表示されていて
これがWSAStartup()/WSACleanup()に対応するものだと思われます

他のDLLでは関数名が正しく表示されます。

これが、関数名が名無しということならどう対処するのかご教示頂きたいです。

海外のフォーラムの似たような質問では
ImageDirectoryEntryToData()の第3引数を
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORTに変えて成功したと書かれていたんですけどね、成功しませんでした。
329 :
2016/12/30(金) 15:38:47.57 ID:LToUj4mC
>>328
関数名は名前あるけど、インポートが名無し
330 :
デフォルトの名無しさん
2016/12/30(金) 15:39:26.81 ID:Q3tvxZdg
マクロというオチ
331 :
2016/12/30(金) 15:40:45.50 ID:LToUj4mC
対処は名前比較じゃなくてアドレス比較
332 :
2016/12/30(金) 19:08:50.21 ID:qor2kyvR
>>331
ヒントありがとうございました。解決しました

PIMAGE_THUNK_DATA pThunkData = (PIMAGE_THUNK_DATA)((PBYTE)hmodCaller + pImportDesc->OriginalFirstThunk);
PIMAGE_THUNK_DATA pRealThunk = (PIMAGE_THUNK_DATA)((PBYTE)hmodCaller + pImportDesc->FirstThunk);
while(pThunkData->u1.Function){
FARPROC pfnImportedFunc = (FARPROC)(pRealThunk->u1.Function);
・・・
上記のIAT上の関数アドレスと、
LoadLibrary()&GetProcAddress()で取得したwinsock関数のアドレス
を比較し一致したものを書き換えたら成功しました。

ttp://blog.techlab-xe.net/wp-content/uploads/2014/05/pe-format-import-func-list.png
これそもそも
文字列比較より
アドレス比較を用いる方法のほうが正確なやりかたですよね?
333 :
デフォルトの名無しさん
2017/01/21(土) 17:55:42.90 ID:0py1wTB0
CreateProcess関数の質問です。この関数で開いた外部プロセスを、操作しようとしたらハンドルされていない例外エラー発生したことある人いますか?

エラーメッセの
オブジェクト参照がオブジェクトインスタンスに設定されていませんの意味もいまいちわからずです。悩んでいます。

どなたかヒントをくれたら幸いですm(__)m
334 :
2017/01/21(土) 18:11:33.93 ID:3w6w5xSi
たぶんCreateProcessの問題じゃなくてソースコードの問題
基本的なとこをどっか間違えてると思う
335 :
2017/01/21(土) 19:16:05.15 ID:RjpRPNfA
前後のソース載せてみて
336 :
2017/01/21(土) 20:46:43.34 ID:1cIKmUbZ
>>333
まずは使ってるプログラム言語から書こうか
337 :
デフォルトの名無しさん
2017/01/21(土) 23:19:24.15 ID:0py1wTB0
>>335
>>336

HWND hwnd;
STARTUPINFO si;
BOOL boRet = 0;
DWORD dwRet = 0;

ZeroMemory(&si, sizeof(si));
ZeroMemory(&piMplab, sizeof(piMplab));
si.cb=sizeof(si);

GetStartupInfo(&si);
boRet = CreateProcess(_T(""C:\Program Files (x86)\Microchip\PICkit 3 v3\"Pickit3.exe"),NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&piMplab);

CloseHandle(piMplab.hThread);
CloseHandle(piMplab.hProcess);

すみませんこんな感じですm(__)m↑
338 :
2017/01/21(土) 23:24:44.47 ID:3w6w5xSi
>>337
それ以外の部分、もしくは書くために変えた部分に問題があると思う
339 :
デフォルトの名無しさん
2017/01/21(土) 23:31:13.18 ID:/qDbjX4N
アクセス権か
340 :
2017/01/21(土) 23:55:07.37 ID:1cIKmUbZ
>>337
まずは CreatepProcess の戻り値とエラーなら GetLastError の値を確認しようか
341 :
2017/01/22(日) 06:55:36.39 ID:JOxquhah
_Tの中は本当にそれでいいのか
342 :
2017/01/22(日) 06:58:42.28 ID:w4vCkWXB
\はここに貼り付けたから崩れたのか
元のソースが1個なのか
343 :
2017/01/22(日) 11:15:36.01 ID:nyEfU5To
>>333
なんか.NETのエラーメッセージっぽいけど、.NETから呼び出しているの?
該当部分のソースを全部貼り付けなきゃ誰もわからないでしょ。
344 :
2017/01/23(月) 08:44:04.99 ID:As9ZYPu9
そもそもどっちのプロセスがエラーを出してるかすら把握できてなさそう
子プロセス呼び出しはなんとなくコピペで扱うには荷が重い
345 :
2017/01/25(水) 06:02:27.98 ID:s4b0iZxC
プロセスを起動して、ユーザーの入力に応答しているか確認するにはどうしたらいいでしょうか。
Process::Responding プロパティ以外の方法でお願いします。
うちの開発環境にはないので。

プロセスのウインドウを取得して、メッセージを送るくらいしか思いつかないのですが、ウィンドウがない可能性もあるし
もっとスマートな方法があればいいなと。
346 :
2017/01/25(水) 07:20:09.51 ID:fntd/u0o
>>345
> ユーザーの入力に応答している
をきちんと定義しないと無理でしょ
347 :
2017/01/25(水) 09:04:47.86 ID:paQpH1yu
ネットワークプログラミングで言う所のキープアライブ的なのを実装じゃあかんの?
348 :
2017/01/25(水) 10:50:26.10 ID:SLV8VPLP
>>345
WM_PAINT系のメッセージを投げて
クライアント領域が書き換わってるかどうかとか
show/hideメッセージ送って反応するかどうか見るとか
349 :
2017/01/25(水) 10:51:21.94 ID:SLV8VPLP
>ウィンドウがない可能性

プロセスId見て稼働率調べるかな
350 :
2017/01/25(水) 10:51:49.68 ID:SLV8VPLP
ああ無限ループで稼働率100%だとだめなのか
351 :
2017/01/25(水) 12:52:29.97 ID:uJriqNlz
WaitForInputIdle
352 :
2017/02/02(木) 12:01:31.08 ID:386srHJg
TrayNotifyWndにアプリアイコンを追加と削除をしたいのですが、どうすればよいでしょうか?
Shell_NotifyIconの登録みたいなやつです。
Shell_NotifyIconの登録と削除右派知っています。
353 :
2017/02/02(木) 12:17:03.67 ID:Nq0thOwX
Shell_NotifyIconでないならこれのことかな
https://msdn.microsoft.com/en-us/library/windows/desktop/cc144099(v=vs.85).aspx
354 :
2017/02/02(木) 13:37:19.22 ID:386srHJg
>>353
情報ありがとうございます。やりたい内容と、ちょっと違います。
windows8.1/10とかだと、タスクバーが上か下にあるとき、タスクトレイの右側か左側にTrayNotifyWndに
[IME]、[タッチパネル向けのキーボード]、[通知]などが表示されていますよね?

それらの場所に、自作のアプリアイコンを作りたいのです。
スパイでみると、
通知 ハンドル 001016E キャプション 通知センター クラス TrayButton
キーボード ハンドル 0010172 キャプション タッチキーボード クラス TIPBand
IME ハンドル 0010156 キャプション 無し クラス Button
となっています。
親ハンドルからたどってクラスを見るとTrayNotifyWndとなっています。
知りたいのは、SHAppBarMessageを使ったタスクバーみたいなウインドウではありません。
355 :
2017/02/02(木) 13:49:49.54 ID:386srHJg
googleの画像検索で googleimeとかってやると下のような画面がでますよね?
https://www.google.co.jp/search?q=googleime&biw=1280&bih=607&source=lnms&tbm=isch&sa=X&sqi=2&ved=0ahUKEwiZzey0zfDRAhUJbrwKHQ4dBuAQ_AUICCgD#imgrc=j130VRRhjR7jdM:

TrayNotifyWndでにて、設定メニュをいじっているような画面のようなプログラムを作りたいのです。
356 :
2017/02/02(木) 13:52:18.95 ID:89UtyOev
Shell_NotifyIconで登録して、クリックされたらメニュー表示すればそれになる
357 :
2017/02/02(木) 14:17:43.87 ID:386srHJg
>>356
一般的な、Shell_NotifyIconでタスクトレイの登録ではないです。
タスクトレイの横に登録する手続きが知りたいのです。
mozcのソースコードをgrepしたところShell_NotifyIconは使われていないようです。

comクラスとかでTrayNotifyWndに追加するような機能があるのかなぁ。。
358 :
2017/02/02(木) 14:36:09.97 ID:89UtyOev
すまん。通知領域はその右側か盲目だった
直接CreateWindowでぶらさげちゃうとかできないかな
359 :
2017/02/02(木) 15:53:49.61 ID:8dKrrq5G
IMEツールバーみたいにタスクトレイにドッキングしたいってこと?
360 :
2017/02/02(木) 16:11:08.48 ID:386srHJg
>>359
機能はIMEではないですが、そんなかんじです。
361 :
2017/02/02(木) 18:11:54.04 ID:gbCpBU15
TrayNotifyWndを親にしてCreateToolbarExで作ればいいんじゃないのかな
362 :
2017/02/02(木) 19:12:40.06 ID:qO0hDPsp
>>357
> mozcのソースコードをgrepしたところShell_NotifyIconは使われていないようです。
ならそのソースを読めばいいんじゃね?
363 :
2017/02/02(木) 20:07:51.95 ID:Eu4e1EaI
>>362
多分ソースは言語バーのcomクラス呼び出しだけで、実際の実装はWindows側
364 :
2017/02/02(木) 23:04:33.49 ID:386srHJg
>>363
ざっくり調べたところ、おっしゃる通り言語バーのcom呼び出してるだけっぽかったです。
>>361
HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL);
HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL);
hButton = CreateWindowEx(0,L"button",L"@",WS_CHILD | WS_VISIBLE,0,0,48,24,hTrayNotify,0,hInst,0);
一瞬ボタンが表示されて消えましたw
登録のさせ方がたぶん違いますよね。
TBBUTTON tbButton = { 0 , 0 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 };
SendMessage(hTrayNotify, TB_ADDBUTTONS, 1, (LPARAM)&tbButton);
なにも起こらず。。orz
365 :
2017/02/02(木) 23:11:43.26 ID:386srHJg
HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL);
HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL);
だと、タスクトレイの内部に描画されてました。
やりたいことと違う;;
366 :
2017/02/03(金) 01:27:36.38 ID:3xPmzf3n
>>364
親側をsubclassしてボタン用のエリア常に用意してないからじゃない?
367 :
2017/02/03(金) 09:17:19.56 ID:pF10NEzN
>>364
TrayNotifyWndが、もしツールバーのクラスを内部で保持してたら登録できるかなーと思いついての実験でした。。
ウインドクラスTrayNotifyWndにそんな機能はなかった。うまくいかないものですね。
368 :
2017/02/03(金) 09:34:28.94 ID:pF10NEzN
HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL);
HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL);
HWND hToolbarWindow32 = FindWindowEx(hTrayNotify, NULL, L"ToolbarWindow32", NULL);
printf("handle %p %p %p ", hTaskBar, hTrayNotify, hToolbarWindow32);
SendMessage(hToolbarWindow32, TB_ADDBUTTONS, 1, (LPARAM)&tbButton);
実験してだめだったコード。。こんな感じでした。ウインドハンドルは普通に取得は成功していたみたいなんですけどね〜
369 :
デフォルトの名無しさん
2017/02/03(金) 11:42:55.01 ID:mwiWK7Ca
指定したソフトが生きてるかフリーズしてるかを判断できるAPI教えてくださいよ
370 :
2017/02/03(金) 12:11:25.19 ID:oHw8NUL1
メッセージ投げて帰ってくるかどうか
371 :
2017/02/03(金) 13:01:49.10 ID:3xPmzf3n
>>368
>>364の上のコードでいいでしょ。あとはボタン用の領域作るだけでいけるよ
http://i.imgur.com/26zlYcY.png
372 :
2017/02/03(金) 14:07:18.26 ID:pF10NEzN
>>371
その画像だと、ウインドウが、タスクトレイの位置にありませんか?
タスクトレイの内部にアプリアイコンを作るのであれば、Shell_NotifyIconで登録すればいいだけです。
やりたいのは、その画像でいうと、時計の右横の通知領域の右にウインド領域を追加したいのです。
373 :
デフォルトの名無しさん
2017/02/03(金) 14:11:00.00 ID:mwiWK7Ca
>>370
それだと帰ってこなかったら出した側も固まりませんか?
374 :
2017/02/03(金) 14:13:38.31 ID:oHw8NUL1
>>373
別スレッドからメッセージ投げて、メインでスレッド監視して待機時間オーバーしたかどうかで判定するとか
375 :
2017/02/03(金) 14:20:41.69 ID:mwiWK7Ca
>>374
なるほど。
メッセージ投げてから返答が帰るまでの待ち時間で判断するって事ですね。
ありがとうございます。さっそくやってみます。
376 :
2017/02/03(金) 14:22:20.52 ID:3xPmzf3n
>>372
タスクトレイの左側にある隠れたアイコンを表示するための ^ ボタンの上に作ったボタンが表示されてる
ウインドウ表示位置だけの問題で期待してる通りだと思うよ
http://i.imgur.com/dyVnefi.png

>>373
無限ループで処理してるかもしれないから、生き死にの定義による
377 :
2017/02/03(金) 14:39:36.19 ID:Q4UhsfCm
>>375
IsHungAppWindow
378 :
デフォルトの名無しさん
2017/02/03(金) 15:40:26.62 ID:mwiWK7Ca
>>376
今ターゲットソフトをwhile(1)で固めて
監視ソフトでPostMessageやGetWindowRectをしたら正常に帰ってきました。
while(1)だとウィンドウの移動もできたのでこれは死亡にはならないですね

>>377
そんなのあったのですね、ありがとうございます試してみます
379 :
2017/02/03(金) 17:34:15.41 ID:Q4UhsfCm
>>378
PostMessageは相手の処理を待たないから当然。
GetWindowRectも相手のプロセスが情報を返すわけじゃないから当然。
その方法を試すならSendMessage。

>while(1)だとウィンドウの移動もできたので
コンパイラの最適化によって(無意味な)無限ループが消されているかも。
380 :
2017/02/03(金) 18:01:24.26 ID:Q4UhsfCm
あと参考までに

SendMessageTimeout
https://msdn.microsoft.com/ja-jp/library/cc411010.aspx
381 :
2017/02/03(金) 18:07:05.86 ID:mwiWK7Ca
>>379
失礼、PostMessageじゃなくてSendMessageでした。
while(1)はウィンドウは動かせますがフォーム自体は固まった状態でした(マウスカーソルがくるくるになります)

IsHungAppWindowで指定間隔で数回みて連続でTRUEなら落ちてると判断できそうな感じでした

しかしwhile(1)ではなく実際にどこかのDLL関数内で落ちてる場合とかにFindWindowでハンドルは取れるのでしょうか?
382 :
2017/02/03(金) 18:08:21.50 ID:mwiWK7Ca
>>380
こんな関数あったんですね・・・
これは良い情報を頂きましたありがとうございます
383 :
2017/02/04(土) 13:09:50.99 ID:koQjiQcQ
メッセージ投げといてタイムアウトしたらあとは知らないって
まるで鍵垢へのフォロリクか2ちゃんの独り言のようだ
384 :
2017/02/04(土) 13:21:18.26 ID:cCtqcbdk
ピンポーン 宅配便でーす お留守ですかー ピンポーン ピンポーン
385 :
2017/02/04(土) 15:21:09.56 ID:e9aNESBj
帰りに台車を放り投げて荷物を蹴とばすんですね判ります
386 :
2017/02/05(日) 11:14:06.81 ID:bZw/U4Ow
使い道が想像できない
387 :
デフォルトの名無しさん
2017/02/05(日) 19:54:32.92 ID:ajRW1B46
GetWindowRectで得た値から計算して
MoveWindowに使うとズレるんですがこれは仕様なんですか?

例えばGetWindowRectで
left=100  right=200
top=100  bottom=200
だったとして、これだと幅と高さが
101になるので
MoveWindow(hwnd,100,100,101,101,TRUE)
としたら幅と高さが1ドットずつ膨らんでしまいます
388 :
2017/02/05(日) 19:59:38.66 ID:lBwes1rb
WindowsAPIのRect系は右と下の1ドットは含まれないはずだったが
389 :
2017/02/05(日) 20:00:15.60 ID:Kv3SwlRy
ピクセルの左上の隙間の位置を返す仕様(Javaと同じ)
なので単純に差を出して指定しないと膨らむ
390 :
2017/02/05(日) 20:02:41.46 ID:wagcFIA6
>>387
画面DPI100%以外になってない?vista以降はそれ原因で従来のAPIの扱いが面倒になってる
391 :
デフォルトの名無しさん
2017/02/05(日) 20:05:12.27 ID:ajRW1B46
MSDNを見ると
GetClientRectはleftとtopが常に0で
rightとbottomには幅と高さが入ってくると書かれていて
事実その通りになっていますが
GetWindowRectのほうは
ウインドウの左上座標と右下座標と表記されてるので
right-left+1 が幅になるはずです
なのでこの仕様はおかしいと思います
392 :
2017/02/05(日) 20:08:48.13 ID:DkYFBwwC
>>391
英語版みたらちゃんと書いてあったよ

ていうかこの関数に限らず
Rect構造体の定義としてbottomとrightは1ピクセル外側を示すことになってる
393 :
デフォルトの名無しさん
2017/02/05(日) 20:19:29.52 ID:ajRW1B46
オセロでなく碁盤で数えろってことですね
納得しました
394 :
2017/02/06(月) 11:44:22.96 ID:atuXlQHb
>>392この辺ちゃんと理解してないと1ドット足りないみたいな事態になるんだよな
VBerとか1オリジンでUboundとか慣れてるとドはまりしそう
395 :
2017/02/06(月) 15:30:39.87 ID:sNAkUIYE
>>391
GetClientRectの話だけど
left=top=0だとして
right=bottom=1だったら
幅と高さは1で
ウィンドウは(0,0)-(0,0)で1ピクセルのウィンドウだから
やっぱり幅と高さは1だし矛盾しない
396 :
2017/02/06(月) 16:17:17.14 ID:atuXlQHb
画像の部分クリップとかやりだすとちょっと混乱したりする教訓か
ドトネトなんかではx y width heightなプロパティを別に持っている
397 :
2017/02/06(月) 17:51:48.08 ID:2YUAIh/k
SetWindowPosとMoveWindowとで
ウィンドウを動かした時に何か違いはあるんでしょうか?
SetWindowPosでウィンドウは動かせるのに
MoveWindowは何のために用意されてるんですか?
398 :
2017/02/06(月) 18:06:24.84 ID:myCEQNc2
>>397
SetWindowPosの方がフラグ指定や挿入位置指定など、できることが多い。
399 :
2017/02/07(火) 08:29:41.33 ID:g0+JjgLn
>>398
ではMoveWindowは何のために存在しているの
400 :
2017/02/07(火) 09:23:30.46 ID:mtDQmVBr
フラグとか触らないでただ動かす時のため
401 :
2017/02/07(火) 11:23:40.44 ID:IHNU1ydF
昔のことは知らないけど SetWindowPos が後から追加されたんじゃないの
402 :
2017/02/07(火) 11:40:48.78 ID:+LdvU0fQ
理由も昔のことも知らないけど 今はMoveWindowの内部でSetWindowPosが呼ばれてたと思う
403 :
2017/02/07(火) 15:19:54.85 ID:LuCsRke8
後方互換性のため
404 :
2017/02/07(火) 22:51:17.46 ID:m2J0GXa0
DeferWindowPos
405 :
2017/02/17(金) 18:42:29.90 ID:xKxGFEhy
実行ファイルの埋め込みマニフェストの実体をいじらずに
内容を修正した上で起動したり、任意の外部マニフェストファイルを読めるように
操作できませんか?
具体的には、マニフェストのcompatibilityの項目なんですが。。。
406 :
デフォルトの名無しさん
2017/02/17(金) 19:08:12.47 ID:yGnzX63H
OSのバージョンにより異なる
ttps://msdn.microsoft.com/ja-jp/library/ms235342%28VS.80%29.aspx
ttp://www.taosoftware.co.jp/blog/2008/02/windows_1.html
ttp://nekojiru.blog.so-net.ne.jp/2007-09-03
407 :
2017/02/17(金) 19:35:32.23 ID:xKxGFEhy
Windows7以降は埋め込み優先で、
実行ファイルのマニフェスト自身を書き換える方法、レジストリでOS自体の設定をいじる方法、
ActivateActCtx()でcommctl.dllは変更できるっぽい?
ってのはわかったんですが、個別に実行ファイルをいじらずに操作する方法があるかな、と思った次第です。
408 :
2017/02/17(金) 19:51:35.09 ID:Z3/lG4/1
ショートカット作って、そのプロパティにアクセスして、互換性編集して、そのショートカットで起動させるとか?
409 :
2017/03/01(水) 19:41:47.62 ID:GhHUeiw5
windows8.1/10 マルチモニター環境で、ウインドウの位置がタッチパネルデバイスを
有するモニターであるかを調べたい場合どうすればよいですか?

HMONITOR hMonitor = MonitorFromWindow(hWnd,MONITOR_DEFAULTTONEAREST);
これで、モニターのハンドルは調べられるのですが、
このモニターがタッチパネルを有するモニターを調べる場合どうすればいいかわかりません。
410 :
2017/03/01(水) 19:53:26.09 ID:IeB4TnBd
Win32_PointingDeviceあたりだろうな
411 :
2017/03/02(木) 16:15:18.67 ID:35Ccu8m+
Win32 Pointhig Device軽く調べたんですが、それっぽいのないですね;;
412 :
2017/03/02(木) 16:33:06.48 ID:j0RdOmJS
それでタッチかどうかわかるでしょ
あとはWin32_VideoController、Win32_DesktopMonitor、GetMonitorInfoあたりと情報突き合わせたら
その座標がタッチ対応かわかる
413 :
2017/03/02(木) 17:34:40.28 ID:HWkXh2UP
応用がきくプログラマーを目指せ
414 :
2017/03/02(木) 19:31:01.50 ID:ZV5SMkF2
ここさわって

っていううメッセージを描いておく
415 :
2017/03/02(木) 20:19:05.81 ID:HWkXh2UP
俺ならそのメッセージでもマウス操作しかしなさそうだわw
416 :
2017/03/02(木) 21:11:15.50 ID:35Ccu8m+
ユーザー側に、全てのモニターをタッチさせて、有効無効を設定してくれとダイアログだろうかと思いましたが、
プライマリーモニターかどうかを調べるのは簡単だったので、プライマリーモニターのみ対応にしたほうが混乱ないかなーと思いました。
417 :
2017/03/02(木) 21:14:09.87 ID:35Ccu8m+
ユーザー側に、全てのモニターをタッチさせて、有効無効を設定してくれと、ダイアログを出そうかと思いましたが、
プライマリーモニターかどうかを調べるのは簡単だったので、プライマリーモニターのみ対応にしたほうが混乱ないかなーと思いました。
418 :
デフォルトの名無しさん
2017/03/03(金) 12:32:15.32 ID:IUFykjWp
Windowsじゃ何やっても無駄ですよ。
生産性はないです。

まともにタブで操作すると考え方をタブに合わせて全体を設計し直さないとダメでです。
ポインターの概念を画像で処理する必要ががります。
マルチで接触してる部分の個々の中心点を求めて

接触している部分にボタンの候補があるかどうか
そういう処理を行わないとだめ
Windowsが使えないのは、ポインティングデバイスから無理に
座標変換してるので誤操作と誤作動だらけになる。

マイクロソフトにはこの分野は作れないと思いますよ。
419 :
2017/03/03(金) 12:56:20.62 ID:Loi48FLt
入力なんていう低レベルからシェア捕れる可能性を秘めてる
集金システムもまともなのがないからそこもね
ハードからソフトまでガチガチなiphoneやandroidと違ってビジネスチャンスに溢れた自由なOS。それがWindows
420 :
2017/03/03(金) 16:55:05.95 ID:7kccr9GO
>>418
窓板に何年も毎日貼り付いてるキチガイタイポマカーのコピペじゃねえかw
421 :
2017/03/04(土) 13:10:48.65 ID:aE/wnzST
どんなに優れていても誰にも使われなければ意味が無い。
422 :
2017/03/04(土) 13:24:45.44 ID:il8vJgV1
使われてるやん
って言ったら使ってる奴がアホってか?
423 :
デフォルトの名無しさん
2017/03/04(土) 14:25:59.12 ID:GRvQ2lmz
シェア獲得率と優劣は比例しない
424 :
2017/03/04(土) 14:32:38.90 ID:svzWwCAT
そう言っておかないとシェア4%のMacなんか何の立場もないもんな
425 :
2017/03/04(土) 14:46:44.82 ID:nGVyMKq0
シェア獲得率が高いものは、シェアに優れてる
426 :
2017/03/04(土) 15:10:40.29 ID:aE/wnzST
別に使われてると思ってるなら良いんでない?
俺は趣味でもあり金を稼ぐ道具でもあるからMacなんて使わんけど。

だいたい、知らんもんで金は稼げない。
427 :
2017/03/04(土) 18:17:19.42 ID:ZJLt6oM8
MacをPCだとするとシェア4%になるが
DTMコンソールやCG用レンダラーだとするとシェアが何倍にもなる不思議
428 :
2017/03/05(日) 13:07:20.68 ID:Fl7T0tas
>>419
でも優良見込み客を囲い込んでるのは i & a なんだよなぁ
429 :
2017/03/05(日) 13:41:54.91 ID:1JomNGIg
>>427
2015年での世界におけるAppleのシェアは7.5%だそうです。

http://ascii.jp/elem/000/001/104/1104428/20160113_yohiro_PCShipment_03_767x659.png
430 :
2017/03/05(日) 14:27:40.01 ID:zkc5hO4d
ベンダー出荷シェアとかOSの販売数ってのは利用率なシェアとは別モンだからな
431 :
2017/03/05(日) 17:20:05.73 ID:KDLljhIv
光学ドライブのAutoRunを無効にしてると、ディスクを入れ替えたことに気付けないみたいですが、
どうやったらディスクの情報をリフレッシュさせることができるのでしょうか?
ディレクトリ一覧を取得しようとしても、入れ替え前のディスクのディレクトリが出てきて困ってます
432 :
2017/03/05(日) 19:16:54.98 ID:zkc5hO4d
今のOSはAutoRun最初から無効だから、それが本当ならほとんどのPCでまともに取得できないってことになるな
ソースどっかミスってるんでしょ
433 :
2017/03/05(日) 19:23:58.07 ID:91bxBwXE
もちろんエクスプローラーで開けば情報は更新されます。プログラムからトレイを開閉しても情報は更新されます。
光学ドライブのボタンで開閉すると、情報が更新されないままなのです。
434 :
2017/03/05(日) 19:45:45.34 ID:1JomNGIg
435 :
2017/03/10(金) 01:12:03.58 ID:5qliBH2Z
https://ideone.com/i4fQGS
Win32API勉強中なんですが、ウィンドウを作ることができません、hWndがNULLになってしまって途中で終わってしまいます
ウィンドウクラスの登録も失敗していないみたいなので原因がわかりません、どこが悪いのか教えてください
436 :
2017/03/10(金) 03:42:45.84 ID:Vp9TD86Z
自分のウインドのZオーダーが変化したタイミングを調べたいのですが、
ウインドメッセージでなにかありましたっけ?
437 :
2017/03/10(金) 03:48:47.30 ID:G57q42um
>>435
× defalut
〇 default
>>436
WM_WINDOWPOSCHANGEDかな
438 :
2017/03/10(金) 04:07:50.94 ID:Vp9TD86Z
WM_WINDOWPOSCHANGEDは、だめでした。

ちなみにウインドウはCreateWindowExで、WS_EX_TOPMOSTしています。
ウインドウのスタートメニューが重なっと時にそれよりも前面に表示したいのですが。。
WM_WINDOWPOSCHANGEDにメッセージ来てないっぽいです。

今は、代案として1秒ごとに、SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);を入れているのですが、
もっといい方法ないでしょうか?

いま、GetWindowあたり調べているのですが、GetWindow(hWnd, GW_HWNDPREV);だと
imeのハンドルが取れるっぽいのでなんか違う。。orz
439 :
2017/03/10(金) 05:09:47.00 ID:j91K0HTy
ランサムウェアですねわかります
440 :
2017/03/10(金) 05:17:14.60 ID:Vp9TD86Z
>>439
悪さするアプリじゃないんだが?
441 :
デフォルトの名無しさん
2017/03/10(金) 07:10:36.82 ID:n8W4k0Sb
異教徒の大量虐殺をためらわない一神教の思想性を理解するのに役立つ。
いずれ日本がアメリカに復讐する日が来るだろう。
442 :
2017/03/10(金) 07:13:07.30 ID:n8W4k0Sb
>>441 誤爆失礼
443 :
2017/03/10(金) 08:47:49.51 ID:Lkoti1g0
>>440
昔からこういう奴はいるから気にするな
444 :
デフォルトの名無しさん
2017/03/10(金) 14:11:40.65 ID:wwCDmvkp
図星ですねわかります
445 :
2017/03/10(金) 14:29:16.92 ID:iyjWrKHK
NG: (HBRUSH)COLOR_BACKGROUND
OK: (HBRUSH)(COLOR_3DFACE + 1)

ShowWindow(hWnd, SW_SHOW);の後にUpdateWindow(hWnd);がない。
446 :
2017/03/10(金) 14:30:21.93 ID:iyjWrKHK
ShowWindow(hWnd, SW_SHOW);
じゃなくて、ShowWindow(hWnd, nCmdShow);
かShowWindow(hWnd, SW_SHOWNORMAL);にしろ。
447 :
2017/03/10(金) 14:40:49.87 ID:ALHJU+Fn
>>437
ありがとうございますこれでいけました
448 :
2017/03/10(金) 16:29:28.86 ID:ALHJU+Fn
すいませんまた質問させてください
テトリスを作る動画を見ながらこれを作っているのですが、リソースの画像を一度表示されたんですが、画像のサイズが変だったので訂正したところ表示されなくなりました
どこが悪いのか教えて頂けないでしょうか?
https://ideone.com/i4fQGS
449 :
デフォルトの名無しさん
2017/03/10(金) 17:21:39.95 ID:wwCDmvkp
r.right = 24 * 10;
r.bottom = 24 * 20;
450 :
2017/03/12(日) 21:56:50.24 ID:EdU52Ynw
タスクトレイのShell_NotifyIcon();について質問です。
タスクトレイのアイコンサイズは32x32または16x16が一般的っぽいのですが、
64x32などの長方形サイズなどのカスタムアイコンを設定できるのでしょうか?
icdata.dwInfoFlagsで NIIF_LARGE_ICONっていうパラメーターを設定したのですが、
反映されていないっぽいです。
case WM_CREATE:
{
ZeroMemory(&icdata, sizeof(icdata));
hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
icdata.cbSize = sizeof(NOTIFYICONDATA);
icdata.hWnd = hWnd; icdata.uID = 0;
icdata.uFlags = NIF_MESSAGE | NIF_TIP | NIF_SHOWTIP | NIF_ICON;
icdata.dwInfoFlags = NIIF_LARGE_ICON;
icdata.uCallbackMessage = WM_USER;
icdata.uVersion = NOTIFYICON_VERSION_4;
icdata.hIcon = hIcon;
wcscpy_s(icdata.szTip, sizeof(icdata.szTip), L"左クリックで終了");
Shell_NotifyIcon(NIM_ADD, &icdata);
}
451 :
2017/03/12(日) 22:56:10.20 ID:EdU52Ynw
LoadIconは、LoadIconMetricでした。
HRESULT hr = LoadIconMetric(hInst, MAKEINTRESOURCE(IDI_ICON1), LIM_LARGE, &hIcon);
しかし、変化なし。。
452 :
2017/03/13(月) 06:26:15.42 ID:cVbgmuk1
右クリックとかでよく出るポップアップメニューの
フォントの大きさを変更したい場合どうすればよいですか?
case WM_RBUTTONDOWN:
{
POINT pt;
pt.x = LOWORD(lParam);pt.y = HIWORD(lParam);
ClientToScreen(hWnd, &pt);
TrackPopupMenu(hMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hWnd, NULL);
}
break;
453 :
2017/03/13(月) 06:47:05.65 ID:cVbgmuk1
自己解決。。調べたら、メニュー・オーナードローについて詳しいページが出てきました。
454 :
2017/03/13(月) 08:55:13.87 ID:hLVIfrQc
紀平さんのか
455 :
2017/03/13(月) 13:01:19.28 ID:VNPYsRzK
>>450
shell icon sizeで画一的に決まってる。
456 :
2017/03/13(月) 13:43:30.21 ID:N3DmujAP
>>450
オーナードロー
457 :
2017/03/13(月) 13:49:46.45 ID:wbj+4uLG
>>456
それだけじゃ答えから遠い
458 :
2017/03/13(月) 17:27:27.81 ID:RCZql05q
>>449
違うみたいです・・・
459 :
2017/03/13(月) 20:18:35.18 ID:DGoKmeFN
https://ideone.com/i4fQGS
VC++で見ているんですが24行目のhBitmapにはちゃんとアドレスが確保されているのになぜか描画されません
どういった原因が考えられるでしょうか?
460 :
2017/03/13(月) 20:24:18.16 ID:VNPYsRzK
>>459
SelectObjectは、BeginPaintの後に呼ばないといけない。HDCが違う。
461 :
2017/03/13(月) 23:00:39.35 ID:cCiuixm4
>>459
コンパイルして実行してみたけど表示されたよ。bmpファイルがおかしいんじゃない?
あとWM_DESTROYでhMemDCとhBlockDCをDeleteObjectしてるけどDeleteDCじゃないとダメ
462 :
デフォルトの名無しさん
2017/03/14(火) 10:21:04.36 ID:vbV/Jpv3
>>459
テトリスのひとか
がんがれ
463 :
2017/03/14(火) 23:58:45.78 ID:MclzPbbI
環境も書いたほうがいいですね、Win7 x64でVC++2010 Expressです、rcファイル作って「BLOCKS BITMAP "block.bmp"」と書いてます
ファイル名は間違えていないですし、リンクしてoファイルは作っていないですけど間違っていますか?
最初は自作のbmpファイルでやっていたんですけど、途中から作られたbmpファイルでやろうとして表示されなくなりました
ここにあるblock.bmpというやつです
https://github.com/DQNEO/CppTetris

動画を見てロジックを理解しながら学習したいのですが、なかなか捗らないです

>>460
ごめんなさい、何行目のことかわからないです

>>461
修正しました!

>>462
ありがとうございます
464 :
2017/03/15(水) 12:08:58.48 ID:7YWEdixI
馬鹿には無理
465 :
2017/03/15(水) 12:54:33.61 ID:rPK+nkkO
用意されてたbmpでは動く。自作bmpでは動かない。ってことかよ。だとしたら原因ひとつじゃん
466 :
2017/03/15(水) 13:11:54.57 ID:h6gBY/+f
>>463
imgurにでも自分で作ったbmp上げてみてよ
467 :
2017/03/15(水) 13:37:27.01 ID:7YWEdixI
imgurって内容変わるんじゃね
468 :
2017/03/15(水) 13:42:29.19 ID:h6gBY/+f
マジかごめん
469 :
2017/03/15(水) 16:58:13.14 ID:0QbqsbzH
>>463
たぶん表示されてるんだと思う
WM_CREATE内の//debugの下の行を
BitBlt(hMemDC, 0, 0, 24, 24, hBlockDC, 0, 24, SRCCOPY);
にするとどうなる?
470 :
2017/03/15(水) 18:59:14.47 ID:Jw8FgjFy
ちょっと見てみたよ
bmpのIDだけど、BLOCKS と "BLOCKS" は別だからね
BLOCKSは数値に置き換えられてるけどLoadBitmapは文字列の"BLOCKS"で読もうとしてる
初心者の頃はやりがちなやつだな
471 :
2017/03/15(水) 20:15:49.77 ID:5s+i++Yx
>>469
ありがとうございます、これで表示されました
でもhttp://dqn.sakusakutto.jp/2012/11/cpp_tetris.htmlこの動画とは別の画像が表示されます
動画上では灰色ブロックが出てきているのに、自分の環境では赤色のブロックが出てきている状況です

>>470
動画では「"BLOCKS"」と定義されていたので自分は「TEXT("BLOCKS")」と定義したんですが両者は違うものなのでしょうか?
472 :
デフォルトの名無しさん
2017/03/15(水) 20:16:40.91 ID:LU+w+iAT
rcの方だろ
473 :
2017/03/15(水) 21:50:38.03 ID:5BC7GJpQ
USBメモリなどUSB機器の接続検知をおこないたいのですが、WM_DEVICECHANGEを使用すると
https://qanda.rakuten.ne.jp/qa5211631.html
のようにUSBメモリによってはDBT_DEVICEARRIVALが何度か来てしまいます。
↑のQ&Aにあるように、正常に認識されたときを検出するにはどうすればよいでしょうか?
474 :
2017/03/15(水) 23:07:40.31 ID:5s+i++Yx
>>472
rcのほうが間違えているということですか?
では「"BLOCKS" BITMAP "block.bmp"」ってことですか?
475 :
2017/03/16(木) 09:34:05.83 ID:fy4K8iiJ
こうやって手取り足取りな奴はイライラする
476 :
2017/03/16(木) 11:58:27.68 ID:bBZQNLcb
>>475
じゃあ来なければいいよ
477 :
2017/03/16(木) 15:14:09.34 ID:Oq2mLnGK
お前が手足を完全にもいでトドメを刺せばいい
478 :
デフォルトの名無しさん
2017/03/16(木) 17:17:19.21 ID:Xe646fvV
モイっ!
479 :
2017/03/16(木) 22:29:13.60 ID:xw1bzJ/c
>>473
((PDEV_BROADCAST_HDR)lParam)->dbch_devicetype が全部同じなの?
480 :
2017/03/19(日) 01:08:24.24 ID:bawtCMkE
SHAppBarMessage(ABM_QUERYPOS, &abd);が正しい値を取得できない場合どうすればいいですか?

Windows10の設定:システム:ディスプレイ:ディプレイカスタマイズ画面
テキスト、アプリ、その他の項目サイズを変更する
で100%から175%までいろいろ変化させてみると表示位置のずれが発生します。
481 :
2017/03/19(日) 04:28:36.19 ID:yhAiVzME
>>473
デバイスイベントが来たら、タイマーで少し時間が経ってからデバイスをチェックする。
時間が経つ前に次のデバイスイベントが来たら、タイマーをセットしなおしてまた少し時間が経つまで待つ。
482 :
2017/03/20(月) 10:38:14.59 ID:px9bK4BM
タスクトレイの自動的に隠すになっているかを調べる場合どうすればよいですか?
483 :
2017/03/20(月) 11:02:11.90 ID:OlmnVrTw
レジストリでも見ればわかるんじゃない?
484 :
2017/03/20(月) 11:03:48.79 ID:px9bK4BM
自己解決・・
APPBARDATA appbardata;
appbardata.cbSize = sizeof(APPBARDATA);
appbardata.hWnd = FindWindow(L"Shell_TrayWnd", 0);
if(SHAppBarMessage(ABM_GETSTATE, &appbardata))
{
// 自動的に隠れている
}
485 :
2017/03/20(月) 23:28:19.28 ID:pgDQQg6b
最近、win32 はいつまで残るんだろうな、とふと不安になる
.net とか妙なものが蔓延ってるけど。
486 :
2017/03/21(火) 00:19:55.43 ID:3zup+qvo
MS32bitOSが居る限りはなくならないだろ
.netだって内部的にWin32API呼び出しているし
487 :
2017/03/21(火) 02:42:20.25 ID:dRq3wtLU
ここまで来て過去の莫大な資産を捨てることなんてあるの?
過去のwindowsアプリが新しいwindowsで動かなくなる日が来たら、それはもうwindowsじゃないと思う
488 :
2017/03/21(火) 03:05:14.83 ID:RH/+/4vn
.NetですらFormsもWPFも放置でUWPに移行させようとしてるし、本音では過去のを全て捨ててUWPに一本化したいんだろう。
現実的には自らの強み(過去の資産)を手放すことになるから、やりたくてもやれないのだろうけど。
489 :
2017/03/21(火) 03:48:34.60 ID:5huRZA1V
> FormsもWPFも放置でUWPに移行

MSって過去にも色々出しては無かったことにしてきたよな・・・
UWPすらどうなることか
490 :
2017/03/21(火) 04:41:12.33 ID:ScjZQ1Ox
新しいものを出してきても、古いOSに対応させないから状況的に使えなくて、
使ってもいいかなと思える状況になった頃には古い技術になっているという悪循環
491 :
2017/03/21(火) 14:27:42.86 ID:6WWBsw/3
>>485
windowsが無くなるまでは残るだろうと思ってたが

windowsが無くなりそうだしな
492 :
2017/03/21(火) 14:35:53.84 ID:3zup+qvo
Win32APIは過去の莫大な資産であり、過去の莫大な負債でもある
493 :
2017/03/21(火) 17:25:00.36 ID:ghEa3fZg
WindowsRuntimeを使わないといけなくなって
c++でコーディングし始めたけどかなり面倒くさい。
c++/cx使えっていうことだろうけど。
windows runtimeがwin32apiの代わりになるのかな?
494 :
2017/03/21(火) 23:26:33.91 ID:y88e15JH
しっかし、なんで win32 はあんなに作るのが面倒くさいんだろうな・・・
1〜10まで教える感じではなく、1、10、100、1000まで教えてやっと動く感じ。
その分痒い所に手が届くが。。。
だんだん倦厭されているということは、今の納期!納期!の文化とは合わないんだろうな。
495 :
2017/03/22(水) 00:22:36.94 ID:153gnM05
496 :
2017/03/22(水) 00:24:51.70 ID:Qoic3+WX
工程の短縮というのもあるけど
「どのアプリケーションでも同じことをしたければ同じ操作をすればいい」と言うのを求めると
同じ操作(同じ動作)をひとつの部品として提供するほうが良い
そういう開発者独自の機能より、一般化された機能や操作性が重要視されるようになったのも一因だと思う
497 :
2017/03/22(水) 00:30:45.76 ID:oXk4FtJ8
>>495
これってまだいろいろ未完成じゃないん?
sdkにも含まれてないし扱いが不鮮明なんだよな。
498 :
2017/03/22(水) 00:48:25.76 ID:KP40M7fU
https://msdn.microsoft.com/en-us/magazine/mt745094
https://msdn.microsoft.com/en-us/magazine/mt745090

C++/CXを置き換えてくのか平行してくのか知らんけど言語プロジェクションを
純C++のヘッダのみで提供するコンセプトなのかしら
ただ肝心の.winmdからヘッダを生成するコンパイラが(まだ)未提供だから
Win2Dみたいな標準に含まれてないランタイムコンポーネントは使えん感じ

ちょっと試してみた感じ/ZWも不要で既存のC++ライブラリとマージしやすそうだし
VS2017+CUの時点で使い物になってて欲しいなあ
499 :
2017/03/23(木) 12:03:55.36 ID:39On3zda
>>494
APIの粒度の問題を言われてもな
500 :
2017/03/23(木) 20:22:15.45 ID:NUnQTAC3
でも結局どの言語でもAPIインポートするんだよな
意味ないな
501 :
2017/03/26(日) 14:21:34.35 ID:bO2o38VX
>>494
>痒い所に手が届く

これ重要
502 :
2017/03/26(日) 15:20:48.57 ID:6+wpTDFL
代わりに痒くもないところが腫れあがる
503 :
2017/03/27(月) 08:29:30.36 ID:S+/FPMiq
そりゃ掻いてる場所が違うんだ
504 :
2017/03/27(月) 08:31:23.68 ID:CkZovUeE
痒いところをかくといけないのでかけないようになってます
161KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: