Win32API質問箱 Build65
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/04/22(火) 15:51:24やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
Win32API質問箱 Build64
http://pc11.2ch.net/test/read.cgi/tech/1207099291/
0002デフォルトの名無しさん
2008/04/22(火) 15:51:41http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/library/
http://msdn.microsoft.com/library/ja/
- MSDN2 ライブラリ
http://msdn2.microsoft.com/en-us/library/
http://msdn2.microsoft.com/ja-jp/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja
- Windows SDK & Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
0003デフォルトの名無しさん
2008/04/22(火) 15:51:52http://www.google.com/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
- Advanced Windows (書籍)
http://www.amazon.co.jp/dp/4756138055
-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。
0004デフォルトの名無しさん
2008/04/22(火) 15:52:150005デフォルトの名無しさん
2008/04/22(火) 15:52:2862 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/
0006デフォルトの名無しさん
2008/04/22(火) 15:52:4540 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/
0007デフォルトの名無しさん
2008/04/22(火) 15:52:5520 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
0008デフォルトの名無しさん
2008/04/22(火) 15:53:17邪魔すんなハゲ
0009デフォルトの名無しさん
2008/04/22(火) 16:01:510010デフォルトの名無しさん
2008/04/22(火) 19:26:26乙
0011デフォルトの名無しさん
2008/04/22(火) 19:49:500012デフォルトの名無しさん
2008/04/22(火) 20:59:08なんかWindows7だっけか?
ケロちゃんLOVE!
0013デフォルトの名無しさん
2008/04/22(火) 21:00:12でも正直、Win32APIを今さら使いはじめるような人は、終わってると思います。
0014デフォルトの名無しさん
2008/04/22(火) 21:05:050015デフォルトの名無しさん
2008/04/22(火) 21:19:25Win32 APIを直に使うな、と。
いまさら、俺様ライブラリを作るな、と。
先人の通ってきた道をそのまま辿るべきではない。
そんなことをしていたら、先人と同じ場所までしか行けない。
0016デフォルトの名無しさん
2008/04/22(火) 21:35:08よろしくご教示ください。
0017デフォルトの名無しさん
2008/04/22(火) 21:43:09それでも届かないところはアセンブリ
0018デフォルトの名無しさん
2008/04/22(火) 21:52:40Win32APIなしで全部.NET上でできるようになれば考えてもいいけど、それは遥か先の話。
0019デフォルトの名無しさん
2008/04/22(火) 21:53:00あれ・・・俺がいる・・・
0020デフォルトの名無しさん
2008/04/22(火) 21:56:00すでにある社内ライブラリを使う。
すでにWin32 APIで経験豊富だが疲れてきてる先輩とうまく役割分担する。
既存のソースを丸パクリする。
0021デフォルトの名無しさん
2008/04/22(火) 21:57:39それは.NETを使ったことない厨の戯言
・・・そんな俺もWin32API厨
0022デフォルトの名無しさん
2008/04/22(火) 22:14:110023デフォルトの名無しさん
2008/04/22(火) 22:17:470024デフォルトの名無しさん
2008/04/22(火) 22:24:36知らなくても殆どは困らないし、たとえば新人に憶えろと強要するようなもんでもない。
ただ昔からやってる人は知らざるを得なかったし、知らないよりは知ってたほうがごくまれに得になる時もある。
そういうもんだ。
0025デフォルトの名無しさん
2008/04/22(火) 22:26:420026デフォルトの名無しさん
2008/04/22(火) 22:29:02まぁ普段は.NETやらMFCやらのラッパー使ってても問題ない
だけど低水準レベルのところの動作いじりたくなるともうWIN32しかないわ
仕事じゃやらんけどね
0027デフォルトの名無しさん
2008/04/22(火) 22:31:530028デフォルトの名無しさん
2008/04/22(火) 22:32:17自分が適当に書いたC++のコードをコンパイラに最適化させたほうが、
速かったなぁ。
0029デフォルトの名無しさん
2008/04/22(火) 22:35:200030デフォルトの名無しさん
2008/04/22(火) 22:38:01あまりに腐ってて反吐がでる
0031デフォルトの名無しさん
2008/04/22(火) 22:38:41よし、Win32、POSIX、OS/2に続く、4番目のサブシステムの作成を許可する。
0032デフォルトの名無しさん
2008/04/22(火) 22:39:190033デフォルトの名無しさん
2008/04/22(火) 22:40:30WOW64も
0034デフォルトの名無しさん
2008/04/22(火) 22:41:53歴史があるから仕方ねーよ
もともとDOSのフックであって、1Mbyte以降のメモリーに配置された常駐プログラムだし。
0035デフォルトの名無しさん
2008/04/22(火) 22:45:090036デフォルトの名無しさん
2008/04/22(火) 22:51:170037デフォルトの名無しさん
2008/04/22(火) 22:52:220038デフォルトの名無しさん
2008/04/22(火) 22:54:300039デフォルトの名無しさん
2008/04/22(火) 22:56:39使い道あるのかこれ?
0040デフォルトの名無しさん
2008/04/22(火) 22:57:290041デフォルトの名無しさん
2008/04/22(火) 22:59:320042デフォルトの名無しさん
2008/04/22(火) 23:00:230043デフォルトの名無しさん
2008/04/22(火) 23:00:530044デフォルトの名無しさん
2008/04/22(火) 23:03:460045デフォルトの名無しさん
2008/04/22(火) 23:05:280046デフォルトの名無しさん
2008/04/22(火) 23:05:41長かろうと明確に機能を表現しているべき。
昔のコンパイラには識別子の長さに制限があって、N文字以上は無視しちゃうので、
N文字以内が重複しないようにするために、不格好な名前の付け方をせざるをえないことがあったが。
0047デフォルトの名無しさん
2008/04/22(火) 23:06:05それがLonghornだったのだが・・・。
0048デフォルトの名無しさん
2008/04/22(火) 23:06:530049デフォルトの名無しさん
2008/04/22(火) 23:07:29っ 序数インポート
0050デフォルトの名無しさん
2008/04/22(火) 23:08:430051デフォルトの名無しさん
2008/04/22(火) 23:17:230052デフォルトの名無しさん
2008/04/22(火) 23:40:050053デフォルトの名無しさん
2008/04/22(火) 23:40:470054デフォルトの名無しさん
2008/04/22(火) 23:41:400055デフォルトの名無しさん
2008/04/23(水) 00:28:520056デフォルトの名無しさん
2008/04/23(水) 00:32:39正直DirectXやネイティブAPIはスレチだと思うがどうよ
>>55
つまんね
0057デフォルトの名無しさん
2008/04/23(水) 00:34:290058デフォルトの名無しさん
2008/04/23(水) 00:37:550059デフォルトの名無しさん
2008/04/23(水) 00:52:010060デフォルトの名無しさん
2008/04/23(水) 01:52:34ネイティブ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は?
0061デフォルトの名無しさん
2008/04/23(水) 02:18:100062デフォルトの名無しさん
2008/04/23(水) 02:18:34なければここで聞いてもいいと俺は思うが、
回答が返ってこない可能性が高いはず。
0063デフォルトの名無しさん
2008/04/23(水) 02:33:27きもいよ
0064デフォルトの名無しさん
2008/04/23(水) 02:34:53こういうかわいそうな奴たまにいるよなぁ
0065デフォルトの名無しさん
2008/04/23(水) 02:40:54分類してる暇あったら質問に答える努力しろよ
0066デフォルトの名無しさん
2008/04/23(水) 03:04:41基地外は帰れ
0067デフォルトの名無しさん
2008/04/23(水) 04:03:250068デフォルトの名無しさん
2008/04/23(水) 04:36:540069デフォルトの名無しさん
2008/04/23(水) 04:59:480070デフォルトの名無しさん
2008/04/23(水) 05:06:33意味不明
0071デフォルトの名無しさん
2008/04/23(水) 05:13:030072デフォルトの名無しさん
2008/04/23(水) 05:15:16話が飛躍しすぎだろうが
0073デフォルトの名無しさん
2008/04/23(水) 05:19:430074デフォルトの名無しさん
2008/04/23(水) 06:05:230075デフォルトの名無しさん
2008/04/23(水) 06:10:18VIPやニコ動じゃあるまいし糞レス自重しろ
0076デフォルトの名無しさん
2008/04/23(水) 07:28:27こいつがそもそもの原因
0077デフォルトの名無しさん
2008/04/23(水) 07:38:35---------------Win32APIホワイトゾーン
kernel32.dll
user32.dll
gdi32.dll
advapi32.dll
winmm.dll
---------------Win32APIグレーゾーン
msvcrt.dll
ntdll.dll
shell32.dll
shfolder.dll
comctl32.dll
comdlg32.dll
---------------管轄外
0078デフォルトの名無しさん
2008/04/23(水) 07:43:22簡単に他プロセスを落としたりコード注入できるし、実際マルウェアがそれらの技術を悪用している
こんなインセキュアなAPIが滅びるのは時間の問題だから今のうちに.NETに移行しておけば後々苦労しないよ
0079デフォルトの名無しさん
2008/04/23(水) 07:49:33いまはこのスレで語るべきWin32 APIについて議論しているんだぞ。
Win32 APIの危険な挙動じゃねぇぞ。
しかも論点が沸け分からんし。
.netだってファイルを削除したり置き換えたりできるじゃないか。
セキュリティ上問題あるだろ。
そもそもCPU時間という貴重なリソースを消費するものは邪悪だろ?
0080デフォルトの名無しさん
2008/04/23(水) 07:49:380081デフォルトの名無しさん
2008/04/23(水) 07:50:18死ね78
0082デフォルトの名無しさん
2008/04/23(水) 07:53:480083デフォルトの名無しさん
2008/04/23(水) 07:55:34寝て言うより高度な技術
0084デフォルトの名無しさん
2008/04/23(水) 07:57:45とりあえず落ち着けw
"読めるのか?:"とか"沸け分からん"とかお前のレスの方がわけ分からんぞw
> いまはこのスレで語るべきWin32 APIについて議論しているんだぞ。
ここはWin32APIについて議論するスレじゃなくてWin32APIについて質問or回答するスレじゃないのか?
0085デフォルトの名無しさん
2008/04/23(水) 08:01:330086デフォルトの名無しさん
2008/04/23(水) 08:02:540087デフォルトの名無しさん
2008/04/23(水) 08:04:000088デフォルトの名無しさん
2008/04/23(水) 08:04:480089デフォルトの名無しさん
2008/04/23(水) 08:08:06Build64:「知らないならレスしないでください」
Build65:「↑話を理解してない馬鹿」
0090デフォルトの名無しさん
2008/04/23(水) 10:21:530091デフォルトの名無しさん
2008/04/23(水) 12:35:35犯罪臭い物をグレーゾーンと言ってるわけじゃなく、単に
「Win32APIかどうかの定義が曖昧」なのをグレーゾーンと表記してたように読めたが
0092デフォルトの名無しさん
2008/04/23(水) 12:39:550093デフォルトの名無しさん
2008/04/23(水) 12:40:360094デフォルトの名無しさん
2008/04/23(水) 13:11:14このレスとか
0095デフォルトの名無しさん
2008/04/23(水) 14:06:54このスレだとだいたいの切り分けができる。
例えば回答が、レジストリのココをいじれ、とか、Wake on LANでググれとかだと、
このスレに流れつくのも仕方ないと思う。
0096デフォルトの名無しさん
2008/04/23(水) 14:34:080097デフォルトの名無しさん
2008/04/23(水) 14:44:480098デフォルトの名無しさん
2008/04/23(水) 16:09:560099デフォルトの名無しさん
2008/04/23(水) 16:58:29専用のスレのほうが分かる人が多いだろうから
聞くほうも答えるほうも幸せ。
0100デフォルトの名無しさん
2008/04/23(水) 17:38:51わざわざ40レスも余分に消費してまで議論してるなんて
ホント、要領が悪いというか頭が悪いというか
0101デフォルトの名無しさん
2008/04/23(水) 19:54:090102デフォルトの名無しさん
2008/04/23(水) 19:57:24スレの主旨を理解していない馬鹿
0103デフォルトの名無しさん
2008/04/23(水) 20:01:000104デフォルトの名無しさん
2008/04/23(水) 20:03:000105デフォルトの名無しさん
2008/04/23(水) 20:14:280106デフォルトの名無しさん
2008/04/23(水) 20:39:580107デフォルトの名無しさん
2008/04/23(水) 20:56:480108デフォルトの名無しさん
2008/04/23(水) 21:06:42クルーソーの800MHzのCPU積んだノートで.Netで書かれたソフト起動したら1分待たされたしw
0109デフォルトの名無しさん
2008/04/23(水) 21:16:10まあそれ故のSuperFetchなのだろう
0110Alfred Vaino Aho
2008/04/23(水) 21:16:53呼んだ?
0111デフォルトの名無しさん
2008/04/23(水) 21:19:130112デフォルトの名無しさん
2008/04/23(水) 22:00:14ヽ( ,_ノ`)ノ 残念、それは私のおいなりさんだ
へノ /
┌→ ω へ
│
│
│
0113デフォルトの名無しさん
2008/04/23(水) 22:16:51あれってプログラム単位でスムーズスクロールのオンオフを
切り替えできるってことなんでしょうか。
リモートデスクトップなんか使っていると、エクスプローラの
ツリービューのスクロールはローカルで使ってるのと同じくらい
早いんだけど、自作アプリのツリービューのスクロールがライン毎で
えらい遅いのでなんとかしたいのですが。。。。。
動作環境はXP SP2です。
0114デフォルトの名無しさん
2008/04/23(水) 22:18:250115デフォルトの名無しさん
2008/04/23(水) 22:26:48Crusoeは詐欺CPU
ベンチマークのスコアは立派だが、実使用ではまるで性能が出ない。
0116デフォルトの名無しさん
2008/04/23(水) 22:28:44オーナードローしてたり?
0117デフォルトの名無しさん
2008/04/23(水) 23:50:08それは十分承知だが、ネイティブAPIのアプリだったらすぐ起動するからね。
0118デフォルトの名無しさん
2008/04/23(水) 23:53:070119デフォルトの名無しさん
2008/04/24(木) 02:08:56ネイティブAPIの意味が違う
0120デフォルトの名無しさん
2008/04/24(木) 02:15:100121デフォルトの名無しさん
2008/04/24(木) 02:36:06ビルドは通るのですが、途中でエラーが出てしまい、原因が分かりません。
同じようなエラーで困った方、解決方法をご教示ください。よろしくお願いします
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
0122デフォルトの名無しさん
2008/04/24(木) 04:13:490124デフォルトの名無しさん
2008/04/24(木) 08:31:460125デフォルトの名無しさん
2008/04/24(木) 08:42:29hInstに入ってるのは何か?
IDB_ICONはなんとdefineされているか?
0126デフォルトの名無しさん
2008/04/24(木) 09:03:140127デフォルトの名無しさん
2008/04/24(木) 09:08:400128デフォルトの名無しさん
2008/04/24(木) 09:11:300129デフォルトの名無しさん
2008/04/24(木) 10:24:35まあWin32版の方がリソース消費量は少なかった気はするが
0130デフォルトの名無しさん
2008/04/24(木) 10:33:190131デフォルトの名無しさん
2008/04/24(木) 11:47:18質問の内容を理解せずにMFCなら!MFCなら!とかまんせーすんなよ。
0132デフォルトの名無しさん
2008/04/24(木) 11:57:510133デフォルトの名無しさん
2008/04/24(木) 11:59:40アホだな
0134デフォルトの名無しさん
2008/04/24(木) 12:16:27Linuxならそんなもん使わなくてもすぐできるのに。
0135デフォルトの名無しさん
2008/04/24(木) 12:34:240136デフォルトの名無しさん
2008/04/24(木) 12:55:230137デフォルトの名無しさん
2008/04/24(木) 17:48:12反転じゃなく濃灰色の点線になったり、下地が青色系とかだと点線じゃなく実線になったりと
結構いろいろやってるAPIだったのね。
0138デフォルトの名無しさん
2008/04/24(木) 17:50:53. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0139デフォルトの名無しさん
2008/04/24(木) 18:09:14MoveFileやCopyFileは利用しない方針でおながいします
とりあえず思いついたのが8.3形式のショートファイル名を利用する方法だったんですが
オプションで生成しないように切り替えられるんですよねえ、これ
0140デフォルトの名無しさん
2008/04/24(木) 18:11:06具体的に
0141デフォルトの名無しさん
2008/04/24(木) 18:12:31何がひっかかって開けないの?
0142デフォルトの名無しさん
2008/04/24(木) 18:13:25具体的に言えばMapAndLoadかImageLoadが使いたい
0143デフォルトの名無しさん
2008/04/24(木) 18:24:40あるいはUnicodeに対応してない古臭いライブラリとかで使いたいんだろうか。
Vistaのシンボリックリンクで別名を作るとかは?
MoveFileやCopyFileではないぞ。
0144デフォルトの名無しさん
2008/04/24(木) 18:26:440145デフォルトの名無しさん
2008/04/24(木) 18:28:32なるほど、それは良さそうですね
リンク作成の方向で検討します( ´∀`)
0146デフォルトの名無しさん
2008/04/24(木) 18:29:38EXEやDLLのファイル名にANSI以外の文字を使うこと自体が邪道。
かつては8.3を越える長いファイル名もご法度だったんだ。
0147デフォルトの名無しさん
2008/04/24(木) 18:31:26いやまあそれ以外にも統合アーカイバライブラリのDLLもANSIしか無かったり、色々あるのですお
とりあえず、ありがとうございます
0148デフォルトの名無しさん
2008/04/24(木) 18:36:34今のWindows自体にそんな制限など存在しない。
たんにヘタレなPGの言い訳にすぎん。
8.3の制限を持ち出すとなると、当然32bitコードも邪道だと思っているんだよな?
ポインタのサイズが今までの倍もあるんだぜ。もったいないじゃないか!
0149デフォルトの名無しさん
2008/04/24(木) 18:43:01> 今のWindows自体にそんな制限など存在しない。
8.3形式の短いファイル名でレジストリや設定ファイルの類いにパスが記録される
↓
何らかの原因で8.3形式の短いファイル名が一致しなくなる
↓
どぼん
そういうのを避けるために8.3形式にしているのをヘタレと言うのなら、どうぞお好きに。
> 8.3の制限を持ち出すとなると、当然32bitコードも邪道だと思っているんだよな?
なわけない。
0150デフォルトの名無しさん
2008/04/24(木) 18:44:08☀.txtとかそんな名前でも付けてるの?
>>148
PEヘッダに記録されるファイル名はANSIなんだが
それに俺の環境だけなのかは知らんがASCII文字以外を使ってるEXEがタスクマネージャで化ける
0151デフォルトの名無しさん
2008/04/24(木) 18:46:460152デフォルトの名無しさん
2008/04/24(木) 19:05:57知らないならレスしないでください
0153デフォルトの名無しさん
2008/04/24(木) 19:55:30hWnd = FindWindow("sample", NULL);
SendMessage(hWnd, WM_CLOSE, 0, 0);
この順番に処理させたいんだけどうまくいかない
hWndが0になってしまう
どうすればCreateProcess→SendMessageが上手くいくようになる?
*sample.exeはコンソールアプリ
0154デフォルトの名無しさん
2008/04/24(木) 19:59:44本当にコンソールのタイトルに"sample"なんて表示されてるか?
"c:\windows\cmd.exe"とか出てるはずだが
0155デフォルトの名無しさん
2008/04/24(木) 20:01:56コンソールのタイトルは
"カレントディレクトリパス+sample.exe"
になるはず
0157デフォルトの名無しさん
2008/04/24(木) 20:11:24大文字小文字の差も含めて
少なくともSpyはタイトル拾えてるから引っかからないって事は無い筈
0158デフォルトの名無しさん
2008/04/24(木) 20:15:37ほれ
0159デフォルトの名無しさん
2008/04/24(木) 20:17:08まずはSpy++とかで確認しる。
ちなみに、CreateProcessしてすぐにFindWindowしてる、なんていうオチじゃないだろうな?
0160153
2008/04/24(木) 20:24:560161153
2008/04/24(木) 20:28:12URL:http://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);
****ここまで引用
0162デフォルトの名無しさん
2008/04/24(木) 20:33:30プロセスが起動した瞬間にウインドウができるわけじゃない。
0163デフォルトの名無しさん
2008/04/24(木) 20:36:07CreateProcessで作成したプロセスが所有するウィンドウにWM_CLOSEをポストしてる
当然CreateWindowで作ったウィンドウを持ってないプログラムにゃ無効
0164デフォルトの名無しさん
2008/04/24(木) 20:38:47terminateprocessでも使っとけば良いんじゃねえのか
0165153
2008/04/24(木) 20:50:22>>164
上のURL先に
>緊急遮断に使用するものであり,終了するが正常な終了方法ではない
とありますが大丈夫ですか?
正常終了するにはどうすればいいですか?
0166デフォルトの名無しさん
2008/04/24(木) 20:53:29コンソールプログラムならプログラムが自発的に終了しない限り正常終了しない
0167デフォルトの名無しさん
2008/04/24(木) 20:55:24外部から無理に止めるのが正常な方法であるわけがない。
メッセージを投げてターゲットプロセスが自分で終了するようにするのがまっとうな方法。
0168デフォルトの名無しさん
2008/04/24(木) 20:55:48キャンセルできるから確実性はないけどな。
0169デフォルトの名無しさん
2008/04/24(木) 20:57:330170153
2008/04/24(木) 20:59:45望みどおりの動作してくれました
0172デフォルトの名無しさん
2008/04/24(木) 21:24:57適当に検索して、それっぽいコードを継ぎ接ぎする、本質を理解しようとしない人間が量産されるのは。
0173167
2008/04/24(木) 21:25:00外部から何かを受け取ることでエラー終了するように作られたものもありうる。
少なくともあるプロセスがどういう状況にあるのかを無視して終わらせるのが正常とは言えない、
ということだ。拡大解釈やめれ。
0174デフォルトの名無しさん
2008/04/24(木) 21:29:47なぜ外部から終了させる必要があるのか、まずは、そこから話してみ。
0175デフォルトの名無しさん
2008/04/24(木) 21:52:390176153
2008/04/24(木) 21:58:44わかりました
>>174
CreateProcessしたプログラムで処理してる時に
別のプログラムの処理も必要になった時のために
メインのプログラムから起動するようにしました
どうせやるなら終了もメインのプログラムからした方が
使いやすい(手間がかからない)と思ったからです
0177デフォルトの名無しさん
2008/04/24(木) 22:08:04FindWindowの第一引数はクラス名だぼけ
0178デフォルトの名無しさん
2008/04/24(木) 22:10:04LPCTSTR lpClassName, // クラス名
LPCTSTR lpWindowName // ウィンドウ名
);
ここまで誰も気付かなかったな
すげぇw
0179デフォルトの名無しさん
2008/04/24(木) 22:12:440180デフォルトの名無しさん
2008/04/24(木) 22:13:19なんでもない
0181デフォルトの名無しさん
2008/04/24(木) 22:13:540182デフォルトの名無しさん
2008/04/24(木) 22:14:10> どうせやるなら終了もメインのプログラムからした方が
> 使いやすい(手間がかからない)と思ったからです
なるほど。
その子プロセスは、どういったものなの?
また、
その子プロセスの正規の終了条件もしくは終了手順は、
どういったものなの?
0183デフォルトの名無しさん
2008/04/24(木) 22:18:490184153
2008/04/24(木) 22:22:461、ある時刻になったらBEEP鳴らして終了
2、文字列をある規則で別の文字列へ変換して待機(別ファイルを読み込む可能性があるため)
3、文字列から特定の文字を削除(同上)
etc
2と3はexit入力で終了です
0185デフォルトの名無しさん
2008/04/24(木) 22:49:39えーと、対話的に入力を受付けてるわけね。
で、exitとタイプしてリターンキーを押すと終了、と。
ならば、
WaitForInputIdle()
で入力待ち状態になるまで待ち、
コンソールに"exit\n"を送るのが、
正規の終了手段だと思う。
0186153
2008/04/24(木) 23:18:25sampleがSleep中でもWaitForInputIdle()の次の行へ進んでしまいました
>プロセスがコンソールアプリケーションである場合〜中略〜WaitForInputIdle 関数は即座に制御を返します。
とmsdnに書いてありました
0187デフォルトの名無しさん
2008/04/24(木) 23:25:47そのsampleも自分で作っていて変更可能なら、
入力待ちするところで、イベントオブジェクトの状態をチェックして、シグナル状態なら終了するようにして、
親プロセスが子プロセスに終了してほしいときに、イベントをシグナル状態にしたらどうよ。
0188デフォルトの名無しさん
2008/04/25(金) 00:08:10>>186
STARTUPINFO::hStdInput/hStdOutputあたりにMailslotのハンドルを渡せばできた気がする
0189デフォルトの名無しさん
2008/04/25(金) 09:48:31う
0190デフォルトの名無しさん
2008/04/25(金) 09:49:530191デフォルトの名無しさん
2008/04/25(金) 11:39:07NtCreateProcess()とNtOpenProcess()とNtCreateSection()の3つに
フックをかけて監視してるんだけどどれにも引っかからない
0192デフォルトの名無しさん
2008/04/25(金) 12:06:410193デフォルトの名無しさん
2008/04/25(金) 12:31:15WININETとMFCは試したけど、通信の待ち時間とかを有効に使おうとするととても書きづらい。
0194デフォルトの名無しさん
2008/04/25(金) 13:05:120195デフォルトの名無しさん
2008/04/25(金) 14:00:560196デフォルトの名無しさん
2008/04/25(金) 14:52:13COMでもいいのかな
0197デフォルトの名無しさん
2008/04/25(金) 14:57:53検索して見つかったコードを自分なりに書き換えるのもまたイイ
0198デフォルトの名無しさん
2008/04/25(金) 15:43:030199デフォルトの名無しさん
2008/04/25(金) 20:14:400200デフォルトの名無しさん
2008/04/25(金) 21:05:53俺、TCPで同期とか考えたことないんだけど。。考えが間違ってたらご指摘plz
0201デフォルトの名無しさん
2008/04/25(金) 21:16:260202デフォルトの名無しさん
2008/04/25(金) 21:26:360203デフォルトの名無しさん
2008/04/25(金) 21:33:35ちょっとお聞きしたいことがあります。
例えば、変数をエクスポートする際
__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で、このようなことは可能なのでしょうか?
0204デフォルトの名無しさん
2008/04/25(金) 21:51:410205デフォルトの名無しさん
2008/04/25(金) 22:01:450206デフォルトの名無しさん
2008/04/25(金) 22:46:14おそらくは各ドライバ(ntfs.sysとかかな)のFastI/Oディスパッチルーチンの呼び出し
_FAST_IO_DISPATCH構造体でぐぐれば情報はでる あくまで推測だけど
0207デフォルトの名無しさん
2008/04/25(金) 23:10:38dllでリロケートする場合って、必要な全アドレスを書き換えますよね。
この場合、間接ポインタではなく'offset _imp__dll_val'で変数を使うことは可能なのでしょうか?
>>205
すいません。ベースアドレス固定ではなく、
「dllごとにベースアドレス固定」が正しい表現でした。
0208デフォルトの名無しさん
2008/04/25(金) 23:26:480209デフォルトの名無しさん
2008/04/25(金) 23:29:190210デフォルトの名無しさん
2008/04/25(金) 23:34:250211デフォルトの名無しさん
2008/04/26(土) 00:06:16それ同期違う。
ここでの同期は、転送が完了してから制御を返すこと。
逆に、転送が完了するのを確認せずに制御を返す関数が非同期。
0212デフォルトの名無しさん
2008/04/26(土) 01:12:23リストコントロールに表示させているのですが、
この時のパスを格納するための配列は256バイトあれば大丈夫ですか?
0213デフォルトの名無しさん
2008/04/26(土) 01:13:540214デフォルトの名無しさん
2008/04/26(土) 01:16:080215デフォルトの名無しさん
2008/04/26(土) 01:23:25そのレスだと平気で
p = (LPTSTR)malloc(260);
とか書きそうな雰囲気だな
まあ俺には関係ないからどうでもいいが
0216デフォルトの名無しさん
2008/04/26(土) 07:40:27そのように書く事によって何か問題が起こるとは予想がつかないのですが、
相応しくない書き方、という事ですね、
すみませんが、理由を知りたいです。
0217デフォルトの名無しさん
2008/04/26(土) 07:58:570218デフォルトの名無しさん
2008/04/26(土) 08:30:11それが動的メモリ
逆に無駄な分は確保しない
0219デフォルトの名無しさん
2008/04/26(土) 08:35:13まあ、自分で探すのも大切ではあるが。
0220デフォルトの名無しさん
2008/04/26(土) 09:13:070221デフォルトの名無しさん
2008/04/26(土) 09:52:51ヒント
#ifdef _UNICODE
typedef wchat_t * LPTSTR;
#else
typedef char * LPTSTR;
#endif
0222デフォルトの名無しさん
2008/04/26(土) 10:14:36んな事ぁ手前で好きに決めるもんだ。
0223デフォルトの名無しさん
2008/04/26(土) 10:35:430224デフォルトの名無しさん
2008/04/26(土) 11:10:270225デフォルトの名無しさん
2008/04/26(土) 11:15:520226デフォルトの名無しさん
2008/04/26(土) 11:17:170227デフォルトの名無しさん
2008/04/26(土) 11:20:410228デフォルトの名無しさん
2008/04/26(土) 11:39:27ヽ( ,_ノ`)ノ チッ、乗り遅れたか・・・
へノ /
┌→ ω へ
│
│
│
0229デフォルトの名無しさん
2008/04/26(土) 12:15:230230デフォルトの名無しさん
2008/04/26(土) 12:24:36>>223
0231デフォルトの名無しさん
2008/04/26(土) 12:36:15質問者が勝手に260に変換しただけ
0232デフォルトの名無しさん
2008/04/26(土) 13:06:420233デフォルトの名無しさん
2008/04/26(土) 13:11:350234デフォルトの名無しさん
2008/04/26(土) 13:15:23嘘書いてるのも多いしなあ(FAT32の話をしてるのかも知れんが)
0235デフォルトの名無しさん
2008/04/26(土) 13:20:110236デフォルトの名無しさん
2008/04/26(土) 14:26:07double dbl=1.23;
char res[32];
wsprintf(res,"%f",dbl)
SetWindowText(hWnd, res);
とするとfと表示されるだけです。
どこがおかしいでしょうか?
0237デフォルトの名無しさん
2008/04/26(土) 14:47:49L"%f"
0238デフォルトの名無しさん
2008/04/26(土) 14:49:190239デフォルトの名無しさん
2008/04/26(土) 15:05:480240デフォルトの名無しさん
2008/04/26(土) 15:06:220241デフォルトの名無しさん
2008/04/26(土) 19:45:36超亀ですが、ありがとうございました。
もっとちゃんと勉強しなおします。。
0242デフォルトの名無しさん
2008/04/26(土) 23:13:13ttp://web.archive.org/web/20030625222552/http://www.osr.com/ntinsider/1996/fastio.htm
0243デフォルトの名無しさん
2008/04/27(日) 02:14:39lstrcpy の 'l' はさっぱり分からん
0244デフォルトの名無しさん
2008/04/27(日) 02:19:290245デフォルトの名無しさん
2008/04/27(日) 02:38:550246デフォルトの名無しさん
2008/04/27(日) 02:39:420247デフォルトの名無しさん
2008/04/27(日) 02:48:220248デフォルトの名無しさん
2008/04/27(日) 02:58:24kernel32.dllじゃなくてuser32.dllにあるのも謎
しかもWin9x系だと実体はkernel32.dll内にあってuser32!w(v)sprintfは実体にjmpしてるだけだし
0249デフォルトの名無しさん
2008/04/27(日) 03:00:35しかもそれでいて wsprintf は %f がないという大きな仕様の差があるし。
0250デフォルトの名無しさん
2008/04/27(日) 03:07:23Win32: wsprintf
CRT: vsprintf, vswprintf
Win32: wvsprintf
CRT: _snprintf, _snwprintf
Win32: wnsprintf
CRT: _vsnprintf, _vsnwprintf
Win32: wvnsprintf
>>249
それだけじゃないぞ。
wsnprintf じゃなくて wnsprintf とか、もうアホかと。
0251デフォルトの名無しさん
2008/04/27(日) 04:42:39こういうの、1〜2回/年くらいしか趣味でWinアプリをつくらない
ハード屋のおいらにはつらい
0252デフォルトの名無しさん
2008/04/27(日) 05:07:35メモリマップトファイル使っても効率落ちるだけですかね?
0253デフォルトの名無しさん
2008/04/27(日) 06:03:190254デフォルトの名無しさん
2008/04/27(日) 08:03:24ReadDirectoryChangesW() を同期モードでワーカースレッドで使用した場合に,
メインスレッドから制御を変えさせる(中断させる)方法ってありますか?
0255デフォルトの名無しさん
2008/04/27(日) 11:04:310256デフォルトの名無しさん
2008/04/27(日) 11:09:240257デフォルトの名無しさん
2008/04/27(日) 11:17:270258デフォルトの名無しさん
2008/04/27(日) 11:38:51数MBくらいのファイルだが、
シーケンシャルな読み取りしかしないときにメモリマップしたら、
バッファリングありで普通に読み取るよりは速かった覚えがある。
0259デフォルトの名無しさん
2008/04/27(日) 11:41:450260デフォルトの名無しさん
2008/04/27(日) 11:43:18今やってみたけど制御帰らなかった…(´・ω・`)
0261デフォルトの名無しさん
2008/04/27(日) 17:36:16CPU(ペンティアム等)が直接理解できる形式のファイルなのでしょうか?
2.上記の答えが「直接理解できないファイル」の場合。
CPUが直接理解できるファイルを、clやgccで作成することは出来ますか?
質問の意図。
出来るだけ速く動作させたいとか直接的な理由はありません、
知識として知っておきたいのが質問の意図です。
0262デフォルトの名無しさん
2008/04/27(日) 17:37:42ほぼってのは、プログラムをメモリ上にロードする際に
OS が少し手を加えるから。
0263デフォルトの名無しさん
2008/04/27(日) 17:44:420264デフォルトの名無しさん
2008/04/27(日) 17:51:200265デフォルトの名無しさん
2008/04/27(日) 17:57:23直接解釈しているとみなして良いと思うが
0266デフォルトの名無しさん
2008/04/27(日) 18:15:32exeやdllは必ずしもCPUネイティブなマシン語とは限らんぞ。
/clrでコンパイルしたらMSILになるからな。
0267デフォルトの名無しさん
2008/04/27(日) 18:17:040268デフォルトの名無しさん
2008/04/27(日) 20:11:290269デフォルトの名無しさん
2008/04/28(月) 02:47:55FindResourceじゃ取れないし
0270デフォルトの名無しさん
2008/04/28(月) 03:06:49それを使ってやればいいんじゃないかな?
CLRを読み込んで、アセンブリ (EXE)を読み込んだら、
あとはCOMインタフェースで.NET Frameworkクラスライブラリを使う。
実際できるかどうかわからないけど、100%ネイティブでやれるとしたらこんな感じのはず。
0271デフォルトの名無しさん
2008/04/28(月) 04:50:39それネイティブじゃないだろw
0272デフォルトの名無しさん
2008/04/28(月) 15:36:29OUTLINETEXTMETRIC 構造体の otmsCapEmHeight って何の値が入っているか
知っている方いらっしゃいますか。
MSのヘルプ系には Not supported.ってしか書いてないんですよね
そのわりにはしっかり値入ってるし、どうもほしい値っぽいし・・・
0273デフォルトの名無しさん
2008/04/28(月) 15:46:02キャプションに配置した時の高さ
勘で言った。気にしないでくれ
0274デフォルトの名無しさん
2008/04/28(月) 15:46:22カーネル2GBですよね。
64bitOS上だと、この2GB&2GBは変わらないのでしょうか?
ちとスレ違いかも知れんけどWin32アプリの仕様に関してなので、
ここで質問してみました。
ググっても資料見つかんなかったです。検索下手ですね。すみません
0275デフォルトの名無しさん
2008/04/28(月) 16:03:00これがそれっぽい?
http://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.
0276デフォルトの名無しさん
2008/04/28(月) 16:07:54リンカでスイッチ入れない場合は上限2GBでかわらない。
入れた場合は4GBまで使える。
0277デフォルトの名無しさん
2008/04/28(月) 16:15:25一つ上のレスも見えんのか
0278デフォルトの名無しさん
2008/04/28(月) 16:42:04お節介な話だが、>>276 氏は>>274 を見てレスを考えている最中に先に
>>275 が入って、ちぐはぐになったんじゃね。
0279デフォルトの名無しさん
2008/04/28(月) 16:46:20指定された長さ以下になるまで8.3形式に縮めてくれる関数ないですか。
0280デフォルトの名無しさん
2008/04/28(月) 16:52:47つまりこういう事か
ケコーンしる>>276>>277
>>279
> 指定された長さ以下になるまで8.3形式に縮めてくれる
何が言いたいのかさっぱり分からん
0281デフォルトの名無しさん
2008/04/28(月) 16:53:30ケコーンしる>>275>>276
0282デフォルトの名無しさん
2008/04/28(月) 17:00:00上のほうはPathCompactPath(Ex)
0283282
2008/04/28(月) 17:01:520284デフォルトの名無しさん
2008/04/28(月) 17:21:020285デフォルトの名無しさん
2008/04/28(月) 17:25:28PathCompactPath、PathCompactPathEx、DrawTextEx
・8.3形式に縮める
GetShortPathName
・指定された長さ以下になるまで8.3形式に縮める
???
0286デフォルトの名無しさん
2008/04/28(月) 18:01:35ありがとん
例の3GBスイッチ入れたら64bitOS上でユーザー4GBですね。
もうこれで十分だああああ。
64bitアプリを作るのはいつのことになるやら…
0287デフォルトの名無しさん
2008/04/28(月) 19:45:30ぐぐっただけだが。
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.
0288デフォルトの名無しさん
2008/04/28(月) 19:57:020289デフォルトの名無しさん
2008/04/28(月) 20:08:530290デフォルトの名無しさん
2008/04/28(月) 20:26:35例の3GBスイッチって何?
0291デフォルトの名無しさん
2008/04/28(月) 20:32:24link.exe /LARGEADDRESSAWARE
0292デフォルトの名無しさん
2008/04/28(月) 20:34:420293デフォルトの名無しさん
2008/04/28(月) 20:36:450294デフォルトの名無しさん
2008/04/28(月) 20:45:32内実がしめしているものと意味合いが異なりすぎるのに
LARGEADDRESSAWAREを3GBスイッチとか言うのはなぜ?
0295デフォルトの名無しさん
2008/04/28(月) 20:56:530296デフォルトの名無しさん
2008/04/28(月) 21:16:48実際にやったことある。
もう必要ないページが物理メモリに残って、また必要になるページが追い出されて、
ぐだぐだな状態になったよ。
ワーキングセットを自分でトリムすりゃいいんだろうけど、
そしたら自分に必要なページまで削られちまうかも。
0297デフォルトの名無しさん
2008/04/28(月) 22:34:59大いに関係ある。
/LARGEADDRESSAWARE付けたEXEが実際に2GB超のメモリを使うには、
boot.iniで/3GBを入れていないといけない。
(あるいは上に話があったように64ビットWindowsにするか)
0298デフォルトの名無しさん
2008/04/28(月) 22:41:520299デフォルトの名無しさん
2008/04/28(月) 23:43:140301デフォルトの名無しさん
2008/04/29(火) 01:54:18今現在、SetTimerを用いてWM_TIMERを送ってもらっているのですが、
タイマーの精度が低いので、timeGetTime関数を使ってみようと思ったのですが
これがうまくいきません。
具体的なやり方のようなものをご存知の方がいらっしゃいましたら、ご教示くださいませ
0302デフォルトの名無しさん
2008/04/29(火) 01:59:200303デフォルトの名無しさん
2008/04/29(火) 02:32:290304デフォルトの名無しさん
2008/04/29(火) 02:33:560305デフォルトの名無しさん
2008/04/29(火) 02:44:29みたいな動作する関数って何ですか?
0306デフォルトの名無しさん
2008/04/29(火) 02:47:23system("cls");
}
0307デフォルトの名無しさん
2008/04/29(火) 02:51:09これを使わなくてもコンソール画面をクリアして
カーソルを一番左上に持っていく事はできますか?
0308デフォルトの名無しさん
2008/04/29(火) 02:51:360309デフォルトの名無しさん
2008/04/29(火) 03:03:370310デフォルトの名無しさん
2008/04/29(火) 03:05:13まあ"msvcrt.dll"にリンクできるコンパイラ(VC6,DDK,gccなど)を使ってればの話だが
0311デフォルトの名無しさん
2008/04/29(火) 03:18:02できます。
0312デフォルトの名無しさん
2008/04/29(火) 03:19:540313デフォルトの名無しさん
2008/04/29(火) 03:21:34このメッセージを表示
とかどうやったらできる?
0314デフォルトの名無しさん
2008/04/29(火) 04:10:40Sleep(60000);
MessageBox(NULL, "このメッセージを表示", NULL, 0);
0315デフォルトの名無しさん
2008/04/29(火) 04:40:57マイクロソフトのサンプルはすべてチェックしたか?
>>303
パフォーマンスカウンターは正確とは限らない。
一部のCPUでは、CPUが省電力機能でクロックが低下すると、パフォーマンスカウンターまで遅くなる。
また、複数のコアを持つCPUでは、パフォーマンスカウンターの読み出しには結構なコストがかかる。
(かといってRDTSC命令(だったかな)を直に呼ぶのはダメだ。マルチプロセッサやマルチコアなど、
カウンタが複数ある場合、それらが同一にカウント開始するとは限らないからだ。)
0316デフォルトの名無しさん
2008/04/29(火) 04:40:583つ以上のキーを同時に押下するとき、いくつかの組み合わせでは最後に押したキーが押下されてない事になっています。
たとえば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を使っても同様の現象が発生していました。
0317デフォルトの名無しさん
2008/04/29(火) 04:44:20MSDNライブラリで、
WriteConsole
のページを開いて目次を同期し、そこのあたりのAPIを一通り見れ。
0318デフォルトの名無しさん
2008/04/29(火) 04:45:14Sleep(60000)が同期だろうが。
茶化した回答しかできんなら黙っとれ。
0319デフォルトの名無しさん
2008/04/29(火) 04:47:51まずは、あなたの使っているキーボードが、Nキー・ロールオーバーを保証していることを確認せよ。
また、同時押下のキーに制限がないことを確認せよ。
そこいらのキーボードはコスト削減のために、
(シフト系の同時押下前提のキーを除いて)
複数のキーの同時押下を検出できない
または、誤検出するような設計になっている。
0320デフォルトの名無しさん
2008/04/29(火) 04:54:25あー・・・なるほど。
1000円くらいの安物なので多分対応してないでしょうね・・・。
確認してみます。
ありがとうございます。
0321デフォルトの名無しさん
2008/04/29(火) 04:59:18PS/2接続ならOKだが、
USB接続だと6キーまでという制限があったりするらしいぞ。
0322デフォルトの名無しさん
2008/04/29(火) 06:38:42本当にいくらでも同時押し下げを認識するのな。
別に無制限の同時押し下げのために使ってるわけじゃないが。
0323デフォルトの名無しさん
2008/04/29(火) 07:42:55sndPlaySound("c:\\test.wav", SND_ASYNC);
CloseHandle(CreateThread(..., ThreadFunc, ...));
DWORD WINAPI ThreadFunc(void* p)
{
Sleep(60000);
MessageBox(NULL, "このメッセージを表示", NULL, 0);
return 0;
}
0324デフォルトの名無しさん
2008/04/29(火) 08:13:46プログラマに向いていないので転職をおすすめする
0325デフォルトの名無しさん
2008/04/29(火) 08:22:240326デフォルトの名無しさん
2008/04/29(火) 08:25:160327デフォルトの名無しさん
2008/04/29(火) 08:27:0960秒後に
このメッセージを表示
することだよな。
それを求めていたら、そういう質問になるだろう。
0328デフォルトの名無しさん
2008/04/29(火) 08:30:04> 非同期でwav再生してて、wavの再生位置が1分に来たら
> このメッセージを表示
である。
言葉を補うと、
すでに非同期で再生しているwavが、
その再生位置が1分のところに来たら
このメッセージを表示
となるだろう。
どこまで再生しているのか不明な以上、
Sleepなんかじゃ話にならない。
0329デフォルトの名無しさん
2008/04/29(火) 08:31:420330デフォルトの名無しさん
2008/04/29(火) 08:33:040331デフォルトの名無しさん
2008/04/29(火) 08:34:080332デフォルトの名無しさん
2008/04/29(火) 08:35:46こういう奴って、実際にやったことないんだろうなぁ
0333デフォルトの名無しさん
2008/04/29(火) 08:39:15仮に音とびしても「再生位置1分」と実時間とのずれなんて誤差範囲だろ
お前のPCでは1分のwavを再生するのに2分かかるほど音とびするのか?
0334デフォルトの名無しさん
2008/04/29(火) 08:44:03保証されていないものに頼ることこそ、プログラマに向いてない。
メモリ上にwavを読みこんであったとしても、そいつが物理メモリ上になかったら?
ファイルから直に再生するときに、CD-ROMなどのアクセスに時間のかかるデバイス上にあったら?
しかも、同時に他のアクセスが発生して、当該ファイルの読込みが途切れたら?
>>329
ループ再生していたら、再生開始から1分後とは限らない。
それに、先頭から再生しているのかどうかも、わからんし、
途中で一時停止するかもしれん。
0335デフォルトの名無しさん
2008/04/29(火) 08:50:28お前ムキになりすぎ
そもそもsndPlaySoundは一時停止なんてできないし、
そんな事を言い出したらDirectSoundのコールバックやらを使っても正確に1分かどうかなんて分からんぞ
0336デフォルトの名無しさん
2008/04/29(火) 09:04:220337デフォルトの名無しさん
2008/04/29(火) 09:06:28それも3秒とかの単位で。
Sleepで時間あわせなんてナンセンス。
定期的に再生位置を読みにいくしかないんじゃね。
0338デフォルトの名無しさん
2008/04/29(火) 09:14:25そんな使い方してたらHDD壊れるだろw
0339デフォルトの名無しさん
2008/04/29(火) 09:58:35sndPlaySoundを使うことを前提にして話をするなよ。
0340デフォルトの名無しさん
2008/04/29(火) 10:05:13壊れないんだな、これが。
何年も前から、ノートPCのHDDには加速度センサが付いていて、
動きはじめた時点でヘッドを安全領域に移動させはじめるのよ。
衝撃が加わるであろう頃には、かなりの衝撃に耐えられる状態になる。
0341デフォルトの名無しさん
2008/04/29(火) 10:11:510342デフォルトの名無しさん
2008/04/29(火) 10:15:25XAudioのせいで。
0343デフォルトの名無しさん
2008/04/29(火) 10:26:38ソースどこだよヴォケ
0344デフォルトの名無しさん
2008/04/29(火) 10:29:300345デフォルトの名無しさん
2008/04/29(火) 10:45:35MFCやらDirectXやら雑談スレになってる
0346デフォルトの名無しさん
2008/04/29(火) 10:47:080347デフォルトの名無しさん
2008/04/29(火) 10:47:350348デフォルトの名無しさん
2008/04/29(火) 10:47:350349デフォルトの名無しさん
2008/04/29(火) 11:11:19ここの芝君じゃね?
0350313
2008/04/29(火) 11:31:09>>337の>定期的に再生位置を読みにいくしかないんじゃね。
ってどうやればできる?
0351デフォルトの名無しさん
2008/04/29(火) 11:32:430352デフォルトの名無しさん
2008/04/29(火) 11:33:21ほんとごめんね
0353デフォルトの名無しさん
2008/04/29(火) 11:52:170354デフォルトの名無しさん
2008/04/29(火) 12:01:130355デフォルトの名無しさん
2008/04/29(火) 12:15:230356デフォルトの名無しさん
2008/04/29(火) 12:53:12このAPIが呼び出されてスレッドが休止された時点から少なくとも
msミリ秒はスレッドの再開が無い。
但しSleep内でスレッドが休止され再開されるまでブロック
(戻ってこない)ことが保証されているかどうか不明
(仮に現時点そうだとしても将来に渡る永続的な保証は無いと思うべき)
最も無難な解釈は、「このAPIが呼び出されてから次のスレッド休止期間
がmsミリ秒以上であることが保証される」
といった程度。
こういうのをドキュメントから読み取れないとな。
>>314の解答は、ある意味最適解だよ。APIの利用法で実績例が少ない
ものは安全性が低くなる。
殆どのAPIは他の目的で作られたもので汎用性を考えて作られていないし、
今更作り直すことすら出来ない。(その意味で仕様が安定してるという
理由だけで使われているとすら言える)
あくまでも使用者の自己責任という前提でエクスポート(渋々に使用許可)
されてるものに過ぎない。
0357デフォルトの名無しさん
2008/04/29(火) 12:58:18移動したみたいよ
0358デフォルトの名無しさん
2008/04/29(火) 13:31:08もうそういうつっこみはいんでない?
ネタをネタとして(ry
0359デフォルトの名無しさん
2008/04/29(火) 13:32:070360デフォルトの名無しさん
2008/04/29(火) 14:16:51別スレッドでSleep(60000)でその後にメッセージ出せば良いと思う。
0361デフォルトの名無しさん
2008/04/29(火) 14:20:54タスクトレイ(通知領域)にアイコンをだすにはどうすればいいですか?
XPではNotifyIconを使って動いていたのですが、
Vistaではセッションが分離されたようで動かなくなりました。
よろしくおねがいします。
0362デフォルトの名無しさん
2008/04/29(火) 14:21:02リアルタイムアプリ作るのは不可能だと思う
それが嫌ならWindows使わないほうがいいと思う
0363デフォルトの名無しさん
2008/04/29(火) 14:38:02はぁ?
0364デフォルトの名無しさん
2008/04/29(火) 14:38:41タスクトレイアプリを別exeで作って
そいつをCreateProcessAsUserだかなんだかでデスクトップに注入しろ
タスクトレイアプリとの通信方法は自分で考えろ
0365デフォルトの名無しさん
2008/04/29(火) 14:43:07話を理解してない馬鹿
0366↑
2008/04/29(火) 14:45:540367デフォルトの名無しさん
2008/04/29(火) 14:52:220368デフォルトの名無しさん
2008/04/29(火) 14:53:420369デフォルトの名無しさん
2008/04/29(火) 14:56:19そうやって勝手な雑談ネタを持ち込もうとしたら叩かれて当然
0370デフォルトの名無しさん
2008/04/29(火) 14:56:34先に入れたほうが先に届くことが保証されるか?
常識と教育が必要な知識との微妙な境界領域だろうが
一般的には保証されてると信じたほうが悪いと判決される。
0371デフォルトの名無しさん
2008/04/29(火) 15:03:500372デフォルトの名無しさん
2008/04/29(火) 15:04:54↓
質問内容が飛躍してスレ住人が雑談
↓
エスカレートしすぎて当事者以外は手がつけられなくなる
↓
質問者が「ごめんなさい」レス
この流れの永久ループだな
謝るべきは雑談しているカス共だろ
0373デフォルトの名無しさん
2008/04/29(火) 15:34:500374デフォルトの名無しさん
2008/04/29(火) 15:35:32だから何?って感じなんだが
0375デフォルトの名無しさん
2008/04/29(火) 15:43:16だから、話が脱線していくのは仕方がないでしょ
誰も本当の事知ってる訳じゃないし。
断片情報のよせ集めでしかないからね。
0376デフォルトの名無しさん
2008/04/29(火) 15:44:37お前が雑談の元凶か
0377デフォルトの名無しさん
2008/04/29(火) 16:02:550378デフォルトの名無しさん
2008/04/29(火) 16:38:35取得したいのですが、良い方法がありましたらアドバイスお願いします。
・分かっていること
スクリーンセーバーの有効無効、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フックまで持ち出さなければならないのか…。
0379デフォルトの名無しさん
2008/04/29(火) 16:42:46非同期wav再生
→再生位置取得
→位置により別の文字(歌詞でも)表示
ってSleepが手っ取り早いんかな
歌詞表示はコンソールなんだけど・・・
0380デフォルトの名無しさん
2008/04/29(火) 16:47:29そもそも何でもAPIフックで済まそうという思考が以下略
0381デフォルトの名無しさん
2008/04/29(火) 16:58:11http://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_getpos.html
こんなんどう?使い方わからんけど
誰か頼むorz
0382デフォルトの名無しさん
2008/04/29(火) 17:02:55/* 取得の前準備 */
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
/* 再生位置取得 */
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
/* 終了 */
見たいな感じで 最小コード誰かplz
0383デフォルトの名無しさん
2008/04/29(火) 17:08:38ttp://www.google.com/search?q=wav+%E5%86%8D%E7%94%9F%E4%BD%8D%E7%BD%AE+%E5%8F%96%E5%BE%97
0384デフォルトの名無しさん
2008/04/29(火) 17:17:23全くその通りなのですが、色々調べた結果APIフックにいってしまいました。
APIフックがしたいわけではないので、どなたかよい方法があれば…。
0385デフォルトの名無しさん
2008/04/29(火) 17:39:41それを抑止する(WM_SYSCOMMAND/SC_SCREENSAVEに応答する)以上は触るなという事だろう
要するに
「スクリーンセーバーを起動できるかどうか」
ではなくて
「スクリーンセーバーが起動されようとしている時にどうするか」
だけを考えろ、と。
0386デフォルトの名無しさん
2008/04/29(火) 18:24:06Vistaは糞
0387デフォルトの名無しさん
2008/04/29(火) 19:53:21http://www.4gamer.net/specials/tooearlytogetvista/003/tooearlytogetvista_001.shtml
0388デフォルトの名無しさん
2008/04/29(火) 20:54:31サービスが直にアイコンを出すのではなく、
ログオンしているユーザと対話するためのEXEを作り、
そのEXEがサービスと通信して適宜、アイコンを表示すべし。
0389デフォルトの名無しさん
2008/04/29(火) 20:56:56いろいろと考慮して、行儀良くAPIを使うのは、基本中の基本。
たまたま動いているからOKという考え方だと痛い目にあう。
>>364
> そいつをCreateProcessAsUserだかなんだかでデスクトップに注入
スタートアップに登録でいいと思う。
0390デフォルトの名無しさん
2008/04/29(火) 21:15:142chステレオでただ音を出すだけなら、今後も、互換性あるんじゃない?
0391デフォルトの名無しさん
2008/04/29(火) 23:13:07こういうことじゃないのか。
>0 を指定すると、スレッドは、実行の準備ができている同じ優先順位の
>ほかのスレッドに残りのタイムスライスを譲ります。
>>375 同意。本当の事はバージョン限定。
0392デフォルトの名無しさん
2008/04/29(火) 23:18:23たまたま動いてるからOKだなんて言わなかったけど?(笑)
0393デフォルトの名無しさん
2008/04/29(火) 23:23:560394デフォルトの名無しさん
2008/04/29(火) 23:25:000395デフォルトの名無しさん
2008/04/29(火) 23:30:31してないよ?
それは単なる君の憶測。
0396デフォルトの名無しさん
2008/04/30(水) 00:49:06その記事を書いた時点で記者はXAudio 2のことを全く知らなかったみたいだがな。
0397デフォルトの名無しさん
2008/04/30(水) 03:09:28レスどうもです。一筋縄ではいかなそうですね。
NtUserCreateDesktop のフックを試してみて、無理そうだったら
アイディアがもう無いので諦めたいと思います。
0398デフォルトの名無しさん
2008/04/30(水) 03:20:330399デフォルトの名無しさん
2008/04/30(水) 05:56:50スクリーンセイバー相手に超乙
0400デフォルトの名無しさん
2008/04/30(水) 06:30:33大体NtUserCreateDesktopなんて名前からしてモロNT依存だし
Win32がNT専用じゃない(なかった)事を考えるとその行為がいかに馬鹿げているか分かるだろうし
そんな事にいちいちSSDTフックを持ち出していたら何のためにAPIがあるのか分からん
0401デフォルトの名無しさん
2008/04/30(水) 07:06:45UndocumentedなAPIを使いこなしてこそ、真のプログラマというものだろう。
公開APIなんぞ、M$の手のひらで踊らされているだけに過ぎない。
おれは公開APIしか使わないけどね。
0402デフォルトの名無しさん
2008/04/30(水) 07:08:29質問者もその辺は重々承知だろうし、勝手にやらせればいいだろ
0403デフォルトの名無しさん
2008/04/30(水) 07:08:48ていうか「真のプログラマ」ってネタだよな。
0404デフォルトの名無しさん
2008/04/30(水) 07:09:47何が目的なのか、わからないから、
代替案を提案しようがないのだが。
0405デフォルトの名無しさん
2008/04/30(水) 07:32:35IsScreenSaverEnabledなんてAPIが無い以上Win32APIレベルで無理なのは重々承知のはず。
その上でカーネルAPIのフックなどを持ち込んで「他に良い方法ありませんか?」なんて
正直、知識をひけらかしたいだけじゃないのかとも思ってしまう。
0406デフォルトの名無しさん
2008/04/30(水) 07:42:150407デフォルトの名無しさん
2008/04/30(水) 07:44:350408デフォルトの名無しさん
2008/04/30(水) 08:11:42スクリーンセーバーの基本設定はレジストリに書かれてる訳じゃないのか?
0409デフォルトの名無しさん
2008/04/30(水) 08:24:02いまスクリーンセーバーを起動しようとしたら、
誰がそれに反対するかは、
実際にお伺いを立ててみないとわからないのよ。
0410デフォルトの名無しさん
2008/04/30(水) 08:31:46馬鹿馬鹿しい
0411デフォルトの名無しさん
2008/04/30(水) 08:33:150412デフォルトの名無しさん
2008/04/30(水) 08:37:530413デフォルトの名無しさん
2008/04/30(水) 08:39:59他のプロセスが何をしようが知ったことではない、マルチタスクの基本
それが分からんようなら勝手にドライバでも何でも作ってろ
0414デフォルトの名無しさん
2008/04/30(水) 08:43:47○誰かがそれに反対するかは
0415デフォルトの名無しさん
2008/04/30(水) 08:44:140416デフォルトの名無しさん
2008/04/30(水) 08:50:01スクリーンセーバーを一時的にそれに変更し、それを起動してみる。
起動できた場合はそのスクリーンセーバーからメッセージを送ってもらう。
こんなんでどうなんだ?
0417デフォルトの名無しさん
2008/04/30(水) 08:51:39「知っている」という事象が存在しない命題に対して「知らないならレスするな」は矛盾している。
つまり、お前も>>406も質問者の>>378自身も単なる荒らしに過ぎないということ。
0418デフォルトの名無しさん
2008/04/30(水) 09:13:59論理学を勉強しなおしましょう
0419デフォルトの名無しさん
2008/04/30(水) 09:17:020420デフォルトの名無しさん
2008/04/30(水) 09:17:500421デフォルトの名無しさん
2008/04/30(水) 10:45:500422デフォルトの名無しさん
2008/04/30(水) 11:44:130423デフォルトの名無しさん
2008/04/30(水) 12:11:110424デフォルトの名無しさん
2008/04/30(水) 12:30:320425デフォルトの名無しさん
2008/04/30(水) 12:31:210426デフォルトの名無しさん
2008/04/30(水) 13:31:55わざわざwin32API勉強してる奴の妨害しなくてもいいだろ?
嫌がらせ受ける側の気持ちになれよ
0427デフォルトの名無しさん
2008/04/30(水) 13:33:310428デフォルトの名無しさん
2008/04/30(水) 13:34:030429デフォルトの名無しさん
2008/04/30(水) 14:04:59荒ら
わざ
受け
0430デフォルトの名無しさん
2008/04/30(水) 14:14:53他の勉強時間に使え
0431デフォルトの名無しさん
2008/04/30(水) 14:24:44Windowsを使う場合APIは避けて通れない道の一つ
でもCやVC++でするのは、迂遠かもな。
0432デフォルトの名無しさん
2008/04/30(水) 14:30:480433デフォルトの名無しさん
2008/04/30(水) 14:40:310434デフォルトの名無しさん
2008/04/30(水) 14:41:210435デフォルトの名無しさん
2008/04/30(水) 14:45:100436デフォルトの名無しさん
2008/04/30(水) 14:53:58んなもん覚えるのは脳細胞の無駄づかい。
IDEなら引数の形式が表示されるし、
そうでないにしても、
MSDNライブラリで引けば一瞬で表示される。
0437デフォルトの名無しさん
2008/04/30(水) 16:02:17だってVB5/VC6未満の開発環境使った事ないし
0438デフォルトの名無しさん
2008/04/30(水) 16:26:22他はIDEのヒントがないと自信ないな。
0439デフォルトの名無しさん
2008/04/30(水) 16:27:420440デフォルトの名無しさん
2008/04/30(水) 16:29:330441デフォルトの名無しさん
2008/04/30(水) 17:00:46ほとんど 0 でいいからな。
0442デフォルトの名無しさん
2008/04/30(水) 17:00:500443デフォルトの名無しさん
2008/04/30(水) 17:01:420444デフォルトの名無しさん
2008/04/30(水) 17:07:560445デフォルトの名無しさん
2008/04/30(水) 17:13:14Office Word にAPIを使って文字を入力したい(普通の文章)のですが、
たとえば、ExcelのVBAを使用して、sheetのセルに入力された文字列
を自動的にコピーして貼り付ける(でなくてもイイんですが)にはsendmessageでWM_SETTEXTや、
WM_PASTEなどを試しましたが上手くいきませんでした。
ネット検索でよく出てくる、メモ帳へのSendmessageでは上手くいきましたが
Wordだと上手くいきません。
フリーソフトを使用して、_WwG(ウインドウの位置も視覚的に捉えられるソフト
なので、キャレット?のある部分)というクラス名まではたどり着き、10進の
ウインドウハンドルを直接入力して、試していますがダメでした。
これはSendmessageの送り先が間違っているのか、
そもそも、この方法が通用しないものなのかわかりません。
ここ数日間まったくお手上げ状態です。。。
ちなみにSendKeysなど、keyストロークを送るものではなく、
あくまでも、テキストを直接的に送ることを前提にしています。
このWordに対しての送信?が上手く行った場合、他のソフト(Officeアプリではない)
への応用を考えており、その練習用としてなのですが、
何か汎用的な方法があるものなのでしょうか?
また、メモ帳で上手くいって、Wordで上手くいかない理由とは
(いろいろあるとは思いますが)なんでしょうか?
どなたかご教授ねがいます。
長文申し訳ありません。
0446デフォルトの名無しさん
2008/04/30(水) 17:21:47Office系は独自コントロールだからWM_**系は使えないよ
OLEオートメーションとか使うべし
0447デフォルトの名無しさん
2008/04/30(水) 17:26:08教授できるほどAPIに詳しくはありませんが、Office系の他にもゲーム類は受け付けない可能性が高そうですね。
ターゲットアプリが判っているのなら、そのアプリでテストする方が無難でしょう。
0448デフォルトの名無しさん
2008/04/30(水) 17:31:40どうもありがとうございます。
それと、もうひとつ質問があってあるウィンドウからスタイルを数値として取得したときに
それと対応する文字列?(例えば54310000なら
WS_CHILDWINDOW
WS_VISIBLE
WS_CLIPSIBLINGS
WS_VSCROLL
WS_HSCROLL
WS_MAXIMIZEBOX
を)
を取得したいと思っているのですがどのようにやればいいのでしょうか?
教えていただければ幸いです。
よろしくお願いいたします。
0449デフォルトの名無しさん
2008/04/30(水) 17:36:420451デフォルトの名無しさん
2008/04/30(水) 17:43:12随分と>447に対して失礼なレスだな。無視するならアンカー書かなきゃいいじゃん。
0452デフォルトの名無しさん
2008/04/30(水) 17:46:21「どうもありがとうございます。」だけが>>447へのレスだろ
0453デフォルトの名無しさん
2008/04/30(水) 17:47:14ぱらめーた覚えてるって自慢されてもなあ。
APIなんか一度サブクラス化してから使うから、パラメータなんかいちいち覚えないよ。
0454青
2008/04/30(水) 17:49:040455デフォルトの名無しさん
2008/04/30(水) 17:49:35ビットが立ってるかどうか調べて、自力でやるしかない。
0456445
2008/04/30(水) 17:52:44申し訳ありません。
実は、本当に操作したいアプリに対しても同じ方法で試していますが
ダメでした。そのアプリは業務用で下手をするとマズいので、
似たようなインターフェイス(MDIとか)だったので先にWordで練習しようかと。。
447さん すいませんでした。
0457デフォルトの名無しさん
2008/04/30(水) 17:55:41やはりそのような方法しかないのですね。
どうもありがとうございました。
0458デフォルトの名無しさん
2008/04/30(水) 17:55:43対象のアプリケーションがオートメーションを持っている可能性なんて
限り無く0に近そう。
0459デフォルトの名無しさん
2008/04/30(水) 17:58:210460デフォルトの名無しさん
2008/04/30(水) 17:58:54外部から操作されることを想定していないソフトだとまず有り得ない
0461デフォルトの名無しさん
2008/04/30(水) 18:00:46みたいなんは気にしなくておk
0462デフォルトの名無しさん
2008/04/30(水) 18:02:170463447
2008/04/30(水) 18:14:08見た目は似たようなインターフェースでも、中身は全然違う可能性もあります。
wordで巧くいってもそのアプリで巧くいく保障にはなりませんし、業務用で下手をすると拙いのなら
もしかしたら、そうやってメッセージを調べることでリバースエンジニアリングととられて契約違反とされるかもしれませんね。
0464デフォルトの名無しさん
2008/04/30(水) 18:22:17最後の3行は余計
誰もそんな事は聞いてないし、質問者自身が「下手をするとマズい」といってるだろう
そういうレスが雑談の元になってるのに少しは自重しろ
0465デフォルトの名無しさん
2008/04/30(水) 18:37:040466デフォルトの名無しさん
2008/04/30(水) 18:57:490467デフォルトの名無しさん
2008/04/30(水) 18:59:57>>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-
雑談の雑談(仮題)
0468デフォルトの名無しさん
2008/04/30(水) 19:07:12荒らしも酷いことしやがる
0469デフォルトの名無しさん
2008/04/30(水) 19:08:41乙
0470デフォルトの名無しさん
2008/04/30(水) 20:00:220471デフォルトの名無しさん
2008/04/30(水) 20:02:06俺が次スレを立てる限り
0472デフォルトの名無しさん
2008/04/30(水) 20:11:500473デフォルトの名無しさん
2008/04/30(水) 20:16:190474デフォルトの名無しさん
2008/04/30(水) 20:52:34DOSやMSXなんかと同じ
0475デフォルトの名無しさん
2008/04/30(水) 22:09:55>>378
>>416
0476デフォルトの名無しさん
2008/05/01(木) 00:56:350477デフォルトの名無しさん
2008/05/01(木) 00:58:18各プロセスにどのCPUコアを割り当てるか,タスクマネージャで設定できますが,
これと同じようなことが出来るAPIってありますか?
プロセスが使用するCPUコアを指定したいのです。
0478デフォルトの名無しさん
2008/05/01(木) 01:04:180479デフォルトの名無しさん
2008/05/01(木) 01:10:54おおまさに探し求めていたものですありがと〜
0480デフォルトの名無しさん
2008/05/01(木) 22:38:050481デフォルトの名無しさん
2008/05/02(金) 00:13:00strtok以外によい方法はありませんか?
0482デフォルトの名無しさん
2008/05/02(金) 00:17:09そんなところじゃね。
ところで、コンマを含むデータを扱わない前提でいいのか?
0483デフォルトの名無しさん
2008/05/02(金) 00:17:560484デフォルトの名無しさん
2008/05/02(金) 00:23:24言われてみればsscanfのほうが簡単に書けそうです
コンマは扱わないのでsscanfでやってみます。ありがとう。
0485デフォルトの名無しさん
2008/05/02(金) 00:41:08微妙にスレ違いのメンツだけど。
0486デフォルトの名無しさん
2008/05/02(金) 00:45:12・・もスレ違いか
0487デフォルトの名無しさん
2008/05/02(金) 01:15:110488デフォルトの名無しさん
2008/05/02(金) 01:37:030489デフォルトの名無しさん
2008/05/02(金) 01:43:55RFC4180
0490デフォルトの名無しさん
2008/05/02(金) 01:48:49CSVじゃないけどよくあるMicrosoft独自仕様とか。
0491デフォルトの名無しさん
2008/05/02(金) 01:56:110492デフォルトの名無しさん
2008/05/02(金) 02:00:42あれ参考情報じゃなかったか?
0493デフォルトの名無しさん
2008/05/02(金) 02:25:51間違ったルールだってある
0494デフォルトの名無しさん
2008/05/02(金) 09:28:34そういう雑談ネタはいいから。
0495デフォルトの名無しさん
2008/05/02(金) 10:14:38そういうレスはいいから。
0496デフォルトの名無しさん
2008/05/02(金) 10:29:22そういうレス(ry
0497デフォルトの名無しさん
2008/05/02(金) 10:33:54そういう(ry
0498デフォルトの名無しさん
2008/05/02(金) 10:37:330499デフォルトの名無しさん
2008/05/02(金) 10:37:560500デフォルトの名無しさん
2008/05/02(金) 10:52:520501デフォルトの名無しさん
2008/05/02(金) 11:50:350502デフォルトの名無しさん
2008/05/02(金) 11:56:280503デフォルトの名無しさん
2008/05/02(金) 11:57:130504デフォルトの名無しさん
2008/05/02(金) 12:00:300505デフォルトの名無しさん
2008/05/02(金) 12:08:240506デフォルトの名無しさん
2008/05/02(金) 12:28:450507デフォルトの名無しさん
2008/05/02(金) 12:29:09>>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
規格なんてクソ食らえ(雑談、荒らし)
0508デフォルトの名無しさん
2008/05/02(金) 12:37:550509デフォルトの名無しさん
2008/05/02(金) 12:41:36そんなAPIは無いという事で
0510デフォルトの名無しさん
2008/05/02(金) 12:52:38--終了--
0511デフォルトの名無しさん
2008/05/02(金) 12:54:320512デフォルトの名無しさん
2008/05/02(金) 13:04:010513デフォルトの名無しさん
2008/05/02(金) 21:13:230514デフォルトの名無しさん
2008/05/02(金) 21:14:58WM_PAINT WM_KEYDOWN WM_??? は誰が投げますか?
0515デフォルトの名無しさん
2008/05/02(金) 21:17:02WM_APPとかの話
0516デフォルトの名無しさん
2008/05/02(金) 21:17:400517デフォルトの名無しさん
2008/05/02(金) 21:21:33同一スレッド以外からSend/PostMessageされたWM_APP+???をブロックしたいけど無理ですか?
0518デフォルトの名無しさん
2008/05/02(金) 21:36:270519デフォルトの名無しさん
2008/05/02(金) 21:50:55教えてください
0520デフォルトの名無しさん
2008/05/02(金) 21:52:460521デフォルトの名無しさん
2008/05/02(金) 21:53:54それくらい君のテレバス能力で察しろ
0522518
2008/05/02(金) 21:56:310523デフォルトの名無しさん
2008/05/02(金) 21:56:39そのようなレスは不要です
0524デフォルトの名無しさん
2008/05/02(金) 21:58:030525デフォルトの名無しさん
2008/05/02(金) 21:59:55フックしないと無理なら諦めます
まぁデスクトップのListViewに
PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
とかすると落ちるから無理だろうとは思ってたけど
なんでどのスレッドからのメッセージなのか取得するAPIを用意してないのかなぁ
0526デフォルトの名無しさん
2008/05/02(金) 22:01:220527デフォルトの名無しさん
2008/05/02(金) 22:39:13InSendMessageやReplyMessageの戻り値を見ればわかる。
この関数、Postは無理だけど。
0528デフォルトの名無しさん
2008/05/02(金) 22:48:550529デフォルトの名無しさん
2008/05/02(金) 22:54:24そんな函数あるのか……と思ったらマジでありやがるw
MSすげぇw 知ってるおまえさんもすげぇww
0531デフォルトの名無しさん
2008/05/02(金) 23:26:09ウザイだけだから。
0532デフォルトの名無しさん
2008/05/02(金) 23:53:220533デフォルトの名無しさん
2008/05/03(土) 00:06:35MSDNで関連API一覧を眺めるとかしようぜ。
メッセージ関連なんて20個くらいしかないんだから。
0534デフォルトの名無しさん
2008/05/03(土) 00:11:53死ね
0535デフォルトの名無しさん
2008/05/03(土) 00:20:46はぁ?なんで?
0536デフォルトの名無しさん
2008/05/03(土) 00:37:540537デフォルトの名無しさん
2008/05/03(土) 00:41:220539デフォルトの名無しさん
2008/05/03(土) 00:44:210540デフォルトの名無しさん
2008/05/03(土) 00:45:530541デフォルトの名無しさん
2008/05/03(土) 04:33:300542デフォルトの名無しさん
2008/05/03(土) 04:36:20>>527
で終了するやりとりを延々と引っ張るなよ
0543デフォルトの名無しさん
2008/05/03(土) 07:12:30普通はOSが内部でPostしてるメッセージだから
>>514のような疑問を持つ奴にまともな回答なんてできるはずが無い。
というわけで>>514君には荒れた責任を取ってもらおう。
0544デフォルトの名無しさん
2008/05/03(土) 08:54:15ファイルマッピングとかどうやって使えますか?
0545デフォルトの名無しさん
2008/05/03(土) 09:21:340546デフォルトの名無しさん
2008/05/03(土) 09:35:21何語ですか?
0547デフォルトの名無しさん
2008/05/03(土) 09:41:040548デフォルトの名無しさん
2008/05/03(土) 09:55:50日本語
グーグルで調べろよこのカスが!
って意味
0549デフォルトの名無しさん
2008/05/03(土) 11:06:16> デスクトップのListViewに
> PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
> とかすると落ちる
これって、単に LVM_INSERTITEM における実装の怠慢なのでしょうか。
それとも、一般にウィンドウプロシージャ側ではポインタとして
与えられたパラメータの妥当性はチェックしないものなのでしょうか。
推測ですが、いちいちポインタの妥当性をチェックするのは面倒だし
実行時間もかかるので、チェックは行っていないような気がします。
しかしそうすると、他のプロセスからのウィンドウメッセージによる
攻撃を受け入れてしまうことになりますよね。
先輩プログラマの皆さんはどのようにコーディングされていますか?
0550デフォルトの名無しさん
2008/05/03(土) 11:34:17悪意のメッセージ攻撃なんて想定しない。
悪意のあるプロセスが実行されている時点でそのマシンはもうダメなんだし、
ターミネートプロセスされたらどうするんだって話になる。
ただ、パラメータチェックすること自体は、
バグ対策とか、モジュールの独立性確保の意味で普通にやるだろ。
0551デフォルトの名無しさん
2008/05/03(土) 11:40:58ちょっとは考えろよ。
Windowsが面倒を見てくれるのは一部の文字列をやり取りするメッセージだけだ。
LVM_INSERTITEMはWM_USERなんだから、ウインドウクラス独自のメッセージなんだよ。
だからプロセスをまたいでやり取りはできない。
どうしてもやりたきゃ、相手のプロセスにコード注入しやがれ。
0552デフォルトの名無しさん
2008/05/03(土) 11:49:53ハイ、知ったか乙
0553デフォルトの名無しさん
2008/05/03(土) 12:15:11WM_USERの範囲内にあるな。
0554デフォルトの名無しさん
2008/05/03(土) 12:21:15そういうのはWM_APPからって、ややっこしいんだよ!逆だろ名前!
せめてWM_USERだけでもなんとかならんかったのか。
0555デフォルトの名無しさん
2008/05/03(土) 12:26:55何か理由でもあるのだろうか・・・
>>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 アプリケーションが使用する文字列メッセージです。
0556デフォルトの名無しさん
2008/05/03(土) 12:31:460557デフォルトの名無しさん
2008/05/03(土) 12:34:060558549
2008/05/03(土) 13:03:19どうもありがとうございます。そういうことになりそうですね…。
確かに、他から TerminateProcess できてしまうことを考えると、
悪意のある攻撃を想定することはあまり意味がないですね。
>>551
>>549 の説明不足でしたかね…すみません。
ポインタの値が、プロセス境界を超えた時点で意味がなくなることは理解しています。
動作させたいのではなく、他のプロセスからの無意味なアクセスを拒否したかったのです。
0559デフォルトの名無しさん
2008/05/03(土) 13:17:38じゃ具体的にどうやるんだ。
誰がメッセージを送ったのか知る方法は無いぞ。
アドレスだって、予約されてるとか、コミットされてるぐらいしかわからん。
0560デフォルトの名無しさん
2008/05/03(土) 13:19:10かなーり無意味なことだと思うが
0561デフォルトの名無しさん
2008/05/03(土) 14:16:05今更変えられないのも分かるけどな
0562549
2008/05/03(土) 14:18:00アドレスから直接判断するのは難しいので、例えば __try 〜 __except の
中で中身を読んで値をチェックすれば可能かなと思っていました。
もちろん、この方法にも限界があるような気はしますけど…。
>>560
そうかもしれません。ただ、仮に攻撃を想定しないでコーディングして、
>>525 に書かれているようなことをされてアプリが落ちてしまったとき、
実際は送った側に問題があるにもかかわらず、落ちたアプリの側に
問題があるように見えてしまうのが気持ち悪かったというのはあります。
0563デフォルトの名無しさん
2008/05/03(土) 14:46:14あほらしい
0564デフォルトの名無しさん
2008/05/03(土) 14:59:130565デフォルトの名無しさん
2008/05/03(土) 15:04:370566549
2008/05/03(土) 15:07:30ちょっと気になったものですから、この機会に質問させていただきました。
私の疑問は >>550 さんのお返事で解消できましたのでこれにて消えることにします。
他にも不快な思いをした方がいらっしゃいましたら、申し訳ありませんでした。
0567デフォルトの名無しさん
2008/05/03(土) 15:09:52これは、それ使ってるんじゃない?
http://www.yoshibaworks.com/ayacy/inasoft/lv2csv/index.html
0568デフォルトの名無しさん
2008/05/03(土) 15:13:19それはVirtualAlloc、WriteProcessMemory、CreateRemoteThread辺りでDLL注入してるだけじゃないの
0569デフォルトの名無しさん
2008/05/03(土) 15:13:580570デフォルトの名無しさん
2008/05/03(土) 15:20:18obsoletedだ馬鹿
0571デフォルトの名無しさん
2008/05/03(土) 15:29:02辞書によっては載ってるのと載ってないのとあるんだけど。
0572デフォルトの名無しさん
2008/05/03(土) 15:29:08どこをどうすればそんな勘違いして覚えられるんだよww
0573デフォルトの名無しさん
2008/05/03(土) 15:31:300574デフォルトの名無しさん
2008/05/03(土) 15:33:58obsoletedなんて単語はrfcでも使われてないな
0575デフォルトの名無しさん
2008/05/03(土) 16:19:20ローマ字読みでもベーチャルだろ
つうかAPI名をスペルミスする奴は打ち慣れてない(=スキルが浅い)証拠だと思うな
で、誰だよSHStripMneumonicなんてミスした奴w
せめて#defineで間違ってない名前でも定義しとけっつーの
0576デフォルトの名無しさん
2008/05/03(土) 17:00:58m-wによると、1640年からだそうだ。
--
Main Entry: 2obsolete
Function: transitive verb
Inflected Form(s): obsolet・ed; obsolet・ing
Date: 1640
: to make obsolete
--
0577デフォルトの名無しさん
2008/05/03(土) 17:48:34何時から使われ出したかなどとは聞いていない
0578デフォルトの名無しさん
2008/05/03(土) 23:04:350579デフォルトの名無しさん
2008/05/03(土) 23:12:46お前も外野だろ
そして俺も
0580デフォルトの名無しさん
2008/05/03(土) 23:13:530581デフォルトの名無しさん
2008/05/04(日) 00:14:19ところで、自作アプリ内で動画再生したいんだけど、Media PlayerとDirect Showどちらを使うのが良い?
0582デフォルトの名無しさん
2008/05/04(日) 00:17:240583デフォルトの名無しさん
2008/05/04(日) 00:56:22するにはどうすればいいですか?
0584デフォルトの名無しさん
2008/05/04(日) 01:52:300585デフォルトの名無しさん
2008/05/04(日) 02:34:26自前でデコード+DirectGraphicsで描画
0586デフォルトの名無しさん
2008/05/04(日) 02:59:12ありがとう、できた
0587デフォルトの名無しさん
2008/05/04(日) 03:28:570588デフォルトの名無しさん
2008/05/04(日) 03:56:520589デフォルトの名無しさん
2008/05/04(日) 05:39:07dialog base unitの座標変換もやってる?
絵とか貼ると、どうせズレるからおれは無視してる。
0590デフォルトの名無しさん
2008/05/04(日) 05:45:56無視しないで中途半端に絵とか貼ってもXPのダイアログみたいに
アイコンやビットマップが潰れてかえって見づらいだけ
0591デフォルトの名無しさん
2008/05/04(日) 05:47:47DialogBox等はCreateWindowExを使ってダイアログを生成してると書いてありました。
どのようにCreateWindowExを使ってるのか知りたかったです。
0592デフォルトの名無しさん
2008/05/04(日) 06:23:19VFW関数にフレームを1枚ずつデコードしてもらってGDIで描画
0593デフォルトの名無しさん
2008/05/04(日) 06:52:32Old New Thingの本によくまとまっている。
邦訳版は「Windowsプログラミングの極意」
10.4.2のあたり。
0594デフォルトの名無しさん
2008/05/04(日) 06:56:25今すぐ読めるんだから。
だいたいこのあたりか。
ttp://blogs.msdn.com/oldnewthing/archive/2005/03.aspx
ttp://blogs.msdn.com/oldnewthing/archive/2005/04.aspx
0595デフォルトの名無しさん
2008/05/04(日) 14:37:22とりあえずマウスのフックとキーボードが押されたときに反応する(フックっていうのか?)のはできるんだけど、
電卓の例の場合はどういう種類のフック使うんでしょうか?
電卓のプログラム(OSに搭載されている)の3のボタンを9っていう数字に変えたいんですけど(というより3を押すと9を押したときと同じ動作に)
0596デフォルトの名無しさん
2008/05/04(日) 14:51:060597デフォルトの名無しさん
2008/05/04(日) 14:57:32対象ウィンドウのウィンドウプロシージャを入れ替えるとか…
お行儀のいい方法ではないよ
0598デフォルトの名無しさん
2008/05/04(日) 15:27:44テンキーを携帯電話の配列にしたいの?
0599デフォルトの名無しさん
2008/05/04(日) 15:31:53なんかDelスレでSetWindowsExで可能になると聞いたんですが、これを使うとなるとどのようにフックすればよろしいのでしょうか?
入れ替えるというより、3を押されたことを確認したら9というメッセージを変わりに送るという事はできますでしょうか?
0600デフォルトの名無しさん
2008/05/04(日) 15:32:50とくに意味はないんですが、好奇心です^^
0601デフォルトの名無しさん
2008/05/04(日) 15:50:34WriteProcessMemory、CreateRemoteThreadを使って相手プロセスにDLLを入れる
GetWindowLongでターゲットウィンドウのウィンドウプロシージャの前に自前のウィンドウプロシージャを挿入
ウィンドウメッセージのキーコードを見張って書き換えてから元のウィンドウプロシージャに渡す
0602デフォルトの名無しさん
2008/05/04(日) 15:56:59ありがとうございます。
DLL INjectionってやつですか?
流れ書いてくれたおかげで、できそうです。
どうもありがとうございました。
0603デフォルトの名無しさん
2008/05/04(日) 16:01:220604デフォルトの名無しさん
2008/05/04(日) 16:14:45フックでアプリをファックするわけだよ。ぷぷっ
0605デフォルトの名無しさん
2008/05/04(日) 16:25:030606デフォルトの名無しさん
2008/05/04(日) 16:52:500607デフォルトの名無しさん
2008/05/04(日) 16:54:30そんな面倒な方法を取らなくてもできるだろ
ホント、フック厨は短絡思考だな
0608デフォルトの名無しさん
2008/05/04(日) 17:15:23だったら書いてやれよw 悪態ついてないでさ。
0609デフォルトの名無しさん
2008/05/04(日) 18:13:53回答者がその程度のスキルじゃ質問者が可哀想だ
0610デフォルトの名無しさん
2008/05/04(日) 18:19:08別にフックする事が目的でないんなら601のような回答でも問題はないような。
0611デフォルトの名無しさん
2008/05/04(日) 18:40:510612デフォルトの名無しさん
2008/05/04(日) 20:21:58SetWindowsHookEx
を使うとしたら、
SetWindowsHookEx(? @HookProc, HInstance, 0);
第一引数はなに使うんだ?
0613デフォルトの名無しさん
2008/05/04(日) 21:04:29WH_GETMESSAGEかな。
GETMESSAGEフックならWM_KEYDOWN拾えるし
メッセージやパラメータの書き換えも出来たはず。
多分ね。
0614デフォルトの名無しさん
2008/05/04(日) 21:38:12キーでいうGetAsyncKeyStateのマウス版がほしいのですが・・・
0615デフォルトの名無しさん
2008/05/04(日) 21:42:46595読むとマウスでボタンクリックされた場合も考慮する必要がありそうだからダメだと思う。
SetWindowsHookEx はプロセスへのDLL注入目的に使うのかと思ったら違ったのか。
>>612
自分なら SetWindowsHookEx でプロセスを注入、メッセージ投げてフックプロシージャ内から
SetWindowLongPtr でウィンドウプロシージャの差し替えってやりそう。
0616デフォルトの名無しさん
2008/05/04(日) 21:44:55MSDN の GetAsyncKeyState の項目に
> GetAsyncKeyState 関数は、マウスボタンの状態も取得できます。
> ただしこの関数は、物理的なボタンのマップ先である論理的なマウスボタンの
> 状態ではなく、物理的なマウスボタンの状態を取得します。
って書いてあるけど、ダメなの?
0617デフォルトの名無しさん
2008/05/04(日) 21:47:17orz
キーボードだけだと思ってた。ごめんね。
0618デフォルトの名無しさん
2008/05/04(日) 21:51:18と煽ってみる。
0619デフォルトの名無しさん
2008/05/04(日) 21:51:180620デフォルトの名無しさん
2008/05/04(日) 21:51:43気になるので最後まで書き込んでください。
0621デフォルトの名無しさん
2008/05/04(日) 21:52:55ボタンの位置をMoveWindowで動かして変えればいいんじゃね?
てかいつの間にか電卓のボタンがButtonコントロールになってるんだな
Win98以降文字が小さくなって見づらいと思っていたらそれが原因か
0622デフォルトの名無しさん
2008/05/04(日) 21:56:36感動した。なんてスマートな方法なんだ。
0623デフォルトの名無しさん
2008/05/04(日) 22:03:07まず何をフックするかじゃね?
この場合は3を押された事をフックするから何使うかわからないが・・・。
0624デフォルトの名無しさん
2008/05/04(日) 22:11:53いや、電卓のUIだけ作って見えない本物のcalc.exeに計算させるとか。
0625デフォルトの名無しさん
2008/05/04(日) 22:12:19・calc.exeをリソースエディタで書き換える
原則的に、フックやDLL注入などで動的に書き換える必要があるのは
対象アプリが限定されていない場合、または対象アプリがCRCやMD5などで改竄チェックしている場合に留めるべき
・どうしてもフックで解決したいならSetWindowsHookEx(WH_GETMESSAGE)でWM_COMMANDを書き換える
キー(0〜9、+-*/など)を押された場合もアクセラレータテーブルに基づいて
TranslateAcceleratorがWM_COMMANDを発行するようになっている
0626デフォルトの名無しさん
2008/05/04(日) 22:23:08何を書き込もうとしたのか気になって昼寝ができませんでした。
0627デフォルトの名無しさん
2008/05/04(日) 22:36:04ヨーロッパ辺りに住んでる人ですか?
0628デフォルトの名無しさん
2008/05/04(日) 22:36:19失礼シマスタ・・・
キーだけだとばかり・・・
0629デフォルトの名無しさん
2008/05/04(日) 22:47:51鼻歌を歌ってて、おっと、ここは用心しなければ。な事態になったとかな。
0630デフォルトの名無しさん
2008/05/04(日) 22:55:25改訂第3版とな?
0631デフォルトの名無しさん
2008/05/04(日) 22:58:020632デフォルトの名無しさん
2008/05/04(日) 23:02:360633デフォルトの名無しさん
2008/05/04(日) 23:10:50まあそれに気づくのはスキルがそこそこ付いてきた頃だけど
この辺、Javaや.NETとかの解説サイトはどうなんだろう・・・
0634デフォルトの名無しさん
2008/05/04(日) 23:17:550635デフォルトの名無しさん
2008/05/04(日) 23:44:010636デフォルトの名無しさん
2008/05/04(日) 23:46:010637デフォルトの名無しさん
2008/05/04(日) 23:51:220638デフォルトの名無しさん
2008/05/05(月) 00:53:40http://www.amazon.co.jp/dp/4756136001
0639デフォルトの名無しさん
2008/05/05(月) 02:48:04当てて、ウィンドウは動かさない方法ない?
0640デフォルトの名無しさん
2008/05/05(月) 03:05:050641デフォルトの名無しさん
2008/05/05(月) 03:06:24SetWindowPosでできそうな気がしたが、できないようですね..。
http://msdn.microsoft.com/ja-jp/library/cc411206.aspx
0642デフォルトの名無しさん
2008/05/05(月) 03:39:350643デフォルトの名無しさん
2008/05/05(月) 11:26:12何のためにWin98でSetForegroundWindowの仕様が変更されたのかよく考えてみよう
0644デフォルトの名無しさん
2008/05/05(月) 15:55:40thx. 意図的にできなくしてあるってことなのかな。
ちらつきには目をつぶって SetForegroundWindow 後に Z-order を戻すようにする予定。
只今 GetWindow と格闘中。
GetWindow( hwnd, GW_HWNDPREV ) って z-order でひとつ前のウィンドウを
返してくれるんじゃないのか? なんかおかしいぞぉぉぉーーー。
0645デフォルトの名無しさん
2008/05/05(月) 16:04:450646デフォルトの名無しさん
2008/05/05(月) 16:06:580647デフォルトの名無しさん
2008/05/05(月) 16:12:400648デフォルトの名無しさん
2008/05/05(月) 16:20:19互換性の高さが最大のウリだったのにそれをあっさり捨ててしまうなんてな
ホントVistaはカスだ
0649デフォルトの名無しさん
2008/05/05(月) 16:20:320650デフォルトの名無しさん
2008/05/05(月) 16:30:19なぜ今更Win32APIに手を加えて互換性を損ねるのかさっぱり分からん
0651デフォルトの名無しさん
2008/05/05(月) 16:51:190652デフォルトの名無しさん
2008/05/05(月) 16:51:360653デフォルトの名無しさん
2008/05/05(月) 16:52:56具体的に何が廃止されたんだ? 言ってみ。
0654デフォルトの名無しさん
2008/05/05(月) 17:01:02バカじゃないんだから、定性的に議論しようや。
言ってるのはAPIが勝手に廃止されることの是非なんだけど。
0655デフォルトの名無しさん
2008/05/05(月) 17:04:490656デフォルトの名無しさん
2008/05/05(月) 17:07:05まあ最近は独禁法がらみでいろいろ公開されるようだが。
0657デフォルトの名無しさん
2008/05/05(月) 17:07:170658デフォルトの名無しさん
2008/05/05(月) 17:08:48>>647-650は非公開APIの話なんかしてないだろ
0659デフォルトの名無しさん
2008/05/05(月) 17:10:170660デフォルトの名無しさん
2008/05/05(月) 17:11:12じゃあ何の話?
非推奨API?
0661デフォルトの名無しさん
2008/05/05(月) 17:11:12MSの社員か関係者か?
0662デフォルトの名無しさん
2008/05/05(月) 17:12:02廃止されたのなんて、たまたまエクスポートされていただけでドキュメントには載っていないAPIぐらいなもんだろ。
0663デフォルトの名無しさん
2008/05/05(月) 17:13:010664デフォルトの名無しさん
2008/05/05(月) 17:14:450665デフォルトの名無しさん
2008/05/05(月) 17:16:55そういうのが多いんじゃないのかな。API云々じゃなくて。
0666デフォルトの名無しさん
2008/05/05(月) 17:16:58>>648はAPI云々とは言っていない
0667デフォルトの名無しさん
2008/05/05(月) 17:22:090668デフォルトの名無しさん
2008/05/05(月) 17:24:230669デフォルトの名無しさん
2008/05/05(月) 17:25:05こういうこと書いてるのは、ただの無知なんだから放置でいいかも。
技術板に来るにはあまりにも無知。
0670デフォルトの名無しさん
2008/05/05(月) 17:26:070671デフォルトの名無しさん
2008/05/05(月) 17:26:500672デフォルトの名無しさん
2008/05/05(月) 17:28:29こんなのどう考えても日本語版の手抜きだろ
0673デフォルトの名無しさん
2008/05/05(月) 17:30:340674デフォルトの名無しさん
2008/05/05(月) 17:31:05Win16ってまだサポートされてたのか。
びっくりだな。
お前らより長生きじゃん。
0675デフォルトの名無しさん
2008/05/05(月) 17:32:59具体的には知らないけどそう思ってるってとこじゃね
今検索中かもね
0676デフォルトの名無しさん
2008/05/05(月) 17:33:240677デフォルトの名無しさん
2008/05/05(月) 17:33:45うけるw
M$馬鹿すぎるwwwwwwwww
0678デフォルトの名無しさん
2008/05/05(月) 17:34:230679デフォルトの名無しさん
2008/05/05(月) 17:36:24M$も少しは賢くなったようだなw
win16ってwwww
今時そんなもん誰も使ってね〜〜〜〜〜wwwwwww
M$ってうぇうぇうぇ江戸時代かよwwwwww
0680デフォルトの名無しさん
2008/05/05(月) 17:37:12これにて雑談は終了です。
0681デフォルトの名無しさん
2008/05/05(月) 17:37:190682デフォルトの名無しさん
2008/05/05(月) 17:42:34_、_
ヽ( ,_ノ`)ノ それくらいは察して欲しかったってのが本音
へノ /
┌→ ω へ
│
0683デフォルトの名無しさん
2008/05/05(月) 17:56:22ファイルマネージャの使い方すら忘れてて、お客さんに聞くというていたらく。
営業は、それをダシにして「システムを更新しないと技術者が確保できません」という話をしていたようだ。
0684デフォルトの名無しさん
2008/05/05(月) 17:59:28Win3.1って最近のPCでも動くのか。
0685デフォルトの名無しさん
2008/05/05(月) 18:02:06今時DX4搭載だった。
それでも驚くほど軽かったが。
0686デフォルトの名無しさん
2008/05/05(月) 18:04:450687デフォルトの名無しさん
2008/05/05(月) 18:05:06oldnewthingのレイモンドが、どっかのアパートの管理ソフトウェアが、XP上でうごくWin16アプリだったとか言ってなかったっけ?
Vista 32bitでも大抵は動くんじゃない。
0688デフォルトの名無しさん
2008/05/05(月) 18:07:400689デフォルトの名無しさん
2008/05/05(月) 18:08:21あったあった。これだ。
>>686
そりゃ動かないプログラムをハックしてメモリパッチ当てるような会社だから。
0690デフォルトの名無しさん
2008/05/05(月) 18:10:39int func(){
int array[10000];
......
}
なんてやったらコンパイルは通っても実行時エラーで落ちる可能性大
(Windows3.1全盛期の後半で出たコンパイラじゃどーかは知らないが)
0691デフォルトの名無しさん
2008/05/05(月) 18:11:550692デフォルトの名無しさん
2008/05/05(月) 18:14:190693デフォルトの名無しさん
2008/05/05(月) 18:59:12互換性あったりするの?
Win32 API が増改築を繰り返す前から(要するに最初から)汚い理由が
そこにある気がして。
0694デフォルトの名無しさん
2008/05/05(月) 19:03:55vista上でDOSアプリ動かしたい
ttp://pc11.2ch.net/test/read.cgi/win/1169994853/
DAT落ちしてるけど。
0695デフォルトの名無しさん
2008/05/05(月) 19:10:260696デフォルトの名無しさん
2008/05/05(月) 19:17:00内部関数を、便利だからと言って外から勝手に呼んでるようなものだろう。
0697デフォルトの名無しさん
2008/05/05(月) 19:23:490698デフォルトの名無しさん
2008/05/05(月) 19:26:22動かなくなることが問題だっつっとるだろ。
う ご か な く な る
わかる?
ある時点で動いていたら、互換を名乗るならば完全に動作しなければならない。
それが出来てないのは単なる手抜き。
ヤフー買収する金が何兆円もあるってのに、互換性には手を抜くMSはクソ。
0699デフォルトの名無しさん
2008/05/05(月) 19:27:370700デフォルトの名無しさん
2008/05/05(月) 19:30:090701デフォルトの名無しさん
2008/05/05(月) 19:30:335月だけに
0702デフォルトの名無しさん
2008/05/05(月) 19:41:040703デフォルトの名無しさん
2008/05/05(月) 19:43:350704デフォルトの名無しさん
2008/05/05(月) 19:45:080705デフォルトの名無しさん
2008/05/05(月) 19:54:22コメントが { 〜 } の言語を教えてくれ
0706704じゃないけど
2008/05/05(月) 19:55:130707デフォルトの名無しさん
2008/05/05(月) 19:57:03Linuxはオープンソースなので互換性に関しては抜群です。
それにたった一社が保守しているにすぎないプロプラOSとは違い、将来にわたって
なくなることがないのです。
今先進的な企業はLinuxに注目しています。
日本でもOmron、Turbo Linux、Just Systemといった大企業が積極的に推進しています。
0708デフォルトの名無しさん
2008/05/05(月) 19:59:560709デフォルトの名無しさん
2008/05/05(月) 20:00:160710デフォルトの名無しさん
2008/05/05(月) 20:01:22せめてシェアで1%を超えてからなんか言え
MacOSの7%を超えたら話し聞いてやる
0711デフォルトの名無しさん
2008/05/05(月) 20:09:40「はなししきいてやる」って何だよ
日本語勉強してから出直して来い
0712デフォルトの名無しさん
2008/05/05(月) 20:10:21話しながら聞いてやるっていう
0713デフォルトの名無しさん
2008/05/05(月) 20:10:31おそらくMS製品が使ってるんだろうな。
0714デフォルトの名無しさん
2008/05/05(月) 20:34:48オフィスの時より限定数が少ない。
0715デフォルトの名無しさん
2008/05/05(月) 20:36:57互換モードにするとマッピングされるんだっけ?
面白いことしてくれるよなあ
0716デフォルトの名無しさん
2008/05/05(月) 20:43:47おまえはヘミ猫かよ
0717デフォルトの名無しさん
2008/05/05(月) 21:17:340718デフォルトの名無しさん
2008/05/06(火) 02:28:41NtQuerySystemTimeが結構近いんだけど。。。
誰か知ってたら教えて。
0719デフォルトの名無しさん
2008/05/06(火) 02:36:490720デフォルトの名無しさん
2008/05/06(火) 02:39:370721デフォルトの名無しさん
2008/05/06(火) 02:57:32有難うございました。
0722デフォルトの名無しさん
2008/05/06(火) 03:02:42sec = sFT/10000000 - 11644473600; //((1970-1601)*365 + 92 - 3 )*24*60*60
msec = (sFT % 10000000) / 10000;
だろ? ポストフィックスとか四捨五入とか略したけど。
0723デフォルトの名無しさん
2008/05/06(火) 03:15:39用意されてる物を使えばいいのに何が不満なんだよ・・・
0724デフォルトの名無しさん
2008/05/06(火) 03:18:540725デフォルトの名無しさん
2008/05/06(火) 03:27:08俺のマニュアルには経過秒数しか取得できないようにしか
見えないのですよ。
0726デフォルトの名無しさん
2008/05/06(火) 03:32:180727デフォルトの名無しさん
2008/05/06(火) 03:43:50__time64_t msec = _time64(NULL) * 1000;
でおk
0728デフォルトの名無しさん
2008/05/06(火) 04:05:09意味がないのですよ。
0729デフォルトの名無しさん
2008/05/06(火) 04:07:40合計した方が簡単ですね。
0730デフォルトの名無しさん
2008/05/06(火) 04:13:31__time64_t msec = _time64(NULL) * 1000 + (rand() % 1000);
0731デフォルトの名無しさん
2008/05/06(火) 04:15:340732デフォルトの名無しさん
2008/05/06(火) 04:16:00質問者は、出来たら構造体毎差分を計算できたらいいなーって感じか
0733デフォルトの名無しさん
2008/05/06(火) 04:16:36>>727
0734デフォルトの名無しさん
2008/05/06(火) 18:41:37最近Win32APIの勉強始めました。さっそく質問なんですが
上記のプログラムだと33行目のMessageBoxが表示されません。
なぜでしょうか?ご指導お願いしますm(_ _;)m
0735デフォルトの名無しさん
2008/05/06(火) 19:15:560736デフォルトの名無しさん
2008/05/06(火) 19:37:09CPU使用率が100%になるんだが
0737デフォルトの名無しさん
2008/05/06(火) 19:40:31無限ループいっちゃってるね
0738デフォルトの名無しさん
2008/05/06(火) 19:41:01とりあえず、BeginPaint/EndPaintやっとけ。
0739デフォルトの名無しさん
2008/05/06(火) 19:54:45シングルコア乙^^
0740デフォルトの名無しさん
2008/05/06(火) 20:00:090741デフォルトの名無しさん
2008/05/06(火) 20:03:180742734
2008/05/06(火) 20:04:15ありがとうございます。
PM_PAINTにはBeginPaint/EndPaintを必ず入れる必要がある?(有効領域にするため?)
ちなみに33行目以外は某サイトからのコピペなんですが
これはコードが適切ではなかったということでしょうか?
0743デフォルトの名無しさん
2008/05/06(火) 20:13:57ウインドウへのHDCってのは、描画したいときに取得して、描画し終わったら解放するものだ。
いつまでも確保しているものじゃない。
そういう糞コードがVistaで動かなくなるのだ。
0744デフォルトの名無しさん
2008/05/06(火) 20:29:23>>742
基本的にyesだ
そういううんkなサイトと格闘してきたのがこのスレのうんkたちだから
まあなんだ、その、超がんばれ
0745デフォルトの名無しさん
2008/05/06(火) 20:42:11ビスタで動かないコードなんて初耳。
0746デフォルトの名無しさん
2008/05/06(火) 20:59:33Win32的に正しくないコードを書いてるとOSのバージョンが上がると動かなくなる可能性があるという話だろ
読解力の無い奴だな
0747デフォルトの名無しさん
2008/05/06(火) 20:59:42むしろ無茶なコードでも逆に通ってしまいそうな予感。
0748デフォルトの名無しさん
2008/05/06(火) 21:09:31ここ?
それにしてもネット上のWin32API解説サイトって糞コードが多いなー
俺はカネ無かったからMSDNとそこらのオープンソースソフトのソース見て勉強したけど
みんな本とか買ってるの?
0749デフォルトの名無しさん
2008/05/06(火) 21:12:380750デフォルトの名無しさん
2008/05/06(火) 21:14:150751デフォルトの名無しさん
2008/05/06(火) 21:18:440752デフォルトの名無しさん
2008/05/06(火) 21:25:590753デフォルトの名無しさん
2008/05/06(火) 21:41:22この状況をなんとかしてくれよ。
一APIにすぎないWin32がもう100スレ超えてるくらいだから需要はある。
65スレだろ?って思うやつは歴史を勉強しよう。
0754デフォルトの名無しさん
2008/05/06(火) 21:45:030755デフォルトの名無しさん
2008/05/06(火) 21:45:07そんな本など必要としない。
本物のWindowsプログラマは、初心者向けに本など書いている暇はない。
実際、MSDNだけで十分だしなぁ。
0756デフォルトの名無しさん
2008/05/06(火) 21:47:02ちょっとググればまさにその点を指摘してるページがすぐ見つかるからな。
0757デフォルトの名無しさん
2008/05/06(火) 21:47:21今すぐやるんだ。
0758デフォルトの名無しさん
2008/05/06(火) 21:52:179割以上雑談なのに本になんか出来るかよ
0759デフォルトの名無しさん
2008/05/06(火) 21:55:30下を見て比べてたら上を見て比べた時に絶望するよ
0760デフォルトの名無しさん
2008/05/06(火) 22:10:281000ページ2000円くらいでお願いします。
0761デフォルトの名無しさん
2008/05/06(火) 22:11:10Q: ○○○
A: MSDN | ggrks
0762デフォルトの名無しさん
2008/05/06(火) 22:11:54複数のダイアログの表示をしたいのですが、どうすればいいですか?(一つずつ表示)
ーーーーーーー以下ツリービュー
親-Menu
├Menu1=Dialog1表示
├Menu2=Dialog2表示
タブコントロールとかだと、TabCtrl_GetCurSel()等で簡単に出来るのですが、
0763デフォルトの名無しさん
2008/05/06(火) 22:14:510764デフォルトの名無しさん
2008/05/06(火) 22:17:060765デフォルトの名無しさん
2008/05/06(火) 22:20:43Windowsのバージョンは知らないけど、
ソースコードは日本の有名大学に公開されている、と聞きました。
0766デフォルトの名無しさん
2008/05/06(火) 22:31:21つ 逆コンパイラ
0767デフォルトの名無しさん
2008/05/06(火) 22:38:07ttp://www.microsoft.com/japan/resources/sharedsource/default.mspx
まあ個人相手じゃないけどさ
0768デフォルトの名無しさん
2008/05/06(火) 23:24:51swfの背景透かすのってどうやればいいの?
wmodeをtransparentにすれば本来できるはずなんだけど
色々調べたらどうもこのパラメータが効かないらしい
http://gizmo.anthill.jp/
http://www.flashants.com/root/iceprojector.shtml
上記URLのような物を想定しているんだけど
背景透かす処理はどうしてるんだろ
0769デフォルトの名無しさん
2008/05/06(火) 23:26:310770デフォルトの名無しさん
2008/05/06(火) 23:33:330771デフォルトの名無しさん
2008/05/06(火) 23:58:59> ちょっとググればまさにその点を指摘してるページがすぐ見つかるからな。
バージョン、SP毎に試さなければ、おかしさは分からない
0772デフォルトの名無しさん
2008/05/07(水) 01:08:30自分でダイアログを表示したり隠したりすればええがな
0773デフォルトの名無しさん
2008/05/07(水) 01:37:14http://mup.vip2ch.com/mdl.php?img=36782
>>772
ダイアログの表示、非表示はShowWindowで行おうと思っていますが、
ツリービューで選択された項目の情報の
何を基準にしてダイアログの表示、非表示を行えばよいでしょうか?
0774デフォルトの名無しさん
2008/05/07(水) 01:55:44TVN_SELCHANGEDでも調べなさい
0775デフォルトの名無しさん
2008/05/07(水) 01:59:100776デフォルトの名無しさん
2008/05/07(水) 04:29:42フックしたメッセージをメインのプロージャに
行かないようにするにはどうすればよいですか。
と質問しようとしたけど、フックではなくて>>601にある方法で
プロシージャを噛ませて、return 0;してあげればできました。
ありがとうございます。
ほんとにありがとうございます。
ちなみにフックでも出来るのでしょうか?
0777デフォルトの名無しさん
2008/05/07(水) 07:22:59フックの場合、メッセージの存在そのものを消すことはできないので
WM_NULLにメッセージを書き換えるのが一般的。
0778デフォルトの名無しさん
2008/05/07(水) 07:54:05なるほど、ありがとうございます。
WM_NULLはこんな時に使うのですね。
ためしてみます。
0779デフォルトの名無しさん
2008/05/07(水) 12:33:140780デフォルトの名無しさん
2008/05/07(水) 13:37:17サブクラス化が一番確実だね。
0781デフォルトの名無しさん
2008/05/07(水) 16:52:10SetWindowSubclassを使ったほうがいい。理由はMSDNに載ってる。
(ComCtl32 ver6以降で可能とか書いてあるけど実はComCtl32 5.x以降なら9x/2000とかでも使える)
0782デフォルトの名無しさん
2008/05/07(水) 21:44:570783デフォルトの名無しさん
2008/05/08(木) 00:02:15単一のCRITICAL_SECTIONしか使ってないのに
あるスレッド以外のEnterのほうで止まりっぱなしなんですが
多重にEnterしてるか確認する方法ってありますか?
enterオブジェクト作ってコンストラクタでenter,デストラクタでleaveしてます。
コンストラクタとデストラクタでカウントする限りには
多重にenterしていないようにみえるのですが……
余談ですがCRITICAL_SECTIONをprintデバッグしてみたら、
98とXPで使用されてる箇所が違うみたいですね。
0784デフォルトの名無しさん
2008/05/08(木) 00:03:53他のスレッドがすでに掴んでるかどうかってこと?
同じスレッドでリエントラントかどうかってこと?
0785デフォルトの名無しさん
2008/05/08(木) 00:08:35一応後者のことですかね。
同じスレッドで複数回Enterした場合、同じ回数Leaveをしてあげないと
手放してくれないじゃないですか。
他のスレッドに移動しないってことはどこかでLeaveが行われていない気がするんですよね……
0786デフォルトの名無しさん
2008/05/08(木) 00:08:540787デフォルトの名無しさん
2008/05/08(木) 00:09:190788デフォルトの名無しさん
2008/05/08(木) 00:13:4198では空でしたがXPで確認できました。 1ってことは多重にはEnterしてないかもしれないです……
ってことは益々謎だorz
>>787
複数のCRITICAL_SECTIONを使っていれば真っ先にデッドロックを疑いますが、
単一のCRITICAL_SECTIONしか使ってないのにデッドロックって起こり得るんですか?
0789デフォルトの名無しさん
2008/05/08(木) 00:16:30暗黙的にクリティカルセクションやらマルチスレッドやらが使われている場合があるので、ありうる
0790デフォルトの名無しさん
2008/05/08(木) 00:18:330791デフォルトの名無しさん
2008/05/08(木) 00:25:44まじすかΣ(゚Д゚;
それが原因だったらどうしようもないようなorz
>>780
WinMain内の始めでやってるので大丈夫でした
一応処理の途中でdeleteしてないかもう一度確認してみます
0792デフォルトの名無しさん
2008/05/08(木) 00:28:56つ ttp://msdn.microsoft.com/ja-jp/magazine/cc164040(en-us).aspx
0793デフォルトの名無しさん
2008/05/08(木) 00:43:10内部的には複数のCRITICAL_SECTIONが数珠繋ぎになってるのは図で分かった。
けど、暗黙的に云々ってのは俺の英語力じゃどこに書いてるか探すだけで数日掛かりそうだ……
0794デフォルトの名無しさん
2008/05/08(木) 00:51:06そこのサイトに置いてあるソースを利用したらデッドロックが分かるかも知れんぞ、
という事を言いたいのだが
まあこれを使ってもいいかも
ttp://www001.upp.so-net.ne.jp/yamashita/product/debug/wdumplock.htm
>>789が何を言いたいのかは知らんが、APIが内部でクリティカルセクションを使っていても
それが原因で自分のアプリのクリティカルセクションがデッドロックするなんて有り得ない
0795デフォルトの名無しさん
2008/05/08(木) 00:56:340796デフォルトの名無しさん
2008/05/08(木) 01:36:52日本語でおk
0797デフォルトの名無しさん
2008/05/08(木) 10:25:450798デフォルトの名無しさん
2008/05/08(木) 10:48:450799デフォルトの名無しさん
2008/05/08(木) 13:48:35HFONTを作ってくれますが、これをフォントが存在しない場合はNULLを返すよう
にすることはできるんでしょうか。
やはりEnumFontFamilies系で列挙して存在確認するしかない?
0800デフォルトの名無しさん
2008/05/08(木) 13:58:53条件それぞれに重み付けをして、一番ペナルティの小さいフォントを選ぶから。
名前も条件の一つに過ぎない。
EnumFontFamiliesしかないというより、それ使うべきでしょう。
0801デフォルトの名無しさん
2008/05/08(木) 15:43:38エンターの前後にプリント仕掛けてたからほぼ間違いないかと。
ただあれから何もしないでPC再起動してリビルドしたら普通に動き出しました
さっぱり意味が分からないまま解決?しましたorz
0802デフォルトの名無しさん
2008/05/08(木) 16:27:200803デフォルトの名無しさん
2008/05/08(木) 17:04:33例えば、「1秒間〜をする」書き方は
DWORD tick = GetTickCount();
while (GetTickCount() - tick < 1000) { 〜 }
と
DWORD tick = GetTickCount() + 1000;
while (GetTickCount() < tick) { 〜 }
だと前者の方がいいとかそういうの
0804デフォルトの名無しさん
2008/05/08(木) 20:42:150805デフォルトの名無しさん
2008/05/08(木) 22:27:48ですよね〜orz
原因が気になって眠れないと地震が起きるので
忘れます
0806デフォルトの名無しさん
2008/05/08(木) 22:31:32ありえるかもと思ったけど
そういえば今回は時間測る処理はしてなかった
>>804
catch(...)してるけど反応なかった
0807デフォルトの名無しさん
2008/05/08(木) 22:40:09どこから渡してるのですか?
0808デフォルトの名無しさん
2008/05/08(木) 22:47:34ギャグですね。 わかります。
マジレスすると五分後の世界から
0809デフォルトの名無しさん
2008/05/08(木) 23:04:34これは最大何文字までいけるのでしょうか?
0810デフォルトの名無しさん
2008/05/08(木) 23:08:270811デフォルトの名無しさん
2008/05/08(木) 23:12:55WinMainはWinMainCRTStartupから呼ばれている。
0812デフォルトの名無しさん
2008/05/08(木) 23:14:03Visual C++の場合な。
0813デフォルトの名無しさん
2008/05/08(木) 23:23:580814デフォルトの名無しさん
2008/05/08(木) 23:41:490815809
2008/05/08(木) 23:42:47ありがとうございました
0816デフォルトの名無しさん
2008/05/08(木) 23:52:38お前にとっての「頑張る」はググることか
ゆとり乙としか言えない
0817809
2008/05/08(木) 23:55:580818デフォルトの名無しさん
2008/05/08(木) 23:56:130819デフォルトの名無しさん
2008/05/08(木) 23:56:43調べると言う行為をするだけマシだろ
0820デフォルトの名無しさん
2008/05/09(金) 00:15:240821デフォルトの名無しさん
2008/05/09(金) 02:52:500822デフォルトの名無しさん
2008/05/09(金) 08:50:27切れてないインターネットなんて当然すぎて困る
0823デフォルトの名無しさん
2008/05/09(金) 09:07:040824デフォルトの名無しさん
2008/05/09(金) 09:25:230825デフォルトの名無しさん
2008/05/09(金) 11:07:350826デフォルトの名無しさん
2008/05/09(金) 11:11:090827デフォルトの名無しさん
2008/05/09(金) 11:13:520828デフォルトの名無しさん
2008/05/09(金) 11:24:040829デフォルトの名無しさん
2008/05/09(金) 12:50:520830デフォルトの名無しさん
2008/05/09(金) 14:03:090831デフォルトの名無しさん
2008/05/09(金) 14:36:590832デフォルトの名無しさん
2008/05/09(金) 14:58:430833デフォルトの名無しさん
2008/05/09(金) 15:11:400834デフォルトの名無しさん
2008/05/09(金) 15:14:580835デフォルトの名無しさん
2008/05/09(金) 15:19:12つか、他の方法はねーのか?
0836デフォルトの名無しさん
2008/05/09(金) 15:24:400837デフォルトの名無しさん
2008/05/09(金) 15:34:27確実にバトンタッチするには、自分のプロセス内で完結したほうがいいね。
0838デフォルトの名無しさん
2008/05/09(金) 15:45:200839デフォルトの名無しさん
2008/05/09(金) 15:50:46何こいつ?
どうせお前が>>831と言いたいんだろうけど、どうせお前も同じ事聞きたかったんだろ?
ちゃんと皆に礼言っとけクズが
0840デフォルトの名無しさん
2008/05/09(金) 16:00:450841デフォルトの名無しさん
2008/05/09(金) 16:04:520842デフォルトの名無しさん
2008/05/09(金) 16:05:59最近覚えた言葉を使いたかったんですね。わかります。
0843デフォルトの名無しさん
2008/05/09(金) 16:47:54という書き方をしているなら(普通はそうしてると思うけど)、
atexit()に自身をCreateProcessするコールバックを渡せば確実だと思う
0844デフォルトの名無しさん
2008/05/09(金) 18:01:440845デフォルトの名無しさん
2008/05/09(金) 18:02:370846843
2008/05/09(金) 18:07:010847847
2008/05/09(金) 18:14:000848845
2008/05/09(金) 18:26:250849デフォルトの名無しさん
2008/05/09(金) 18:27:150850デフォルトの名無しさん
2008/05/09(金) 18:34:340851デフォルトの名無しさん
2008/05/09(金) 18:46:120852デフォルトの名無しさん
2008/05/09(金) 18:50:190853デフォルトの名無しさん
2008/05/09(金) 19:00:410854デフォルトの名無しさん
2008/05/09(金) 19:25:23プログラマ職業にしてるやつなんて
精神年齢低いだろ
0855デフォルトの名無しさん
2008/05/09(金) 20:23:490856デフォルトの名無しさん
2008/05/09(金) 22:21:040857デフォルトの名無しさん
2008/05/10(土) 09:59:420858デフォルトの名無しさん
2008/05/10(土) 10:55:320859デフォルトの名無しさん
2008/05/10(土) 10:59:490860デフォルトの名無しさん
2008/05/10(土) 11:05:150861デフォルトの名無しさん
2008/05/10(土) 11:10:510862デフォルトの名無しさん
2008/05/10(土) 11:29:440863デフォルトの名無しさん
2008/05/10(土) 12:11:230864デフォルトの名無しさん
2008/05/10(土) 12:16:300865デフォルトの名無しさん
2008/05/10(土) 12:20:250866デフォルトの名無しさん
2008/05/10(土) 12:24:540867デフォルトの名無しさん
2008/05/10(土) 12:26:520868デフォルトの名無しさん
2008/05/10(土) 12:29:25ほんとうにワンパターンだな
0869デフォルトの名無しさん
2008/05/10(土) 12:30:35ここID出ないからなぁ
0870デフォルトの名無しさん
2008/05/10(土) 12:32:200871デフォルトの名無しさん
2008/05/10(土) 12:33:290872デフォルトの名無しさん
2008/05/10(土) 12:37:070873デフォルトの名無しさん
2008/05/10(土) 12:37:240874デフォルトの名無しさん
2008/05/10(土) 12:40:130875デフォルトの名無しさん
2008/05/10(土) 12:40:17繰り返すだけなら誰でも出来るだろ
そんなんだから良いコードかけねーんだよ
0876デフォルトの名無しさん
2008/05/10(土) 12:41:480877デフォルトの名無しさん
2008/05/10(土) 12:43:440878デフォルトの名無しさん
2008/05/10(土) 12:52:590879デフォルトの名無しさん
2008/05/10(土) 13:05:420880デフォルトの名無しさん
2008/05/10(土) 13:06:560881デフォルトの名無しさん
2008/05/10(土) 15:46:250882デフォルトの名無しさん
2008/05/10(土) 16:51:440883デフォルトの名無しさん
2008/05/10(土) 17:15:31スレに愛がなきゃそんなこと思わないもんな
0884デフォルトの名無しさん
2008/05/10(土) 17:18:29いらっしゃい
誰も居なくなって寂しかったよ
0885デフォルトの名無しさん
2008/05/10(土) 17:18:330886デフォルトの名無しさん
2008/05/10(土) 19:38:450887デフォルトの名無しさん
2008/05/10(土) 22:39:01PAGE_READWRITEへの変更は許可されるんだけど、
PAGE_EXECUTE_READWRITEを指定するとGetLastErrorで
『パラメータが間違っています。』と返されました。
PAGE_READWRITEは成功するので指定したアドレスは間違って
いないと思われます。上記メッセージからどんな状況が考えら
れるでしょうか?
DEP有効のマシンでブロックされるのを防ぐのが目的です。
DEPが無いマシンならPAGE_READWRITEのままでもOKなのですが、
今後のCPUだと対応必須になりそうなので。
よろしくお願いします。
0888デフォルトの名無しさん
2008/05/10(土) 23:12:35> This attribute is not supported by the CreateFileMapping function
> until Windows XP SP2 and Windows Server 2003 SP1.
0889デフォルトの名無しさん
2008/05/11(日) 05:11:050890デフォルトの名無しさん
2008/05/11(日) 05:16:520891887
2008/05/11(日) 09:02:11CreateFileMappingでは非サポートと書いてあるように読めますが
VirtualProtectでも同様なんでしょうか?
0892デフォルトの名無しさん
2008/05/11(日) 14:49:40ttp://msdn.microsoft.com/en-us/library/aa366898.aspx
ttp://msdn.microsoft.com/en-us/library/aa366786(VS.85).aspx
0893デフォルトの名無しさん
2008/05/11(日) 17:29:14バックドアを作ってるような物だと思うが
>>891
DEPにブロックされるのを防ぐならHeapAlloc等のメモリにVirtualProtectを使うのではなく
VirtualAllocで実行属性付きのページを確保する
0894デフォルトの名無しさん
2008/05/11(日) 17:50:060895デフォルトの名無しさん
2008/05/11(日) 17:52:49テキストファイル内にある [ ] でかこまれた部分をサーチし、そこまで、ファイルのポインタを移動してくれる API って何でしたっけ?
0896デフォルトの名無しさん
2008/05/11(日) 17:55:120897デフォルトの名無しさん
2008/05/11(日) 17:59:15それがOSのAPIのハズがないw
0898デフォルトの名無しさん
2008/05/11(日) 18:05:04ですね ini ファイル内を検索(?)してくれるAPIです
0899デフォルトの名無しさん
2008/05/11(日) 18:07:220900894
2008/05/11(日) 18:29:00WindowsHook()で何故WH_GETMESSAGEで
MessageBox()がフックできるのか、という疑問です。
0901デフォルトの名無しさん
2008/05/11(日) 18:33:12出来ないと思う理由をまず説明してみなよ。
いっぱいツッコミ入れてくれるよ。
0902デフォルトの名無しさん
2008/05/11(日) 18:44:51ありがとやんした
0903デフォルトの名無しさん
2008/05/11(日) 18:46:16WH_MSGFILTER
0904デフォルトの名無しさん
2008/05/11(日) 19:04:32それでいいのか?
GetPrivateProfileSectionじゃないのか?
0905894
2008/05/11(日) 19:12:11アプリケーションごとのメッセージループがメッセージを取得した際に
WH_GETMESSAGEのフックプロシージャが実行される。
だからMessageBox()はメッセージを取得している。
>>903
ちょっと意図がわかりませんでした。
WH_MSGFILTERはメッセージボックスを監視できるようですが、
私が知りたいのはメッセージボックスがメッセージを投げてるのかどうか、
WH_GETMESSAGEの挙動の理解はこれで正しいのかどうかです。
0906デフォルトの名無しさん
2008/05/11(日) 19:16:39正確にはそうですね ありがとうございます。
MSDNに芋づる形式にひっかかるので
0907デフォルトの名無しさん
2008/05/11(日) 19:17:37ttp://blogs.msdn.com/oldnewthing/archive/2005/04/28/412574.aspx
DialogBox、MessageBox、TrackPopupMenuなどAPI内部でモーダルループしてる物は
そこに書いてあるような(CallMsgFilterを呼んでる所)メッセージループを内部で回している
MessageBoxの実体はDialogBoxだから当然それ相応のメッセージは投げてるだろ
0908広義のリソース問題?
2008/05/11(日) 21:34:47ある特定のアプリ(ACDSee7)とFirefox2を同時に起動して
Firefox2で画像ファイルの大量にあるサイト(Pixiv)に
しばらくアクセスしていると
FirefoxにBASIC認証のダイアログが出たり
(Pixivはそんなアクセス制限方法は使ってない)
サムネイル画像が表示されなくなったりする症状がでるんだ。
んでACDSeeを終了すると復活するんだ。
現象的にIPソケット関係かロック(ミューテックスとかセマフォとか)
のオブジェクトハンドルをACDSEEがリークさせてる
(+Firefoxのハンドル取得失敗エラー処理がバグってる)
気がするんだけど
このへんの残量を調べるツールとか
増やしたりするレジストリキーとかだれか知ってたら教えて。
ちなみに
Desktop Heap Information Monitor Tool
はもう試してデスクトップヒープは十分残ってることは確認済みなんだ。
0909デフォルトの名無しさん
2008/05/11(日) 22:27:55どこがWin32APIなんだよぼけ
0910広義のリソース問題?
2008/05/11(日) 23:20:12ヒープとかわかんないだろうと思ってね
デバッグでヒープモニタ的なものって使うでしょ?
つかAPI限定でない
Windowsプログラミング全般のスレってあるの?
0911デフォルトの名無しさん
2008/05/11(日) 23:29:35丹念にデバッグできるだろ、量的な問題はともかくとして。
0912デフォルトの名無しさん
2008/05/11(日) 23:34:10Sysinternalsの何かでプロセスが何握ってるか調べるとか?
ごめんよくわからん。
0913デフォルトの名無しさん
2008/05/11(日) 23:58:490914デフォルトの名無しさん
2008/05/12(月) 13:27:300915デフォルトの名無しさん
2008/05/12(月) 14:19:10そのようなマクロ等ありますでしょうか?
0916デフォルトの名無しさん
2008/05/12(月) 16:00:550917デフォルトの名無しさん
2008/05/12(月) 16:40:30ListView_MoveToSaigo
0918デフォルトの名無しさん
2008/05/12(月) 16:52:240919デフォルトの名無しさん
2008/05/12(月) 17:08:23つまり、そのようなマクロは無い
↓
自作、
ということでしょうか?
0920デフォルトの名無しさん
2008/05/12(月) 17:53:160921デフォルトの名無しさん
2008/05/12(月) 18:05:170922デフォルトの名無しさん
2008/05/12(月) 19:56:55見ましたが……無いですね。
0923デフォルトの名無しさん
2008/05/12(月) 21:24:370924デフォルトの名無しさん
2008/05/12(月) 21:36:070925デフォルトの名無しさん
2008/05/13(火) 00:25:34ソートなんてしなくても
1. アイテムの全情報をListView_GetItem
2. アイテムをListView_DeleteItem
3. 移動したい位置にListView_InsertItem
でいいだろ
0926デフォルトの名無しさん
2008/05/13(火) 00:31:04Model側でswapしておしまいじゃないの。
0927デフォルトの名無しさん
2008/05/13(火) 01:22:270928デフォルトの名無しさん
2008/05/13(火) 12:05:51知らないならレスしないでください
0929デフォルトの名無しさん
2008/05/13(火) 12:10:430930デフォルトの名無しさん
2008/05/13(火) 12:35:050931デフォルトの名無しさん
2008/05/13(火) 12:50:530932デフォルトの名無しさん
2008/05/13(火) 15:58:08Shift_JISでは「_mbctombb()」のような関数がありますが・・・
「A -> A」「3 -> 3」「ア -> ア」「ア -> あ」など。
自分で調べた範囲ではユニコードで文字変換を行えるものは、
「LCMapString()」くらいしか見つかりませんでしたが、これは文字列の一括変換
なので使いにくいです。
今のアプリは文字単位で全角・半角やひらがな・カタカナなどの文字種を変換する
ルーチンがあるので困っています。
現在、Shift_JISベースのアプリをユニコードベースに書き換えてるのですが、
作業量が多すぎて死にそうです。orz
0933デフォルトの名無しさん
2008/05/13(火) 16:53:43wchar_t HiraKataHanMap[][3] = { L"あアア", L"いイイ", L"うウウ", ... };
0934デフォルトの名無しさん
2008/05/13(火) 16:55:110935デフォルトの名無しさん
2008/05/13(火) 17:49:35効率?そんな物知らん
0936デフォルトの名無しさん
2008/05/13(火) 17:51:380937デフォルトの名無しさん
2008/05/13(火) 17:56:410938デフォルトの名無しさん
2008/05/13(火) 18:11:320939デフォルトの名無しさん
2008/05/13(火) 18:23:550940デフォルトの名無しさん
2008/05/13(火) 18:24:250941デフォルトの名無しさん
2008/05/13(火) 18:29:420942デフォルトの名無しさん
2008/05/13(火) 18:34:130944デフォルトの名無しさん
2008/05/13(火) 18:48:030945デフォルトの名無しさん
2008/05/13(火) 18:48:310946デフォルトの名無しさん
2008/05/13(火) 18:48:540947デフォルトの名無しさん
2008/05/13(火) 18:49:220948デフォルトの名無しさん
2008/05/13(火) 18:49:450949デフォルトの名無しさん
2008/05/13(火) 18:50:20効率?そんな物知らん
0950デフォルトの名無しさん
2008/05/13(火) 18:50:570951デフォルトの名無しさん
2008/05/13(火) 19:01:360952デフォルトの名無しさん
2008/05/13(火) 20:10:490953デフォルトの名無しさん
2008/05/13(火) 20:17:370954デフォルトの名無しさん
2008/05/13(火) 21:09:00>>933の
L"あアア"
みたいな。
0955デフォルトの名無しさん
2008/05/13(火) 21:11:360956デフォルトの名無しさん
2008/05/13(火) 21:13:08ttp://www.google.co.jp/search?hl=ja&q=_T&lr=
0957デフォルトの名無しさん
2008/05/13(火) 21:13:12ワイド文字列定数のプレフィクス
0958デフォルトの名無しさん
2008/05/13(火) 21:13:120959デフォルトの名無しさん
2008/05/13(火) 21:23:090960デフォルトの名無しさん
2008/05/13(火) 21:41:07http://msdn.microsoft.com/ja-jp/library/6aw8xdf2.aspx
C++ String Literals
http://msdn.microsoft.com/ja-jp/library/69ze775t.aspx
0961デフォルトの名無しさん
2008/05/14(水) 05:11:27挫折なんてしないよ。あなたのような方々が代行して調べてくれるからね。
0962932
2008/05/14(水) 08:13:01APIがないとなると、やっぱり自前の変換表を作るしかないんでしょうかね?
あぁ・・・また作業が増える。なんか過労死しそう。
0963デフォルトの名無しさん
2008/05/14(水) 08:31:41試しに過労死してみてよ
0964デフォルトの名無しさん
2008/05/14(水) 08:54:13仕事なら抱え込む前に職場に相談しろよ
死んだら周りが迷惑だ
0965デフォルトの名無しさん
2008/05/14(水) 09:14:05どうせAPIだってテーブル引きしてるだけだろうし自前でテーブル持つのと大して変わらん
そもそもAPI使う気が無いならスレ違いだからここで訊くな
0966デフォルトの名無しさん
2008/05/14(水) 10:05:400967デフォルトの名無しさん
2008/05/14(水) 10:06:44困るよ
0968デフォルトの名無しさん
2008/05/14(水) 11:00:54みたいに、プラグラムの現状のコードに『ほぼ』手を加えずに自分自身の
ウインドウやボタンなどのコントロールの外観を独自に変更することって
出来ますでしょうか?
やりたいことの例としては、OperaのスキンがWindowsデフォとオリジナルの
スキンを選択できるので、あんな感じです。Windowsデフォのコントロール
の外観も選択できることから、何かしらAPIの下のほうを差し替えるテクニ
ックを使ってるように思うのですが…。
オーナードローでやっても既存コード部分が大幅な変更を強いられますし、
何かヒントがあれば教えてください。取っ掛かりもつかめていないので。
よろしくお願いします。
(裸のウインドウから全部描画ってのはなしで…)
0969デフォルトの名無しさん
2008/05/14(水) 11:11:45そんな君は正規表現 [あ-ん] を見ても興奮してしまうだろう。
0970デフォルトの名無しさん
2008/05/14(水) 11:17:17>>933を指してたのかw
0971デフォルトの名無しさん
2008/05/14(水) 11:32:07そもそもOperaってWindowsのコントロール使ってるの?
IEは身が目が同じだけでコントロールは全て自力描画しているが。
0972デフォルトの名無しさん
2008/05/14(水) 11:40:37通常のコントロールと互換なコントロール作って差し替えるしかあるまい
裸のウインドウから全部描画「よりも」酷い作業量になりそうだが
0973968
2008/05/14(水) 12:30:06>通常のコントロールと互換なコントロール作って差し替える
このための資料(書籍でも)ってないでしょうか?
どう検索していいものやら、皆目分らないのです。ググってもキーワードが
悪いのか、コモンコントロールの使い方ばかり出てきます。
0974デフォルトの名無しさん
2008/05/14(水) 12:44:02お前が全部やるんだからな。
ブラウザが自前実装なのは、それをやるだけの価値があるからやってるんだよ。
0975デフォルトの名無しさん
2008/05/14(水) 12:44:300976デフォルトの名無しさん
2008/05/14(水) 14:25:280977デフォルトの名無しさん
2008/05/14(水) 14:44:090978デフォルトの名無しさん
2008/05/14(水) 15:41:49これを仮想キーコードVK_F11に変換する関数とかってありますか?
GetKeyNameTextの逆バージョンみたいな
0979デフォルトの名無しさん
2008/05/14(水) 15:52:260980デフォルトの名無しさん
2008/05/14(水) 15:57:010981デフォルトの名無しさん
2008/05/14(水) 16:58:24昔WM_NCPAINTなどを乗っ取りWindows98だかでXPのビジュアルスタイルの様な機能を実現するオープンソースのソフトがあって
そのソフトのサブクラス化解除に問題があって迷惑を被った記憶がある
0982デフォルトの名無しさん
2008/05/14(水) 17:01:16お前が悪かったわけですね?
0983デフォルトの名無しさん
2008/05/14(水) 17:11:300984デフォルトの名無しさん
2008/05/14(水) 17:33:39http://sourceforge.net/projects/shellwm/
0985デフォルトの名無しさん
2008/05/14(水) 22:32:34モードレスダイアログボックス等はダイアログベースで作り、
メインウィンドウ等はCreateWindow等を使って作っている事が多い様に思うのですが、
全てダイアログベースで作らないのは、何か理由があるからですか?
0986デフォルトの名無しさん
2008/05/14(水) 22:43:12事足りないならダイアログを使わない。
それだけ。
ダイアログベースの Win アプリも沢山ある。
0987デフォルトの名無しさん
2008/05/14(水) 22:51:25メインウィンドウのみはCreateWindowで作り、
メインウィンドウで使うタブコントロールやリストビューをダイアログベースで作成し、
それの表示位置、サイズをメインプロシージャで変更する、
ということもありえるのでしょうか?
0988デフォルトの名無しさん
2008/05/14(水) 22:57:59そうでないならそうしない。
それだけ。
0989デフォルトの名無しさん
2008/05/14(水) 23:11:23そうでない場合とは例えばどのような場合ですか?
具体的にお願いします。
0990デフォルトの名無しさん
2008/05/14(水) 23:22:36プログラマの判断次第って意味が分からない?
楽そう難しそうって個人の主観でしょ?
0991デフォルトの名無しさん
2008/05/14(水) 23:35:27http://pc11.2ch.net/test/read.cgi/tech/1210775622/
0992デフォルトの名無しさん
2008/05/14(水) 23:37:28あなたの言い方ですと、
ダイアログベースで難しい場合はダイアログベースではやらずに、CreateWindowを使うという事ですよね、
あなたの主観で答えて下さって結構ですので
そうでない場合がどのような場合であるかを教えて下さい。
0993デフォルトの名無しさん
2008/05/14(水) 23:39:20>>990
あなたの言い方ですと、
ダイアログベースで楽そうな場合はダイアログベースでは使い、難しい場合はCreateWindowを使うという事ですよね、
あなたの主観で答えて下さって結構ですので
そうでない場合がどのような場合であるかを教えて下さい。
0994デフォルトの名無しさん
2008/05/14(水) 23:45:470995デフォルトの名無しさん
2008/05/14(水) 23:59:130996デフォルトの名無しさん
2008/05/15(木) 00:03:370997デフォルトの名無しさん
2008/05/15(木) 00:03:400998デフォルトの名無しさん
2008/05/15(木) 00:03:430999デフォルトの名無しさん
2008/05/15(木) 00:03:471000デフォルトの名無しさん
2008/05/15(木) 00:03:5110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。