Win32API質問箱 Build84
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/11/29(日) 16:14:56やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
Win32API質問箱 Build83
http://pc12.2ch.net/test/read.cgi/tech/1256891725/
0002デフォルトの名無しさん
2009/11/29(日) 16:16:1082 ttp://pc12.2ch.net/test/read.cgi/tech/1253699773/
81 ttp://pc12.2ch.net/test/read.cgi/tech/1249140049/
80 ttp://pc12.2ch.net/test/read.cgi/tech/1244057140/
79 ttp://pc12.2ch.net/test/read.cgi/tech/1240411224/
78 ttp://pc12.2ch.net/test/read.cgi/tech/1238289377/
77 ttp://pc12.2ch.net/test/read.cgi/tech/1235494464/
76 ttp://pc11.2ch.net/test/read.cgi/tech/1233622578/
75 ttp://pc11.2ch.net/test/read.cgi/tech/1231423602/
74 ttp://pc11.2ch.net/test/read.cgi/tech/1229239827/
73 ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/
72 ttp://pc11.2ch.net/test/read.cgi/tech/1226575789/
71 ttp://pc11.2ch.net/test/read.cgi/tech/1224745158/
70 ttp://pc11.2ch.net/test/read.cgi/tech/1221446107/
69 ttp://pc11.2ch.net/test/read.cgi/tech/1217687038/
68 ttp://pc11.2ch.net/test/read.cgi/tech/1215348804/
67 ttp://pc11.2ch.net/test/read.cgi/tech/1212931246/
66 ttp://pc11.2ch.net/test/read.cgi/tech/1210775622/
65 ttp://pc11.2ch.net/test/read.cgi/tech/1208847084/
64 ttp://pc11.2ch.net/test/read.cgi/tech/1207099291/
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
0003デフォルトの名無しさん
2009/11/29(日) 16:16:3259 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/
58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/
57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/
56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/
55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/
54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/
53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/
51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/
50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/
49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/
41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/
40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/
39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/
38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/
37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/
36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/
35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/
34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/
33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/
32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/
31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
0004デフォルトの名無しさん
2009/11/29(日) 16:16:5129 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
9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
1 ttp://pc.2ch.net/tech/kako/991/991576947.html
0005デフォルトの名無しさん
2009/11/29(日) 16:17:44Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (ISO)
http://www.microsoft.com/downloads/details.aspx?familyid=71DEB800-C591-4F97-A900-BEA146E4FAE1&displaylang=en
●以下のサイトは間違いが多いのでこのスレでは超超超不評です●
http://www.geocities.jp/ky_webid/win32c/
0006デフォルトの名無しさん
2009/11/29(日) 16:22:530007デフォルトの名無しさん
2009/11/29(日) 16:39:13│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0008デフォルトの名無しさん
2009/11/29(日) 16:42:27Windowsプログラマが日本で一番性格が悪いと言われるぞ
0009デフォルトの名無しさん
2009/11/29(日) 16:45:440010デフォルトの名無しさん
2009/11/29(日) 16:52:290011デフォルトの名無しさん
2009/11/29(日) 17:11:400012デフォルトの名無しさん
2009/11/29(日) 17:18:090013デフォルトの名無しさん
2009/11/29(日) 17:19:29どれだけ頭が悪ければ気が済むんだろう?
何も知らないお馬鹿さん。
無知だったのが理解できて良かったね。
これだけ論破されれば少しは反省できたろう。
0014デフォルトの名無しさん
2009/11/29(日) 17:21:15/ \
/ ─ ─\
/ ⌒ ⌒ \
| ,ノ(、_, )ヽ |
\ トェェェイ /
/ _ ヽニソ, く
三. i! ゙ヽ、 Y" r‐!、 ヽ.
三 ヽ. 、 ''´⌒ゝ-‐'" _ィ》 Y!
\_|!_二|一"f , !゙\ 三
〈, l|゙》-i|┴ーi´ / イ ´ i! 三
♪ ゙ー-ニ二__,/ / / 三 ♪
/゙ У / / 三
//,/-‐、 /
i! _{! j!'〈 ♪
/ ,,.ノ \'' ヽ \
〈 ーぐ \ ヽ
゙ー″ 〉ー- 〉
〈___ノ
0015デフォルトの名無しさん
2009/11/30(月) 18:56:130016デフォルトの名無しさん
2009/11/30(月) 20:02:47プログラミング方法を教えていただけないでしょうか。
0017デフォルトの名無しさん
2009/11/30(月) 20:07:37という変数を作ったら「萎えるからこういう変数名はやめてくれ」と言われた
0018デフォルトの名無しさん
2009/11/30(月) 20:11:52waveout
0019デフォルトの名無しさん
2009/11/30(月) 20:15:470020デフォルトの名無しさん
2009/11/30(月) 20:26:11どっかから音源エミュレータ拾ってくるとか。
0021デフォルトの名無しさん
2009/11/30(月) 20:26:230022デフォルトの名無しさん
2009/11/30(月) 20:27:15>8bitPCMじゃなくてFM音源やPSGのことなら
自分でエミュレータを書きたいって話では?
0023デフォルトの名無しさん
2009/11/30(月) 22:45:00ネットブック(XP-home sp3) で動きませんでした。
ところが、こっちにもVS2008をインストールしただけで動作しました。
win32プロジェクトで作成したプログラムは、
特別なランタイムなどを必要としないと思っていましたが、
私は何か勘違いをしているのでしょうか?orz
ゲームのコンフィグ系のプログラムなので、わりと焦っていますorz
0024デフォルトの名無しさん
2009/11/30(月) 22:51:460025デフォルトの名無しさん
2009/11/30(月) 23:42:33おおかたC/C++ランタイムをDLLにしてたんだろ。
そっから先はAPIじゃなくてコンパイラの問題なので該当スレに
0026デフォルトの名無しさん
2009/12/01(火) 01:45:18意味が分からない
0027デフォルトの名無しさん
2009/12/01(火) 01:49:040028デフォルトの名無しさん
2009/12/01(火) 01:56:420029デフォルトの名無しさん
2009/12/01(火) 02:01:19一時的にコードページを英語へ変更する方法を探しています
システムのロケールを変更してしまうと途中で落ちたようなときに元に戻らないので
起動するプロセスのみコードページを変更する方法ってありますか?
0030デフォルトの名無しさん
2009/12/01(火) 03:53:48つまりこういうプログラムでコンソールに 0 と出力されるのが保証されているか?ということです。
wchar_t str[16];
memset(str,0xcc,sizeof(str));
LoadStringW((HINSTANCE)0xdeadbeef,0x12345678,str,_countof(str));//わざと失敗させる
cout<<wcslen(str);
0031デフォルトの名無しさん
2009/12/01(火) 07:08:45ひとつひとつの単語の意味は判るが
どうしてそれが焦りになるのかがわからん
0032デフォルトの名無しさん
2009/12/01(火) 07:11:56memsetせずに呼んでみれば?
0033デフォルトの名無しさん
2009/12/01(火) 07:22:30If the function succeeds, the return value is the number of TCHARs copied into the buffer,
not including the terminating NULL character, or zero if the string resource does not exist.
とは書いてあるな。実際に 0 が返ってくるのか知らんけど。
0034デフォルトの名無しさん
2009/12/01(火) 07:24:010035デフォルトの名無しさん
2009/12/01(火) 08:30:44実行ファイルのStringTableリソースに埋まってるUnicode文字列のアドレスをダイレクトに得る。
見つからなければ空文字列を返す。
例: MessageBoxW(hwnd, _S(IDS_HELP), _S(IDS_TITLE), MB_OK);
という関数を作ればいい。
0036デフォルトの名無しさん
2009/12/02(水) 12:30:24ループしていたり、リンクの部分を除いたり出来ますか
0037デフォルトの名無しさん
2009/12/02(水) 13:56:130038デフォルトの名無しさん
2009/12/02(水) 20:05:20フルパス長や再帰レベルに制限を付けておくとか、そんな感じ?
0039デフォルトの名無しさん
2009/12/02(水) 22:35:06wikiにして、できたやつを誰でもうpしていく形式で。
0040デフォルトの名無しさん
2009/12/02(水) 22:40:231行目と2行目の繋がりが見えないけど、
GCCとBinutilsをクロスコンパイル用にビルドして、
Windows上でLinuxで動く実行ファイルをコンパイルする環境を作ることはできる。
まあスレ違い。
0041デフォルトの名無しさん
2009/12/02(水) 22:49:510042デフォルトの名無しさん
2009/12/02(水) 22:59:26windows apiが標準 = linux, unixから外れているのでそれを保管するんです。
0043デフォルトの名無しさん
2009/12/02(水) 23:00:320044デフォルトの名無しさん
2009/12/02(水) 23:55:08つSubsystem for UNIX-based Applications (旧Services for UNIX)
004542
2009/12/03(木) 00:26:44http://namama.net84.net/?dirent.h
>>44
それでできるんですか。wikiは無意味だったんですか
0046デフォルトの名無しさん
2009/12/03(木) 06:37:110047デフォルトの名無しさん
2009/12/03(木) 08:38:25質問させて頂きます。
たまにサンプルプログラムを見るとAPIの頭に::が付いていることがあります。
有る無しではどう違うんでしょうか?
(例)
MessageBox(...);
::MessageBox(...);
ご回答宜しくお願いします。
0048デフォルトの名無しさん
2009/12/03(木) 08:44:45スレ違い。
0049デフォルトの名無しさん
2009/12/03(木) 09:40:48よくわかんないけど。
0050デフォルトの名無しさん
2009/12/03(木) 09:57:48例えば
::MessageBoxはどのクラスにも属さない関数であるところの
MessageBoxを表し、クラスメソッドと区別する為に
使われたりする。(無名クラスに所属しているという説もあるが)
0051デフォルトの名無しさん
2009/12/03(木) 17:41:51インテリセンスを効かせる為に::を付けてるだけと、どこかのスレで見たことある気がする
完全にうろ覚えだが・・・
0052デフォルトの名無しさん
2009/12/03(木) 17:44:22MFCだとCWnd::MessageBox()と区別するのに必要なこともあるし。
0053デフォルトの名無しさん
2009/12/03(木) 17:49:13俺の書き込みの予感
0054デフォルトの名無しさん
2009/12/04(金) 05:59:26VC6時代が始まった10年以上前から常識ですが
005547
2009/12/04(金) 09:13:50また、携帯から失礼します。
要はC++でいうところのthisポインタと一緒でthisが省略出来るように::を付けても付けなくても動作は一緒ってことですね。
class foo {
private:
int a;
public:
foo() { a = 0; }
~foo() { }
int func1() {
return this->a;
}
int func2() {
return a;
}
};
0056デフォルトの名無しさん
2009/12/04(金) 10:00:01つーかC++スレ行け
0057デフォルトの名無しさん
2009/12/04(金) 10:02:36どして?
0058デフォルトの名無しさん
2009/12/04(金) 10:06:54Delphiを使うメリットとデメリットを考察して、メリットが少ないと判
断する人が多いから。もしくはDelphiを知らないから候補にもならない。
0059デフォルトの名無しさん
2009/12/04(金) 10:12:32メリットが少ないと判断する人が多いのはどして?
か >>58が答えてくれるんで期待
0060デフォルトの名無しさん
2009/12/04(金) 10:35:36Delphiを知らない人はC++も実はたいして知らない人だ
しその逆も言えるのかもな
0061デフォルトの名無しさん
2009/12/04(金) 10:53:30ってのがあるんじゃないのかな。
ところで、ウィンドウ関数内で使うオブジェクトはグローバス変数じゃなくて
やっぱりウィンドウ関数内で static な変数にするのがいいのかな。
その場合、プログラム終了したとき、メモリの解放忘れとか気にしなくていいんだよね?
やっぱり DeleteObject() やらないとだめなのかな。
0062デフォルトの名無しさん
2009/12/04(金) 11:28:26INIT COMMON CONTROL SEX
0063デフォルトの名無しさん
2009/12/04(金) 12:49:09携帯のテンキーで入力のだろうか・・・
0064デフォルトの名無しさん
2009/12/04(金) 12:54:220065デフォルトの名無しさん
2009/12/04(金) 13:11:17ReadDirectoryChangesWで削除・更新を察知できるのですが
削除が判明した時点でファイルが無くなってしまいます。
消される前に、バックアップする方法ありますか。
0066デフォルトの名無しさん
2009/12/04(金) 13:12:35削除の前にはバックアップとか出来ればいいのですが。
これは無理ですよね。
0067デフォルトの名無しさん
2009/12/04(金) 13:14:520068デフォルトの名無しさん
2009/12/04(金) 13:15:41場所食うのがいやなんです。
Em、秀丸のバックアップのように更新前だけ保存する方法無いですか。
0069デフォルトの名無しさん
2009/12/04(金) 14:06:15APIを何だと思ってるんだ?
0070デフォルトの名無しさん
2009/12/04(金) 14:08:340071デフォルトの名無しさん
2009/12/04(金) 14:13:16非公開APIの8割型以上は、作成者内輪以外の呼び出しは危険
コンテキスト依存なんで。
公開APIも仕様が100%公開されているわけでもないので
100%の安全性の保証は無いものと思うべし。
断片情報だけが公開されたものを公開APIというのも何だか
な〜だが。APIを何だと思ってた?
0072デフォルトの名無しさん
2009/12/04(金) 14:13:21自動で別フォルダにコピーしてゴニョゴニョしたい
とかそういう理由か?
0073デフォルトの名無しさん
2009/12/04(金) 14:17:03オープンソースにしない限り、"公開"APIといえないとでも思ってるのか
どれだけ阿呆なんだ?
0074デフォルトの名無しさん
2009/12/04(金) 14:21:21公開 API は公開された情報の範囲内で使用する
こんなの 常 識 です
0075デフォルトの名無しさん
2009/12/04(金) 15:34:03レポート形式で使用しています。(VC2005)
(1)
リスト行数100で1ページ表示5行で
現在10ページ目の1番目の項目が選択されています。
この状態で一度全ての項目を削除し再入力して
新たに10ページ目の1番目の項目を選択させたいので
SetItemStateなどで選びなおしました。
しかし、10ページ目の1番目が選択されているようですが
表示は1ページ目になっています。
これを10ページ目にしたくてSetScrollPosをしましたが
うまくいかず、表示が変になります
どうやったら10ページ目の表示にできるのでしょうか?
(2)
拡張スタイルにLVS_EX_GRIDLINESを使用していますが
スクロールしたときにグリッドラインの残像が残ってしまいます
この残像を綺麗にけすのはどうしたらいいのでしょうか?
0076デフォルトの名無しさん
2009/12/04(金) 15:52:13CreateProcessの戻り値がOK(成功)でも
実際のプロセスの起動が30分後になるよう
なケースが無いとも言い切れない。
0077デフォルトの名無しさん
2009/12/04(金) 18:27:18スクロールが初期位置まで戻ってしまうんですが、
この時どういったメッセージがポストされているのでしょうか?
WM_SETTEXT
(何か)
WM_PAINT
という順で処理されていると思うのですが・・・
007847
2009/12/04(金) 19:27:18すいません、違うんですか
>>63
テンキーです、分け合ってインターネット繋がってないので携帯オンリーで2chやってます。
自分の無知、勉強不足でスレを汚してしまいすいませんでした。
もう一度、レスを参考にしっかり調べ直してから出直してきます。
レス下さった方々ありがとうございました。
0079デフォルトの名無しさん
2009/12/04(金) 20:08:46WM_SETTEXTの内部処理の途中で戻っているだけだろ。
別のメッセージがポストされたとかいう話じゃない。
一旦中身をクリアしていると考えれば、初期位置に戻っても不思議じゃない。
0080デフォルトの名無しさん
2009/12/04(金) 22:40:39どうも。
解決しました。
0081デフォルトの名無しさん
2009/12/04(金) 22:47:54>実際のプロセスの起動が30分後になるよう
CreateProcessから戻ってきた時点でまだ起動してないと思ってるのか。
どれだけ頭が悪ければ気が済むんだろう?
0082デフォルトの名無しさん
2009/12/04(金) 23:14:58立派なスケジューリングでありプロセスは起動されてる
ことになるな
0083デフォルトの名無しさん
2009/12/04(金) 23:29:00= OSのプロセス生成処理は完了している
「実際のプロセスの起動」って何だよ
画面にウィンドウ等が出るまで実際にプロセスは起動してないとでも言いたいのか
0084デフォルトの名無しさん
2009/12/04(金) 23:42:35テンキーでソースコードって打てるものなのか?
0085デフォルトの名無しさん
2009/12/05(土) 00:10:41プロセスハンドルが作られて実行が確約さてれいても、
そのプロセスのコードが本当にいつ実行されるかは「勝手でしょ?」な話。これはWindowsに限らずUnix でも同じようなこと
が言えるけど...
0086デフォルトの名無しさん
2009/12/05(土) 00:23:12この時点がプロセスの起動だろ
0087デフォルトの名無しさん
2009/12/05(土) 00:30:18なって、実行直前スクリーニングとかが行われると
したらシステムがビジーな場合やデータダウンロード
が必要な場合とかには、実プロセス実行まで相当待たされる
ってことは現実問題ありそう。
0088デフォルトの名無しさん
2009/12/05(土) 00:34:33ただしいつ"実行"されるかは未知数
つまり>>76がバカ
0089デフォルトの名無しさん
2009/12/05(土) 00:47:45実行まで担保しないのはAPIの名前から読んで字の如く
0090デフォルトの名無しさん
2009/12/05(土) 00:54:24CreateEvent → Eventオブジェクトを生成する
CreateFile → Fileオブジェクトを生成する
CreateProcess → Processオブジェクトを生成する
これを理解して無いとCreateProcessで実行云々とか
既存ファイルをオープンする場合でも"Create"Fileなんて変だ
などと頓珍漢な発言をする。
0092デフォルトの名無しさん
2009/12/05(土) 07:19:080093デフォルトの名無しさん
2009/12/05(土) 08:33:51と直接の対応はない。あくまでもDLL内部やドライバなど
で管理する情報のID。
これを理解して無いとCreateProcessでファイル作成云々とか
既存ファイルをオープンする場合でも"Create"Processなんて変だ
などと頓珍漢な発言をする。
0094デフォルトの名無しさん
2009/12/05(土) 09:30:36拡張エラー情報を取得するにはGetLastErrorを使え、みたいな説明だけでは不十分。
0095デフォルトの名無しさん
2009/12/05(土) 09:33:10バージョン依存。しかもマイナーバージョンレベルでコロコロ
変わる筈。だから書かないし書けない。そういうところがあるだろな
0096デフォルトの名無しさん
2009/12/05(土) 09:40:35例えば
ERROR_NOT_ENOUGH_MEMORY
ERROR_OUTOFMEMORY
メモリ不足のときにどっちが設定されるんだ?
0097デフォルトの名無しさん
2009/12/05(土) 10:01:220098デフォルトの名無しさん
2009/12/05(土) 13:00:110099デフォルトの名無しさん
2009/12/05(土) 13:05:24必要ないよ
お前が分かってないだけ
0100デフォルトの名無しさん
2009/12/05(土) 13:12:590101デフォルトの名無しさん
2009/12/05(土) 13:18:070102デフォルトの名無しさん
2009/12/05(土) 18:31:34return BOOL;
???
0103デフォルトの名無しさん
2009/12/05(土) 18:44:140104デフォルトの名無しさん
2009/12/05(土) 18:46:43VirtualAllocで取った奴ならVirtualProtect使えるが
0105デフォルトの名無しさん
2009/12/05(土) 18:50:210106デフォルトの名無しさん
2009/12/05(土) 19:00:430107デフォルトの名無しさん
2009/12/06(日) 04:04:34ありがとうございます
詳しく調べてきます
アトミック操作で隠すのは気づきませんでした
>>106
秘密鍵をできるだけ見られたくないので、nProもどきをカーネルドライバ等作らずできないかと思って聞きに来ました
0108デフォルトの名無しさん
2009/12/06(日) 10:37:56生のデータがメモリ中に存在してる限りそんな物は不可能だし無意味
仮想PC上でソフトを動かしてホストOSからメモリをダンプするとか方法は幾らでもある
0109デフォルトの名無しさん
2009/12/06(日) 12:01:120110デフォルトの名無しさん
2009/12/06(日) 14:04:11マウス系統のメッセージが行くようにするにはどうすればいいでしょうか?
やりたいのはデスクトップの最前面に常にキャラクターを表示し、マウスが重なってるときだけ半透明にしたいんです。
それでも、マウス系メッセージは裏のウィンドウに飛ばして普通に操作できるようにしたい。
今のところWS_EX_TRANSPARENTで試しましたが、一度これを設定してしまうと
マウスがウィンドウから退いた時にそのイベントを受け取れなくて困っています・・・。
0111デフォルトの名無しさん
2009/12/06(日) 14:17:22透明度の制御はタイマでマウスカーソルの現在位置を取得する方法でいったな。
時計だったからどのみち一定時間ごとに書き換える必要があったし。
まあ、一切マウスでの操作ができなくていいならそんな感じでいいんじゃね
0112デフォルトの名無しさん
2009/12/06(日) 14:25:01(フックとか調べちゃったけどなんか上手くできる気がしてなかったので助かりました^^;)
0113デフォルトの名無しさん
2009/12/06(日) 23:08:51お前らいつもこのめんどくささどう解消してる?
0114デフォルトの名無しさん
2009/12/06(日) 23:14:36そんな関数使ったことないから分かりません。
0116デフォルトの名無しさん
2009/12/07(月) 00:39:450117デフォルトの名無しさん
2009/12/07(月) 00:50:200118デフォルトの名無しさん
2009/12/07(月) 00:53:49CreateWindowExは引数にセットって、なんか統一感無くて気持ち悪くないか?(*;;^^;;;;*
0119デフォルトの名無しさん
2009/12/07(月) 06:56:460120デフォルトの名無しさん
2009/12/07(月) 10:40:220121デフォルトの名無しさん
2009/12/07(月) 11:10:10窓から女の子の裸を覗くことが出来て、下には小さな
窓が。穴から万札を投げ込んから窓にティンポ
を入れると気持ちイイことしてくれるって奴
これと似たところあるって?
決して無いよ。
大抵女の子じゃなくておばあさんで、ティンポも
マイクロソフト状態を保ったままで速攻逃げ出すのが
常だった
0122デフォルトの名無しさん
2009/12/07(月) 15:37:330123デフォルトの名無しさん
2009/12/07(月) 15:40:11今時って言うのが意味がワカラン、何が今時なの?
0124デフォルトの名無しさん
2009/12/07(月) 15:43:050125デフォルトの名無しさん
2009/12/07(月) 16:31:520126デフォルトの名無しさん
2009/12/07(月) 16:36:55どこ見てもWin98の頃の情報ばっか
古いわ間違ってるわ全然役に立たないのに検索で上位に来てウザイ
0127デフォルトの名無しさん
2009/12/07(月) 16:52:340128デフォルトの名無しさん
2009/12/07(月) 17:06:480129デフォルトの名無しさん
2009/12/07(月) 17:21:450130デフォルトの名無しさん
2009/12/07(月) 17:32:21VC++だってダイナミックリンクにすればランタイムに依存するのは一緒
0131デフォルトの名無しさん
2009/12/07(月) 17:53:150132デフォルトの名無しさん
2009/12/07(月) 17:56:250133デフォルトの名無しさん
2009/12/07(月) 18:00:070134デフォルトの名無しさん
2009/12/07(月) 18:21:46個人ゆーざーでXPのやつなんていくらでもいる
0135デフォルトの名無しさん
2009/12/07(月) 18:22:120136デフォルトの名無しさん
2009/12/07(月) 18:46:310137デフォルトの名無しさん
2009/12/07(月) 19:06:100138●
2009/12/07(月) 19:16:430139デフォルトの名無しさん
2009/12/07(月) 20:16:550140デフォルトの名無しさん
2009/12/07(月) 20:45:380141デフォルトの名無しさん
2009/12/07(月) 20:48:370142113
2009/12/07(月) 21:47:31MSDN会員期限2月までなんだけど死んで良いかな・・
0143デフォルトの名無しさん
2009/12/07(月) 21:52:41正直どうでもよくなってきた。最近。
0144デフォルトの名無しさん
2009/12/07(月) 22:09:330145デフォルトの名無しさん
2009/12/07(月) 22:58:37Win32でそういうソフト作ってるがAPIの遅延ロードの山で大変だよ・・・
0146デフォルトの名無しさん
2009/12/07(月) 23:40:32#define _WIN32_WINNT 0
#define _WIN32_IE 0x200
こんな制限だと古臭いソフトしか作れんだろ
0147デフォルトの名無しさん
2009/12/08(火) 01:10:330148デフォルトの名無しさん
2009/12/08(火) 02:12:04コンパイラ側でこの機能は実装されてはいないのでしょうか?
STRICTを定義する手法については今知ったので、今まで作ったプログラムに
そういったところで危ない記述がされているのではないかと不安です。
0149デフォルトの名無しさん
2009/12/08(火) 07:35:40NO_STRICTが宣言されていない限り勝手にSTRICTは定義される。
STRICTがどうのこうのというのはWin16時代の話じゃなかったかなあ。
0150デフォルトの名無しさん
2009/12/08(火) 08:06:040151デフォルトの名無しさん
2009/12/08(火) 12:14:250152デフォルトの名無しさん
2009/12/08(火) 13:12:570153デフォルトの名無しさん
2009/12/08(火) 14:21:320154デフォルトの名無しさん
2009/12/08(火) 14:31:180155デフォルトの名無しさん
2009/12/08(火) 14:46:05動作のアプリ開発で本当に完成度を高めたいというので
あればは未だVC6が最高と。(.NETは難しいので
発注者がリスクヘッジの為に必ずと言って良いほど
Webアプリ版も作り、そちらのほうが開発の進捗が
解りやすいので、結局大抵ポシャる)
ただVC6はただでさえ難しいC++のWindows版を
扱うわけで新参者が入れる世界じゃなくなってるし
新参者も激減してる。
0156デフォルトの名無しさん
2009/12/08(火) 15:04:48最新cpuに対応しつつ、過去のcpu用コードも埋め込める。
過去用部分ですら、vc6を上回るだろ。
0157デフォルトの名無しさん
2009/12/08(火) 15:06:55いらんツールから撤退してるだけ。vc6で可能なことはvc2008で出来る
わざわざいらんツール使うのが変
0158デフォルトの名無しさん
2009/12/08(火) 15:11:54なんか感慨深い
0159デフォルトの名無しさん
2009/12/08(火) 15:25:48apiをじかに呼び出しまくる案件はまずないと思う
基本的に仕事に求められるのがスピードと安定性だから
実績のあるベンダーのライブラリを使うことが多い
案件の応募条件にライブラリの実務経験が問われるくらいだから
大量のapiを覚えるよりライブラリの使い方を覚えたほうがいいのが実際のところ
Advenced Windowsで覚えたapiもフリーソフトを作ったときには役に立ったが
仕事で役に立ったと実感したことはない
0160デフォルトの名無しさん
2009/12/08(火) 15:29:23これで開発してコードをC++にコンバート出来ればいいと思う。
0161デフォルトの名無しさん
2009/12/08(火) 15:31:400162デフォルトの名無しさん
2009/12/08(火) 15:36:20これは開発効率良いよ。
コンパイルがC++コンパイラの50倍は速いな。
あと標準でいろいろincludeファイルが付いてて
中身もC++より記述が簡単で手を加えることも出来る。
0163デフォルトの名無しさん
2009/12/08(火) 15:43:540164デフォルトの名無しさん
2009/12/08(火) 15:45:19サンプル 拡張子はexe
http://kineko.dyndns.org/~touhou/up/source/up3156.jpg
#include "mod_menu.as"
oncmd gosub *OnCommand, WM_COMMAND ; メッセージ割り込み
; サブメニュー作成
newmenu hfilemenu,1
addmenu hfilemenu, "開く(&O)", 1
addmenu hfilemenu, "終了(&Q)", 2
; トップメニュー作成
newmenu hmenu,0
addmenu hmenu, "ファイル(&F)", hfilemenu, 0x10
applymenu hmenu
stop
; メッセージの処理
*OnCommand
cmd=wparam & 0xFFFF
if cmd=1
dialog "メニューを選択しました。"
if cmd=2 {
end }
return
0165デフォルトの名無しさん
2009/12/08(火) 15:50:44せいぜいWin版ゲーム関係だろうなぁ
まあDirectXも絡むんだろうけど
いやあ、仕事でそういうの無くって温くてつまらないんだよね…。
一度でいいから身震いするぐらいコアなwindowsプログラム組みたいな
趣味じゃなくて仕事でね
0166デフォルトの名無しさん
2009/12/08(火) 15:51:38MessageBox(0,"aaaaa",0,0)だけ書ければOK
0167デフォルトの名無しさん
2009/12/08(火) 15:56:170168デフォルトの名無しさん
2009/12/08(火) 16:03:34内輪でも無い人間にはまともに相手できたものじゃない池沼さん
扱ってる位の感覚でよろ
0169デフォルトの名無しさん
2009/12/08(火) 16:15:010170デフォルトの名無しさん
2009/12/08(火) 16:17:230171デフォルトの名無しさん
2009/12/08(火) 16:18:29こんな馬鹿丸出しの言語よく使えるな
0172デフォルトの名無しさん
2009/12/08(火) 16:24:420173デフォルトの名無しさん
2009/12/08(火) 16:42:060174デフォルトの名無しさん
2009/12/08(火) 18:40:38で、メインの処理やWin32APIが必要なところをC++でDLLで作る、いいとこ取りです。
0175デフォルトの名無しさん
2009/12/08(火) 20:34:160176デフォルトの名無しさん
2009/12/08(火) 20:39:210177デフォルトの名無しさん
2009/12/08(火) 21:16:040178デフォルトの名無しさん
2009/12/08(火) 21:54:150179デフォルトの名無しさん
2009/12/08(火) 21:55:270180デフォルトの名無しさん
2009/12/08(火) 23:21:07API混ぜるとロクなこと無いと
0181デフォルトの名無しさん
2009/12/09(水) 00:01:07VB6にシフト演算の処理が無いみたいで
0182デフォルトの名無しさん
2009/12/09(水) 00:05:54Dim shr(65536) as integer,shl(65536) as integer
for i=1 to 65536
shr(i)=i ¥ 2
next
for i=1 to 65536
shl(i)=i*2
next
とか(文法適当だからね)
0183181
2009/12/09(水) 00:12:150184デフォルトの名無しさん
2009/12/09(水) 00:16:46間違っとるぞw
0185デフォルトの名無しさん
2009/12/09(水) 00:43:38WDKにしか載っていないような奴だし、そこでも既にObsolute扱い。
0186デフォルトの名無しさん
2009/12/09(水) 00:55:09Int64ShllMod32
0187デフォルトの名無しさん
2009/12/09(水) 10:10:32加減乗除のAPIはありますか?と同レベル
0188デフォルトの名無しさん
2009/12/09(水) 10:32:49それがVBで使えるとは限らない。APIという用語が拡大解釈されて久しい
0189デフォルトの名無しさん
2009/12/09(水) 11:34:480190デフォルトの名無しさん
2009/12/09(水) 11:36:140191デフォルトの名無しさん
2009/12/09(水) 13:44:300192デフォルトの名無しさん
2009/12/09(水) 20:46:33ビューワアプリを作っています。
仕様としては、
A: 対象ファイルをアプリexeにD&Dする
B: .xxxファイルをビューワアプリに関連付けして、ダブルクリックする
AあるいはBの操作によって、ビューワアプリはWinMain関数のコマンドライン引数の
ファイルパスを見て、それをオープンし、内容を読み取り・表示する、という算段です。
Aに関しては動作するようにできましたが、
Bに関しては、うまく動作してくれません・・・
MessageBoxを使って、ファイルオープン直前に、ファイルパスがどのようになっているかを
表示させてみましたが、Aの時と同様、何ら問題がありません。
AのケースとBのケースとで、Win32apiレベルの違いは何かあるのでしょうか?
それをヒントに原因究明と対策を考えたいと思います。
よろしくお願いします。 m(_ _)m
0193デフォルトの名無しさん
2009/12/09(水) 20:53:57hoge.exe "%1" って登録してある?
0194192
2009/12/09(水) 20:58:00いえ、試したパスには空白は含まれていませんでした。
>hoge.exe "%1" って登録してある?
すみません、"%1"とはどういうことでしょうか??
登録というのは・・・??
分からないことばかりですみません。
0195デフォルトの名無しさん
2009/12/09(水) 21:21:29関連づけすると、レジストリにそういう風に登録されるのよ。
たまに、ダブルクォートが付かない形で登録されてて、空白を含むパスで動かないと。
うまく動作しない、ってことだけど、その辺もう少し具体的に説明したほうがいいよ。
0196192
2009/12/09(水) 21:37:15そういうことでしたか。
ありがとうございます。
うまく動作しないということの詳細ですが、
表示はDirectXのAPIを使って行っています。
その表示が初っ端から出てこず、Windowのグレーの背景のままで、
アプリが固まって操作を受け付けなくなります。
こうなると、タスクバーで右クリック->「閉じる」とするか、タスクマネージャで終了を指示するなどして、
強制終了させるしかなくなります。
ファイルの読み込みはwhile(1)でまわして行い、区切りのトークンが得られたらbreakで
抜けるようにしています。
やはりファイルの読み込みがうまくいかず、そのwhile(1)から抜けられないのでは・・・
明日、会社でもうちょっと調べてみます。
VC++上でデバッグできないので、しんどいですが・・・ orz
0197デフォルトの名無しさん
2009/12/09(水) 21:47:05一緒のはずなんだけどな。
0198デフォルトの名無しさん
2009/12/09(水) 21:50:00うっかりバッファリングで吐き出し損ねないように注意。
0199デフォルトの名無しさん
2009/12/09(水) 22:05:16明日の朝になればあっさり解決!
と言うパターンになりそうだな
0200192
2009/12/09(水) 22:14:37はい、IDE上のオプションで引数を与えてシミュレーションして確認しましたし、
ファイルをアプリにD&Dしての起動ではうまくいっています。
関連付けでファイルダブルクリックでもいっしょですよね・・・
(引数も同じものがきているのを確認していますし)
>>198
なるほど。
ログファイル出力も検討します。
>>199
そうなることを期待しますw
0201デフォルトの名無しさん
2009/12/09(水) 22:16:11コードの問題か、他所かは判明する。
0202デフォルトの名無しさん
2009/12/09(水) 22:17:45ロング、ショートとか。括弧の有無とか。
DDのときだけ違う形式とかあるな。
0203デフォルトの名無しさん
2009/12/09(水) 22:23:470204デフォルトの名無しさん
2009/12/09(水) 22:26:03送ってるとかだろ。
0205デフォルトの名無しさん
2009/12/09(水) 22:27:34これがバグの元
コマンドライン引数は__argcと__targvで解釈しないとうまくいかないよ
0206デフォルトの名無しさん
2009/12/09(水) 22:29:280207デフォルトの名無しさん
2009/12/09(水) 22:57:23そんなことすら分からない頭の悪さはどうしようもないな。
0208デフォルトの名無しさん
2009/12/09(水) 22:59:170209デフォルトの名無しさん
2009/12/09(水) 23:00:230210デフォルトの名無しさん
2009/12/09(水) 23:01:590211デフォルトの名無しさん
2009/12/09(水) 23:02:450212デフォルトの名無しさん
2009/12/09(水) 23:50:59シェルっていうくらいだからなんかExplorerとかに依存してるか、ないのかなとか?
サービスはExplorerより先に起動しますし。
0213デフォルトの名無しさん
2009/12/09(水) 23:54:02関連付けの時にDDEを使うにチェックが入ってるとかは?
関係ない?
0214デフォルトの名無しさん
2009/12/10(木) 00:58:02全然大丈夫
0215デフォルトの名無しさん
2009/12/10(木) 11:38:41Aというクラス内でウィンドウを作成し、他にクラスBがある
クラスBは、クラスAのインスタンスは知らないけれど
クラスA内で作成されたウィンドウのハンドルは知っている
以上の条件で、クラスBからクラスAのインスタンスを取得
する方法はないだろうか?
0216デフォルトの名無しさん
2009/12/10(木) 11:44:520217デフォルトの名無しさん
2009/12/10(木) 11:48:010218デフォルトの名無しさん
2009/12/10(木) 11:53:06よくわかんないけど。
独自のメッセージって遅れるのかな
0219デフォルトの名無しさん
2009/12/10(木) 12:51:350220デフォルトの名無しさん
2009/12/10(木) 12:58:200221デフォルトの名無しさん
2009/12/10(木) 13:00:02この程度で無理に回答しなくていいよ。
0222デフォルトの名無しさん
2009/12/10(木) 14:13:47なんて無茶苦茶な・・・
0223デフォルトの名無しさん
2009/12/10(木) 14:58:40コマンドライン引数文字列の文字セットで W と A の差に嵌っているとか?
0224デフォルトの名無しさん
2009/12/10(木) 15:01:01関連付けの仕方が間違ってるとか無い?
フォルダオプションとか開いて確認してみたの?
0225デフォルトの名無しさん
2009/12/10(木) 15:08:07WinMain関数第3引数を使うのが悪い
0226デフォルトの名無しさん
2009/12/10(木) 15:12:080227デフォルトの名無しさん
2009/12/10(木) 15:16:220228デフォルトの名無しさん
2009/12/10(木) 15:26:02そこでがんばって WinMain の引数作って WinMain 呼び出ししてる (CRTEXE.c / mainCRTStartup)
0229デフォルトの名無しさん
2009/12/10(木) 15:31:430230デフォルトの名無しさん
2009/12/10(木) 15:41:58コマンドライン文字列は__argcと__targvで良いし
ShowWindowにはSW_SHOWDEFAULTで良いし
4つも引数あるのに全くもって無用の長物だよなw
0231デフォルトの名無しさん
2009/12/10(木) 15:44:490232デフォルトの名無しさん
2009/12/10(木) 15:47:17ウィンドウメッセージを使った他アプリケーションとのデータ交換
0233デフォルトの名無しさん
2009/12/10(木) 16:06:34作るのって簡単でしょうか?
0234デフォルトの名無しさん
2009/12/10(木) 16:09:570235デフォルトの名無しさん
2009/12/10(木) 16:12:500236デフォルトの名無しさん
2009/12/10(木) 16:20:45テキストエリアにその文字が追加されていくようなプログラムって
非公開技術なの?(やさしいHTMLとかいう名のエロ本で読んだことあるような..)
0237デフォルトの名無しさん
2009/12/10(木) 16:24:43うんこだけしたいのにおしっこも出ちゃうのとは少し違う
0238デフォルトの名無しさん
2009/12/10(木) 16:26:18え?そんなの簡単じゃん
0239デフォルトの名無しさん
2009/12/10(木) 16:29:23公開技術なわきゃないだろ
0240デフォルトの名無しさん
2009/12/10(木) 16:39:31スクリーンキーボードをクリックしたらカレントがスクリーンキーボードに移るから
一つ前にカレントだったアプリケーションを記憶しておき
それにSendKeysで文字送ればええんとちゃう?APIいらなくない?
0241デフォルトの名無しさん
2009/12/10(木) 16:41:56SetKeyboardState
SendInput
0242デフォルトの名無しさん
2009/12/10(木) 16:47:240243デフォルトの名無しさん
2009/12/10(木) 17:02:310244デフォルトの名無しさん
2009/12/10(木) 17:13:320245デフォルトの名無しさん
2009/12/10(木) 17:28:070246233=236
2009/12/10(木) 17:50:280247デフォルトの名無しさん
2009/12/10(木) 18:00:38DOM経由でいじればいいだけのこと。
ややスレ違い。
http://msdn.microsoft.com/en-us/library/aa741682.aspx
http://msdn.microsoft.com/en-us/library/ms535904.aspx
0248デフォルトの名無しさん
2009/12/10(木) 20:18:170249デフォルトの名無しさん
2009/12/10(木) 21:02:40自分で作る前に既存のものを研究しとけ
0250デフォルトの名無しさん
2009/12/10(木) 21:18:150251192
2009/12/10(木) 21:49:51・やはりファイル読み込みのwhile(1)ループでハマってしまっていた
↓
・CreateFile関数の戻り値を調べると-1(失敗)に
↓
・GetLastErrorでエラーの意味を取得すると123が得られた
・意味は「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています」
↓
・CreateFileに与えるファイル名を改めてよく見てみると・・・
なんと、ダブルクリックで開いた場合は、パスが""で囲まれていて、
その他D&D等、成功していたときは囲まれていなかった!
(昨日は動揺のためか、気付けなかった・・・ orz)
↓
・""を取り除いて与えるようにしたら、ダブルクリックでも正常動作!感動した!
ということでした。
何でダブルクリックで開いたときは""が付くんでしょうね^^;
みなさん、たくさんのアドバイスを下さってありがとうございました!
0252デフォルトの名無しさん
2009/12/10(木) 21:52:040253デフォルトの名無しさん
2009/12/10(木) 22:03:41CommandLineToArgvWでも使っとけ。
0254デフォルトの名無しさん
2009/12/10(木) 23:25:36\以外にも全角変換できない文字ってあんのかな?
0255デフォルトの名無しさん
2009/12/10(木) 23:37:59だから__argcと__targvを使えと散々出てるだろが
どうせ今度は複数ファイルをD&Dした時にハマって質問するんだろ
0256デフォルトの名無しさん
2009/12/11(金) 08:30:270257デフォルトの名無しさん
2009/12/11(金) 10:16:53if(INVALID_HANDLE_VALUE == CreateFile(...))
{
while(1);
}
0258デフォルトの名無しさん
2009/12/11(金) 11:44:20成功したハンドルはどこにも保存しないのか
0259デフォルトの名無しさん
2009/12/11(金) 12:50:12if(INVALID_HANDLE_VALUE == CreateFile(...))
{
while(1);
}
else
{
int i = 0;
while(++i)
{
CloseHandle((HANDLE)i);
}
}
0260デフォルトの名無しさん
2009/12/11(金) 17:54:240261デフォルトの名無しさん
2009/12/11(金) 17:56:101:アロケータ・デアロケータを公開してPOD構造のみでやり取り(C)
2:1に加えてインターフェース・生成関数・破棄関数をセットでやりとり(C++)
これでとりあえず間違いは起こりませんよね?
0262デフォルトの名無しさん
2009/12/11(金) 18:15:480263192
2009/12/11(金) 18:44:05ありがとうございました。
0264デフォルトの名無しさん
2009/12/11(金) 23:37:59WinProcにパラメータで渡す方法とかないんだろうか
0265デフォルトの名無しさん
2009/12/11(金) 23:42:48SetPropとか。
0266デフォルトの名無しさん
2009/12/11(金) 23:45:090267デフォルトの名無しさん
2009/12/11(金) 23:49:070268デフォルトの名無しさん
2009/12/11(金) 23:51:14SetWindowLongでGWL_USERDATA渡したときと一緒
0269デフォルトの名無しさん
2009/12/11(金) 23:53:14違うよバカ。
MSDN読めハゲ。
そして死ねよクソブタ。
0270デフォルトの名無しさん
2009/12/11(金) 23:54:310271デフォルトの名無しさん
2009/12/11(金) 23:55:56SetWindowLong+GWL_USERDATAだと保存できる値は1個だけ
0272デフォルトの名無しさん
2009/12/12(土) 00:09:50MSDNのどこを調べても抽象的な説明ばかり…
0273デフォルトの名無しさん
2009/12/12(土) 02:05:10……とAtomsの所に思いっきりベタに書いてあるように見える。
で、この値からは逆に文字列等を取り出すことができる。
ちなみにアトムテーブルの特徴として、同じ文字列や識別子を二つ以上は追加できず、
追加しようとした時は以前登録した時のと同じアトムを返す、というのがある。
0274デフォルトの名無しさん
2009/12/12(土) 02:22:38WinMainと共有する変数のアドレス渡してWndProc内のstatic変数にそのアドレス
保存するってのは?
0275デフォルトの名無しさん
2009/12/12(土) 02:27:45PowerPointに貼り付けるVBAコードを作ってます。
下記のkeybd_eventを使って、出来たのは出来たのですが、
たまに画面全体がコピーされることがあり、Sleepを入れて対応せざるおえません。
Call keybd_event(VK_LMENU, &H56, KEYEVENTF_EXTENDEDKEY Or 0, 0)
Call keybd_event(VK_SNAPSHOT, &H79, KEYEVENTF_EXTENDEDKEY Or 0, 0)
Call keybd_event(VK_SNAPSHOT, &H79, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_LMENU, &H56, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
貼り付ける枚数が多いので、PrintWindowの勉強をして
処理を早くしたいと思ってるのですが、
以下のコードだと、クリップボードにデータが入っていない様です。
ご教授頂けると助かります。宜しくお願いします。
hOwner = GetDesktopWindow()
hdc = GetDC(hOwner)
hClipDC = CreateCompatibleDC(hdc)
hBit = CreateCompatibleBitmap(hdc, 845, 553)
hOldBit = SelectObject(hClipDC, hBit)
Call PrintWindow(|コピーしたいウィンドウのハンドル|, hClipDC, 0)
Call OpenClipboard(0)
Call EmptyClipboard
Call SetClipboardData(CF_BITMAP, hClipDC)
Call CloseClipboard
・hBitまでは成功している様に見えるのですが、
hOldBitには0が返されます。
・Call PrintWindowの時は、Trueが返されます。
0276デフォルトの名無しさん
2009/12/12(土) 09:36:29第二引数には何を指定すべきか調べよう
0277デフォルトの名無しさん
2009/12/12(土) 09:37:420278デフォルトの名無しさん
2009/12/12(土) 11:12:28日本語版MSDNは穴だらけ。
0279デフォルトの名無しさん
2009/12/12(土) 12:56:04OpenClipboardのhwndにNULLを渡した時は、
EmptyClipboardでクリップボードのオーナーがNULLが設定され、
その結果SetClipboardData呼び出しは失敗する。
と書いてあるな。
FindWindowか何かでPowerPointのメインウィンドウハンドルを取得して、
そいつを渡してやればいいんじゃないか?
バージョンに拠っては、既にプロパティとして用意されているかもな。
0280デフォルトの名無しさん
2009/12/12(土) 15:19:29指定のフォルダにファイル保存できるスクリーンキャプチャソフトがあるだろ。
そいつを使ってスクリーンショットを次々に保存していって
後でそのフォルダの画像ファイルを一括してPowerPointに貼り付ければいい。
0281デフォルトの名無しさん
2009/12/12(土) 20:00:22初回起動時にクリップボードの内容が取得できないことがあります
わかっているのはファイル名を指定して実行でCLIPBRD.EXEを起動後にソフトを起動したら正常に内容が取得できます
クリップボードチェインが取得できないときはMessageBox APIでエラーを通知するようにしているのですがエラーも出ないで起動するときがあります
クリップボードの中身はテキストなのですが、クリップボードの内容が取得できない原因として何が考えられますか?
0282281
2009/12/12(土) 20:03:40case WM_CREATE:
memset(szBuffer, '\0', sizeof(szBuffer));
hNextWnd = SetClipboardViewer(hWnd);
if(hNextWnd) MessageBox(hWnd,"Viewer Hanle Error","Error",MB_OK);
GetClientRect(hWnd, &rc);
hEdit = CreateWindow(
"EDIT",
NULL,
WS_CHILD | WS_VISIBLE |
ES_WANTRETURN | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL |
ES_AUTOHSCROLL | WS_HSCROLL,
0, 0,
rc.right, rc.bottom,
hWnd,
(HMENU)ID_EDIT,
hInst,
NULL);
SendMessage(hEdit, EM_SETLIMITTEXT, (WPARAM)1024*1024, 0);
if(OpenClipboard(hWnd) && (hg = GetClipboardData(CF_TEXT))) {
strText = (PTSTR)GlobalLock(hg);
strcpy(szBuffer, strText);
Edit_SetText(hEdit, szBuffer);
GlobalUnlock(hg);
CloseClipboard();
}
break;
0283デフォルトの名無しさん
2009/12/12(土) 20:08:030284デフォルトの名無しさん
2009/12/12(土) 20:09:49簡単にバッファオーバーランできるぞw
0285281
2009/12/12(土) 21:12:23>>283
ハンドルエラーですか
GetLastError()で探ってみますね
>>284
私的に使うので問題ないですよ
まだ完成ではないので問題があったら修正しますね
0286デフォルトの名無しさん
2009/12/12(土) 22:00:230287デフォルトの名無しさん
2009/12/12(土) 22:04:52凄い環境で開発してるんだな
0289デフォルトの名無しさん
2009/12/12(土) 22:14:050290デフォルトの名無しさん
2009/12/12(土) 22:15:49どうせ他の部分でもトチ狂ったコード書いてるんだろ
0292281
2009/12/12(土) 22:23:010293デフォルトの名無しさん
2009/12/12(土) 22:26:25死ね
0294デフォルトの名無しさん
2009/12/12(土) 22:27:010295デフォルトの名無しさん
2009/12/12(土) 23:13:53そのチェックボックスにアイコンを表示させてるものを作っているのですが
このときアイコンのサイズとチェックボックスコントロールの縦と横サイズを
自動で計算して合わせるのに有効なやり方などはありますか?
CreateWindow時に固定でサイズを指定するやり方は
なんとなくナンセンスな気がするので教えていただきたいです。
0296デフォルトの名無しさん
2009/12/12(土) 23:19:580297デフォルトの名無しさん
2009/12/13(日) 11:17:01RECT rc, rcClient;
SIZE siz, siz2, sizClient;
GetWindowRect(hWnd, &rc);
GetClientRect(hWnd, &rcClient);
siz.cx = rc.right - rc.left;
siz.cy = rc.bottom - rc.top;
sizClient.cx = rcClient.right - rcClient.left;
sizClient.cy = rcClient.bottom - rcClient.top;
siz2.cx = (...) + (siz.cx - sizClient.cx);
siz2.cy = (...) + (siz.cy - sizClient.cy);
SetWindowPos(hWnd, NULL, 0, 0, siz2.cx, siz2.cy, SWP_NOMOVE | SWP_NOZORDER);
0298デフォルトの名無しさん
2009/12/13(日) 11:22:36#include <windows.h>
extern "C"
{
__declspec(dllexport) void CALLBACK hello(void){
MessageBox(0, "hello", "world", MB_OK);
}
}
//main.cpp
#include <windows.h>
typedef void (CALLBACK *hello_func)(void);
int main(void)
{
HMODULE module = LoadLibrary("dll.dll");
if(!module) {
MessageBox(0, "LoadLibrary", "Error", MB_OK);
return -1;
}
hello_func hello = (hello_func)GetProcAddress(module, "hello");
if(!hello){
MessageBox(0, "GetProcAddress", "Error", MB_OK);
FreeLibrary(module);
return -1;
}
hello();
FreeLibrary(module);
return 0;
}
GetProcAddressのところで失敗してしまいます。何が問題なんでしょうか?
0299デフォルトの名無しさん
2009/12/13(日) 11:25:590300デフォルトの名無しさん
2009/12/13(日) 11:27:360301デフォルトの名無しさん
2009/12/13(日) 11:28:560302デフォルトの名無しさん
2009/12/13(日) 12:01:480303デフォルトの名無しさん
2009/12/13(日) 12:27:500304デフォルトの名無しさん
2009/12/13(日) 13:24:47ttp://homepage3.nifty.com/k-takata/mysoft/ijexp32.html
0305298
2009/12/13(日) 13:43:41dumpbinを使ってみたところ_hello@0という名前になってました
ゲームエンジンプログラミングという本のサンプルだと関数名そのままで扱っていたのですが・・・これは本が間違ってるんでしょうかね?
0306デフォルトの名無しさん
2009/12/13(日) 13:52:39その本は知らないけど、コンパイラがBCCの奴じゃないかな。
ネットで調べたら、BCCだと__stdcallを同名でエクスポートするって情報があった(VCしか知らないので逆に驚き)。
VCだとdefファイル作成して
EXPORTS
hello=hello
とでもしないと同名ではエクスポートできなかったと思う。
APIは問題なかったみたいね。
>>304
これいいね。
0307デフォルトの名無しさん
2009/12/13(日) 16:56:46アプリが起動して入力受け付けるまで(かどうかはよくわからないけど)
呼び出し元のアプリがフリーズしてしまうんだけど
サブスレッドから呼ばない限りブロックされるのを防ぐ方法ってないですかね。
0308デフォルトの名無しさん
2009/12/13(日) 17:35:43大変勉強になります。
しかしながら、未だ解決出来ずにいます。
なんとか、PrintWindowを使って、クリップボードにBitmapを入れたいので、
ご教授をお願いします。
成功が望めるなら、BitBltを使ったやり方でもいいです。
こっちでもうまくいってません。
>>276
冷静な回答をありがとう御座います。
CreateCompatibleBitmapしたオブジェクトのハンドル hBit で実行して、
うまくいかなかったので、色々試して(初心者なので)いて、
そのうちの間違ったままのソースを載せてました。
>>279
PowerPointのハンドルでOpenClipboardするということでしょうか?
その認識で試してみましたが、どこか違う様です。
>>280
以前はそれに近い方法で運用していましたが、
クリップボードから貼り付ける方法の方が早いので、
今のソースコードを完成させたいと思っています。
新しい情報です。
・SetClipboardData(CF_BITMAP, hBit)で実行したところ、
データのハンドルは返されています。
・IsClipboardFormatAvailable(CF_BITMAP)で確認しても、
NULLが返されます。
0309デフォルトの名無しさん
2009/12/13(日) 20:11:19{if(!(expr)){ _tprintf(_T("%s failed, ::GetLastError()=%#lx\n"), _T(#expr), ::GetLastError()); __debugbreak();}}
if(HWND hTarget = FindWindow(_T("Notepad"), NULL)){
// hTarget = ::GetDesktopWindow();
RECT rect; DEBUG_API(::GetWindowRect(hTarget, &rect));
HDC hdc = ::GetDC(hTarget);
HDC hClipDC = ::CreateCompatibleDC(hdc);
HBITMAP hBit = ::CreateCompatibleBitmap(hdc, rect.right-rect.left, rect.bottom-rect.top);
HGDIOBJ hOldBit = ::SelectObject(hClipDC, hBit);
// hTargetがデスクトップだとPrintWindow()が失敗する。理由は知らない。
DEBUG_API(::PrintWindow(hTarget, hClipDC, 0)); // ::GetLastError()は意味なしっぽい。
DEBUG_API(::OpenClipboard(NULL));
DEBUG_API(::EmptyClipboard());
DEBUG_API(::SetClipboardData(CF_BITMAP, hBit));
DEBUG_API(::CloseClipboard());
::SelectObject(hClipDC, hOldBit);
DEBUG_API(::DeleteBitmap(hBit));
DEBUG_API(::DeleteDC(hClipDC));
DEBUG_API(::ReleaseDC(hTarget, hdc));
return ::IsClipboardFormatAvailable(CF_BITMAP);
}
return FALSE;
上の検証コードでIsClipboardFormatAvailable()はゼロ以外を返したよ。
::GetDesktopWindow()のハンドルが指定できるか調べてみれば?
0310デフォルトの名無しさん
2009/12/13(日) 20:19:03音楽再生アプリでのplay/stopをしたいと思ったのですが、
nProtectGameGuardのオンラインゲーム上では登録したホットキー使用が不可能でした。
不正行為防止用にそうなっているのは予想が付いたのですが、
他のホットキー登録の方法、代替APIなど有りませんか?
0311デフォルトの名無しさん
2009/12/13(日) 20:50:020312デフォルトの名無しさん
2009/12/13(日) 21:16:230313デフォルトの名無しさん
2009/12/13(日) 21:18:580314デフォルトの名無しさん
2009/12/13(日) 21:20:370315310
2009/12/13(日) 21:26:42>>313
やはり、ローレベルフックしか無いですよね・・・勉強してきます
>>314
やろうと思えば出来るのでしょうけれど、アングラな世界には入りたくないですね。
と言った所で無駄でしょうね、そう思うならそう思っててください。
0316デフォルトの名無しさん
2009/12/13(日) 21:28:53他にもいろいろあるよ。
0317デフォルトの名無しさん
2009/12/13(日) 21:31:520318デフォルトの名無しさん
2009/12/13(日) 21:49:31nPro上では無理でした、代替APIなど有りませんか?
で無限ループだろ
0319310
2009/12/13(日) 23:08:22ありがとうございました
0320デフォルトの名無しさん
2009/12/13(日) 23:11:050321デフォルトの名無しさん
2009/12/13(日) 23:20:260322デフォルトの名無しさん
2009/12/13(日) 23:30:110323デフォルトの名無しさん
2009/12/13(日) 23:33:39以前友人が書いていたコードを流用して、
取りあえずフィルタドライバを通して起動してみたところ正常に動作しました。
>>322
何を言っても無駄なようですね、別に構いません。
nProをすり抜けようとする行為自体、nProが望む行為じゃないんでしょうからね。
0324デフォルトの名無しさん
2009/12/13(日) 23:35:08nPro自体行儀いいもんだとも思わないけど
0325デフォルトの名無しさん
2009/12/13(日) 23:38:540326デフォルトの名無しさん
2009/12/13(日) 23:39:570327デフォルトの名無しさん
2009/12/13(日) 23:40:090328デフォルトの名無しさん
2009/12/13(日) 23:40:170329デフォルトの名無しさん
2009/12/13(日) 23:41:570330デフォルトの名無しさん
2009/12/13(日) 23:43:52APIでその動作は可能ですか?
0331デフォルトの名無しさん
2009/12/13(日) 23:44:200332デフォルトの名無しさん
2009/12/13(日) 23:46:420333デフォルトの名無しさん
2009/12/14(月) 17:19:47WinProcは生成と破棄のみ、入力・更新・描画はメインループで
という形で十分ですかね?
それともメインループでは更新と画面無効化だけ、キーボード入力と描画はプロシージャで〜みたいな感じにした方がいいんでしょうか?
0334デフォルトの名無しさん
2009/12/14(月) 18:16:570335デフォルトの名無しさん
2009/12/14(月) 19:21:110336デフォルトの名無しさん
2009/12/14(月) 21:37:430337デフォルトの名無しさん
2009/12/14(月) 21:46:02DxLIBとかしかやってこなかったんでプロシージャみたいな設計だと戸惑ってしまいまして
今まで通りのやりかたでいいみたいですね
0338デフォルトの名無しさん
2009/12/14(月) 22:20:45作ったことないけど
0339デフォルトの名無しさん
2009/12/14(月) 23:02:310340デフォルトの名無しさん
2009/12/15(火) 04:54:29OSが後片付けしてくれますが、MSDNのDestroyMenuの項に
>アプリケーションを終了する前に、DestroyMenu 関数を使って、
>どのウィンドウにも割り当てられていないメニューを破棄しなければなりません。
と、書いてあるので、メニューハンドルだけは例外で
もしかして破棄しないままアプリケーションが終了すると
OSにすら回収不能なメモリリークになるのですか?
0341デフォルトの名無しさん
2009/12/15(火) 07:04:24スレッドセーフに作られているがいったい何を言っているんだ?
0342デフォルトの名無しさん
2009/12/15(火) 07:04:40よく気付きましたね
0343デフォルトの名無しさん
2009/12/15(火) 07:06:27ttp://msdn.microsoft.com/en-us/library/ms684256.aspx
MSDNぐらい読んだら?
0344デフォルトの名無しさん
2009/12/15(火) 07:13:18何も知らないお馬鹿さん。
0345デフォルトの名無しさん
2009/12/15(火) 07:14:15それを言ったら同期用のオブジェクトですら、使用中に削除したら問題が起こるだろ。
0346デフォルトの名無しさん
2009/12/15(火) 07:16:20何のための参照カウンタなんだよ
0347デフォルトの名無しさん
2009/12/15(火) 07:17:350348デフォルトの名無しさん
2009/12/15(火) 07:26:23Cのランタイムでマルチスレッドを選択しました。
ファイルをオープンしました。
別スレッドを開始しました。
ファイルをクローズしました。
別スレッドでファイルにアクセスしようとしました。
エラーが出ました。
スレッドセーフじゃねえよ、このやろう。
0349デフォルトの名無しさん
2009/12/15(火) 07:32:16クリティカルセクション 高 なし なし(排他アクセス) 95/NT/CE
ミューテックス 低 あり なし(排他アクセス) 95/NT/CE
セマフォ 低 あり あり 95/NT
イベント 低 あり あり* 95/NT/CE
メータードセクション 高 あり あり 95/NT/CE
0350デフォルトの名無しさん
2009/12/15(火) 07:32:47どれだけ頭が悪ければ気が済むんだろう?
0351デフォルトの名無しさん
2009/12/15(火) 07:38:13SRWLockとかOne-Time InitializationとかCondition variableとかも追加よろ
0352デフォルトの名無しさん
2009/12/15(火) 07:47:220353デフォルトの名無しさん
2009/12/15(火) 07:50:20DuplicateHandleとGetDCでは全然意味が違う
0354デフォルトの名無しさん
2009/12/15(火) 07:52:170355デフォルトの名無しさん
2009/12/15(火) 07:54:330356デフォルトの名無しさん
2009/12/15(火) 07:56:06日本語も読めないのか
0357デフォルトの名無しさん
2009/12/15(火) 07:57:47スレッドセーフの条件から外れるんだよね。
単一スレッド以外からのウインドウ操作は以ての外。
ましては別プロセスからいじるなどあり得ない。
0358デフォルトの名無しさん
2009/12/15(火) 08:01:04当然だろ。
あるスレッドでwhile(hwnd=GetWindow(hwnd...))のループ中に
別スレッドで弄ると無限ループする可能性がある。
0359デフォルトの名無しさん
2009/12/15(火) 08:02:35相変わらずの無知っぷりでワロタw
0360デフォルトの名無しさん
2009/12/15(火) 08:05:47当然ときたか、ボロを出しまくりだね。
つまり現在目の前に描画されているウインドウシステムは幻想なんだね。
何のためにウインドウメッセージがあるのかまったく理解していない。
0361デフォルトの名無しさん
2009/12/15(火) 08:10:07まずは「GDIスレッドセーフに作られている」のソースを提示しろよ
0362デフォルトの名無しさん
2009/12/15(火) 08:10:37おまえらってフリーランサーのプログラマー?
0363デフォルトの名無しさん
2009/12/15(火) 08:14:19ヘルプにEnumChildWindows使えと書いてあるだろ。
0364デフォルトの名無しさん
2009/12/15(火) 08:15:270365デフォルトの名無しさん
2009/12/15(火) 08:16:59何でマルチスレッドのせいになっているんだろう?
0366デフォルトの名無しさん
2009/12/15(火) 08:18:21どうせ前スレの
>.NETはWindows以外でも利用可能
みたいにうやむやにして逃げるだけだろ。
0367デフォルトの名無しさん
2009/12/15(火) 08:21:55以降では改善されて平行に動くという話はOK?
0368デフォルトの名無しさん
2009/12/15(火) 08:23:090369デフォルトの名無しさん
2009/12/15(火) 08:24:200370デフォルトの名無しさん
2009/12/15(火) 08:24:57都合がいいなあ。
0371デフォルトの名無しさん
2009/12/15(火) 08:27:080372デフォルトの名無しさん
2009/12/15(火) 08:28:05GDIオブジェクトがスレッドセーフでないという話とは全く関係ない
0373デフォルトの名無しさん
2009/12/15(火) 08:28:570374デフォルトの名無しさん
2009/12/15(火) 08:44:50描画処理が別スレッドで動いている場合だよね。
描画用のスレッドでGetDCをしていらなくなったらReleaseDC、
そしてウエイトが入るような形になるだろうけど、
この場合どこに問題が起こるのかが重要。
0375デフォルトの名無しさん
2009/12/15(火) 08:51:19>>343のリンク先に書いてある事が理解できるはず。
もう少し勉強しましょう。
0376デフォルトの名無しさん
2009/12/15(火) 10:05:12>GDIはスレッドセーフじゃないから無闇にマルチスレッド化しない方がいいのでは?
きっとメインスレッドからHDCを消し飛ばすんだろ。
常人にはさっぱり理解できないが。
0377デフォルトの名無しさん
2009/12/15(火) 13:58:09プログラムサウンドって奴?直接音源操作するにはどうすればいいんだろうなぁ・・・
0378デフォルトの名無しさん
2009/12/15(火) 14:12:340379デフォルトの名無しさん
2009/12/15(火) 15:05:25環境と開発言語がわからんと何も言えんが
0380デフォルトの名無しさん
2009/12/15(火) 15:26:26自分でやるなら、ダブルバッファリングして波形データを送り続ける。
0381デフォルトの名無しさん
2009/12/15(火) 15:28:320382デフォルトの名無しさん
2009/12/15(火) 15:44:56どのようにすればいいのでしょうか?
0383デフォルトの名無しさん
2009/12/15(火) 15:58:40SetKeyboardState
これで調べるのはだめでしょうか?
0384デフォルトの名無しさん
2009/12/15(火) 16:13:47両方試しましたが、これといった違いが分かりません
そもそもコールバック関数とは、どういった場面で使うのでしょうか
ユーザーが独自にコールバック関数を作ってもいいのですか?
0385デフォルトの名無しさん
2009/12/15(火) 16:17:24EnumWindows() に対する、EnumWindowsProc() みたいな。
なんか勘違いしてるんじゃない?
0386デフォルトの名無しさん
2009/12/15(火) 16:47:490387デフォルトの名無しさん
2009/12/15(火) 16:56:06言ってることがさっぱり分かりません
0388デフォルトの名無しさん
2009/12/15(火) 16:57:110389デフォルトの名無しさん
2009/12/15(火) 16:58:040390384
2009/12/15(火) 17:32:21int WINAPI DllMain(HINSTANCE, DWORD, PVOID) {return TRUE;}
#define EXPORT extern "C" __declspec(dllexport)
EXPORT void Func1(void) {/*...*/}
EXPORT void CALLBACK Func2(void) {/*...*/}
DLL作成について解説しているサイトで、上のように呼び出し規約のあるものとないものが見受けられました
これらの違いについての質問でした
>>385
呼び出される、呼び戻されるという意味がいまいち……
>>389
コールバック関数の実装法が複数あると言うことでしょうか?
0391デフォルトの名無しさん
2009/12/15(火) 17:36:28ユーザーが指定の書式に乗っ取ってその関数を書いてその関数ポインタを
Win32APIの引数に渡してその中からコールバック関数を呼び出してもらうような使い方をする。
というか何のためにその知識を得たいのかを書いたほうが手っ取り早い悪寒…
0392デフォルトの名無しさん
2009/12/15(火) 17:39:320393デフォルトの名無しさん
2009/12/15(火) 17:42:27なんとなくわかるだろ
0394デフォルトの名無しさん
2009/12/15(火) 17:46:31あったりなかったりするのは何をする関数か読む人にわかるように付け足してるか、
どっかからコピペしただけかどっちかだろう。
0395384
2009/12/15(火) 17:47:03目的は、DLL内の関数をコールバック関数にすべきかどうかの判断です
ウィンドウプロシージャ等、用意されてあるものについては触れたことがあるのですが、
独自の関数では、どういう場合にコールバック関数にすべきかと
>>393
MSDNライブラリ見てみます
0396デフォルトの名無しさん
2009/12/15(火) 17:48:480397デフォルトの名無しさん
2009/12/15(火) 17:50:040398384
2009/12/15(火) 17:53:27この機会にちゃんと調べてみます
0399デフォルトの名無しさん
2009/12/15(火) 17:53:54例えば
DLLの関数を呼ぶと勝手に処理はじめて
その進捗状況を教えてくれる
てのは?
0400デフォルトの名無しさん
2009/12/15(火) 17:54:50↓
DLLからDLL呼び出し側(逆も)の関数をポインタ経由で呼び出すときに呼び出し規約が違うとバグるかも
↓
仕方が無いので明示的に呼び出し規約を指定する
俺はこういうふうに考えてるんだがいいんだろうか?
0401デフォルトの名無しさん
2009/12/15(火) 17:59:24コールバックでないものにCALLBACKと書くのはいかがなものか
WINAPIとかの方がいいのでは
いやまぁWinAPIじゃないんだけどさ
じゃあ #define OreOreAPI __stdcall あたりでどうよ
0402デフォルトの名無しさん
2009/12/15(火) 17:59:450403デフォルトの名無しさん
2009/12/15(火) 18:00:270404デフォルトの名無しさん
2009/12/15(火) 18:01:470405デフォルトの名無しさん
2009/12/15(火) 18:09:260406デフォルトの名無しさん
2009/12/15(火) 18:14:060407デフォルトの名無しさん
2009/12/15(火) 18:32:49と言ってみる
0408デフォルトの名無しさん
2009/12/15(火) 18:34:500409デフォルトの名無しさん
2009/12/15(火) 18:41:360410デフォルトの名無しさん
2009/12/15(火) 18:42:190411デフォルトの名無しさん
2009/12/15(火) 19:19:350412デフォルトの名無しさん
2009/12/15(火) 19:20:33馬鹿なの
0413デフォルトの名無しさん
2009/12/15(火) 19:38:34馬鹿の為に対策してある例
つーか粂井のHPが紹介されててわろた
0414デフォルトの名無しさん
2009/12/15(火) 19:44:56int __cdecl main(HWND h,int u,int w,long l)
{
extern int __ImageBase;
static ATOM a;
WNDCLASS c={0,(WNDPROC)main,0,0,&__ImageBase,0,0,6,0,1};
if(a)return(u-2)?DefWindowProc(h,u,w,l):exit(0);
else if(CreateWindow(a=RegisterClass(&c),0,537<<19,0,0,99,99,0,0,0,0))
while(GetMessage(&c,0,0,0))DispatchMessage(&c);
}
0415デフォルトの名無しさん
2009/12/15(火) 19:52:27釣りかと思ったら本当だった
わろすwwwww
0416デフォルトの名無しさん
2009/12/15(火) 21:37:18超有名人に晒し上げしてもらえるとはw
羨ましい奴めwww
0417デフォルトの名無しさん
2009/12/15(火) 21:38:49元から古いとか誤りが多いとか言われてた気がするんだけど。
0418デフォルトの名無しさん
2009/12/15(火) 22:32:550419デフォルトの名無しさん
2009/12/15(火) 23:09:43それが分からんうちはあんたも素人だ
それなりにまともな開発実績積めば
自ずと答えに辿り着くぜ
0420デフォルトの名無しさん
2009/12/15(火) 23:14:00EM_SETWORDBREAKPROC とかは?
0421デフォルトの名無しさん
2009/12/16(水) 00:46:22ハズレ
0422デフォルトの名無しさん
2009/12/16(水) 01:25:370423デフォルトの名無しさん
2009/12/17(木) 04:09:220424デフォルトの名無しさん
2009/12/17(木) 10:08:181項目の値が大きくて入りきらなくなりお尻に”…”がつきます
例)
表示したい項目はABCDEFなのに
下のようにDまで表示され後は…です
-------
ABCD...|
-------
これを改行して表示したいのですが
オーナードローとか使わずに簡単にできませんか?
-------
ABCD |
EF |
-------
0425デフォルトの名無しさん
2009/12/17(木) 12:13:22あれめんどうだよな
0426デフォルトの名無しさん
2009/12/17(木) 12:57:060427424
2009/12/17(木) 16:03:41無理そうなので枠をひろげることにしました
それで次の質問なんですが
1000という数字をprintfとかで1,000と表示する簡単な方法ありませんか?
1000未満ならカンマなし、1000以上なカンマつけるとか
判定してもいいのですが100万こえるとまた判定いりますし
ここは何か関数(API)とか用意されてませんか?
0428デフォルトの名無しさん
2009/12/17(木) 16:13:560429デフォルトの名無しさん
2009/12/17(木) 16:21:160430424
2009/12/17(木) 16:21:23あるもんですね
難しそうですがヘルプ参照してみます
0431デフォルトの名無しさん
2009/12/17(木) 19:57:54そんな便利なAPIがあったんだ。
今まで自分で作ってた...orz
0432デフォルトの名無しさん
2009/12/17(木) 20:21:47普段扱わないロケールとか出てくるから、
どうしても難しそうに見えるんだよなあ。
0433デフォルトの名無しさん
2009/12/17(木) 22:47:00なぜかアダルトグッズサイトでオナホールを探していた。
何をいってい(ry
0434デフォルトの名無しさん
2009/12/18(金) 09:39:540435デフォルトの名無しさん
2009/12/18(金) 09:53:47↓
?
3がつぶれて醜いです
フォントを26とかの大きさにしたらいい感じになりますが
12とかのサイズではつぶれてて醜いです
これはプログラムではどうにもなりませんか?
綺麗なフォントとかあるんでしょうか?
DrawTextとかでmと3を分けて書くしかないのでしょうか?
0436デフォルトの名無しさん
2009/12/18(金) 14:10:22ブラウザから書き込み
0437デフォルトの名無しさん
2009/12/18(金) 14:12:35mを↓付け、3を小さいフォントで↑付けの書式にすればそれっぽく見えるかも。
0438デフォルトの名無しさん
2009/12/18(金) 14:27:37メイリオ使うとかGDI+等で強制的にアンチエイリアスかけるとか
0439デフォルトの名無しさん
2009/12/18(金) 16:28:13ウィンドウ上のカーソルが消えてくれないんですが、なぜでしょうか?
int func(void *arg) {
while(1) {ShowCursor(0); Sleep(1000); ShowCursor(1); Sleep(1000);}
return 0;
}
アプリの最初で_beginthread(funcを起動)
みたいな感じでやっても何も起こりませんよ?
0440デフォルトの名無しさん
2009/12/18(金) 16:43:39そのスレッドに所属するウィンドウにしか効きません
AttachThreadInputしてみると何かいいことがあるかもしれません
0441デフォルトの名無しさん
2009/12/18(金) 16:52:540442デフォルトの名無しさん
2009/12/18(金) 17:02:100443デフォルトの名無しさん
2009/12/18(金) 18:01:54プログラムを作成しようと考えています。
ただ、手順が分りませんの教えて頂きたく思います。
1.キャプチャしたいウインドウのタイトルから、
FindWindow関数で、ウインドウハンドルを取得する。
2.そのハンドルから、GetDCで、DCを取得。
3.そのDCからBitBltで転送する。
という手順で行ったのですが、真っ黒がキャプチャされてしまいます。
また、CreateDC(L"DISPLAY", NULL, NULL, NULL);
で作成したDCからBitBltで転送すると、
画面キャプチャは出来たので、
DCをキャプチャしたいウインドウのDCにするだけで出来るかなと思ったのですが、
出来ないのでしょうか。
それとも、手順自体は間違っていないのでしょうか。
お手数ですが、教えて頂ければ助かります。
0444439
2009/12/18(金) 19:32:00試しにAttachThreadInputを使ってみましたがうまくいきませんでした。
HANDLE cursorThread = _beginthreadex(マウス制御する関数);
DWORD winThread;
GetWindowThreadProcessId(hWnd, &winThread);
if (! AttachThreadInput((DWORD)cursorThread , winThread, TRUE)) {
失敗
}
MSDN (http://msdn.microsoft.com/ja-jp/library/cc429027.aspx)
によればAttachThreadInputに渡すスレッドIDにはウィンドウプロシージャが関連付けられてないといけないから、
上記みたいに第1引数がウィンドウと無関係な場合は失敗するみたいです。
スレッド使わないで実装するようにしてみます。どうもありがとう
0445デフォルトの名無しさん
2009/12/18(金) 20:06:48http://blogs.msdn.com/oldnewthing/archive/2009/12/17/9937972.aspx
0446デフォルトの名無しさん
2009/12/18(金) 20:09:08XP以降のみ対応でいいならPrintWindowでも使っとけばいいんじゃなかったか。
0447デフォルトの名無しさん
2009/12/19(土) 12:05:26例えばメモリデバイスコンテキストのように、WM_CREATEとWM_PAINTでstaticなデバイスコンテキストハンドル
を使うものはグローバル変数にしなければ扱えないのではないでしょうか?
つまり、
http://ja.pastebin.ca/1720068
上記のようなコードを
http://pastebin.ca/1720075
このように変えるためにはグローバル変数を用いるしかないのでしょうか?
0448デフォルトの名無しさん
2009/12/19(土) 12:10:24SetProp/GetPropやSetWindowLongPtr/GetWindowLongPtrを使うという手もある
0449デフォルトの名無しさん
2009/12/19(土) 15:00:53static な変数ってグローバルみたいなもんだしな。
0450デフォルトの名無しさん
2009/12/19(土) 15:03:03別のアプリケーションによって隠された時は再描画されるのですが、
他のMDI子ウィンドウに隠された時に再描画されません。
子ウィンドウの方から親ウィンドウにWM_PAINTメッセージを送った再も何も反応がありません。
どなたか、問題点もしくは解決策をご教授願います。
0451デフォルトの名無しさん
2009/12/19(土) 23:44:04あとフォーカス矩形が描画されないし
オーナードローかと思ったらspy++で見てもオーナードロースタイルが無いんだよ
0452デフォルトの名無しさん
2009/12/19(土) 23:48:04返事が遅くなりまして申し訳ございません。
PrintWindowで調べましたところ、
WindowsのGDIが単一サーフェスであることを初めて知りました。
画面が黒くキャプチャされたのも納得です。
PrintWindowで再描画した後、キャプチャすれば出来そうな気がしますので、
これから試して見ます。
どうも、有難うございます。
0453デフォルトの名無しさん
2009/12/20(日) 00:34:30カスタムドローだろ
0454デフォルトの名無しさん
2009/12/20(日) 02:03:08普通にWM_CTLCOLORBTNじゃないのか?
>>452
いやPrintWindowは自分が作ったビットマップを選択したDCを引数にしてそこに描画させるもんだろう普通。
0455451
2009/12/20(日) 02:21:12カスタムドローってリストビューとかコモンコントロールだけじゃないっけ?
>>454
プッシュボタンだけはWM_CTLCOLORBTNが利かないんだよ
これはMSDNでも確認済み
誰か電卓で気になった人いねえ?
0456デフォルトの名無しさん
2009/12/20(日) 03:37:050457デフォルトの名無しさん
2009/12/20(日) 03:49:59RedrawWindowしても、タイトルバーや枠が再描画されません。
何とか任意のタイミングで、全体を再描画させる方法は無いでしょうか。
0458デフォルトの名無しさん
2009/12/20(日) 04:00:03XP以降はボタンにもカスタムドローの通知が来るんだが、
これはMSDNで確認してないのか?
0459デフォルトの名無しさん
2009/12/20(日) 04:15:01なんとかリージョンを送るのは基本だったと思うけど
0461デフォルトの名無しさん
2009/12/20(日) 04:39:47一時的にDWMを無効にして有効にするしか無いんじゃねぇの?
てかWin7でタイトルバーのフォントを変更してもたまに再ログオンするまで更新が反映されなかったりするし
DWM周りは動作がよく分からんね
0462デフォルトの名無しさん
2009/12/20(日) 09:50:43malloc変数に格納するには、どの構造体からデータをもってくればいいですか?
0463デフォルトの名無しさん
2009/12/20(日) 10:18:280464デフォルトの名無しさん
2009/12/20(日) 11:12:54HDC bmp = コピー先ビットマップが設定されたHDC
HDC hdc = GetDC(対象のウィンドウハンドル);
::BitBlt(bmp,0,0,幅,高さ,hdc,0,0,
SRCCOPY | ((拡張スタイル & WS_EX_LAYERED) ? CAPTUREBLT : 0) );//レイヤードウィンドウならCAPTUREBLT追加
ReleaseDC(対象のウィンドウハンドル,hdc);
0465デフォルトの名無しさん
2009/12/20(日) 11:56:43すみません、C++はまだノータッチなんです。勉強して出直してきます
>>464
いや、BitBltを使ってコピーするのではなく、そのコピーされる大元のビットマップデータを、たとえば数値で表示する、とかするときは(まあそんなことまずしないけど)どうしたらいいのでしょうか?
とにかくピクセルごとのデータをmalloc変数に入れときたいです。
0466デフォルトの名無しさん
2009/12/20(日) 12:04:590467デフォルトの名無しさん
2009/12/20(日) 12:06:00他のウィンドウが覆いかぶさって隠れてる部分はそもそも描かれてすらいません
Vista以降はシラネ
どこかにあるはずだが、アプリケーションから触れるのだろうか
0468デフォルトの名無しさん
2009/12/20(日) 12:25:36そうなのか。
じゃあプログラム内で(ランダム、またはユーザーにより)書かれたものを保存するなら、画像とは別にその書いた動作を全部記録しないといけない、ということですか?
0469デフォルトの名無しさん
2009/12/20(日) 12:30:160470デフォルトの名無しさん
2009/12/20(日) 12:32:260471デフォルトの名無しさん
2009/12/20(日) 12:32:42まぢですかあ・・・
がんばろ
あと、>>466のGetDIBitsって使い方が良くわからないんだけど、どうもbmpファイルとして保存されたものじゃないとできないようなかんじだった気がします。
0472デフォルトの名無しさん
2009/12/20(日) 12:45:420473デフォルトの名無しさん
2009/12/20(日) 15:01:170474デフォルトの名無しさん
2009/12/20(日) 15:52:410475デフォルトの名無しさん
2009/12/20(日) 16:25:47じゃあbmpファイルじゃなく、ウィンドウに表示されている画面のピクセルデータを読み込むには、どうしたらいいんですか?
まさかGetPixelしかないわけじゃないでしょう。
0476デフォルトの名無しさん
2009/12/20(日) 16:27:24直接サーフェースのデータがとりたいならDirectXとか使ってみては
0477デフォルトの名無しさん
2009/12/20(日) 16:29:25そもそもhBitmapは取れてるの?
0478デフォルトの名無しさん
2009/12/20(日) 16:34:47>いや、BitBltを使ってコピーするのではなく、そのコピーされる大元のビットマップデータを、たとえば数値で表示する
「いや」じゃねえよ、なめてんのか?
コピーしろと言われているんだから素直に従えばいいだろ。
ぐだぐだぐだぐだ何を言ってるんだ?
0479デフォルトの名無しさん
2009/12/20(日) 16:37:07>>309
ご回答ありがとう御座います。
どうやらクリップボードに何か入ってるのは間違い無いですね。
あれから色々調べ、色々やりましたが、(初心者なので)うまくいきません。
クリップボードに入っているものは、BITMAP形式ではない様です。
Keybd_eventだとクリップブックで確認した際に表示されているのに、に下記のソースだと駄目です。
何か良い助言をいただければと思います。
'◇今のソースコード
hdc = GetDC([コピーしたいウィンドウのハンドル])
hClipDC = CreateCompatibleDC(hdc)
Call GetWindowRect([コピーしたいウィンドウのハンドル], Rect1)
hBit = CreateCompatibleBitmap(hdc, Rect1.Right - Rect1.Left, Rect1.Bottom - Rect1.Top)
hOldBit = SelectObject(hClipDC, hBit)
'Call BitBlt(hClipDC, 0, 0 _
' , Rect1.Right - Rect1.Left, Rect1.Bottom - Rect1.Top _
' , hdc, 0, 0, SRCCOPY) '※これも試しました
Call PrintWindow([コピーしたいウィンドウのハンドル], hClipDC, 0)
Call OpenClipboard([pptのハンドル])
Call EmptyClipboard
Call SetClipboardData(CF_BITMAP, hClipDC)
fmt = EnumClipboardFormats(0)
Call CloseClipboard
Call SelectObject(hClipDC, hOldBit)
isfmt = IsClipboardFormatAvailable(fmt)
・上記だと「isfmt]には「1」が返されます。
・「fmt」には、何度やっても一定の7桁の数値が返されます。
⇒keybd_eventでキャプチャした場合は、必ず「2」が返されます。ここがヒントだと思っています。
0480デフォルトの名無しさん
2009/12/20(日) 16:37:21DirectXを使えという根拠は?
やったこともないのに適当なことを吹かすのはやめろ。
0481デフォルトの名無しさん
2009/12/20(日) 16:39:44プログラムがどうこう以前にDDBとDIBの意味は理解しているのか?
0482デフォルトの名無しさん
2009/12/20(日) 16:44:40VRAMの中身を直接取り出したいという可能性を考えただけ
というか、質問者がそれくらい曖昧だと言ってるのさ
0483デフォルトの名無しさん
2009/12/20(日) 16:48:50ウインドウモード時にVRAMのデータを直接取り出す機能も存在しないんだが、
いったい何の可能性だと言うんだ?
0485デフォルトの名無しさん
2009/12/20(日) 21:55:020486デフォルトの名無しさん
2009/12/20(日) 22:57:030487デフォルトの名無しさん
2009/12/21(月) 00:33:10...
DEBUG_API(::SetClipboardData(CF_BITMAP, hBit));
for(UINT uiFormat(0); ; ){
if(!(uiFormat = ::EnumClipboardFormats(uiFormat))){
DWORD dwResult(::GetLastError());
if(dwResult != NOERROR){
DEBUG_OUT(dwResult);
}
break;
}
DEBUG_OUT(uiFormat);
}
DEBUG_API(::CloseClipboard());
...
'ClipBoardTestFor2ch.exe': 'C:\WINDOWS\system32\mfc42.dll' を読み込みました。...
clipboardtestfor2ch.cpp(72) : uiFormat = 2 (0x2) ...
'ClipBoardTestFor2ch.exe': 'C:\WINDOWS\system32\mfc42loc.dll' を読み込みました。...
C++では問題ないみたいだし、ペイントとかのプログラムにも
ペーストできてるけど。悪いが俺にできるのはここまでかもしれん。
それにしても、7桁の数字ってヘッダ見たけどあり得ない気が。
0488デフォルトの名無しさん
2009/12/21(月) 03:13:480489デフォルトの名無しさん
2009/12/21(月) 03:43:19必須要件
・Windows XP/Vista/7の何れかで動作すること
・画面全体、指定領域、ウィンドウ領域のキャプチャ
・クリップボードへコピー、BMP形式で保存
開発言語は不問
技術点・構成点・芸術点の総合得点で評価
優勝賞金30万円、その他特別賞など
0490デフォルトの名無しさん
2009/12/21(月) 03:51:540491デフォルトの名無しさん
2009/12/21(月) 03:52:350492デフォルトの名無しさん
2009/12/21(月) 03:56:44つーか
>クリップボードから貼り付ける方法の方が早いので、
>今のソースコードを完成させたいと思っています。
とか言ってるくせに一週間以上経っても全く進歩ねーじゃんwww
卒論なのか仕事でキャプってるのか知らんが物凄く能率悪い奴だね
0493デフォルトの名無しさん
2009/12/21(月) 04:05:390494デフォルトの名無しさん
2009/12/21(月) 04:06:49ここ見てる天才プログラマーの皆様には朝飯前だろ?
0495デフォルトの名無しさん
2009/12/21(月) 04:10:290496デフォルトの名無しさん
2009/12/21(月) 04:14:580497デフォルトの名無しさん
2009/12/21(月) 04:19:220498デフォルトの名無しさん
2009/12/21(月) 04:24:49スルーしとけばいい
0499デフォルトの名無しさん
2009/12/21(月) 11:42:25いやいやグローバル変数だろ
0500デフォルトの名無しさん
2009/12/21(月) 15:19:080501デフォルトの名無しさん
2009/12/21(月) 17:41:130502デフォルトの名無しさん
2009/12/21(月) 19:27:590503デフォルトの名無しさん
2009/12/22(火) 07:24:29それでもキャプチャソフトを自作した方が>>280の方法より「早い」のかねぇ
状況がサッパリ理解できないんだが
0504デフォルトの名無しさん
2009/12/22(火) 15:29:450505デフォルトの名無しさん
2009/12/22(火) 15:32:59SetPropでも使え
0506デフォルトの名無しさん
2009/12/22(火) 16:27:52では、WNDCLASSに情報をセットする前に if (!第二引数) { のような条件は不要ということでしょうか?
WNDCLASS myProg;
if (!hPreInst) { ←★これ★
myProg.style = CS_HREDRAW | CS_VREDRAW;
myProg.lpfnWndProc = WndProc;
myProg.cbClsExtra =0;
myProg.cbWndExtra =0;
・
・
0507デフォルトの名無しさん
2009/12/22(火) 17:09:320508デフォルトの名無しさん
2009/12/22(火) 20:01:35常にNULLであるとMSDNに書かれている。
Win16時代の名残でしょ。
0509デフォルトの名無しさん
2009/12/22(火) 20:05:54ランタイムがでっち上げているだけの引数だから、
OSが変わっても影響がでることはあり得ないし。
0510デフォルトの名無しさん
2009/12/22(火) 20:39:03・先ず、この質問で気分を悪くされた方々、申し訳ありません。
十分な勉強をしていない素人が簡単に知識を得ようというのは
良くないことですよね。
マクロの延長線で考えていたので、これ以上は諦めてkeybd_eventで
満足しよう思います。
>>481
存在は知っていましたが、言われて初めて検索しました。
不勉強を実感しています。今後の参考にしていこうと思います。
>>487
何度も丁寧にご回答頂きありがとう御座います。
非常に勉強になり、助かりました。
どうやらクリップボードに入れる以前の問題の様に思います
また時間があればこつこつ勉強しようと思います。
>>488-502
話題にしていただきありがとう御座います。
>>492、>>503
毎日の仕事中で、非常に忙しい時間帯に実行する必要があるものなので、
少しでも「処理時間が早い」ものを と考えていました。
あるウィンドウを画面遷移させ、その画面のスナップショットと、
ウィンドウタイトルをpptに貼り付け、また画面を遷移する繰り返しを
100枚以上やるものです。
元々先述の[keybd_event]を使ったマクロで大きく短縮出来ていたのですが、
欲張って[Sleep]が少なくて済む方法が無いかと考えていました。
以上です。長文になり申し訳ありません。
0511デフォルトの名無しさん
2009/12/22(火) 22:03:57�d
WinAPI始めたばかりでさっぱりだったんだ
0512デフォルトの名無しさん
2009/12/23(水) 00:14:32WinAPIどころか人間を始めたばかりとしか
0513デフォルトの名無しさん
2009/12/23(水) 00:24:500514デフォルトの名無しさん
2009/12/23(水) 01:16:560515デフォルトの名無しさん
2009/12/23(水) 01:24:36昔のように500レスぐらい読み返しても重複話題が
全くなかった古き良き時代はとっくに過ぎてる。
0516デフォルトの名無しさん
2009/12/23(水) 01:27:44どのようにコードを組んでいいか分からないので教えてください。
0517デフォルトの名無しさん
2009/12/23(水) 01:39:020518デフォルトの名無しさん
2009/12/23(水) 02:31:40SetWindowPos等の関数でWS_THICKFRAMEを持たないウィンドウのサイズを変更した際には、
WM_GETMINMAXINFOメッセージが送られきません。
このような場合は、どのようにウィンドウのサイズを制限すればいいのでしょうか。
0519デフォルトの名無しさん
2009/12/23(水) 03:14:58検索もできない馬鹿が増えただけだろ
0520デフォルトの名無しさん
2009/12/23(水) 03:24:100521デフォルトの名無しさん
2009/12/23(水) 13:06:08#include <iostream>
struct Hoge
{
static void __stdcall Func(void)
{
std::cout << __FUNCTION__ << std::endl;
}
};
//--Module.def--
LIBRARY "Module"
EXPORTS
Func = Hoge::Func @1
上記のようにC++のクラス内静的関数、あるいは名前空間内の関数をエクスポートすることは不可能でしょうか?
0522デフォルトの名無しさん
2009/12/23(水) 13:23:060523デフォルトの名無しさん
2009/12/23(水) 16:24:59自分の勉強のため、Excel2000 VBA(On Win2K)で動くコードを書いてみた。
EnumWindows()でキャプチャできそうなウィンドウを列挙して、BitBlt()で
転送、ワークシートの各ページに貼り付けてる。PrintWindow()はパソコン
壊れたので動作確認できてない(実装はしてるけど)。
このスレ的には、C/C++が主流と言うか当然なので粘るのはよくないかもね。
ttp://rapidshare.com/files/324722603/ClipboardTest.zip
0524デフォルトの名無しさん
2009/12/23(水) 16:56:110525デフォルトの名無しさん
2009/12/23(水) 21:51:28DEFファイルにHoge::Funcではなく、マングル名(C++コンパイラが変形したあとの名前)を記述する。
または、DEFファイルを使わず__declspec(dllexport)と__declspec(dllimport)だけでやる。
0526デフォルトの名無しさん
2009/12/24(木) 11:22:010527デフォルトの名無しさん
2009/12/25(金) 10:49:03Windows上の画面ではどこで表示できますか?
0528デフォルトの名無しさん
2009/12/25(金) 11:18:220529デフォルトの名無しさん
2009/12/25(金) 11:19:520530デフォルトの名無しさん
2009/12/25(金) 11:24:42くだらない。
0531デフォルトの名無しさん
2009/12/25(金) 12:35:310532デフォルトの名無しさん
2009/12/25(金) 12:40:26くだらない。
0533デフォルトの名無しさん
2009/12/25(金) 15:03:160534デフォルトの名無しさん
2009/12/25(金) 15:19:370535デフォルトの名無しさん
2009/12/25(金) 17:37:34ウィンドウの挙動を制御できるように読めるのですが、プログラムで対応する処理が無くても
MSDNに書かれている通りの動作になるんですか??
0536デフォルトの名無しさん
2009/12/25(金) 17:38:280537デフォルトの名無しさん
2009/12/25(金) 18:04:49受け取ったら適切に処理しろ
0538デフォルトの名無しさん
2009/12/25(金) 18:45:53可能なときは自分もそうしているけど、
>>535
ぶっちゃけ、プログラムで無視しても、外から指定したとおりになる。
最初にShowWindowを呼び出したとき、その引数を無視して、
外からの指定(STARTUPINFOのwShowWindow == WinMainのnCmdShow)に従うため。
http://msdn.microsoft.com/ja-jp/library/cc411211.aspx
0539デフォルトの名無しさん
2009/12/25(金) 19:45:25Aの子プロセスにせずに起動させる方法はあるでしょうか?
ShellExecute や CreateProcess, CreateProcessAsUser で試してみたところ,すべて子プロセスになりました
0541デフォルトの名無しさん
2009/12/25(金) 23:26:31えっ
0542デフォルトの名無しさん
2009/12/25(金) 23:37:24多分そうだと思う。
0543デフォルトの名無しさん
2009/12/25(金) 23:41:410544デフォルトの名無しさん
2009/12/26(土) 09:32:52親子関係にあまり意味は無かったりするから、気にしなくていいんじゃない?
0545デフォルトの名無しさん
2009/12/26(土) 09:40:060546デフォルトの名無しさん
2009/12/26(土) 10:33:550547デフォルトの名無しさん
2009/12/26(土) 17:40:14ノートPCの筐体を閉じた時に、なんかイベントとかメッセージって飛んで来ますでしょうか?
筐体の開け閉めに連動したランチャーを作ろうかと思いまして……閉めた時にちょっとした処理を行うとか。
0548デフォルトの名無しさん
2009/12/26(土) 17:42:040549デフォルトの名無しさん
2009/12/26(土) 17:46:01閉じる直前に送られる。FALSEを返すと中止
WM_NOTEPCCLOSED
閉じた後に送られる。
0550デフォルトの名無しさん
2009/12/26(土) 18:00:34適当にググったらでてきた
詳しくは知らん
0551デフォルトの名無しさん
2009/12/26(土) 18:02:230552デフォルトの名無しさん
2009/12/26(土) 19:36:040553デフォルトの名無しさん
2009/12/26(土) 19:51:070554デフォルトの名無しさん
2009/12/26(土) 19:52:520555デフォルトの名無しさん
2009/12/26(土) 19:55:16C++の親戚みたいなもの?
0556デフォルトの名無しさん
2009/12/26(土) 19:59:23ウィンドウ メッセージを表示できる、32 ビット用のユーティリティです。
Spy++ には次の機能が備わっています。
- グラフィックスによって、プロセス、スレッド、およびウィンドウを含む、システム
オブジェクトの関係をツリー表示できます。
- 指定したウィンドウ、スレッド、プロセス、またはメッセージを検索できます。
- 選択したウィンドウ、スレッド、プロセス、またはメッセージのプロパティを表示
できます。
- Spy++ の表示ウィンドウから、ウィンドウ、スレッド、プロセス、またはメッセージ
を直接選択できます。
- ファインダ ツールを使用すると、マウスのドラッグ アンド ドロップ操作によって、
特定のウィンドウの情報を検索できます。
- メッセージ記録用のパラメータを指定すると、メッセージ オプションを細かく設定
できます。
0557デフォルトの名無しさん
2009/12/26(土) 20:00:30プロセスとスレッドの詳細な情報を表示するプロセス ビューア (PVIEW.EXE) と、
プログラムの動的なデータ交換 (ダイナミック データ エクスチェンジ : DDE) のメッセージを監視する DDE スパイ (DDESPY.EXE) です。
0558デフォルトの名無しさん
2009/12/26(土) 20:01:200559デフォルトの名無しさん
2009/12/26(土) 20:07:08インターネットに接続できる環境もってるんだから。
0560デフォルトの名無しさん
2009/12/26(土) 20:27:160561デフォルトの名無しさん
2009/12/26(土) 20:32:270562デフォルトの名無しさん
2009/12/26(土) 21:02:17もっと詳しく。そのWMの値はどこに書かれてますか?
0563デフォルトの名無しさん
2009/12/26(土) 21:04:48情報サンクス。でもどこにも見付からない……解説ページとかあればぜひ。
>550
WM_POWERBROADCAST はサスペンドとかを設定している時しか飛んでこなさそうな感じでした。
>551
Spy++で試してみたけど引っ掛かりませんでした(@XPSP2)。試したノートPCが古かったのかな……
0564デフォルトの名無しさん
2009/12/26(土) 21:05:120565デフォルトの名無しさん
2009/12/26(土) 21:12:10からかわれてるんだよ。
0566デフォルトの名無しさん
2009/12/26(土) 21:13:49そもそもFALSEを返すと中止って何だよw
不思議な力が働いてノートPCを閉めれなくするのか?www
0567デフォルトの名無しさん
2009/12/26(土) 21:18:460568デフォルトの名無しさん
2009/12/26(土) 21:25:51うそ【嘘】
1 事実でないこと。また、人をだますために言う、事実とは違う言葉。偽(いつわ)り。「―をつく」「この話に―はない」
2 正しくないこと。誤り。「―の字を書く」
3 適切でないこと。望ましくないこと。「ここで引き下がっては―だ」
0569デフォルトの名無しさん
2009/12/26(土) 21:34:06非公開のウィンドウメッセージなので名前は適当に付けました。
事前にAPIを呼び出してウィンドウを登録しないと通知は来ません。
0570デフォルトの名無しさん
2009/12/26(土) 21:39:280571デフォルトの名無しさん
2009/12/26(土) 21:40:240572デフォルトの名無しさん
2009/12/26(土) 21:43:100573デフォルトの名無しさん
2009/12/26(土) 21:48:20値は?
0574デフォルトの名無しさん
2009/12/26(土) 21:49:510575デフォルトの名無しさん
2009/12/26(土) 21:52:380xBACA
0576デフォルトの名無しさん
2009/12/26(土) 21:54:09(ファイルの説明,種類,製品名等の情報)はどうやって取得するのでしょうか?
0578デフォルトの名無しさん
2009/12/26(土) 22:10:29説明とか製品名とかは、バージョンリソースから。
0579デフォルトの名無しさん
2009/12/26(土) 22:14:49↑これ何すか?
0580デフォルトの名無しさん
2009/12/26(土) 22:17:130581デフォルトの名無しさん
2009/12/26(土) 22:23:380582デフォルトの名無しさん
2009/12/26(土) 22:30:370583デフォルトの名無しさん
2009/12/27(日) 12:09:20c:\myfile.txt
というようにパスで指定すると
移動したりリネームしたりすると破綻しちゃいます。
パス文字列からIDか何かを取得し、そのIDからパス文字列を取得できる
API,手法はないですか?
0584デフォルトの名無しさん
2009/12/27(日) 12:11:17個別の固有番号が付いてるとか聞いたことがない。
0585デフォルトの名無しさん
2009/12/27(日) 12:33:06こういうの使えないのかな。
0586デフォルトの名無しさん
2009/12/27(日) 12:36:49http://msdn.microsoft.com/en-us/library/aa364570(VS.85).aspx
0587デフォルトの名無しさん
2009/12/27(日) 13:56:090588デフォルトの名無しさん
2009/12/27(日) 14:41:230589デフォルトの名無しさん
2009/12/27(日) 14:54:410590デフォルトの名無しさん
2009/12/27(日) 14:58:450591デフォルトの名無しさん
2009/12/27(日) 15:04:230592デフォルトの名無しさん
2009/12/27(日) 15:08:140593デフォルトの名無しさん
2009/12/27(日) 15:10:270594デフォルトの名無しさん
2009/12/27(日) 15:21:24ググレゴミ
0595デフォルトの名無しさん
2009/12/27(日) 15:38:120596デフォルトの名無しさん
2009/12/27(日) 19:30:29ボリューム(ドライブ)を跨いでの移動だと追い切れない。
となると、結局>>585-586の追跡サービスのほうがいいという話になると思う。
0597デフォルトの名無しさん
2009/12/27(日) 19:47:360598デフォルトの名無しさん
2009/12/27(日) 20:01:410599デフォルトの名無しさん
2009/12/27(日) 20:12:48質問者が訊いてるのは「API,手法はないですか」だから、回答は「ある」「ない」だけでいいってことか
0600デフォルトの名無しさん
2009/12/27(日) 20:15:16と書いてあるだろ
ボリューム間の移動なんてどうでもいいんだよ
0601デフォルトの名無しさん
2009/12/27(日) 20:18:160602デフォルトの名無しさん
2009/12/27(日) 20:25:510603デフォルトの名無しさん
2009/12/27(日) 20:37:09ドライブとかディスクパーティションとかのことだと思えばだいたいあっている。
http://msdn.microsoft.com/en-us/library/ms790711.aspx
0604デフォルトの名無しさん
2009/12/27(日) 20:38:12余計な部分に食いつくのはスレ住人の悪い癖だな。
パス文字列からIDか何かを取得
GetFileInformationByHandle(Ex)
IDからパス文字列を取得
OpenFileById→GetFinalPathNameByHandle→FindFirstFileNameW/FindNextFileNameW
0605デフォルトの名無しさん
2009/12/27(日) 21:35:32末端の答えしか必要としないなら、ここよりGoogle先生に聞いた方がいい。
0606デフォルトの名無しさん
2009/12/27(日) 21:52:08そもそもが確実に追跡する方法なんて無いに決まってるのだから
移動したりリネームしたりできないようにロックしとくか
移動したりリネームしたりしても破綻しないように作っとけ
という結論になる。
0607デフォルトの名無しさん
2009/12/27(日) 23:06:01この場合に相当するかどうかは知らないが、
相対パスや環境変数と組み合わせるのは常識だと思うんだ。
0608デフォルトの名無しさん
2009/12/28(月) 00:26:15例えば↓のような感じで、同じファイルでも異なる表記があると思います。(なので単純な文字列比較ではだめですよね)
C:\foo\hogehoge.txt
C:\FOO\HOGEHO~1.TXT
C:\foo\bar\..\hogehoge.txt
\\?\C:\foo\hogehoge.txt
やりたいことは、パスを表す文字列が複数あって、
それらが重複したパスを持たないように、ユニークにしたいってことなんですが。
実際にファイルを開いてみて、ファイル固有のIDを比較するしかないですか?
0609デフォルトの名無しさん
2009/12/28(月) 00:43:210610デフォルトの名無しさん
2009/12/28(月) 00:57:041つ目のパスの指すディレクトリに、空のファイルか何かを新規作成。
2つ目のパスの指すディレクトリで、作った空のファイルとかがあるかを調べる。
もしあれば、2つのパス(ディレクトリまで)は同じなので、後はファイル名を調べれば良い。
0611デフォルトの名無しさん
2009/12/28(月) 00:59:580612デフォルトの名無しさん
2009/12/28(月) 02:13:040613デフォルトの名無しさん
2009/12/28(月) 05:08:410614デフォルトの名無しさん
2009/12/28(月) 07:31:270615デフォルトの名無しさん
2009/12/28(月) 11:33:000616デフォルトの名無しさん
2009/12/28(月) 11:46:420617デフォルトの名無しさん
2009/12/28(月) 11:53:34ま、そのときは (>>583 = >>608 仮定だけど) 元仕様のリネームも弾かれるわね
0618デフォルトの名無しさん
2009/12/28(月) 11:56:150619デフォルトの名無しさん
2009/12/28(月) 12:04:33GetFullPathName あたりを使うか
GetFileInformationByHandle(Ex) を使う(>>604) あたりが妥当なのか
0620デフォルトの名無しさん
2009/12/28(月) 12:11:39パスの比較には使えないよ
0621デフォルトの名無しさん
2009/12/28(月) 12:20:41MAX_PATHを超えるパスや\\?\には無理
つまり 自分で作れ ってこった
0622デフォルトの名無しさん
2009/12/28(月) 12:52:38一般的なファイラでも見たことないし。
0623デフォルトの名無しさん
2009/12/28(月) 13:07:42ぶっちゃけどうでもいい
0624デフォルトの名無しさん
2009/12/29(火) 02:05:590625デフォルトの名無しさん
2009/12/29(火) 04:42:300626デフォルトの名無しさん
2009/12/29(火) 05:17:160627デフォルトの名無しさん
2009/12/29(火) 07:38:40みんなはファイルはID振ってデータベースで管理とかやってんのかな
0628デフォルトの名無しさん
2009/12/29(火) 08:04:48\Win32API質問箱に投稿するファイルです。\スレッドはBuild84です。\質問に答えるために試しに書いてみたソースコードです。
\開発言語はC++です。\対応OSはVista以降です。\パス文字列からIDを取得できるのか?\test.cpp
こんな感じか?
そりゃあMAX_PATHでは全然足りないだろうねw
0629デフォルトの名無しさん
2009/12/29(火) 08:06:13IDを使う必要など微塵もない。
0630デフォルトの名無しさん
2009/12/29(火) 08:08:57フォルダ階層のみで管理する時代なんてとっくに終焉を迎えてるだろ
0631デフォルトの名無しさん
2009/12/29(火) 10:13:230632デフォルトの名無しさん
2009/12/29(火) 10:47:29だとするとセキュリティ的に問題あると思うが・・・
0633デフォルトの名無しさん
2009/12/29(火) 10:57:25例:
char fname[MAX_PATH];
lstrcpy(fname,argv[1]);
lstrcat(fname,".txt");
0634デフォルトの名無しさん
2009/12/29(火) 11:06:250635デフォルトの名無しさん
2009/12/29(火) 13:10:170636デフォルトの名無しさん
2009/12/29(火) 14:43:490637デフォルトの名無しさん
2009/12/29(火) 14:49:14実は2行目でアウト。だろ?
0638デフォルトの名無しさん
2009/12/29(火) 15:44:14ここでも読んで勉強して来い
ttp://www.kumei.ne.jp/c_lang/intro/no_20.htm
0639デフォルトの名無しさん
2009/12/29(火) 15:53:21(一部文字は同一視)が使用出来るようになりました。便利になった反面
別表記でも同一ディレクトリ内部に作成すると干渉する可能性があります。
(不本意に既存ファイルを上書きもしくは削除後新規作成してしまう)
ファイルを作成する前にFindFirstFiles FindNextFilesに問い合わせ
情報が得られるかどうかチェックして下さい。情報が得られた場合
はその名称が使用されています。
ファイルオープンで可能か否かでチェックする方法はおすすめしません。
ロックされている場合は不正確な結果になるからという理由もさる
ことながらロックしないでオープンした場合の別プロセスの同一操作
に対する順序整合性が保証されないからです。
0640デフォルトの名無しさん
2009/12/29(火) 15:59:07そのようなAPIはWindowsには存在しないため、スレ違いです
0641デフォルトの名無しさん
2009/12/29(火) 15:59:42argcのチェック?そんなもんでいちいち指摘してたら2chにコードなんかかけないだろ。
行数の制限があるのに。
0642デフォルトの名無しさん
2009/12/29(火) 16:01:34FindExisitingFile
FindOtherExistingFile
だた
0643デフォルトの名無しさん
2009/12/29(火) 16:05:35本気で言ってるならVBでも使ってなさいとアドバイスしておこう。
0644デフォルトの名無しさん
2009/12/29(火) 16:10:21http://uproda11.2ch-library.com/217420vpw/11217420.jpg
0645デフォルトの名無しさん
2009/12/29(火) 16:13:06FindFirstFileとかを使っても、その時点でファイル名が使用されていないか
わかるだけ。
そのファイルを作る前に、別プロセスが同じことをした場合はそのプロセス
が作ったファイルを上書きしてしまう可能性がある。
CreateFileのCREATE_NEWパラメータ指定での実行で早いもの勝ち方式
2つの別表記が同一ファイルかのチェックは、そのファイルを読み書きロック
条件のもとで同時に開けるかでチェックするといいんではないかと...
別プロセスが偶然、一方を読み書きロックで開いていた場合は結果は不正確
だが...
0646デフォルトの名無しさん
2009/12/29(火) 16:13:300647デフォルトの名無しさん
2009/12/29(火) 16:16:00あいにくこれはもうこれ以上大きくならないから没
0648デフォルトの名無しさん
2009/12/29(火) 16:18:40おまえぶっ飛ばすぞ
0649デフォルトの名無しさん
2009/12/29(火) 16:19:56次のように返値がNULLかどうかをきちんとチェックしてこそ安全なコードと云える。
これを出来ないプログラマーがC/C++を使う資格は無い。
DWORD* DIB32_SafeAlloc(DWORD width,DWORD height,DWORD color)
{
DWORD* p = (DWORD*)malloc(width*height*4);
if(p)
{
DWORD* q = p+width*height;
while(p<q) *p++ = color;
}
return(p);
}
0650デフォルトの名無しさん
2009/12/29(火) 16:20:460651デフォルトの名無しさん
2009/12/29(火) 16:21:56> そのファイルを作る前に、別プロセスが同じことをした場合はそのプロセス
> が作ったファイルを上書きしてしまう可能性がある。
とか細かいことは言うくせに、他のプロセスがファイルをロックしてる可能性は考えないの?
それとも先に開くパターンを入れ替えて試すわけ?
0652デフォルトの名無しさん
2009/12/29(火) 16:22:04IEとかチェックしてなさそうだよなぁwww
0653デフォルトの名無しさん
2009/12/29(火) 16:25:26他のプロセスがファイルをロックしていればそもそも上書きしてしまう可能性すら無いから干渉しないだろ
バカかお前
0654デフォルトの名無しさん
2009/12/29(火) 16:30:39表記の話をしてるのか開けるかの話をしてるのか、どっち?
表記の話だったなら、俺は全てDOSパス名に変換して文字列一致の判定をすれば、
あとはファイル名だけなんとかすればいいと思うんだけど。
0655デフォルトの名無しさん
2009/12/29(火) 16:37:39そんな事も分からんのか
0656デフォルトの名無しさん
2009/12/29(火) 16:39:44/ || ̄ ̄|| <⌒ヽ )) < >>655 はてさて、
| ||__|| < 丿 | どこを縦に読みゃいいんだ?
| ̄ ̄\三⊂/ ̄ ̄ ̄/ \___________
| | ( ./ /
0657デフォルトの名無しさん
2009/12/29(火) 16:40:08「同一ファイル」が複数の名称を持ち得る。
別の名前のファイルの操作が別の名前のファイルに干渉することを
防ぐ手段は無い。
2つ以上のファイルが「同一ファイル」であるか否かを確実に
検出する方法は例えあったとしても非公開だろ。無い可能性も高いし。
それが嫌ならWindowsを使うなって話にもなるかも。
ハードリンクとかもあるし。ハードリンクを考えると
Unixとかでも実は同様で、そもそもからしてファイルシステムは
メモリと同様、情報の一時記憶領域でしかないんで、情報の半永久
保存を目的とするんだったら、RDBとかの別のミドルウェアを
援用してシステムに応じてそれぞれ工夫しろってのが常識だろ。
0658デフォルトの名無しさん
2009/12/29(火) 16:43:470659デフォルトの名無しさん
2009/12/29(火) 16:46:230660デフォルトの名無しさん
2009/12/29(火) 16:47:51> 検出する方法は例えあったとしても非公開だろ。無い可能性も高いし。
普通に公開されてるんですが、バカですか?
0661デフォルトの名無しさん
2009/12/29(火) 16:48:010662デフォルトの名無しさん
2009/12/29(火) 16:52:360663デフォルトの名無しさん
2009/12/29(火) 16:54:240664デフォルトの名無しさん
2009/12/29(火) 16:59:47strcpyの代わりにstrcpy_s、std::stringを使うなど。
0665デフォルトの名無しさん
2009/12/29(火) 17:07:370666デフォルトの名無しさん
2009/12/29(火) 17:11:260667デフォルトの名無しさん
2009/12/29(火) 17:13:03全然Safeでは無いんだが
誰も指摘しないのはさすがレベルの低いプログラマが集うスレってことか
0668デフォルトの名無しさん
2009/12/29(火) 17:25:060669デフォルトの名無しさん
2009/12/29(火) 17:27:48System.IO.PathTooLongException
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
たとえば、Windows ベースのプラットフォームの場合、パスの長さは 248 文字未満、ファイル名の長さは 260 文字未満である必要があります。
0670デフォルトの名無しさん
2009/12/29(火) 17:28:59ちょw
0671デフォルトの名無しさん
2009/12/29(火) 17:29:500672デフォルトの名無しさん
2009/12/29(火) 17:31:13.NETでこうってことはAPI直す気ないんだよね多分
0673デフォルトの名無しさん
2009/12/29(火) 17:33:48CLRが例外を投げてくれるのでプログラマがMAX_PATHを意識する必要は無いってことですよ
0674デフォルトの名無しさん
2009/12/29(火) 17:34:200675デフォルトの名無しさん
2009/12/29(火) 17:37:40仮に2^31文字までのパス長に対応したexNTFSなるファイルシステムが出来たとしても
どうせAPI経由ではMAX_PATHの制限が付きまとうのは変わらない
0676デフォルトの名無しさん
2009/12/29(火) 17:38:39そんな制限ないから。
0677デフォルトの名無しさん
2009/12/29(火) 17:40:04MAX_PATHを超えるファイルは列挙されないんじゃないの?
0678デフォルトの名無しさん
2009/12/29(火) 17:40:220679デフォルトの名無しさん
2009/12/29(火) 17:40:39例外をキャッチするなら手間割いてる訳で、結局気にしてることになるんじゃね
0680デフォルトの名無しさん
2009/12/29(火) 17:44:09そういう目的の為に一部のAPIが例外的に長いパスに対応してるだけで一般のアプリが使う物ではない。
0681デフォルトの名無しさん
2009/12/29(火) 17:45:000682デフォルトの名無しさん
2009/12/29(火) 17:47:030683デフォルトの名無しさん
2009/12/29(火) 17:50:110684デフォルトの名無しさん
2009/12/29(火) 17:53:010685デフォルトの名無しさん
2009/12/29(火) 19:52:21どうか、その関数を教えて下さいな。
この星の上にあるWindowsマシンたちがかつて作ったファイル(テンポラリを含め)
すべてに一意連番が振られでもしてない限り不可能な筈なんだけど
0686デフォルトの名無しさん
2009/12/29(火) 19:57:210687デフォルトの名無しさん
2009/12/29(火) 19:57:480688デフォルトの名無しさん
2009/12/29(火) 19:59:55> すべてに一意連番が振られでもしてない限り不可能な筈
なんで?
0689デフォルトの名無しさん
2009/12/29(火) 20:01:230690デフォルトの名無しさん
2009/12/29(火) 20:01:28僻み入ってくるとなんでこうなるんだ?
0691デフォルトの名無しさん
2009/12/29(火) 20:02:380692デフォルトの名無しさん
2009/12/29(火) 20:16:030693デフォルトの名無しさん
2009/12/29(火) 20:17:27どうか、その関数を教えて下さいな。
この星の上にあるWindowsマシンたちがかつて作ったファイル(テンポラリを含め)
すべてに一意連番が振られでもしてない限り不可能な筈なんだけど
0694693
2009/12/29(火) 20:18:180695デフォルトの名無しさん
2009/12/29(火) 20:20:21カッコいいじゃん
凡庸な文しか書けないくせに馬鹿にすんなよ
0696デフォルトの名無しさん
2009/12/29(火) 20:22:39ちょっとクスっと来たww。
0697デフォルトの名無しさん
2009/12/29(火) 20:25:13この星の上にある(全ての)Windowsマシンたちがかつて作った(全ての)ファイル(今は無きファイルも含む)
から同一ファイルを探したいってことだろ。
さあ早く>>685に関数を教えるんだ。
0698デフォルトの名無しさん
2009/12/29(火) 20:27:48自演で援護かいおめでてーな
0699デフォルトの名無しさん
2009/12/29(火) 20:27:54,,rイ;;;;;;;;;;;;;;;;;;;;;;;;Ξ;;;;;
i;;;,=i;;;;;;;;;;;;彡;;;;;;;;;;;;=;;
、、_ ,;;_,, / t;;;;;;;;;;;;;;ノノ;;;;;;;こ;;;;
,,.ィ`;;;;;`~´;;;;;;ニ、、 / ヽ;;;;;;≡;;;;;;;;;;;ヾ;;;;
,i´;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::`ヽ、 レ^ヽ l;;;;;;;;;;;;;;'''';;;;;;;ミ
,/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ノミミ;;;;;;l、 (_,,;-、 );;/´`i;ミ`i;;;;;;
ノ;r''t;;;;;;;:::::;;;;;;;;;ー;;レ'ー';;;;;;;;), )i)ノ ノノ б);;;;;;;;;;;ミ
彳し,,=,,ィ'";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;レ' ,ノ ~ ノ 、 ,/ノ;;;;;ミミ;
t;;n;:;;;;ィ:;j'ノノl;;tゝt''_,;=ヽノ、 `ーj `l ~t(;、;;;;;
ヽ;、;ノ_i」,__、`i ゝノ,-;‐、,j ,l アンタじゃ無理だ `ー=、 j、 );;;
tヽ <'`ー'イ ,,, ゝ‐''" ノイ ヾ~´ ノ i、 ,,ノ/;;;
ゝ、.  ̄´ (冫. ノl _,,;=-‐‐-、 ,-‐-'"^ヾ`l / ヽ イノ
lヽ、 ,;:'"`> ノ .lー-=、_ / |ノ >ィ`ー、_-ヽ `tゝ=''T") `i、
_,,ィt, `t、` ̄´/l ヽ T" /~>-‐-、rヽヽrヽ | j----、、 _,,..ィ
/j :l `'=='" ,ノ ,,(,イ´ ``^'''"´ l l __ 7'
-tー'" i' ノ ヽ、 _,,;=''"_,,.;: / ll `ヽ/
| `ー―--==、_ヽ ,,,.ィ'"´ ´ 、 ,, / ,/' l. j /
0700デフォルトの名無しさん
2009/12/29(火) 20:29:58FindNextFileInAllWindowsComputersOnThePlanet
0701685
2009/12/29(火) 20:31:56これにて 論 破 完 了
0702デフォルトの名無しさん
2009/12/29(火) 20:36:15/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ <結局誰も答えられないようですね。
| |r┬-| | これにて 論 破 完 了
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"〜〜``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0703デフォルトの名無しさん
2009/12/29(火) 20:40:10ファイルは別なんだ...??
0704デフォルトの名無しさん
2009/12/29(火) 20:41:22>>639=>>657=>>685
0705デフォルトの名無しさん
2009/12/29(火) 20:46:060706デフォルトの名無しさん
2009/12/29(火) 20:48:09冬だなぁ…
0707デフォルトの名無しさん
2009/12/29(火) 20:48:42限らんよ。ハードリンクの場合は、それぞれの名前が返されるだけ。
同一であるか検証は無理っぽ。ユーザーが名前の大文字小文字とか
を適当に修正して推測するしかない。
0708デフォルトの名無しさん
2009/12/29(火) 20:49:21自演で援護かいおめでてーな
0709デフォルトの名無しさん
2009/12/29(火) 20:52:46FindFirstFileNameW/FindNextFileNameWで調べればいいだろ
GetFinalPathNameByHandleが最初に出てきたレスを読め馬鹿
0710デフォルトの名無しさん
2009/12/29(火) 20:54:09こいつ本当にバカだな
0711デフォルトの名無しさん
2009/12/29(火) 20:57:320712デフォルトの名無しさん
2009/12/29(火) 20:58:17とか言ってきそうだなw
0713デフォルトの名無しさん
2009/12/29(火) 21:22:400714デフォルトの名無しさん
2009/12/29(火) 21:29:38システムはある意味怖いw(セキュリティゼロ)
ってことで、2つのファイル名の遡源を取得して同一かどうか比較する
方法はすべてボツ
0715デフォルトの名無しさん
2009/12/29(火) 21:41:09そういやぁ少し前にもそういう奴いたなぁwww 同一人物かな?
0716デフォルトの名無しさん
2009/12/29(火) 21:46:34論破されたら突然ソフトリンクに話をすり替え
さすがだな
MVPの底力を改めて実感したよ
0718デフォルトの名無しさん
2009/12/29(火) 21:55:530719デフォルトの名無しさん
2009/12/29(火) 21:56:41中途半端な今のシステムでの今回の話は将来大きく
変わりそうな予感。なんで深入りしないほうが吉かと。
0720デフォルトの名無しさん
2009/12/29(火) 21:56:53プライドもへったくれもない奴
0721デフォルトの名無しさん
2009/12/29(火) 21:58:42権限ってご存知?
権限が無ければ実ファイルシステムの実体が見えないわけで...
0722デフォルトの名無しさん
2009/12/29(火) 22:00:070723デフォルトの名無しさん
2009/12/29(火) 22:01:06でも所詮はググって得た知識を継ぎ接ぎしてるだけ。レス間隔が開いてる時間は検索中。
文章から察するに三流大学の学生か専門学校生じゃないかな。
0724デフォルトの名無しさん
2009/12/29(火) 22:03:180725デフォルトの名無しさん
2009/12/29(火) 22:08:180726デフォルトの名無しさん
2009/12/29(火) 22:08:33今の仮想化レイヤーは中途半端でムカツく
0727デフォルトの名無しさん
2009/12/29(火) 22:08:45それほどサーバー間をタイトにつないでるdfsってどの実装だよ。
0728デフォルトの名無しさん
2009/12/29(火) 22:10:39いや誰もそんな話はしてないから。論点のすり替えばっかだね。
0729デフォルトの名無しさん
2009/12/29(火) 22:13:190730デフォルトの名無しさん
2009/12/29(火) 22:17:04君に付いている奴だよ。重さ2kgくらいかな。殆どが灰色で白く硬いケースに
入ってるんじゃないかと
>>728
いやファイルシステムの仮想化が中途半端なんで、名前空間レベルでの
慣習的、非法則的同一視が行われる結果、複数の名称が同一ファイルに
マップされる事態が発生して困っている人が居るって話だろ
0731デフォルトの名無しさん
2009/12/29(火) 22:17:520732デフォルトの名無しさん
2009/12/29(火) 22:19:38だから、誰もそんな話してないって
0733デフォルトの名無しさん
2009/12/29(火) 22:21:370734デフォルトの名無しさん
2009/12/29(火) 22:21:590735デフォルトの名無しさん
2009/12/29(火) 22:24:220736デフォルトの名無しさん
2009/12/29(火) 22:26:08DOS時代の独立した記憶ストリームの名前という位置づけから
マスターとトランザクション(差分)たちに関連付けられた
名前という地位の転換のことを仮想化と呼ぶね
しかしAPIとは合わなそうw
DOSとも合わなかったけどねw
0737デフォルトの名無しさん
2009/12/29(火) 22:26:340738デフォルトの名無しさん
2009/12/29(火) 22:28:360739デフォルトの名無しさん
2009/12/29(火) 22:29:13なんかもう日本語が崩壊してしまって何が言いたいのか全く分からん
誰か翻訳してくれ
0740デフォルトの名無しさん
2009/12/29(火) 22:53:34何?APIが守旧派だって、自民党みたいだなw
何?.NETが改革派だって、民主党みたいだなw
0741デフォルトの名無しさん
2009/12/29(火) 23:06:030742デフォルトの名無しさん
2009/12/29(火) 23:14:38DOS時代に投入されたAPIが総じてその時代水準に比して
優れ過ぎていたから、その次の次の時代がいち早く来て
しまって結果的に過渡期の仕様と言われるようになった
んじゃないかと...(その殆どは未消化の状態でお蔵入り)
0743デフォルトの名無しさん
2009/12/29(火) 23:18:09同じ実体を指すかどうか、複数のパスから参照されているかを意識しなくともアクセスできるのがハードリンクなのに
MVPだけあって何も分かってないみたいだな
0744デフォルトの名無しさん
2009/12/29(火) 23:24:59この文章でこいつがハードリンクを理解してないのは読み取れた
0745デフォルトの名無しさん
2009/12/29(火) 23:29:16これはもうネタスレだYO!
0746デフォルトの名無しさん
2009/12/29(火) 23:32:33C:¥Windows¥AhoBaka.txt
C:¥Windows¥ahobaka.txt
は文字列としては異なるファイル名だが
ファイルとしては同じだろ
0747デフォルトの名無しさん
2009/12/29(火) 23:36:11>ファイルとしては同じ
違う。パスが同じ。
パスとファイルの区別も付かんのか?
0748デフォルトの名無しさん
2009/12/29(火) 23:44:50ハードリンクどころかファイルシステムをも理解してない事が判明
0749デフォルトの名無しさん
2009/12/29(火) 23:48:530750デフォルトの名無しさん
2009/12/29(火) 23:51:17ファイル
ファイル名
これらの違いを全く分かってないやつがハードリンクを語ってたのかよ
どうりで話が噛み合わない訳だw
0751デフォルトの名無しさん
2009/12/29(火) 23:54:31おいおい
パス名を忘れてるぞ
あと
ストリームとか
シンボリックリンクとか
ショートカットとかも関連してくるな
他にもありそ
0752デフォルトの名無しさん
2009/12/30(水) 00:02:44ファイルとファイル名ほどの違いはない
しかもショートカットみたいなアプリレベルの代物を持ち出すなよ
つくづく何も分かってないアホだなぁ
0753デフォルトの名無しさん
2009/12/30(水) 00:05:53autoexec.bat <- ファイル名
↑が示すファイルそのもの <- ファイル
でいいの?
0754デフォルトの名無しさん
2009/12/30(水) 00:06:280755デフォルトの名無しさん
2009/12/30(水) 00:06:52幸せなコンピュータライフを贈ってきた人だとオモ
経験値が伺えますなw
0756デフォルトの名無しさん
2009/12/30(水) 00:07:08何一つ正解と言える部分が無いんだが、お前本当にプログラマか?
0757デフォルトの名無しさん
2009/12/30(水) 00:08:340758デフォルトの名無しさん
2009/12/30(水) 00:09:44どう違うのか教えてよ。
0759デフォルトの名無しさん
2009/12/30(水) 00:12:29http://yougo.ascii.jp/caltar/%E3%83%91%E3%82%B9%E5%90%8D
同じモノを指してるようにしか読めないなぁ。
0760デフォルトの名無しさん
2009/12/30(水) 00:14:460761756
2009/12/30(水) 00:15:212つのファイル名を表す文字列のパスが同じとは、それぞれの
先頭から見て同じ文字列が幾つか続いていて同じ部分が¥
で終わっている場合、2つのファイル名は同一パスに
あると言いますね。同一ディレクトリにあるとまでは
言えないです。ハイ。同じパスに無くても同一ディレクトリ
のファイルかも知れませんよ。
パス名とは、ファイル名が¥を含む文字列の場合を言います。
全然違うでしょ?
0762デフォルトの名無しさん
2009/12/30(水) 00:17:120763デフォルトの名無しさん
2009/12/30(水) 00:18:14そもそもこんな言葉使わねーよ
0764デフォルトの名無しさん
2009/12/30(水) 00:18:410765デフォルトの名無しさん
2009/12/30(水) 00:18:450766デフォルトの名無しさん
2009/12/30(水) 00:19:450767デフォルトの名無しさん
2009/12/30(水) 00:20:20お前がMVPだ
0768デフォルトの名無しさん
2009/12/30(水) 00:20:430769デフォルトの名無しさん
2009/12/30(水) 00:23:450770デフォルトの名無しさん
2009/12/30(水) 00:24:100771デフォルトの名無しさん
2009/12/30(水) 00:26:39|| パスとは、ファイルまたはディレクトリの位置を示す文字列です。
MS的には含むこともあるらしいよ。
0772デフォルトの名無しさん
2009/12/30(水) 00:26:530773デフォルトの名無しさん
2009/12/30(水) 00:28:090774デフォルトの名無しさん
2009/12/30(水) 00:30:54であげるほうが親切というものです。
0775デフォルトの名無しさん
2009/12/30(水) 00:31:390776デフォルトの名無しさん
2009/12/30(水) 00:35:140777デフォルトの名無しさん
2009/12/30(水) 00:35:15APIでも一緒だわな。ファイルを含まないなら、わざわざPathIsDirectoryなんて関数作らんし。
0778デフォルトの名無しさん
2009/12/30(水) 00:37:530779デフォルトの名無しさん
2009/12/30(水) 00:39:51だろ
0780デフォルトの名無しさん
2009/12/30(水) 00:41:400781デフォルトの名無しさん
2009/12/30(水) 00:43:52http://blogs.wankuma.com/tocchann/archive/2007/05/17/77107.aspx
0782デフォルトの名無しさん
2009/12/30(水) 00:52:45どうやらProgrammerじゃないみたいだし、Pigでいいか。
0783デフォルトの名無しさん
2009/12/30(水) 00:57:59プログラムされちゃってるシトなのにさ
0784デフォルトの名無しさん
2009/12/30(水) 01:06:14大好きな反論と論点すり替えはもうしないの?
0785デフォルトの名無しさん
2009/12/30(水) 01:08:46次回のお越しをお待ちしております。
0786デフォルトの名無しさん
2009/12/30(水) 01:12:060787デフォルトの名無しさん
2009/12/30(水) 01:20:100788デフォルトの名無しさん
2009/12/30(水) 01:25:590789デフォルトの名無しさん
2009/12/30(水) 03:25:47パスという言葉が使われだしたのはDOSとかUNIXのシェルとかの
環境変数PATHにちなむのではないかと思てる。
コマンドが与えられたときこの環境変数の値に入っているディレ
クトリ(複数)の下の実行可能ファイルを検索するという意味なのだが
そのへんのセンスで使われているケースが多いんじゃね?
だからパス名とは、ファイル名をルートからの階層表示で
表した時の最後の区切り子より前の部分というニュアンス
じゃないかと
0790デフォルトの名無しさん
2009/12/30(水) 04:12:370791デフォルトの名無しさん
2009/12/30(水) 04:18:32だけど、これはフルパス(表示)じゃない
って感じじゃね?
0792デフォルトの名無しさん
2009/12/30(水) 04:20:00>sizeof(".")
>sizeof("")
ちょwww
0793デフォルトの名無しさん
2009/12/30(水) 04:38:47否定文による定義ってのは凄いなw
あるファイル表示がフルパス表示でないとは
先頭がルートフォルダーになっていないこと
これが本当なのかどうかは知らんが、PC用語の
定義ってのは難しすぎてゆーかその場しのぎ的
というか、いい加減ってか、結構荒んでるな。
少なくとも全員がしゃかりきになって覚えるべき用語
じゃないね。無理に覚えたりすると精神に障害を来すかもな
(にも関わらず会社に入ったら覚えさせられてしまう
ことが多かったりする)
0794デフォルトの名無しさん
2009/12/30(水) 04:47:56ルートディレクトリから書かれててもどのドライブか書いてなければ
一意に決まらないしな。
0795デフォルトの名無しさん
2009/12/30(水) 09:15:24それですら(本来の)NTFS的には別ファイルだ。
http://support.microsoft.com/kb/817921
MVPすげーな。
0796デフォルトの名無しさん
2009/12/30(水) 09:41:15によって違うみたいだな
結局いろいろとややこしいんで大文字と小文字は
区別されないと考えたほうが良さげ
というのは未だにあると思う
0797デフォルトの名無しさん
2009/12/30(水) 09:49:49セキュリティ的に問題有りまくりなのでXpからデフォルト禁止になった。
0798デフォルトの名無しさん
2009/12/30(水) 10:12:46この星の上にあるWindowsマシンたちが納得できる答えを出してくれよ
0799デフォルトの名無しさん
2009/12/30(水) 10:20:50を加えずに独立したストリームかどうかを判断する決定的方法はある?
についての答えなら既に出てるだろ?
0800デフォルトの名無しさん
2009/12/30(水) 10:32:100801デフォルトの名無しさん
2009/12/30(水) 10:35:01なにくだらねぇ話してやがんでい
0802デフォルトの名無しさん
2009/12/30(水) 11:00:06終了。
0803デフォルトの名無しさん
2009/12/30(水) 11:21:55kwsk
0804デフォルトの名無しさん
2009/12/30(水) 11:25:09ネットワークファイルパスでもおkですか?
権限は影響しますか?
0805デフォルトの名無しさん
2009/12/30(水) 11:55:30反論があるなら、エントリポイント示してやったんだから自分で調べろ。
0806デフォルトの名無しさん
2009/12/30(水) 12:18:160807デフォルトの名無しさん
2009/12/30(水) 12:20:000808804
2009/12/30(水) 12:21:14すねないでね
0809デフォルトの名無しさん
2009/12/30(水) 12:27:14> 定義ってのは難しすぎてゆーかその場しのぎ的
> というか、いい加減ってか、結構荒んでるな。
> 少なくとも全員がしゃかりきになって覚えるべき用語
> じゃないね。無理に覚えたりすると精神に障害を来すかもな
> (にも関わらず会社に入ったら覚えさせられてしまう
> ことが多かったりする)
出た、MVPの名言w
パスとファイルの違いわかってないヴァカのくせして偉そうにwww
0810デフォルトの名無しさん
2009/12/30(水) 12:33:24> すべてに一意連番が振られでもしてない限り不可能な筈なんだけど
一晩かかってこれの答えといえるNtQueryInformationFileに辿り着いたわけ?
>>595で正解出てるのにねぇ〜
0811デフォルトの名無しさん
2009/12/30(水) 12:36:03自作自演的な名言偉いでつね
0812デフォルトの名無しさん
2009/12/30(水) 12:39:321分間考えたらわかる結論が昨晩のうちに出たのではないかと思ってました
がまだAPIレベルで一発解決出来ると思ってらっしゃるのですね
0813デフォルトの名無しさん
2009/12/30(水) 12:42:18オレ、さっき参入したんだけど。一晩掛かってとか妄想癖の馬鹿?
0814デフォルトの名無しさん
2009/12/30(水) 12:43:42> 2つのファイル名を表す文字列のパスが同じ
> あるファイル表示がフルパス表示でないとは
> 先頭がルートフォルダーになっていないこと
よくもまぁこんな知識のかけらもない奴が用語の定義とか言えるねぇ
どういう神経してるんだろう
0815デフォルトの名無しさん
2009/12/30(水) 12:45:030816デフォルトの名無しさん
2009/12/30(水) 12:45:24その話題は解決済ですのでお引き取りくださいね^^
0817デフォルトの名無しさん
2009/12/30(水) 12:48:40てか24時間スレに粘着してるのか
0818デフォルトの名無しさん
2009/12/30(水) 13:00:32{
do
{
Post( 煽りレス );
} while ( 反論してくる人数 > 0 );
Brain( 論破完了 );
}
MVPの脳内はこんな感じだから。
反論する人が誰一人居なくなるまでスレから離れないつもりだろ。
0819デフォルトの名無しさん
2009/12/30(水) 13:13:36>>685で
>この星の上にあるWindowsマシンたち
とか言っちゃって袋叩きにあって後に引けなくなり、
>>730でハードリンクを理解してないだけかと思ったら
>>746でパスを全く理解してないと判明し
>>761で日本語も満足に書けないと判明
普通ここまで赤っ恥かくと二度と来ないと思うんだけどなあ
0820デフォルトの名無しさん
2009/12/30(水) 13:16:340821デフォルトの名無しさん
2009/12/30(水) 13:18:530822デフォルトの名無しさん
2009/12/30(水) 13:27:170823デフォルトの名無しさん
2009/12/30(水) 13:28:14してくる人まね何とかには困ったものですなw
0824デフォルトの名無しさん
2009/12/30(水) 13:34:54もしかするとボリュームの種類や権限の相違によってうまくいかない場合も
あるかも知れませんが、多くの場合において
>>806さんや>>802さんが指摘されたように、幾つかのAPIを
援用すればわかる可能性が高いようです。
0825デフォルトの名無しさん
2009/12/30(水) 13:39:020826デフォルトの名無しさん
2009/12/30(水) 13:45:550827デフォルトの名無しさん
2009/12/30(水) 13:46:010828デフォルトの名無しさん
2009/12/30(水) 13:49:290829デフォルトの名無しさん
2009/12/30(水) 13:56:280830デフォルトの名無しさん
2009/12/30(水) 14:00:04無理に覚えたりすると精神に障害を来すとか言ってる向学心ゼロのクソガキなのはわかったけど
0831デフォルトの名無しさん
2009/12/30(水) 14:05:36解説書や参考書や雑誌の曖昧だが肯定的文体を読むようにしたら?
0832デフォルトの名無しさん
2009/12/30(水) 14:11:040833デフォルトの名無しさん
2009/12/30(水) 14:18:02> これが本当なのかどうかは知らんが
全くもって出鱈目です
0834デフォルトの名無しさん
2009/12/30(水) 14:20:590835デフォルトの名無しさん
2009/12/30(水) 14:29:54もらってるけど
0836デフォルトの名無しさん
2009/12/30(水) 14:38:45Windowsは常に変化してるからな。理詰で最初に頭から覚え込んでしまう予習大好き
秀才タイプよりか
常に自分が現状に同期が取れてないかも知れないと頻繁に確認することを怠らない
復習勤勉タイプのほうが向いてるだろな
0837デフォルトの名無しさん
2009/12/30(水) 14:40:33この人、「定義」という用語もわかってなくね?
0838デフォルトの名無しさん
2009/12/30(水) 14:45:34あと言葉の端々に粘着するタイプもあんまし向いてないね。
要所要所は押さえる必要はあるが、あんまし将来を見通して
用語を定められない(余裕が無い)のがWindowsな世界なんで
矛盾が発生してる場合もあるけどそういうのを許容できるタイプ
じゃなきゃ辛いかもね
0839デフォルトの名無しさん
2009/12/30(水) 14:49:35復習勤勉タイプて
お前は単なる後出しジャンケンだろが
0840デフォルトの名無しさん
2009/12/30(水) 14:52:12ならば復習してるかテストだ。
【問題】
「パス」「パス名」「ファイル」「ファイル名」について日本語で説明せよ。
0841デフォルトの名無しさん
2009/12/30(水) 14:53:130842デフォルトの名無しさん
2009/12/30(水) 14:55:090843デフォルトの名無しさん
2009/12/30(水) 14:57:06パス名:定期券の名前:会社、路線、区間、期限、利用者氏名などで構成されてます
ファイル:オフィスのキャビネットに入ってます
ファイル名:(オフィスのキャビネットに入っている)ファイルの名前
0844デフォルトの名無しさん
2009/12/30(水) 14:58:54さすがMVP
0845デフォルトの名無しさん
2009/12/30(水) 15:00:18説明になってねぇwwwwやっぱアホだこいつwww
りんご:スーパーに売ってます
ってか
0846デフォルトの名無しさん
2009/12/30(水) 15:05:52別のファイルであると即断してはいけません。
0847デフォルトの名無しさん
2009/12/30(水) 15:10:360848デフォルトの名無しさん
2009/12/30(水) 15:24:38APIでファイル名じゃなくタイトル名にアクセスできるの?
それともタイトル名=ファイル名ってこと?
0849デフォルトの名無しさん
2009/12/30(水) 15:33:010850デフォルトの名無しさん
2009/12/30(水) 15:33:32>>843のキャビネットに入ってるファイルのことだぜ
0851デフォルトの名無しさん
2009/12/30(水) 15:35:300852デフォルトの名無しさん
2009/12/30(水) 15:46:56ディレクトリとフォルダの違いについて教えて下され
0853デフォルトの名無しさん
2009/12/30(水) 15:49:51スレ違いですので他所へどうぞ
0854デフォルトの名無しさん
2009/12/30(水) 15:52:24フォルダー:エクスプローラーの左ペイン
ディレクトリー:treeコマンド
さよなら
0855デフォルトの名無しさん
2009/12/30(水) 17:03:23>りんご:スーパーに売ってます
さかなは切り身で泳いでるわけではないよ?
0856デフォルトの名無しさん
2009/12/30(水) 17:05:28フォルダ:
書類をまとめて整理するための文房具で、ファイルともいう。
ソースはういきぺでぃあ
0857デフォルトの名無しさん
2009/12/30(水) 17:13:32どこまでも間抜けな奴
0858デフォルトの名無しさん
2009/12/30(水) 17:53:07directory
0859デフォルトの名無しさん
2009/12/30(水) 18:01:250860デフォルトの名無しさん
2009/12/30(水) 18:11:30Win32APIにはCreateDirectory()とかがあるんだが
0861デフォルトの名無しさん
2009/12/30(水) 18:11:460862デフォルトの名無しさん
2009/12/30(水) 18:15:550863デフォルトの名無しさん
2009/12/30(水) 18:36:38ディレクトリとは似ていて微妙に違うと
いった程度。エクスプローラ独自の解釈の
ディレクトリ世界って感じ
0864デフォルトの名無しさん
2009/12/30(水) 18:43:38全然違うよ
0865デフォルトの名無しさん
2009/12/30(水) 18:52:07マイドキュメントがあったりとかしてたし
マイドキュメントは一つのディレクトリで大抵C:ドライブの下のあるディレクトリ
だったのをエクスプローラが独自のフォルダー空間にマップする時にルートフォルダー
直下に置いたものだった 他にも似たような特殊ディレクトリがあったっけ
もしかして今でもそうだろうけど。変わっているかも
0866デフォルトの名無しさん
2009/12/30(水) 19:10:55> マイドキュメントがあったりとかしてたし
ねーよ
0867デフォルトの名無しさん
2009/12/30(水) 19:14:440868デフォルトの名無しさん
2009/12/30(水) 19:16:52今夜はフォルダとディレクトリについて存分に語ってくれそうだw
0869デフォルトの名無しさん
2009/12/30(水) 19:39:28特徴だ(った)ね
以上APIとは関係が薄いので、終了
0870デフォルトの名無しさん
2009/12/30(水) 19:44:02タブの選択を変えたくてPostMessageでWM_NOTIFYのTCN_SELCHANGEとかを送っています
このためVirtualAllocExで対象のプロセスのメモリを確保しています
何も考えずに最後にVirtualFreeExをしてしまうと
メッセージが処理される前に解放してしまうことがあるようで例外がでることがあります。
解放せずにそのままにしておき毎回そこを使うようにするしかないのでしょうか?
0871デフォルトの名無しさん
2009/12/30(水) 19:58:10特殊でもなんでもない
マイネットワーク、ごみ箱、コントロールパネルやデスクトップ“フォルダ”にも対応するディレクトリは無い
こんな事はシェル名前空間を理解していれば常識の範囲内です
0872デフォルトの名無しさん
2009/12/30(水) 20:27:14タブが切り替わったか確認するくらいしかないんじゃね?
0873デフォルトの名無しさん
2009/12/30(水) 20:50:00構造体のアドレスを渡すシステム定義のメッセージはPostMessageが失敗するようになってたはずだが
0874デフォルトの名無しさん
2009/12/30(水) 20:59:48WM_NOTIFYだけは特例として失敗しない。
だからといってWM_NOTIFYをPostMessageしても良いという理由にはならないので
SendMessageで送信しなさい。
0875デフォルトの名無しさん
2009/12/30(水) 21:04:34やっぱりないですかね。
切り替わったかどうかを読み取るのも微妙な気がするので、悩んでみます。
どうせ自分用アプリなので深くは気にしていないのですが。
ありがとうございました。
>>873
SendMessageだと全く受け取ってくれませんでしたが、PostMessageだと受け取ってくれます。
ずっとSendMessageでやっててなんで動かないのか悩みまくっていたのですが
ググり直してPostMessageに変えたらあっさり動いてくれました。
ですが今度は別の問題が出てきたというわけです。
0876デフォルトの名無しさん
2009/12/30(水) 21:23:16君の書いたコードが間違ってるんじゃないの?
0877デフォルトの名無しさん
2009/12/30(水) 21:27:170878870
2009/12/31(木) 00:32:31動かしたい別アプリに似せたテスト用のプログラムを作り確認したのですが
正確に言うと動かないのではなく、SendMessageだとWM_NOTIFYそのものが来ないのです
テスト用プログラムで、メモリの取得とかを省いた同じ流れのコードで自分自身に送ってみると問題なく動きました
そこで調べたところ過去ログのBuild76の986-996に全く同じ状況の方がいたのでPostMessageにしたのです
>>877
自動テストには興味がなかったので全く知らない手法でした
選択したいタブの取得に若干手こずりましたがうまくいきそうです
C#で組んでいるので逆に助かりました
大きなヒントをありがとうございました
0879デフォルトの名無しさん
2009/12/31(木) 01:19:44お前、なんていう名のアプリ作ってんの?
オレの周りに、ヘッポコが作っているから、絶対に使うなと指令だすから是非教えろ。
0880870
2009/12/31(木) 01:26:050881デフォルトの名無しさん
2009/12/31(木) 01:27:22まあこの種の掲示板でVirtualAllocExを使ってゴニョゴニョするような
阿呆な回答しかできないヘボプログラマーが多いのが最大の理由だろうけど
0882デフォルトの名無しさん
2009/12/31(木) 02:05:50プロトタイプアプリを作ってから、VB.NETとかC#に移植してもう少しプラット
フォームの実情に即したものにして、最終的にVCで書き直すって俺の常套手段
的なやりかたは迂遠?
0883デフォルトの名無しさん
2009/12/31(木) 02:38:490884デフォルトの名無しさん
2009/12/31(木) 03:52:09VBとかC#が出てくる理由がわからん
0885デフォルトの名無しさん
2009/12/31(木) 04:12:55UIAutomationはXP用.NETの一部として提供されたのが始まりだから、
知名度が低くてあたりまえ。
XP/Server2003だと.NET3.0必須だし。
0886デフォルトの名無しさん
2009/12/31(木) 04:20:000887デフォルトの名無しさん
2009/12/31(木) 04:48:52ページを取得するのはどうやるですか?
こういう普通のurlだと簡単に取得できるのですが、
hInternet = InternetOpen( "Mozilla/4.0", INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0 );
hConn = InternetConnect( hInternet, "サーバー名", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL,
INTERNET_SERVICE_HTTP, 0, NULL );
hReq = HttpOpenRequest( hConn, "GET", "index.html", NULL, NULL, NULL, 0, NULL );
HttpSendRequest( hReq, NULL, 0, NULL, 0 );
hReq = HttpOpenRequest( hConn, "GET", "index.html?a=1&b=2&C=3", NULL, NULL, NULL, 0, NULL );
のように、"?a=1&b=2&C=3"が付いているとNOT FOUND ページが取得されてしまいます。
0888デフォルトの名無しさん
2009/12/31(木) 05:00:24UIAどころかその前身のMSAAですら知名度は低いだろが
0889デフォルトの名無しさん
2009/12/31(木) 05:18:14初心者向けのありふれた情報しか載ってないサイトばっかりなのが
APIの知名度格差を広げる原因ではないかと推測してみる
0890デフォルトの名無しさん
2009/12/31(木) 05:23:150891デフォルトの名無しさん
2009/12/31(木) 05:47:490892デフォルトの名無しさん
2009/12/31(木) 05:50:550893デフォルトの名無しさん
2009/12/31(木) 05:55:150894デフォルトの名無しさん
2009/12/31(木) 10:19:060895デフォルトの名無しさん
2009/12/31(木) 13:28:170896デフォルトの名無しさん
2009/12/31(木) 14:54:18正月休みだから少しム板を覗いてみたけど
普段はめったにここには来ないな。
この板って有益な情報があまりないもんね。
0897デフォルトの名無しさん
2009/12/31(木) 15:12:110898デフォルトの名無しさん
2009/12/31(木) 15:21:36いかに皆仕事で嫌々プログラム書いてるかがわかる
0899デフォルトの名無しさん
2009/12/31(木) 15:51:51ブラウザで同じ要求をしてみて応答を確認してみては?
クエリパラメータの渡し方自体はそれで合っている。
0900デフォルトの名無しさん
2009/12/31(木) 16:20:38何の自慢にもなってないよ。
0901デフォルトの名無しさん
2009/12/31(木) 16:23:090902デフォルトの名無しさん
2009/12/31(木) 16:28:180903デフォルトの名無しさん
2009/12/31(木) 16:53:19スレタイ読め
「Win32API雑談箱 Build84」
0904デフォルトの名無しさん
2009/12/31(木) 17:33:01SendMessage(hWnd, TCM_SETCURFOCUS, index, 0);
SendMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0);
タブ選択はこれで出来たよ。
アトミックな処理じゃないから、誤動作する可能性はあるが。
普通のタブ形式ならTCM_SETCURSELやTCM_SETCURFOCUSで切り替わるけど
ボタン形式だと動作が変わるんだね。
0905デフォルトの名無しさん
2009/12/31(木) 17:59:22メッセージを使って強引に操作するのは間違った方法だからわざわざ書かなくていい。
0906デフォルトの名無しさん
2009/12/31(木) 21:01:03マスゴミが糞ばっかりになったのは視聴者が糞ばかりだったから
webサイトが糞ばっかりになるのは(ry
0907デフォルトの名無しさん
2009/12/31(木) 21:23:12マスゴミ関係者乙
0908デフォルトの名無しさん
2009/12/31(木) 21:36:260909デフォルトの名無しさん
2010/01/01(金) 01:44:20価値のある情報は当時もわずかだったよ。
ただ、当時はエロサイト詐欺サイト左翼洗脳サイト闇情報サイトの比率が非常に高かったね。
まともな情報をWebで書き込んでると、しょっちゅう脅迫電話っていうか、
「著作権を侵害している」とかいう電話が毎度毎度かかってきていた。
既存の曲やキャラクター、写真などは一切使用していないのに。
0910デフォルトの名無しさん
2010/01/01(金) 01:48:470912887
2010/01/01(金) 03:44:46>クエリパラメータの渡し方自体はそれで合っている。
と教えていただいたので、他を調べてみた結果、この後のHttpQueryInfo()で
余計な事をやって居たのが原因だと判明しました。
お陰さまで解決する事ができました。ありがとうございました!!
0914デフォルトの名無しさん
2010/01/01(金) 15:21:02でもこれは当然のこと。
.NETが登場して有能なWin32プログラマが.NETに移行した結果だから。
0915デフォルトの名無しさん
2010/01/01(金) 16:28:430916デフォルトの名無しさん
2010/01/01(金) 16:46:55SendMessageのWM_SETTEXTで文字列送りつけたら
全体がその文字列に置き換わった覚えがあるんだけど、
今XPで同じことやってみたら、末尾に文字列を追加する動作をした。
これって仕様変更? 記憶違い? どっちかのミス?
0917デフォルトの名無しさん
2010/01/01(金) 16:47:51スクリプト言語やらJAVAやらVBやらもいろいろ使ってみたが、結局CかC++に戻ってきた
C++はよいところもあるが、無駄が多い上に一貫性を感じない
0918デフォルトの名無しさん
2010/01/01(金) 16:49:03正月早々何やってるんだ俺_| ̄|○
0919916と918
2010/01/01(金) 16:50:130920デフォルトの名無しさん
2010/01/01(金) 17:43:34挫折した自分を正当化しなくていいよ
0921デフォルトの名無しさん
2010/01/01(金) 17:45:12こういうヤツってC/C++でも大したコード書けないんだろうな
0922デフォルトの名無しさん
2010/01/01(金) 18:27:14CPUを食い尽くすのはプログラマーの仕事
0923デフォルトの名無しさん
2010/01/01(金) 18:38:000924デフォルトの名無しさん
2010/01/01(金) 18:41:14新年早々おバカ発言ですか
0925デフォルトの名無しさん
2010/01/01(金) 18:52:520926デフォルトの名無しさん
2010/01/01(金) 18:55:030927デフォルトの名無しさん
2010/01/01(金) 18:55:440928デフォルトの名無しさん
2010/01/01(金) 18:56:34やってますが何か?
ハゲてますが何か?
0929デフォルトの名無しさん
2010/01/01(金) 18:58:040930デフォルトの名無しさん
2010/01/01(金) 19:00:240931デフォルトの名無しさん
2010/01/01(金) 19:01:510932デフォルトの名無しさん
2010/01/01(金) 19:08:260933デフォルトの名無しさん
2010/01/01(金) 20:29:51> (baka? 923)
#t
0934デフォルトの名無しさん
2010/01/01(金) 21:04:470935デフォルトの名無しさん
2010/01/02(土) 00:35:39有能なプログラマは相変わらずWIN32かMFCで開発してる気がするけどなぁ
0936デフォルトの名無しさん
2010/01/02(土) 00:38:18使うことが多いならめんどくさくない?
APIの引数とかの構造体とかから作ってから
呼び出さないといけないんでしょ?
0937デフォルトの名無しさん
2010/01/02(土) 00:42:10{
if( PeekMessage(&msg, NULL, 0,0,PM_REMOVE) )
{
if (msg.message == WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);//MsgProcに送信
}
//〜処理〜//
Sleep(1);
}
ウィンドウのタスクバーをつかんで移動させると
//〜処理〜//のところに制御が回ってこないのだが正常なの?
0938デフォルトの名無しさん
2010/01/02(土) 00:49:19優秀な人間は大八車引いてるのかしら
>>936
?が多すぎて馬鹿そう
0939デフォルトの名無しさん
2010/01/02(土) 00:56:05プログラマとして優秀な人間は
ほかの事に関しても優秀なのかよ。
0940デフォルトの名無しさん
2010/01/02(土) 00:59:13だから馬鹿だってんだよ馬鹿
0941デフォルトの名無しさん
2010/01/02(土) 01:42:530942デフォルトの名無しさん
2010/01/02(土) 01:45:270943937
2010/01/02(土) 01:52:110944デフォルトの名無しさん
2010/01/02(土) 01:54:510946デフォルトの名無しさん
2010/01/02(土) 12:24:35制御が来ないが正常な動作
Windowsの問題点の一つ
0947デフォルトの名無しさん
2010/01/02(土) 12:30:06ttp://msdn.microsoft.com/en-us/library/ms632622(VS.85).aspx
ここに書いてある通り、正常な動作。
0948デフォルトの名無しさん
2010/01/02(土) 15:23:35MessageBoxを閉じるまで処理が返ってこないのを問題点というぐらい馬鹿な発言だぞ
0949デフォルトの名無しさん
2010/01/02(土) 16:33:39これがあるからウィンドウプロシージャで全部解決というわけにはいかなくなるんだよ
その結果処理を別スレッドに分散させざるを得なくなり処理の一元化に失敗してプログラムの構造が複雑化するわけ
0950デフォルトの名無しさん
2010/01/02(土) 16:43:31前年度MVPの方ですか?
モーダルループを理解してない馬鹿発言はそのぐらいにしといて下さいね
0951デフォルトの名無しさん
2010/01/02(土) 16:52:510952937
2010/01/02(土) 17:03:07//〜処理〜// を別スレッドにすれば解決なのかな
0953デフォルトの名無しさん
2010/01/02(土) 17:10:42どこがどう間違ってるのか分からない
指摘してもらえると助かる
0954デフォルトの名無しさん
2010/01/02(土) 17:54:590955デフォルトの名無しさん
2010/01/02(土) 17:58:07これがそもそも馬鹿
0956デフォルトの名無しさん
2010/01/02(土) 18:03:500957デフォルトの名無しさん
2010/01/02(土) 18:05:51これが理解できないならWin32を勉強しなおしましょう。
0958デフォルトの名無しさん
2010/01/02(土) 18:08:08パスとファイルの区別つかなくてウィンドウプロシージャを分ってない人がどういうソフトを作ってるのか興味がある
0959デフォルトの名無しさん
2010/01/02(土) 18:10:38だから無限ループを作ったりするとメッセージ処理が止まって操作がきかなくなる
0960デフォルトの名無しさん
2010/01/02(土) 18:17:310961デフォルトの名無しさん
2010/01/02(土) 18:23:55それを使わない方法もあるんだけど(というか設計上はそっちが本命だったはず)
それでもウィンドウを掴むぐらいでメッセージ処理が止まっちゃったら
リアルタイムっぽく動いてほしいプログラムは困るよねってこと
0962デフォルトの名無しさん
2010/01/02(土) 18:25:22間違いです
スレッドを使うのが本命です
0963デフォルトの名無しさん
2010/01/02(土) 18:29:03Win32の常識だが…
0964デフォルトの名無しさん
2010/01/02(土) 18:33:47例外かな?
0965デフォルトの名無しさん
2010/01/02(土) 18:39:170966デフォルトの名無しさん
2010/01/02(土) 18:42:420967デフォルトの名無しさん
2010/01/02(土) 18:52:59解決できない問題だよねって言いたいわけだが……
0968デフォルトの名無しさん
2010/01/02(土) 18:55:42だーかーらー
こんな前提がおかしいんだよ
Win3.1で開発してるのか?
0969デフォルトの名無しさん
2010/01/02(土) 18:59:110970デフォルトの名無しさん
2010/01/02(土) 18:59:12それが与えられた条件で可能かどうかを判断するのが技術者ってもんだ
0971デフォルトの名無しさん
2010/01/02(土) 19:01:35未だにシングルスレッドに拘るバカって何なの?
0972デフォルトの名無しさん
2010/01/02(土) 19:01:440973デフォルトの名無しさん
2010/01/02(土) 19:02:250974デフォルトの名無しさん
2010/01/02(土) 19:04:10だから条件を決めるのは君じゃないってば
0975デフォルトの名無しさん
2010/01/02(土) 19:08:03じゃあ誰が条件を決めるのさ?
相変わらず論点を逸らそうと必死だね
0976デフォルトの名無しさん
2010/01/02(土) 19:09:30ってか?www
0977デフォルトの名無しさん
2010/01/02(土) 19:10:330978デフォルトの名無しさん
2010/01/02(土) 19:12:380979デフォルトの名無しさん
2010/01/02(土) 19:14:39論点をそらそうと必死なのはそっちだろ
主張は>>949=>>961=>>967に書いたとおり
>>952で質問自体は解決してしまってるけど>>950が何を言いたいのかにちょっと興味があっただけ
分かってないことはまだまだ多いし
0980デフォルトの名無しさん
2010/01/02(土) 19:16:280981デフォルトの名無しさん
2010/01/02(土) 19:18:38Raymond Chennのブログでもいい
自分のはそう感じただけだから
0982デフォルトの名無しさん
2010/01/02(土) 19:19:31> ウィンドウプロシージャで全部解決
これが馬鹿だって言ってるのにMVPだけあって何もわかってないみたいだね
0983デフォルトの名無しさん
2010/01/02(土) 19:26:320984デフォルトの名無しさん
2010/01/02(土) 19:30:23罵り合いの果て、結局何の話をしているのか自分でも分からなくなってくんだろう。
0985デフォルトの名無しさん
2010/01/02(土) 19:36:080986デフォルトの名無しさん
2010/01/02(土) 19:36:52>>937の
処理のところで本当に処理をするのはそもそもの誤り。
メッセージループ中では速やかにメッセージを処理するだけで、
定期的に何らかの処理をしたいのであればタイマーメッセージを使う。
メッセージとして処理するには重いのであれば、別スレッドを使う。
ただしGUI以外の処理を別スレッドにするかどうかは内容次第。
ただそれだけの話なのに結論を引き延ばしてグダグダやっても意味がないだろ。
0987デフォルトの名無しさん
2010/01/02(土) 19:41:17自分の意見をはっきりさせずにあれが間違いだ、分かっていないと、
グダグダやることにいったい何のメリットがあるんだよ?
これが正しいと思うのならはっきり根拠と正確な内容を書けばいいだけだろ。
延々とくだらないやりとりを続けて、いったい何がしたいんだ?
0988デフォルトの名無しさん
2010/01/02(土) 19:45:19勝手にまとめるなよ
少しは自分の発言に責任持ったら?
> メインスレッドオンリーという前提
> ウィンドウプロシージャで全部解決
0989デフォルトの名無しさん
2010/01/02(土) 19:46:580990デフォルトの名無しさん
2010/01/02(土) 19:47:390991デフォルトの名無しさん
2010/01/02(土) 19:51:410992デフォルトの名無しさん
2010/01/02(土) 19:52:23そもそもこれが間違いで、
>その結果処理を別スレッドに分散させざるを得なくなり
これが正しいWin32アプリの在り方
>処理の一元化に失敗してプログラムの構造が複雑化するわけ
これはキミの技量が足りないだけ
というだけの事でしょうが
何をウダウダ言ってるんだ?
0993デフォルトの名無しさん
2010/01/02(土) 19:57:020994デフォルトの名無しさん
2010/01/02(土) 19:58:16GetMessage(&msg, NULL, 0, 0);
switch (msg.message)
{
case MM_WOM_DONE:
m_waveOutDev.UnprepareHeader(pWaveHdr);
...
m_waveOutDev.WriteHeader();
...
break;
}
メッセージがディスパッチされないため、サウンド再生が停止する不具合が起こる。
0995デフォルトの名無しさん
2010/01/02(土) 19:59:54モーダルループを理解していればそのような馬鹿な発言はしません。
0996デフォルトの名無しさん
2010/01/02(土) 20:01:040997デフォルトの名無しさん
2010/01/02(土) 20:02:230998デフォルトの名無しさん
2010/01/02(土) 20:03:140999984=986=987
2010/01/02(土) 20:04:57なにか被害妄想が酷くないか?
自分に意見する人間は全部同一人物じゃないの心の平穏が保てないわけじゃあるまい。
>>995
それがグダグダの原因だと言っているんだよ。
「理解していれば」ではなく、自分の見解をはっきりさせない限り、無駄に長引くことになるだけ。
自分の意見に自信があるなら、きっちり説明して一刀両断にすれば終わる話だろ。
1000デフォルトの名無しさん
2010/01/02(土) 20:05:37モーダルループが分かりません
素人はレスするなよ……
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。