Win32API質問箱 Build45

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

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

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
2デフォルトの名無しさん:2006/08/20(日) 09:13:59
3デフォルトの名無しさん:2006/08/20(日) 09:16:34
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/
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
ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
ttp://pc.2ch.net/tech/kako/991/991576947.html
4デフォルトの名無しさん:2006/08/20(日) 09:20:59
- MSDN ホームページ
http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/library/ja/
- MSDN 2 ライブラリ
http://msdn2.microsoft.com/ja-jp/library/

- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Google
http://www.google.com/

MSDN ライブラリ 2006年6月版
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=373930CB-A3D7-4EA5-B421-DD6818DC7C41
- Platform SDK Update
(WindowsR Server 2003 R2 Platform SDK Full Download)
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

- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/

- Advanced Windows (書籍)
http://www.amazon.co.jp/exec/obidos/ASIN/4756138055

-おまけ
dat落ちしている過去スレが見れるかも。Build19が見たい人、余裕のある人は●でも買ってやってくれ。
http://makimo.to/cgi-bin/search/search.cgi?q=Win32API&andor=AND&sf=2&view=table&D=tech
5デフォルトの名無しさん:2006/08/20(日) 09:21:46
以上テンプレ。
6デフォルトの名無しさん:2006/08/20(日) 09:25:03
俺の彼処がビルド

>>1
7デフォルトの名無しさん:2006/08/20(日) 13:05:55
>>1
8デフォルトの名無しさん:2006/08/20(日) 19:59:18
リストボックスに列挙したアイテムに右クリックしたら
ポップアップウインドウを表示させていろいろと処理させたいんだけど、
都合のいいメッセージが見つからないよ。
つーか、あるの?
9デフォルトの名無しさん:2006/08/20(日) 20:24:45
>>8
WM_CONTEXTMENU
10デフォルトの名無しさん:2006/08/21(月) 00:17:56
指定したウィンドウ(例えばデスクトップ)をウィンドウハンドルを元に
アクティブ/非アクティブか調べたいのですがそれを判定するのにはどうすればいいでしょうか?
一発でそれが簡単に判定できる関数はあったりしませんか?
11デフォルトの名無しさん:2006/08/21(月) 01:55:49
WH_MOUSEでグローバルフックしてマウスのボタンを監視&横取りしたいんだけど
WM_BUTTONDOWNをこっちで拾って次へ回さなかった場合
ウィンドウ上でボタンが押されてから
同一ウィンドウ内で離した場合はUPが送られてくるのに
ウィンドウ外へ移動して離したときはWM_BUTTONUPが送られてこないとです

WM_TIMERで周期的にボタンの状態取得は避けたいんだが
誰か方法を知らないかい?
12デフォルトの名無しさん:2006/08/21(月) 01:59:40
知らない
13デフォルトの名無しさん:2006/08/21(月) 02:03:41
>>10
isWindowEnabledかも?
14デフォルトの名無しさん:2006/08/21(月) 11:04:40
>Advenced
いつになったらアドベンスドが直るんだろう?
15デフォルトの名無しさん:2006/08/21(月) 11:11:26
>>13
ありがとうございます。
is の I が大文字の I でなんとかコンパイルが通りました。
これで頑張ってみます。
16デフォルトの名無しさん:2006/08/21(月) 21:23:13
>>15
activeとenabledはちがうくない?
17デフォルトの名無しさん:2006/08/21(月) 23:56:35
前スレの964です。

結局、SetupAPIを使ってデバイスをenable/disableすることで、ネットワーク接続の
有効/無効を切り替えることが出来ました。

DDKのリファレンスを見ても使い方がさっぱりわからなかったのですが、DDKの
サンプルプログラムdevconに使い方が書いてありました。
18デフォルトの名無しさん:2006/08/22(火) 10:01:47
>>11
SetCapture()でいいんじゃない?
19デフォルトの名無しさん:2006/08/22(火) 12:29:53
あるAPPが起動したかどうかを監視するためには、
Desktopハンドラを取得してそこへのWM_CREATEメッセージを捕まえ、
そのメッセージが該当のAPPの起動だったらよしということでいいのでしょうか?
DeskTopハンドラの取得はできたのですが、それを監視する方法がよくわかりません。
プログラムはあるAPP終了後に出るウィンドウを自動的に消すというもので、
プログラム起動中、消したいウィンドウが出ているときにメニュー選択によって
手動的に消すことはできてるのですが、デスクトップハンドラを監視するところが
よくわかりません。どなたかHINTだけでもいいのでお助けを。
20デフォルトの名無しさん:2006/08/22(火) 12:53:40
マルチ「はわわわわ」
21デフォルトの名無しさん:2006/08/22(火) 20:09:35
WinExecって使わないほうがいいんですか?
これ使わないのってどうやるのかな。
22デフォルトの名無しさん:2006/08/22(火) 20:19:38
ShellExecute
CreateProcess

C ランタイムと Windows API がセキュリティに及ぼす影響
ttp://www.microsoft.com/japan/msdn/windows/windowsxp/appsec.asp
23デフォルトの名無しさん:2006/08/22(火) 20:45:05
"C:\Program Files\foo" って…
24デフォルトの名無しさん:2006/08/22(火) 20:49:17
>>23
言いたいことは、きちんと言いましょう。
25デフォルトの名無しさん:2006/08/22(火) 21:01:44
>>19
デスクトップは関係ない。
メッセージフック辺りでググレ。
26デフォルトの名無しさん:2006/08/22(火) 21:20:18
>24は要らない子
27デフォルトの名無しさん:2006/08/22(火) 21:24:28
>>26
>>23みたいな馬鹿の方がいらない。
28デフォルトの名無しさん:2006/08/22(火) 21:50:49
>>27
>>23が馬鹿だと分かるお前は天才
俺は何が言いたいのかわからなかったぜ
29デフォルトの名無しさん:2006/08/22(火) 21:54:09
何が言いたいのかわからんようなレスをする奴を、馬鹿と言うのだ。
30デフォルトの名無しさん:2006/08/22(火) 22:30:57
>>29
分からないと素直に言えない方が馬鹿
31デフォルトの名無しさん:2006/08/22(火) 22:32:27
どっちもどっち。
いつまでこの流れ続ける気ですか?
32デフォルトの名無しさん:2006/08/22(火) 22:58:45
Spy++ でファインダーツールをドラッグしてるとき、
相手が自分以外のプロセスでも、ウィンドウの枠線を描画できてるんですが、
これってどうやって実現してるんでしょうか?
33デフォルトの名無しさん:2006/08/22(火) 23:02:05
>>32
デスクトップのデバイスコンテキストにでも重ねてるんじゃない?
34デフォルトの名無しさん:2006/08/23(水) 00:11:01
>>33
本当にそうしてるかどうかは、レジストリのwinlogonのshellに
explorer.exe以外のものを突っ込んでみて、デスクトップが無い
状態で試せば分かるな。
コモンダイアログをシェル代わりに使って。

実験が終わったらexplorer.exeを立ち上げればデスクトップが
出てくるので、レジストリを戻して一件落着。
35デフォルトの名無しさん:2006/08/23(水) 00:16:29
winlogonいじらなくたってexplorer.exe殺せばいいんじゃね?
36デフォルトの名無しさん:2006/08/23(水) 00:17:47
>>35
不死鳥のようによみがえったりしない?>explorer.exe
37デフォルトの名無しさん:2006/08/23(水) 00:18:14
しない
3834:2006/08/23(水) 00:19:11
>>34
> 実験が終わったらexplorer.exeを立ち上げればデスクトップが
> 出てくるので、レジストリを戻して一件落着。

順番逆だったかもしれん。
レジストリ戻してからexplorer.exe起動だったかも。
3934:2006/08/23(水) 00:23:56
というわけで、不死鳥問題含めて試した人がいたらレポ待ってます。
(マカーなので試せない。)
40デフォルトの名無しさん:2006/08/23(水) 00:28:56
>>18
なんだか他ウィンドウにはSetCaptureかけらないらしい
41デフォルトの名無しさん:2006/08/23(水) 00:30:03
98は不死鳥の希ガス。
XPは棺桶行き。
42デフォルトの名無しさん:2006/08/23(水) 00:36:13
XPで試してみたけど、
explorer殺してもspy++で普通にwindowとか取得できたよ。
窓枠の線も描画されてたよ
43デフォルトの名無しさん:2006/08/23(水) 00:45:49
98=ゾンビ
XPで異常終了=ゾンビ
XPでタスクマネージャーから終了=終了
44デフォルトの名無しさん:2006/08/23(水) 01:24:38
>>32
WindowのDCを得て、そこに描画する。


GetWindowDC()とか、そんな感じのヤシがあったはず。
45デフォルトの名無しさん:2006/08/23(水) 01:27:15
>>32
GetWindowDC(),Rectangle()

http://www.codeproject.com/dialog/windowfinder.asp
登録しないとソースダウンロードできないけど
ページ中のHighlightFoundWindow()が描画部分。
消すのはInvalidateRect(),UpdateWindow(),RedrawWindow()でやってる。
46デフォルトの名無しさん:2006/08/23(水) 01:59:56
今、16ビットカラーのBMPファイルを読み込むコードを書いたんだけど、
テストしたいんだけど、16ビットの BMP を作成できるツールってある?
ペイントじゃ作成できないみたい。Visual Studio 内蔵の画像エディタもだめ、
PhotoShop でもだめ、XnVIEW でもだめだった。。
47デフォルトの名無しさん:2006/08/23(水) 02:09:12
スレ違いだろボケ
48デフォルトの名無しさん:2006/08/23(水) 02:11:04
>>47
適当なスレがないんだけど、どこか教えてくれないかな。
49デフォルトの名無しさん:2006/08/23(水) 02:17:10
自分で探せよボケ

気軽に「こんなソフトありませんか?」 43
ttp://pc7.2ch.net/test/read.cgi/software/1155750807/
50デフォルトの名無しさん:2006/08/23(水) 02:59:50
>>49
ありがとう。
51デフォルトの名無しさん:2006/08/23(水) 09:14:34
このスレ的には「自分で作ってしまえ」だ
52デフォルトの名無しさん:2006/08/23(水) 09:24:30
なんでググルー使わないんだよ
53デフォルトの名無しさん:2006/08/23(水) 10:38:47
exeファイルが実行された時のファイル名を取得するにはどういうAPIを使えばいいのですか?
5432:2006/08/23(水) 10:40:22
みんなありがとう。
とくに >>45 さんはサンプルまで紹介してくれて
助かりました♥
55デフォルトの名無しさん:2006/08/23(水) 10:47:16
>>53
EnumProcessModules
GetModuleBaseName
56デフォルトの名無しさん:2006/08/23(水) 12:24:16
>>40
AttatchThreadInput
57デフォルトの名無しさん:2006/08/23(水) 13:29:23
各ファイルをexeにまとめて、どこかテンポラリーに自己解凍してから実行するようにしたいんだけど、
どこかに参考になるサンプル無いですか?
58デフォルトの名無しさん:2006/08/23(水) 13:32:54
処理手順が分かっているんだから、別にサンプルなんていらないだろ。
5957:2006/08/23(水) 15:47:09
BeginUpdateResource
これでできそうだ。
60デフォルトの名無しさん:2006/08/23(水) 21:12:04
初心者なので、ここでいいのかどうかわからないのですが
ある問題(多分問題というと大袈裟過ぎるのかもしれません)で困りきっています。

その問題なんですが、UNICODEファイル(txtファイルです)をどうやって読みこんで
その読み込んだデータをどのように処理したらいいかということで困っています。

もし、他のスレッドが適当なようでしたら、何分お導きいただけたらとおもいます。

hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, NULL);
if(hFile == INVALID_HANDLE_VALUE) return FALSE; //ファイルを開けなかった場合

dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize > MAX_READ) return FALSE; //ファイルがおおきすぎる場合
hGlobal = GlobalAlloc(GPTR, dwFileSize);

    OpenClipboard(hwnd);
EmptyClipboard();
SetClipboardData(CF_TCHAR, hGlobal);
CloseClipboard();

CloseHandle(hFile);
GlobalFree(hGlobal);

こんな感じでクリップボードに移すことはできるのですが、(変数の定義はスペースが限られていますので
省かせていただきました) ファイルから読み込んだデータを、普通の文字列に移すことが出来ません。
プリプロセッサの_UNICODEの定義や、TEXT(""),TCHAR 等はきちんと使用しているのですが・・・

どうかみなさん助けてください。
明日までにドイツ語ー日本語対応のフラッシュカードプログラムを作成しなければいけないです。
61デフォルトの名無しさん:2006/08/23(水) 21:14:25
>>60
スレ違い
文字コード変換でググレ
62デフォルトの名無しさん:2006/08/23(水) 21:23:30
UNICODEでフォーマットされたテキストファイルを、ReadFile関数で読み込んでいます。

TCHAR szBuffer[1024];

hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, NULL);
if(hFile == INVALID_HANDLE_VALUE) return FALSE; //ファイルを開けなかった場合

dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize > MAX_READ) return FALSE; //ファイルがおおきすぎる場合

bReturn = ReadFile(hFile, szBuffer, dwFileSize, &dwRcv, NULL);
if(bReturn == FALSE) return FALSE;//ファイルを読み込めなかった場合

szBufferにはUNICODE文字列を指すアドレス(ポインタ)が入っていると思うんですが、 lstrlen(szBuffer)の答えがいつも3になってしまいます。
どこがおかしいのかわかりません。
63デフォルトの名無しさん:2006/08/23(水) 21:27:39
64デフォルトの名無しさん:2006/08/23(水) 21:31:47
>>63
すみませんです。

http://pc8.2ch.net/test/read.cgi/tech/1143375639/
文字コード総合スレ

もしかしてこっちでしょうか。
UNICODEってなんでこんなにややこしいのか、頭が痛いです。
65デフォルトの名無しさん:2006/08/23(水) 21:33:45
ICUでもつかえば?
66デフォルトの名無しさん:2006/08/23(水) 21:35:35
そもそもUNICODEなんてテキストフォーマットはない。
UTF8なのかUCS2なのかUTF16なのかすら分かってないだろう。
67デフォルトの名無しさん:2006/08/23(水) 23:42:41
>>62
winbase.h内で

#ifdef UNICODE
#define lstrlen lstrlenW
#else
#define lstrlen lstrlenA
#endif // !UNICODE

と記述しているから、

#define UNICODE
を追加するんじゃね?
68デフォルトの名無しさん:2006/08/24(木) 01:13:25
>>66
便乗でお願いします。
こんどファイル関係操作を日・中・韓対応するために、
いままでxxxA系のAPIを使っていた処理をxxxW系に直す作業が
発生したのですが、xxxW系のAPIで使われるUNICODEは何なのでしょうか。
2バイトの固定長=UCS2ということでしょうか。
例えばFindFirstFileWで得られたファイル名を
TextOutW等で出力する必要があります。

それと、SJISにあった0x5c(='\')が漢字の2バイト目と認識されるような問題が、
このUNICODEでもあったりするんでしょうか。
固定長だから無さそうな気がするのですが、
何か特別な処理が必要かどうか知りたいのです。

今までUNICODEには関わるまいと思っていましたが、
とうとうこの日が来てしまいまし
69デフォルトの名無しさん:2006/08/24(木) 02:18:24
Unicodeでやっている分には、0x5Cの問題は無い。
それよりも、文字=char=1バイト前提の箇所に悩まされる予感。
70デフォルトの名無しさん:2006/08/24(木) 02:54:35
ありがとうございます。
そういえばフォントはどうなるんだろう。
日本語フォントをSelectObjectしている状態で
中国語が正しく表示されるわけないですよね。
UNICODE文字列から中国語かどうか判定して、
フォントを切り替える必要があるのでしょうか。
頭痛いです。
71デフォルトの名無しさん:2006/08/24(木) 03:09:26
>>70
UNICODEのテキストファイル(>>66さんのいっているような難しいことはわかりませんが)
を読みこんで、表示する方法すらわからないです。
72デフォルトの名無しさん:2006/08/24(木) 03:12:29
そうですか。
73デフォルトの名無しさん:2006/08/24(木) 03:20:31
はい、そうです
74デフォルトの名無しさん:2006/08/24(木) 03:40:43
いえいえ、どういたまして
75デフォルトの名無しさん:2006/08/24(木) 07:33:41
>>70
FontLinkを当てにして、Tahomaで描画とか?

FontLinkに関しては、
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink
以下を参照しつつ、
IMEパッドの文字一覧でUnicodeを選んだ後、
フォントを切り替えてみれば雰囲気は解ると思う。
76デフォルトの名無しさん:2006/08/24(木) 09:11:00
>>68
古いWindowsではUTC2だったかもしれないが、最近のWindowsではUTF-16になっている。
違いはサロゲートペアの有無だが、今のところそれを使うことなんてほとんどない。
77デフォルトの名無しさん:2006/08/24(木) 09:18:14
協定世界時のバージョン2ですか?
78デフォルトの名無しさん:2006/08/24(木) 16:05:05
VBでAPI使っててかなりいきづまったから質問したいんだけど
ここでいいのかな?
79デフォルトの名無しさん:2006/08/24(木) 16:16:54
ブビ厨は巣にお帰りください
80デフォルトの名無しさん:2006/08/24(木) 18:41:17
>>78
VBだろうとperlだろうとWin32APIの質問なら無問題
81デフォルトの名無しさん:2006/08/24(木) 22:24:52
このスレでよいか少し不安ですが・・・

┏━━━━┳━┓
┃      ┃  ┃
┃ 描画  ┃  ┃
┃ エリア ┃A ┃
┃      ┃  ┃
┣━━━━┫  ┃
┃  B   ┃  ┃
┗━━━━┻━┛
↑こういうウィンドウを作りたいのですが、
AやBはタブコントロールやエディットボックスの集まりで、
例えばAの場合は幅固定、Bの場合は高さ固定になっています。
この場合、ウィンドウを1つ作って、AとB用に子ダイアログを2つ作って、
ウィンドウ内でのダイアログの位置は固定、
ウィンドウのサイズが変わるたびにダイアログサイズも変える、という処理でよいでしょうか?
WS_???やWS_EX_??等でのスタイル指定にお約束のものがあればコメント頂けるとありがたいです。
82デフォルトの名無しさん:2006/08/24(木) 22:31:56
WM_SIZEがぶっ飛んできたら計算して普通にリサイズすればたぶんおk
8381:2006/08/24(木) 22:50:21
>>82
どうも。
では親ウィンドウのWM_CREATEを捉まえたときにそれぞれのダイアログを作り、
各ダイアログがWM_INITDIALOGを捉まえたときにMoveWindowで位置とサイズ調整、
あとは親ウィンドウのリサイズ時に各ダイアログに位置とサイズ調整のメッセージを送る、
という感じになるでしょうか。

あれ。親ウィンドウを動かす場合も子ダイアログに位置を変えるメッセージを
送らないといけないのでしょうか…。なんだか面倒ですね…。
84デフォルトの名無しさん:2006/08/24(木) 22:53:18
画像の中から適合する部分があるかを探索して、その結果を返す関数やライブラリは公開されているでしょうか?
またない場合はどのような手順をふむのが一番効率的でしょうか?
自分ではいまいちよく分かりません。分かる方教えてください。
85デフォルトの名無しさん:2006/08/24(木) 22:55:53
>>84
俺の知る限りそんなAPIは無い。
やりたいことにもよるけど、論文読み漁るしかないんじゃね?
86デフォルトの名無しさん:2006/08/24(木) 22:56:36
>>83
だったら親ウィンドウが動かされたらそこで子ウィンドウも動かしちゃうとか。
WM_CREATEの直後にもWM_SIZEが来ると思うからそこでも動かしてくれるだろうし。
87デフォルトの名無しさん:2006/08/24(木) 23:00:45
チャイルドウインドウなら親が動けば一緒に動くだろ。
ごちゃごちゃ言う前に少しは自分で試せよ。
8881:2006/08/24(木) 23:09:51
>>86
わかりましたー。
では基本的には親ウィンドウのWM_SIZEやWM_MOVEを捉まえて
各ダイアログの位置とサイズを調整するということですね。
ありがとうございましたー。

続けて恐縮ですが…こういうものの場合、子ダイアログのスタイルは
タイトルバーを付けない、描画エリアと分ける適当な境界を作る(WS_EX_DLGMODALFRAME?)、
モードレスにする(?)、あたりを押さえておけば大丈夫でしょうか?
89デフォルトの名無しさん:2006/08/24(木) 23:10:42
>>84
いやぁ〜んマッチングって奴だな。
マッチング 画像相関でググってみ
9081:2006/08/24(木) 23:11:12
>>87
どうもー。あれ?子ダイアログも親と一緒に動きますか?
なんかついてこなくて…。ソース見直してみます。
91デフォルトの名無しさん:2006/08/24(木) 23:11:35
>>85
APIは当然ないですよねー・・・
このスレだったらだれかが作ったものを知ってる人がいらっしゃるかとおもったんですが
引き続き捜してみます
92デフォルトの名無しさん:2006/08/24(木) 23:13:02
>>89
書いてる途中で入ってた・・
激しく難しい・・・ がんばって解読してみます
93デフォルトの名無しさん:2006/08/24(木) 23:17:52
>>90
owned windowとchild windowは違うが、理解してるか?
9481:2006/08/24(木) 23:18:29
>>87
むぉー。ダイアログにWS_CHILD付けてませんでした。
ダイアログ作成時にオーナーのハンドルを指定するだけではいわゆる親子ではないのですね…。
というわけで移動に関しては簡単に解決…。
9581:2006/08/24(木) 23:19:25
>>93 そういうことなのですね。どうもありがとう。
96デフォルトの名無しさん:2006/08/24(木) 23:19:26
>>90
ワロタ
97デフォルトの名無しさん:2006/08/25(金) 08:00:34
>>92
画像ファイルを読み出して〜まで・・・はこのスレだけど。
そこからヒストグラムを起こすのは別スレなのよ。

ま、精進して。
98デフォルトの名無しさん:2006/08/25(金) 17:03:33
半透明ウインドウの作り方はわかるんですが、
マウス動作を透過するウインドウはどのように設定するのか、教えてください。
半透明にしたり、完全透明職設定はできるんですが、半透明でマウス操作だけ透過
というのがわかりません。
99デフォルトの名無しさん:2006/08/25(金) 17:16:36
>>98
普通に半透明にして自分のウィンドウがクリックされたら下にあるウィンドウにメッセージを送るとか?
100デフォルトの名無しさん:2006/08/25(金) 17:34:48
まさにそれ!!!!!!!
101デフォルトの名無しさん:2006/08/25(金) 18:54:13
>>100
WS_EX_LAYEREDがあるときにWS_EX_TRANSPARENTを付けると、
透明にしつつマウス操作は下のウィンドウへ行く。
102デフォルトの名無しさん:2006/08/25(金) 20:52:32
デスクトップのSysListView32にLVM_GETITEM メッセージなんか送ったりして
マウス直下のアイテム名を取得することはできたんですが、
そのアイテムそのもののパスかPIDLを取得することはできませんか?
103デフォルトの名無しさん:2006/08/25(金) 21:09:12
デスクトップのフォルダを取得してしまえばどうにでもなる
104デフォルトの名無しさん:2006/08/26(土) 12:52:42
エディットボックスの一行の文字の色を変えるにはどうしたら
よいでしょうか?
105デフォルトの名無しさん:2006/08/26(土) 12:56:55
Rich Edit を使えばいいな
106デフォルトの名無しさん:2006/08/26(土) 13:16:15
ふつうのエデイットボックスでは不可能ですか?
107デフォルトの名無しさん:2006/08/26(土) 13:27:32
いいえ
108デフォルトの名無しさん:2006/08/26(土) 13:55:54
教えてくれませんか?
109デフォルトの名無しさん:2006/08/26(土) 13:59:58
色セロファン、を、貼る。
110デフォルトの名無しさん:2006/08/26(土) 14:06:54
懐かしいな。
111デフォルトの名無しさん:2006/08/26(土) 14:32:07
マジで教えてくれません?
112デフォルトの名無しさん:2006/08/26(土) 14:38:46
Gugurecus, 生没年未詳
113デフォルトの名無しさん:2006/08/26(土) 14:57:19
色めがね、を、かける。
114デフォルトの名無しさん:2006/08/26(土) 15:03:14
>>104
VBつかっとけ
115デフォルトの名無しさん:2006/08/26(土) 15:19:01
お断りです。Cつかってます。
116104:2006/08/26(土) 15:31:28
自己解決しました。有難うございました。
117デフォルトの名無しさん:2006/08/26(土) 15:39:40
116は偽者ですまだ解決してません
118デフォルトの名無しさん:2006/08/26(土) 15:41:04
117は偽物ですもう解決しました
119デフォルトの名無しさん:2006/08/26(土) 15:42:41
118は偽者ですまだ解決してません
120デフォルトの名無しさん:2006/08/26(土) 15:49:26
120は偽物ですもう解決しました
121デフォルトの名無しさん:2006/08/26(土) 15:52:36
>>116-120
は違います。
Windows XPについてるインータネットリバーシの
チォット部分のように自分と相手の文の色を変えたいのです。
あれは普通のエディットじゃないのですか?
122デフォルトの名無しさん:2006/08/26(土) 16:00:23
>>121
ちっとWindowClass見てみたが、RichEdit20Aってクラスになってるな。
素直にRichEdit使っとけってこった。
123デフォルトの名無しさん:2006/08/26(土) 16:06:43
CreateFont()
124デフォルトの名無しさん:2006/08/26(土) 16:12:45
>>123
CreateFont() がどうかしましたか?
125デフォルトの名無しさん:2006/08/26(土) 16:13:15
CreateFont()かわいいよCreateFont()
126デフォルトの名無しさん:2006/08/26(土) 16:14:51
つオーナードロー
127デフォルトの名無しさん:2006/08/26(土) 16:25:12
独自のエディットコントロールでも作っちゃうとか
128デフォルトの名無しさん:2006/08/26(土) 16:29:49
車輪の再発明
129デフォルトの名無しさん:2006/08/26(土) 16:31:40
三角形の車輪を発明しました。真似しないでください
130デフォルトの名無しさん:2006/08/26(土) 16:32:02
より優れた車輪を発明すればよい
131デフォルトの名無しさん:2006/08/26(土) 16:35:24
つまり普通のエディットにSendMessage(hwnd, **, 行番号, font)
みたいにはできないということですね?
>>123
は偽者なので
132デフォルトの名無しさん:2006/08/26(土) 16:38:24
偽者ってwww
>123は誰かのふりなんかしてないだろwwwww
133デフォルトの名無しさん:2006/08/26(土) 16:44:46
そんなに偽者いやなら名前にfusianasan入れろよw
134デフォルトの名無しさん:2006/08/26(土) 16:53:54
ごめんなさい
>>124でした。
135デフォルトの名無しさん:2006/08/26(土) 16:54:24
>>131は無理なのでしょうか?
136デフォルトの名無しさん:2006/08/26(土) 17:17:38
>>104
直後に至極真っ当で、一般的に最良の答えをもらっているのに、
頑なに、リッチエディットの使用を拒むあなたの態度が、冷やかしレスを呼び込んでるのが、
わからないんでしょうか?

エディットコントロールだけで実現せよ。って、いう宿題ですか?
137デフォルトの名無しさん:2006/08/26(土) 17:24:17
そうです。
138デフォルトの名無しさん:2006/08/26(土) 18:29:42
ちがいます。
139デフォルトの名無しさん:2006/08/26(土) 18:39:14
>>136だからそう言ってるじゃん
140デフォルトの名無しさん:2006/08/26(土) 18:41:18
そうです
141デフォルトの名無しさん:2006/08/26(土) 18:41:41
質問です
ポップアップメニューの、ウィンドウとメニューアイテムとの隙間と
メニューアイテムをスクロールさせる▼の背景の
オーナードローは出来るんでしょうか?
142デフォルトの名無しさん:2006/08/26(土) 22:08:17
サービスアプリから、他のアプリにpostmessageすることはできないのですか?
143デフォルトの名無しさん:2006/08/26(土) 22:09:18
何を言ってるか分かりません。
144デフォルトの名無しさん:2006/08/26(土) 22:14:53
>>142
デスクトップが違うとできない。
145142:2006/08/26(土) 22:19:45
>144
サービスアプリから同じPCの他プロセスに
PostMessageはできないということでしょうか?


146デフォルトの名無しさん:2006/08/26(土) 22:23:46
「デスクトップが違うとできない」。
147142:2006/08/26(土) 22:26:20
何度もすいません。
デスクトップを同じにするということは可能なのですか?
サービスアプリは、ログインユーザと同じアカウントで動かしています
148デフォルトの名無しさん:2006/08/26(土) 22:29:01
>>145
[SDK32] サービスからアプリケーションデスクトップへのアクセス
http://support.microsoft.com/default.aspx?scid=kb;ja;173687

デスクトップと対話するプロセス、なら出来るんじゃないかな。
149デフォルトの名無しさん:2006/08/26(土) 22:29:21
「デスクトップが違うとできない」
150デフォルトの名無しさん:2006/08/26(土) 22:34:30
デスクトップが違うとタンクトップ
151デフォルトの名無しさん:2006/08/26(土) 22:39:49
トップレスの金髪美女
152デフォルトの名無しさん:2006/08/26(土) 22:41:33
( ´д)ヒソ(´д`)ヒソ(д` )
153デフォルトの名無しさん:2006/08/26(土) 22:55:51
>>145
Vistaになると、サービスからデスクトップのプロセスにメッセージ送信できなくなるから
注意しろよ。
154デフォルトの名無しさん:2006/08/27(日) 00:42:36
ダイアログで取得した変数のセット(文字列とか実数とか)を親ウィンドウに送りたいのですが、
SendMessage(GetParent(hwnd),...)だとwparamやlparamしか使えないですよね。
こういう場合の定石ってあるんでしょうか?

親ウィンドウがダイアログとあるクラスAを管理していて、
ダイアログで取得した変数値をクラスAに渡したい、という状況なのです。
155デフォルトの名無しさん:2006/08/27(日) 00:49:55
>>154
ポインタを駆使
156デフォルトの名無しさん:2006/08/27(日) 00:50:47
クラスのポインタを渡しておけばいいだけ。
157デフォルトの名無しさん:2006/08/27(日) 01:33:15
>>155-156
なるほろ。試してみます。
158>>155-156:2006/08/27(日) 01:51:00
うまくいったでやんす。どうもありがとう。
159デフォルトの名無しさん:2006/08/27(日) 07:38:34
指定したファイルが更新されるまで、ロックするか
更新された時に指定したハンドラが呼ばれるようにしたいのですが、どうすればいいのしょうか?

(FindFirstChangeNotificationという関数を見つけたのですが、
 監視対象のファイル以外に、非常に更新頻度が高いファイルが同じディレクトリ内にあるので
 負荷軽減のために、出来ればディレクトリ全体ではなく、
 一つのファイルだけに対象を絞りたいので、この関数は不適と感じました。)

ご教授お願いします。
160デフォルトの名無しさん:2006/08/27(日) 10:36:28
>>159
・そのファイルをタイマーあたりで定期ポーリングして監視するとか。
・FindFirstChangeNotificationで、まずファイル名をチェックして、
 対象外なら何もしないとか。

FindFirstChangeNotificationはそんなにコスト高いんだっけ?
それほど大したこと無かったような希ガス。
つーか、更新頻度高いって、そもそもファイルアクセスは重いんだから、
その辺を何とかする方が負荷軽減に繋がったりして。:P
161デフォルトの名無しさん:2006/08/27(日) 11:02:49
監視対象のファイルが数十分・数時間単位(不定期)の更新頻度なのに対して、
同ディレクトリ内の更新頻度の高いファイルが秒・分単位なので、
常駐用途として使うこともあってちょっと心配だったのですが、、、

おっしゃるとおり、検証してみると、意外と負荷は大したことありませんでした。
ご返答有難うございました。
162デフォルトの名無しさん:2006/08/27(日) 20:50:11
夏休みもうすぐ終わっちゃうんで、
そろそろ教えてください!
163デフォルトの名無しさん:2006/08/27(日) 21:20:35
よし、教えてあげよう!
164デフォルトの名無しさん:2006/08/27(日) 22:16:03
>>162
君だけ学校来なくていいってさ。よかったね。
165デフォルトの名無しさん:2006/08/28(月) 10:46:46
pgpdiskみたいなWindows上の仮想ドライブはWin32APIのレベルでできる?
それともデバイスドライバ書いてATAコマンドをエミュレートする必要がある?
166デフォルトの名無しさん:2006/08/28(月) 11:13:51
WNetAddConnection? のようなネットワークを仮想ドライブ化するのは WinAPI でいけるっぽ
RAM Disk とか その他の手段でのドライブは DDK でドライバを書く。(別に ATAコマンドエミュレートする必要はないハズ)
167デフォルトの名無しさん:2006/08/28(月) 22:36:31
質問させてください。

ワードで作成した仕様書のレビューを複数ノートPCで出来るツールを作ろうと思っています。
文書校正もできるようにしたいので、全員が見れて更に全員が編集できるようにしようと思っています。
また専用の編集ツール&ビューアを作るのもめんどうだし機能が限定されそうなので、
全員にワードを開かせ、SendMessageして編集者と同じ操作をさせようと思っています。
編集したデータは編集した部分だけ全員に流して、カーソル位置に挿入しようと思っているのですが、
こんなツールは作ることができるでしょうか?
なにやらめんどくさい問題にぶち当たりそうで工程見積もりができません。

機能としては
・全員が編集できる
・誰かが編集しているとき、もしくはカーソルを動かしているときは他のPCは(ワードのみ)操作不可になる
・全員のカーソル位置を、最後に操作した人のカーソル位置にあわせる
・できれば挿入中の文字を変換しているところまでリアルタイムで見たい(ムリだろうけど)
・ワードの編集機能をほとんど使える

言語はなんだってかまいません。
ぶちあたりそうな問題、もっといいアイディアなどありましたらご教授ください。
168デフォルトの名無しさん:2006/08/28(月) 22:49:25
>>167
どっかの塾とか予備校用!? はいA君やってみてとか?
たしか・・・メーカどこだっけ・・・
パソコン遠隔操作のソフトはある、ゼロから作るのはやばいと思う
169167:2006/08/28(月) 22:58:44
>>168
いや社内用です。あまり精度は要求されません(ちなみに本業は組み込み)
ワードが素直に言うことを聞いてくれるなら割と楽に作れると思ってはいるのですが、、
SendMessageして操作すること自体ヤバ気な感じがしますので、
いくら社内用とはいえ、もう少し安定した方法が欲しいところです。
170デフォルトの名無しさん:2006/08/28(月) 23:00:08
>>167
やりたいことが、ようわからん。
ワードでやろうとすることじゃない。グループウェアとか使えよ。って思う。


>文書校正もできるようにしたいので、全員が見れて更に全員が編集できるようにしようと思っています。
みんなが開くファイルは、
 (1) 各自のローカルにおいてある、同一バージョンの仕様書ファイル
 (2) ネットワークドライブ上の(一つの)仕様書ファイル
(3) その他
のどれ?

(1) だと、各編集者同士で、同期とるのが大変。
(2) だと、そもそも Word側で、一人しか編集不可にされてしまう。

やっぱ、ワードでやる事じゃないな。
171167:2006/08/28(月) 23:11:55
>>170
仕様書のフォーマットがワードなので仕方ないのです。。

>文書校正もできるようにしたいので、全員が見れて更に全員が編集できるようにしようと思っています。
みんなが開くファイルは(1)ですかねー。
レビューイが起動したツールが、レビューイのファイルのデータをレビューアに流し、
レビューアのツールが受け取ったデータを元に自分用ファイルを生成するつもりです。

編集したときうまく同期取れますかねぇ。。。
172デフォルトの名無しさん:2006/08/28(月) 23:19:33
全然仕方なくいないけどな
173デフォルトの名無しさん:2006/08/28(月) 23:21:30
[案1] 編集者はひとり方式(うちの会社の場合)
レビューは、レビュアーが同じ場所に集まってやる。
レビュアーが4〜6人くらいの場合は、小さな会議机に集まり、編集者のノートPCを19インチ
くらいのLCDにつないで、編集が発生する場合は、全員が編集内容を確認しながらすすめていく、
レビュアーが多い場合は、プロジェクターにつないで、同様にやる

[案2] 全員が編集者方式
ワードをあるPCで立ち上げておく。
レビュアー全員でそのPCをVNCを使って接続し、全員で編集をやる。
ただし、この方法だと編集作業を排他できないので、全員がそばにいる場合は声をかける
などで回避する。離れている場合は、阿吽の呼吸で・・・。
174167:2006/08/28(月) 23:24:55
やっぱりカーソル位置に挿入ってきびしそうですよね。
例えば何かが入力されて、その後1秒以上入力がなかったら、
その時点で1回全員にデータを流し、全員が再表示とかだったらどうでしょ?

どこそこはどうやんの?お前そこんとこ考えてる?
みたいなつっこみをお願いいたします。

>>172
レビューですよ?
グループウェアってそこまでできるんですか?
何分知識不足なため、こいつぁアホだなと思って温かい目で見守ってやってください。
175167:2006/08/28(月) 23:31:00
>>173
[案1]はうちの会社でもやってます。
[案2]のVNCは初めて知りました。こんなのあるんですね。
ありがとうございます、参考にします。
VNCの動作は快適ですか?
176173:2006/08/28(月) 23:43:22
>>175
> VNCの動作は快適ですか?

すごく簡単にインストールできるから、明日会社でインストールしてみそ。
自宅にPCが2台以上あるなら、今試してもいいけど。
Wordの編集だと、「出来なくもない」という感じだと思う。高速タイプは無理。

案1で、超高速タイパーが編集を担当したほうが、全員が幸せになれる気が
するんだけど、これで駄目なのは何故?
177167:2006/08/28(月) 23:55:49
>>176
>案1で、超高速タイパーが編集を担当したほうが、全員が幸せになれる気が
レビューアが「ここんとここうやればいいんじゃない?」て言うときに便利だからです。
長い文章なら超高速タイパーで幸せになれそうですが、
ちょっとした細かくかつ微妙な表現をする点では、
「ちがう、こうだって、こうだよ!糞が!!」
そんな雰囲気になるからです。これは新人レビューイの時によく発生します。
まぁそこまで怒りませんけどね。

それでは明日早速試してみます。(使えれば工程1週間は削減できたかな?)
ありがとうございました。
178デフォルトの名無しさん:2006/08/29(火) 00:00:26
>>175
その他の用途を思いつくかもしらんし、一度試してみろ。
某庁絡みの仕事でリモートメンテナンス用にVNC入れているけど、
インターネット(≠web)越しでも充分実用になるぞ。
#短気な香具師はダメだと思うが。
179173:2006/08/29(火) 00:09:30
>>177
ちなみにうちでは「リアルタイムな修正」はめったにやりません。
よくやるのは、議事の作成の場合です。全員が合意した議事録が会議終了後に
出来上がるので、すぐにメールで送れます。

他の会社のレビュー方法に口出しする気は毛頭ありませんが、一度
『ピアレビュー』という書籍を読んでみることをお勧めします。
今のレビュー方式だと、みんなレビューがいやで、なおかつプロセスのボトルネックに
なってたりしませんか?
180167:2006/08/29(火) 00:25:32
>>178
了解です。
情報提供ありがとうございます。

>>179
いえ、ちょっと言いすぎました。
リアルタイム修正というか、精々メモ程度です。
新人研修のせいで敏感になっているだけですので気にしないでください。
実際のところモニタ数やレビュー場所の制限のほうが大きいです。
レビュー場所が全て使用されているときに、
ノートPCを持ち寄ってレビューができかつ編集ログも取れたら便利かな、と。
『ピアレビュー』は今度読んで見ます。
情報ありがとうございました。
181デフォルトの名無しさん:2006/08/29(火) 01:00:11
Win32API質問箱
182デフォルトの名無しさん:2006/08/29(火) 01:30:41
>>167 の言うツールって、期待通りに作ると市販ソフトですら
実現してないような超高機能でしょ。>>167 みたいな牧歌的な奴には
とても無理。素直に vnc で多重接続を許可して使いなさい。
183デフォルトの名無しさん:2006/08/29(火) 04:20:55
ScreenToClientについて質問です。
GetClientRect(hWnd,&rc); //1

GetWindowRect(hWnd,&rc); //2
pt.x=rc.right;
pt.y=rc.bottom;
ScreenToClient(hWnd,&pt);
上の1と2を実行して得られる座標がなぜか1より2の方がxとy両方とも4ピクセル大きいのですが
わかる方おられますか?
184デフォルトの名無しさん:2006/08/29(火) 04:45:17
GetClientRect と GetWindowRect で
rc に格納される値が違うやん。
185デフォルトの名無しさん:2006/08/29(火) 06:28:17
>>183
2の方は枠の外側を指しているんじゃね。枠の幅分違うとか。
186デフォルトの名無しさん:2006/08/29(火) 06:30:59
>>183
2は枠の外じゃね
187183:2006/08/29(火) 06:59:06
>>185-186
ありがとうございます!まさにその通りでした。
MoveWindowで2のpt.xとpt.yを指定してボタンを動かしてみたら
微妙にボタンと外の青い枠が被ってしまいました。
188デフォルトの名無しさん:2006/08/29(火) 08:02:43
実行中のExeファイル(自分のアプリ)のパスを得る方法を
知りたいのですが。よろしくお願いします
189デフォルトの名無しさん:2006/08/29(火) 08:05:29
>>188
詳細は何を示しているのわからんけど、
GetCurrentDirectory, GetModuleFileNameの好きなほうで
190デフォルトの名無しさん:2006/08/29(火) 09:53:44
>>189
あ、それです。API名GetModuleFileNameが思い出せなくて。。。
どうもありがとうございました。
191デフォルトの名無しさん:2006/08/29(火) 10:23:46
GetCurrentDirectoryってカレントディレクトリが変えられたときに何かと不便ね
192デフォルトの名無しさん:2006/08/29(火) 10:47:55
それ以前に、起動時からカレントディレクトリと実行ファイルパスが
同じである保証も無い。
193デフォルトの名無しさん:2006/08/29(火) 16:20:55
質問者は問題ない方を選んでいるから、まぁいいんじゃまいか?
194デフォルトの名無しさん:2006/08/29(火) 18:12:00
Windowsのメインのボリュームを設定するAPIって何ですか?
195デフォルトの名無しさん:2006/08/29(火) 18:18:25
自己解決しました
196デフォルトの名無しさん:2006/08/29(火) 18:51:13
>>189-192
俺はGetCommandLineをよく使うんだけど、
GetModuleFileNameとの違いって、パラメータの有無だけ?
197デフォルトの名無しさん:2006/08/29(火) 19:06:06
>>196
それってユーザーが勝手に名前変えたりパラメータ渡してきたら分からなくね?
"C:\\Program Files\\foo.exe bar.exe"
とか
198デフォルトの名無しさん:2006/08/29(火) 19:36:39
質問させてください。
ウィンドウ内にマウスポインタがあると
マウスを全然触っていないのにWM_MOUSEMOVEがくるのですが、
そういうものなのでしょうか?
駄目元でウィンドウ生成時に
 if (GetCapture()==hwnd) ReleaseCapture();
なんてしてみたり…。キャプチャ云々は関係ないですよね??
199デフォルトの名無しさん:2006/08/29(火) 19:39:26
そういうものでしょう。
200198:2006/08/29(火) 20:22:46
>>199
マジデスカ。MSDNには
「The WM_MOUSEMOVE message is posted to a window when the cursor moves.」
と書いてあるのですが…。
グーグルで検索しても
http://www.google.co.jp/search?hl=ja&q=WM_MOUSEMOVE&lr=
たいがい「カーソルがクライアントエリアの上を移動すると」という感じの
説明があります。これってウソ???
201デフォルトの名無しさん:2006/08/29(火) 20:33:27
光学式でプルプル震えてるんでしょ
202デフォルトの名無しさん:2006/08/29(火) 20:34:14
>>200
嘘じゃないでそ

画面更新とか頻繁にしてない?
WM_ERASEBKGNDとか関係なかったっけ
203198:2006/08/29(火) 20:35:28
>>202
TIMERで定期的に(1回/30msecくらい)InvalidateRect呼んでます。
そのタイミングで送られているということでしょうか?
204デフォルトの名無しさん:2006/08/29(火) 20:45:46
マウスがクライアント領域にあるとき定期的にカーソル位置教えるためのメッセージじゃなかったっけ?
205伝説新人タクシ:2006/08/29(火) 21:00:07
break;が消えてない?
InvalidateRectは描画しろって言うだけじゃん。
206198:2006/08/29(火) 21:09:43
うーん。やっぱりどこの説明を読んでも
「マウスポインタがクライアント領域内を移動したときに送られるメッセージ」
としか読めないです。それから>>203のInvalidateRect云々は関係ありませんでした。

>>204

case WM_MOUSEMOVE: wmMouseMove(hwnd,wp,lp); break; // ←メッセージボックスを表示
default: break;
}
return DefWindowProc(hwnd_, msg_, wp_, lp_);
としてます。breakはちゃんと入っています(ちなみにreturn 0としても駄目でした)。
これを実行すると、マウスポインタがクライアントエリアにあるとき、
マウスを触っていなくてもメッセージボックスがバカバカと表示されて
最終的に落ちます。
207198:2006/08/29(火) 21:11:01
>>206のアンカーは>>205の間違いでした。
あとDefWindowProcの引数のアンダースコアは誤記です。
208デフォルトの名無しさん:2006/08/29(火) 21:18:50
>>196
PATHが通ってたりコマンドラインから相対パスで起動したりすると、
exeの場所は分からない。
209デフォルトの名無しさん:2006/08/29(火) 21:35:08
>>208
知ったかはやめろ。
知らない上に確かめもせず調べもしないならいい加減なことを書かないで黙ってろ。

http://www.microsoft.com/japan/developer/library/Jpwinpf/_win32_getcommandline.htm
>CreateProcess 関数を呼び出す際に指定した実行可能ファイル名と一致しているとは限りません。
>完全修飾パスを指定せずに実行可能ファイル名を CreateProcess 関数に渡した場合、
>オペレーティングシステムはそのファイル名に完全修飾パスを追加することがあります。
210デフォルトの名無しさん:2006/08/29(火) 22:25:40
「することがある」ってことはしないこともあるんだろ。
211デフォルトの名無しさん:2006/08/29(火) 23:05:00
>>209
そんだけでかい口たたいといて、まさか自分が試してないってことはないよな。

 ま さ か な
212デフォルトの名無しさん:2006/08/29(火) 23:39:54
恥の上塗りをする暇があったら、首をつる方が賢明だろう。
213デフォルトの名無しさん:2006/08/30(水) 00:08:43
>>212
もしかしてサポートの終わったWin95系だけで試してフルパスになったって言ってるのか。

結局のところ>>210なわけだが。
214デフォルトの名無しさん:2006/08/30(水) 00:37:05
>>206
WM_MOUSEMOVEはマウスをキャプチャしているウィンドウ、
もしくは現在アクティブなウィンドウに送られる。

たとえマウスを動かしていなくても、
マウスのキャプチャ状態が変化したり
アクティブウィンドウ が切り替わったりすると
(要するにメッセージの受け取り先が変わると)
親切にもWM_MOUSEMOVEを送ってきてくれるよ。

メッセージボックスやめて別の方法で確認してみたら?
215214:2006/08/30(水) 00:58:47
訂正、アクティブウィンドウのわけないわな。
マウスカーソルの下にあるウィンドウだ。

今カーソルのある場所にポンと別のウィンドウが現れたら、
そのウィンドウに「アンタの上にカーソルがいるぜ」と
教える意味でWM_MOUSEMOVEが送られる。
それに引っかかってるんじゃないかってこと。
216198:2006/08/30(水) 01:56:40
>>214
> メッセージボックスやめて別の方法で確認してみたら?

あぁ…。ビンゴでした。WM_MOUSEMOVE、来てませんでした。
メッセージボックスを表示させたのが間違いだったのですね。
丁寧にありがとうございました。
217デフォルトの名無しさん:2006/08/30(水) 08:49:56
GetPrivateProfileString() で
用意されたバッファサイズよりもキーの値が大きかった場合の戻り値は
用意されたバッファサイズと同じということで良いんでしょうか。
218デフォルトの名無しさん:2006/08/30(水) 09:15:59
219217:2006/08/30(水) 09:48:25
各パラメータにNULLが用いられていない時
用意されたバッファサイズよりもキーの値が大きかった場合は
バッファサイズ分返され、最後にNULL文字を入れられる。
その時の戻り値は、用意されたバッファサイズ -1 である。
でokでしょうか?
220デフォルトの名無しさん:2006/08/30(水) 09:50:41
試してみれば分かるだろうに
221デフォルトの名無しさん:2006/08/30(水) 10:20:58
>>219
戻り値は指定されたバッファにコピーされた文字の数を示します。
終端のNULL文字は含まれません。
lpszSectionパラメータとlpszKeyパラメータのどちらもNULLではなく、
転送先バッファが小さくてすべての文字列を含むことができない場合、
文字列は切り捨てられ、 NULLが最後に加えられます。
戻り値は、 cchReturnBufferから1を引いた値になります。

lpszSectionパラメータとlpszKeyパラメータのどちらかがNULLで、
転送先バッファが小さくてすべての文字列を含むことができない場合、
最後の文字が切り捨てられ、 2つのNULL文字が加えられます。
この場合の戻り値は、 cchReturnBufferから2を引いた値になります。
222217:2006/08/30(水) 10:31:48
ありがとうございます
223デフォルトの名無しさん:2006/08/30(水) 14:02:43
いまどきGetPrivateProfileString・・・
224デフォルトの名無しさん:2006/08/30(水) 14:13:49
>>223
私は、ini ファイル大好きです。
225デフォルトの名無しさん:2006/08/30(水) 14:56:33
書式さえ合ってればiniじゃなくてもいいので割と使ってる。
226デフォルトの名無しさん:2006/08/30(水) 15:04:44
USBメモリに入れて持ち運ぶにはアプリには、iniファイルは便利だよね。
227デフォルトの名無しさん:2006/08/30(水) 16:42:32
>>223
いまどきは何ですか?
228デフォルトの名無しさん:2006/08/30(水) 17:33:47
>>227
xmlだろ。
229デフォルトの名無しさん:2006/08/30(水) 17:40:40
レジストリと比較してるのかと思った
230196:2006/08/30(水) 18:34:11
>>197
自分で試してみました。

C:\Program Files\AAA.EXEに
C:\BBB.TXTをドラッグ&ドロップした場合、

GetCommandLineの結果 : "C:\Program Files\AAA.EXE" C:\BBB.TXT
GetModuleFileNameの結果: C:\Program Files\AAA.EXE

後者はダブルクォーテーションが付かないようです。

俺様専用関数ではダブルクォーテーションで囲まれていない空白はパラメータ境界と見なすため、
GetModuleFileNameは使えませんな。
231デフォルトの名無しさん:2006/08/30(水) 18:39:31
ダブルクォーテーションをつけたり取ったりするAPIがあったような…?

無くても自作すればいいと思うが。
232デフォルトの名無しさん:2006/08/30(水) 18:40:15
>>230
GetModuleFileName には、実行時引数渡らない
俺様専用関数の仕様から GetCommandLine のほうが望ましい ってことだね
233デフォルトの名無しさん:2006/08/30(水) 18:40:36
わざわざ取ったりつけたりしなくても GetCommandLine でいいじゃん。
234デフォルトの名無しさん:2006/08/30(水) 18:44:05
>>231
PathQuoteSpaces()とかな。
235デフォルトの名無しさん:2006/08/30(水) 18:57:17
GetModuleFileNameで取得するのはファイル名なんだから、
""が付かないのは当然だろ。
空白があっても、それは当然pathの一部。

逆にGetCommandLineは引数との区別をつけなければいけないから
(pathに空白が含まれていたら)""が付くのが当然。
236デフォルトの名無しさん:2006/08/30(水) 19:00:33
>>230ってさ、Program Filesがパスに入ってるからダブルクォーテーションがついてるけど、
パスに肺ってなかったらダブルクォーテーションつかなくね?
237デフォルトの名無しさん:2006/08/30(水) 19:06:34
>>236
ディレクトリを除く実行ファイル名本体にスペース含んでても quote されてるね。
ex) "C:\foo test.exe"
238デフォルトの名無しさん:2006/08/30(水) 19:08:57
こういうことは、NT系か9x系かで結果が異なることも考えられるぞ。
239デフォルトの名無しさん:2006/08/30(水) 19:10:03
そうであった。 >>237 のは Win2K
240196:2006/08/30(水) 20:20:03
>>238
>NT系か9x系かで結果が異なる
GetCommandLineで取得できるファイル名だったかな。
NT系ではロングファイル名だが9x系ではショートファイル名で、
ロングファイル名に直すにはFindFirstFileとか使ったりして。
間違ってたらスマソ。
241デフォルトの名無しさん:2006/08/30(水) 21:18:42
目的が自身のフルパスファイル名の取得という限定された状況で、
なんでコマンドラインの情報まで入ってくる関数つかうのやら。
フルパスで入ってくることが確定しているGetModuleFileNameでいいじゃん。
242デフォルトの名無しさん:2006/08/30(水) 21:20:14
MultiByteToWideCharで「文字列をUnicodeに変換します」とかあるけど、
これって実際はUTF-16なんですか?
そしてそのことをアテにしてプログラムしてもいいんでしょうか?
243デフォルトの名無しさん:2006/08/30(水) 22:12:07
GetCommandLine関数ってより、CreateProcess関数の話っぽいかもね
244デフォルトの名無しさん:2006/08/30(水) 22:35:11
外部ウィンドウの中にあるボタンをポチっとプログラム側で押してやるのに必要な手順教えてくださいまし。
対象のボタンのhWndは取得できとります。
245デフォルトの名無しさん:2006/08/30(水) 22:37:16
適当にPostMessageとか送ってみたけどやっぱり動かず。
246デフォルトの名無しさん:2006/08/30(水) 22:38:59
座標に向かってクリッコメッセ
247デフォルトの名無しさん:2006/08/30(水) 23:40:06
PostMessageのパラメータが"クリック"の指定になってませんでしたorz
直したらちゃんとできました。
248デフォルトの名無しさん:2006/08/30(水) 23:41:25
>>246
色々なやり方があるんですね。
ありがとうございました。
249デフォルトの名無しさん:2006/08/31(木) 22:19:36
以前に FindWindow で取得したハンドルが今も有効かどうか調べるのは IsWindow でOKですか?


ハンドルの再利用とかされてたらどうしようか……(・ω・`)
250デフォルトの名無しさん:2006/08/31(木) 22:27:54
FindWindowくらいもう一回やったらええがな
251デフォルトの名無しさん:2006/08/31(木) 22:35:25
>>250
いや、複数合致するから、最初に取ったのと同じハンドルを指定したいんですわ(´・ω・`)
IsWindow + GetClassName で検査? IsWindow だけでも良いのか……?
252デフォルトの名無しさん:2006/08/31(木) 22:49:58
GetWindowText
GetClassName
でいけるんじゃないかな
253デフォルトの名無しさん:2006/08/31(木) 23:10:36
IWebBrowser2を使って、
IHTMLDocument2経由でメモリ上のhtmlをwriteしようとしています。

MultiByteToWideCharで
UNICODEに変換することでwriteが成功するようになったのですが、
IHTMLDocument2ではshift jisやeucを直接writeすることはできないのでしょうか?
ソースをメモ帳で開いた時にうにこーどだと空白だらけで格好悪くて…
254デフォルトの名無しさん:2006/08/31(木) 23:16:29
>>253
NT系のメモ帳はUnicode対応だよと的外れなことを言ってみる。
255デフォルトの名無しさん:2006/09/01(金) 03:02:10
>>253うにこーど対応のエディタで開けばいいじゃん
256デフォルトの名無しさん:2006/09/01(金) 04:23:57
ここのコードってHDCとHBITMAPの解放処理とかしてないよね?いいの?
ttp://www.microsoft.com/japan/developer/winds/Sdk/Samples/SDKSample04.htm
257デフォルトの名無しさん:2006/09/01(金) 07:57:14
>>256
case WM_DESTROY:の後に解放処理をいれればいいんじゃない?

×CaptureScreen();
○CaptureScreen(hwnd);
258デフォルトの名無しさん:2006/09/01(金) 09:35:13
>>256
プロセス終了時にリソースが解放されることを期待してるんでしょ。
行儀がいいとは言えないけど。
259デフォルトの名無しさん:2006/09/01(金) 11:38:33
>>258
なんで行儀がいいとはいえないの?
260デフォルトの名無しさん:2006/09/01(金) 11:43:23
HDCとHBITMAPの解放処理をしてないから
261デフォルトの名無しさん:2006/09/01(金) 11:55:21
>>260
それがなぜ行儀がいいとはいえないのかを質問しているのですが・・・
262デフォルトの名無しさん:2006/09/01(金) 12:00:35
>>261
その程度のことがわからないなら
危険なのでプログラミングしないでください。
263デフォルトの名無しさん:2006/09/01(金) 12:03:04
借りたら返す
264デフォルトの名無しさん:2006/09/01(金) 12:05:08
オナニーしたら後処理するだろ
265デフォルトの名無しさん:2006/09/01(金) 12:08:47
>>262
答えられないということですね。
266デフォルトの名無しさん:2006/09/01(金) 12:14:09
つーか普通は解放すべき、ヘルプにもそう書いてある。
267デフォルトの名無しさん:2006/09/01(金) 12:23:49
行儀という単語に集約されてる問題だな。
サンプルコードを参考にするのは処理系の仕様も把握してない初心者かもしれない。
そんな初心者がコード上で解放処理していないサンプルをどこかに埋め込んだ場合、
見事リソースリークという発見しづらいバグをも埋め込む事になる。
268デフォルトの名無しさん:2006/09/01(金) 12:26:03
>>266
プロセスが終わるのに?
269デフォルトの名無しさん:2006/09/01(金) 12:27:58
夏もそろそろ終わるのに元気な虫だ
270デフォルトの名無しさん:2006/09/01(金) 12:33:26
普通、プロセスが終了するときは、リソースの解放はしなくていいよ。
逆にやってるとツッコミが入る可能性も。
271デフォルトの名無しさん:2006/09/01(金) 12:34:57
まるでmalloc-free論争みたいだw
272デフォルトの名無しさん:2006/09/01(金) 12:50:34
ウィンドウズはバグリィだから出来るだけ自分で解放するよ
273デフォルトの名無しさん:2006/09/01(金) 12:59:47
ウィンドウズの自動的に解放する仕様とかどこかに書いてあるの?
274デフォルトの名無しさん:2006/09/01(金) 13:03:51
リソースリーク起こしてないか調べるのに
リソースメーター探したんだけど9x用しかないんだよな
nt系はリソースリーク気にしなくていいみたい。
275デフォルトの名無しさん:2006/09/01(金) 13:14:13
それはギャグで言って(ry
276デフォルトの名無しさん:2006/09/01(金) 13:15:19
不思議だねぇ。

解放する必要がないならReleaseDCとかDeleteObjectとか
なんで存在するんだろうねぇ。

不思議だねぇ。
277デフォルトの名無しさん:2006/09/01(金) 13:15:40
IDC_AAAとか、IDM_BBBとか、
リソースIDってどんな型で保持するべき?
unsigned int?unsigned long?
278デフォルトの名無しさん:2006/09/01(金) 13:17:43
自己解決
WORDね。
279デフォルトの名無しさん:2006/09/01(金) 14:05:01
死ぬ前に借金返す派と、
死ぬんだから別に良い派が居るな。
280デフォルトの名無しさん:2006/09/01(金) 14:44:15
孫曾孫に借金を残せばいい
281デフォルトの名無しさん:2006/09/01(金) 15:47:53
生きてる間はリークリークとうるさいけど、死ねばチャラ
282デフォルトの名無しさん:2006/09/01(金) 15:53:28
>>276
ずーっと起動してたり何回も大量に作る時用じゃん
283デフォルトの名無しさん:2006/09/01(金) 15:55:07
>>279
死ぬんだから別に良いんじゃなくて、死ぬときに神様が自動的に返してくれるから良いって言ってるの。
284デフォルトの名無しさん:2006/09/01(金) 16:07:33
それをWindowsが「正しく」実行してくれる保証はどこにある?
異常終了したときは?
285デフォルトの名無しさん:2006/09/01(金) 16:08:19
書きたくない奴は書かなければいいんじゃね?
俺は書くけど。
286デフォルトの名無しさん:2006/09/01(金) 16:10:25
>>284
ReleaseDCとかDeleteObjectが「正しく」実行してくれる保証はどこにある?
正しい引数を渡しても関数が失敗したときは?
287デフォルトの名無しさん:2006/09/01(金) 16:12:22
異常終了したときのことまで考えてられっかよ!!!!ヽ( `Д´)ノ
288デフォルトの名無しさん:2006/09/01(金) 16:13:17
うわ、馬鹿だ。馬鹿がいる。
289デフォルトの名無しさん:2006/09/01(金) 16:17:59
ここで究極奥義質問返しデターwwwwwwwwwwwwwwwwwww
さあこの奥義が出たと言うことは宴もたけなわでございますが
皆様もうしばらくおつきあいください!
290デフォルトの名無しさん:2006/09/01(金) 16:22:15
どうも脳内でリーク多発してる方がいらっしゃるようですが
再起動をおすすめします
291デフォルトの名無しさん:2006/09/01(金) 16:42:39
>>271
>まるでmalloc-free論争みたいだw
「まるで」ではない。
何十年繰り返したか判らないループ。
世に脳足りんの種は尽きまじ。
292デフォルトの名無しさん:2006/09/01(金) 16:50:26
>>290
俺の人生、リセットボタン無いんだよね。

電源ボタンならあるけど。
293デフォルトの名無しさん:2006/09/01(金) 17:18:14
電源切っても誰も悲しまないから切っていんじゃね
294デフォルトの名無しさん:2006/09/01(金) 17:26:42
アプリケーションを終了させるときにWindowsも一緒に落とせばOk
295デフォルトの名無しさん:2006/09/01(金) 17:44:17
電源ボタン [応答無し]
296デフォルトの名無しさん:2006/09/01(金) 19:00:06
そりゃリソースは、オーダーした側が解放してやらないと気持ち悪くね?
一応、なうれっじでは、
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B406056
>Windows 95 と Windows NT は両方とも、プロセスを終了するときに
>32 ビット プロセスが所有するすべての GDI リソースを解放します。

http://support.microsoft.com/kb/136989/ja?spid=1173&sid=global
>Windows 95、 Windows NT または Windows 2000 がそのプロセスが終了すると、
>32 ビット プロセスによって所有されたすべての GDI リソースを解放します。

となってるが、
実業務でつっこまれて変な言い訳するよりも、解放処理を書いた上で、
『実は、GDI リソースはOS側で解放してくれるんだよ・・・知ってた裕子ちゃん?』
と、呑み誘いの口実に使う → 裕子オマエラを信頼 → ホテルでセクロス → (゚Д゚)ウマー
297デフォルトの名無しさん:2006/09/01(金) 19:00:25
俺は絶対解放しなきゃならない場所(長時間起動する場合とか)
で解放忘れの無いように、終了する場合も解放してるよ
298仕様書無しさん:2006/09/01(金) 19:12:38
プロセス終了時にシステムが開放してくれることと、有限なシステムリソ
ースを作り放題で、他のプロセスやシステムに割り当て可能なリソースを
無駄に消費することは別次元の話だよな。
299デフォルトの名無しさん:2006/09/01(金) 19:13:44
C++にして、適当にクラスでラップして、デストラクタで解放するようにすればいいだろ。
300仕様書無しさん:2006/09/01(金) 19:16:44
それがMFCのCGdiObject派生クラスなわけだが?MFCすら使えない厨房が、
いまさら車輪の再発明でもしようってのかぃ?
301デフォルトの名無しさん:2006/09/01(金) 19:23:04
MFCはMFCだろwここはMFCスレだったかw
302デフォルトの名無しさん:2006/09/01(金) 19:30:00
SDKの話であってもMFCで使えば解決するんだから
リソースの解放なんてしなくて良い

ていうわけじゃないだろうけど…
303問1:2006/09/01(金) 19:52:27
指定したハンドルを持つウィンドウに子ウィンドウ追加するには・・・?
304デフォルトの名無しさん:2006/09/01(金) 19:57:24
指定したハンドルを持つウィンドウに子ウィンドウを追加すればいいだろがヴォケ
305デフォルトの名無しさん:2006/09/01(金) 20:03:25
SetParentとかそんな名前のが無かったっけ?
306解1:2006/09/01(金) 20:07:21
>>304
ですよね。
307経過1:2006/09/01(金) 20:27:09
>>305
ありがとう。SetParentで出来ました。
308デフォルトの名無しさん:2006/09/01(金) 21:37:55
喪前らコンソールアプリ作るとき標準入力、標準出力、エラー出力は
終了前にクローズしてるよな?
309デフォルトの名無しさん:2006/09/01(金) 21:40:50
あれはスタートアップルーチンが破棄するんじゃね?
310デフォルトの名無しさん:2006/09/01(金) 22:19:46
自分で解放するのは、原則的に自分で確保したものだけだよ
システムとかAPIが自動で確保したものは勝手に解放したらバグになってもおかしくない
こちらで解放しなきゃならない仕様じゃなければ、だけど

例えば、AllocConsoleしたらFreeConsoleしてる
311デフォルトの名無しさん:2006/09/01(金) 22:21:48
自分が開いたもの以外を閉じるのは越権行為です。
312デフォルトの名無しさん:2006/09/01(金) 22:25:14
俺終わるときはちゃんとExitWindows呼び出してるよ!
313デフォルトの名無しさん:2006/09/01(金) 22:27:12
MFCは結局コアな部分は隠蔽されてるから
便利なMFCで開発やってた奴がSDKやろうとすると戸惑う→結局MFCに戻る
314デフォルトの名無しさん:2006/09/01(金) 22:30:09
つーことはSDKをもっと便利にラッパークラス作ればいいんだなっ
315デフォルトの名無しさん:2006/09/01(金) 22:46:33
とりあえずMFCのソースでも読んどけ
316デフォルトの名無しさん:2006/09/01(金) 22:50:09
>MFCは結局コアな部分は隠蔽されてる
ソースが全てと思ってたけど、隠れてる部分てあるんだ?
317デフォルトの名無しさん:2006/09/01(金) 22:58:58
いまいちapiの使い方がわからない時は
MFCのソースを参考にすると解決することが多いな
318デフォルトの名無しさん:2006/09/01(金) 23:53:22
>>316
隠蔽というのはカプセル化の一種としての隠蔽のことを指しているのでは。
319仕様書無しさん:2006/09/02(土) 00:16:39
>316
結局、SDK房はC++を理解できていないだけで、それを隠蔽するためにMFCは
糞とか、言ってるだけだろ。

MFC自体は、マイクロソフトが作ったC++のクラスライブラリで、Win32 API
をC++でラップしたに過ぎず、MFCの全ソースも公開されているのにな。
320デフォルトの名無しさん:2006/09/02(土) 00:19:16
その手の話はよそでやってくれんか?カス共よ
321デフォルトの名無しさん:2006/09/02(土) 00:39:13
そこでATL+WTLですよと言ってみる。
322デフォルトの名無しさん:2006/09/02(土) 01:09:17
でもよくわからずに便利な"物"(クラス)があるから使ってるって輩が多いのは事実だろ
いや、これがある意味”オブジェクト”指向なのかもしれないなwwwwwwwwwwwwww
323デフォルトの名無しさん:2006/09/02(土) 01:19:04
C++使いじゃないオレには激しくどうでも良い話ですね
MFCは専用スレあるよ
324仕様書無しさん:2006/09/02(土) 01:32:06
>322
オマエが、オブジェクト指向を理解していないことはよくわかった。
325デフォルトの名無しさん:2006/09/02(土) 08:26:34
結局>>296を遵守?
326デフォルトの名無しさん:2006/09/02(土) 09:42:48
同じような感じでFreeLibraryも必要無いよね
327デフォルトの名無しさん:2006/09/02(土) 12:15:19 BE:382270346-2BP(0)
ウィンドウ外でもカーソルを変更するには
どうすればいいのてじょうか?
328デフォルトの名無しさん:2006/09/02(土) 12:41:20
それはやられると困るし
329デフォルトの名無しさん:2006/09/02(土) 12:59:06 BE:238918853-2BP(0)
デスクトップ画面の左上にくるとカソールを変更するソフトを
作ってるんです。
330デフォルトの名無しさん:2006/09/02(土) 13:20:43
迷惑だから教えない
331デフォルトの名無しさん:2006/09/02(土) 13:44:59 BE:191135243-2BP(0)
左上にくるとある機能がon になる常駐アプリ
んなんですけど自分のウィンドウを表示しないので
カーソルを変更してユーザーに知らせる為に必要
なんです。どう迷惑なのでしょうか?
332デフォルトの名無しさん:2006/09/02(土) 13:59:05
マウスが左上にきたら、カーソルの部分に小さなウィンドウ表示して合図にすればいいじゃない
333デフォルトの名無しさん:2006/09/02(土) 14:00:34
>>331
デスクトップの左上のカーソルを変えたい領域に透明な窓を作れ。
全体の使い勝手に影響するアプリケーション作りはほどほどにな。
334デフォルトの名無しさん:2006/09/02(土) 14:01:33
それは面倒なのでは?
変更といっても斜め矢印を立て矢印にするだけなんですけど
335デフォルトの名無しさん:2006/09/02(土) 14:02:06
【今後の予想】

>>331
 ↓
どう迷惑か答えられない。
 ↓
究極奥義質問返し
 ↓
まるでmalloc-free論争みたいだw

336デフォルトの名無しさん:2006/09/02(土) 14:06:53
何に答えればいいの?
337デフォルトの名無しさん:2006/09/02(土) 14:37:04
CreateHardLink しても只のコピーが作られるだけでハードリンクにならないんですけど何でですか?

LinkName  := ExtractFilePath(Application.ExeName) + 'hoge2.pas';
ExistName := ExtractFilePath(Application.ExeName) + 'hoge1.pas';

if CreateHardLink(PChar(LinkName), PChar(ExistName), nil) then
 ShowMessage('おk')
else
 ShowMessage('(゚Д゚)');
338デフォルトの名無しさん:2006/09/02(土) 14:39:34
nilなんて指定するヵらだ
339デフォルトの名無しさん:2006/09/02(土) 14:44:36
>>337
hoge1.pasを編集してもhoge2.pasが変わらなかったってこと?
340デフォルトの名無しさん:2006/09/02(土) 14:56:00
>>338
何を指定すればいいんですか?

>>339
そういうことです。
341340:2006/09/02(土) 14:57:37
何を指定すれば〜はおかしい気がしてきた。
SECURITY_ATTRIBUTES の各メンバはどうすればいいのですか?
342デフォルトの名無しさん:2006/09/02(土) 15:41:25
ファイルシステムがFAT32だったりして
343デフォルトの名無しさん:2006/09/02(土) 15:43:50
>>342
や、それは確認しました。
NTFSですた。
344デフォルトの名無しさん:2006/09/02(土) 16:58:40
ディスプレイの明るさをプログラムで制御するにはどうしたらいいんでしょうか?
画面 ブライトネスとかでぐぐってもそれらしい記述が見つけられません。

コンシュマー機やUNIXでのプログラミング経験はあるのですが、
Windowsのプログラムは1,2本作ったぐらいの超初心者です。
テンプレのサイトも覗きましたがそれらしい項目が見当たりませんでした。
すいませんがご存知のかたはよろしくおながいします。
345デフォルトの名無しさん:2006/09/02(土) 17:00:57
馬鹿な俺にはデスクトップにマスクかけるくらいしか思いつかない
346デフォルトの名無しさん:2006/09/02(土) 17:07:36
汎用的な方法は無いんじゃない?
347デフォルトの名無しさん:2006/09/02(土) 17:11:13
一部ディスプレイメーカやNotePCではAPIが公開されているが、
一般的な外部ディスプレイはAPIどころかプログラム制御する手段がそもそもない。
348デフォルトの名無しさん:2006/09/02(土) 17:33:12
そういうソフトが存在するか調べればわかるだろ
349337:2006/09/02(土) 17:46:29
何故か解決しました。

コードは何も弄っていないのにもう一度実行したらちゃんと動きました。
なんでじゃ
350337:2006/09/02(土) 18:05:49
と思ったらまた出来なくなってる…(;・ω・)
もう何がなんだか
351デフォルトの名無しさん:2006/09/02(土) 18:09:08
337の検証の仕方が悪いとか
352337:2006/09/02(土) 18:12:47
実行した後、
元のファイルを適当に書き換えて、新しく出来たファイルを開く
又は新しく出来たファイルを書き換えて元のファイルを開く
これではダメですか?
353デフォルトの名無しさん:2006/09/02(土) 18:19:09
ツンデレAPI
354デフォルトの名無しさん:2006/09/02(土) 18:22:39
>>314
それ何てWTL?
355デフォルトの名無しさん:2006/09/02(土) 18:23:52
開くアプリが、別名で保存、元ファイルを削除、元ファイルにリネームみたいなことやってるとか。
356デフォルトの名無しさん:2006/09/02(土) 18:24:48
hoge2.pasが事前に存在するとか?
CreateHarkLinkは上書きしてくれない
357デフォルトの名無しさん:2006/09/02(土) 18:25:07
358デフォルトの名無しさん:2006/09/02(土) 18:25:10
>>355
それだ
359337:2006/09/02(土) 18:26:45
>>355
それだー!
秀丸で書き換えたらダメでしたが、メモ帳でならおkでした。

まさかこんな所に落とし穴があったとは…
どうもありがとうございました。
360デフォルトの名無しさん:2006/09/02(土) 18:27:44
明るさとガンマは違うだろ
361デフォルトの名無しさん:2006/09/02(土) 18:28:33
http://homepage1.nifty.com/emk/symlink.html
> リネームして同名のファイルを作り直すと、ハードリンクはリネームされたファイルを
> 指し、シンボリックリンクは同名で作り直されたほうのファイルを指すようになる
> (ハードリンクの仕様はアプリケーションのバックアップファイルの作成方法によっては
> 不便かもしれない)。
362331:2006/09/02(土) 19:06:38
お願いします
363デフォルトの名無しさん:2006/09/02(土) 19:13:22
>>362
無関係なウィンドウ上で勝手にカーソルが代わったらキモイじゃん。
364デフォルトの名無しさん:2006/09/02(土) 19:23:03
>>357
γ値変えてもブライトネスは変わらんよ。

>>361
何を当たり前のことを?
365デフォルトの名無しさん:2006/09/02(土) 19:26:34
>>362
ウィルスモドキには協力できません。
タスクバーの事なら猫を見てください。
366デフォルトの名無しさん:2006/09/02(土) 20:28:43
>>364
当たり前のことで悩んでた奴がすぐ上にいるじゃん
367デフォルトの名無しさん:2006/09/02(土) 20:54:00
γ関係はDirect3Dになにかあるんじゃないかな
Lineage2 が画面のγ値変えてくれて非常に鬱陶しいから。
368デフォルトの名無しさん:2006/09/02(土) 21:53:29
GetDeviceGammaRamp/SetDeviceGammaRamp
369344:2006/09/03(日) 09:10:10
>>368d
これでなんとかなりそうです。
370デフォルトの名無しさん:2006/09/03(日) 12:02:44
不可視WINDOWの状態でタスクトレイにアイコン登録しただけのアプリを
起動したいのですが、
CreateWindowEXでdwExStyleにWS_EX_TOOLWINDOWを指定して、
dwStyleにWS_MINIMIZEを指定しても普通にWINDOWが現れた状態で起動してしまいます。
何かいい方法はないでしょうか?
371デフォルトの名無しさん:2006/09/03(日) 12:16:49
CreateWindowExでWS_VISIBLE付けてたら外せ
ShowWindowするな
372デフォルトの名無しさん:2006/09/03(日) 12:20:47
>>371さんどうもです。解決しました。
ShowWindowで見えないようにしないといけなかったのですね。
373デフォルトの名無しさん:2006/09/04(月) 11:45:28
はじめまして.C++をはじめたばかりの者です.
こちらの方へ誘導されたのですが,

Win32APIや.NET Frameworkを使って
「どのプロセス」が「どのファイル」に変更を加えたか(アクセスしたか)を
取得する方法はあるのでしょうか?
ReadDirectoryChangesWを使うことでファイルに変更が加えられたことは分かるのですが,
どのプロセスが変更を加えたかがわかりません.

具体的な変数名や使い方を教えていただければ幸いです.
どなたかご教授お願いします.
374デフォルトの名無しさん:2006/09/04(月) 12:02:59
そういうソフトが存在する
http://www.sysinternals.com/Utilities/Filemon.html
375デフォルトの名無しさん:2006/09/04(月) 12:32:53
>>373
要件に合わんかもだがNTFSの監査でもそういう情報が残る気がする
376375:2006/09/04(月) 12:33:57
>374
ありがとうございます.
これを自分で実装したいのですが,
どのような関数が使われているのでしょうか?
377デフォルトの名無しさん:2006/09/04(月) 12:48:09
>>376
Win32APIには存在しない。
>374のソフトはデバイスドライバと連動して目的の機能を実現している。
378373:2006/09/04(月) 12:48:37
↑名前まちがえてました;;
>375
ありがとうございます.調べてみます.
379373:2006/09/04(月) 12:51:59
>>377
ありがとうございます.
デバイスドライバとなると自分には難しそうなので
もう少し勉強してみます.
380デフォルトの名無しさん:2006/09/04(月) 15:10:30
ツリービューの使い方が分からなくて困っています。

ツリーのハンドルを取得して、
TVITEM ti;
ti.mask = TVIF_STATE;
ti.state = TVIS_SELECTED;
TreeView_SetItem(hTree, &ti);
とやっても選択されてくれないので困っています。

ti.state = TVIS_DROPHILITED;
だったら反映されるのですが…。
よろしくお願いします。
381デフォルトの名無しさん:2006/09/04(月) 18:56:04
tiを0クリアした方がいいんじゃない?
382デフォルトの名無しさん:2006/09/05(火) 00:43:38
>>380
MSDNに書いてある通り、ti.hItemとti.stateMaskの指定が必要。
>>381 の処理もやっておいた方が良い。
383373:2006/09/05(火) 12:08:23
373です
Filemonのソースを見てみたのですが自分には分かりそうにありません
そこで,Filemonが出力する情報を利用したいのですが,
外部のプログラムからFilemonの出力をリアルタイムに取得する方法があれば
教えていただけませんか
384デフォルトの名無しさん:2006/09/05(火) 12:11:25
ソースあったら表示データぐらいは取れるはずだが
385380:2006/09/05(火) 13:54:59
>>381
>>382
ありがとうございます。
ti.stateMaskを見過していました。
386デフォルトの名無しさん:2006/09/05(火) 22:02:59
コンボボックスについて質問があります。
コンボボックスの高さはフォントの高さに依存しているのでしょうか?
高さ変更できません。
387デフォルトの名無しさん:2006/09/05(火) 22:08:23
高さってなんだよDropDownCountの事か?
388デフォルトの名無しさん:2006/09/05(火) 22:26:19
>>387
CreateWindow の引数でint nHeightのことでございます
389デフォルトの名無しさん:2006/09/05(火) 22:27:44
>>386
とりあえずオーナードローにすれば変更できるんじゃ。
390386:2006/09/05(火) 22:49:51
ありがとうございます
オーなどローのことを調べてがんばってみます
391デフォルトの名無しさん:2006/09/06(水) 00:59:02
オーなど、ローの事?
392プログラム自体初心者:2006/09/06(水) 10:55:19
CreateProcessWithLogonを使用して一般ユーザーにAdmin権限でProcessを実行させようと思っています。

MSDNなどを見ても、C#でのソースコードの書き方がイマイチわかりません。

どなたかヒントだけでも頂けないでしょうか?差し出がましいですが、サンプル書いてもらえると助かります。

よろしくお願いいたします。
393デフォルトの名無しさん:2006/09/06(水) 10:58:13
スレ違いじゃないか?
394デフォルトの名無しさん:2006/09/06(水) 11:07:09
サンプルは書くの面倒だから検索するかRunAs使っとけ
395プログラム自体初心者:2006/09/06(水) 12:01:56
>>394
申し訳ありません。runasではユーザー操作が入るので無理なんです。
C言語でも結構です。どなたか神様、超簡単なサンプルをお願いします。
396デフォルトの名無しさん:2006/09/06(水) 12:32:29
CreateProcessWithLogonW(
Username // ユーザーの名前
Domain // ドメイン
Password // ユーザーのパスワード
,LOGON_WITH_PROFILE // ログオン オプション
,0 // 実行可能モジュール名
,CommandLine // コマンドライン文字列
,CREATE_DEFAULT_ERROR_MODE // 作成フラグ
,0 // 新しい環境ブロック
,0 // カレントディレクトリの名前
,&StartupInfo
,&ProcessInformation);
397デフォルトの名無しさん:2006/09/06(水) 12:33:50
>>395
一般ユーザに Admin 権限でプロセスを実行させるのはとてつもなく面倒なので
簡単なサンプルなど示しようもないんだけど、既存の Admin 権限を持ったユーザとして
プロセスを作成するんだったら ProcessStartInfo.UserName とProcessStartInfo.Password を
指定してProcess.Start で超簡単にできるような気がする。
398デフォルトの名無しさん:2006/09/06(水) 12:48:33
NotifyIcon にて、バルーンがタスクバーやウィンドウの後ろに表示されることがあるんですが……
バルーンを常に前面で表示させるオプションとかはないんですよね(;´Д`)?
399デフォルトの名無しさん:2006/09/06(水) 16:29:10
ウィンドウに描画しない部分を作りたいのですが、SetWindowRgnだと、
描画しないだけではなく、マウスのクリックなどのイベントも受け取れなくなってしまいます。
描画しない部分を作り、マウスのイベントを受け取れるようにするにはどうしたらいいのでしょうか?
400デフォルトの名無しさん:2006/09/06(水) 16:51:15
SelectClipRgn
401デフォルトの名無しさん:2006/09/06(水) 20:10:29
どうもありがとう。
402プログラム自体初心者:2006/09/06(水) 20:52:39
>>396 >>397
ありがとうございます。

実はC#で・・・CreateProcessWithLogonWを使う場合の
using system
[Dll Import]
の最初の辺りが分からず苦戦しています。
その辺だけでも教えていただけないでしょうか?
403デフォルトの名無しさん:2006/09/06(水) 20:55:39
404デフォルトの名無しさん:2006/09/06(水) 21:00:09
>>402
System.Diagnostics.Process.Start (2.0以降)
405デフォルトの名無しさん:2006/09/06(水) 21:33:36
406デフォルトの名無しさん:2006/09/06(水) 21:34:12
キーボードフックで、wParamに入っているキー以外のキーが押されていない、
つまり単体で押されているかどうかを調べるにはどうすればよいでしょうか。
407プログラム自体初心者:2006/09/06(水) 22:04:24
>>403-405
いろいろお手数おかけ致しました。

どう見ても>>405に掲載されていました。
本当にありがとうございました。
408デフォルトの名無しさん:2006/09/06(水) 22:54:56
>>406
必要に応じてGetKeyStateまたはGetAsyncKeyState。
409デフォルトの名無しさん:2006/09/06(水) 23:07:50
>>392
>差し出がましいですが
ナメてんのか?w 差し出がましいたぁ「余計なお世話」ってことだぞ。
人様にやって頂く行為に付ける形容詞じゃねぇな。
「恐縮ですが」か「もしよろしければ」あたりにしとけ。
410デフォルトの名無しさん:2006/09/06(水) 23:33:45
409が差し出がましい件について
411デフォルトの名無しさん:2006/09/06(水) 23:49:25
>>409
逆恨みされるだけだから人に注意などしない方がいい。
特に同業者相手なら放置して潰れてもらうのを狙うのが得策。
412デフォルトの名無しさん:2006/09/07(木) 09:58:36
>>409
基本的には相手の間違いを指摘してあげてるんだから相手も得になるはず。
しかしこの世の中、伝え方次第で好意も敵意につながるから怖いよ。
413デフォルトの名無しさん:2006/09/07(木) 10:59:54
>>409
キレル年齢層は年々上がっているから注意が必要。
温和な人だと思っても一言で鬼のように変わる人もいる。
それだけ昨今の人間関係とは、はかなくもろい。
今は注意する側が頭を下げて下手に出なければならない。
世知辛い世の中になっちまったもんだ。
414399:2006/09/07(木) 11:11:26
SelectClipRgnを使ってみたのですが、
どうやらウィンドウには効果がないようです。ビットマップにはきくようですが。

一応やりたいことをもう一度書くと、SetWindowRgnで作った
透明部分と色のついた部分の市松模様になってるウィンドウがありまして、
この透明部分でマウスクリックしたときもイベントを受け取れるようにしたいのです。
415デフォルトの名無しさん:2006/09/07(木) 11:28:32
>>413
>それだけ昨今の人間関係とは、はかなくもろい。
莫迦が増えただけの事でしょう。
416デフォルトの名無しさん:2006/09/07(木) 11:38:05
差し出がましいですが、スレと関係ない話を続けるのはどうかと思いますよ
417デフォルトの名無しさん:2006/09/07(木) 11:40:02
うるせーばか!
418デフォルトの名無しさん:2006/09/07(木) 11:40:29
差し出がましいようですが、多少の脱線は許容しても宜しいのではありませんか?
419デフォルトの名無しさん:2006/09/07(木) 11:42:01
初めましてdelphiで簡単なプログラムを作っているのですが
自作アプリケーションから他のアプリケーションのポップアップメニューを
選択できなくてつまづいています。
FindWindowでハンドルを取得した後、postMessageで選択したい相対座標を
クリックしているのですがWM_LBUTTONDOWNでメニューが閉じてしまいます。
他のAPIを使うのではと想像しているのですが検索してもそれらしいものが出てこなくて・・・
どなたか教えていただけませんか?

hChild1 := FindWindow('#32768',nil);
if hChild1 > 0 then
begin
postMessage(hChild1, WM_LBUTTONDOWN,0,MakeLParam(10,15));
postMessage(hChild1, WM_LBUTTONUP,0,MakeLParam(10,15));
end;
420デフォルトの名無しさん:2006/09/07(木) 12:14:47
メニューIDをおくりつけようぜ
421デフォルトの名無しさん:2006/09/07(木) 12:32:13
>>419
ポップアップメニューを表示したウィンドウにメッセージを送りつけてもそのウィンドウの領域がクリックされたことになるだけで、
ポップアップメニューをクリックされたことにはならないんじゃないかと
多分、やるべきじゃないけどメッセージを送るなら、ポップアップメニューそのもののウィンドウハンドル(≠メニューハンドル)を取得する必要があると思う
(だけどサブメニューごとにもハンドルが違うとか、ポップアップのたびにハンドルが違うとか、やっちゃいけない)

その目的ならmouse_eventを使うべきかと
422デフォルトの名無しさん:2006/09/07(木) 12:39:21
>>415
そう。その莫迦が今後も増加傾向にあるというのが問題なのです。
423デフォルトの名無しさん:2006/09/07(木) 12:51:07
なんだっけ?
自分以外は全員馬鹿に思えるやつが増えてるんだってな
424デフォルトの名無しさん:2006/09/07(木) 12:55:28
馬鹿なヤツらだな
425デフォルトの名無しさん:2006/09/07(木) 13:06:22
つまり個人主義と称した、利己主義者が増えつつあるということです。

●日本の未来は【集団主義】より【個人主義】●pt.7
http://society3.2ch.net/test/read.cgi/soc/1157184663/l50
426デフォルトの名無しさん:2006/09/07(木) 13:12:42
キレるのが増えてるんじゃなく
キレさせない言い回しが出来る奴が少ない
427デフォルトの名無しさん:2006/09/07(木) 13:46:40
>>420
回答有難うございます
他アプリケーションのメニューIDを取得する方法が。。。
Resource Hackerを見つけて使って見たのですが見つけることが出来ませんでした。

>421
回答有難うございます
自動的にオペレーションを行いたくソフトを作成しているので
そのアプリケーションのメニューがアクティブになってるとは限らないのです。
助言いただいたのですがすいません。
428デフォルトの名無しさん:2006/09/07(木) 13:50:40
そのアプリをspy++で
wm_commandでも覗いてればコマンド分かるんでない?
429デフォルトの名無しさん:2006/09/07(木) 13:53:31
元質問者は delphi らしいが…
SPY++ 相当の メッセージログツール ってあるのかな
430デフォルトの名無しさん:2006/09/07(木) 14:29:13
>>426
違うな。間違いの指摘程度で過敏に反応する輩が増えてるんだ。
431デフォルトの名無しさん:2006/09/07(木) 15:18:21
ななな、なにを!
432デフォルトの名無しさん:2006/09/07(木) 15:19:01
>>431
過敏さが足りんw
433デフォルトの名無しさん:2006/09/07(木) 16:15:42
キレるとかキレないとかうるせー、キレるぞおらー。
434デフォルトの名無しさん:2006/09/07(木) 16:42:15
>>429
winspectorは?
435デフォルトの名無しさん:2006/09/07(木) 18:20:23
KillTimer
436デフォルトの名無しさん:2006/09/07(木) 18:30:16
わんわん
437デフォルトの名無しさん:2006/09/07(木) 20:09:16
有効なファイル名か判断する(\や?や|や"なんかが混じってるか判断する)apiってありますか?
438デフォルトの名無しさん:2006/09/07(木) 20:31:44
CreateFileEx
439デフォルトの名無しさん:2006/09/07(木) 20:43:54
PathGetCharTypeとかもあるよ
440デフォルトの名無しさん:2006/09/07(木) 22:00:00
windowsって名前付ける時、半角のエスケープシーケンス等を使用とするとエラー返されなかったっけ?
441デフォルトの名無しさん:2006/09/07(木) 22:11:55
>>429
一応WinSightってのが付いてる。
442デフォルトの名無しさん:2006/09/07(木) 22:12:33
??意味が分からん
ところで22:00:00ジャストゲットおめでとう
443デフォルトの名無しさん:2006/09/07(木) 22:15:41
ファイル名変更しようとした時に「:*,;....」は使えませんて。
自分でそういうファイルを作ったりするなら判断しても良いけど。
そうじゃない場合、無駄手間にならないかなと。
444デフォルトの名無しさん:2006/09/07(木) 22:15:56
ファイル名として使えない文字のことじゃね?
445デフォルトの名無しさん:2006/09/07(木) 22:48:29
Win32APIにURLエンコーディングやUTF-8にエンコーディングする関数ってあったかな。
446デフォルトの名無しさん:2006/09/07(木) 23:00:30
あるよ。
447デフォルトの名無しさん:2006/09/07(木) 23:03:50
おしえてよ・・・ぐぐったけど出てこないんだもん(´・ω・`)
448デフォルトの名無しさん:2006/09/07(木) 23:06:10
UrlEscape と WideCharToMultiByte (CP_UTF8 を指定する)
449デフォルトの名無しさん:2006/09/07(木) 23:29:08
サンクス!!めっちゃ助かった。UrlEscapeか。。。
ちなみにEUC-JPにエンコするのはどうするのかな。
450デフォルトの名無しさん:2006/09/07(木) 23:32:51
http://www.google.co.jp/search?hl=ja&q=EUC-JP+WideCharToMultiByte+&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
の一番上のサイトなど参考に。
ConvertINetMultiByteToUnicode とか ConvertINetUnicodeToMultiByte を使うみたい。
451デフォルトの名無しさん:2006/09/07(木) 23:46:52
PCのヘッドフォンジャックにヘッドフォンのプラグが刺さっているかどうかを
監視したいのですが、ヘッドフォンジャックの状態Win32APIで取得することはできますか?
452デフォルトの名無しさん:2006/09/07(木) 23:52:51
無理
453デフォルトの名無しさん:2006/09/07(木) 23:54:24
いったい何をつくるんだ?
454デフォルトの名無しさん:2006/09/08(金) 00:01:56
無理といわずにお願いします
455デフォルトの名無しさん:2006/09/08(金) 00:06:36
使っているPC付属のソフトで、ジャックを指すとそれに合わせて「設定変える?」と聞いてくるから
Win32でできるのかなと思ったもので。

できるのなら今作っている俺様専用音楽再生ソフトで試してみようとしただけです。
456デフォルトの名無しさん:2006/09/08(金) 00:22:52
ハード依存だと思う
457デフォルトの名無しさん:2006/09/08(金) 00:35:14
ヘッドホンのスピーカにマイクをつけて、そのマイクからの音を監視してればいいんじゃねーかな。
458デフォルトの名無しさん:2006/09/08(金) 01:35:46
むしろジャックをCMOSセンサーで監視(ry
459デフォルトの名無しさん:2006/09/08(金) 07:09:26
ラジオボタンをデフォルトでチェックされた状態にするにはどうすればいいかな。
WM_INITDIALOGでBM_SETCHECK送っても意味はないし、チェック状態で作るスタイルとかあるのかな・・・
460デフォルトの名無しさん:2006/09/08(金) 08:39:56
ラジオのボタンをONにしたのに音が鳴らないんですけど…
461デフォルトの名無しさん:2006/09/08(金) 09:00:10
>>459
BM_SETCHECKのwParamにBST_CHECKED渡してるか?
CheckRadioButton使う方が良いかもしれない。
ラジオボタンは、コントロールIDの順番に依存している所があるので注意。

>>460
音量が0になっていませんか?
ヘッドフォン端子に何も刺していませんか?
電源コードが抜けていませんか?
462デフォルトの名無しさん:2006/09/08(金) 09:42:31
>>461
パソコン超初心者向けのトラブルシューティング口調にワロタ
463デフォルトの名無しさん:2006/09/08(金) 11:02:56
>>409 勉強になった d
464デフォルトの名無しさん:2006/09/08(金) 13:34:07
GetPrivateProfileStringでINIファイル形式のファイルを読み込もうとしています。
Key=value; ;コメント
↑の行を読み込むとセミコロン以降も読んでしまいます。
セミコロン以降はコメントではないのでしょうか。

valueのあとのセミコロンを見付け、その1バイト前までをvalueとする、などという処理が必要になるのでしょうか?
465デフォルトの名無しさん:2006/09/08(金) 13:52:27
>>464
そもそも値の後ろにコメントが入っていること自体が間違っていると思う。
466デフォルトの名無しさん:2006/09/08(金) 14:18:40
>>464
iniファイルは行頭セミコロンがコメント。
行中にあるセミコロンは有効な値として扱うよ。
467デフォルトの名無しさん:2006/09/08(金) 14:20:29
>>464
>などという処理が必要になるのでしょうか?
などという処理が必要になりますね。

>>466
別にセミコロンでなくとも。
468464:2006/09/08(金) 14:44:37
どうもありがとうございました。
バイナリエディタでセミコロンの代わりに0x00を入れたら取れたので、それで回避しました。
469デフォルトの名無しさん:2006/09/08(金) 15:23:10
ワロタ
それって解決策なのかw
470デフォルトの名無しさん:2006/09/08(金) 16:00:37
iniファイルの仕様って不便だよな。
値が複数行に対応してないし
471デフォルトの名無しさん:2006/09/08(金) 16:08:11
そんなあなたにxml
472デフォルトの名無しさん:2006/09/08(金) 16:08:30
"\" → "\\"
CRLF → "\n"
473デフォルトの名無しさん:2006/09/08(金) 16:18:30
iniなんていまどき使うもんじゃないな
474デフォルトの名無しさん:2006/09/08(金) 16:49:45
xmlはライブラリ使うのが不便
475デフォルトの名無しさん:2006/09/08(金) 17:08:40
APIでサポートされるようになったら使うよ
476デフォルトの名無しさん:2006/09/08(金) 17:47:28
>>470
てか読み書き毎に総舐めしてた様な気がするから遅かったと思う。
Delphi/BCBはAPI呼ばないで独自実装クラス持ってるけど。
477デフォルトの名無しさん:2006/09/08(金) 18:15:28
Dialogの中でDialogを作って消すと、呼び出し元のDialogまで消えるんですが、考えられる原因ってありますか?
DialogはどちらもDialogBoxParamを使って作ってます。
478デフォルトの名無しさん:2006/09/08(金) 18:25:48
>>461
ラジオボタンのハンドル取得して渡すの忘れてました。
CheckRadioButton関数使った方が楽だね。サンクス。
479デフォルトの名無しさん:2006/09/08(金) 18:34:46
VC++6.0使ってます
子ウインドウを親ウインドウに合体(?)させる方法を教えてください
Windowsの付属ペイントのツールボックスみたいな感じのやつです
480デフォルトの名無しさん:2006/09/08(金) 18:38:42
ドッキングツールバーだろ
481デフォルトの名無しさん:2006/09/08(金) 19:00:07
>>477です。自己解決できたようです

PostQuitMessageって一度だけWM_QUIT投げてそれっきりだと思ってたのですが、
これを呼び出した後にダイアログを作成してもすぐにWM_DESTROYが飛んでくるんですね…
482479:2006/09/08(金) 19:12:26
>>480
ググってみましたが、難しそうですね
MFC使わないといけないみたいなので、ダイアログツールバーで我慢します
483デフォルトの名無しさん:2006/09/09(土) 01:13:11
>>464
なんかどっかで、iniファイルを解析してソースを作成ってツールあったような
一周回って最近はini保存にしてるよん、単純なのがいい
いじられたくないなら拡張子変えればいいし
484デフォルトの名無しさん:2006/09/09(土) 07:13:59
>>483
最近紹介されてるの見た記憶があるなぁと思って探したらすぐ見つかった。
↓これでしょ?
INIファイルをもとに読み書き用C++ソースを自動生成する開発支援ソフト
http://www.forest.impress.co.jp/article/2006/07/28/inimoni.html
「inimoni」v1.4.3

ついでに>>434でも出てるWinspector
http://www.forest.impress.co.jp/article/2004/05/18/winspector.html
http://www.windows-spy.com/
485仕様書無しさん:2006/09/09(土) 08:33:49
> INIファイルをもとに読み書き用C++ソースを自動生成する開発支援ソフト

そんなに便利かなぁ?Iniファイルから解析だと、数値は全部「int」にされ
ちまうんだろうし、INIに記述がない場合の、デフォルトの文字列や、デフォ
ルトの期待値はINIファイルを解析してもわからんし、INIファイルのサンプル
を書いてツールに解析させて、結局できたソースに手を加えるくらいなら、
最初からINIファイルを読み書きするコードを描くなりした方が早い気がする。
486仕様書無しさん:2006/09/09(土) 08:36:48
XMLは、MSXML使えば楽チンだろ?そうか、Win32坊はDOMを使えないのか。
487デフォルトの名無しさん:2006/09/09(土) 09:19:31
strで読み込んで桁数を数えるってのもできるといえばできるね
488デフォルトの名無しさん:2006/09/09(土) 10:28:56
でも、たかが、

x=10
y=10
width=300
height=600

を保存するために、xmlみたいな大仰しいのを使うのもちょっとな・・・
489デフォルトの名無しさん:2006/09/09(土) 10:31:54
マウスの移動を監視しているソフトを作ってます。
自分のウィンドウを非表示です。
すべてのマウスの動きを得るにはDLLを使うしかないのでしょうか?
現在はタイマーを1秒単位で発行しマウスの位置を取得しています。
やはり動いた時だけ感知したいのです。
490デフォルトの名無しさん:2006/09/09(土) 11:17:50
>>489
フック使うのが王道だし。
メッセージ取れるんだから、動いたときだけ感知できるよ?
素直にdll作っておきな。
491デフォルトの名無しさん:2006/09/09(土) 12:50:20
日本語微妙におかしくね?
492449:2006/09/09(土) 12:53:25
UrlEscape()が日本語を全然変換してくれないんですが・・・
どうすればよいのでしょう。オプションかと思いましたがどうも違うようです。
493デフォルトの名無しさん:2006/09/09(土) 12:53:47
あきらかにおかしい
494デフォルトの名無しさん:2006/09/09(土) 13:04:26
>自分のウィンドウを非表示です。
日本語でどうぞ。
495デフォルトの名無しさん:2006/09/09(土) 13:12:47
>>489
ずばり、クイックランチャー等でソース公開してるやつあるよ
・いわゆる hook.dll で特定のマウスで特定のソフトにメッセ送る
・タスクバーを消し、タスクトレイに入れる
496489:2006/09/09(土) 13:34:20
日本語がおかしくなってしまいました。
>>490
わかりました。
>>495
調べてみます。
497デフォルトの名無しさん:2006/09/09(土) 13:34:50
DirectInputで取得してるキーボードメッセージとかってフックできないんでしょうか?
498デフォルトの名無しさん:2006/09/09(土) 14:13:47
wininetでHttpSendRequestExで非同期POSTをしてるんですが、
POSTした後にInternetReadFileExでサーバからの応答を取得すると
メッセージが壊れてることがあります。なぜでしょうか?
499デフォルトの名無しさん:2006/09/09(土) 14:17:02
どのように壊れるかを書け
500498:2006/09/09(土) 14:26:25
>>499
メッセージがところどころ抜けてるというか、
↓例えばこんな感じで。
<HTML>
<head>
<title>トップ画
</HTML>

↑この場合なら「トップ画面</title>」じゃないとおかしいです。
スニファで通信ログを調べると壊れて無いのでwininetがおかしいのか取得方法が間違ってるのかわからないのです。
501デフォルトの名無しさん:2006/09/09(土) 14:30:43
・受信バイト数?にあたる戻り値をチェックしてない
・バイトストリームなのにstrlenで長さを取り出している
あたりかなあ
このへんのコード晒してみ
502デフォルトの名無しさん:2006/09/09(土) 15:04:59
>>501見当違いかも知れ無いですが受信部分です。outputはstring型です
INTERNET_BUFFERS inetbufs;
::memset(&inetbufs, 0, sizeof(INTERNET_BUFFERS));
inetbufs.dwStructSize = sizeof(INTERNET_BUFFERS);
do
{
inetbufs.lpvBuffer = datatop;
inetbufs.dwBufferLength = BUFSIZE;

BOOL ret = InternetReadFileEx(hfile, &inetbufs, IRF_ASYNC, (DWORD)this);
if(!ret)
{
if(::GetLastError() == ERROR_IO_PENDING)
return;
goto READERROR;
}
if(!inetbufs.dwBufferLength)
break;
output.append(datatop, inetbufs.dwBufferLength);
} while(true);
↑はGETときも同じ処理なんですが、このときはメッセージはきちんと取得できます。
メッセージが壊れるのはPOSTのときだけで、後関係有るのかわかりませんがPOSTを送った後サーバからHTTP_STATUS_REDIRECTが返って来て自動でRedirectしてました。
503デフォルトの名無しさん:2006/09/09(土) 16:36:44
if(!inetbufs.dwBufferLength)
break;

ここがアヤシイ
504デフォルトの名無しさん:2006/09/09(土) 17:44:20
inetbufs.lpvBuffer に値が正しくセットされていることを
メモリ見て確認した?
505デフォルトの名無しさん:2006/09/09(土) 17:47:28
>>502
> outputはstring型

そりゃまずいだろ
一旦byte arrayに全体を格納してから
headerのencodingにあわせてデコードするとかしないと。
506デフォルトの名無しさん:2006/09/09(土) 18:20:53
>>503
breakの後はクローズ処理に飛ぶだけなんですがまずいですか?

>>504
正しくっていうのがよくわからないですが、
メッセージが壊れて無い場合はメモリにきちんと入ってました。

>>505
確かにそうですけど今はContent-Encoding(?)は考えずに
サーバからデータがきちんと受信できてるか確かめてる段階なので・・・
507デフォルトの名無しさん:2006/09/09(土) 18:49:51
timeSetEventでタイマーを起動して、
タイマーの発動前のキャンセル、
何回も発動するタイマーのキャンセルは
timeKillEventですが、
一回きりタイマーの設定で、
タイマーの発動後ではtimeKillEventしないといけないのですか?
508デフォルトの名無しさん:2006/09/09(土) 18:51:42
>>506
> 確かにそうですけど今はContent-Encoding(?)は考えずに

考えないのなら、なおさらバイト配列にすべき。
509デフォルトの名無しさん:2006/09/09(土) 18:55:36
stringもバイト配列だと思うが
510デフォルトの名無しさん:2006/09/09(土) 18:59:09
>>506
>サーバからデータがきちんと受信できてるか確かめてる段階なので・・・

ならばなおさらstringなんて使わずにファイルにでもダンプしろと
511デフォルトの名無しさん:2006/09/09(土) 19:00:40
>>507
日本語でどうぞ
512デフォルトの名無しさん:2006/09/09(土) 19:11:12
timeSetEventτ〃勺ィマ→を起動Uτ、
勺ィマ→σ発動前σ≠ャ冫セ儿、
何回も発動する勺ィマ→σ≠ャ冫セ儿はtimeKillEventτ〃すか〃、
一回きり勺ィマ→σ設定τ〃、
勺ィマ→σ発動後τ〃はtimeKillEventUなぃとぃけなぃστ〃すか?
513デフォルトの名無しさん:2006/09/09(土) 19:12:45
TIME_ONESHOTを与えてtimeSetEvent呼び出し、
時間が経ってタイマーが発動した後でも、
timeKillEventしないといけませんか?
514デフォルトの名無しさん:2006/09/09(土) 19:19:11
>>510一応ファイルにもダンプしてますが
515デフォルトの名無しさん:2006/09/09(土) 19:29:40
>>509

いまだにこんな勘違いしてるのがいるのか
呆れる
516デフォルトの名無しさん:2006/09/09(土) 19:39:50
ユニコードと非ユニコードで違うだろ。
つーかスレ違いだからよそでやれ
517デフォルトの名無しさん:2006/09/10(日) 00:11:34
>>464
ダブルクォーテーション付けてもダメ?
518デフォルトの名無しさん:2006/09/10(日) 00:16:20
つまり、>>502は途中で0x00が入り、文字が途切れるオチ?
519デフォルトの名無しさん:2006/09/10(日) 00:35:42
コメント
キー = 値

にすれば解決
520デフォルトの名無しさん:2006/09/10(日) 01:45:19
エディットコントロールに文字を入力すると
どうやらエディットコントロールの上辺に文字がそろってしまいます。
自分は下辺に文字をそろえたいのですが、どうすればいいでしょうか?
521デフォルトの名無しさん:2006/09/10(日) 03:04:30
fontの高さとeditコントロールの高さをあわせる
522502:2006/09/10(日) 05:12:51
BOOL ret = InternetReadFileEx(hfile, &inetbufs, IRF_ASYNC, (DWORD)this);
↑のIRF_ASYNCをIRF_NO_WAITに変えたらうまく行きました。何故かよくわかりませんが。
523デフォルトの名無しさん:2006/09/10(日) 06:24:43
IRF_ASYNC は Windows CE用 InternetReadFileEx の引数
MSDNライブラリよく見れ
524デフォルトの名無しさん:2006/09/10(日) 15:38:04
waveOut〜系の関数で、ストリーミング再生はできないのですか?
バッファを最後まで終了したら続けて再生、となると、どうしても音がとぎれてしまいます。
525デフォルトの名無しさん:2006/09/10(日) 15:50:05
>>507,513、誰か教えてくれませんか?
526デフォルトの名無しさん:2006/09/10(日) 15:51:49
>>521
できませんでした。

エクスプローラのアドレスバーはDEFAULT_GUI_FONT使っているので

自分のプログラムでDEFAULT_GUI_FONT使ったらエクスプローラのコンボボックスと同じ高さになりました。

しかし、やっぱり文字が上辺にそろってしまいます(; ;)

527デフォルトの名無しさん:2006/09/10(日) 15:58:30
>>524
複数のバッファを使う
528デフォルトの名無しさん:2006/09/10(日) 17:05:59
>>525
はい
529デフォルトの名無しさん:2006/09/10(日) 17:19:55
530デフォルトの名無しさん:2006/09/10(日) 18:16:28
531デフォルトの名無しさん:2006/09/10(日) 18:34:47
>>529
ありがとうございました。
532デフォルトの名無しさん:2006/09/10(日) 18:46:31
>>524
waveOut使うより、DirectSoundを使ったほうが解り易くていいぞ。
533デフォルトの名無しさん:2006/09/10(日) 18:49:21
ストリーミング再生の機能あるしね
でもwave再生するだけでDirectX要求されるのも使う立場からすると萎えるな
534デフォルトの名無しさん:2006/09/10(日) 19:04:39
DSoundはDirectX5の時代から変わってないよ
今配ってるWindows全てで使える
535524:2006/09/10(日) 19:07:05
>>527,530
ありがとうございます。

DirectSoundでは既にやったことがありまして、>>533と同じ理由で、waveOutでの再生も勉強していました
536デフォルトの名無しさん:2006/09/11(月) 00:16:48
>>488
スレ違いだが、Boostや.NET Frameworkなどのシリアライズ機構を使えば、
XMLの読み書きはものすごく楽。
下準備に何行か余計にかかるけど、実際の読み書きは1行程度で済む。
537デフォルトの名無しさん:2006/09/11(月) 00:40:20
エディットウインドウ内でエンターを押すと文字を送信するという感じのプログラムを作ってるんですが、
エンターを押すと出るポンッという音を出さないようにする方法は無いでしょうか?
538デフォルトの名無しさん:2006/09/11(月) 00:45:13
>>537
わからんけどES_WANTRETURNは関係ある?
539デフォルトの名無しさん:2006/09/11(月) 01:04:43
スピーカーを引っこ抜け
540デフォルトの名無しさん:2006/09/11(月) 01:06:13
>>538
一応一行のウィンドウなんですけど、複数行にしてES_WANTRETURNを入れてみたけど駄目でした。
ウィンドウスタイル見てもそれらしき物は無さそうなんで他に何かやり方があるんでしょうか。
541デフォルトの名無しさん:2006/09/11(月) 01:23:11
コンソールアプリケーションで、矢印キーの入力を受け取りたいのですがどうしたらいいのでしょうか。
INPUT_RECORD ir;
DWORD sz;
     ReadConsoleInput(stdin, &ir, 1, &sz);
if( ir.EventType == KEY_EVENT){・・・

と書いてみたのですが、、、ifがTRUEにならないので間違っているみたいです。
542デフォルトの名無しさん:2006/09/11(月) 01:32:47
kbhit
543デフォルトの名無しさん:2006/09/11(月) 01:39:13
544デフォルトの名無しさん:2006/09/11(月) 01:39:31
確かにkbhitのほうが簡単だがスレ違い
545デフォルトの名無しさん:2006/09/11(月) 02:09:41
ユーザーが指定した時間後にある操作を行うように
(例えば30分後に電源オフ)したいのですが、SetTimer
意外に何か方法はありませんか?
繰り返しではなく、一回しか実行しないので、SetTimerは
冗長な気がします。
546デフォルトの名無しさん:2006/09/11(月) 02:45:04
30分後に実行されるタスクを作成すれば?
547デフォルトの名無しさん:2006/09/11(月) 02:45:27
返信くださいまして、ありがとうございます。
kbhitでできるならば、やってみます。ありがとうございました。
548デフォルトの名無しさん:2006/09/11(月) 08:06:26
>>545
待機関数WaitForSingleObject, WaitForMultipleObjectsと
イベントハンドルとの組み合わせ。

ただ、毎秒判定するとズレが生じるので、
日付の終了時間を作成し、それを経過したかどうかで判定で
イベントハンドルの判定スイッチを・・・などなど
549デフォルトの名無しさん:2006/09/11(月) 10:09:08
自ウィンドウ非表示でマウスの移動をDLLでフックしたいのですが
WM_NCMOUSEMOVE でいいのですよね?

http://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm
ここのソースを参考にしたのですが
if (wp == WM_NCLBUTTONDOWN)
部分をWM_NCMOUSEMOVE に変えたのですがうまく動作しません。
たまにしかメッセージが来ないのです。
550デフォルトの名無しさん:2006/09/11(月) 10:13:22
NCだよね
551デフォルトの名無しさん:2006/09/11(月) 10:31:12
NCMOUSEMOVEだとマウスが乗ってる窓が変わった時しかこない
MOUSEMOVEでOKかと
いったん全部メッセージログ出しして特徴掴むといい
552デフォルトの名無しさん:2006/09/11(月) 10:49:06
ウィンドウにはクライアント領域と非クライアント領域があるのです
553549:2006/09/11(月) 11:36:58
デバック時なのでウィンドウを出してテストしているのですが
WM_MOUSEMOVEの時に自ウィンドウを表示してたら支障がでますか?


554デフォルトの名無しさん:2006/09/11(月) 12:19:23
自ウィンドウの下のウィンドウが困る
555デフォルトの名無しさん:2006/09/11(月) 12:34:59
うーん
どうしてもうまくいきません。
たまにしかこないようなのです。
どなたかWM_MOUSEMOVE をフックしているDLLのソースを
公開しているサイトをご存知ないですか?
556デフォルトの名無しさん:2006/09/11(月) 13:01:34
>>537
それは、エディットではなくダイアログプロシジャが
デフォルトボタンがないよって鳴いている音だね。
IDOK を処理してあげれば鳴らなくなるけど、
送信ボタン作ってデフォルトのボタンに設定したほうがいいと思う。
557デフォルトの名無しさん:2006/09/11(月) 13:49:25
すみませんC#でファイル・フォルダ・レジストリのACLを調査してログファイルに書きだしたいのですが
GetAclInformationを使うというところまで来ましたが、書き方が分かりません。

どなたかサンプルをC#で書いてもらえないでしょうか?
あつかましくて本当にすみません。
558デフォルトの名無しさん:2006/09/11(月) 13:55:39
559デフォルトの名無しさん:2006/09/11(月) 15:20:49
>>537
KeyDown/KeyUpイベントでエンターの入力取って処理してるなら、
イベントハンドラの引数KeyEventArgs.SuppressKeyPressをtrueにしておく。
560デフォルトの名無しさん:2006/09/11(月) 15:22:38
ああああごめんC#スレと間違えたw
561デフォルトの名無しさん:2006/09/11(月) 15:28:50
で、確かWM_KEYDOWN/UPでやってるなら、WndProcの戻り値をTRUEにして
「そのキーについては処理した」と教えてやればBEEP鳴らないはず。
KEYDOWNでそれやると、処理されたとしてその後のKEYUPが来なくなるけどな。
562デフォルトの名無しさん:2006/09/11(月) 18:24:43
>>556
ウィンドウクラスをEDITで作った子ウィンドウなんです。

>>561
エディットウィンドウの動作をサブクラスにしてそこでWM_KEYDOWNを処理してます。
戻り値をTRUEにしてみたけど駄目でした。
563デフォルトの名無しさん:2006/09/11(月) 18:28:47
>>562
その EDIT をサブクラス化したコントロールが Dialog に貼られてた場合
たとえ EDIT にフォーカスがあっても
メッセージループで IsDialogMeaage() を処理してれば Dialog側にメッセージ配送されてしまうんじゃないか?
564537:2006/09/11(月) 19:56:12
入力部にリッチエディットコントロールを使用すればなんとかなりそうなのでこれでやってみます。
色々と回答ありがとうございました。
565デフォルトの名無しさん:2006/09/11(月) 19:56:33
>>555
ご存知です
566デフォルトの名無しさん:2006/09/11(月) 21:12:19
Win2000以降のメモ帳の、ファイルを開くダイアログ のように、GetOpenFileNameで
文字コードの選択肢等をつけるには、どのようにするのか分かる方いましたら、教えてください
567デフォルトの名無しさん:2006/09/11(月) 22:20:49
マウスフックはできたのですが
IEの上を移動する時はメッセージがきません。なぜなのでしょうか?


568デフォルトの名無しさん:2006/09/11(月) 22:24:52
フックされてる
569デフォルトの名無しさん:2006/09/11(月) 22:30:53
Win2000以降のメモ帳のファイルを開くダイアログって文字コードの選択肢出てきたっけ?
570デフォルトの名無しさん:2006/09/11(月) 22:47:28
DeteKonaiYo()
571デフォルトの名無しさん:2006/09/11(月) 22:58:44
>>566
ヒント: OFN_ENABLETEMPLATE
572567:2006/09/11(月) 23:07:29
フックされてメッセージが来ないのですか?
対処法はありますか?
573デフォルトの名無しさん:2006/09/11(月) 23:42:53
>>572
Firefoxにのりかえ
574567:2006/09/11(月) 23:49:24
私だけが使うソフトではないのですべてのマウスの移動を感知したいのです。
IEの上の時にWM_MOUSEMOVE がこない...
575デフォルトの名無しさん:2006/09/12(火) 00:14:53
説明書にIEはやめてOperaを使うように書いておけばいいんじゃない?
576デフォルトの名無しさん:2006/09/12(火) 00:30:36
そんなの絶対つかわねーw
577567:2006/09/12(火) 00:45:56
まじめにお願いできませんか?
578デフォルトの名無しさん:2006/09/12(火) 00:49:58
IEが捕まえちゃってんじゃね
579デフォルトの名無しさん:2006/09/12(火) 01:05:01
みんな親身になって相談に乗ってあげてるのにまじめにとか酷い言われようだな
580567:2006/09/12(火) 01:07:11
悪ふざけもいい加減にしてください!!
581デフォルトの名無しさん:2006/09/12(火) 01:07:58
(;´Д`)ハァハァハァ
582デフォルトの名無しさん:2006/09/12(火) 01:10:37
>>574
IEになんか仕込んでるんじゃないの?
フック止めるような行儀の悪いやつが
583デフォルトの名無しさん:2006/09/12(火) 01:20:13
セキュリティの関係で、ユーザー操作を追跡できないようになってるのかも。
584デフォルトの名無しさん:2006/09/12(火) 01:24:39
IEよりフックチェインの上位に登録すれば取得できるはず
585デフォルトの名無しさん:2006/09/12(火) 01:40:21
もうめんどくせぇからDirectInputでDISCL_BACKGROUND | DISCL_NONEXCLUSIVEしる
586デフォルトの名無しさん:2006/09/12(火) 02:22:05
>>565
敬語の使い方がおかしい。
>>555
存じております。
587デフォルトの名無しさん:2006/09/12(火) 02:42:35
「ご存知ないですか?」と聞かれたら
「ご存知ありますよ。」と答えるのが筋ではなかろうか。
588デフォルトの名無しさん:2006/09/12(火) 02:50:56
×「ご存知ないですか?」
 「ご存知ありますよ。」

○「ご存知ないあるか?」
 「ご存知あるあるよ。」
589デフォルトの名無しさん:2006/09/12(火) 02:51:19
……頭が頭痛で痛む……
590デフォルトの名無しさん:2006/09/12(火) 02:53:28
頭が腹痛じゃなくてよかったな
591デフォルトの名無しさん:2006/09/12(火) 03:11:37
別のEXEのメッセージキューにメッセージ投げるのは
普通にハンドルとってPostMessage(trghwnd, WM_LBUTTONDOWN, ...
で送られるんでしょか? なんか送っても反応してくれないです(´・ω・`)
592デフォルトの名無しさん:2006/09/12(火) 03:13:26
>>591
yes

反応がないのは座標系間違ってるからとか?
あと、downだけ送ってupしてねーとかw
593デフォルトの名無しさん:2006/09/12(火) 08:32:08
SendMessage(trghwnd, WM_LBUTTONDOWN, ...
594591:2006/09/12(火) 08:51:44
そうですか(´・ω・`)
RegisterWindowMessageとかsendthreadとか必須なのかなと思ったんですが
とりあえずごにょごにょ弄ってみます
595567:2006/09/12(火) 10:09:35
みなさまIEと書きましたが
メモ帳の上の時はメッセージがきませんでした。
cmd.exeの上なら来るのですが...

>>586
URLを教えてくれませんか?
596567:2006/09/12(火) 10:12:56
メモ帳の上の時もでした。
すみません。
597デフォルトの名無しさん:2006/09/12(火) 10:26:42
>>596
WH_MOUSEはPostされたメッセージは取得できるけど
Sendされたのは駄目なんじゃなかったっけ?
598デフォルトの名無しさん:2006/09/12(火) 10:37:02
今手元のフック習作のカスでためしたけどDLLからのSendでも問題なかったぞー
599デフォルトの名無しさん:2006/09/12(火) 10:42:45
つまり567はカスということでよろしいか
600567:2006/09/12(火) 10:46:37
DLLからSendというのはわからないですが
http://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm
これをそのまま使ってるんですけど(WM_MOUSEMOVEに変えてます)
間違ってます?
601デフォルトの名無しさん:2006/09/12(火) 12:04:08

こだいすき
602567:2006/09/12(火) 12:23:25
この場合共有変数は関係ないですよね
BCCにのですが
603デフォルトの名無しさん:2006/09/12(火) 12:24:58
実家帰ったときマタタビとって来た
604567:2006/09/12(火) 12:26:21
なにかの暗号ですか??
605デフォルトの名無しさん:2006/09/12(火) 12:29:09
また旅ねこ
606567:2006/09/12(火) 12:33:23
ここの人たちでは役に立たないことがわかりました。
他のところで同じ質問をしているので、そちらに期待することにします。

答えてくださった方々、ありがとうございませんでした。
607567:2006/09/12(火) 12:37:15
>>606
誰ですか?
608デフォルトの名無しさん:2006/09/12(火) 13:08:30
全ソース晒すか、諦めるかした方がいいな。
609デフォルトの名無しさん:2006/09/12(火) 13:53:57
ほんとうにそのままなら、マウス動かすたびにメッセージボックスが出るはずだが
610デフォルトの名無しさん:2006/09/12(火) 13:58:12
えー >>585 がかなり良い線ついてると思うのだが。
どーせマクロ支援かなんかの実装だろ?
611567:2006/09/12(火) 14:49:56
ソースはだからこれと一緒ですよ
http://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm

もちろん WM_MOUSEMOVEに変えてますよ(その下も)
612デフォルトの名無しさん:2006/09/12(火) 15:03:06
構造体を指定しての ZeroMemory と memsetの0 と
={0} って同じ効果なんでしょうか?
613567:2006/09/12(火) 15:11:42
型によっては小数点とか関係してくるんじゃなかったけ?
614デフォルトの名無しさん:2006/09/12(火) 15:16:49
>>613
だれだよお前www
615567:2006/09/12(火) 15:23:20
おれだよ
616デフォルトの名無しさん:2006/09/12(火) 15:31:25
>>613
サンクス。とりあえずはあまり気にしなくてよさそう
あと良く考えたらC/C++関係スレで聞いたほうが適当かな
617567:2006/09/12(火) 16:16:11
がんばれよ
618567:2006/09/12(火) 16:26:17
で結局どうなん?早く
619デフォルトの名無しさん:2006/09/12(火) 16:35:36
なんか567がリークしてるな
620567:2006/09/12(火) 16:41:25
>>618
誰だよ

567 で ageてるのは全部オレだよ
そろそろ答え教えてよ
621567 ◆sVVR0Q7eM2 :2006/09/12(火) 16:44:40
偽者多いんで鳥つけます。
622567:2006/09/12(火) 16:45:10
午後5時までには知りたいんだが
頼むよマジで

NCCだけど共有変数って関係ある?
623567:2006/09/12(火) 16:53:32
NCCではなくBCCです。
624デフォルトの名無しさん:2006/09/12(火) 16:55:30
>BCCだけど共有変数って関係ある?
日本語でおk
625デフォルトの名無しさん:2006/09/12(火) 16:59:37
>>622
おまえの挙げたサンプルをテストしてみたぞ。
BCC5.5.1環境。

で、結論から言うと、WM_MOUSEMOVEは問題なく取れる。
タイトルバーや、メモ帳のメニューなんかは取れないが、
これはNCL_MOUSEMOVEだろ?
クライアントエリアじゃないからな。
つまり、あのコードのままで取得可能。

俺は受け取り側のアプリに、WM_APP+10とかのメッセージで
適当にポストしてフック結果を取ったが、共有変数とか使うんなら、
また別の問題があるかもしれん。
これで満足か?w
626567:2006/09/12(火) 17:01:24
   / ̄\
  | ^o^ | いいえ、それは不満足です
   \_/
627625:2006/09/12(火) 17:02:20
23秒前で5時に間に合ったなww
628567:2006/09/12(火) 17:02:24
>>おまえの挙げたサンプルをテストしてみたぞ。
猫の奴ですね?

このソフトはすべてのマウスの動きを監視しするソフトなんですけど
他のウィンドウの上の時に NCL_MOUSEMOVE で取れるのですか?

629567:2006/09/12(火) 17:03:28
すべてのマウスの移動を監視していのですが
wp == WM_MOUSEMOVE || wp == NCL_MOUSEMOVE
こんな感じで可能?
630625:2006/09/12(火) 17:04:18
>>628
> 猫の奴ですね?
そそ。

WM_MOUSEMOVEはクライアントエリア上でのメッセージ。
NCL_〜はクライアントエリア外でのメッセージだろ?
だから全画面でやりたいなら、両方取らなきゃダメなんじゃね?
631デフォルトの名無しさん:2006/09/12(火) 17:04:20
なんつーか微妙に日本語自体がおさっし気味だなw
632567:2006/09/12(火) 17:05:52
キーボード苦手なんで

>>630
ありがとう
633デフォルトの名無しさん:2006/09/12(火) 17:08:26
>キーボード苦手なんで
wwwwwwww
634625:2006/09/12(火) 17:09:10
うはw俺超適当w

WM_NCMOUSEMOVE
だったw
635567:2006/09/12(火) 17:13:40
試したけどダメだったorz
WM_NCMOUSEMOVE は自分のウィンドウのタイトルバーとかの部分だろ?
DLL側でやってるんだけど他のウィンドウには反応しない

>>625
ソース見せてくんない?
636625:2006/09/12(火) 17:18:21
おいおいww
俺、猫のコードコピって動かしてまだ一時間経ってないのに、
何の問題もなく動いてるぞ?

おまい、昨日から何やってたんだよwww
637567:2006/09/12(火) 17:18:39
まじで見せてよm(__)m
638デフォルトの名無しさん:2006/09/12(火) 17:20:45
グローバルフックできてない予感
639567:2006/09/12(火) 17:21:39
いやいやcmd.exe上のウィンドウの上ではメッセージくるんだけど
メモ長やIE上でこないんだよ
640625:2006/09/12(火) 17:21:39
あ、もしかして、メニューからフック開始やってないとかじゃないだろうな?
そういや、俺メニューが出てこないからさりげなくバグ取ったw
641567:2006/09/12(火) 17:22:22
そこは問題ない
HOOKは成功している
642625:2006/09/12(火) 17:22:56
うぷろだ教えてくれれば上げるよ? >>567
643567:2006/09/12(火) 17:23:21
ソース頼むって
アップしてくれない?
644デフォルトの名無しさん:2006/09/12(火) 17:25:07
どんな宿題なのか気になる
645567:2006/09/12(火) 17:25:09
646567:2006/09/12(火) 17:25:49
宿題ではないよ
マウスの位置によって動作するアプリよ
647625:2006/09/12(火) 17:27:22
あげた。
neko_162.zip
DLキーは
neko

まぁがんがれw
648567:2006/09/12(火) 17:28:28
おとしてみる
サンキュ
649デフォルトの名無しさん:2006/09/12(火) 17:29:52
そしてアーカイブの中には

醤油.txt

650567:2006/09/12(火) 17:30:53
とりあえず今日一日考えてみるわ
まじでありがとう
651デフォルトの名無しさん:2006/09/12(火) 18:37:28
解決したら原因の報告よろ
652567:2006/09/12(火) 18:44:46
よかろう
653デフォルトの名無しさん:2006/09/12(火) 18:53:06
スレの10分の1を私物化しておきながら「よかろう」って
いったい何様のつもりだ。
654デフォルトの名無しさん:2006/09/12(火) 19:18:12
↓ここで本物の567が現れる
655567:2006/09/12(火) 19:29:40
まだ答でてねーのかよ
つかえないカスどもだなw
656デフォルトの名無しさん:2006/09/12(火) 19:49:20
-- 誤
HINSTANCE hInst;
HHOOK hHook;
HWND hWnd;
BOOL bHook;


-- 正
#pragmadata_seg("__567__")

HINSTANCE hInst;
HHOOK hHook;
HWND hWnd;
BOOL bHook;

#pragmadata_seg()
657デフォルトの名無しさん:2006/09/12(火) 19:55:59
#pragmadata_seg("__567__")

HINSTANCE hInst=0;
HHOOK hHook=0;
HWND hWnd=0;
BOOL bHook=0;

#pragmadata_seg()
658567:2006/09/12(火) 20:03:32 BE:318558645-2BP(0)
メニューバーがでませんでしたがでるようにして
動作している事は確認しました。

http://japanese-truth.hp.infoseek.co.jp/cgi-bin/upload.cgi?mode=dl&file=1158058838
恥ずかしいですが私のソースをあげます。

どこが悪いですか?


659567:2006/09/12(火) 20:05:43 BE:509693748-2BP(0)
passはsrcです。
660567:2006/09/12(火) 20:08:24 BE:780467677-2BP(0)
exeを実行するとタスクトレイに常駐するのでそこから終了してください。
マウスを右↓にもって逝くとアイコンが変わりスタンバイを抑止します
661567:2006/09/12(火) 20:10:30 BE:637116285-2BP(0)
main.cをコンパイルするとdebugウィンドウを表示するexe
になります
662デフォルトの名無しさん:2006/09/12(火) 20:12:00
>567
>656
663567:2006/09/12(火) 20:24:48 BE:382269683-2BP(0)
誰か
664デフォルトの名無しさん:2006/09/12(火) 20:27:07
             ∩
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつ最高に馬鹿
 彡、   |∪|  /
/ __  ヽノ /
(___)   /
665デフォルトの名無しさん:2006/09/12(火) 20:30:05
>>663
だーかーらー
>>656
666567:2006/09/12(火) 20:31:14 BE:430053293-2BP(0)
BCC ではできませんよ
667_:2006/09/12(火) 20:32:00
>>567
ブラウザー上のイベントをトリガーするなら、
VBA上でMicorsoft Internet Controlsを参照設定して使ってイベントハンドラー作る例が
VBAマクロ本にあったけど、似たような(ActiveX)Controlあるんじゃないかな。
668567:2006/09/12(火) 20:32:59 BE:382269964-2BP(0)
>>647
のはそれが無くても動作しました。
共有変数は無関係では?
669567:2006/09/12(火) 20:34:12 BE:780467677-2BP(0)
>>647
と自分の違いがわからない。
670デフォルトの名無しさん:2006/09/12(火) 20:34:18
BCCて共有変数作れないのかwww
さすがDelphiの生みの親某ランドwww
671567:2006/09/12(火) 20:35:58 BE:318558645-2BP(0)
メモリマッ?? ファイルすれば可能
アセンブリで書けば可能

672567:2006/09/12(火) 20:39:11
早くおしえろカス
673デフォルトの名無しさん:2006/09/12(火) 20:40:43
567うぜぇ
674625:2006/09/12(火) 20:41:58
>>669
俺のコードは共有変数とか使ってないからな。
WM_APP+nでFindWindowしたexe側にPostMessageして放り込んでる。
ある意味、手抜きしてるってわけだ。
675567:2006/09/12(火) 20:41:58 BE:557477257-2BP(0)
マジでわからんですわ
676567:2006/09/12(火) 20:43:15
だから、メモリマップドファイル作ってそこに共有が必要な変数を全部格納しろ
677デフォルトの名無しさん:2006/09/12(火) 20:44:43
おまえ向いて無いからもう止めた方がいい
678567:2006/09/12(火) 20:45:53 BE:509692984-2BP(0)
共有変数は関係ないでしょ
マジで

nekoのは共有変数使ってないけど動作している。
679デフォルトの名無しさん:2006/09/12(火) 20:45:57
メモリマップ *ト* ファイル
680デフォルトの名無しさん:2006/09/12(火) 20:46:30
1を足すか引くかすれば直るよ。
バグなんてそんなもん。
681デフォルトの名無しさん:2006/09/12(火) 20:46:50
682567:2006/09/12(火) 20:47:56
プロセス間通信でググれカス
683567:2006/09/12(火) 20:48:47 BE:159279825-2BP(0)
>>674
つまりウィンドウハンドルがアレって事か?
684567:2006/09/12(火) 20:49:33 BE:127423924-2BP(0)
まじごめん
共有変数関係ありかw
685デフォルトの名無しさん:2006/09/12(火) 20:51:03
鳥ない奴は偽物でOK?
686デフォルトの名無しさん:2006/09/12(火) 20:52:37
本物の鳥はどれですか?
687デフォルトの名無しさん:2006/09/12(火) 20:52:42
おk
688デフォルトの名無しさん:2006/09/12(火) 20:55:52
もしかして>>567の時点で既にニセモノだったんじゃね?
689567:2006/09/12(火) 20:57:30 BE:318558454-2BP(0)
ソースあげたbe月のオレが本物に決まってんだろ
690デフォルトの名無しさん:2006/09/12(火) 21:01:13
>>689
本当の質問者がそこまで態度悪いはずが無い。
荒らしは消えてくれ。
691567:2006/09/12(火) 21:05:17 BE:445981474-2BP(0)
ちょwwwwおまwwwww
692デフォルトの名無しさん:2006/09/12(火) 21:05:35
まぢレスすると…
って何か荒れてるから様子見
693デフォルトの名無しさん:2006/09/12(火) 21:06:32
7割の人はこの状況を遊んでいると思うのですよ

とりあえずpragmaだとか使わずに素直にAPI使え APIスレだし
ttp://wisdom.sakura.ne.jp/system/winapi/win32/win150.html
694567:2006/09/12(火) 21:11:00 BE:159279252-2BP(0)
でつまり
IEの上を通る時にDLLが別にロードされhwnd を見失ってるって事か
会ってる?
695デフォルトの名無しさん:2006/09/12(火) 21:12:04
Yes
stop_shutdown.exe の hwnd_msg と
他プロセスにロードされた hook.dll の hwnd_msg は別物
696デフォルトの名無しさん:2006/09/12(火) 21:12:11
合ってる。
697デフォルトの名無しさん:2006/09/12(火) 21:13:25
違うだろが
698デフォルトの名無しさん:2006/09/12(火) 21:14:19
567は永久欠番ということでNGワード逝き
699567:2006/09/12(火) 21:15:47 BE:780467677-2BP(0)
まじセンキュ
これからも567でこのスレの質問に答えるよ
700デフォルトの名無しさん:2006/09/12(火) 21:18:58
>>697
違うのならば、何処がどう違うのかも説明しましょう。
701デフォルトの名無しさん:2006/09/12(火) 21:20:25
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
ここまで自作自演
702567:2006/09/12(火) 21:22:57 BE:637116285-2BP(0)
>>700
ほっとけよかわいそうな奴なんだよ

>>701
beログインしたりするのは面倒なんだからそんなことはないぞ
703デフォルトの名無しさん:2006/09/12(火) 21:53:32
>>694
他プロセスにdllがロードされるのは、
既に起動しているプロセスならフック登録時、
フック中に起動したプロセスならプロセス起動時
今回は関係無いけどね

あと、スレが荒れるから名無しに戻ってくれ
704デフォルトの名無しさん:2006/09/12(火) 21:54:33
>>703
^~
705デフォルトの名無しさん:2006/09/12(火) 21:59:04
>>704
なんすか?
706774:2006/09/12(火) 22:08:28
>>703
了解
707576:2006/09/12(火) 22:11:45
ばかちんが
708デフォルトの名無しさん:2006/09/12(火) 22:17:20
>>705
いや、初めて知ったから感心してるんだけど。
709デフォルトの名無しさん:2006/09/12(火) 23:16:57
^~ ←感心してる
710デフォルトの名無しさん:2006/09/12(火) 23:36:17
>>703
(・∀・)^~
711576:2006/09/13(水) 00:40:42
ほんとにどうしようもねえクズどもだな
もう他で聞くわ^~
712567:2006/09/13(水) 01:29:20
他で聞いたらアホボケシネとか言われて追い出されて帰ってきますた><
713デフォルトの名無しさん:2006/09/13(水) 02:28:03
参考までにどこで聞いたか教えて頂けませんか?
714567:2006/09/13(水) 04:57:36
ここだ
クズども荒らすなよ
http://pc8.2ch.net/test/read.cgi/tech/1156032806/
715デフォルトの名無しさん:2006/09/13(水) 05:12:43
| ∧         ∧
|/ ヽ        ./ .∧
|   `、     /   ∧
|      ̄ ̄ ̄    ヽ
| ̄ ̄ ̄ 567 ̄ ̄ ̄ ̄)
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
|ヽ-=・=-′ ヽ-=・=-  /
|::    \___/    /
|:::::::    \/    /
716デフォルトの名無しさん:2006/09/13(水) 08:19:43
わんわわわん わん!
(ケンカは表でやってくれよ!)
717567:2006/09/13(水) 08:22:13
私のために争わないで!
718567:2006/09/13(水) 09:48:49 BE:382270346-2BP(0)
今度は共有変数がうまくいきません。
ファイルマッピングがうまくできないんですけど

http://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm
ここのソースのSetMainHWNDで渡したハンドル等(他にもいろいろ)
をすべてのプロセスにロードされたDLLにも共有したいのですが
http://wisdom.sakura.ne.jp/system/winapi/win32/win150.html
ここのソースを参考にしてもうまくいきません。どうすればいいですか?

719デフォルトの名無しさん:2006/09/13(水) 09:49:58
流れ変えたいから質問

オフィス系のファイルを開くダイアログって普通に提供されてたりする?
それとも自作しないと使えない?
720デフォルトの名無しさん:2006/09/13(水) 09:58:54
ヒント:NDA
721567:2006/09/13(水) 09:59:07 BE:557476875-2BP(0)
オーナードロー
722デフォルトの名無しさん:2006/09/13(水) 10:13:28
>>720
Not Do Answer
DとN逆逆なら
Do Not Answer
答えられませんか。そうですか。
723567:2006/09/13(水) 10:15:23 BE:254847528-2BP(0)
>>722
非公開APIの事では?
724567:2006/09/13(水) 10:16:38 BE:430054439-2BP(0)
NDA
 一般に公開されていない情報を入手する場合に、
その情報を外部に漏らさせないために交わす契約のこと。
新しいOS向けのアプリケーションソフトを開発してもらうために、
開発中のOSのコードをアプリケーションソフト開発会社に
引き渡すような場合に使われる。

725デフォルトの名無しさん:2006/09/13(水) 12:18:33
567まだやってたのかwwwww
726567:2006/09/13(水) 12:25:13
あれ?いつのまに名無しが567になったの?
727567:2006/09/13(水) 12:27:38
BE使い分けて自作自演してました、ご清聴本当にありがとうございました。
728デフォルトの名無しさん:2006/09/13(水) 12:30:26
レス番が飛びすぎだ('A`)
729デフォルトの名無しさん:2006/09/13(水) 12:35:04
もう名無しは567でいいんじゃね?
730567:2006/09/13(水) 12:48:35 BE:222990672-2BP(0)
なぜマジレスしてくれないのか?

731567:2006/09/13(水) 13:02:00
人の名前を騙るな
732567:2006/09/13(水) 13:13:22 BE:334486073-2BP(0)
>>731
いいかげんしつこい

733デフォルトの名無しさん:2006/09/13(水) 13:18:32
>>732
お前の方がしつこいぞ。
734デフォルトの名無しさん:2006/09/13(水) 13:40:56
567の書き込み数多すぎ
努力する気なしだろ

>>718
> 今度は共有変数がうまくいきません。
> ファイルマッピングがうまくできないんですけど

> http://wisdom.sakura.ne.jp/system/winapi/win32/win150.html
> ここのソースを参考にしてもうまくいきません。どうすればいいですか?

ソースを参考に何をして、どううまくいかなかったのか、
うまくいかないと判断した理由(必要なら)を含めて質問すればまともなレスも来るだろうに
735デフォルトの名無しさん:2006/09/13(水) 14:04:18
なまじ助ける香具師が一回現れたから
調子に乗っているんだろう
736567:2006/09/13(水) 14:23:56 BE:191134962-2BP(0)
HWND *hwnd_main;

int WINAPI DllEntryPoint(HINSTANCE hInstance , DWORD fdwReason , PVOID pvReserved) {
static HANDLE hMap;

switch(fdwReason) {
case DLL_PROCESS_ATTACH:
hMap = CreateFileMapping((HANDLE)0xFFFFFFFF , NULL ,
PAGE_READWRITE , 0 , sizeof (HWND) , MAP);
hwnd_main = (DWORD *)MapViewOfFile(
hMap , FILE_MAP_WRITE , 0 , 0 , 0);
break;
case DLL_PROCESS_DETACH:
UnmapViewOfFile(pdwUsers);
CloseHandle(hMap);
}
return TRUE;
}

exeからSetMainHWND()を一回呼び出し
*hwnd_main = hWnd
といれているのですがうまくいきせん。(共有できてない?)
737567:2006/09/13(水) 14:30:47 BE:563493375-2BP(0)
やっぱいいや
738デフォルトの名無しさん:2006/09/13(水) 14:31:56
APIというかマクロなんですが、
_WIN32_WINNT / _WIN32_WINDOWS / WINVER
という定義、コレってたとえばWin95以上を指定したいとき
_WIN32_WINDOWS / WINVER は別物で、両方に0x400以上として定義するんでしょうか

それとも WINVER 0x400という定義だけで
_WIN32_WINDOWS 0x400
_WIN32_WINNT 0x400 の両方の意味を持つようになるんでしょうか
739567:2006/09/13(水) 14:33:34 BE:477837465-2BP(0)
それはこちらから定義するものなのか?
740567:2006/09/13(水) 14:36:39 BE:563493757-2BP(0)
つーかどうでもいいからさっさと答えてくれ
741デフォルトの名無しさん:2006/09/13(水) 14:37:05
>>739
あたりまえじゃねーか・・・
BCCだろうが何だろうがその辺は一緒だろ?
742デフォルトの名無しさん:2006/09/13(水) 15:06:32
>>738
include ディレクトリを grep してみると、各マクロ値が、ばっらばらに使われているように見えた
743567:2006/09/13(水) 15:08:20 BE:254847528-2BP(0)
beまでつけて偽者乙
744デフォルトの名無しさん:2006/09/13(水) 15:30:44
>>742
サンクス そういうものなのか
745デフォルトの名無しさん:2006/09/13(水) 16:42:52
自分で努力した方がいいぞ
746デフォルトの名無しさん:2006/09/13(水) 16:43:48
     ∧_∧ ●━●
      ( ゚д゚ )丿  フンッ!
●━●ノ/  /
     ノ ̄ゝ

 ( ゚д゚ )   Σn
⌒` γ´⌒`ヽ( E)
) . 人 .人 γ ノ
ミ)こノこノ `ー´
)こノこ(
747デフォルトの名無しさん:2006/09/13(水) 23:14:55
タスクバーにツールバーを追加・ドッキング(クイック起動とか言語バー)をすることが出来ますが、あれはどのようにやるのでしょうか?
タスクバーにドッキングできるウィンドウが作成したいのです。
クイック起動をタスクバーから取り外すと単なるツールウィンドウなので、
ウィンドウのスタイル変えればできるとかそんなレベルなのでしょうか?
748デフォルトの名無しさん:2006/09/13(水) 23:19:20
アレは独立したアプリケーションではなく、システム(エクスプローラかも)が作っている物だろうから
自分で作ったウィンドウを、ってのは無理じゃね?
749デフォルトの名無しさん:2006/09/13(水) 23:21:58
750デフォルトの名無しさん:2006/09/13(水) 23:32:48
>>748
m9(^Д^)プギャー
751デフォルトの名無しさん:2006/09/13(水) 23:33:33
>>748
m9(^Д^)プギャー
752747:2006/09/13(水) 23:41:02
いいから早くやりかたおしえろや
753デフォルトの名無しさん:2006/09/13(水) 23:45:02
754デフォルトの名無しさん:2006/09/13(水) 23:49:42
最近どのスレでも、質問者の振りして煽りコメントする奴が増えたよなぁ。

同一人物?
755デフォルトの名無しさん:2006/09/14(木) 00:01:56
BCCで作ったWinアプリを他の人にテストして欲しいのですが、
配布するのはReleaseフォルダの〜.exeだけでいいんでしょうか?
756デフォルトの名無しさん:2006/09/14(木) 00:04:41
スレ違い
757デフォルトの名無しさん:2006/09/14(木) 00:06:49
すいません。
BCC++スレかこっちかで迷ったもんで。
758デフォルトの名無しさん:2006/09/14(木) 00:16:38
srcフォルダの*.c *.hだけでいいよ
759デフォルトの名無しさん:2006/09/14(木) 02:10:45
どういう作り方をしたかによる。
スレ違いなのでBCC++スレの方がいい。
760デフォルトの名無しさん:2006/09/14(木) 03:13:35
>>757
このスレタイを見てどう迷うんだ
761747:2006/09/14(木) 03:47:15
自己解決しました
762567:2006/09/14(木) 05:29:35
事故解決しました
763デフォルトの名無しさん:2006/09/14(木) 05:39:12
MFCにあってWin32APIにないものってありますか?
764デフォルトの名無しさん:2006/09/14(木) 05:42:33
バグ
765デフォルトの名無しさん:2006/09/14(木) 09:13:36
まじで?
766デフォルトの名無しさん:2006/09/14(木) 10:22:54
>764
m9(^Д^)プギャー
767デフォルトの名無しさん:2006/09/14(木) 10:26:47 BE:382269964-2BP(0)
どなかた>>736について教えてくれませんか?

768デフォルトの名無しさん:2006/09/14(木) 10:49:06
質問の仕方が悪いと誰も答えない
769デフォルトの名無しさん:2006/09/14(木) 10:53:57 BE:477837465-2BP(0)
え?
質問は普通でしょ?
770デフォルトの名無しさん:2006/09/14(木) 10:54:51
スルーでよろしく
771デフォルトの名無しさん:2006/09/14(木) 10:57:49
了解
772デフォルトの名無しさん:2006/09/14(木) 12:13:21 BE:1019386188-2BP(0)
ごめんなさい
他の所で質問します。
ありがとうこざいました。m(__)m
773567:2006/09/14(木) 12:32:28
ごめんなさい
あっちでもなかなか答えてくれないんです
みんなけちくさいんですね
やっぱおしえてくれませんかね?
774デフォルトの名無しさん:2006/09/14(木) 12:37:48
行こう>>567。ここもじきに腐海に沈む
775デフォルトの名無しさん:2006/09/14(木) 12:59:24 BE:1146809489-2BP(0)
>>773
なんでこう邪魔するんですかね?

マルチになるのでこちらは断ったんですが
776デフォルトの名無しさん:2006/09/14(木) 13:01:18
>>775馬鹿はさっさとどっか逝け。帰ってこなくていいから
777747:2006/09/14(木) 13:15:09
>>749
うおー!感動。ありがとうございます!

>>748
レスサンクス!もれも最初そう思ったけど
Googleデスクトップというものが埋め込んでたんで出来るとおもたのですよ。

>>752 >>761
だれじゃモルァ
778デフォルトの名無しさん:2006/09/14(木) 13:19:29
>>567
おまいさん、なんで自分が攻撃されてるか解ってないだろ。

・無闇にしつこくてウザイ
 自分の質問が場を荒らしている事実に着目しない(≒空気読まない)
・自分の「解らない」という疑問点に固執し、柔軟性がない
・解らない解らないと連呼する割に、
 自分で状況を打開しようとしている跡が見えない
・一つの方法で上手くいかなかったら、
 他の方法を試してみる等の方法を取らない
・例えば、FileMappingに関しても、今のソースではなく、
 それだけのテストソースでも書いて何がまずいのか調べる姿勢がない
・そもそも、あんたのやりたいことに関して、
 本当にfileMappingが必要なのか?
779587:2006/09/14(木) 13:38:43
失敬、失敬
780デフォルトの名無しさん:2006/09/14(木) 16:02:19
>>778
>・無闇にしつこくてウザイ
> 自分の質問が場を荒らしている事実に着目しない(≒空気読まない)
そんな事はありません。

>・自分の「解らない」という疑問点に固執し、柔軟性がない
解らないのだから仕方ないんです。

>・解らない解らないと連呼する割に、
> 自分で状況を打開しようとしている跡が見えない
打開しようとしてます。そのためにここに。います

>・一つの方法で上手くいかなかったら、
> 他の方法を試してみる等の方法を取らない
ではその方法を提示してください。

>・例えば、FileMappingに関しても、今のソースではなく、
> それだけのテストソースでも書いて何がまずいのか調べる姿勢がない
急いでいます。

>・そもそも、あんたのやりたいことに関して、
> 本当にfileMappingが必要なのか?
はい。
781デフォルトの名無しさん:2006/09/14(木) 16:04:16
カエレ(・∀・)!!
782デフォルトの名無しさん:2006/09/14(木) 16:15:15
釣ってる奴もそうだが釣られてる奴もいい加減ウザイ。
587で空気あぼーんしてる意味が無くなるんだが。


質問:
普通に起動した場合とファイルをドラッグで起動した場合で挙動が違うみたいなんですが、
内部で引数あるなしで分岐してたりしますか?

何故かテキストがファイルドラッグで起動した場合表示されないんですよね…

ちなみに上記の問題の発生したプログラム、引数に関する処理は書いてないんですが、
今後引数を扱いたいプログラム書くときに困りそうなので…
783デフォルトの名無しさん:2006/09/14(木) 16:17:07
カレントディレクトリ
784567:2006/09/14(木) 18:44:37
おいおい>>782さんよぉ
お前みたいにワザワザ反応してくれるからおれみたいな便乗荒らしでてくるんだぜ?

で、コピペだけで終わるような解答早く出してくれよw
785デフォルトの名無しさん:2006/09/14(木) 19:30:21
自覚はあるんだ・・・
786567:2006/09/14(木) 21:24:16
えっ?
(便乗)荒らしが喜ぶのは反応があるからだぜ?
自覚が無くて真性の天然だったらPC自作板の雑音みたいなねちねちした文章になるに決まってるがなw
787デフォルトの名無しさん:2006/09/14(木) 21:25:44
日本語でおk
788567:2006/09/14(木) 21:25:47
おっと、567のフリをするのを忘れてたぜ

答えまだ?
789567:2006/09/14(木) 21:29:15
おっ
>>787もワザワザおれに触ってくれるのか

答えまだ?
790デフォルトの名無しさん:2006/09/14(木) 23:21:20
>>567ゔ〲〰
791あさりちゃん:2006/09/14(木) 23:29:40
お邪魔します。質問です。
ごみ箱の中身を操作する方法ってありませんか?

同じ名前のファイルで、ごみ箱へ捨てた日付の古いものを
削除する処理を書きたいんですが・・・。
792デフォルトの名無しさん:2006/09/14(木) 23:30:59
>>791
ShellNameSpace
793デフォルトの名無しさん:2006/09/15(金) 09:11:38
>>791
rm -rf /
794デフォルトの名無しさん:2006/09/15(金) 09:33:27
単純にゴミ箱を空にすることと、
ゴミ箱の中のファイル数を取ることなら、
比較的簡単に出来るが。

ゴミ箱内部のファイルを取るっつーと、どうすんだろうな?
RECYCLERの中をFindFirstでつつき回すしかねーのかな?
795デフォルトの名無しさん:2006/09/15(金) 17:52:11
>>794
ShellNameSpace
796デフォルトの名無しさん:2006/09/15(金) 18:57:19
>>794
ShelllNameSpace
797デフォルトの名無しさん:2006/09/15(金) 19:23:39
>>794
ShellNameSpace
798デフォルトの名無しさん:2006/09/15(金) 20:04:26
>>794
SnullNameSpoce
799デフォルトの名無しさん:2006/09/15(金) 20:07:36
>>794
ShallWeDance
800デフォルトの名無しさん:2006/09/15(金) 20:42:12
>>794
SocialNetworkingService
801デフォルトの名無しさん:2006/09/15(金) 20:59:00
>>794
SonnaKotoyoriChttoKiitekureyo1yo
802デフォルトの名無しさん:2006/09/15(金) 21:59:14
>>794
Sheee
803デフォルトの名無しさん:2006/09/15(金) 22:08:12
>>794
ShokoShokoShokoshokoShoko
804567:2006/09/15(金) 22:31:52
>>794
KotaeMada?
805デフォルトの名無しさん:2006/09/15(金) 22:41:14
>>794
Nakuyo?
806567:2006/09/15(金) 22:58:37
ゔ〲〰 乜勹〰スㄜㄝㄋ
807デフォルトの名無しさん:2006/09/15(金) 23:28:57
Shine567
808デフォルトの名無しさん:2006/09/15(金) 23:43:24
輝く567
809デフォルトの名無しさん:2006/09/16(土) 01:00:47
>>798
ガッ!!
810デフォルトの名無しさん:2006/09/16(土) 01:01:07
まだいたのかww
よく見たら結構飛んでるし

>>794
ShellNameSpace
811デフォルトの名無しさん:2006/09/16(土) 03:16:34
>>794
ShowMeTheWaytoYou
812デフォルトの名無しさん:2006/09/16(土) 03:31:22
もうつまんねーよ
813デフォルトの名無しさん:2006/09/16(土) 03:58:49
モニタの電源をOn/Offにするにはどうすればいいですか?
814デフォルトの名無しさん:2006/09/16(土) 04:10:00
電源スイッチを押す
815デフォルトの名無しさん:2006/09/16(土) 05:42:41
何も見えなくなった
816デフォルトの名無しさん:2006/09/16(土) 06:47:41




                                 糸冬
                            ---------------
                             制作・著作 NHK
817デフォルトの名無しさん:2006/09/16(土) 09:07:19
GetKeyboardStateですべてのキーの情報を取ったときに、
押されていないのに最上位ビットが1になるキー(0xF0, 0xF3, 0xF6, 0xFB)があるのですが、
すべてのキーについて押されているかどうかを確かめるときはこれらのキーだけを特別に除いて処理してよいものなんでしょうか。
他の環境でもこうなるか分からないのです。
818デフォルトの名無しさん:2006/09/16(土) 12:06:26
いいお^^
819デフォルトの名無しさん:2006/09/16(土) 20:56:47
リソースの識別子に使われる数値ってのは上限いくつ?
65535?
820デフォルトの名無しさん:2006/09/16(土) 21:03:55
ためしてみたら?
821デフォルトの名無しさん:2006/09/16(土) 21:06:17
そう。符号無し16ビット値。
822デフォルトの名無しさん:2006/09/17(日) 14:26:41
CreateProcessで xxx.exe を実行して、
WaitForSingleObjectで終了待ちした場合、
その xxx.exe の終了値は、どうやって取得できますか?
823デフォルトの名無しさん:2006/09/17(日) 14:34:54
GetExitCodeProcess
824デフォルトの名無しさん:2006/09/17(日) 14:51:27
>>823
ありがとうございます。
825デフォルトの名無しさん:2006/09/17(日) 23:19:56
ツールチップがクリックされたときに処理をしたい場合
サブクラス化するしか方法はないのでしょうか?
826デフォルトの名無しさん:2006/09/17(日) 23:59:50
「諦める」という方法もある >>825
827デフォルトの名無しさん:2006/09/18(月) 00:35:38
最近プログラムを書ける気に浸りたいアホがいるな
何一つ知らないボケはすっこんでろ
828デフォルトの名無しさん:2006/09/18(月) 02:55:47
お前のこと?
829デフォルトの名無しさん:2006/09/18(月) 20:32:16
知らないなら黙ってればいいのに
かと言って面白いレスができるわけでもなく
830macなんてクソじゃ〜〜:2006/09/19(火) 00:26:04
はじめてきたがそして質問があるが不可能だと思うが・・・
9x系のPCをどうにかしてMEか2000かXPにできんか??
もらいもんのPCをどうにかよみがえらしたい
出来れば金がかからん方法で
831デフォルトの名無しさん:2006/09/19(火) 00:28:27
832デフォルトの名無しさん:2006/09/19(火) 00:29:48
>>830
MEか2000かXPのCDを入れればアップグレード出来るんじゃないかな

つーか、9x系OSが死んでいるかのような、よみがえらせるという表現は如何な物か
9x系OSに謝れ!
あと、MEはやめとけ!
833デフォルトの名無しさん:2006/09/19(火) 00:34:59
そんな素敵なAPI聞いたこともない
834macなんてクソじゃ〜〜:2006/09/19(火) 00:46:39
>>832
MEが悪いのは十分承知はっきり言って最悪一回買ったが重くて重くて
ゲイツシンジマエヨとおもったな

やはりROMが必要か・・・誰かからもらうかな
835デフォルトの名無しさん:2006/09/19(火) 01:03:47
>>830 >>832
OSの必要スペック(CPU,メモリ)を満たしていないPCは、
インストールの時にメッセージか出て入れられなかった記憶があるよ。
2000の必要スペックは、Pentium133Mhz以上、メモリ32MB以上、HDD850MB以上の空き容量
だそうです。

MEのCDなら、友人などからタダで貰えるんじゃね? 今時MEなんて使わんだろうしw
836デフォルトの名無しさん:2006/09/19(火) 01:06:50
ROMが必要、ってすげーな
普通CR-ROMをROMって訳すか?
いやしくもプログラミングをしようとしている人間が、、、

と思ったが、どう見てもスレ違いじゃなくて板違い。
ただのPC初心者だろ。
837macなんてクソじゃ〜〜:2006/09/19(火) 01:13:22
>>885
マジでサンキュー
たぶんXPのROMもらえるかも・・・
まぁ自分のPCのスペック見てみるわ
838macなんてクソじゃ〜〜:2006/09/19(火) 01:18:28
>>836
初心者じゃねえが厨房だぜ俺は
もうひとついうとプログラムは何個か作ったことがあるが・・・
簡単なのだがな一応プログラマ死亡だぞ
ただそんなことが出来ても知識がない俺だ・・・
839デフォルトの名無しさん:2006/09/19(火) 01:20:25
スレタイを読むだけの日本語の知識もないんですね^^;
840macなんてクソじゃ〜〜:2006/09/19(火) 01:21:32
>>835
2000のスペックは十分足りるぞ新しいほうだからな
後はROMだけだな
841macなんてクソじゃ〜〜:2006/09/19(火) 01:22:53
>>839
国語3点の俺にいうなわかる分けなかろうが
842デフォルトの名無しさん:2006/09/19(火) 01:25:04
…また前スレの荒れパターンか…

進歩がないというか…楽しい?
843macなんてクソじゃ〜〜:2006/09/19(火) 01:32:04
>>842
いや前スレには俺はおらんかったが・・
別人だろうそれに俺は荒らしにきたわけじゃないしの
>>835
XPの必要スペックはわらりませんかの??
844デフォルトの名無しさん:2006/09/19(火) 01:32:47
お触り禁止><!!
845デフォルトの名無しさん:2006/09/19(火) 01:35:37
つーか板違いだから
846macなんてクソじゃ〜〜:2006/09/19(火) 01:36:25
>>844
・・・何が言いたい??
ようわからんぞ
847macなんてクソじゃ〜〜:2006/09/19(火) 01:37:39
>>845
すまんのでわほかの板を探すか・・・
848835:2006/09/19(火) 01:40:53
849macなんてクソじゃ〜〜:2006/09/19(火) 01:51:33
>>848
最後の最後まで迷惑かけたこれで俺は消えるぞ
850デフォルトの名無しさん:2006/09/19(火) 02:56:02
釣られんなよバカども
851567:2006/09/19(火) 03:02:52
俺の仲間が来てたのか
852デフォルトの名無しさん:2006/09/19(火) 14:08:39
他のアプリケーションによるウィンドウ生成を知る手段ってありますでしょうか
一定時間ごとにEnumWindowsなどで調べるくらいしか思いつかないです
853デフォルトの名無しさん:2006/09/19(火) 14:36:51
WM_CREATEをグローバルフック
854デフォルトの名無しさん:2006/09/19(火) 14:51:13
なるほど、サンクスです
855デフォルトの名無しさん:2006/09/19(火) 19:15:24
C++のMFC無しで
Font選択ダイアログと
カラーダイアログ出すAPIって何ですか?
856デフォルトの名無しさん:2006/09/19(火) 19:47:28
ChooseFont
ChooseColor
857ちん:2006/09/19(火) 20:52:02
■■■■■■■■■■■■■■■■
■                     ■  違う板にコピペすると、四角の枠の中に
■                     ■  メッセージとURLが現れる不思議な絵。
■                     ■
■                     ■  (その仕組みがリンク先に書いてある)
■                     ■
■                     ■  この原理を応用すると、まったく新しい
■                     ■  コピペが作れる予感。
■■■■■■■■■■■■■■■■
858デフォルトの名無しさん:2006/09/19(火) 22:22:49
Jane Styleのレスポップアップのウィンドウみたく
影付きでポップアップ表示してもアクティブにならない
ウィンドウを作りたいんですが、どうすればよいでしょう?
859デフォルトの名無しさん:2006/09/19(火) 22:47:10
860デフォルトの名無しさん:2006/09/19(火) 23:46:12
影はOnPaintでやってるのはわかったが、
アクティブにならないウィンドウをどう作ればよいかわからない。
てか、デルファイよめねぇ・・・
861デフォルトの名無しさん:2006/09/20(水) 00:01:00
WM_SETFOCUSが飛んできたら親に送り返してるだけじゃ?
862デフォルトの名無しさん:2006/09/20(水) 00:01:59
//メインウィンドウからフォーカスを奪わないように設定
procedure TPopUpTextView.CreateWnd;
begin
inherited CreateWnd;
Windows.SetParent(Handle, 0);/ /WinAPI
CallWindowProc(DefWndProc, Handle, WM_SETFOCUS, 0, 0); //WinAPI
end;

XPで影を付けるのはCS_DROPSHADOWでググる
863860:2006/09/20(水) 00:31:36
どうもです!解決しました。
864デフォルトの名無しさん:2006/09/20(水) 21:56:49
>>854
HCBT_CREATEをCBTフックのほうが効率いいと思われ
865デフォルトの名無しさん:2006/09/20(水) 23:38:21
HCBT_CREATEWND
866デフォルトの名無しさん:2006/09/21(木) 00:51:56
イベントオブジェクトがシグナル状態のときに待機し、非シグナル状態になったら制御を返す待機関数はありますか?
あればその関数の名前を教えてほしいです
867567:2006/09/21(木) 09:50:22 BE:573405449-2BP(0)
Sleep(0)
でどうだ
868567:2006/09/21(木) 10:00:42 BE:334486837-2BP(0)
間違えました^^

http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_sleepex.htm
ここの解説にのってますよ。
MsgWaitForMultipleObjects か MsgWaitForMultipleObjectsEx を使うといいでしょう
869デフォルトの名無しさん:2006/09/21(木) 12:23:00
それってシグナルになったら制御を返すんだから866の要求と逆だろ。
870デフォルトの名無しさん:2006/09/21(木) 12:33:40
866のしたいこと分からんから正答ではないはずだが、素直に
シグナル状態:待機、ノンシグナル状態:何もしない
じゃ駄目なの?
871デフォルトの名無しさん:2006/09/21(木) 12:51:02
>>866
そういう API はありません。
872デフォルトの名無しさん:2006/09/21(木) 13:10:58
c++でmfcなしwin32のみだとVS.NET2003-2005自身で使われているような新しい見た目のguiコントロールではなく、古臭いみためのコントロールしかつかえないのでしょうか?
873デフォルトの名無しさん:2006/09/21(木) 13:17:12
このページのCreateFileの使用例について質問なんですが
http://www-higashi.ist.osaka-u.ac.jp/~k-maeda/vcpp/sec5-1file.html
BCC だと winmainをmainに変えただけでビルド出来てテキストファイルもちゃんと出来たのですが
VCEEでビルドすると
c:\documents and settings\my documents\visual studio 2005\projects\ctet\test\drawpixel.cpp(14) : error C2664: 'CreateFileW' : 1 番目の引数を 'const char [9]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
というエラーになります
エラーメッセージが指している行はこれです
hFile = CreateFile( "hoge.txt", GENERIC_WRITE, 0, NULL,
どうしたらいいのか教えてください
874デフォルトの名無しさん:2006/09/21(木) 13:19:49
とりあえず踊ってみるといいよ
875デフォルトの名無しさん:2006/09/21(木) 13:20:50
c++でmfcなしwin32のみだとVS.NET2003-2005自身で使われているような新しい見た目のguiコントロールではなく、古臭いみためのコントロールしかつかえないのでしょうか?
876デフォルトの名無しさん:2006/09/21(木) 13:21:08
>>873
プロジェクトの設定で、文字セットを変更する
877デフォルトの名無しさん:2006/09/21(木) 13:26:16
>>876
文字セットの設定ををマルチバイトに変えたら出来ました
ありがとうございました
878デフォルトの名無しさん:2006/09/21(木) 13:34:34
本当は TEXT("hoge.txt") か、
tchar.h をインクルードして _T("hoge.txt") と書くべきなんだが、
まあいいや。

>>875
MSDNで 'Visual Styles' を検索。
879デフォルトの名無しさん:2006/09/21(木) 14:17:21
877は、何故それで問題が解決出来たのか分かっているのだろうか・・・
880866:2006/09/21(木) 14:25:25
>>867-871
ないんですねorz
素直にこんな感じにしておきます

while(WaitForSingleObject(event, 0) != WAIT_TIMEOUT)
Sleep(50);
881デフォルトの名無しさん:2006/09/21(木) 15:21:53
>>880
何故シグナルで待機にするんだ?
排他制御なのか?
882デフォルトの名無しさん:2006/09/21(木) 15:28:56
>>881
所有権を獲得しないわけだから、排他制御には使えないような気がする。
何かのフラグ的にシグナル状態を参照しつつ待ちたいだけと見た。
あるいは (誤って) Mutex の代わりに使おうとしているとか。
883デフォルトの名無しさん:2006/09/21(木) 16:03:50
>>866
何をやりたいのか、もっと具体的に書けばアドバイスできるかもしれんが。
待機するイベントは何なのかとか。何の目的でそんなことしようとしているのかとか。
884866:2006/09/21(木) 16:53:45
もう解決したのでいいです。
885866:2006/09/21(木) 17:12:36
>>881-882
排他処理ではないです

>>883
866のような待機関数がないということは一般的には必要ではないってことだと思うので
違う方法を探しつつ自力もうちょっとがんばってみます
どうしてもダメそうだったらまた聞きにくるかもしれません
そのときはよろしくお願いします
886デフォルトの名無しさん:2006/09/21(木) 21:15:49
さるさる日記 - きっこの日記
http://www3.diary.ne.jp/logdisp.cgi?user=338790&log=20060921

■2006/09/21 (木) 安倍晋三が改憲を急ぐワケ 1

フリーライターの西山澄夫さんが発行しているML、「週刊オルタ」に、驚愕のニュース
が掲載されていたので、西山さんに転載の許可を得た上で、以下、掲載する。

「速報」

2005年10月25日、26日、ブッシュの支持基盤であるネオコン派の政治家、知識人が
集まるワシントンの政策研究所、AEI・アメリカン・エンタープライズ・インスティ
テュートが主催して、日本の国会議事堂裏のホテル、キャピトル東急で、
「政策研究集会」が開かれた。テーマは、「日本と中国を、どのようにして戦争に
突入させるか、そのプラン作り」である。

参加者はAEI所長クリストファー・デムス、次期総理・安倍晋三、鶴岡公ニ
(外務省、総合外交政策局審議官)、山口昇(防衛庁、防衛研究所副所長、陸将補)、
民主党・前党首・前原誠司、その他自民、民主の複数の議員。
テーマは「有事、戦争に、どう対処するか」では無く、
「中国と日本を、どのようにして戦争に持って行くか」である。

以上は裏付けが取れた正確な情報である。
以下は裏付けの取れていない未確認情報(裏付けの取りようがない)である。

今後2年前後に、日本海側の都市に、「米軍の」ミサイルを着弾させ死傷者を出さ
せ、それが北朝鮮からのものである、とマスコミ報道を行い、一気に日本国内の
世論を戦争賛成、治安維持体制に持って行く、また京都、大阪付近で新幹線の
爆破テロを起こし世論を戒厳令体制、戦争賛成方向に誘導する(テロは米軍と
自衛隊の共同作戦で実行し、イスラム原理主義または北朝鮮のテロと報道する)。
887デフォルトの名無しさん:2006/09/21(木) 21:57:45
VC++で、NOTIFYICONDATA構造体を記述すると「定義されていないエラー」が突然出るようになりました。
shellapi.hをインクルードすればエラーの解決出来るのですが、原因が分かりません。
分かる方いらっしゃいましたら教えて下さい(T_T)
888デフォルトの名無しさん:2006/09/21(木) 22:01:37
( ゚д゚)
889デフォルトの名無しさん:2006/09/21(木) 22:11:39
>>887
それやばいよ!やばいよやばいよ!
shellapi.hをインクルードしなくちゃ駄目になった?!

あーあ……
890デフォルトの名無しさん:2006/09/21(木) 22:24:46
最初は構造体を記述していてもエラーがでなかったが
あるときを境に突然エラーが出るようになったってことかと思ったがよく読んだら違ったorz
891887:2006/09/21(木) 22:30:45
>>890 さん
その通りです(T_T) 突然エラーが出るようになってしまい、現在はshellapiヘッダをインクルード駄目になってしまいました。
892デフォルトの名無しさん:2006/09/21(木) 22:43:43
>>891
確認
shellapi.hをインクルードして、コンパイルは通ったんですよね?
893887:2006/09/21(木) 22:44:38
はい 
shellapi.hをインクルードすればコンパイルは通ります(^^;
894887:2006/09/21(木) 22:48:13
>>891の投稿の誤りを訂正します

(誤) 現在はshellapiヘッダをインクルード駄目になってしまいました。
(正) 現在はshellapiヘッダをインクルードしないと駄目になってしまいました。

すみません(^^;
895デフォルトの名無しさん:2006/09/21(木) 22:54:21
まぁ修正前のどこかのヘッダが
間接的にshellapiをインクルードしてたってオチかと
896デフォルトの名無しさん:2006/09/21(木) 22:59:22
以前は、何かのヘッダファイルから間接的にshellapi.hがインクルードされていたが、
現在はそのヘッダを使っていないから。
というオチじゃない?
897887:2006/09/21(木) 23:00:45
ありがとう御座いました。>>895さん
NOTIFYICONDATA構造体をshellapi.hのインクルード無しで
定義出来た同じプログラムを書いてみて様子を見てみます。m(_ _)m
898デフォルトの名無しさん:2006/09/21(木) 23:09:06
つーか、MSDNにもshellapi.hって書いてあるんだから素直にincludeすればいいんじゃねーの?
ttp://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/structures/notifyicondata.asp
899デフォルトの名無しさん:2006/09/21(木) 23:11:00
どこかで#includeされたりされなかったりで悩むくらいなら
素直に#includeすればいいのに。
900デフォルトの名無しさん:2006/09/21(木) 23:11:32
>>897
VC++なら/showIncludes
901887:2006/09/21(木) 23:17:05
「突然」の原因が気になったので質問させて頂きましたm(_ _)m >>898 >>899
インクルードの記述に抵抗があったり、それをしたくないわけではありません。

>>900さん サンクスです。
902デフォルトの名無しさん:2006/09/21(木) 23:19:50
僕は変数宣言に抵抗があります><;
903デフォルトの名無しさん:2006/09/21(木) 23:21:34
同じ名前の構造体やtypedefがあちこちにあるとイラつきます
windowsのヘッダは本当にイヤです
904デフォルトの名無しさん:2006/09/21(木) 23:24:48
おれおれヘッダ
905デフォルトの名無しさん:2006/09/21(木) 23:39:05
僕はWIN32APIに抵抗がある
906デフォルトの名無しさん:2006/09/21(木) 23:39:51
>>905
Win16APIならいいのか?
907デフォルトの名無しさん:2006/09/21(木) 23:43:20
たまにLinuxやるとイライライライラしてWin32が恋しくなる。
908デフォルトの名無しさん:2006/09/21(木) 23:45:35
Win32APIは引数がおおすぎんだよコンチクショー!
909デフォルトの名無しさん:2006/09/21(木) 23:46:46
LPVOID pReserve
※常にNULLを指定してください
910デフォルトの名無しさん:2006/09/21(木) 23:47:38
>>909
ぬるぽを指定?
911デフォルトの名無しさん:2006/09/21(木) 23:48:54
>>909
それ見るとほっとする。
ああNULLを渡しときゃいいんだって
912デフォルトの名無しさん:2006/09/22(金) 00:17:21
>>908
C++なら再宣言して、その際にデフォルト引数を付けることができるよ。
913デフォルトの名無しさん:2006/09/22(金) 03:31:22
本当に癇癪起こりますね
914デフォルトの名無しさん:2006/09/22(金) 03:32:07
>>913
三国人の方ですか?
915デフォルトの名無しさん:2006/09/22(金) 05:27:07
C++でMFCを使用しないでWin32のみでVS.NET2003とか2005自身が表示している
GUIコントロールなどは利用できないのでしょうか?
※ツールバーとかメニューバーとか・・
Win32だけだと見た目が古くさいコントロールしかつかえないんですが・・
916デフォルトの名無しさん:2006/09/22(金) 05:39:01
とりあえず踊るといいよ
917567:2006/09/22(金) 06:37:29
       ∧_∧
      (´・ω・`)
     (( ( つ ヽ、
       〉 とノ ) ))
      (__ノ^(_)

       ∧_∧
     (ヽ´・ω・`)
      ヽ、   ヽ
       〉   U
       (__)^ヽ__)
918567:2006/09/22(金) 06:38:27
       ∧_∧
      (´・ω・`)
      ノ ⊂ ) ))
    (( ( ヽ'つ〈
      (_)^ヽ__)
            ,.-─- 、
        ∧_,,∧\●/
   /\  (`・ω・´)∩‐
   | ● ⊂     /
   ヽ/ r‐'   /
      `""ヽ_ノ
919デフォルトの名無しさん:2006/09/22(金) 06:51:14
    |┃三 ガラッ
    |┃  ____      ____      ____
    |┃/⌒915⌒\   /  866 \   /⌒567⌒\
    |┃( >)  (<)\/        \/( ●)  (●) \
――‐.|┃:⌒(__人__)⌒::::: \ ⌒   ⌒   \:⌒(__人__)⌒:::::\    えへへっ
    |┃  /| | | | |     |⌒)(__人__) ///  |⌒)|r┬-|     |⌒)  みんなで遊びに来たお!
    |┃  `ー―'´    //         //  `ー'ォ    //
    (⌒ヽ       ̄ /         ̄ /         ̄ /
    |┃ノ       /          /           /
    |┃   つ   <      つ   <       つ   <
    |┃  (::)(::)   ヽ    (::)(::)   ヽ    (::)(::)   ヽ
    |┃/    >  )   /    >  )   /    >  )
    |┃     (__) _)     (__) _)     (__)
920デフォルトの名無しさん:2006/09/22(金) 13:59:05
まだいたのか567 ほんとム板マ板は地獄だぜ
921デフォルトの名無しさん:2006/09/22(金) 15:55:23
922デフォルトの名無しさん:2006/09/23(土) 04:40:38
エディットボックスコントロールについてです。
EM_GETFIRSTVISIBLELINEメッセージで現在の垂直方向のスクロール行位置を取得できますけど
水平方向のスクロール行位置を取得するにはどうすればいいですか?
何をしたいかと言うと、スクロール座標を保存しておいて後で
EM_LINESCROLLメッセージを使ってその座標を再び表示したいのです。
923デフォルトの名無しさん:2006/09/23(土) 10:25:14
GetScrollInfoでいいんじゃないんかな。知らんけど。
924デフォルトの名無しさん:2006/09/23(土) 11:02:19
>>923
GetScrollInfo&SetScrollInfoでスクロールバーを直接操作してもエディットボックスは内部でスクロール座標を保存してるみたいで
更新したりすると元の位置に戻されるみたいです。
どうやらEM_LINESCROLLを使わないとダメっぽいのですが・・・
925デフォルトの名無しさん:2006/09/23(土) 12:44:18
>>924
EDITコントロールの内部のスクロール処理はWM_VSCROLL,WM_HSCROLLを捕まえて
行われているので、SetScrollInfo()じゃダメ。
取得するときはGetScrollInfo()を使って
設定するときはWM_VSCROLL,WM_HSCROLLをSendMessage()してやればいい。

926デフォルトの名無しさん:2006/09/23(土) 13:09:19
>>925そうなのですか。やってみます。ありがとうございました。
927デフォルトの名無しさん:2006/09/23(土) 15:31:10
WIN32APIが分かる書籍でお勧めのものは何がありますか?
928デフォルトの名無しさん:2006/09/23(土) 15:31:41
猫でも行っとけ
929927:2006/09/23(土) 15:32:56
猫はもう読みました
930567:2006/09/23(土) 15:43:51 BE:286702463-2BP(0)
567が930get
931デフォルトの名無しさん:2006/09/23(土) 15:45:56
>>927
MSDNは読んだ?
君が解らないWin32APIは、どんな分野なの?

個人的には、APIが「解る」「解らない」という分類自体が、
俺には解らないんだが。w
必要なら調べて、その通りに書けば、大体動くだろ?
932927:2006/09/23(土) 15:50:08
>>931
ありがとうございます
msdnというもので調べてみます

自分はどの分野が分からないというわけではなくもう少し詳しいことに関して読んで
みたいと思っただけです
933デフォルトの名無しさん:2006/09/23(土) 16:20:15
MSDNは英語版読んだ方がいいよ。詳しく書いてある。
934デフォルトの名無しさん:2006/09/23(土) 16:23:17
APIは基本的に時間を取って学ぶものではない。
数が多すぎて現実的ではない。
必要になったらそのたびに調べる。頻繁に使うようなら自然と覚えていく。
935デフォルトの名無しさん:2006/09/23(土) 17:49:46
プログラム書くだけならアホでもできる。
使い物になるソフトを作るのはアホにはできない。
936デフォルトの名無しさん:2006/09/23(土) 18:10:28
>>935
つまり使い物になるプログラムを書くやつはあほではないということか?
937デフォルトの名無しさん:2006/09/23(土) 18:18:57
俺はアホではないので安心した
938デフォルトの名無しさん:2006/09/23(土) 18:24:12
できればただ使い物になればよいというだけでなく、
なるべく読みやすいコードを書くように心がけてほしい。
939デフォルトの名無しさん:2006/09/23(土) 19:12:54
俺読みやすいコード書けてないや
940デフォルトの名無しさん:2006/09/23(土) 20:04:31
オレも…でも、オープンソースのコード見ても大して読みやすくないから
いいと思うんだが…
941デフォルトの名無しさん:2006/09/23(土) 20:10:12
潔癖性の人は部屋の片付けができないからね
942デフォルトの名無しさん:2006/09/23(土) 20:10:25
激しく脱線してるなこのスレ
943567:2006/09/23(土) 20:43:58
(´∀`)呼んだ?
944567:2006/09/23(土) 22:55:24 BE:95567832-2BP(0)
↑呼んでないよ
945デフォルトの名無しさん:2006/09/23(土) 22:57:00
ダメです。
946デフォルトの名無しさん:2006/09/24(日) 02:48:25
WM_TIMERをクリティカルセクションで保護出来ないのですが何故ですか?
case WM_TIMER:
EnterCriticalSection(&hoge);
MessageBox(...);
LeaveCriticalSection(&hoge);
break;
メッセージボックスは一つずつ表示されると期待したのですが、次々と表示されてしまいます。
良い解決方法を教えてください
947デフォルトの名無しさん:2006/09/24(日) 02:51:43
MessageBoxの中でメッセージループが回って、そこから同じスレッドでWM_TIMERに
再入するから。
クリティカルセクションは同一のスレッドなら何度でも獲得できる。
同じスレッドだから同期オブジェクトを使う意味はない。単純なフラグで
判定すれば十分
948デフォルトの名無しさん:2006/09/24(日) 02:53:10
本当にMessageBoxの表示中もタイマを有効にしておく必要があるのでなければ
KillTimer(...);
MessageBox(...);
SetTimer(...);
949デフォルトの名無しさん:2006/09/24(日) 07:13:25
PostMessageで送信したメッセージが処理されるまで待機したいのですがどうすればいいですか?
(SendMessageだとPostMessageとの挙動の違いからかメッセージがうまく送信できないんです)
950デフォルトの名無しさん:2006/09/24(日) 08:45:20
>>949
イベントハンドルを渡す
951デフォルトの名無しさん:2006/09/24(日) 09:40:12
>>950
メッセージはよそ様のウィンドウに送信しています。
CreateEventで作成したイベントでウェイトするということですか?
しかしどのように・・・?
952デフォルトの名無しさん:2006/09/24(日) 09:47:08
イベントでも待てば。
953デフォルトの名無しさん:2006/09/24(日) 11:43:11
Win32APIの関数どれだけあるんだよ!!

覚えるのマジでしんどい('A`)
954デフォルトの名無しさん:2006/09/24(日) 11:49:12
全部覚えるつもりかw
955デフォルトの名無しさん:2006/09/24(日) 11:50:47
Aから順に覚えていったら?
Get〜やSet〜で死ぬと思うけどw
956デフォルトの名無しさん:2006/09/24(日) 11:51:38
949はWM_KEYDOWNを他のアプリケーションに対して送ろうとしていると予想。
俺もメッセージが処理されるのを待つ方法があるなら知りたいな。

>>953
覚える必要は無い。使うときに調べながら使うもの。
でも、どんなAPIがあるのかは一通り全てに目を通しておくべき。
957デフォルトの名無しさん:2006/09/24(日) 12:17:26
>よそ様のウィンドウ
こんなんじゃ分からない。
状況によってCEvent, CSemaphore, CMutex, CCriticalSection のいずれかを選ぶ。

MSDN - マルチスレッド : 同期クラスの使い分け を参照
958デフォルトの名無しさん:2006/09/24(日) 12:23:52
957はMFCだけどAPIにもだいたい同じようなのがある。
959デフォルトの名無しさん:2006/09/24(日) 13:21:23
検索 win32api 一覧
960デフォルトの名無しさん:2006/09/24(日) 13:41:44
PostMessageで送る先のウィンドウは自身で作ったプログラムではない
(のでソースをいじれない)ということは考えられないだろうか?
961デフォルトの名無しさん:2006/09/24(日) 14:12:27
よそ様のウィンドウ、って言ってるからそうなんだろう。
962デフォルトの名無しさん:2006/09/24(日) 14:32:16
よそ様のプログラムのソースいじる必要なんてないだろ
963デフォルトの名無しさん:2006/09/24(日) 15:08:18
現在のネットワーク使用率調べる方法ある?
タスクマネージャみたいな。
964デフォルトの名無しさん:2006/09/24(日) 16:02:19
パフォーマンスカウンタ
965デフォルトの名無しさん:2006/09/24(日) 21:16:35
オレ、引数までちゃんと覚えてるの、
SendMessage/PostMessage
MessageBox
GetDlgItem
SetWindowPos
ShowWindow
くらいしかないぞ。
あとは必要なときにMSDNで調べるか、VCがツールチップで出してくれるし。
966567:2006/09/24(日) 22:03:05 BE:191135726-2BP(0)
がんばれ
967デフォルトの名無しさん:2006/09/24(日) 22:37:51
OutputDebugStringは余裕で覚えてるな
968デフォルトの名無しさん:2006/09/24(日) 22:50:09
ExitProcess/Threadも単純でわかりやすい。
ただし滅多に使わないけどな。
969デフォルトの名無しさん:2006/09/24(日) 23:03:21
えーとね、IsWindowは覚えてる
970デフォルトの名無しさん:2006/09/24(日) 23:05:56
wsprintf,lstrlen,lstrcatくらいなら
971デフォルトの名無しさん:2006/09/24(日) 23:16:52
GetWindowTextLength なら完璧に覚えてるぜ!
972デフォルトの名無しさん:2006/09/24(日) 23:34:00
オレには……なにも、ない。
973デフォルトの名無しさん:2006/09/24(日) 23:36:14
俺はGetTickCount、timeGetTimeの引数なら完璧に覚えてる。
974デフォルトの名無しさん:2006/09/24(日) 23:40:01
ShowWindowは何とかなるかな。

誰かCreateFont完璧な奴いるか?w
975デフォルトの名無しさん:2006/09/24(日) 23:43:01
CreateFontIndirectなら完璧w。
なお、LOGFONTの中身はさっぱり。

そういえばGetCommandLineもわかりやすい。
976デフォルトの名無しさん:2006/09/25(月) 00:11:03
BitBltは完璧
977デフォルトの名無しさん:2006/09/25(月) 00:16:33
DestroyWindowは完璧

で、何この流れ?
978デフォルトの名無しさん:2006/09/25(月) 00:19:02
Co/OleInitialize/Uninitializeもいいぞ。

IUnknownのメソッドも完璧。
_com_ptr_tとかATL::CComQIPtrで出番ないけどな。

979デフォルトの名無しさん:2006/09/25(月) 00:34:09
そうですか
980デフォルトの名無しさん:2006/09/25(月) 00:42:05
WinMainなら・・・。だれでも最初に見るだろうし
981デフォルトの名無しさん:2006/09/25(月) 00:47:48
むしろint main()で/SUBSYSTEM:WINDOWS。
982デフォルトの名無しさん:2006/09/25(月) 08:15:06
次スレまだぁ?
983(´・д・`)DOn'03 ◇JcpHA18Tqs:2006/09/25(月) 08:37:54
まだ
984デフォルトの名無しさん:2006/09/25(月) 13:03:07
俺が立ててもいいが
985デフォルトの名無しさん:2006/09/25(月) 13:09:21
無理でした
986デフォルトの名無しさん:2006/09/25(月) 13:10:23
じゃあ俺立ててくる
987デフォルトの名無しさん:2006/09/25(月) 13:12:17
お願い
988986:2006/09/25(月) 13:15:52
無理でした('A`)
989567:2006/09/25(月) 13:15:55
はやくしろ
990デフォルトの名無しさん:2006/09/25(月) 13:21:40
991デフォルトの名無しさん:2006/09/25(月) 13:49:55
992デフォルトの名無しさん:2006/09/25(月) 13:50:40
editのスタイルに関して質問です。
ES_NUMBERだと実数が扱えない(-とか.とか)んですが、
実数のみに制限できるスタイルってありますか?
993デフォルトの名無しさん:2006/09/25(月) 14:32:33
ないあるよ
994デフォルトの名無しさん:2006/09/25(月) 15:27:16
ってことは自分で入力制限しないとだめなのか…orz

ありがとうございました
995デフォルトの名無しさん:2006/09/25(月) 15:55:26
あるのかないのかはっきりしなさい
996デフォルトの名無しさん:2006/09/25(月) 15:59:45
ないアルヨ!
997デフォルトの名無しさん:2006/09/25(月) 16:06:53
北斗の拳かよ
998デフォルトの名無しさん:2006/09/25(月) 16:40:15
SHLimitInputEdit
スタイルじゃないし、使ったこと無いけど。
999デフォルトの名無しさん:2006/09/25(月) 16:42:24
>>998
ぐぐったら2件しかないw

とりあえず調べてみます
1000デフォルトの名無しさん:2006/09/25(月) 16:44:09
999
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。