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


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

Win32API質問箱 Build65



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

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

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

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build64
pc11.2ch.net/test/read.cgi/tech/1207099291/

2 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:51:41 ]
- MSDN ホームページ
www.microsoft.com/japan/msdn/
- MSDN ライブラリ
msdn.microsoft.com/library/
msdn.microsoft.com/library/ja/
- MSDN2 ライブラリ
msdn2.microsoft.com/en-us/library/
msdn2.microsoft.com/ja-jp/library/
- MSDN ライブラリ (ローカル版)
www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja
www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja
- Windows SDK & Platform SDK
www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en
www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

3 名前:デフォルトの名無しさん [2008/04/22(火) 15:51:52 ]
- Google
www.google.com/
- 猫でもわかるプログラミング
www.kumei.ne.jp/c_lang/
- Win32 API入門
wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
www7.plala.or.jp/keny01/

- Advanced Windows (書籍)
www.amazon.co.jp/dp/4756138055

-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。


4 名前:デフォルトの名無しさん [2008/04/22(火) 15:52:15 ]
次スレまだか?

5 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:52:28 ]
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
60 ttp://pc11.2ch.net/test/read.cgi/tech/1196874830/
59 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/
58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/
57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/
56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/
55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/
54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/
53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/
51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/
50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/
49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/


6 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:52:45 ]
41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/
40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/
39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/
38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/
37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/
36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/
35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/
34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/
33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/
32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/
31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
30 ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
29 ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
28 ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
27 ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
26 ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
25 ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
24 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/

7 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:52:55 ]
21 ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
16 ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/★
15 ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/★
14 ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
13 ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
12 ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
11 ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
10 ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
1 ttp://pc.2ch.net/tech/kako/991/991576947.html

8 名前:デフォルトの名無しさん [2008/04/22(火) 15:53:17 ]
>>4
邪魔すんなハゲ

9 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 16:01:51 ]
1乙

10 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 19:26:26 ]
>>1




11 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 19:49:50 ]
↓3行目に期待

12 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 20:59:08 ]
Win32APIって、次のWindowsにも生きてるのかな。
なんかWindows7だっけか?
ケロちゃんLOVE!

13 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:00:12 ]
ま、互換レイヤくらいあるだろう。

でも正直、Win32APIを今さら使いはじめるような人は、終わってると思います。

14 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:05:05 ]
Win32APIを知らないでいいと思ってるやつも終わってると思うが

15 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:19:25 ]
あえて言おう。

Win32 APIを直に使うな、と。
いまさら、俺様ライブラリを作るな、と。

先人の通ってきた道をそのまま辿るべきではない。
そんなことをしていたら、先人と同じ場所までしか行けない。

16 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:35:08 ]
言わんとすることは理解できるんだけど、じゃあ現実の問題としてどうすりゃいいのさ?
よろしくご教示ください。

17 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:43:09 ]
.Net を活用しつつ手の届かない場所でWin32APIを使用。
それでも届かないところはアセンブリ

18 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:52:40 ]
.NETはないわ。つか結局Win23API使うんじゃ意味ないじゃん。
Win32APIなしで全部.NET上でできるようになれば考えてもいいけど、それは遥か先の話。

19 名前:デフォルトの名無しさん [2008/04/22(火) 21:53:00 ]
>>17
あれ・・・俺がいる・・・

20 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:56:00 ]
>>16
すでにある社内ライブラリを使う。
すでにWin32 APIで経験豊富だが疲れてきてる先輩とうまく役割分担する。
既存のソースを丸パクリする。



21 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:57:39 ]
>>18
それは.NETを使ったことない厨の戯言
・・・そんな俺もWin32API厨

22 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:14:11 ]
ドトネトはあのキモイソースが嫌

23 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:17:47 ]
そりゃ、MSIL直接読んでれば嫌にもなるわな。

24 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:24:36 ]
アセンブラみたいなもんだろ>Win32API
知らなくても殆どは困らないし、たとえば新人に憶えろと強要するようなもんでもない。
ただ昔からやってる人は知らざるを得なかったし、知らないよりは知ってたほうがごくまれに得になる時もある。
そういうもんだ。

25 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:26:42 ]
いまどきコンパイラの吐き出したアセンブラを見て独自に最適化するやつもいないしな

26 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:29:02 ]
直は早いんだぜ〜API直叩きはよぉ〜
まぁ普段は.NETやらMFCやらのラッパー使ってても問題ない
だけど低水準レベルのところの動作いじりたくなるともうWIN32しかないわ
仕事じゃやらんけどね

27 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:31:53 ]
こんな所で兄貴のネタを聞くとはおもわなんだ

28 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:32:17 ]
人様がCPUのパイプラインとか考えて書いたアセンブラのコードよりも、
自分が適当に書いたC++のコードをコンパイラに最適化させたほうが、
速かったなぁ。

29 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:35:20 ]
Win32 APIが、互換レイヤ経由になれば、かえって遅いなんてことになったりして。


30 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:38:01 ]
API設計したやつって誰よ
あまりに腐ってて反吐がでる



31 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:38:41 ]
>>30
よし、Win32、POSIX、OS/2に続く、4番目のサブシステムの作成を許可する。

32 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:39:19 ]
WIN32ごときで低水準とか言われると、自分はさびしくなるな

33 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:40:30 ]
ANSI/UNICODEだって互換レイヤみたいなもんだがな
WOW64も

34 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:41:53 ]
>>30
歴史があるから仕方ねーよ
もともとDOSのフックであって、1Mbyte以降のメモリーに配置された常駐プログラムだし。

35 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:45:09 ]
API作り直したら多分Macみたいなことになる希ガス

36 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:51:17 ]
せめてAPI関数の命名くらいちっとは考えてつけてもらいたかった。

37 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:52:22 ]
一番長いAPIの名前って何?

38 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:54:30 ]
ConvertSecurityDescriptorToStringSecurityDescriptor

39 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:56:39 ]
うへぇ
使い道あるのかこれ?

40 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:57:29 ]
馬鹿じゃねえのかw本当にw



41 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 22:59:32 ]
ハンガリアン記法の目的を理解できなかったのが、Win32 API開発チームですよ?

42 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:00:23 ]
アイムハングリー

43 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:00:53 ]
それでもX系のAPIより短いなw

44 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:03:46 ]
まぁAPI作り直すならたぶん新しいOS作るだろうなw

45 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:05:28 ]
新しい名前作って、旧 API はそのラッパにすればいいんだよ。

46 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:05:41 ]
いまは文字数や長さなんて問題ないだろ。
長かろうと明確に機能を表現しているべき。

昔のコンパイラには識別子の長さに制限があって、N文字以上は無視しちゃうので、
N文字以内が重複しないようにするために、不格好な名前の付け方をせざるをえないことがあったが。

47 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:06:05 ]
>>44
それがLonghornだったのだが・・・。

48 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:06:53 ]
もう名前じゃなくて番号でいいです

49 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:07:29 ]
>>48
っ 序数インポート

50 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:08:43 ]
UUIDでOK



51 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:17:23 ]
それ何て COM

52 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:40:05 ]
またドトネト厨が布教活動するためにWin32スレを荒らしてるのか

53 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:40:47 ]
んなの適材適所でいいだろ

54 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 23:41:40 ]
Win32 APIには、どこからどこまでが含まれるの?

55 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:28:52 ]
Win30からWin39まで

56 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:32:39 ]
>>54
正直DirectXやネイティブAPIはスレチだと思うがどうよ

>>55
つまんね

57 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:34:29 ]
ネイティブAPI?

58 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:37:55 ]
ntCreateFileとか

59 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 00:52:01 ]
質問なかったら、雑談スレになっちゃうのがたまにキズだよなぁ・・・

60 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 01:52:34 ]
DirectX → 専用スレ行け
ネイティブAPI → Win32の土台だしぃ

インデックス・サービス関連は?
ターミナル・サービス関連は?
クラスタリング関連は?
WMIは?
MTSは?
MDACは?
SAXとかXSLTは?
Windows Media ほげほげ は?
Video for Windowsは?
CDO、Exchange、MAPI、NetMeetingは?
Active Directoryは?
MSMQは?
TAPIは?
MMCは?
Windows Installerは?
WMIは?
IISは?




61 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:18:10 ]
専用スレがあるかないかの単純な話だろ

62 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:18:34 ]
ほかに適切なスレがあればそこで聞くべき。
なければここで聞いてもいいと俺は思うが、
回答が返ってこない可能性が高いはず。

63 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:33:27 ]
>>60
きもいよ

64 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:34:53 ]
>>60
こういうかわいそうな奴たまにいるよなぁ

65 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 02:40:54 ]
>>60
分類してる暇あったら質問に答える努力しろよ

66 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 03:04:41 ]
>>60
基地外は帰れ

67 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 04:03:25 ]
四連投か。醜いな。

68 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 04:36:54 ]
叩かれると同一人物に見えるのか。醜いな。

69 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 04:59:48 ]
まあぶっちゃけグレーゾーンのネタはこのスレの奴がカバーできる範囲まででしょ

70 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 05:06:33 ]
>>69
意味不明



71 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 05:13:03 ]
それは君の理解力が足りないんだよ。

72 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 05:15:16 ]
どこからグレーゾーンな話題が出てきたんだ?
話が飛躍しすぎだろうが

73 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 05:19:43 ]
Win32APIはグレーゾーンです(笑)

74 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 06:05:23 ]
なんか頭の悪い奴が沸いてるな

75 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 06:10:18 ]
伸びてると思ったらまたこんなかよ
VIPやニコ動じゃあるまいし糞レス自重しろ

76 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:28:27 ]
>>60
こいつがそもそもの原因

77 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:38:35 ]
DLLで線引きしたらいいんだ
---------------Win32APIホワイトゾーン
kernel32.dll
user32.dll
gdi32.dll
advapi32.dll
winmm.dll
---------------Win32APIグレーゾーン
msvcrt.dll
ntdll.dll
shell32.dll
shfolder.dll
comctl32.dll
comdlg32.dll
---------------管轄外


78 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:43:22 ]
ぶっちゃけWin32API自体がグレーゾーンだろう
簡単に他プロセスを落としたりコード注入できるし、実際マルウェアがそれらの技術を悪用している

こんなインセキュアなAPIが滅びるのは時間の問題だから今のうちに.NETに移行しておけば後々苦労しないよ

79 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:49:33 ]
おまえ日本語読めるのか?:
いまはこのスレで語るべきWin32 APIについて議論しているんだぞ。
Win32 APIの危険な挙動じゃねぇぞ。
しかも論点が沸け分からんし。

.netだってファイルを削除したり置き換えたりできるじゃないか。
セキュリティ上問題あるだろ。
そもそもCPU時間という貴重なリソースを消費するものは邪悪だろ?


80 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:49:38 ]
↑話を理解してない馬鹿



81 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:50:18 ]
ごめん80は78に対してだった
死ね78


82 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:53:48 ]
寝言は寝て言え

83 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:55:34 ]
睡眠書き込みかもしれないだろ!
寝て言うより高度な技術

84 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 07:57:45 ]
>>79
とりあえず落ち着けw
"読めるのか?:"とか"沸け分からん"とかお前のレスの方がわけ分からんぞw

> いまはこのスレで語るべきWin32 APIについて議論しているんだぞ。
ここはWin32APIについて議論するスレじゃなくてWin32APIについて質問or回答するスレじゃないのか?

85 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:01:33 ]
↑話を理解してない馬鹿

86 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:02:54 ]
>>61-62で結論出てるのに何が議論だよ・・・

87 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:04:00 ]
↑話を理解してない馬鹿

88 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:04:48 ]
↑話を理解してない馬鹿

89 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 08:08:06 ]
流行語大賞
Build64:「知らないならレスしないでください」
Build65:「↑話を理解してない馬鹿」

90 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 10:21:53 ]
よもまつ



91 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 12:35:35 ]
なんかグレーゾーンという単語を読み間違えてないか?
犯罪臭い物をグレーゾーンと言ってるわけじゃなく、単に
「Win32APIかどうかの定義が曖昧」なのをグレーゾーンと表記してたように読めたが

92 名前:デフォルトの名無しさん [2008/04/23(水) 12:39:55 ]
↑知らないなら話を理解してないレスしないでください馬鹿

93 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 12:40:36 ]
どう読んだらそうなるの

94 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 13:11:14 ]
「↑」と「馬鹿」を使ってるのは無視したほうがいい。

このレスとか

95 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:06:54 ]
他のスレだと問題の切り分けすらできない可能性が高い。
このスレだとだいたいの切り分けができる。

例えば回答が、レジストリのココをいじれ、とか、Wake on LANでググれとかだと、
このスレに流れつくのも仕方ないと思う。

96 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:34:08 ]
俺は自分が答えられることならAPIの話と少しずれててもここで答えてやろうと思ってるがね

97 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 14:44:48 ]
WindowsSDKの範疇は全部、ってことでいいか?

98 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:09:56 ]
つまり.NET関連もここでいいという事か

99 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 16:58:29 ]
マネージ系は除こうよ。
専用のスレのほうが分かる人が多いだろうから
聞くほうも答えるほうも幸せ。

100 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 17:38:51 ]
結局>>61-62じゃない
わざわざ40レスも余分に消費してまで議論してるなんて
ホント、要領が悪いというか頭が悪いというか



101 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:54:09 ]
↑話を理解してない馬鹿

102 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 19:57:24 ]
>>101
スレの主旨を理解していない馬鹿

103 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:01:00 ]
Win32AHO質問箱でつか?

104 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:03:00 ]
USO800準拠

105 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:14:28 ]
ANSI(Ahobakari No Sa Itama)企画

106 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:39:58 ]
この辺でAPIフックがらみの質問がくると大胆予想

107 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:56:48 ]
定番だね

108 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:06:42 ]
.Netは重いしメモリ食うから嫌い
クルーソーの800MHzのCPU積んだノートで.Netで書かれたソフト起動したら1分待たされたしw

109 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:16:10 ]
初回起動は最近のPCでも結構待たされるわな<.net
まあそれ故のSuperFetchなのだろう

110 名前:Alfred Vaino Aho mailto:sage [2008/04/23(水) 21:16:53 ]
>>103
呼んだ?



111 名前:デフォルトの名無しさん [2008/04/23(水) 21:19:13 ]
↑話を理解してない馬鹿

112 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:00:14 ]
      _、_
    ヽ( ,_ノ`)ノ 残念、それは私のおいなりさんだ
   へノ   /
┌→  ω  へ




113 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:16:51 ]
IEのオプションでスムーズスクロールをオフに出来るけど、
あれってプログラム単位でスムーズスクロールのオンオフを
切り替えできるってことなんでしょうか。

リモートデスクトップなんか使っていると、エクスプローラの
ツリービューのスクロールはローカルで使ってるのと同じくらい
早いんだけど、自作アプリのツリービューのスクロールがライン毎で
えらい遅いのでなんとかしたいのですが。。。。。

動作環境はXP SP2です。

114 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:18:25 ]
↑話を理解してない馬鹿

115 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:26:48 ]
>>108
Crusoeは詐欺CPU
ベンチマークのスコアは立派だが、実使用ではまるで性能が出ない。

116 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:28:44 ]
>>113
オーナードローしてたり?

117 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:50:08 ]
>>115
それは十分承知だが、ネイティブAPIのアプリだったらすぐ起動するからね。

118 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:53:07 ]
コードのワーキングセットが、コードモーフィング結果のキャッシュをはみ出すと、途端に劇遅になるからな。

119 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 02:08:56 ]
>>117
ネイティブAPIの意味が違う

120 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 02:15:10 ]
NTnativeとは違うのは、文脈から明らかだろう。



121 名前:デフォルトの名無しさん [2008/04/24(木) 02:36:06 ]
質問があります。IMAGELIST型を読み込みたいと思っています。
ビルドは通るのですが、途中でエラーが出てしまい、原因が分かりません。
同じようなエラーで困った方、解決方法をご教示ください。よろしくお願いします
ImageList_LoadImage関数をコメント文にすると実行可能になるので、この部分でエラーが出ているようです。

HIMAGELIST h_img;
h_img = ImageList_LoadImage(hInst, (LPCTSTR)IDB_ICON, 15, 0, CLR_DEFAULT,
IMAGE_BITMAP, LR_LOADMAP3DCOLORS);
エラー内容
'System.TypeLoadException' のハンドルされていない例外が hoge.exe で発生しました。
追加情報 : アセンブリ 'hoge, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' から型 '_IMAGELIST' を読み込めません。

開発環境 VC SDK

122 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 04:13:49 ]
Win32ネイティブをネイティブAPIなんて言う奴初めて見た

123 名前:113 mailto:sage [2008/04/24(木) 06:26:34 ]
>>116
オーナードローしてます。そのせいだとすると、対策なしですね。。。。

124 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:31:46 ]
状況を自分で判断して再描画スキップするぐらいしかないかな

125 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 08:42:29 ]
>>121

hInstに入ってるのは何か?
IDB_ICONはなんとdefineされているか?

126 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:03:14 ]
そもそもなぜ.NETでWin32のイメージリストを使う必要があるのかね?

127 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:08:40 ]
MFCじゃないかぎり、アイコン表示でSDKなら普通使わない?

128 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 09:11:30 ]
.netならSystem.Windows.Forms.ImageList辺り使えば

129 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 10:24:35 ]
より高機能な物がクラスライブラリに付属してるのにわざわざWin32のImageListを使うなんて・・・
まあWin32版の方がリソース消費量は少なかった気はするが

130 名前:デフォルトの名無しさん [2008/04/24(木) 10:33:19 ]
↑話を理解してない馬鹿



131 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:47:18 ]
クラスライブラリとか・・・SDKって書いてあるだろ。
質問の内容を理解せずにMFCなら!MFCなら!とかまんせーすんなよ。

132 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:57:51 ]
うるせーデブ

133 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 11:59:40 ]
.netなのにSDKかよ
アホだな

134 名前:デフォルトの名無しさん [2008/04/24(木) 12:16:27 ]
で?
Linuxならそんなもん使わなくてもすぐできるのに。

135 名前:デフォルトの名無しさん [2008/04/24(木) 12:34:24 ]
↑話を理解してない馬鹿

136 名前:デフォルトの名無しさん [2008/04/24(木) 12:55:23 ]
135には同意できるw

137 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:48:12 ]
DrawFocusRectって単に反転色の点線を描くだけのAPIかと思ってたら、下の色によっては
反転じゃなく濃灰色の点線になったり、下地が青色系とかだと点線じゃなく実線になったりと
結構いろいろやってるAPIだったのね。

138 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 17:50:53 ]
      r;ァ'N;:::::::::::::,ィ/      >::::::::::ヽ
.      〃  ヽル1'´        ∠:::::::::::::::::i
       i′  ___, - ,. = -一   ̄l:::::::::::::::l
.      ! , -==、´r'          l::::::/,ニ.ヽ
      l        _,, -‐''二ゝ  l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
        レー-- 、ヽヾニ-ァ,ニ;=、_   !:::l ) } ト
       ヾ¨'7"ry、`   ー゙='ニ,,,`    }::ヽ(ノ  チラシの裏にでも書いてろ
:ーゝヽ、     !´ " ̄ 'l,;;;;,,,.、       ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{   __)`ニゝ、  ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ ,  な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /

139 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:09:14 ]
ANSIしか対応してない関数でUNICODE文字を含むファイルを開くにはどうしたらいいでしょうか
MoveFileやCopyFileは利用しない方針でおながいします

とりあえず思いついたのが8.3形式のショートファイル名を利用する方法だったんですが
オプションで生成しないように切り替えられるんですよねえ、これ

140 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:11:06 ]
> ANSIしか対応してない関数

具体的に



141 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:12:31 ]
普通に開けばいいじゃないか
何がひっかかって開けないの?

142 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:13:25 ]
ImageHelpAPIとか

具体的に言えばMapAndLoadかImageLoadが使いたい

143 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:24:40 ]
Unicode文字を含むファイル名を、ANSIのAPIや、
あるいはUnicodeに対応してない古臭いライブラリとかで使いたいんだろうか。
Vistaのシンボリックリンクで別名を作るとかは?
MoveFileやCopyFileではないぞ。

144 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:26:44 ]
NTFSならCreateHardLinkしちゃえ

145 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:28:32 ]
>>143-144
なるほど、それは良さそうですね
リンク作成の方向で検討します( ´∀`)

146 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:29:38 ]
>>142
EXEやDLLのファイル名にANSI以外の文字を使うこと自体が邪道。
かつては8.3を越える長いファイル名もご法度だったんだ。

147 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:31:26 ]
>>146
いやまあそれ以外にも統合アーカイバライブラリのDLLもANSIしか無かったり、色々あるのですお
とりあえず、ありがとうございます

148 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:36:34 ]
>>146
今のWindows自体にそんな制限など存在しない。
たんにヘタレなPGの言い訳にすぎん。

8.3の制限を持ち出すとなると、当然32bitコードも邪道だと思っているんだよな?
ポインタのサイズが今までの倍もあるんだぜ。もったいないじゃないか!

149 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:43:01 ]
>>148
> 今のWindows自体にそんな制限など存在しない。

8.3形式の短いファイル名でレジストリや設定ファイルの類いにパスが記録される

何らかの原因で8.3形式の短いファイル名が一致しなくなる

どぼん

そういうのを避けるために8.3形式にしているのをヘタレと言うのなら、どうぞお好きに。

> 8.3の制限を持ち出すとなると、当然32bitコードも邪道だと思っているんだよな?

なわけない。

150 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:44:08 ]
てかSJIS外の文字をファイル名に使うことってほとんど無いと思うけど
☀.txtとかそんな名前でも付けてるの?

>>148
PEヘッダに記録されるファイル名はANSIなんだが
それに俺の環境だけなのかは知らんがASCII文字以外を使ってるEXEがタスクマネージャで化ける



151 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:46:46 ]
俺はBig5ならしょっちゅう扱ってる

152 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 19:05:57 ]
>>148
知らないならレスしないでください

153 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 19:55:30 ]
CreateProcess(NULL, "sample.exe", NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
hWnd = FindWindow("sample", NULL);

SendMessage(hWnd, WM_CLOSE, 0, 0);

この順番に処理させたいんだけどうまくいかない
hWndが0になってしまう

どうすればCreateProcess→SendMessageが上手くいくようになる?

*sample.exeはコンソールアプリ

154 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 19:59:44 ]
>>153
本当にコンソールのタイトルに"sample"なんて表示されてるか?
"c:\windows\cmd.exe"とか出てるはずだが

155 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:01:56 ]
言い方がマズイかな
コンソールのタイトルは

"カレントディレクトリパス+sample.exe"

になるはず

156 名前:153 mailto:sage [2008/04/24(木) 20:07:21 ]
>>154,>>155
FindWindowの第1引数をsample.exeのフルpathにしてもだめ(hWnd=0)でした

157 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:11:24 ]
パスって言うかコンソールのタイトルとFindWindowの引数が正確に一致してるのかって話なんだが
大文字小文字の差も含めて

少なくともSpyはタイトル拾えてるから引っかからないって事は無い筈

158 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:15:37 ]
ttp://www.uploda.org/uporg1385245.png

ほれ

159 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:17:08 ]
>>156
まずはSpy++とかで確認しる。

ちなみに、CreateProcessしてすぐにFindWindowしてる、なんていうオチじゃないだろうな?

160 名前:153 mailto:sage [2008/04/24(木) 20:24:56 ]
CreateProcessの次にFindWindowしてます・・・



161 名前:153 mailto:sage [2008/04/24(木) 20:28:12 ]
検索してたら見つけたんだけど、この使い方解説お願いできます?

URL:homepage2.nifty.com/DSS/VCPP/API/ProcessEnd.htm
BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam)
{
DWORD dwThreadId, dwProcessId;

dwThreadId = GetWindowThreadProcessId(hwnd, &dwProcessId);
if (dwProcessId == (DWORD)lParam) {
PostMessage(hwnd, WM_CLOSE, 0, 0);
}

return TRUE;
}


// pi は CreateProcess() したときの PROCESS_INFORMATION
EnumWindows(EnumProc, (LPARAM)pi.dwProcessId);

****ここまで引用



162 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:33:30 ]
CreateProcessの直後にFindWindowしたら駄目にきまってるだろう。
プロセスが起動した瞬間にウインドウができるわけじゃない。

163 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:36:07 ]
>>161
CreateProcessで作成したプロセスが所有するウィンドウにWM_CLOSEをポストしてる
当然CreateWindowで作ったウィンドウを持ってないプログラムにゃ無効

164 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:38:47 ]
つかコンソールにWM_CLOSE送るなら
terminateprocessでも使っとけば良いんじゃねえのか

165 名前:153 mailto:sage [2008/04/24(木) 20:50:22 ]
ありがとうございます

>>164
上のURL先に
>緊急遮断に使用するものであり,終了するが正常な終了方法ではない
とありますが大丈夫ですか?

正常終了するにはどうすればいいですか?

166 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:53:29 ]
コンソールにWM_CLOSE送ったってムリヤリ終了してるから気にするな

コンソールプログラムならプログラムが自発的に終了しない限り正常終了しない

167 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:55:24 ]
>>165
外部から無理に止めるのが正常な方法であるわけがない。
メッセージを投げてターゲットプロセスが自分で終了するようにするのがまっとうな方法。

168 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:55:48 ]
WM_CLOSEをポストする。
キャンセルできるから確実性はないけどな。

169 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:57:33 ]
そういう場合はパイプで繋げてシグナルを送信するんだよ

170 名前:153 mailto:sage [2008/04/24(木) 20:59:45 ]
ありがとうございます
望みどおりの動作してくれました





171 名前:153 mailto:sage [2008/04/24(木) 21:04:09 ]
>>167
自力終了 == 正常終了
なんですね覚えておきます

>>169
パイプ・シグナルの事も頭に入れておきます

172 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:24:57 ]
Googleの弊害だよな。
適当に検索して、それっぽいコードを継ぎ接ぎする、本質を理解しようとしない人間が量産されるのは。

173 名前:167 mailto:sage [2008/04/24(木) 21:25:00 ]
>>171
外部から何かを受け取ることでエラー終了するように作られたものもありうる。
少なくともあるプロセスがどういう状況にあるのかを無視して終わらせるのが正常とは言えない、
ということだ。拡大解釈やめれ。

174 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:29:47 ]
そもそも、CreateProcessして即座に終了させるって、無意味だろ。

なぜ外部から終了させる必要があるのか、まずは、そこから話してみ。

175 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:52:39 ]
試してるだけじゃないのか

176 名前:153 mailto:sage [2008/04/24(木) 21:58:44 ]
>>173
わかりました

>>174
CreateProcessしたプログラムで処理してる時に
別のプログラムの処理も必要になった時のために
メインのプログラムから起動するようにしました

どうせやるなら終了もメインのプログラムからした方が
使いやすい(手間がかからない)と思ったからです

177 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:08:04 ]
>>153
FindWindowの第一引数はクラス名だぼけ

178 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:10:04 ]
HWND FindWindow(
  LPCTSTR lpClassName, // クラス名
  LPCTSTR lpWindowName // ウィンドウ名
);

ここまで誰も気付かなかったな
すげぇw

179 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:12:44 ]
LPCTSTR型のクラス?

180 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:13:19 ]
ごめん
なんでもない



181 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:13:54 ]
ウィンドウクラスというのはだな・・・(ry

182 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:14:10 ]
>>176
> どうせやるなら終了もメインのプログラムからした方が
> 使いやすい(手間がかからない)と思ったからです

なるほど。

その子プロセスは、どういったものなの?

また、

その子プロセスの正規の終了条件もしくは終了手順は、
どういったものなの?

183 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:18:49 ]
なんという盲点

184 名前:153 mailto:sage [2008/04/24(木) 22:22:46 ]
>>182
1、ある時刻になったらBEEP鳴らして終了
2、文字列をある規則で別の文字列へ変換して待機(別ファイルを読み込む可能性があるため)
3、文字列から特定の文字を削除(同上)
etc
2と3はexit入力で終了です

185 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:49:39 ]
>>184
えーと、対話的に入力を受付けてるわけね。
で、exitとタイプしてリターンキーを押すと終了、と。

ならば、
WaitForInputIdle()
で入力待ち状態になるまで待ち、
コンソールに"exit\n"を送るのが、
正規の終了手段だと思う。

186 名前:153 mailto:sage [2008/04/24(木) 23:18:25 ]
>>185
sampleがSleep中でもWaitForInputIdle()の次の行へ進んでしまいました

>プロセスがコンソールアプリケーションである場合〜中略〜WaitForInputIdle 関数は即座に制御を返します。
とmsdnに書いてありました

187 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 23:25:47 ]
あーごめん、じゃぁ、ちょっと面倒だな。

そのsampleも自分で作っていて変更可能なら、
入力待ちするところで、イベントオブジェクトの状態をチェックして、シグナル状態なら終了するようにして、
親プロセスが子プロセスに終了してほしいときに、イベントをシグナル状態にしたらどうよ。

188 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 00:08:10 ]
WaitForInputIdleって対象プロセスが最初にGetMessageを呼ぶまで待機するとかそんな感じだったような

>>186
STARTUPINFO::hStdInput/hStdOutputあたりにMailslotのハンドルを渡せばできた気がする

189 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 09:48:31 ]
質問です


190 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 09:49:53 ]
なんすかwwwwwwwwww



191 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 11:39:07 ]
FileMonで"FASTIO_QUERY_OPEN"ってなるやつって、具体的にはどうやってファイルオープンしてるんでしょうか
NtCreateProcess()とNtOpenProcess()とNtCreateSection()の3つに
フックをかけて監視してるんだけどどれにも引っかからない

192 名前:デフォルトの名無しさん [2008/04/25(金) 12:06:41 ]
またネイティブAPIか

193 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 12:31:15 ]
xmlとかYAMLとかをhttpで送受信するのに便利な通信モジュールないかな。
WININETとMFCは試したけど、通信の待ち時間とかを有効に使おうとするととても書きづらい。

194 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 13:05:12 ]
本当に必要なのは通信の待ち時間とかを有効に使うための知識か

195 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:00:56 ]
通信の待ち時間を使って本を読んでます!

196 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:52:13 ]
ワロタ

COMでもいいのかな

197 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 14:57:53 ]
>>172
検索して見つかったコードを自分なりに書き換えるのもまたイイ

198 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 15:43:03 ]
boost::asio

199 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 20:14:40 ]
マルチスレッド化して、その内のあるスレッドで同期系のものによって通信するのも1つの手ではある。

200 名前:デフォルトの名無しさん [2008/04/25(金) 21:05:53 ]
TCP通信ってさ、勝手に同期とって転送してくれるんじゃないの?
俺、TCPで同期とか考えたことないんだけど。。考えが間違ってたらご指摘plz



201 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:16:26 ]
じっと待ってられないせっかちさんと、途中でキャンセルしたくなる優柔不断さんのため

202 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:26:36 ]
WinInetには非同期モードあるぞ、一応。

203 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:33:35 ]
DLLでエクスポートされたデータ変数について、
ちょっとお聞きしたいことがあります。

例えば、変数をエクスポートする際
 __declspec(dllexport) int *dll_val;
と宣言すれば、メイン側からこの変数は
 __declspec(dllimport) int **_imp__dll_val = &dll_val;
と同じように扱われると、最近msdnで知りました。
なので、メイン側からのこの変数への参照が、アセンブラレベルでは
 DWORD PTR [_imp__dll_val]
のようになると予想していました。

VC2005のデバッグモードでは、確かにそうなっていました。
しかし、リリースモードでは、なぜかそうなっていませんでした。
これに対応する個所が
 offset _imp__dll_val
のように書き換えられていたのです。

これを行うためには、_imp__dll_valのアドレスが事前に決まってなければならないと思うのですが、
ベースアドレスが固定のwindows dllで、このようなことは可能なのでしょうか?

204 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 21:51:41 ]
リロケート情報あるんじゃないのかな

205 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:01:45 ]
ベースアドレス固定ってntdllとkernel32ぐらいじゃね?(Vistaは知らん)

206 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 22:46:14 ]
>>191
おそらくは各ドライバ(ntfs.sysとかかな)のFastI/Oディスパッチルーチンの呼び出し

_FAST_IO_DISPATCH構造体でぐぐれば情報はでる あくまで推測だけど


207 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:10:38 ]
>>204
dllでリロケートする場合って、必要な全アドレスを書き換えますよね。
この場合、間接ポインタではなく'offset _imp__dll_val'で変数を使うことは可能なのでしょうか?

>>205
すいません。ベースアドレス固定ではなく、
「dllごとにベースアドレス固定」が正しい表現でした。

208 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:26:48 ]
ねぇ、もうWinFXみたいなのって作らないの?

209 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:29:19 ]
WinFXって.NET3.0だろ

210 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 23:34:25 ]
既に完成したものをまた作ってどうすんだろうね



211 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 00:06:16 ]
>>200
それ同期違う。
ここでの同期は、転送が完了してから制御を返すこと。
逆に、転送が完了するのを確認せずに制御を返す関数が非同期。

212 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:12:23 ]
入力されたパスのフォルダに入っているファイルを
リストコントロールに表示させているのですが、
この時のパスを格納するための配列は256バイトあれば大丈夫ですか?

213 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:13:54 ]
せめてMAX_PATH。

214 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:16:08 ]
成る程260バイトですか、ありがとうございます。

215 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 01:23:25 ]
>>214
そのレスだと平気で
p = (LPTSTR)malloc(260);
とか書きそうな雰囲気だな

まあ俺には関係ないからどうでもいいが

216 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 07:40:27 ]
>>215
そのように書く事によって何か問題が起こるとは予想がつかないのですが、
相応しくない書き方、という事ですね、
すみませんが、理由を知りたいです。

217 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 07:58:57 ]
261あったらどうするの?

218 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 08:30:11 ]
必要なだけ確保する
それが動的メモリ
逆に無駄な分は確保しない

219 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 08:35:13 ]
ちょっとまて、お前ら答えを教えてやれよw
まあ、自分で探すのも大切ではあるが。

220 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 09:13:07 ]
知らないならレスしないでください



221 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 09:52:51 ]
>>216
ヒント

#ifdef _UNICODE
 typedef wchat_t * LPTSTR;
#else
 typedef char * LPTSTR;
#endif

222 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 10:14:36 ]
>>212
んな事ぁ手前で好きに決めるもんだ。

223 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 10:35:43 ]
MAX_PATH * sizeof(TCHAR)

224 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 11:10:27 ]
知ってるならレスしないでください

225 名前:デフォルトの名無しさん [2008/04/26(土) 11:15:52 ]
↑話を理解してない馬鹿

226 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 11:17:17 ]
↑自演馬鹿

227 名前:デフォルトの名無しさん [2008/04/26(土) 11:20:41 ]
↑正解

228 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 11:39:27 ]
      _、_
    ヽ( ,_ノ`)ノ チッ、乗り遅れたか・・・
   へノ   /
┌→  ω  へ





229 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 12:15:23 ]
まだ誰も言っていないが、260じゃなくてMAX_PATHって定数使えよ。

230 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 12:24:36 ]
>>229
>>223



231 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 12:36:15 ]
MAX_PATHはかなり前に出てる
質問者が勝手に260に変換しただけ

232 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 13:06:42 ]
この中に、「MAX_PATH を超えるパス名など存在しない」と思ってる人が!

233 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 13:11:35 ]
そんなのexplorerだっていい加減だから気にしなくていい

234 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 13:15:23 ]
www.google.co.jp/search?q=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%90%8D+%E6%9C%80%E5%A4%A7

嘘書いてるのも多いしなあ(FAT32の話をしてるのかも知れんが)


235 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 13:20:11 ]
↑話を理解してない馬鹿

236 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:26:07 ]
double型の数値を表示するのに、

double dbl=1.23;
char res[32];
wsprintf(res,"%f",dbl)
SetWindowText(hWnd, res);

とするとfと表示されるだけです。
どこがおかしいでしょうか?

237 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:47:49 ]
>>236
L"%f"

238 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:49:19 ]
wsprintfは実数使えないよ

239 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:05:48 ]
せめてMSDNでAPIの説明を読んでから質問しろよ

240 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:06:22 ]
StringCchPrintf



241 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 19:45:36 ]
>>237-240
超亀ですが、ありがとうございました。
もっとちゃんと勉強しなおします。。

242 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:13:13 ]
>>191
ttp://web.archive.org/web/20030625222552/www.osr.com/ntinsider/1996/fastio.htm


243 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:14:39 ]
wsprintf の 'w' って "Windows" のことだよね?
lstrcpy の 'l' はさっぱり分からん

244 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:19:29 ]
同じように95時代のソースみてると _lopen とかつかってて _l ってなによって思う


245 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:38:55 ]
LPSTRと同じようにlong pointerじゃないの?

246 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:39:42 ]
指定の他のソフトにきているメッセージを調べる方法ってありませんか?

247 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:48:22 ]
グローバルフック

248 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:58:24 ]
lsprintfでも良かったのにwsprintfなのが謎
kernel32.dllじゃなくてuser32.dllにあるのも謎
しかもWin9x系だと実体はkernel32.dll内にあってuser32!w(v)sprintfは実体にjmpしてるだけだし

249 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:00:35 ]
swprintf と wsprintf があるからややこしいんだよな。
しかもそれでいて wsprintf は %f がないという大きな仕様の差があるし。

250 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:07:23 ]
CRT: sprintf, swprintf
Win32: wsprintf

CRT: vsprintf, vswprintf
Win32: wvsprintf

CRT: _snprintf, _snwprintf
Win32: wnsprintf

CRT: _vsnprintf, _vsnwprintf
Win32: wvnsprintf

>>249
それだけじゃないぞ。
wsnprintf じゃなくて wnsprintf とか、もうアホかと。



251 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 04:42:39 ]
>>250
こういうの、1〜2回/年くらいしか趣味でWinアプリをつくらない
ハード屋のおいらにはつらい

252 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 05:07:35 ]
シーケンシャルで読み捨てるんだったら
メモリマップトファイル使っても効率落ちるだけですかね?

253 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 06:03:19 ]
読み捨てるのに明示的にマップする必要なんてあんのか

254 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 08:03:24 ]

ReadDirectoryChangesW() を同期モードでワーカースレッドで使用した場合に,
メインスレッドから制御を変えさせる(中断させる)方法ってありますか?

255 名前:デフォルトの名無しさん [2008/04/27(日) 11:04:31 ]
multimedia timerとhigh-resolution timerの使い分けはどのようにすればいいのでしょうか?

256 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:09:24 ]
気分しだい

257 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:17:27 ]
同期用のディレクトリハンドルを閉じてみるとか

258 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:38:51 ]
>>252
数MBくらいのファイルだが、
シーケンシャルな読み取りしかしないときにメモリマップしたら、
バッファリングありで普通に読み取るよりは速かった覚えがある。

259 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:41:45 ]
バッファリングぐらい自前でしろよ

260 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:43:18 ]
>>257
今やってみたけど制御帰らなかった…(´・ω・`)



261 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:36:16 ]
1.clやgccでコンパイル・リンクして出来上がった*.exeファイルは、
 CPU(ペンティアム等)が直接理解できる形式のファイルなのでしょうか?
2.上記の答えが「直接理解できないファイル」の場合。
 CPUが直接理解できるファイルを、clやgccで作成することは出来ますか?
 
質問の意図。
出来るだけ速く動作させたいとか直接的な理由はありません、
知識として知っておきたいのが質問の意図です。

262 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:37:42 ]
ほぼ直接理解できる形式になっている。
ほぼってのは、プログラムをメモリ上にロードする際に
OS が少し手を加えるから。

263 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:44:42 ]
そもそもCPUは命令をデコードしてから実行してるからCPUが直接理解できるなんて有り得ない訳だが

264 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:51:20 ]
デコーダも CPU 内にあるし

265 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:57:23 ]
いや、IntelやAMDが配ってる命令リストに記述されてるもんであれば
直接解釈しているとみなして良いと思うが

266 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 18:15:32 ]
>>261
exeやdllは必ずしもCPUネイティブなマシン語とは限らんぞ。
/clrでコンパイルしたらMSILになるからな。

267 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 18:17:04 ]
そうか cl だとそれがあったか

268 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 20:11:29 ]
マイクロプログラムってソフトウェアなのかハードウェアなのかよくわからんよな。

269 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 02:47:55 ]
Win32APIで.NETのexeからリソースを取り出すのってどうすればいいの?
FindResourceじゃ取れないし

270 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 03:06:49 ]
アンマネージホスト用のインタフェース・関数がmscoree.dllとかから出ているから、
それを使ってやればいいんじゃないかな?

CLRを読み込んで、アセンブリ (EXE)を読み込んだら、
あとはCOMインタフェースで.NET Frameworkクラスライブラリを使う。
実際できるかどうかわからないけど、100%ネイティブでやれるとしたらこんな感じのはず。



271 名前:デフォルトの名無しさん [2008/04/28(月) 04:50:39 ]
>>270
それネイティブじゃないだろw

272 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 15:36:29 ]
GetGlyphOutline で TrueType font の情報を取ってきているんですが、
OUTLINETEXTMETRIC 構造体の otmsCapEmHeight って何の値が入っているか
知っている方いらっしゃいますか。

MSのヘルプ系には Not supported.ってしか書いてないんですよね

そのわりにはしっかり値入ってるし、どうもほしい値っぽいし・・・

273 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 15:46:02 ]
Caption Embed Height
キャプションに配置した時の高さ


勘で言った。気にしないでくれ

274 名前:デフォルトの名無しさん [2008/04/28(月) 15:46:22 ]
32bitOS上で、32bitアプリは特別なことしないとユーザー2GB、
カーネル2GBですよね。

64bitOS上だと、この2GB&2GBは変わらないのでしょうか?
ちとスレ違いかも知れんけどWin32アプリの仕様に関してなので、
ここで質問してみました。

ググっても資料見つかんなかったです。検索下手ですね。すみません

275 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:03:00 ]
>>274
これがそれっぽい?
msdn2.microsoft.com/en-us/library/aa384219(VS.85).aspx

>On the x64 processor, each 32-bit application receives 4 GB virtual address space in the WOW64 environment,
>if the application has the IMAGE_FILE_LARGE_ADDRESS_AWARE flag set in the image header.
>If this flag is not set, the 32-bit application receives 2 GB virtual address space.

276 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:07:54 ]
64bitOS上で、32bitアプリってこと?
リンカでスイッチ入れない場合は上限2GBでかわらない。
入れた場合は4GBまで使える。

277 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:15:25 ]
>>276
一つ上のレスも見えんのか

278 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:42:04 ]
>>277
お節介な話だが、>>276 氏は>>274 を見てレスを考えている最中に先に
>>275 が入って、ちぐはぐになったんじゃね。

279 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:46:20 ]
ファイルパスが長い場合に途中を...に置き換えてくれる関数みたいに
指定された長さ以下になるまで8.3形式に縮めてくれる関数ないですか。

280 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:52:47 ]
>>278
つまりこういう事か
ケコーンしる>>276>>277

>>279
> 指定された長さ以下になるまで8.3形式に縮めてくれる
何が言いたいのかさっぱり分からん



281 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:53:30 ]
まつがえた
ケコーンしる>>275>>276

282 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:00:00 ]
>>279
上のほうはPathCompactPath(Ex)

283 名前:282 mailto:sage [2008/04/28(月) 17:01:52 ]
質問ちゃんと読んでなかった。忘れて

284 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:21:02 ]
なんでお前らそんなに物知りなんだ……?

285 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:25:28 ]
・指定された長さ以下になるまで縮める
 PathCompactPath、PathCompactPathEx、DrawTextEx

・8.3形式に縮める
 GetShortPathName

・指定された長さ以下になるまで8.3形式に縮める
 ???

286 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:01:35 ]
>>275>>276
ありがとん
例の3GBスイッチ入れたら64bitOS上でユーザー4GBですね。
もうこれで十分だああああ。
64bitアプリを作るのはいつのことになるやら…

287 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:45:30 ]
>>272
ぐぐっただけだが。
ttp://source.winehq.org/source/dlls/gdi/freetype.c?v=wine20011226
には「potm->otmsCapEmHeight = pOS2->sCapHeight」と書いてある。

で、「sCapHeight」を調べたら
ttp://www.microsoft.com/OpenType/OTSpec/os2.htm
This metric specifies the distance between the baseline and the approximate
height of uppercase letters measured in FUnits. This value would normally be specified
by a type designer but in situations where that is not possible, for example when a
legacy font is being converted, the value may be set equal to the top of the unscaled
and unhinted glyph bounding box of the glyph encoded at U+0048 (LATIN CAPITAL
LETTER H). If no glyph is encoded in this position the field should be set to 0.

This metric, if specified, can be used in systems that specify type size by capital height
measured in millimeters. It can also be used as an alignment metric; the top of a drop
capital, for instance, can be aligned to the sCapHeight metric of the first line of text.

288 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:57:02 ]
日本語でおk

289 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:08:53 ]
wineのソースかよ

290 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:26:35 ]
>286
例の3GBスイッチって何?



291 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:32:24 ]
>>290
link.exe /LARGEADDRESSAWARE

292 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:34:42 ]
どこらへんが3GBなの?

293 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:36:45 ]
ヒントもらったんだから少しは調べて聞けよ・・

294 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:45:32 ]
boot.iniに仕込むほうの/3GBと紛らわしくてイケナイし、
内実がしめしているものと意味合いが異なりすぎるのに
LARGEADDRESSAWAREを3GBスイッチとか言うのはなぜ?

295 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:56:53 ]
↑話を理解してない馬鹿

296 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:16:48 ]
>>252
実際にやったことある。
もう必要ないページが物理メモリに残って、また必要になるページが追い出されて、
ぐだぐだな状態になったよ。

ワーキングセットを自分でトリムすりゃいいんだろうけど、
そしたら自分に必要なページまで削られちまうかも。

297 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:34:59 ]
>>294
大いに関係ある。
/LARGEADDRESSAWARE付けたEXEが実際に2GB超のメモリを使うには、
boot.iniで/3GBを入れていないといけない。
(あるいは上に話があったように64ビットWindowsにするか)


298 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:41:52 ]
2000だとシステム空間は減るのにユーザのメモリ空間は変わらないんだよな、確か

299 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:43:14 ]
煽り目的の人はシンデイイヨ

300 名前:272 mailto:sage [2008/04/29(火) 01:22:40 ]
>>287
ありがとう
そのあたりも調べてみます。



301 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 01:54:18 ]
すみません。質問させていただけますでしょうか。
今現在、SetTimerを用いてWM_TIMERを送ってもらっているのですが、
タイマーの精度が低いので、timeGetTime関数を使ってみようと思ったのですが
これがうまくいきません。
具体的なやり方のようなものをご存知の方がいらっしゃいましたら、ご教示くださいませ

302 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 01:59:20 ]
マルチメディアタイマーつかっとけ

303 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:32:29 ]
パフォーマンスカウンタで測りながらループが最強だと思う

304 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:33:56 ]
ちゃんとループにSleep(0);を挟んでおけよ

305 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:44:29 ]
system("cls");
みたいな動作する関数って何ですか?

306 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:47:23 ]
VOID SystemCLS(VOID){

system("cls");

}

307 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:51:09 ]
system("cls");
これを使わなくてもコンソール画面をクリアして
カーソルを一番左上に持っていく事はできますか?

308 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:51:36 ]
>>306 それじゃWinAPI関係ねぇだろw

309 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:03:37 ]
CreateProcessに変更すればおk

310 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:05:13 ]
msvcrt.dllがKnownDLLsの一つだからCランタイム関数もWin32APIだろう
まあ"msvcrt.dll"にリンクできるコンパイラ(VC6,DDK,gccなど)を使ってればの話だが



311 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:18:02 ]
>>307
できます。

312 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:19:54 ]
どうやって?

313 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:21:34 ]
非同期でwav再生してて、wavの再生位置が1分に来たら
このメッセージを表示

とかどうやったらできる?

314 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:10:40 ]
sndPlaySound("c:\\test.wav", SND_ASYNC);
Sleep(60000);
MessageBox(NULL, "このメッセージを表示", NULL, 0);

315 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:40:57 ]
>>301
マイクロソフトのサンプルはすべてチェックしたか?

>>303
パフォーマンスカウンターは正確とは限らない。
一部のCPUでは、CPUが省電力機能でクロックが低下すると、パフォーマンスカウンターまで遅くなる。
また、複数のコアを持つCPUでは、パフォーマンスカウンターの読み出しには結構なコストがかかる。
(かといってRDTSC命令(だったかな)を直に呼ぶのはダメだ。マルチプロセッサやマルチコアなど、
カウンタが複数ある場合、それらが同一にカウント開始するとは限らないからだ。)

316 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:40:58 ]
GetAsyncKeyStateでキーの押下状態を取得したんですが、
3つ以上のキーを同時に押下するとき、いくつかの組み合わせでは最後に押したキーが押下されてない事になっています。
たとえばASDやSDFなどでは3つとも取得できていますが、
DFGやHJKをD→F→GやH→J→Kの順番で押していくとDFやHJの2つしか押下されてない事になっていて、
同様にD→G→FやH→K→Jの順番で押していくとDGやHKの2つしか押下されていない事になっています。
何か解決のヒントでもあれば教えてください。
ちなみにGetKeyStateやGetKeyboardStateを使っても同様の現象が発生していました。


317 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:44:20 ]
>>307
MSDNライブラリで、
WriteConsole
のページを開いて目次を同期し、そこのあたりのAPIを一通り見れ。

318 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:45:14 ]
>>314
Sleep(60000)が同期だろうが。

茶化した回答しかできんなら黙っとれ。

319 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:47:51 ]
>>316
まずは、あなたの使っているキーボードが、Nキー・ロールオーバーを保証していることを確認せよ。
また、同時押下のキーに制限がないことを確認せよ。

そこいらのキーボードはコスト削減のために、
(シフト系の同時押下前提のキーを除いて)
複数のキーの同時押下を検出できない
または、誤検出するような設計になっている。

320 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:54:25 ]
>>319
あー・・・なるほど。
1000円くらいの安物なので多分対応してないでしょうね・・・。
確認してみます。
ありがとうございます。




321 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:59:18 ]
Nキー・ロールオーバーを謳ってるキーボードでも、
PS/2接続ならOKだが、
USB接続だと6キーまでという制限があったりするらしいぞ。

322 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 06:38:42 ]
PS/2接続のRealforce使ってるから、GetKeyboardStateで試してみたら、
本当にいくらでも同時押し下げを認識するのな。
別に無制限の同時押し下げのために使ってるわけじゃないが。

323 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:42:55 ]
>>318
sndPlaySound("c:\\test.wav", SND_ASYNC);
CloseHandle(CreateThread(..., ThreadFunc, ...));

DWORD WINAPI ThreadFunc(void* p)
{
 Sleep(60000);
 MessageBox(NULL, "このメッセージを表示", NULL, 0);
 return 0;
}

324 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:13:46 ]
というか>>314のレス内容からこの程度の応用すら思い付かない奴は
プログラマに向いていないので転職をおすすめする

325 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:22:24 ]
sndPlaySound使う時点でプログラマに向いてないと思うがw

326 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:25:16 ]
非同期ってのは、そういう意味じゃないだろ。

327 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:27:09 ]
>>314>>323は、
60秒後に
このメッセージを表示
することだよな。

それを求めていたら、そういう質問になるだろう。

328 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:30:04 ]
>>313の質問は、

> 非同期でwav再生してて、wavの再生位置が1分に来たら
> このメッセージを表示

である。

言葉を補うと、

すでに非同期で再生しているwavが、
その再生位置が1分のところに来たら
このメッセージを表示

となるだろう。

どこまで再生しているのか不明な以上、
Sleepなんかじゃ話にならない。

329 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:31:42 ]
wavの再生速度を変えないなら、再生位置が1分になるのは再生してから1分後だろう

330 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:33:04 ]
音とびなどの特殊状況を考えなければね



331 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:34:08 ]
今時wavの再生ごときで音とびなんてするかよ

332 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:35:46 ]
>>331
こういう奴って、実際にやったことないんだろうなぁ

333 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:39:15 ]
>>332
仮に音とびしても「再生位置1分」と実時間とのずれなんて誤差範囲だろ
お前のPCでは1分のwavを再生するのに2分かかるほど音とびするのか?

334 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:44:03 ]
sndPlaySoundから制御が返った瞬間に、再生開始されてると、いったい誰が保証してくれるんだ?
保証されていないものに頼ることこそ、プログラマに向いてない。

メモリ上にwavを読みこんであったとしても、そいつが物理メモリ上になかったら?

ファイルから直に再生するときに、CD-ROMなどのアクセスに時間のかかるデバイス上にあったら?
しかも、同時に他のアクセスが発生して、当該ファイルの読込みが途切れたら?

>>329
ループ再生していたら、再生開始から1分後とは限らない。
それに、先頭から再生しているのかどうかも、わからんし、
途中で一時停止するかもしれん。

335 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:50:28 ]
>>334
お前ムキになりすぎ

そもそもsndPlaySoundは一時停止なんてできないし、
そんな事を言い出したらDirectSoundのコールバックやらを使っても正確に1分かどうかなんて分からんぞ

336 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:04:22 ]
目的によって手段を選べばいい

337 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:06:28 ]
ノートPC動かすとHDDのヘッドがリトラクトして簡単に音飛びするよ。
それも3秒とかの単位で。
Sleepで時間あわせなんてナンセンス。
定期的に再生位置を読みにいくしかないんじゃね。

338 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:14:25 ]
> ノートPC動かすとHDDのヘッドがリトラクトして
そんな使い方してたらHDD壊れるだろw

339 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:58:35 ]
>>335
sndPlaySoundを使うことを前提にして話をするなよ。

340 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:05:13 ]
>>338
壊れないんだな、これが。

何年も前から、ノートPCのHDDには加速度センサが付いていて、
動きはじめた時点でヘッドを安全領域に移動させはじめるのよ。
衝撃が加わるであろう頃には、かなりの衝撃に耐えられる状態になる。




341 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:11:51 ]
お前ら雑談はそろそろ終わりにしろ

342 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:15:25 ]
DirectSoundって廃止されるんじゃないの?
XAudioのせいで。

343 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:26:38 ]
>>342
ソースどこだよヴォケ

344 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:29:30 ]
VIPに帰れよおまえら

345 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:45:35 ]
Win32APIの質問しにくい状況だよね。。
MFCやらDirectXやら雑談スレになってる

346 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:47:08 ]
質問してくれくれ

347 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:47:35 ]
次スレからはWin32API雑談箱でいいだろ

348 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 10:47:35 ]
約一名、わざと変な回答をして荒らしている人がいるからなぁ。

349 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:11:19 ]
pc11.2ch.net/test/read.cgi/tech/1201567967/l50
ここの芝君じゃね?

350 名前:313 mailto:sage [2008/04/29(火) 11:31:09 ]
タイヘンな事になってしまったみたいでナンカゴメン・・・

>>337の>定期的に再生位置を読みにいくしかないんじゃね。
ってどうやればできる?



351 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:32:43 ]
DirectSoundならわかるよ

352 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:33:21 ]
早速の回答ありがと

ほんとごめんね

353 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 11:52:17 ]
msdnしんでない?

354 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 12:01:13 ]
生きてた

355 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 12:15:23 ]
Content not found って表示されるorz

356 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 12:53:12 ]
Sleep( DWORD ms)
このAPIが呼び出されてスレッドが休止された時点から少なくとも
msミリ秒はスレッドの再開が無い。
但しSleep内でスレッドが休止され再開されるまでブロック
(戻ってこない)ことが保証されているかどうか不明
(仮に現時点そうだとしても将来に渡る永続的な保証は無いと思うべき)
最も無難な解釈は、「このAPIが呼び出されてから次のスレッド休止期間
がmsミリ秒以上であることが保証される」
といった程度。
こういうのをドキュメントから読み取れないとな。
>>314の解答は、ある意味最適解だよ。APIの利用法で実績例が少ない
ものは安全性が低くなる。
殆どのAPIは他の目的で作られたもので汎用性を考えて作られていないし、
今更作り直すことすら出来ない。(その意味で仕様が安定してるという
理由だけで使われているとすら言える)
あくまでも使用者の自己責任という前提でエクスポート(渋々に使用許可)
されてるものに過ぎない。

357 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 12:58:18 ]
>>355
移動したみたいよ


358 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 13:31:08 ]
>>356
もうそういうつっこみはいんでない?
ネタをネタとして(ry

359 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 13:32:07 ]
彼のGWを費やしてゴミレスをまきつづけるという決心は誰にもいさめられはしないのだ。

360 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:16:51 ]
sndPlaySoundする前にCreateThreadで別スレッド作って、
別スレッドでSleep(60000)でその後にメッセージ出せば良いと思う。



361 名前:デフォルトの名無しさん [2008/04/29(火) 14:20:54 ]
WindowsVistaでサービスアプリケーションを作ってるんですが、
タスクトレイ(通知領域)にアイコンをだすにはどうすればいいですか?
XPではNotifyIconを使って動いていたのですが、
Vistaではセッションが分離されたようで動かなくなりました。
よろしくおねがいします。

362 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:21:02 ]
公開WindowsAPIだけを用いてまともな(信頼出来る)
リアルタイムアプリ作るのは不可能だと思う
それが嫌ならWindows使わないほうがいいと思う

363 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:38:02 ]
>>362
はぁ?

364 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:38:41 ]
>>361
タスクトレイアプリを別exeで作って
そいつをCreateProcessAsUserだかなんだかでデスクトップに注入しろ
タスクトレイアプリとの通信方法は自分で考えろ

365 名前:デフォルトの名無しさん [2008/04/29(火) 14:43:07 ]
>>362
話を理解してない馬鹿

366 名前: mailto:sage [2008/04/29(火) 14:45:54 ]
話を理解してない馬鹿

367 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:52:22 ]
↑話を理解してない馬鹿

368 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:53:42 ]
春だねぇ

369 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:56:19 ]
Windowsにまともなリアルタイム性が期待できないことぐらい誰でも知ってるし誰もそんな話はしていない
そうやって勝手な雑談ネタを持ち込もうとしたら叩かれて当然

370 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 14:56:34 ]
同じ宛先の郵便物を別のポストに僅かな時間差で入れた場合
先に入れたほうが先に届くことが保証されるか?
常識と教育が必要な知識との微妙な境界領域だろうが
一般的には保証されてると信じたほうが悪いと判決される。



371 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:03:50 ]
保証されると信じるわけのないことを喩えに出されても困るが。

372 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:04:54 ]
質問者が質問する
    ↓
質問内容が飛躍してスレ住人が雑談
    ↓
エスカレートしすぎて当事者以外は手がつけられなくなる
    ↓
質問者が「ごめんなさい」レス


この流れの永久ループだな
謝るべきは雑談しているカス共だろ

373 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:34:50 ]
みんな自己表現しすぎなのが問題かと・・・

374 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:35:32 ]
「俺はこんな事まで考慮した上でレスしてんだぞ フフン」ってのがそこらじゅうのレスから感じられる
だから何?って感じなんだが


375 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:43:16 ]
API仕様情報なんて所詮、うわさ話の域を出ない。
だから、話が脱線していくのは仕方がないでしょ
誰も本当の事知ってる訳じゃないし。
断片情報のよせ集めでしかないからね。

376 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 15:44:37 ]
>>375
お前が雑談の元凶か

377 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:02:55 ]
MSDNからDirectShowの日本語ドキュメントすべて削除されたみたい

378 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:38:35 ]
XP、Vistaで時間が経過した場合にシステムがスクリーンセーバーを起動できるかを
取得したいのですが、良い方法がありましたらアドバイスお願いします。

・分かっていること
スクリーンセーバーの有効無効、SCRファイル名は SystemParametersInfo で取得
SCRファイルが存在するか否かは GetFileAttributes や FindFirstFile など

・詰まっていること
アクティブウィンドウが WM_SYSCOMMAND の SC_SCREENSAVE をどう処理するか

・試してみたこと/調べてみたこと
DefWindowProc の APIフック後、SC_SCREENSAVE を投げて届くか監視
  ダイアログアプリでは呼ばれず、GINA の WlxScreenSaverNotify での拒否も未考慮で×
GINAを実装し、SC_SCREENSAVE を投げて WlxScreenSaverNotify が呼ばれるか監視
  VistaではGINAが廃止され、ISensLogon::StartScreenSaver は代替にならず×
CreateDesktopW/A を APIフック後 SC_SCREENSAVE を投げて "Screen-saver" な
デスクトップ作成要求が発生するかを監視
  winlogon.exe に対しては APIフックが失敗してしまい×

・スキル不足で試せていないこと
NtUserCreateDesktop をカーネルAPIフック後 SC_SCREENSAVE を投げて、以下略

そもそも、ただスクリーンセーバーが起動出来るか確認したいだけなのに
APIフックまで持ち出さなければならないのか…。

379 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:42:46 ]
上にもあるけど
非同期wav再生
→再生位置取得
→位置により別の文字(歌詞でも)表示
ってSleepが手っ取り早いんかな

歌詞表示はコンソールなんだけど・・・

380 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:47:29 ]
>>378
そもそも何でもAPIフックで済まそうという思考が以下略



381 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:58:11 ]
>>379
www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_getpos.html

こんなんどう?使い方わからんけど
誰か頼むorz

382 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:02:55 ]
例えば
/* 取得の前準備 */
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
/* 再生位置取得 */
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
/* 終了 */
見たいな感じで 最小コード誰かplz

383 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:08:38 ]
いい加減うざい
ttp://www.google.com/search?q=wav+%E5%86%8D%E7%94%9F%E4%BD%8D%E7%BD%AE+%E5%8F%96%E5%BE%97

384 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:17:23 ]
>>380
全くその通りなのですが、色々調べた結果APIフックにいってしまいました。
APIフックがしたいわけではないので、どなたかよい方法があれば…。

385 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 17:39:41 ]
スクリーンセーバーの実行処理なんてのはシステムの管轄だから、アプリ側では
それを抑止する(WM_SYSCOMMAND/SC_SCREENSAVEに応答する)以上は触るなという事だろう

要するに
「スクリーンセーバーを起動できるかどうか」
ではなくて
「スクリーンセーバーが起動されようとしている時にどうするか」
だけを考えろ、と。

386 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 18:24:06 ]
>>361>>378も無理
Vistaは糞

387 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 19:53:21 ]
今更だがDirectSoundには結構前から死亡宣告が出てるよ
www.4gamer.net/specials/tooearlytogetvista/003/tooearlytogetvista_001.shtml

388 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 20:54:31 ]
>>361
サービスが直にアイコンを出すのではなく、
ログオンしているユーザと対話するためのEXEを作り、
そのEXEがサービスと通信して適宜、アイコンを表示すべし。

389 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 20:56:56 ]
>>374
いろいろと考慮して、行儀良くAPIを使うのは、基本中の基本。
たまたま動いているからOKという考え方だと痛い目にあう。

>>364
> そいつをCreateProcessAsUserだかなんだかでデスクトップに注入

スタートアップに登録でいいと思う。

390 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:15:14 ]
>>387
2chステレオでただ音を出すだけなら、今後も、互換性あるんじゃない?



391 名前:デフォルトの名無しさん [2008/04/29(火) 23:13:07 ]
>>356
こういうことじゃないのか。
>0 を指定すると、スレッドは、実行の準備ができている同じ優先順位の
>ほかのスレッドに残りのタイムスライスを譲ります。

>>375 同意。本当の事はバージョン限定。

392 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:18:23 ]
>>389
たまたま動いてるからOKだなんて言わなかったけど?(笑)

393 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:23:56 ]
明示的には言ってないが、暗にそういう前提で話をしてたろ。


394 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:25:00 ]
うるせぇよ雑談で荒らすな

395 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 23:30:31 ]
>>393
してないよ?
それは単なる君の憶測。


396 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:49:06 ]
>>387
その記事を書いた時点で記者はXAudio 2のことを全く知らなかったみたいだがな。

397 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 03:09:28 ]
>>385
レスどうもです。一筋縄ではいかなそうですね。
NtUserCreateDesktop のフックを試してみて、無理そうだったら
アイディアがもう無いので諦めたいと思います。

398 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 03:20:33 ]
なぜスクリーンセイバーが起動できるか取得したい動機を知りたい

399 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 05:56:50 ]
NtUserCreateDesktop ってエクスポートすらされてないじゃん
スクリーンセイバー相手に超乙

400 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 06:30:33 ]
APIで出来ないことには手を出すなってのがMSの考えだろ

大体NtUserCreateDesktopなんて名前からしてモロNT依存だし
Win32がNT専用じゃない(なかった)事を考えるとその行為がいかに馬鹿げているか分かるだろうし
そんな事にいちいちSSDTフックを持ち出していたら何のためにAPIがあるのか分からん



401 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:06:45 ]
それは真のプログラマとはいえない。

UndocumentedなAPIを使いこなしてこそ、真のプログラマというものだろう。

公開APIなんぞ、M$の手のひらで踊らされているだけに過ぎない。




おれは公開APIしか使わないけどね。

402 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:08:29 ]
対案も出せないくせに、なぜそこまで否定するのかわからん
質問者もその辺は重々承知だろうし、勝手にやらせればいいだろ

403 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:08:48 ]
俺様定義の「真のプログラマ」なんて持ち出されてもなぁ。

ていうか「真のプログラマ」ってネタだよな。

404 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:09:47 ]
>>402
何が目的なのか、わからないから、
代替案を提案しようがないのだが。

405 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:32:35 ]
こういう、荒れるor雑談となる原因を質問者自身が持ち込むのも勘弁してほしい。

IsScreenSaverEnabledなんてAPIが無い以上Win32APIレベルで無理なのは重々承知のはず。
その上でカーネルAPIのフックなどを持ち込んで「他に良い方法ありませんか?」なんて
正直、知識をひけらかしたいだけじゃないのかとも思ってしまう。

406 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:42:15 ]
知らなきゃ黙ってればいいだけだろ

407 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:44:35 ]
また温め納豆か?

408 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:11:42 ]
調べてないから適当な事言うけど、
スクリーンセーバーの基本設定はレジストリに書かれてる訳じゃないのか?

409 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:24:02 ]
>>408
いまスクリーンセーバーを起動しようとしたら、
誰がそれに反対するかは、
実際にお伺いを立ててみないとわからないのよ。

410 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:31:46 ]
誰がそれに反対するのか調べるためだけにカーネルモードドライバを組み込むのか
馬鹿馬鹿しい



411 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:33:15 ]
ああ、起動が阻害されるかどうかをチェックしたいのか・・・。

412 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:37:53 ]
じゃあスクリーンセーバ起動してみたらいいじゃん

413 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:39:59 ]
誰が起動を阻止するかなんてのはお前の気にする所ではないということだ
他のプロセスが何をしようが知ったことではない、マルチタスクの基本
それが分からんようなら勝手にドライバでも何でも作ってろ

414 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:43:47 ]
×誰がそれに反対するかは
○誰かがそれに反対するかは

415 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:44:14 ]
分からない人のレス要らないから。

416 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:50:01 ]
特に何もしないスクリーンセーバーを作って、
スクリーンセーバーを一時的にそれに変更し、それを起動してみる。
起動できた場合はそのスクリーンセーバーからメッセージを送ってもらう。

こんなんでどうなんだ?

417 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 08:51:39 ]
>>415
「知っている」という事象が存在しない命題に対して「知らないならレスするな」は矛盾している。
つまり、お前も>>406も質問者の>>378自身も単なる荒らしに過ぎないということ。

418 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 09:13:59 ]
>>417
論理学を勉強しなおしましょう

419 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 09:17:02 ]
自身の正しさを証明できませんってことで

420 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 09:17:50 ]
return false;



421 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 10:45:50 ]
Win32APIで出来ない事は「知っている」

422 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 11:44:13 ]
休日に話進められても参加できんな−

423 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:11:11 ]
俺と話すか?

424 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:30:32 ]
今時Win32APIなんて雑談のネタにしかならないのがよく分かるスレだな

425 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:31:21 ]
雑談スレへようこそ

426 名前:デフォルトの名無しさん [2008/04/30(水) 13:31:55 ]
荒らすなよ。興味ないのなら別のスレ行けよ。
わざわざwin32API勉強してる奴の妨害しなくてもいいだろ?
嫌がらせ受ける側の気持ちになれよ

427 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 13:33:31 ]
ごめんね

428 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 13:34:03 ]
すんませんでした…

429 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:04:59 ]
>>426
荒ら
   わざ
       受け

430 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:14:53 ]
今更win32apiを勉強するなんて時間の無駄
他の勉強時間に使え



431 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:24:44 ]
それは言い過ぎ
Windowsを使う場合APIは避けて通れない道の一つ
でもCやVC++でするのは、迂遠かもな。

432 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:30:48 ]
っ C#&WPF

433 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:40:31 ]
VBやDelphiから入った連中はCreateProcessの引数すら覚えてないコピペ職人ばかりだろw

434 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:41:21 ]
WPFで作られたまともなモノを見たことないんだけど

435 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:45:10 ]
また水掛け論の悪寒

436 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 14:53:58 ]
>>433
んなもん覚えるのは脳細胞の無駄づかい。

IDEなら引数の形式が表示されるし、
そうでないにしても、
MSDNライブラリで引けば一瞬で表示される。


437 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 16:02:17 ]
俺もCreateWindowExとか未だに引数覚えてないな
だってVB5/VC6未満の開発環境使った事ないし

438 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 16:26:22 ]
俺が引数を覚えているAPIなんてSleepと引数無しのやつだけだ。
他はIDEのヒントがないと自信ないな。

439 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 16:27:42 ]
そんなん使いまわし(過去に使ったソースからコピペetc)でおk

440 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 16:29:33 ]
オレも引数なんてほとんど覚えてないがCreateFontは大体そらで書ける気がする



441 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:00:46 ]
>>440
ほとんど 0 でいいからな。

442 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:00:50 ]
ウィンドウメッセージやウィンドウスタイルの一覧はどこで定義されていますか?

443 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:01:42 ]
ヘッダのフォルダに検索掛ければいいだろ!!!!!11

444 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:07:56 ]
大抵はWinUser.h,CommCtrl.hあたりか

445 名前:デフォルトの名無しさん [2008/04/30(水) 17:13:14 ]
いきなりですが、質問です。
Office Word にAPIを使って文字を入力したい(普通の文章)のですが、
たとえば、ExcelのVBAを使用して、sheetのセルに入力された文字列
を自動的にコピーして貼り付ける(でなくてもイイんですが)にはsendmessageでWM_SETTEXTや、
WM_PASTEなどを試しましたが上手くいきませんでした。

ネット検索でよく出てくる、メモ帳へのSendmessageでは上手くいきましたが
Wordだと上手くいきません。
フリーソフトを使用して、_WwG(ウインドウの位置も視覚的に捉えられるソフト
なので、キャレット?のある部分)というクラス名まではたどり着き、10進の
ウインドウハンドルを直接入力して、試していますがダメでした。

これはSendmessageの送り先が間違っているのか、
そもそも、この方法が通用しないものなのかわかりません。

ここ数日間まったくお手上げ状態です。。。

ちなみにSendKeysなど、keyストロークを送るものではなく、
あくまでも、テキストを直接的に送ることを前提にしています。

このWordに対しての送信?が上手く行った場合、他のソフト(Officeアプリではない)
への応用を考えており、その練習用としてなのですが、
何か汎用的な方法があるものなのでしょうか?

また、メモ帳で上手くいって、Wordで上手くいかない理由とは
(いろいろあるとは思いますが)なんでしょうか?

どなたかご教授ねがいます。

長文申し訳ありません。


446 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:21:47 ]
>>445
Office系は独自コントロールだからWM_**系は使えないよ
OLEオートメーションとか使うべし

447 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:26:08 ]
>>445
教授できるほどAPIに詳しくはありませんが、Office系の他にもゲーム類は受け付けない可能性が高そうですね。
ターゲットアプリが判っているのなら、そのアプリでテストする方が無難でしょう。

448 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:31:40 ]
>>443,444
どうもありがとうございます。

それと、もうひとつ質問があってあるウィンドウからスタイルを数値として取得したときに
それと対応する文字列?(例えば54310000なら
WS_CHILDWINDOW
WS_VISIBLE
WS_CLIPSIBLINGS
WS_VSCROLL
WS_HSCROLL
WS_MAXIMIZEBOX
を)
を取得したいと思っているのですがどのようにやればいいのでしょうか?
教えていただければ幸いです。
よろしくお願いいたします。


449 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:36:42 ]
spy++

450 名前:445 [2008/04/30(水) 17:40:28 ]
>>446
>>447

どうもありがとうございます。

OLEオートメーションを勉強して使ってみます。




451 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:43:12 ]
>>450
随分と>447に対して失礼なレスだな。無視するならアンカー書かなきゃいいじゃん。

452 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:46:21 ]
>>451
「どうもありがとうございます。」だけが>>447へのレスだろ

453 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:47:14 ]
>>433
ぱらめーた覚えてるって自慢されてもなあ。
APIなんか一度サブクラス化してから使うから、パラメータなんかいちいち覚えないよ。


454 名前: [2008/04/30(水) 17:49:04 ]
Pythonで行列の計算ってどうやればいいんですか?


455 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:49:35 ]
>>448
ビットが立ってるかどうか調べて、自力でやるしかない。

456 名前:445 [2008/04/30(水) 17:52:44 ]
>>451

申し訳ありません。

実は、本当に操作したいアプリに対しても同じ方法で試していますが
ダメでした。そのアプリは業務用で下手をするとマズいので、
似たようなインターフェイス(MDIとか)だったので先にWordで練習しようかと。。

447さん すいませんでした。

457 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:55:41 ]
>>455
やはりそのような方法しかないのですね。
どうもありがとうございました。

458 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:55:43 ]
それでWordでオートメーションって練習になる気がしない。
対象のアプリケーションがオートメーションを持っている可能性なんて
限り無く0に近そう。

459 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:58:21 ]
文字列つっこみたいならWM_CHARとかWM_KEY*とかのほうがまだ対応してそうだが。

460 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 17:58:54 ]
限り無く0に近いというかゼロだろ
外部から操作されることを想定していないソフトだとまず有り得ない



461 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:00:46 ]
>>451
みたいなんは気にしなくておk

462 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:02:17 ]
ここはSendInputだな。

463 名前:447 mailto:sage [2008/04/30(水) 18:14:08 ]
別に私はあなたに教授も教示もしたわけじゃないので謝罪は不要ですが。

見た目は似たようなインターフェースでも、中身は全然違う可能性もあります。
wordで巧くいってもそのアプリで巧くいく保障にはなりませんし、業務用で下手をすると拙いのなら
もしかしたら、そうやってメッセージを調べることでリバースエンジニアリングととられて契約違反とされるかもしれませんね。

464 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:22:17 ]
>>463
最後の3行は余計

誰もそんな事は聞いてないし、質問者自身が「下手をするとマズい」といってるだろう
そういうレスが雑談の元になってるのに少しは自重しろ

465 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:37:04 ]
それを言うなら>463は全て不要。勿論、>464-465でさえも。

466 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:57:49 ]
>>466 は必要だけどな。

467 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:59:57 ]
Win32API質問箱改め雑談箱 Build65 まとめ

>>12-29
Win32APIの将来性について(雑談)
>>30-53
Win32APIの設計思想と命名について(雑談)
>>54-100
どこまでをWin32APIとするか(議論、雑談) ※結論は>>61-62
>>101-112
「話を理解してない馬鹿」(雑談、荒らし)
>>126-136
なぜ.NETでWin32APIを使うのか(雑談)
>>215-235
MAX_PATHについて(雑談)
>>324-340
sndPlaySoundと音とび(雑談)
>>400-421
真のプログラマと「知らないならレスしないでください」(雑談、荒らし)
>>424-432
今時Win32APIなんて雑談しかない(雑談)
>>433-441
引数を覚える必要はあるか?(雑談)
>>463-
雑談の雑談(仮題)

468 名前:デフォルトの名無しさん [2008/04/30(水) 19:07:12 ]
質問箱もbuild65で終焉か・・・
荒らしも酷いことしやがる

469 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:08:41 ]
>>467


470 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:00:22 ]
自演乙



471 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:02:06 ]
終わらんよ
俺が次スレを立てる限り

472 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:11:50 ]
こうして雑談は続く

473 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:16:19 ]
適当に雑談するにはもってこいのWin32APIw

474 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:52:34 ]
まあ技術の進歩が止まって渇れてるから雑談だらけなのは仕方ないな
DOSやMSXなんかと同じ

475 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:09:55 ]
レスが流れたので一応
>>378
>>416

476 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:56:35 ]
こうしてこのスレはくそみそな結果に終わるのでした

477 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 00:58:18 ]
デュアルやクアッドプロセッサ搭載のPCでは,
各プロセスにどのCPUコアを割り当てるか,タスクマネージャで設定できますが,
これと同じようなことが出来るAPIってありますか?

プロセスが使用するCPUコアを指定したいのです。

478 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:04:18 ]
SetProcessAffinityMask かな。

479 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 01:10:54 ]
>>478
おおまさに探し求めていたものですありがと〜

480 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 22:38:05 ]
大政小政



481 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:13:00 ]
CSVのデータを読み込みたいのですが
strtok以外によい方法はありませんか?

482 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:17:09 ]
まあ、strchr を使うとか、1文字ずつ普通に比較して行くとか、
そんなところじゃね。

ところで、コンマを含むデータを扱わない前提でいいのか?

483 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:17:56 ]
スレ違いだけど、strtok()使うくらいならsscanf()で"%[^,],%n"

484 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:23:24 ]
それ用のAPIみたいなのは無いみたいですね
言われてみればsscanfのほうが簡単に書けそうです
コンマは扱わないのでsscanfでやってみます。ありがとう。

485 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:41:08 ]
このスレらしいものを挙げるとしたらODBCとかExcelオートメーションとかかな。
微妙にスレ違いのメンツだけど。


486 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 00:45:12 ]
ADO.NET
・・もスレ違いか

487 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 01:15:11 ]
パーサ書いてもたいした手間じゃない気もするが

488 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 01:37:03 ]
CSVには明確な企画が存在しないからどの程度の方言を許容するかでえらい大変なことに。

489 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 01:43:55 ]
>488
RFC4180

490 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 01:48:49 ]
規格があっても皆が従わなければ意味がない。
CSVじゃないけどよくあるMicrosoft独自仕様とか。



491 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 01:56:11 ]
どっちかってーとExcelCSVが標準というかなんとゆーか。

492 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:00:42 ]
>>489
あれ参考情報じゃなかったか?

493 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 02:25:51 ]
何でも言える事だがルールが全てじゃないしな
間違ったルールだってある

494 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 09:28:34 ]
>>490-494
そういう雑談ネタはいいから。

495 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:14:38 ]
>>494
そういうレスはいいから。

496 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:29:22 ]
>>495
そういうレス(ry

497 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:33:54 ]
>>496
そういう(ry

498 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:37:33 ]
次の奴、「(ry」とか書いたら樹海行きな

499 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:37:56 ]
(ry

500 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 10:52:52 ]
こうして雑談は続く



501 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:50:35 ]
・・・3年後

502 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:56:28 ]
・・・7年後

503 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 11:57:13 ]
・・・11年後

504 名前:デフォルトの名無しさん [2008/05/02(金) 12:00:30 ]
・・・13年後

505 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:08:24 ]
・・・17年後

506 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:28:45 ]
そして誰もいなくなった

507 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:29:09 ]
Win32API質問箱改め雑談箱 Build65 まとめ

>>12-29
Win32APIの将来性について(雑談)
>>30-53
Win32APIの設計思想と命名について(雑談)
>>54-100
どこまでをWin32APIとするか(議論、雑談) ※結論は>>61-62
>>101-112
「話を理解してない馬鹿」(雑談、荒らし)
>>126-136
なぜ.NETでWin32APIを使うのか(雑談)
>>215-235
MAX_PATHについて(雑談)
>>324-340
sndPlaySoundと音とび(雑談)
>>400-421
真のプログラマと「知らないならレスしないでください」(雑談、荒らし)
>>424-432
今時Win32APIなんて雑談しかない(雑談)
>>433-441
引数を覚える必要はあるか?(雑談)
>>463-474
なぜ雑談が多いのか(雑談)
>>490-506
規格なんてクソ食らえ(雑談、荒らし)

508 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:37:55 ]
CSVはboost::spiritにサンプル実装があったような

509 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:41:36 ]
つまり、このスレ的な回答で言うと、
そんなAPIは無いという事で

510 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:52:38 ]
結論:CSVぐらい自分でパースしろ

--終了--



511 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:54:32 ]
Excel 関連の COM に何かあればいいんだろうけどねえ。

512 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 13:04:01 ]
ADOでJET使えばいいじゃない

513 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:13:23 ]
同一スレッド以外からのSend/PostMessageをブロックしたいけど無理ですか?

514 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:14:58 ]
>>513
WM_PAINT WM_KEYDOWN WM_??? は誰が投げますか?

515 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:17:02 ]
>>514
WM_APPとかの話

516 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:17:40 ]
なら最初からそう書けと・・・

517 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:21:33 ]
それぐらい察してほしかったってのが本音

同一スレッド以外からSend/PostMessageされたWM_APP+???をブロックしたいけど無理ですか?

518 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:36:27 ]
他スレッドから投げられたものか判断する方法は分かるが。

519 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:50:55 ]
>>518
教えてください

520 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:52:46 ]
それぐらい察してほしかったってのが本音



521 名前:デフォルトの名無しさん [2008/05/02(金) 21:53:54 ]
>>519
それくらい君のテレバス能力で察しろ

522 名前:518 mailto:sage [2008/05/02(金) 21:56:31 ]
「またフックか」って言われるから言いたくないとだけ

523 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:56:39 ]
>>520-521
そのようなレスは不要です

524 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:58:03 ]
それぐらい察してほしかったってのが本音

525 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:59:55 ]
>>522
フックしないと無理なら諦めます

まぁデスクトップのListViewに
PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
とかすると落ちるから無理だろうとは思ってたけど

なんでどのスレッドからのメッセージなのか取得するAPIを用意してないのかなぁ

526 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:01:22 ]
それぐらい察してほしかったってのが本音

527 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:39:13 ]
よそのスレッドからSendされているかどうかは
InSendMessageやReplyMessageの戻り値を見ればわかる。
この関数、Postは無理だけど。

528 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:48:55 ]
527を今日一番輝いていたレスに認定

529 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 22:54:24 ]
>>527
そんな函数あるのか……と思ったらマジでありやがるw
MSすげぇw 知ってるおまえさんもすげぇww

530 名前:513 mailto:sage [2008/05/02(金) 23:07:28 ]
>>527
ありがとうございます



531 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:26:09 ]
>>514-526で煽ってる人、知らないならレスしなくていいよ。
ウザイだけだから。

532 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 23:53:22 ]
え?やだよ?

533 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:06:35 ]
>>529
MSDNで関連API一覧を眺めるとかしようぜ。
メッセージ関連なんて20個くらいしかないんだから。

534 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:11:53 ]
>>532
死ね

535 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:20:46 ]
>>534
はぁ?なんで?

536 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:37:54 ]
>>535

537 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:41:22 ]
>>534,536

538 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:42:35 ]
>>532=>>534=>>535=>>536=>>537
自演乙

539 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:44:21 ]
それぐらい察してほしかったってのが本音

540 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 00:45:53 ]
↑話を理解してない馬鹿



541 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 04:33:30 ]
経験不足の奴には察することはできない。

542 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 04:36:20 ]
>>517
>>527
で終了するやりとりを延々と引っ張るなよ

543 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 07:12:30 ]
そもそもWM_PAINTやWM_KEY**、WM_MOUSE**などは
普通はOSが内部でPostしてるメッセージだから
>>514のような疑問を持つ奴にまともな回答なんてできるはずが無い。
というわけで>>514君には荒れた責任を取ってもらおう。

544 名前:デフォルトの名無しさん [2008/05/03(土) 08:54:15 ]
C++初心者です。
ファイルマッピングとかどうやって使えますか?

545 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:21:34 ]
ググれカス

546 名前:デフォルトの名無しさん [2008/05/03(土) 09:35:21 ]
「ググれカス」とはどういう意味ですか。
何語ですか?


547 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:41:04 ]
C言語

548 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 09:55:50 ]
>>546
日本語

グーグルで調べろよこのカスが!
って意味

549 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:06:16 ]
通りがかりですみませんが、>>525 を見ての便乗質問です。

> デスクトップのListViewに
> PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
> とかすると落ちる

これって、単に LVM_INSERTITEM における実装の怠慢なのでしょうか。
それとも、一般にウィンドウプロシージャ側ではポインタとして
与えられたパラメータの妥当性はチェックしないものなのでしょうか。

推測ですが、いちいちポインタの妥当性をチェックするのは面倒だし
実行時間もかかるので、チェックは行っていないような気がします。
しかしそうすると、他のプロセスからのウィンドウメッセージによる
攻撃を受け入れてしまうことになりますよね。

先輩プログラマの皆さんはどのようにコーディングされていますか?

550 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:34:17 ]
よっぽどセキュリティに気をつかった実装でもなけりゃ、他のプロセスからの
悪意のメッセージ攻撃なんて想定しない。
悪意のあるプロセスが実行されている時点でそのマシンはもうダメなんだし、
ターミネートプロセスされたらどうするんだって話になる。

ただ、パラメータチェックすること自体は、
バグ対策とか、モジュールの独立性確保の意味で普通にやるだろ。



551 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:40:58 ]
そもそもプロセス超えているんだから、おまえのメモリアドレス渡しても動くわけが無いだろ。
ちょっとは考えろよ。
Windowsが面倒を見てくれるのは一部の文字列をやり取りするメッセージだけだ。
LVM_INSERTITEMはWM_USERなんだから、ウインドウクラス独自のメッセージなんだよ。
だからプロセスをまたいでやり取りはできない。
どうしてもやりたきゃ、相手のプロセスにコード注入しやがれ。


552 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 11:49:53 ]
> LVM_INSERTITEMはWM_USERなんだから
ハイ、知ったか乙

553 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:15:11 ]
WM_USERは0x0400〜0x7FFFで、LVM_INSERTITEMは0x1000 +7 or +77だから
WM_USERの範囲内にあるな。

554 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:21:15 ]
WM_USERなんて名前だから、自作アプリの独自メッセージはそこから使えって意味だと思ってた俺。
そういうのはWM_APPからって、ややっこしいんだよ!逆だろ名前!
せめてWM_USERだけでもなんとかならんかったのか。


555 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:26:55 ]
WM_USER+???を使っている物(Toolbarなど)と、そうでない物(ListViewなど)があるのは何故だろう
何か理由でもあるのだろうか・・・

>>554
Win16→Win32でコモンコントロールが大量に追加されてWM_USER未満では足りなくなったから
WindowsのコントロールがWM_USER以降を使うようになってWM_APPが定義されたかと

Win16時代のAPIヘルプにはこう書いてある。

> 0〜WM_USER − 1  Windowsが使用するために予約されているメッセージです。
> WM_USER〜0x7FFF プライベート ウィンドウ クラスが使用する整数メッセージです。
> 0x8000〜0xBFFF  Windowsが使用するために予約されているメッセージです。
> 0xC000〜0xFFFF  アプリケーションが使用する文字列メッセージです。

556 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:31:46 ]
こういう話は面白いから許容

557 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:34:06 ]
WM_USERはuser32.dllが使う場所かと思っていました

558 名前:549 mailto:sage [2008/05/03(土) 13:03:19 ]
>>550
どうもありがとうございます。そういうことになりそうですね…。
確かに、他から TerminateProcess できてしまうことを考えると、
悪意のある攻撃を想定することはあまり意味がないですね。

>>551
>>549 の説明不足でしたかね…すみません。
ポインタの値が、プロセス境界を超えた時点で意味がなくなることは理解しています。
動作させたいのではなく、他のプロセスからの無意味なアクセスを拒否したかったのです。

559 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:17:38 ]
>>558
じゃ具体的にどうやるんだ。
誰がメッセージを送ったのか知る方法は無いぞ。

アドレスだって、予約されてるとか、コミットされてるぐらいしかわからん。

560 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 13:19:10 ]
同一デスクトップ内の同一権限のアプリにイタズラされることを想定するなんて
かなーり無意味なことだと思うが



561 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:16:05 ]
そういう事が簡単に出来てしまうのもどうかと思うぞ
今更変えられないのも分かるけどな

562 名前:549 mailto:sage [2008/05/03(土) 14:18:00 ]
>>559
アドレスから直接判断するのは難しいので、例えば __try 〜 __except の
中で中身を読んで値をチェックすれば可能かなと思っていました。
もちろん、この方法にも限界があるような気はしますけど…。

>>560
そうかもしれません。ただ、仮に攻撃を想定しないでコーディングして、
>>525 に書かれているようなことをされてアプリが落ちてしまったとき、
実際は送った側に問題があるにもかかわらず、落ちたアプリの側に
問題があるように見えてしまうのが気持ち悪かったというのはあります。

563 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 14:46:14 ]
気持ち悪さの解消のためにここまで引っ張ったのかよ

あほらしい

564 名前:デフォルトの名無しさん [2008/05/03(土) 14:59:13 ]
↑話を理解してない馬鹿

565 名前:デフォルトの名無しさん [2008/05/03(土) 15:04:37 ]
↑話を理解してない馬鹿

566 名前:549 mailto:sage [2008/05/03(土) 15:07:30 ]
>>563
ちょっと気になったものですから、この機会に質問させていただきました。
私の疑問は >>550 さんのお返事で解消できましたのでこれにて消えることにします。
他にも不快な思いをした方がいらっしゃいましたら、申し訳ありませんでした。

567 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:09:52 ]
vertualalloc使えば、相手プロセスがアクセス出来たんだったかな

これは、それ使ってるんじゃない?
www.yoshibaworks.com/ayacy/inasoft/lv2csv/index.html

568 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:13:19 ]
>>567
それはVirtualAlloc、WriteProcessMemory、CreateRemoteThread辺りでDLL注入してるだけじゃないの

569 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:13:58 ]
IsBadReadPtr でも使っとけ

570 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:20:18 ]
>>569
obsoletedだ馬鹿



571 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:29:02 ]
ところで、obsoleteを動詞として使う用法ってどの程度一般的なの?
辞書によっては載ってるのと載ってないのとあるんだけど。

572 名前:デフォルトの名無しさん [2008/05/03(土) 15:29:08 ]
vertualalloc(笑)
どこをどうすればそんな勘違いして覚えられるんだよww

573 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:31:30 ]
ローマ字読みです

574 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 15:33:58 ]
www.rfc-editor.org/categories/rfc-standard.html

obsoletedなんて単語はrfcでも使われてないな

575 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 16:19:20 ]
>>573
ローマ字読みでもベーチャルだろ
つうかAPI名をスペルミスする奴は打ち慣れてない(=スキルが浅い)証拠だと思うな

で、誰だよSHStripMneumonicなんてミスした奴w
せめて#defineで間違ってない名前でも定義しとけっつーの

576 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:00:58 ]
>>571
m-wによると、1640年からだそうだ。
--
Main Entry: 2obsolete
Function: transitive verb
Inflected Form(s): obsolet・ed; obsolet・ing
Date: 1640
: to make obsolete
--

577 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 17:48:34 ]
>>571はどの程度一般的かを聞いてるのであって
何時から使われ出したかなどとは聞いていない

578 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:04:35 ]
外野は黙っとけの典型例だな。なに文句付けてるんだか。

579 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:12:46 ]
>>578
お前も外野だろ
そして俺も

580 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:13:53 ]
BNCで引いたらobsoletedを動詞で使ってる用例が3件だけあった。形容詞は340件だった。



581 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:14:19 ]
くだらん足の引っ張り合いしてんなよ。見苦しい。

ところで、自作アプリ内で動画再生したいんだけど、Media PlayerとDirect Showどちらを使うのが良い?


582 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:17:24 ]
好きな方を使うとよい

583 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:56:22 ]
エディットコントロールでDrawTextのDT_WORDBREAKみたいに自動で改行してくれるように
するにはどうすればいいですか?

584 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:52:30 ]
横スクロールバーを消す

585 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:34:26 ]
>>581
自前でデコード+DirectGraphicsで描画

586 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:59:12 ]
>>584
ありがとう、できた

587 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 03:28:57 ]
DialogBoxやCreateDialogを使わず、CreateWindow等を使って同じ事をする場合、どう書きますか

588 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 03:56:52 ]
ひたすらコントロールを作りまくる

589 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 05:39:07 ]
>>588
dialog base unitの座標変換もやってる?
絵とか貼ると、どうせズレるからおれは無視してる。


590 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 05:45:56 ]
そんな物無視でいいだろ
無視しないで中途半端に絵とか貼ってもXPのダイアログみたいに
アイコンやビットマップが潰れてかえって見づらいだけ



591 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 05:47:47 ]
質問が悪かったです。
DialogBox等はCreateWindowExを使ってダイアログを生成してると書いてありました。
どのようにCreateWindowExを使ってるのか知りたかったです。

592 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:23:19 ]
>>581
VFW関数にフレームを1枚ずつデコードしてもらってGDIで描画

593 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:52:32 ]
>>591
Old New Thingの本によくまとまっている。
邦訳版は「Windowsプログラミングの極意」
10.4.2のあたり。

594 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 06:56:25 ]
old new thingの本というならば、リンクぐらい貼ってやれよ。
今すぐ読めるんだから。

だいたいこのあたりか。
ttp://blogs.msdn.com/oldnewthing/archive/2005/03.aspx
ttp://blogs.msdn.com/oldnewthing/archive/2005/04.aspx

595 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:37:22 ]
こんにちは。DelphiスレでAPIスレで聞いた方がいいとアドバイスがあったので、質問します。
とりあえずマウスのフックとキーボードが押されたときに反応する(フックっていうのか?)のはできるんだけど、
電卓の例の場合はどういう種類のフック使うんでしょうか?
電卓のプログラム(OSに搭載されている)の3のボタンを9っていう数字に変えたいんですけど(というより3を押すと9を押したときと同じ動作に)

596 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:51:06 ]
キー入れ替えソフト使ったほうが早いような・・・レジストリいじるやつ

597 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:57:32 ]
どうしてもやりたいんであれば
対象ウィンドウのウィンドウプロシージャを入れ替えるとか…

お行儀のいい方法ではないよ

598 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:27:44 ]
ていうか3を9に変えたいなんて不可解な行為の理由が激しく気になる
テンキーを携帯電話の配列にしたいの?

599 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:31:53 ]
>>597
なんかDelスレでSetWindowsExで可能になると聞いたんですが、これを使うとなるとどのようにフックすればよろしいのでしょうか?

入れ替えるというより、3を押されたことを確認したら9というメッセージを変わりに送るという事はできますでしょうか?

600 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:32:50 ]
>>598
とくに意味はないんですが、好奇心です^^





601 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:50:34 ]
>>599
WriteProcessMemory、CreateRemoteThreadを使って相手プロセスにDLLを入れる
GetWindowLongでターゲットウィンドウのウィンドウプロシージャの前に自前のウィンドウプロシージャを挿入
ウィンドウメッセージのキーコードを見張って書き換えてから元のウィンドウプロシージャに渡す

602 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:56:59 ]
>>601
ありがとうございます。
DLL INjectionってやつですか?
流れ書いてくれたおかげで、できそうです。
どうもありがとうございました。


603 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:01:22 ]
どうしてこうフックまがいの話ばかりに…

604 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:14:45 ]
便利だからじゃない、フック。
フックでアプリをファックするわけだよ。ぷぷっ

605 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:25:03 ]
ほとんどが悪用だからな

606 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:52:50 ]
ここで質問するような奴は悪用できないだろう。常考

607 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 16:54:30 ]
>>601
そんな面倒な方法を取らなくてもできるだろ
ホント、フック厨は短絡思考だな

608 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 17:15:23 ]
>>607
だったら書いてやれよw 悪態ついてないでさ。

609 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:13:53 ]
SetWindowsHookExをMSDNで調べれば>>601のような面倒な手段を取る必要が無いぐらい分かるだろう
回答者がその程度のスキルじゃ質問者が可哀想だ

610 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:19:08 ]
どうだろ。
別にフックする事が目的でないんなら601のような回答でも問題はないような。



611 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:40:51 ]
キーイベントを弄るだけにWriteProcessMemoryやCreateRemoteThreadを使うのはナンセンス

612 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 20:21:58 ]
>>609
SetWindowsHookEx
を使うとしたら、
SetWindowsHookEx(? @HookProc, HInstance, 0);
第一引数はなに使うんだ?

613 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:04:29 ]
>>612
WH_GETMESSAGEかな。

GETMESSAGEフックならWM_KEYDOWN拾えるし
メッセージやパラメータの書き換えも出来たはず。

多分ね。

614 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:38:12 ]
現在マウスのボタンが押下されてるかどうかを知る方法ってありますか
キーでいうGetAsyncKeyStateのマウス版がほしいのですが・・・

615 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:42:46 ]
>>613
595読むとマウスでボタンクリックされた場合も考慮する必要がありそうだからダメだと思う。
SetWindowsHookEx はプロセスへのDLL注入目的に使うのかと思ったら違ったのか。

>>612
自分なら SetWindowsHookEx でプロセスを注入、メッセージ投げてフックプロシージャ内から
SetWindowLongPtr でウィンドウプロシージャの差し替えってやりそう。

616 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:44:55 ]
>>614
MSDN の GetAsyncKeyState の項目に
> GetAsyncKeyState 関数は、マウスボタンの状態も取得できます。
> ただしこの関数は、物理的なボタンのマップ先である論理的なマウスボタンの
> 状態ではなく、物理的なマウスボタンの状態を取得します。
って書いてあるけど、ダメなの?

617 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:47:17 ]
>>615
orz

キーボードだけだと思ってた。ごめんね。

618 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:51:18 ]
流れも読めない奴がレスすべきではない。

と煽ってみる。

619 名前:デフォルトの名無しさん [2008/05/04(日) 21:51:18 ]
どないしたらWindowsアプリ

620 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:51:43 ]
>>619
気になるので最後まで書き込んでください。



621 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:52:55 ]
>>615
ボタンの位置をMoveWindowで動かして変えればいいんじゃね?

てかいつの間にか電卓のボタンがButtonコントロールになってるんだな
Win98以降文字が小さくなって見づらいと思っていたらそれが原因か

622 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 21:56:36 ]
>>621
感動した。なんてスマートな方法なんだ。

623 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:03:07 ]
>>615
まず何をフックするかじゃね?
この場合は3を押された事をフックするから何使うかわからないが・・・。


624 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:11:53 ]
自分で電卓作ればよくね?



いや、電卓のUIだけ作って見えない本物のcalc.exeに計算させるとか。

625 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:12:19 ]
電卓の改造 〜結論〜

・calc.exeをリソースエディタで書き換える
 原則的に、フックやDLL注入などで動的に書き換える必要があるのは
 対象アプリが限定されていない場合、または対象アプリがCRCやMD5などで改竄チェックしている場合に留めるべき

・どうしてもフックで解決したいならSetWindowsHookEx(WH_GETMESSAGE)でWM_COMMANDを書き換える
 キー(0〜9、+-*/など)を押された場合もアクセラレータテーブルに基づいて
 TranslateAcceleratorがWM_COMMANDを発行するようになっている

626 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:23:08 ]
>>619
何を書き込もうとしたのか気になって昼寝ができませんでした。

627 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:36:04 ]
>>626
ヨーロッパ辺りに住んでる人ですか?

628 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:36:19 ]
>>616
失礼シマスタ・・・
キーだけだとばかり・・・

629 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:47:51 ]
619は書き込んでる途中で来客か何かあったんだろう。
鼻歌を歌ってて、おっと、ここは用心しなければ。な事態になったとかな。

630 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:55:25 ]
猫とwisdomが久しぶりに更新。
改訂第3版とな?



631 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:58:02 ]
誰があんなとこ見てんだよ

632 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:02:36 ]
久米井もよくやるもんだw

633 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:10:50 ]
Win32APIの解説サイトってあまり良質な所は無いよね
まあそれに気づくのはスキルがそこそこ付いてきた頃だけど

この辺、Javaや.NETとかの解説サイトはどうなんだろう・・・

634 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:17:55 ]
良質な所って例えばどこ?

635 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:44:01 ]
完全無欠なサイトなど存在しない

636 名前:デフォルトの名無しさん [2008/05/04(日) 23:46:01 ]
↑話を理解してない馬鹿

637 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 23:51:22 ]
どんな(へぼ)サイトでも役に立つよ

638 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:53:40 ]
これ読めよ
www.amazon.co.jp/dp/4756136001

639 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 02:48:04 ]
SetForegroundWindow() するとウィンドウが最前面に来るけど、フォーカスだけを
当てて、ウィンドウは動かさない方法ない?

640 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 03:05:05 ]
SetWindowPosでできそうな気がしたけど、msdn.microsoft.com/ja-jp/library/cc411206.aspx



641 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 03:06:24 ]
途中で書き込んでしまった..。

SetWindowPosでできそうな気がしたが、できないようですね..。
msdn.microsoft.com/ja-jp/library/cc411206.aspx

642 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 03:39:35 ]
ワロタ。じゃあ書くなよw

643 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:26:12 ]
>>639
何のためにWin98でSetForegroundWindowの仕様が変更されたのかよく考えてみよう






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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