Win32API質問箱 Build56

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

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

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
2デフォルトの名無しさん:2007/08/13(月) 16:14:02
3デフォルトの名無しさん:2007/08/13(月) 16:14:37
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
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
4デフォルトの名無しさん:2007/08/13(月) 16:24:56
5デフォルトの名無しさん:2007/08/13(月) 16:25:28
- 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://www.2chsearch.info/index.php?b=tech
http://makimo.to/cgi-bin/search/search.cgi?q=Win32API&andor=AND&sf=2&view=table&D=tech
6992:2007/08/13(月) 17:01:55
前スレ992です。

皆様いろいろとありがとうございます。
セキュリティ奇術師についてはあまり詳しくないのですが、同一ユーザが
立ち上げる特定の2つのプロセスのみにアクセスを許可するような指定が
可能でしょうか?

なにしたいかというとこんなかんじ↓
1. アプリAがアプリBのバイナリをサーバSからダウンロード
2. アプリBの正当性をハッシュで検証した後、書き出したファイルにロックかけたまま
ShellExecuteで実行
3. このとき、アプリAだけが知っているいくつかの情報(特に通信のためのセッション情報)
を、アプリBにセキュアに渡したい。
4. 以上の手続きによって、サーバS上のAPI(ソケットで実装している)が
勝手なexeから実行されるのを防ぐ。
7デフォルトの名無しさん:2007/08/13(月) 17:15:45
ウィンドウを作るだけのプログラムを本見て書いていたのですが、


if (!RegisterClass(&wc)){
       MessageBox(NULL, TEXT("ウィンドウクラス作成失敗"),
NULL, MB_OK);
return 0;
}

最初 これは問題が起こらなければ いらないのだろうと思い書かなかったところ
ウィンドウが生成されませんでした。

なぜ、この行?が必要なのでしょうか?(言語はCです。)
8デフォルトの名無しさん:2007/08/13(月) 17:23:05
RegisterClassでググってみたのか?
9デフォルトの名無しさん:2007/08/13(月) 17:31:22
>>7
> 最初 これは問題が起こらなければ いらないのだろうと思い書かなかったところ
その判断の根拠は?

RegisterClass
読んで字のごとく
クラスを登録するために必要
10デフォルトの名無しさん:2007/08/13(月) 17:31:43
>>8
ごめんなさい完全に自分があふぉでしたorz
11デフォルトの名無しさん:2007/08/13(月) 17:36:39
>いらないのだろう

自分の行動が、おかしいと感じた事はありませんか?
あなたの自己診断機能は、大丈夫ですか?
12デフォルトの名無しさん:2007/08/13(月) 18:17:12
>>11

自分の行動が、おかしいと感じた事はありませんか?
あなたの自己診断機能は、大丈夫ですか?
13デフォルトの名無しさん:2007/08/13(月) 18:22:31
おれはDialogBox使うから、関係ないね
14デフォルトの名無しさん:2007/08/13(月) 18:40:28
詰まり、エラー処理は省略してもRegisterClass(& wc);は省略できなかったわけだね。
15デフォルトの名無しさん:2007/08/13(月) 22:07:54
>>6
完璧な隠蔽はできないから、見えてもいい実装にすることを勧める。
というか自分PCの中での出来事は基本的にセキュアだという前提。
ここでいうセキュアは物理的に外部に漏れないという意味。

そういう目的なら、改竄されてはいけない処理はサーバーで全部やって、その他はクライアントにやらせるのが楽で安全だと思う。
16デフォルトの名無しさん:2007/08/13(月) 22:31:22
>>6
システム全体の構成(サーバが悪意のあるクライアント(AおよびBを騙る偽者)から
攻撃されることを想定してないような気がする)はおいておいて、
親プロセスAとそこから起動される子プロセスBでセキュアに通信したいなら、
子プロセスの起動にShellExecuteの代わりにCreateProcessを使えばよい。

CreateProcessのオプションで「ハンドルを継承する」をONにしておけば、
親プロセスで獲得したハンドルを子プロセスでも使用できる。
これは他のプロセスが介在しないので、セキュアといっていい。
17デフォルトの名無しさん:2007/08/13(月) 23:39:39
>>6
今のPC上で完全にセキュアなアプリケーションの構築は絶対に不可能。
せいぜい解析しにくいように足掻くことしかできない。
その程度の実装では、窓ガラスに防犯フィルムを貼った程度の効果しかない。

最も安全なのは、誰も攻撃する価値を感じないアプリケーション。
18デフォルトの名無しさん:2007/08/14(火) 00:40:00
selenのエロゲーのプロテクトは凄いよ
見習わないと
19デフォルトの名無しさん:2007/08/14(火) 00:45:15
だよなwあれだけ破られまくりなのはあんまないよな
20デフォルトの名無しさん:2007/08/14(火) 00:46:00
凝るほど解析大好きっ子がハッスルするから無駄
21デフォルトの名無しさん:2007/08/14(火) 07:09:01
だったらおま天最強すぎだろ

>>15 が書いたように、サーバ側で対処ってのが答えなんだろうな。
クライアント側はユーザにできることが多すぎる。
22デフォルトの名無しさん:2007/08/14(火) 09:48:43
CreateIconIndirect などで動的に作ったアイコンを WM_SETICONで
設定した後、すぐにDestroyIconしてもいいのでしょうか?

質問の意図は、Windowがアイコンのコピーを保持してるかどうか、
ということです。コピーを持ってるならすぐに開放してもいいのかな、
と思ったもので…。

よろしくお願いします。
23992:2007/08/14(火) 13:44:23
>>15
クリティカルな処理は全てサーバサイドに実装、までは完了してます。
で、そのコマンドを誰が呼べるのか、っていうところで今悩んでます。
ID/パスワードをユーザに打たせるのは最初の1回だけにしたいのですが、
そうして得たセッションキーを、どうしてもプロセスをまたいで渡す必要があるのです。

>>16
CreateProcessが最もプリミティブなexe起動方法、ということですかね。
ハンドルの継承調べてみます。ありがとうございます。
24デフォルトの名無しさん:2007/08/14(火) 13:59:04
>>14そこは罠だよな。C#だとif文の中に命令かけないし
25デフォルトの名無しさん:2007/08/14(火) 14:56:24
>>22
以前やったときは保持されていない挙動をした覚えがある

便乗するけどWM_GETICONのICON_SMALL2って何に使われるものなんだろう。
26デフォルトの名無しさん:2007/08/14(火) 18:56:17
>>6
セキュリティ奇術師カコイイ
2722:2007/08/14(火) 20:50:53
>>25
やっぱだめっすか。仕方ないので保持しておくことにします。

>ICON_SMALL2
ググルとXP以降で、アプリケーション提供のsmall iconって
書いてますが、ろくな説明が無いですね。

28デフォルトの名無しさん:2007/08/14(火) 20:56:54
>>27
WM_SETICONでNULLを送れば
それまで設定されていたアイコンのハンドルが返ってくるから自分で保持する必要はない
2922:2007/08/14(火) 21:22:13
>>28
ハンドルじゃなくて、(プログラム内で生成した)アイコンの実体の方です。
30デフォルトの名無しさん:2007/08/14(火) 23:05:00
Win32APIでプロセス間通信するにはどのような方法がありますか
31デフォルトの名無しさん:2007/08/14(火) 23:13:19
32デフォルトの名無しさん:2007/08/15(水) 02:29:53
ES_MULTILINEなエディットボックスで、現在表示できている行数を得る方法
(EM_メッセージなど)がありましたら教えてください。
33デフォルトの名無しさん:2007/08/15(水) 02:37:35
EM_GETLINECOUNT
34デフォルトの名無しさん:2007/08/15(水) 02:49:37
>>33
それだとエディットボックス内のテキスト全体の行数になってしまいます。
エディットボックスのクライアント領域に表示されている現在の行数が知りたいのです。
35デフォルトの名無しさん:2007/08/15(水) 02:50:05
36デフォルトの名無しさん:2007/08/15(水) 03:06:43
>>34
失礼、読み違えてました。

そういうことだと確かに悩むけど、
EditControlのクライアント領域のサイズとフォント情報から計算するのかなあ。

37デフォルトの名無しさん:2007/08/15(水) 03:11:29
ありがとうございます。
DCにエディットボックスのフォントを指定して、
GetTextExtentPoint32で得られるサイズでクライアント矩形を割ったら得られました。
ちょっと合ってるか不安ですけど。
38デフォルトの名無しさん:2007/08/15(水) 08:12:07
Glib::RefPtr<Gtk::TextBuffer> refBuffer = m_TextView.get_buffer();
gint count = refBuffer->get_char_count();

Gtk::TextBuffer::iterator iter = refBuffer->get_iter_at_mark(refBuffer->get_insert());

gint row = iter.get_line();
gint col = iter.get_line_offset();

gchar* msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document", row, col, count);
ほげほげ
g_free (msg);
39デフォルトの名無しさん:2007/08/15(水) 08:16:50
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
40デフォルトの名無しさん:2007/08/15(水) 08:18:02
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
ほげほげ
41デフォルトの名無しさん:2007/08/15(水) 08:19:25
g_free (msg);
ほげほげ
gchar* msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document", row, col, count);

gint col = iter.get_line_offset();
gint row = iter.get_line();

Gtk::TextBuffer::iterator iter = refBuffer->get_iter_at_mark(refBuffer->get_insert());

gint count = refBuffer->get_char_count();
Glib::RefPtr<Gtk::TextBuffer> refBuffer = m_TextView.get_buffer();






42デフォルトの名無しさん:2007/08/15(水) 11:35:47
ソケット通信でメールの送信を行う手順を書いているサイトを教えてください
猫でもわかるプログラミング以外でお願いします
43ヒント:RFC勧告:2007/08/15(水) 11:42:13
>>42
それを自力で見つけられない人が見様見真似でメールの送信プログラムなんか作りでもしたら、
大変に迷惑ですから教えません。
44デフォルトの名無しさん:2007/08/15(水) 11:50:24
>>42
猫でもわかるのにわからないあなたに無理に決まってるだろうが!!
45デフォルトの名無しさん:2007/08/15(水) 12:45:50
>>42
ソケットレベルのメール送信の手順なら、まずは以下の基本を読んで流れを理解しよう
ttp://www.ietf.org/rfc/rfc2821.txt
(和訳)ttp://www.puni.net/~mimori/rfc/rfc2821b.txt

次にもっと実装よりなことが知りたいなら、実装例のソースが参考になる
ttp://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/2.0.0.6/source/

ガンガレ
46デフォルトの名無しさん:2007/08/15(水) 14:03:51
ピリオドだけの行があるメールが送れません。
どうすればいいですか。
47デフォルトの名無しさん:2007/08/15(水) 14:07:27
ピリオドだけの行があるメールが送れます。
どうもしません。
48デフォルトの名無しさん:2007/08/15(水) 14:27:11
>>46
RFC読め
49デフォルトの名無しさん:2007/08/15(水) 14:34:55
エンコしろ
50デフォルトの名無しさん:2007/08/15(水) 15:56:51
既製メーラのパケ見ろ
51デフォルトの名無しさん:2007/08/15(水) 16:13:23
Vista32bitでCreatRemoteThreadができん

こんな、ヘボい俺をあざけ笑いながら助けてくれ

起動済みのプロセスに対してDLLインジェクションしたいのだ


まずビルド環境が、XPでVS2003だ。金がない訳じゃないぞ、まあないけど

開発環境の都合だ
XPでは成功する

VISTAマシンに、ビルド結果をコピー
XPマシンから、リモートデバッグで調べてみると、見事に失敗している

GetLastErrorが8(なんか領域不足)を返してきた

メモリもハードディスクもスタックも多分、てんこもり

何が足りないんだ

プリーズヘルプリング
52デフォルトの名無しさん:2007/08/15(水) 16:25:18
管理者として実行してないんでね?
VS上でデバッグするんならVSを管理者権限で起動
53デフォルトの名無しさん:2007/08/15(水) 16:27:35
夏休みって煽り方も子供っぽくて逆に応援したくなってくる
54デフォルトの名無しさん:2007/08/15(水) 16:33:30
マルチモニタ環境でのデスクトップのSysListView32について教えてください。

SysListView32のクライアント領域の左上隅はどのスクリーンにあるのでしょうか?
プライマリかどうかに関わらず一番左のスクリーンの左上隅から
一番右のスクリーンの右下隅までなのかなと思うのですが。。

それとも各スクリーンにあったりするんですか(;´Д`)
55デフォルトの名無しさん:2007/08/15(水) 16:52:55
>>51
間違いなく権限違い
56デフォルトの名無しさん:2007/08/15(水) 17:51:45
>>51
UAC切ってしまえ
57デフォルトの名無しさん:2007/08/15(水) 18:31:45
uacによる拒否は違うエラーだよ 1223だったかな

これは単純に権限の問題 
たとえばSYSTEMユーザのプロセスとかが対象のときに出たエラーだった気がする
58デフォルトの名無しさん:2007/08/15(水) 19:48:07
UAC切ってればデバッグ特権を有効にして強制的にプロセスハンドルを取得できるけど
UAC有効だと昇格しない限りデバッグ特権を持ってないって話じゃね?
59デフォルトの名無しさん:2007/08/15(水) 20:05:13
>>52
>>55
>>56
>>57
ありがとうございます
さすがAPIフックスレです。
皆さん煮え湯を飲まされてるだけありますね

UACは切り、mt.exeで、管理者権限を設定してます。
親の権限を継承する設定は記述してないです


CreateRemoteThreadは、DLLからコールし、このDLLは、EXEからロードされます

EXEがサービス側かユーザー側にいるかで実行結果が変わりそうですね


このEXE

XPでは、ユーザーがSYSTEM

Vistaでは、SYSTEMとeros(ユーザーアカウント)の2つのときがあるんです


それが関係してるかもしれません、そこらへん詳しく見てみます。ありがとうございました

60デフォルトの名無しさん:2007/08/15(水) 20:57:55
他のアプリがフルスクリーンだったりで自分のウィンドウを
完全に隠してるかどうか知る方法あるでしょうか?
EnumWindowsとか使えばいいのかな。
61デフォルトの名無しさん:2007/08/15(水) 21:03:43
visutaではきっと通用しない気がする
62デフォルトの名無しさん:2007/08/15(水) 21:09:04
いつからここはAPIフックスレになったんだ
63デフォルトの名無しさん:2007/08/15(水) 21:11:06
悪の技術フック禁止しろ
64デフォルトの名無しさん:2007/08/15(水) 22:31:14
>>61
visuta wwwwwwwwwww
65デフォルトの名無しさん:2007/08/15(水) 23:19:17
CreateRemoteThreadフックしてFALSE返してしまえばいいと思うよ
66デフォルトの名無しさん:2007/08/15(水) 23:36:58
>>61
お前他の板でもvisutaって書いてただろ死ね
67デフォルトの名無しさん:2007/08/16(木) 00:09:54
エディットボックスの最下行へ次々と文字列を追加していきたいのですが、
下の方法より速いやり方がありましたら教えてください。
下だとフォーカスが当たっていると選択部分の反転・非反転の明滅を繰り返し、
非常に見辛いです。
EM_SETSELで選択とかせずに、キャレットを直接行末に移動する
方法があれば良いと思うのですが。

void append_text(HWND hEdit, const char *buffer) {
SendMessage(hEdit, EM_SETSEL, 0, -1); // すべてを選択する(キャレットはテキストの最後に移動)
SendMessage(hEdit, EM_SETSEL, -1, -1); // 非選択にする
SendMessage(hEdit, EM_REPLACESEL, 0, (LPARAM)buffer); // 選択テキストを入れ替える(非選択ならキャレット位置へ挿入)
SendMessage(hEdit, EM_SCROLLCARET, 0, 0); //キャレットが表示される場所までスクロールする
}
68デフォルトの名無しさん:2007/08/16(木) 00:14:02
速い方法が知りたいのか、見辛くない方法が知りたいのか、
どっちなのかハッキリしろ馬鹿
69デフォルトの名無しさん:2007/08/16(木) 00:17:32
ハッキリ書いてるじゃん。
70デフォルトの名無しさん:2007/08/16(木) 00:20:47
馬鹿は言いすぎだろあほ
キャラットのおいしい食べ方知りたいってはっきり書いてあんだろうが!
71デフォルトの名無しさん:2007/08/16(木) 00:26:09
>>67
WM_SETREDRAWをSendMessage()して、描画を停止・再開するのが定番なんだが、それじゃだめ?
あと、どうせならテキストはバッファにためておいたのを、まとめてエディとボックスに入れた方がいい。
徐々に追加すると時間がかかるので。
72デフォルトの名無しさん:2007/08/16(木) 00:26:14
じゃ阿呆で
73デフォルトの名無しさん:2007/08/16(木) 00:39:24
>>71
ありがとうございます。
だいぶ速くなりました。

>まとめてエディとボックスに入れた方がいい。
追加されていく様子をユーザーに見せたいので。
あとSetWindowTextだとちらつくのが。
74デフォルトの名無しさん:2007/08/16(木) 01:18:03
SendMessage(hEdit, EM_SETSEL, 0, -1); // すべてを選択する(キャレットはテキストの最後に移動)
SendMessage(hEdit, EM_SETSEL, -1, -1); // 非選択にする
↑の書き方がいまいちなような・・・何か参考にした?

普通は、テキストの長さをWM_GETTEXTLENGTHあたりで取得して、
EM_SETSELに渡す感じじゃないかなと。
75デフォルトの名無しさん:2007/08/16(木) 01:58:25
>>74
その操作はキャレットを末尾に移動させるのが目的なので。
76デフォルトの名無しさん:2007/08/16(木) 02:07:04
必要ありませんね。
77デフォルトの名無しさん:2007/08/16(木) 07:37:47
末尾に移動させるのが目的なのに、なぜ選択->非選択というトリッキーなことをするのだろうか
78デフォルトの名無しさん:2007/08/16(木) 07:56:47
>>75
カレットを移動するだけなら、余計なことはしなくていいのでは?
79デフォルトの名無しさん:2007/08/16(木) 08:08:24
>>78
その操作は自己満足と自分の低レベルを顕著にさせるのが目的なので。
80デフォルトの名無しさん:2007/08/16(木) 09:10:15
薄汚い派遣の国、日本

最近、職場で「出戻り寄生派遣」という言葉が囁かれています。
派遣契約を切られたにもかかわらず「次の派遣先でも切られてしまって生活できません」
などと 言って泣き落としで現場マネージャーにすら一切話がないまま再契約した派遣のことです。
今月初め、半年前に切った派遣が出社してきてマネージャーも含めみんなびっくりしました。
影でコソコソ偉い人に泣きついて再契約したそうです。同じ部署の人には黙って・・・
そんなことまでして自宅の近くの派遣先にこだわって人間として恥ずかしくないのですか。

仕事に必要な技術がなく勉強する気もないのを逆手にとって
「私のような人の視点で仕事をすることも大切だと思います」と挨拶された時には
みんな絶句していました。派遣でスキルアップとか言ってる癖に技術を勉強する気はなく
「それは私の仕事ではありません」の一点張り、派遣で収入アップとか言ってる癖に
時給は前回と同じで喜んで再契約。
結局、なんの努力もせずに派遣で安直に収入を得たいだけじゃないですか。

身分不相応な商品のローンを払うために派遣だと当然足りない収入は親にも寄生して、
いつ切られるんじゃないかとビクビクしながら人事権のある人間とだけ仲良くし、
契約終了を通知されれば泣き落とし。悲惨な人生ですね。
氏んだほうがいいんじゃないですか。
81デフォルトの名無しさん:2007/08/16(木) 09:12:26
久しぶり、元気してた?
82デフォルトの名無しさん:2007/08/16(木) 11:35:20
Win32 API とは関係ないかも知れませんが。
MSIME の手書きパッドをプログラムから表示するにはどうしたらよいでしょうか。
imepadsv.exe を使うのでしょうか?
よろしくお願いします。
83デフォルトの名無しさん:2007/08/16(木) 11:38:41
>>82
最近、別のスレで同じような話題があった気がした

DWORD WM_MSIME_SHOWIMEPAD = RegisterWindowMessage("MSIMEShowImePad");
HWND hwnd = ImmGetDefaultIMEWnd(GetForegroundWindow());
::SendMessage(hwnd, WM_MSIME_SHOWIMEPAD, 0, 0);
84デフォルトの名無しさん:2007/08/16(木) 21:26:41
Win32APIでExcelやAccessにaccessするにはどのようにすればよろしいでしょうか?
85デフォルトの名無しさん:2007/08/16(木) 21:35:33
>>84
オートメーション
86デフォルトの名無しさん:2007/08/16(木) 21:36:32
Accessにaccessって言いたかっただけちゃうんかと
87デフォルトの名無しさん:2007/08/16(木) 21:36:47
88デフォルトの名無しさん:2007/08/17(金) 00:52:24
>>84
「三流君」で検索すると参考になるページが。
89デフォルトの名無しさん:2007/08/17(金) 01:00:00
>>88
VBAからWin32APIを起こすんじゃなくてその逆なんですけど
そのサイトは大丈夫?
90デフォルトの名無しさん:2007/08/17(金) 01:02:59
>>84
データにアクセス出来ればいいっていう話なら
ODBC でいけるよね Win32API だけとは言えないかな
91デフォルトの名無しさん:2007/08/17(金) 01:19:48
OLE
92デフォルトの名無しさん:2007/08/17(金) 03:33:54
スライダー(トラックバー)のオーナードローはどのようにするのでしょうか?
WM_DRAWITEMにはメッセージが来ないです(´・ω・`)
93デフォルトの名無しさん:2007/08/17(金) 08:26:56
ダイアログベースのアプリケーションにリストビュー(詳細形式)を
貼り付けたいと思い、コーディングの参考にしようと色々なサイトを
見て回ったのですが、どれもSDIベースでのもので、
ダイアログベースでやるには別な書き方が必要なようです。

ダイアログベースのアプリケーションにリストビュー(詳細形式)を
貼り付けるにはどうしたら良いでしょうか?
94デフォルトの名無しさん:2007/08/17(金) 08:30:49
普通に
95デフォルトの名無しさん:2007/08/17(金) 08:45:25
ダイアログとSDIの違いについて語ってください
96デフォルトの名無しさん:2007/08/17(金) 08:57:35
戦略防衛構想 (Strategic Defense Initiative, SDI) はアメリカ合衆国
がかつて構想した軍事計画。通称スターウォーズ計画。

静止衛星軌道上にミサイル衛星やレーザー衛星、早期警戒衛星など
を配備、それらと地上の迎撃システムが連携して敵国の大陸間弾道
弾を各飛翔段階で迎撃、撃墜し、合衆国本土への被害を最小限に留
めることを目的にした。
97デフォルトの名無しさん:2007/08/17(金) 09:01:26
ありがとうございました
98デフォルトの名無しさん:2007/08/17(金) 09:48:37
ダイアログ

情報を表示したり、 ユーザーからの入力を取得したりする為の
アプリケーションが作成するポップアップウィンドウ。
コマンドの付加情報/任意の選択などユーザーから入力を受け取る際に利用します。
サイズの単位はダイアログ単位(DLU)が利用されます。
一般的に[ESC]キーでキャンセル、[Enter]キーでOKだったかな?
99デフォルトの名無しさん:2007/08/17(金) 12:27:56
_declspec(dllexport) bool WINAPI hogehoge(bool bFlag, int& nResult)

こういうAPIがエクスポートされてる時に、これを「C言語で」使う書式ってどういうものになるんだろう?
boolは1バイトだからcharとかで代用できると思うけど、参照の部分が・・・
10093:2007/08/17(金) 12:30:37
こちらでの質問を終わります。
ありがとうございました。
101デフォルトの名無しさん:2007/08/17(金) 12:31:59
>>99
独り言ならメモ帳にでも書いとけ
102デフォルトの名無しさん:2007/08/17(金) 12:32:57
>>93
マルチ死ね
103デフォルトの名無しさん:2007/08/17(金) 12:54:45
>>99
参照はポインタでいいんじゃないの?
104デフォルトの名無しさん:2007/08/17(金) 13:27:02
>>99
まっとうなプロジェクトで保守性高めたいってなら、C言語用ヘルパを別に用意するのがいいと思うけど、
やっつけで良いなら、/Faでアセンブラリスト取得して確認しとけばいいんじゃない?
たぶんポインタにするだけだとは思うけど。
105デフォルトの名無しさん:2007/08/17(金) 13:36:26
>>99
既存の C++ の DLL があって変更できないってことなら、
参照よりもマングル名に注意しとけ
10699:2007/08/17(金) 14:40:45
みんなありがとう。状況としては>>105の通り。
で、名前については序数でGetProcAddressするんで問題は無かった。
逆汗で見てみたらどうやらポインタでいいっぽいね。
107デフォルトの名無しさん:2007/08/17(金) 14:41:58
初めからそうしとけバーカ
108デフォルトの名無しさん:2007/08/17(金) 15:02:52
美少女中学生のマングリ!(*´Д`)
109デフォルトの名無しさん:2007/08/17(金) 17:39:26
>>108
最近は腐女子もいいよ
110デフォルトの名無しさん:2007/08/17(金) 19:27:34
__stdcall で作られたっぽい DLL を __cdecl で呼び出すにはどうすればよいですか?
111デフォルトの名無しさん:2007/08/17(金) 19:33:09
サンク
112デフォルトの名無しさん:2007/08/17(金) 21:00:25
>>110
まずそういう質問が何故出てくるのか書いたほうがいいよ。
113デフォルトの名無しさん:2007/08/17(金) 21:08:54
もちろん銀行から勝手にお金を引き出して大金持ちになるためです
114デフォルトの名無しさん:2007/08/17(金) 21:23:01
プログラム側からポップアップメニューの○番目のアイテムを選択する
(クリックやEnterを押した状態ではない)にはどうしたらよいでしょうか?
115デフォルトの名無しさん:2007/08/17(金) 23:12:35
ファイルのコピーにかかわるAPIて

CopyFile
CopyFileEx
SHFileOperation

の他にありますか?
他にありましたら教えてください

VistaのエクスプローラーをAPIをフックして、コピー元ファイル名とコピー先ファイル名が取得したいんです

XP版エクスプローラーにはCopyFileExがリンクされていたのですが、Vista版にはリンクされていません

NtCopyFileみたいなカーネル系関数でもあるのでしょうか?

Vista版CopyFileでもあるのでしょうか?

教えてください。お願いします
116デフォルトの名無しさん:2007/08/17(金) 23:39:03
>>115
セキュリティ監査をファイルアクセスに対して有効にして
イベントログのポーリングしながら自前で記録するのがいいよ
WMI+WSHとかでぐぐってみそ
117デフォルトの名無しさん:2007/08/18(土) 00:20:09
CopyFileはExで実装されてるようだから(あくまでReactOSではだけど)
ExWフックしちゃえばたぶんコピー操作は集約されると思う
ttp://www.reactos.org/generated/doxygen/d9/d42/dll_2win32_2kernel32_2file_2copy_8c.html#a2
118デフォルトの名無しさん:2007/08/18(土) 07:43:54
今更なんだがboolは4バイトのコンパイラもあってだな
119デフォルトの名無しさん:2007/08/18(土) 11:36:56
てか32bitコンパイラは大抵sizeof(bool)は4じゃね?
120デフォルトの名無しさん:2007/08/18(土) 11:57:38
全然詳しくないので質問させてください。

自称「マネージメントもできる」派遣クンが
「Windowsが僕のプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。

彼のWindowsプログラムが動かないのを調べるのは誰の仕事なのでしょうか?
121デフォルトの名無しさん:2007/08/18(土) 12:00:17
>>119
VCは6以降sizeof(bool)==1
122デフォルトの名無しさん:2007/08/18(土) 12:03:25
あら?bcc32 5.6.4も1だったわ
123デフォルトの名無しさん:2007/08/18(土) 12:29:30
gcc 4.1.2も1
124デフォルトの名無しさん:2007/08/18(土) 13:02:58
BOOLは?
125デフォルトの名無しさん:2007/08/18(土) 13:09:25
typedef int BOOL;
126デフォルトの名無しさん:2007/08/18(土) 16:52:53
最近のWindowsのマイピクチャフォルダは
エクスプローラで画像のサムネイルが表示できたりしますよね

この様に特定のフォルダの挙動をカスタマイズするにはどうしたらいいんでしょうか

サイトや書籍があれば教えてください

検索したいのですが、こういったテクノロジーの名前がわからなくて・・・
127デフォルトの名無しさん:2007/08/18(土) 16:58:20
folder.httをいじる
128デフォルトの名無しさん:2007/08/18(土) 21:54:21
ここで聞いていいのかな?

昔、Visual Studio 6.0のサンプルが内包してある、
HTMLヘルプ(?)みたいなものがMSサイトからダウンロードできたのですが、
今でもあるんでしょうか?

探しても見つからないので・・・
129デフォルトの名無しさん:2007/08/18(土) 22:12:09
今でもありますよ
130128:2007/08/18(土) 22:17:00
>>129
大変申し訳ないですが、そのURLを教えていただけませんか?
131デフォルトの名無しさん:2007/08/18(土) 22:22:50
132デフォルトの名無しさん:2007/08/18(土) 22:27:02
>>131
ありがとうございます!!!
133デフォルトの名無しさん:2007/08/18(土) 22:31:58
>>131
優しす
134デフォルトの名無しさん:2007/08/18(土) 22:39:21
WinXP VisalC++EE PSDKありの環境で
Win32APIを使ったプログラム作ったのですが98SEの環境で起動できませんでした。
起動しても無反応だったのですが、なぜでしょうか。XPでは動きました。
135デフォルトの名無しさん:2007/08/18(土) 22:42:07
Unicodeでビルドしてるんじゃね?
136115:2007/08/18(土) 22:53:11
>>116
>>117
まだ検証できてないんですが、Windowsデスクトップサーチが怪しそうです

ファイルをペーストした瞬間、デスクトップサーチの管理してる、プロセスが走りはじめました

そのプロセスにAPIフックをかけたらCopyFileExがいました

とりあえずそこまでです。

エクスプローラーがデスクトップサーチAPIをコールして、ファイルコピーしてるんじゃないかと予想してます

しかし、APISPY系のツールでチェックしてもCopyFileExがコールされた気配がない…
137デフォルトの名無しさん:2007/08/18(土) 22:55:26
デバッガ使えよカス
138デフォルトの名無しさん:2007/08/18(土) 22:57:14
優しす
139134:2007/08/18(土) 23:24:17
>>135
文字列は_T("文字列")で表しているんだけど、プロパティで文字セットを
設定なしかマルチバイト文字セットを使用するにしないとだめなのかな。
98SEが今手元にないから確かめられないので・・
140デフォルトの名無しさん:2007/08/18(土) 23:27:16
……_Tマクロの意味理解してないだろ
141デフォルトの名無しさん:2007/08/18(土) 23:36:54
>>134
sizeof(TCHAR)はなんぼ?
142デフォルトの名無しさん:2007/08/18(土) 23:37:25
>>139
悲しす
143134:2007/08/18(土) 23:51:14
>>141
2でしたね。_Tマクロはあまり関係ないんでしょうか。
144デフォルトの名無しさん:2007/08/18(土) 23:53:11
>>134
WindowsAPI は 9X系/NT系両対応と、NT系のみ対応の関数に分かれてるからな。
NT系にしかない関数をプログラム初期化なんかに使われてたら、エラーが起きて無反応っていうのはありそう。
145デフォルトの名無しさん:2007/08/18(土) 23:55:18
>>143
どっかで_UNICODEが定義されているんや。
_MBCSを定義
146デフォルトの名無しさん:2007/08/19(日) 00:06:43
>>143
大いに関係あり。しかし、何も理解せずに_Tを使うとはね。

>>145
それは、>>139で当人が書いている設定をいじるだけだろう。
147デフォルトの名無しさん:2007/08/19(日) 00:19:36
というか、今更98SE用に何のプログラムを書いてるんだ?
スタンドアロンのマシン用か?
148デフォルトの名無しさん:2007/08/19(日) 00:27:03
ここはサクッと98SEにMSLUぶち込むというのは‥‥
149134:2007/08/19(日) 00:33:52
>>147
別に98SE用というわけでもないです。できるだけいろんな環境で動くものが作れたらと思いまして。

>>148
98SEは使わせてもらっただけで自分のPCじゃないので無理ですね・・。

また試せるときがくるまで調べてみることにします。ありがとうございました。
150デフォルトの名無しさん:2007/08/19(日) 00:37:02
ガムバレ その頃には大きくなってるといいな
151デフォルトの名無しさん:2007/08/19(日) 00:37:31
>>146
VC8はデフォルトで_UNICODEが定義されてるから
エラーを回避するためにとりあえず_T()で囲んだんじゃね?
>>149
MSLUはアプリに同梱できるしインストールする必要もない
152デフォルトの名無しさん:2007/08/19(日) 00:39:45
>>136
ちょっと試してみたら、たしかにvistaでもCopyFileはCopyFileExで実装されてるけど
explorer.exe はこの辺を使ってないんだな。というかDelete/Copy/MoveFileあたりもインポートして無いのな
連休終わりそうで憂鬱だからあんまり調べてないけど
153デフォルトの名無しさん:2007/08/19(日) 00:46:12
憂鬱だなんてファイト♪
154デフォルトの名無しさん:2007/08/19(日) 01:07:11
I create an application only using Win32API
with VC++ 2005 Express Edition
and it's Platform SDK by free download.
It goes well on my PC, but is not work on another PC.
Would you teach me how about this?

155デフォルトの名無しさん:2007/08/19(日) 01:07:53
NO!
156デフォルトの名無しさん:2007/08/19(日) 02:41:15
I can nat speak Engrish.
You is a big fool man! ha ha ha!!
157デフォルトの名無しさん:2007/08/19(日) 02:43:14
HA・HA・HA!!
158デフォルトの名無しさん:2007/08/19(日) 03:47:23
>>152
UACのダイアログに出てくるCLSID
{3ad05575-8857-4850-9277-11b85bdb8e09}のコンポーネントが実行してるんじゃね
159デフォルトの名無しさん:2007/08/19(日) 11:20:07
>>156
懐かしいな・・・
160デフォルトの名無しさん:2007/08/19(日) 11:25:30
>>154
英語でおk
161デフォルトの名無しさん:2007/08/19(日) 15:28:05
162デフォルトの名無しさん:2007/08/19(日) 16:49:13
>>161
本題とは違うが、それOSのバージョン判定式間違ってるよな。
163デフォルトの名無しさん:2007/08/19(日) 17:33:57
>>158
どうやって、そのIDを取得したんでしょうか?


こちらは、デスクトップtoデスクトップでファイルをコピーして、タスクマネージャーなんかを観察したり、APIフックしてる程度です。権限に絡むことはしてないので、UACがでてきた理由がわかりません


よろしくお願いします
164デフォルトの名無しさん:2007/08/19(日) 21:12:59
>>163
UACのダイアログで「詳細」クリックしただけ
165デフォルトの名無しさん:2007/08/19(日) 23:41:44
右クリックメニューの項目の矩形を GetMenuItemRect で取得しています。
メニューの項目数が多くて画面に収まらなくなったとき
  ▲
 項目1
 項目2
 ・・・
 項目n
  ▼
のように表示されますが、この▼をクリックして下に隠れている項目を見ると、
GetMenuItemRect の結果が正しくなくなります。

何とかなりませんか?
166デフォルトの名無しさん:2007/08/19(日) 23:49:45
XPのみの話でもいいんですが、停止できないサービスってどう実装しているんでしょうか?
EventLogやアンチウィルスソフトのサービスです。
167デフォルトの名無しさん:2007/08/20(月) 00:00:07
>>166
うろ覚えだけど、サービスの停止はStopService()をサービス内から呼び出すことで実現する。
外部からのサービス停止要求またはシャットダウンイベントが飛んできた場合も
要求に反応してStopService()を呼び出すだけ。
なので、サービス停止要求を単純に無視しておけば、外部から制御できないサービスに
なるんじゃないかな。
168デフォルトの名無しさん:2007/08/20(月) 09:51:32
>>165
よーわからんけどUnionRect使えばいいんじゃね?
169167:2007/08/20(月) 10:07:29
>>166
ほんとうにうろ覚えだった...orz
MSDNにはStopServiceなんてAPIなかった。
ということは、たぶん自作の関数だったんだろう。

まあ基本的な流れは変わらなくて、サービスは終了待機を自分で行っているので、
終了のAPIを呼ぶんじゃなくて、外部からのイベントに反応して自分の終了処理を
走らせればよい。逆にその部分を実装しなければ、終了しない。
...たぶん
170デフォルトの名無しさん:2007/08/20(月) 11:13:26
SERVICE_ACCEPT_STOP
171デフォルトの名無しさん:2007/08/20(月) 11:30:32
>>168
そうではなくてですね・・・
メニュー項目のスクリーン座標が欲しいのですよ。
今は GetMenuItemRect を使っているのですが、これだとうまく行かないんです。

というのは >>165 のようになったとき、ユーザーが▼をクリックしてメニューをスクロールしても
GetMenuItemRect がくれる座標は、スクロールする前の座標のままなのです。
172デフォルトの名無しさん:2007/08/20(月) 12:10:59
>>171
OwnerDrawとかやろうとしてるの?
何をしたいのか目的がよくわからんなぁ
173デフォルトの名無しさん:2007/08/20(月) 12:17:09
>>172
ポップアップヒント? を出したいのです。
で、ヒントを表示する位置を決めるために、メニュー項目の座標が欲しいのです。
174デフォルトの名無しさん:2007/08/20(月) 12:18:43
>>173
これは.Netだけど、ツールチップ?
http://www.atmarkit.co.jp/fdotnet/dotnettips/368tooltip/tooltip.html
175デフォルトの名無しさん:2007/08/20(月) 12:26:43
メニュー項目にツールチップかぁ・・・むずいね
176デフォルトの名無しさん:2007/08/20(月) 12:27:37
>>174
そういうのです。
ボタンとか CreateWindow で作る奴は TBSTYLE_TOOLTIPS でできるらしいですが
これをメニューでやりたいのです。

メニューだとマウスじゃなくてキーボードの操作でも選択できるので
マウスカーソルの下に表示するわけにも行かないのです。
177デフォルトの名無しさん:2007/08/20(月) 12:29:59
GetMenuItemRectは多分OwnerDraw用だと思うし使えないんじゃないかなぁ。
表示中のメニュー項目を調べる方法はありそうだけどね
178デフォルトの名無しさん:2007/08/20(月) 13:32:34
>>176
キーボードの操作にも対応したいなら、ツールチップじゃなくてステータスバーにしたら?
179デフォルトの名無しさん:2007/08/20(月) 14:01:12
>>178
そうですね…。やっぱりそうしようかなぁ

GetMenuItemRectが正しい座標を返してくれる間は問題無く動くまでプログラムは完成しているんです。
えぇ最初から書き直しますとも。

ありがとうございました。
180デフォルトの名無しさん:2007/08/20(月) 15:09:59
メニューがスクロールしようと何しようと、
その外形を戻す GetMenuItemRect の戻す座標には
なんの関係もないし、「スクロールする前の座標」を戻すことの
どこが誤りなんだか解らんのだが。
181デフォルトの名無しさん:2007/08/20(月) 15:11:48
どうしても最初から書き直したいんだろ
182デフォルトの名無しさん:2007/08/20(月) 15:16:15
>>180
外形じゃなくて項目1個1個の座標が返ってきますよ?
183デフォルトの名無しさん:2007/08/20(月) 15:50:45
まあ全体も取れるけどな
それよりメニューのスクロール関連は想定外なのか、いろいろ不備がある気はする
184デフォルトの名無しさん:2007/08/20(月) 15:53:34
まあ公開物だけではな
185デフォルトの名無しさん:2007/08/20(月) 16:52:52
>>184
知らないならレスしないで下さい!ウザいだけです!
186デフォルトの名無しさん:2007/08/20(月) 16:56:53
>>185
知らないならレスしないで下さい!ウザいだけです!
187デフォルトの名無しさん:2007/08/20(月) 17:34:49
>>185-186
悲しす
188デフォルトの名無しさん:2007/08/20(月) 17:37:19
知らない何も忘れてしまおう
189デフォルトの名無しさん:2007/08/20(月) 17:37:49
日本語でおk
190デフォルトの名無しさん:2007/08/20(月) 18:06:43
>>185
それじゃ知らなくても適切なヒントを挙げる人も涙目になるぞ
知らない人間のレスがウザいんじゃなく
知らないくせに上からモノを言うような口調がウザいんじゃまいか?
191185:2007/08/20(月) 18:16:54
そうです
ごめんなさい
僕が悪かったです
192デフォルトの名無しさん:2007/08/20(月) 18:17:24
自分が知らないからって>>185みたいな低脳レスの方がウザいけどな
193デフォルトの名無しさん:2007/08/20(月) 18:22:08
>>192
低脳なくせにレスしないでください!ウザいだけです!
194デフォルトの名無しさん:2007/08/20(月) 18:22:43
( ゚Д゚)⊃旦 マァチャノメヤ
195デフォルトの名無しさん:2007/08/20(月) 18:29:03
埋め
196デフォルトの名無しさん:2007/08/20(月) 18:49:23
  ∧_∧
 ( ´∀`) まぁ、茶でも飲んでくれ
 (    )シャー
 | つ⌒ヽ。
 (__)_) 且~
197デフォルトの名無しさん:2007/08/20(月) 19:27:33
ありがとう
198デフォルトの名無しさん:2007/08/20(月) 20:14:15
質問です。
まず、環境はWinXP+VC8EEです。
それで、SendInputでメニューバーからメニューを選択したいのですが、
最初のメニューはたたけるのに、選択したアイテムの反応が無くメニューだけが消えるというような感じになりました。
たとえば、タスクバーのアプリを束ねたバーをたたくと一覧のメニューがでますが、
その中のアイテムを選ぶことができません。
どうすればいいかご教授願えませんでしょうか。
クリックするためのソースは以下のようになっています。

if (JI.wButtons == JOY_BUTTON4){//ボタン4が押された
    if(ClickFlag == false){
        ClickFlag=true;
        hwnd = WindowFromPoint(pt);//ptはマウスの座標。
        SetForegroundWindow(hwnd);
        MOUSEINPUT MI = {0,0,0,MOUSEEVENTF_LEFTDOWN,0,NULL};
        INPUT i;i.type=INPUT_MOUSE;i.mi=MI;
        SendInput(1,&i,sizeof(INPUT));
        printf("クリックしてるはず!![%d,%d]\n",pt.x,pt.y);
    }
}else{
    if(ClickFlag ==true){
        ClickFlag=false;
        MOUSEINPUT MI = {0,0,0,MOUSEEVENTF_LEFTUP,0,NULL};
        INPUT i;i.type=INPUT_MOUSE;i.mi=MI;
        SendInput(1,&i,sizeof(INPUT));
        printf("クリックやめてるはず!!\n");
    }
}
199デフォルトの名無しさん:2007/08/20(月) 22:05:18
>>198
MOUSEEVENTF_LEFTDOWNとMOUSEEVENTF_LEFTUPを連続する。
SendInputの第一引数は2にする
200デフォルトの名無しさん:2007/08/20(月) 22:20:09
結局、VistaエクスプローラーのCopyFileExをフックできんかった、ダメ人間だ、負け組だorz

Windows デスクトップサーチの2つのプロセスにCopyFileExはいた。


APIフックかけて、フック関数内でOutputDebugStringしたが、無反応…


あ〜わからん、ペーストされた瞬間、PSAPI.DLLロードライブラリされてるけど関係なさそう


だれか助けて(´・ω・`)あばばばば


明日はエクスプローラープロセスでReadFile、WriteFileしてるか調べてみるか…チラシの裏でスマソニック
201デフォルトの名無しさん:2007/08/20(月) 22:23:00
202デフォルトの名無しさん:2007/08/20(月) 22:23:35
改行ウザイ
"チラシの裏"に書いてろ
203デフォルトの名無しさん:2007/08/20(月) 22:23:41
_T("ほげ") と L("ほげ") の違いを教えてください
204デフォルトの名無しさん:2007/08/20(月) 22:34:02
>L("ほげ")
そんなもんAPIと無関係どころか、見たことありません。
205デフォルトの名無しさん:2007/08/20(月) 22:35:46
>>203
フイタ
206デフォルトの名無しさん:2007/08/20(月) 22:39:55
まあまあ、これ見て勉強しな >>203

#define __T(x) L ## x
#define _TEXT(x) __T(x)

つーか、_T("ほげ") がコンパイルできるんなら、
ヘッダはあるんだからこれぐらい自分で調べる
癖つけないと辛いぞ。
207デフォルトの名無しさん:2007/08/20(月) 22:42:29
_T("ほげ") と L"ほげ" は全く等価なんですね!!!
ありがとうございました!!!!!
208デフォルトの名無しさん:2007/08/20(月) 22:43:03
ヒント
例えば、

#include <tchar.h>
#include <clocale>
#include <cstdio>

void _tmain(void){
  _tsetlocale(LC_ALL, _T("jpn"));
  _tprintf(_T("わたしは相田紗月"));
}

が、#define _MBCSだと
#include <tchar.h>
#include <clocale>
#include <cstdio>

void main(void){
  setlocale(LC_ALL, "jpn");
  printf("わたしは相田紗月");
}

で、#define _UNICODEだと
#include <tchar.h>
#include <clocale>
#include <cstdio>

void wmain(void){
  _wsetlocale(LC_ALL, L"jpn");
  wprintf(L"わたしは相田紗月");
}
になる。
209デフォルトの名無しさん:2007/08/20(月) 22:45:56
_MBCSなんていまだに使うケースなんてあるの?
210デフォルトの名無しさん:2007/08/20(月) 22:45:58
>>208
>わたしは相田紗月

・・・・・・えーっと
ワッフルワッフル?!
211デフォルトの名無しさん:2007/08/20(月) 22:47:47
>>209
>_MBCSなんていまだに使うケースなんてあるの?

んなこと言ったら、_TEXTを使う必要ないんじゃね?
212デフォルトの名無しさん:2007/08/20(月) 22:54:31
>>208
>>210
お菓子系に詳しいオマエラなんてキモい
213デフォルトの名無しさん:2007/08/20(月) 22:56:04
>>212
お菓子系なんて詳しいオマエなんてキモい
214デフォルトの名無しさん:2007/08/20(月) 23:03:07
>>208, 210, 212
悲しす
215デフォルトの名無しさん:2007/08/20(月) 23:05:57
m9(^Д^)プギャー
216デフォルトの名無しさん:2007/08/20(月) 23:11:41
今、ググった・・・・
これは、けしからん!
217デフォルトの名無しさん:2007/08/20(月) 23:12:01
スレ違いだ死ね
218デフォルトの名無しさん:2007/08/21(火) 09:30:54
知らなかった・・・
こういう言葉もあるんだな
219デフォルトの名無しさん:2007/08/21(火) 09:44:06
リストビューコントロールで、長くて見えない項目にマウスカーソルを合わせると
ツールチップみたいなので項目全体を補完表示してくれるのを見かけるのですが、
その方法教えてください。
220デフォルトの名無しさん:2007/08/21(火) 10:27:57
LVS_EX_INFOTIP と LVS_EX_LABELTIP
221デフォルトの名無しさん:2007/08/21(火) 12:42:13
>>209
たまにはまったくUNICODEに対応する動きのないビジュアルコンポーネントライブラリっていうフレームワークのことも思い出してやってください/ ,' 3  `ヽーっ
222デフォルトの名無しさん:2007/08/21(火) 14:10:22
VCLってパスカルのソースが付いているんじゃなかったか?
223デフォルトの名無しさん:2007/08/21(火) 14:12:27
   ,へ、        /^i
   | \〉`ヽ-―ー--< 〈\ |
   7   , -- 、, --- 、  ヽ
  /  /     i      ヽ  ヽ
  |  ( 6      6  )  |
 / 彡   ▼    ミミ   、
く彡彡   _/\_    ミミミ ヽ
 `<             ミミ彳ヘ
    >       ___/   \
   /         7      \
   |        /        \
   |      /           \
   ヽ    /              ヽ
    ヽ  /                ヽ
     ; /                  ヽ
     ゝ"~}                  ヽ
    /  ノ,,_-ー-、___ノ         ヽ
    k乃ノγ                  |
     /                     |
     |                     /
     |                     /
    _\                   /^|
   (__\_                /⌒;;i
          ̄ー、__ _____,/⌒ヽ/
             _____/::⌒;;ヽ,/
          /::::::::`ヽ `ヽ:::`ヽ `ヽ::::/
         (::::::::::::::::::::)   |:::::::|  ノ/
          \:::::::::::ノ   ノ;;;;;;/ /
            ー--‐ー ' ""~
224デフォルトの名無しさん:2007/08/21(火) 14:16:02
それはラスカル
225デフォルトの名無しさん:2007/08/21(火) 17:27:09
仕事のコーディングで悩まされていたところ>>222-224でなごんだ
226デフォルトの名無しさん:2007/08/21(火) 19:12:32
>>222-224
真面目にあれしてぼけて突っ込みの三段あれかよ
ちょっと(´,_ゝ`)プッってなっちまったぜ
227デフォルトの名無しさん:2007/08/21(火) 19:15:23
日本語でおk
228デフォルトの名無しさん:2007/08/21(火) 20:33:37
Vistaで動くUnicodeアプリを作ってます。

Officeに入ってる「HGS明朝B」というフォントで、たとえば50ptの「フ」の横幅を取得すると、
GetTextExtentPoint32 → 45
GetCharABCWidths(ABC合計) → 50
GetGlyphOutline(gmCellIncX) → 50

となりますが、エディットコントロール等で見ると横幅が67pxくらいあります。
つまり正しい値が取れてこれません。
ちなみにMS P明朝などでは同じことをやっても正しい値が取れます。

なにか思い当たる事がある人いないでしょうか?
229デフォルトの名無しさん:2007/08/21(火) 20:34:49
うちの母親はなんでも「あれ」で済ますので困る
230デフォルトの名無しさん:2007/08/21(火) 20:36:23
>>228
います
231デフォルトの名無しさん:2007/08/21(火) 21:15:25
VB.NET質問スレからやってきました。

WindowsXPHomeEditionのPCから、ドメイン内のサーバの共有フォルダにアクセスすべく
VB.Net2003で開発しています。

VB.NET質問スレで「WNetUseConnection」というキーワードをもらったのでをぐぐってみました。
で参考になるサンプルを見つけたので
ttp://64.233.167.104/search?q=cache:e1IfQnfsW9UJ:www.vbalab.net/vbaqa/c-board.cgi%3Fcmd%3Dntr%3Btree%3D36579%3Bid%3Dexcel+WNetUseConnection&hl=ja&ct=clnk&cd=9&gl=jp&lr=lang_ja
真似てやってみたのですが
その関数の戻り値が 487 となり、失敗します。

で、その戻り値を調べたら
ERROR_INVALID_ADDRESS 487 0x000001E7 無効なアドレスにアクセスしようとしています。
とありました。
しかし、そのアドレスは確実に間違っていないはずなんですが・・・。
そのアドレスをエクスプローラのアドレス欄に貼り付けるとちゃんと表示されます。

アクセスしたいアドレスは
\\(コンピュータ名)\(共有フォルダ名)
としていたのですが、エラー487が帰ってきたので、エスケープ文字?ってことで
\\\\(コンピュータ名)\\(共有フォルダ名)
\\\\(コンピュータ名)
とか試してもエラー487は変わりません。

他に何か原因があるのでしょうか?

232デフォルトの名無しさん:2007/08/21(火) 21:22:55
>>230
教えてください
233デフォルトの名無しさん:2007/08/21(火) 21:26:21
>>231
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpsecupf/html/_win32_GetNamedSecurityInfo.asp

ここでのERROR_INVALID_ADDRESSの意味は
『呼び出し側が渡したポインタが指すバッファにアクセスできませんでした。』
って事らしい。

あと、権限に関してははGetNamedSecurityInfoを使ったほうが楽かもね
234デフォルトの名無しさん:2007/08/21(火) 21:28:57
>>231
そのアドレスと言うのはメモリの事
君が思ってるアドレスはパスとかディレクトリとか言うもの
235デフォルトの名無しさん:2007/08/21(火) 21:29:40
>>231
アドレスの指す内容は文字列?
文字列の内容でなくて、文字列の渡し方に問題があるのかもね。
236デフォルトの名無しさん:2007/08/21(火) 21:35:04
ワロタ
確かにアドレスバーとか言うもんな
237233:2007/08/21(火) 21:43:47
238231:2007/08/21(火) 21:54:38
は、ハズカシイ・・・

更にハズカシイついでに
「NULL で終わる文字列へのポインタ」
って、VB.NETではどのように指定すればいいのでしょうか?

メモリのアドレスって考えたことなかったです。
239デフォルトの名無しさん:2007/08/21(火) 21:57:12
まあIE?に入れた時点でメモリアドレスじゃないのはわかるだろ
240デフォルトの名無しさん:2007/08/21(火) 22:01:36
>>238
String を渡せばよろしくやってくれる。

が、DWORD に Long を当てたりしたら駄目だぞ。
MSDN で「アンマネージ コードとの相互運用」をじっくり熟読。
241231:2007/08/21(火) 22:22:01
>>240
Stringを渡せばよろしくやってくれるんですか・・・?


Dim NetR As NETRESOURCE
Dim ErrInfo As Long
Dim strTarget As String
Dim buffer As String
Dim bufferlen As Long

strTarget = "\\192.168.1.1\hoge"
NetR.dwType = RESOURCETYPE_DISK
NetR.lpLocalName = vbNullString
NetR.lpRemoteName = strTarget

buffer = Space(64)
bufferlen = Len(buffer)

ErrInfo = WNetUseConnection(0, NetR, "password", "user@domain", CONNECT_INTERACTIVE Or CONNECT_POMPT, buffer, bufferlen, success)

これで ErrInfo = 487 になるんです。
どの文字列がおかしいんでしょうか?

> DWORD に Long を当てたりしたら駄目だぞ。
これって WNetUseConnection の dwFlags のことですか?
Longで定義してるんですけど・・・
242デフォルトの名無しさん:2007/08/21(火) 22:25:24
VB6/VBA と VB.NET 以降じゃぜんぜん別物になった。
当然 Declare 宣言や構造体定義も流用できない部分が大きい。
ので >>240
243デフォルトの名無しさん:2007/08/21(火) 22:28:35
こんなスレで質問していないで、早く試行錯誤でバグ回避策を見つける仕事に戻るんだ!
何?やる気がありません?なら辞めろや、他の派遣雇うからw
244デフォルトの名無しさん:2007/08/21(火) 22:30:05
試行錯誤のレベルじゃないな
245デフォルトの名無しさん:2007/08/21(火) 22:33:18
>>241
とりあえず2番目はLPNETRESOURCEでケツ2つはLPDWORDだけど
246231:2007/08/21(火) 22:56:11
>>245
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwnet/html/_win32_wnetuseconnection.asp
ここに記述がありますね。

自分がイマイチ型とか理解できてないのがダメですね。

>>248
MSDN で「アンマネージ コードとの相互運用」を見たらいかに自分が理解できていないかが
よくわかりました・・・
もっと熟読しないといけないです。

apiに触れる機会がなかなかなかったのでこれまであまり意識せずにやってこれました。
しかし今回はなんとかこの問題をクリアしないといけないので、勉強します。

今日はもう会社を閉めなければならないのでまた明日に続きをやります。

どうもありがとうございます。
247デフォルトの名無しさん:2007/08/22(水) 00:30:23
会社をたたむのかとおもったwプログラミングの仕事も大変ね
解決策みつかんなかったら何日も進まないじゃん
そういうときってどうすんだぜ?
248デフォルトの名無しさん:2007/08/22(水) 00:33:57
>>247
そういう事はマ板で聞け
249デフォルトの名無しさん:2007/08/22(水) 05:31:58
APIというわけじゃないんですが、パス名やファイル名で使えない文字の
一覧みたいな物ありましたら教えてください。
エクスプローラーの名前の変更で\とかを入力すると、
使えない文字のバルーン表示が出ますが、
\ / : ? " < > |
ほんとにこれだけでしょうか?
250デフォルトの名無しさん:2007/08/22(水) 06:36:21
「表」
とかがディレクトリ名の末尾に来ると死ぬな
251デフォルトの名無しさん:2007/08/22(水) 07:18:40
>>250
阿呆なプログラムはね。
例えば某芝の初期のmp3プレーヤとか。
252デフォルトの名無しさん:2007/08/22(水) 07:45:52
253デフォルトの名無しさん:2007/08/22(水) 08:13:01
PathGetCharType関数ってのもあったね
254231:2007/08/22(水) 10:46:45
おかげさまでなんとかできました。

従来のLong型と.Netの型をちゃんと識別しないといけないですね。
結果、Logn型で定義していたものをIntegerで定義しなおして、加えて細かな調整をしたら成功しました。
細かな調整はかなりの試行錯誤でした(汗

Private Declare FUnction WNetUseConnection Lib "mpr.dll" Alias "WNetUseConnectionA" ( _
    hwndOwner As Integer, lpNetResource As NETRESOURCE, lpUsername As String, lpPassword As String, _
    dwFlags As Integer, lpAccessName As String, lpBufferSize As Integer, lpResult As Integer) _
    As Integer

Dim NetR As NETRESOURCE
Dim ErrInfo As Integer 'Long
Dim strTarget As String
Dim buffer As String
Dim bufferlen As Integer 'Long

strTarget = "\\192.168.1.1\hoge"
NetR.dwType = RESOURCETYPE_DISK
NetR.lpLocalName = vbNullString
NetR.lpRemoteName = strTarget
NetR.lpProvider = vbNullString

buffer = Space(64)
bufferlen = Len(buffer)

ErrInfo = WNetUseConnection(0, NetR, "password", "user@domain", CONNECT_REDIRECT, buffer, bufferlen, success)


いろいろアドバイスをくださった皆様に多謝です。
255デフォルトの名無しさん:2007/08/22(水) 11:12:47
>>250
ダメ文字含むフォルダじゃ起動できないエロゲの体験版があったな。
製品版は、ダメ文字含むフォルダにインスコできないからノープロブレムだが。
256デフォルトの名無しさん:2007/08/22(水) 12:39:46
>>251
>>255
     ,.――――-、
     ヽ / ̄ ̄ ̄`ヽ、        勇者トンファーパーマン惨状
      | |  (・)。(・)|
      | |@_,.--、_,>         俺が着たからにはもう色々と駄目だ
      ヽヽ___ノ          
        /:::::::::::::::::l   /77
       /::::::::::i:i:::::::i,../ / | 
       l:::/::::::::i:i:::、:::/ / |  
       l;;ノ:::::::::::::::l l;.,.,.!  |  
        /::::::::::::::::l/ /  冂 
       /:::::::;へ:::::::l~   |ヌ|
      /:::::/´  ヽ:::l   .|ヌ|  
      .〔:::::l     l:::l   凵
      ヽ;;;>     \;;>
257デフォルトの名無しさん:2007/08/22(水) 12:48:27
      ∧_∧  トンファーキ〜ック!
     _(  ´Д`)
    /      )     ドゴォォォ _  /
∩  / ,イ 、  ノ/    ∧ ∧―= ̄ `ヽ, _
| | / / |   ( 〈 ∵. ・(   〈__ >  ゛ 、_
| | | |  ヽ  ー=- ̄ ̄=_、  (/ , ´ノ \
| | | |   `iー__=―_ ;, / / /
| |ニ(!、)   =_二__ ̄_=;, / / ,'
∪     /  /       /  /|  |
     /  /       !、_/ /   〉
    / _/             |_/
    ヽ、_ヽ

258デフォルトの名無しさん:2007/08/22(水) 14:24:06
>>257
知らないならレスしないでください!
259デフォルトの名無しさん:2007/08/22(水) 14:36:28
>>258
知らないならレスしないでください!
260デフォルトの名無しさん:2007/08/22(水) 14:50:48
知っているのに〜わざと〜間違える〜
261デフォルトの名無しさん:2007/08/22(水) 15:07:44
65点の人が好き 好き 好き〜♪
262デフォルトの名無しさん:2007/08/22(水) 17:04:42
>>255
エロゲの話なんてわざわざしないでください!
263デフォルトの名無しさん:2007/08/22(水) 17:24:38
>>262
欲しいなら素直に欲しいと言ってください!
264デフォルトの名無しさん:2007/08/22(水) 18:08:37
>>263
うるさい
265デフォルトの名無しさん:2007/08/22(水) 18:09:17
うるさいうるさいうるさい
266デフォルトの名無しさん:2007/08/22(水) 18:14:05
うるさいからレスしないでください!
267デフォルトの名無しさん:2007/08/22(水) 18:20:00
質問です
デュアルディスプレイの環境で
GetSystemMetrics(SM_CXSCREEN)
が返す数値はメインディスプレイの解像度だけなのでしょうか?
それとも、アプリケーションウインドウのある方の解像度が得られるのでしょうか?

当方にデュアルディスプレイ環境が無くて試せない状況です
どなたか、教えて頂けないでしょうか?
268デフォルトの名無しさん:2007/08/22(水) 18:24:40
>>267
はい
269デフォルトの名無しさん:2007/08/22(水) 18:27:10
SM_CXSCREENはプライマリモニタのほうな。
SM_CXVIRTUALSCREEN は両方含む。
270デフォルトの名無しさん:2007/08/22(水) 18:39:39
>>269
いいかげんなことを言わないでください!
271デフォルトの名無しさん:2007/08/22(水) 18:40:23
派遣の奴は失業したのかw
272デフォルトの名無しさん:2007/08/22(水) 18:42:00
>>269
GetSystemMetrics の返り値は int なんですが、どのような形式で格納されているのでしょうか?
例えば
モニタA(メイン) 1280x1024
モニタB(サブ) 1024x768
の場合だと
GetSystemMetrics(SM_CXVIRTUALSCREEN)
の返り値はどれになりますか?

1.(1280<<16)+1024
2.1280+(1024<<16)
3.その他
273デフォルトの名無しさん:2007/08/22(水) 18:59:42
MSDNの説明どうりなら
横つなぎだと1280
縦つなぎだと1280+1024
274デフォルトの名無しさん:2007/08/22(水) 19:01:59
>>273
訂正
縦つなぎだと1280
横つなぎだと1280+1024
275デフォルトの名無しさん:2007/08/22(水) 19:04:54
>>273
訂正orz
MSDNの説明どうりなら→MSDNの説明どおりなら
276デフォルトの名無しさん:2007/08/22(水) 19:42:18
>>272
縦方向は SM_CYVIRTUALSCREEN というのが別にある
277デフォルトの名無しさん:2007/08/22(水) 19:43:04
誰も横方向しかないなんて言ってない
278276:2007/08/22(水) 19:43:25
ごめ、かんちがい
279228:2007/08/22(水) 20:48:31
誰も教えてくれないのでMSのサイトで質問しました。
もうこちらでは答えなくて結構です(マルチポストになるので)
280未来の228:2007/08/22(水) 20:56:03
MSのサイトで質問したけど誰も教えてくれませんでした。
もうこちらでは答えなくて結構です(マルチポストですので)とMSのサイトに書き込みました。
281デフォルトの名無しさん:2007/08/22(水) 21:00:31
>>279
ああすまん、忘れてた。
じゃあMSのサイトの方で回答しようか?
282228:2007/08/22(水) 21:02:57
もうこちらでは答えなくてもいいと言っているだろ!!
マルチポストになってしまったじゃないか!!!!!!
283281:2007/08/22(水) 21:04:56
だからここで答えないでMSの方で答えるつってんだろゴミ
284デフォルトの名無しさん:2007/08/22(水) 21:09:14
レスもスンナうざい
285デフォルトの名無しさん:2007/08/22(水) 21:10:21
>>284
知らないならレスしないでください!
286デフォルトの名無しさん:2007/08/22(水) 21:11:39
誰も知らないなんて言ってない
287デフォルトの名無しさん:2007/08/22(水) 21:16:58
>>286
知らないならレスしないでください!
288デフォルトの名無しさん:2007/08/22(水) 21:18:48
知ってるからレスしてんだぜ?
289デフォルトの名無しさん:2007/08/22(水) 21:21:43
>>288
知ってるならレスしてください!
290デフォルトの名無しさん:2007/08/22(水) 21:23:44
JavaのgetFontWidthも50になるなぁ
291デフォルトの名無しさん:2007/08/22(水) 21:27:45
前項目を見たのですが インクロードできません
292デフォルトの名無しさん:2007/08/22(水) 21:34:20
テラカオスww
293デフォルトの名無しさん:2007/08/22(水) 22:24:23
UISpy.exeってVISTAじゃないと使えないの?
XPにWindowsSDK入れてもインスコされないんだが
294デフォルトの名無しさん:2007/08/22(水) 22:30:10
>>293
俺、Windows XP HomeにVisual Studio 2005 + Windows SDKで入ったよ。
295デフォルトの名無しさん:2007/08/23(木) 01:29:32
>>228
・pt(ポイント)とpx(ピクセル)の違い
・「論理単位」と「設計単位」の違い
・gmBlackBoxXとgmCellIncXの違い
その辺をちゃんと整理してから、もう一度考えてみろ。
296228:2007/08/23(木) 01:47:53
もうこちらでは答えなくて結構です(マルチポストですので)
297デフォルトの名無しさん:2007/08/23(木) 03:18:36
>>228が他に移動するのは勝手だけど、
一度話をふったんだから、うっかり反応して考えちゃった人が、
せっかく考えたことをみんなと共有したいぜ!!
って思ったからって別に悪いことじゃないし、それを書き込むのも勝手でしょ。

他の人だって一度質問を見てしまった以上、回答が気になる人も
いるだろうから、その場合>>228に勝手に拒否されてもうれしくないと思う。
298一同:2007/08/23(木) 03:22:21
拒否します!
299デフォルトの名無しさん:2007/08/23(木) 03:29:00
賛成多数で知りたいのは>>297のみとなりました。
300デフォルトの名無しさん:2007/08/23(木) 03:38:20
(σ・∀・)σ300ゲッツ!!
301デフォルトの名無しさん:2007/08/23(木) 03:40:25
(σ・∀・)σ301ゲッツ!!
302デフォルトの名無しさん:2007/08/23(木) 09:42:31
>>267
#include<windows.h>
#include<stdio.h>

BOOL CALLBACK print_resolution(HMONITOR hmon, HDC hdc, LPRECT prect, LPARAM dummy){
printf("(%ld,%ld)-(%ld,%ld)\n", prect->left, prect->top, prect->right, prect->bottom);
return TRUE;
}

int main(void){
EnumDisplayMonitors(NULL, NULL, print_resolution, 0);
return 0;
}
303デフォルトの名無しさん:2007/08/23(木) 10:08:44
>>300-301
そんな古いネタでレスしないでください!
304デフォルトの名無しさん:2007/08/23(木) 10:18:41
VB.NETでReadProcessMemoryを使って他のプロセスのメモリを
参照したいのですが、何処か参考になるサイトはないでしょうか。
ググってみたものの、宣言からしてBooleanだったりIntegerだったり
使い方も分からなかったりで確信に辿り着けません…。
宜しくお願いします。
305デフォルトの名無しさん:2007/08/23(木) 10:39:58
他のプロセスはメモリ空間が別なんだが。
DLL作って、他のプロセスで動かさないとメモリは見えないよ。
306デフォルトの名無しさん:2007/08/23(木) 10:41:07
ってReadProcessMemoryをAdminで使うのか。
どう失敗すんの?
307デフォルトの名無しさん:2007/08/23(木) 11:09:44
308デフォルトの名無しさん:2007/08/23(木) 11:15:02
>>306
そうみたいです。ただ、ググってもCの場合の参考が多くVB.netで
書かれている物が無いため使い方すら分からないという所です…orz

ただ、目的のもののアドレスがちょこちょこ変わってしまうことに
気づいたため自分には到底無理っぽい気がしてきました(苦笑

一応、↓は参考になったんですが上手く取得できず。
http://www.suvaru.com/pg/sampl/Sample100_60.html

そもそもFindWindowで取得したハンドルとGetWindowThreadProcessIdで
取得したハンドルの違いも分からない…orz
309デフォルトの名無しさん:2007/08/23(木) 13:43:15
>>308
FindWindowで取得するのはウィンドウのハンドル
GetWindowThreadProcessIdで取得できるのはウィンドウを作成したプロセスのID
プロセスのIDからハンドルへの変換はさらに
OpenProcessを使って取得(PROCESS_VM_READ必要)

VB.NETについては知らない
310デフォルトの名無しさん:2007/08/23(木) 14:44:58
それレベルでReadProcessMemoryとか聞いてくるのはどうせネトゲのチートとかだからほっとけ
311デフォルトの名無しさん:2007/08/23(木) 17:16:21
ここは今も昔もネトゲチート質問掲示板なのです
312デフォルトの名無しさん:2007/08/23(木) 17:44:05
>>310
知らないならレスしないでください!ウザイだけです!
313デフォルトの名無しさん:2007/08/23(木) 18:08:20
かつて作ったことのある身からいうと
技術的な勉強には良いと思う
314デフォルトの名無しさん:2007/08/23(木) 19:15:29
>>312
ウザイのはお前だ低脳
315デフォルトの名無しさん:2007/08/23(木) 19:33:51
テラカオスww
316デフォルトの名無しさん:2007/08/23(木) 21:23:04
>>302
ありがとうございます
これと GetCursorPos の組み合わせで
マウスカーソルがどのディスプレイ上にあるか判定できます

マルチディスプレイ環境が無いので
正常に動くかどうかすぐに確認は出来ませんが…
317デフォルトの名無しさん:2007/08/23(木) 21:27:42
>>316
死ね
318デフォルトの名無しさん:2007/08/23(木) 21:30:29
>>316
目的がモニタの判定なら
MonitorFromPoint + GetMonitorInfo
でもいいんじゃないかな。
319デフォルトの名無しさん:2007/08/24(金) 00:31:56
ファイルを他のプログラムが開いていているとき、
ファイル名の変更はできることもあればできないこともあるようです。
(開いているプログラムによる)
Windowsでのファイルの共有モードは
読み込み・書き込み・削除の3種類だと思っていたのですが、
ファイル名変更の許可はこれとは別のフラグなのでしょうか?
320デフォルトの名無しさん:2007/08/24(金) 00:34:37
はい
321デフォルトの名無しさん:2007/08/24(金) 00:36:51
ファイル名変更の許可がどのように決まるか
教えていただけませんか?
322デフォルトの名無しさん:2007/08/24(金) 00:48:08
323デフォルトの名無しさん:2007/08/24(金) 00:49:08
>>319
多くのアプリではファイルを開くとき、オープンして全体を読み込んだらすぐにクローズする。
このタイプのアプリではデータの編集中は実際にはファイルはオープンされていないため、
結果的にファイル名の変更も可能になるわけだが、権限の問題とは特に関係はない。
324デフォルトの名無しさん:2007/08/24(金) 01:04:41
実行中のexeファイルの名前も変更できたりするけどな。
325デフォルトの名無しさん:2007/08/24(金) 01:06:36
>>324
それは保護されて無いとダメだろ
326デフォルトの名無しさん:2007/08/24(金) 01:08:07
ハンドルをクローズする前であってもファイル名を変更
できる場合もある(例えば cygwin gcc で fopen したとき)
ので、その条件の違いを知りたいのですが。
327デフォルトの名無しさん:2007/08/24(金) 01:27:35
>>325
保護って何?
328デフォルトの名無しさん:2007/08/24(金) 01:27:42
共有モードの削除アクセス可能(FILE_SHARE_DELETE)の指定があれば、
オープン中でもリネームできると思うけど、これは求めている答えとは違うかな。
329デフォルトの名無しさん:2007/08/24(金) 01:34:15
>>326
NTFSではCreateFile()時にFILE_SHARE_DELETEを指定すれば、Unix流に
オープンファイルを削除したりリネームしたり出来る。
が、それはデフォルトでもなんでもないので、指定されていなければ
そういう挙動にはならない。

cygwinはUnixのセマンティクスを真似るために、FILE_SHARE_DELETEを
指定しているから、そうできるわけだ。
msvcrtあたりだと、そうはならんと思う。
330デフォルトの名無しさん:2007/08/24(金) 02:59:02
>Windowsでのファイルの共有モードは
>読み込み・書き込み・削除の3種類だと思っていたのですが、

ソースは?
331デフォルトの名無しさん:2007/08/24(金) 03:07:22
CreateFileの第3パラメタに指定できる値の組み合わせがこの3種類だからじゃね?
332デフォルトの名無しさん:2007/08/24(金) 08:14:17
RichTextBoxで行間を設定することはできますか?
PARAFORMAT2でいぢくってるんだがどうもうまくいかん。
目的は行間を2ptまで縮めることです
333デフォルトの名無しさん:2007/08/24(金) 12:24:43
fopenのファイル名をUTF-8で渡したいのですが、
_setmbcpではうまくいかないようです。
CP932にマップできない文字があるのでUnicodeで渡したいの
ですが、なにか方法はないでしょうか。

なおfopenを書き換えることはできません。libcurlに埋め込まれて
いるので。
334デフォルトの名無しさん:2007/08/24(金) 12:34:57
fopenを書き換えることはできます。libcurlに埋め込まれていようが。
335デフォルトの名無しさん:2007/08/24(金) 12:35:00
うまくいかないってのは、何がうまくいかないのかな。
setlocale とかの話?
336デフォルトの名無しさん:2007/08/24(金) 12:35:37
そうです。
337デフォルトの名無しさん:2007/08/24(金) 12:39:43
>>334
リンクされるCランタイムライブラリを別のものに
置き換えるのですか? それはちょっと。

>>335
具体的には、UTF-8のconst char*をfopenの第一引数に渡すと
NULLが帰ってきます。
338デフォルトの名無しさん:2007/08/24(金) 12:40:47
まさか。こっちがそれはちょっと。
339デフォルトの名無しさん:2007/08/24(金) 12:49:56
そりゃfopen置き換えしかねえなあ
340デフォルトの名無しさん:2007/08/24(金) 13:03:18
では既存のファイルに別名をつけて
(シンボリックリンク? ジャンクション?)
ASCIIで済むようにしたいところですが、
XPや2000やFAT32で動く方法が見つかりません。
どうしたものでしょう。
341デフォルトの名無しさん:2007/08/24(金) 13:15:30
_wfopen


Unicode→ANSIリネーム
fopen
逆リネーム
342デフォルトの名無しさん:2007/08/24(金) 13:19:35
>>341
・ファイルへの書き込み権限がない
・強制終了
などのケースを正しく取り扱える気がしません。

どうもlibcurlが意図的にWin32を苛めてる気がしてきた。
FILE*を渡せてもよさそうなもんなのに、
できない設計になってるし。
343デフォルトの名無しさん:2007/08/24(金) 13:42:55
↓こんな感じでウィンドウハンドルからプロセスIDが取得できると
思ったら、スレッドIDの方が取得されます。
プロセスIDを取得するためにはどのようにすればいいのでしょうか。

Dim ProcessID As Integer
Dim lpdwProcessID As Integer
ProcessID = GetWindowThreadProcessId(hwnd, lpdwProcessID)
Debug.Print(CStr(ProcessID))
344デフォルトの名無しさん:2007/08/24(金) 13:48:12
それのProcessIDにはスレッドIDが、lpdwProcessIDにはプロセスIDが入ってるよ
345デフォルトの名無しさん:2007/08/24(金) 13:49:26
ってVBよくしらんが参照渡しでな
346デフォルトの名無しさん:2007/08/24(金) 13:51:02
>>343
MSDN も読めんのか。
347343:2007/08/24(金) 14:06:17
>>344-345
あぁぁぁ。Debug.PrintでlpdwProcessIDを見ても0しか入らなかった
ので、悩みまくっていたんですが、APIの宣言でlpdwProcessIDを
ByRefにしたらうまく取れました。有り難う御座いました。
348デフォルトの名無しさん:2007/08/24(金) 15:45:36
こんにちは はじめまして。
とあるタイミングで
起動中のexcelのテキストだけ抜き出したいのですが、
どうすればよいでしょうか?
使えるのはC言語でWin32APIを利用してできないかな、と。
ウィンドウハンドルを取ってきてSendMessageを送っても
文字列が取れなくて。。。
もしくはTextOutなどにフックをかけて取得しようかなと
考えたのですが、うまく引っかからなくてどうにも・・・。
349デフォルトの名無しさん:2007/08/24(金) 15:50:52
どの部分のテキストだよ
COM使えばできるかもってCか・・・
350デフォルトの名無しさん:2007/08/24(金) 15:51:00
VBAマクロ使う
351デフォルトの名無しさん:2007/08/24(金) 17:33:56
COMってなんですか?
352デフォルトの名無しさん:2007/08/24(金) 17:36:11
VBAマクロの縁の下の力持ち
353デフォルトの名無しさん:2007/08/24(金) 17:44:07
バルキリーもあったほうがいいですかね?
354デフォルトの名無しさん:2007/08/24(金) 18:17:20
>>333
ショートファイル名に変換してもだめかな?
既存ファイルの読み込みならUTF-8ファイル名(ロングファイル名)から
ショートファイル名を取得してショート名でファイルを開く。
ファイルの新規作成時は事前にCreateFileWで空ファイルを先に作ってから
そのショートファイル名を取得して既存のfopenに渡す。
355デフォルトの名無しさん:2007/08/24(金) 19:56:21
無駄だろう。
非ASCII文字が含まれることに変わりはないのだから。
356デフォルトの名無しさん:2007/08/24(金) 20:00:19
>>351
VBでいうところのCreateObjectのようなことをして
ActiveXなどのオブジェクトを扱う手順。かな
357デフォルトの名無しさん:2007/08/24(金) 20:40:27
>>355
非ASCIIは問題なかろ。libcurl が内部に fopen 抱えてんならまだしも。
358デフォルトの名無しさん:2007/08/24(金) 21:21:42
>>340
FAT32はファイルシステムに別名付ける機能がないからどうにもならない
359デフォルトの名無しさん:2007/08/24(金) 21:29:38
>>357
抱えているって話ではないのか?
360デフォルトの名無しさん:2007/08/24(金) 21:38:45
libcurl内で直接fopenを使ってるって話で、fopenの実装を抱えているわけではないだろ
361デフォルトの名無しさん:2007/08/24(金) 22:25:47
ビルド方法による
362デフォルトの名無しさん:2007/08/24(金) 22:34:25
パス名の比較について意見を伺いたいのですが、
"C:\ETC\NETWORK\"
"C:\ETC\NETWORK2\"
この2つのパス名を文字列として(strcmpなどで)比較したら、
"C:\ETC\NETWORK2\"
"C:\ETC\NETWORK\"
'2'より'\\'の文字コードの方が大きいのでこの順番になりますよね?
でも、これは意図とは逆で、
"C:\ETC\NETWORK\"
"C:\ETC\NETWORK2\"
期待するのはこの順なのですが、
ディレクトリセパレータ'\\'を無視して比較するべきなのでしょうか?
でもそうすると、
"C:\ET\CNETWORK\"というディレクトリがあったら
"C:\ETC\NETWORK\"と区別できなくなってしまいます。
どうしたら良いでしょうか。
363デフォルトの名無しさん:2007/08/24(金) 22:40:28
>>362
文字列の最後のディレクトリセパレータだけ '\0' 扱いにすればおk
364デフォルトの名無しさん:2007/08/24(金) 22:45:01
>>363
おれも最初は末尾のセパレータを取って比較すりゃいいだけじゃん、
とか思ったけど、それじゃ解決しない。

比較する前に一旦、セパレータの文字を0とかの、
文字コードとして一番低い値にしてmemcmpかな?

365デフォルトの名無しさん:2007/08/24(金) 22:52:02
なるほど
366デフォルトの名無しさん:2007/08/24(金) 22:52:32
セパレータ以外にも山ほど考慮する必要がある
手を抜くとアプリの種類によっては即ディレクトリトラバーサルという脆弱性になる
http://www.ipa.go.jp/security/awareness/vendor/programming/b08_01_main.html
367デフォルトの名無しさん:2007/08/24(金) 23:01:15
>>364
末尾のバックスラ削除で何に問題があるのか問いたい

>>366
それはまた別問題な気がする
368デフォルトの名無しさん:2007/08/24(金) 23:03:24
>>367
>>362の最後に書いてあるケース、
C:\ET\CNETWORK\
C:\ETC\NETWORK\
を文字列として昇順にすると
C:\ETC\NETWORK\
C:\ET\CNETWORK\
になるということ。
369デフォルトの名無しさん:2007/08/24(金) 23:05:21
セパレータごとに分割して前から比較してけばよくね
370362:2007/08/24(金) 23:10:47
すいません、いらぬ誤解を与えてしまった気がするので、
>362の二重引用符は無視して下さい。(C言語の定数という意味じゃないです)
あと英文字大小や絶対パスや/などの正規化は済んでいるという事にして下さい。
すいません。(純粋にセパレータの扱いについての話がしたいので)

>>364の仰るように、一旦バッファにコピーして\を全部0に置換して、
バイト列として比較するのが簡単で安全な気がしますね。
371367:2007/08/24(金) 23:14:43
>>368
そうだねスマンカッタ・・・
吊ってくる
372デフォルトの名無しさん:2007/08/24(金) 23:32:34
エキゾチック ジャパ〜ン!♪!
373デフォルトの名無しさん:2007/08/24(金) 23:33:35
ま、>>369の言うような方法と、
検索後にチカンしてバイト列で比較する方法
どっちがパフォーマンスが良いかだなぁw
374デフォルトの名無しさん:2007/08/24(金) 23:35:57
エキゾチック ジャパ〜ン!♪!
375デフォルトの名無しさん:2007/08/24(金) 23:37:12
チカンって書くと痴漢みたいだ
376デフォルトの名無しさん:2007/08/24(金) 23:40:47
試しに比較関数書こうとしてみたらめんどくせえ
徹夜明けには厳しいな
iskanjiはSJISの2バイト目の0x5c対策ね
採点お願い

int path_comp(const void *vl, const void *vr, unsigned n) {
unsigned char *l = (unsigned char *)vl;
unsigned char *r = (unsigned char *)vr;
for (; n--; l++, r++) {
int cmp;
if (iskanji(*l)) {
if (iskanji(*r)) {
if ((cmp = *l - *r)) return cmp;
l++, r++, n--;
if (!n)
break;
if ((cmp = *l - *r)) return cmp;
} else { // 片方が漢字じゃないなら一致しない
return *l - *r;
}
} else
if (iskanji(*r)) { //逆
return *l - *r;
} else {
int lc = (*l == '\\') ? 0 : *l;
int rc = (*r == '\\') ? 0 : *r;
if ((cmp = lc - rc)) return cmp;
}
}
return 0; // 完全一致 あとは長い方がうしろ
}
377デフォルトの名無しさん:2007/08/24(金) 23:44:40
て言うかスレを考えろ喪前ら

なんでWindowsは標準のパス比較API用意してないんだろ
378デフォルトの名無しさん:2007/08/24(金) 23:45:59
なるほど、こうやってUTF-16なパス名に対応してない糞アプリが
出来上がっていくわけだな
379デフォルトの名無しさん:2007/08/24(金) 23:49:59
そもそもExplorerが糞アプリの代表な訳で
380デフォルトの名無しさん:2007/08/24(金) 23:51:25
糞糞に言われたくない罠w
381デフォルトの名無しさん:2007/08/24(金) 23:53:54
>>376

おいおいいまだに iskanji か。。。。もう DOS の時代は終わっているんだよ。
382デフォルトの名無しさん:2007/08/24(金) 23:59:00
いや、ウニコードするなら簡単だろうし
おれはANSI一本で行くよ
多分合ってるよね
もう寝る
383デフォルトの名無しさん:2007/08/24(金) 23:59:17
384デフォルトの名無しさん:2007/08/25(土) 00:02:13
PIDLにしてIShellFolder.CompareIDsはどう?
385デフォルトの名無しさん:2007/08/25(土) 00:13:05
>>376
ディレクトリ同士の比較という意図なら大丈夫みたいですが、
ファイル名が混ざると変なことになりました。
C:\ETC\〜
C:\ETCETERA.TXT
という感じで。
使い方に注意が必要ですね。
でも大変参考になりました。
ありがとうございます。
386デフォルトの名無しさん:2007/08/25(土) 00:18:49
>>379
Explorerは当然のようにUTF-16対応してるが。
387デフォルトの名無しさん:2007/08/25(土) 00:19:52
糞糞に言っても理解できるわけねぇだろw
388デフォルトの名無しさん:2007/08/25(土) 00:19:54
ちなみにNT系限定だがGetFullPathNameとGetLongPathNameで
ほとんどの正規化はできる
389デフォルトの名無しさん:2007/08/25(土) 15:07:34
CreateFileMapping()
既存の判定はCreateFileMapping()の戻り値では無理ですよね?
既存判定は普通はどのようにやるのですか?
390デフォルトの名無しさん:2007/08/25(土) 15:11:29
>>389
GetLastError()
391デフォルトの名無しさん:2007/08/25(土) 15:12:36
392デフォルトの名無しさん:2007/08/25(土) 15:19:34
>>390
バカ発見
>>391
だからそれ見ながら質問したこどぐらい分かれよ。バカが

もう1個質問。
CreateFileMapping() でINVALID_HANDLE_VALUEでメモリ確保した場合、
0埋めされたメモリアドレスが返される仕様ですか?
393デフォルトの名無しさん:2007/08/25(土) 15:31:11
日本語でおk
394≠390:2007/08/25(土) 15:36:35
>>392
日本語も読めないなら取り敢えず人間やめておいたら?
--
指定したファイルマッピングオブジェクトが既に存在していた場合は、
既存のファイルマッピングオブジェクトのハンドルが返ります。
オブジェクトのサイズは、指定したサイズではなく、そのオブジェクトの現在のサイズになります。
また、GetLastError 関数の戻り値は ERROR_ALREADY_EXISTS になります。
--
395デフォルトの名無しさん:2007/08/25(土) 15:46:24
バカ(392)はスルーしとけよ
396デフォルトの名無しさん:2007/08/25(土) 15:59:31
既存ならGetLastError()がERROR_ALREADY_EXISTSを返すのか。
やっと分かったよ。
それで0埋めの回答はまだなのか?
397デフォルトの名無しさん:2007/08/25(土) 16:03:38
醜いわぁ
398デフォルトの名無しさん:2007/08/25(土) 16:05:19
HANDLE h = CreateFileMapping();
既存じゃなかったとしてhに100っていうアドレスが返されたとする。
そのままもっかいh = CreateFileMapping();を実行。
既存だからGetLastError()がERROR_ALREADY_EXISTSを返すけどそれはいいとして
hの値はどうなっているか分かるか?
399デフォルトの名無しさん:2007/08/25(土) 16:06:37
まじチンパン
400デフォルトの名無しさん:2007/08/25(土) 16:09:49
h != "まじチンパン"
401デフォルトの名無しさん:2007/08/25(土) 16:09:51
ここは翻訳スレではありません。
402デフォルトの名無しさん:2007/08/25(土) 16:21:14
403デフォルトの名無しさん:2007/08/25(土) 16:26:21
的確すぎてわろた

だめな奴は何をやってもだめ。何を言ってあげてもだめ。
お、おれは違うんだからね! カンちがいし(ry
404デフォルトの名無しさん:2007/08/25(土) 16:49:23
人類の大半は取り敢えず人間をやめておくべきだ
405デフォルトの名無しさん:2007/08/25(土) 17:09:31
>>398
もっかいのほうのCreateFileMapping()で200っていうアドレスが返されたとする。
するとhの値は200になっている。
406デフォルトの名無しさん:2007/08/25(土) 17:12:18
何ていうか
夏だな
407デフォルトの名無しさん:2007/08/25(土) 17:16:58
>>405
何で同じ100が返らないんだろう。
//statAを2回、statBを1回、そしてstatAのCreateFileMapping()の直後に
//GetLastError()がERROR_ALREADY_EXISTSを返すのはなぜですか?
if(statA){
 h = CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE, );
 pstr = (PSTR)MapViewOfFile(h, FILE_MAP_WRITE, 0, 0, 0);
}else if(statB){
 UnmapViewOfFile(pstr);
 CloseHandle(h);
}
408デフォルトの名無しさん:2007/08/25(土) 17:20:11
>>407
エスパーが質問に答えるスレ
http://pc11.2ch.net/test/read.cgi/tech/1187922645/
409デフォルトの名無しさん:2007/08/25(土) 17:30:19
>>407
同じ領域を指すからといって同じ値が返るわけがない。
410デフォルトの名無しさん:2007/08/25(土) 17:46:42
>>409
あっそう。
まあよほどのことがない限りはCreateFileMapping()は前回返した値に4を足したものを
返すみたいだった。
1回既存になるとその後もずっと既存になってしまう。
アンマップやらクローズハンドルが効いてないみたい。うまくやる方法はあるのだろうけど。
411デフォルトの名無しさん:2007/08/25(土) 17:47:50
よくこんな奴相手にするな
412デフォルトの名無しさん:2007/08/25(土) 18:01:07
自演じゃね?
413デフォルトの名無しさん:2007/08/25(土) 18:20:34
惜しかったなー、お前らの態度がもうちょっとましだったらどうやって解決したか
書いてやったのになー。
俺はもう分かったよ。
お前らも俺と、そして↓こいつらのように苦労しろよ。
ttp://www.xn--kdw9a025vfod.com/bbs/pastlog/12100/12071.html
ttp://www.hey-to.net/ML-archive/vcppML/1999/msg07149.html
414デフォルトの名無しさん:2007/08/25(土) 18:31:50
夏か
415デフォルトの名無しさん:2007/08/25(土) 18:39:52
>>413
アホじゃね?お前以外みんな分かってるし、苦労するのはお前みたいな低脳だけ。
416デフォルトの名無しさん:2007/08/25(土) 18:40:43
他の人がうっかり書き込むのを待ってんじゃないのカナ?
417デフォルトの名無しさん:2007/08/25(土) 18:41:37
これは酷い
418デフォルトの名無しさん:2007/08/25(土) 18:44:29
>>413
いつも思うんだが、なんで低脳ってこんな都合のいい勘違いが出来るんだろうね
419デフォルトの名無しさん:2007/08/25(土) 19:59:16
>>418
だから、低脳っていうんだよ!低脳。
420デフォルトの名無しさん:2007/08/25(土) 20:01:30
DLLの中でCreateWindowをして、そのウインドウで色々処理をさせようと思っています。
ですが、CreateWindowがうまくいかなくて困っています。
下記のコードなのですが、CreateWindowでパラメータthisをわたし、WinProc関数でthisを取ってこようと思っているのですが、
このthisポインタの値が取れません。lParamに正体不明の値(thisとは何の関連もない)が入力されていて、結局取れません。
これを取得方法を教えてください。

BOOL CTestCls::Func()
{
m_hWnd = ::CreateWindowA("test", "test", 0,
0, 0, 10, 10, NULL, NULL, g_hModule, this);
return (m_hWnd != NULL);
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
{
CTestCls* pTest = (CTestCls*)lParam;
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
環境 VC++2005、WinXPPro
421デフォルトの名無しさん:2007/08/25(土) 20:08:43
>>420
LPCREATESTRUCT pCreateStruct = (LPCREATESTRUCT)lParam;
CTestCls* pTest = (CTestCls*)pCreateStruct->lpCreateParams;
422デフォルトの名無しさん:2007/08/25(土) 20:18:43
C++なら上はreinterpret_cast、下はstatic_castな。
もちろん両方reinterpret_cast派の人間もいるだろうけど。
423デフォルトの名無しさん:2007/08/25(土) 20:21:40
>>421-422
ありがとうございます。無事に値が取れました。
424デフォルトの名無しさん:2007/08/25(土) 21:32:17
久々に、大バカを見たw
425デフォルトの名無しさん:2007/08/25(土) 21:34:28
初心者なんだろうから別にキャストを知らなくても不思議無いけど
キャストを知らないレベルでC++でナマAPIでWindowingしようとしてるってのは
驚き
426デフォルトの名無しさん:2007/08/25(土) 21:39:36
唯のうっかりミスじゃん。つまんね。
427デフォルトの名無しさん:2007/08/25(土) 21:40:28
心配せんでも君の事じゃないよ。
428デフォルトの名無しさん:2007/08/25(土) 22:40:35
pascalみたいに内部関数を許してる言語だと引数渡しなんてする必要ないんだよね
429デフォルトの名無しさん:2007/08/26(日) 00:38:03
ここで有意義なレスを返すオマエラは大丈夫だと思うけど、
キャストの扱い方で符号落ち忘れや、
if判定結果の過信も多い事実。

侮れないんだよな。

430デフォルトの名無しさん:2007/08/26(日) 01:40:51
そんな難しいこといわれてもわかんないの
431デフォルトの名無しさん:2007/08/26(日) 03:22:50
そんな簡単なこといわれないとわかんないの
432デフォルトの名無しさん:2007/08/26(日) 12:40:03
>>425
キャストの問題に見えるのか?
433デフォルトの名無しさん:2007/08/26(日) 15:59:43
シェルでファイルを削除/リネームしたあとアンドゥできるけど、
アンドゥ可能かどうか取得する方法あったら教えてください。

アンドゥ可能になったときにnotifyするよう登録するapiってないかな
434デフォルトの名無しさん:2007/08/26(日) 16:07:47
夢のようなキャストそれがドリームキャスト
435デフォルトの名無しさん:2007/08/26(日) 18:21:30
>433
メニューの「編集」の一番上の「戻す」が灰色か黒かでわかる
ついでにその「戻す」の上にマウスカーソルを持っていくと
ステータスバーに「何をどう戻すのか」が表示される
デフォルトでステータスバーOFFだったりするから秘境なんだよな

あと途中でエラーになるとそれ以上前に戻れないとかひどすぎ


436デフォルトの名無しさん:2007/08/26(日) 21:33:13
Vistaで、管理者権限で起動されても、制限ユーザーにダウンさせるAPIを教えてください。
437デフォルトの名無しさん:2007/08/26(日) 21:37:30
管理者権限はそのようなものではない。
ユーザの機能制限をしたいなら、最初から管理者権限を与えないこと。
438デフォルトの名無しさん:2007/08/26(日) 21:48:18
IsUserAnAdminとかでチェックして警告とともに自分自身をCreateProcessWithLogonWして死亡とか?
制限ユーザをどうやって指定するのかまではわからんけど
439デフォルトの名無しさん:2007/08/26(日) 21:49:44
manifestでasInvokerではだめか?
後は437の言うとおりということで。
440デフォルトの名無しさん:2007/08/26(日) 21:57:47
>>436
そんなことされたら管理者権限の意味ないじゃないか
441デフォルトの名無しさん:2007/08/26(日) 22:05:44
インストーラが最後にhtmlを開くのに管理者権限じゃまずいって話はあるな
442438:2007/08/26(日) 22:07:17
>asInvoker
そういえばそんなのもあったな orz
443436:2007/08/26(日) 22:10:57
短時間で多くのレスをありがとうございます。
マニフェストで強制的に権限を降格させる方法がないようなので、APIにあるのかと思ったのですが、
その方法そのものが用意されていないのですね。
昔作ったソフトがProgram Files以下にiniを作るので、管理者権限とそうでないときで、リダイレクトされたりされなかったりするので、
手抜きしようかと思いましたが、諦めます。
失礼しました。
444デフォルトの名無しさん:2007/08/26(日) 22:13:00
asInvokerは、親プロセスの権限を継承するから、親が管理者権限だと子も管理者権限
445デフォルトの名無しさん:2007/08/27(月) 04:22:51
だからFirefoxのソース見ろ
インストーラやアップデータが最後にFirefoxを起動するとき権限降格やってる
446デフォルトの名無しさん:2007/08/27(月) 04:47:55
>だからFirefoxのソース見ろ

だから、はどこに掛かるんですか?
447デフォルトの名無しさん:2007/08/27(月) 08:33:16
権限とかどうでもいいよ
お前らそんな偉いのかよプログラムのスレだぞここは!!!
448348:2007/08/27(月) 08:53:24
>>380
遅れましたが
ありがとうございます。
がんばってみます。
449デフォルトの名無しさん:2007/08/27(月) 13:44:09
>>447
だって俺Admin権限だもん
450デフォルトの名無しさん:2007/08/27(月) 13:56:22
俺インテルはいってるし
451デフォルトの名無しさん:2007/08/27(月) 14:00:11
>>447
最初から>>443のような説明があればともかく、
>>436の質問だと、意味がないって回答も仕方ないんじゃね。

>>436
"偽装"をキーワードにググると参考になるかも。
2chの過去ログではCreateProcessWithTokenWで成功したという書き込みもある。
ただ、自分自身のプロセスの権限を下げることはできず、
プロセスを分ける必要があるのと(これは自分自身を呼べば済むかも)、
iniファイルを置き場を直接修正した方が簡単だと思うので、手抜きにはならない。
452デフォルトの名無しさん:2007/08/27(月) 15:49:38
>>451
はい
453デフォルトの名無しさん:2007/08/27(月) 19:52:00
>>445
わからないよママン 結局どうやってるんだい?
454デフォルトの名無しさん:2007/08/27(月) 20:00:40
お前にはムリ、諦めろ。
455デフォルトの名無しさん:2007/08/27(月) 22:45:19
ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.12/source/firefox-1.5.0.12-source.tar.bz2
Firefoxのソースってこれで合ってる?
インストーラのソースどころか、Win32APIすら出てこない
456デフォルトの名無しさん:2007/08/27(月) 22:57:44
ぷっスレ違い(腹イテェw)
457デフォルトの名無しさん:2007/08/27(月) 23:03:50
分かる方いませんか?
458デフォルトの名無しさん:2007/08/27(月) 23:04:39
お前以外全員
459デフォルトの名無しさん:2007/08/27(月) 23:05:03
居ません
460デフォルトの名無しさん:2007/08/27(月) 23:08:01
>>455=457
初心者掲示板でも行ってろカス
461デフォルトの名無しさん:2007/08/27(月) 23:16:29
分かる方いませんか?
462デフォルトの名無しさん:2007/08/27(月) 23:19:14
居ない
463デフォルトの名無しさん:2007/08/27(月) 23:19:38
どうして分からないの?
アホすぎる
諦めた方がいい
464デフォルトの名無しさん:2007/08/27(月) 23:26:28
どうして答えが書けないの?
465デフォルトの名無しさん:2007/08/27(月) 23:28:50
答えが書ける人間は、こんなことで手取り足取り教えるほど物好きでない。
手取り足取り教えるほど物好きな人間は、こんなことわからない。

俺は後者。
466デフォルトの名無しさん:2007/08/27(月) 23:40:02
Firefoxは、asInvokerなexeから、requiqeAdminなインストーラをCreateProcessするだけ。
467デフォルトの名無しさん:2007/08/27(月) 23:44:46
CreateProcessはマニフェストを見ないんじゃないのか
468デフォルトの名無しさん:2007/08/27(月) 23:44:57
>>466
自分は455じゃないけど、445の説明では、
>インストーラやアップデータが最後にFirefoxを起動するとき権限降格やってる
そうなので、CreateProcessされたインストーラ内からFirefox起動するところで特別な
仕掛けがあるんじゃないの?
469デフォルトの名無しさん:2007/08/27(月) 23:59:28
Vistaだとzip内から移動できるのな。
中からファイルが消えて焦った
470デフォルトの名無しさん:2007/08/28(火) 00:06:58
xpでもできるべ。
471デフォルトの名無しさん:2007/08/28(火) 00:10:16
CreateRestrictedToken使えば権限降格できるか?
合っているかどうか以前に、使い方がさっぱり分からんけど
>>466
ITunesもそんな仕組みだったような。
CreateProcessじゃなくてShellExecuteな気がするが
472デフォルトの名無しさん:2007/08/28(火) 00:14:17
473デフォルトの名無しさん:2007/08/28(火) 00:29:42
そう思えば、Vistaのエクスプローラーは、管理者or非管理者 どちらのアプリにもファイルをドロップできるよね。
FileVisorはこれができなくて少し不便だ。
474471:2007/08/28(火) 00:43:21
>>472
どうもありがとう。
結局、プロセスの起動は CreateProcessWithTokenW を使い、
そこに渡す制限トークンはデスクトップのshellのものを使うだけと。
最初、自分が想像してたよりはかなり簡単だった。

ただ、shellからトークン取得するのはかなり行儀がわるそうなので、
きれいに実装するなら、ここはCreateRestrictedTokenを使うべきなのかもね。
475デフォルトの名無しさん:2007/08/28(火) 00:55:32
VISTA版エクスプローラーのAPI使用履歴をProcmonで監視してるけど、コピーファイル時のリードファイルとライトファイルが検出できん

なんかの拍子にコピー時のリードファイル、ライトファイルは数日間、検出できたんだけどな

フックはできなくても、フィルタドライバは正常に動作して欲しいんだけど

頭のいい人助けてくれ

ベタだけど管理者権限周りは色々試したから
476471:2007/08/28(火) 00:57:58
自演された気がする…
477デフォルトの名無しさん:2007/08/28(火) 00:58:51
>>473
VisualStudio2005にはドロップできねえぞ
478デフォルトの名無しさん:2007/08/28(火) 00:59:28
>>473
VisualStudio2005にはドロップできねえぞ
479デフォルトの名無しさん:2007/08/28(火) 01:01:59
>>474
CreateRestrictedTokenで作ったトークンだといろいろ問題がある
デスクトップが標準ユーザーでも管理者ユーザーの制限されたトークンに
なってしまうとか
UACが制限されたトークンであることを認識できなくてさらに昇格したくなったとき
ダイアログを出してくれないとか
あと詳しく追求してないけどCOMサーバーとの通信でも何か問題が起きるらしい
480デフォルトの名無しさん:2007/08/28(火) 01:02:36
アー二回も書いちまった

>>474
> ただ、shellからトークン取得するのはかなり行儀がわるそうなので、

モジラの場合はこれが正しいんじゃないかな
現在のユーザの「デスクトップ権限」が欲しいわけだし
481デフォルトの名無しさん:2007/08/28(火) 01:03:33
アー二回も書いちまった

>>474
> ただ、shellからトークン取得するのはかなり行儀がわるそうなので、

モジラの場合はこれが正しいんじゃないかな
現在のユーザの「デスクトップ権限」が欲しいわけだし
482471:2007/08/28(火) 01:15:30
>>479,480
指摘されてみれば確かにそのとおり。
別に正式とは関係なく、「firefoxでは」デスクトップの権限で動作するのが
正しいから現在のソースになってるってことね。
恥ずかしい。。。
483471:2007/08/28(火) 01:31:04
始めからFirefoxのソースを張ってくれたら済んだのになあ
484デフォルトの名無しさん:2007/08/28(火) 01:41:14
暇人は多いからね、張ってやらないよ。
485デフォルトの名無しさん:2007/08/28(火) 01:43:37
>>483
貼っても分かってないし、見つけられもしない分際で何言ってんの?
486デフォルトの名無しさん:2007/08/28(火) 01:43:39
餌をもらえるまで口あけて待ってろよ
487デフォルトの名無しさん:2007/08/28(火) 02:03:46
やっぱ自演してる人いるんだ…
いくつか前のスレで、自己解決しましたと書こうとしたら、俺のレス番で「ありがとうございました」と書かれてて吹いた
488デフォルトの名無しさん:2007/08/28(火) 02:06:01
自己解決しましたと書こうとしたらと書かれてて吹いた
489デフォルトの名無しさん:2007/08/28(火) 02:08:37
他人のなりすましという可能性も
まぁどっちにしてもあれだが
490デフォルトの名無しさん:2007/08/28(火) 02:11:22
>>487
お前バカじゃねぇの。自分で自分に礼言って何が嬉しいんだ?
491デフォルトの名無しさん:2007/08/28(火) 02:18:22
みなさま、申し訳ありません。

私がレス番間違えていました。
よく確認しなかったせいで、471を名乗ってましたが、実は468でした。
それと483は私ではありません。

たまたま勉強しかけてて興味があったので、しつこく
聞いてしまったのとレス番の混乱とがあって変なの沸かせて
しまったみたいです。
変なのはスルーしていただくよう、お願いします。

>>471,476
結果的にひどい自演になってしまったのはご指摘の通りです。
不快な思いをさせて申し訳ありませんでした。
492デフォルトの名無しさん:2007/08/28(火) 02:39:01
必死だなw
493デフォルトの名無しさん:2007/08/28(火) 03:21:50
自作自演は1人が複数いるように見せかけることで、
その逆(他人のレス番を名乗る)のは騙りとかなりすましって言うんじゃないの?
494デフォルトの名無しさん:2007/08/28(火) 04:19:46
プログレスバーの真ん中辺りにパーセント表示とかの文字列を
オーバーラップさせて表示したいのですが、方法を教えてください。
495デフォルトの名無しさん:2007/08/28(火) 04:20:56
>>493
ご指摘の通りです。
書き込んだ後で何か違うと気づいたのですが、
なにしろあせっていたので、上のレスで出ていた言葉に
ひきづられてしまいました。
496デフォルトの名無しさん:2007/08/28(火) 04:31:46
497デフォルトの名無しさん:2007/08/28(火) 05:16:24
>>472
これはありがとうと言わざるを得ない
わざわざcvs使って別のソース群を落としてたらしい…
498デフォルトの名無しさん:2007/08/28(火) 10:45:54
VBで次のようなプロシージャを作って定期的に変異するメモリを参照しています。

Private Sub MemCheck()
Dim lpdwProcessID As Integer
Dim hProcess As Integer

Call GetWindowThreadProcessId(hwnd, lpdwProcessID)
hProcess = OpenProcess(PROCESS_VM_READ, 0, lpdwProcessID)
retA = GetProcessMemory(hProcess, retAIndexAddress)
retB = GetProcessMemory(hProcess, retBIndexAddress)

CloseHandle(hProcess)
CloseHandle(retA)
CloseHandle(retB)
End Sub

ここで、ちょっと分からなくなったので教えて頂きたいのですが
retA及びretBに関してCloseHandleする必要はあるのでしょうか。
OpenProcessだけをCloseHandleすればいいのか、またタイミングとしては
上記で間違いないのか教えて下さい。
(GetProcessMemoryはReadProcessMemoryを使った関数です)
499デフォルトの名無しさん:2007/08/28(火) 10:58:16
GetProcessMemoryって何?
500498:2007/08/28(火) 11:09:23
>>498
上にも書きましたが、↓の通りちょっとした関数です。

Private Function GetProcessMemory(ByVal hProc As Integer, ByVal Addr As Integer) As Integer
Dim dwRead As Integer
Dim res As Integer
If hProc = 0 Then Exit Function
Call ReadProcessMemory(hProc, Addr, res, 2, dwRead)
GetProcessMemory = res
End Function
501デフォルトの名無しさん:2007/08/28(火) 11:15:49
フォルダ作ったりバルーンでヘルプが出たりする時、いろんなメッセージが
飛び交っていると思います。それをフックで見たいのですが
SetWindowsHookEx(種類, HookProc, hInstance, 0);
のように最期の引数は0でいいですか?
フックの種類は何がいいですか?
502デフォルトの名無しさん:2007/08/28(火) 11:16:32
VBやExcelでは、日付型をdouble型にも変換できるみたいですが、
同等な処理をC側でもやろうと思い、
とりあえずSYSTEMTIME構造体の内容を、
DATE型(IEEE 64 bit)に変換する関数を探しています。
実際、そんな関数あるのでしょうか?

もしあれば、その関数名を教えていただきたいです。
また、Web上で参考になるサイトや資料を知っている方、
誘導をお願いします。
503デフォルトの名無しさん:2007/08/28(火) 11:22:13
>>502
Int32.Parse
504デフォルトの名無しさん:2007/08/28(火) 12:18:18
>>498
タイミングは問題ない
retA,retBに対してCloseHandleは不要
505デフォルトの名無しさん:2007/08/28(火) 12:20:30
>>502
SystemTimeToVariantTime
506498:2007/08/28(火) 12:29:13
>>504
有り難う御座います。自分でも色々調べていたんですが
どうもOpenProcess後、色々処理をやった後本当に不要になった
時点でCloseすればいいだけみたいですね。
参考になりました。有り難う御座いました。
507デフォルトの名無しさん:2007/08/28(火) 12:39:04
それCじゃなくてC#じゃないのか
508502:2007/08/28(火) 12:47:39
>>503
ごめんなさい。
質問文章が巧く伝わらなくって。

>>505
そのままズバりです、
ありがとう御座いました!
509デフォルトの名無しさん:2007/08/28(火) 14:40:29
狐のソースってJava式コメントなのか
510494:2007/08/28(火) 15:59:56
ありがとうございました
プログレスバー使えねえ・・・
511475:2007/08/28(火) 20:59:54
やっとわかった、でも華麗にスルーされたから秘密(* ´艸`)
512デフォルトの名無しさん:2007/08/28(火) 21:07:47
そしてSP1で挙動が変わってまたこのスレに泣き寝入り
513デフォルトの名無しさん:2007/08/28(火) 21:12:17
>>511
で、結局どういう挙動だったんだい?
514デフォルトの名無しさん:2007/08/28(火) 21:24:48
>>511
おせーよ。やっとウザイのが居なくなると思うと嬉しいよ
515デフォルトの名無しさん:2007/08/28(火) 22:13:40
ちんこちんこちんこ^^
516デフォルトの名無しさん:2007/08/29(水) 00:19:04
>>494

>>496のページはだめだな。プログレスバーのWM_PAINTを使えば、楽に出来る。
http://msdn2.microsoft.com/en-us/library/ms670342.aspx
WM_PAINT
Draws the progress bar. If the wParam parameter is non-NULL,
the control assumes that the value is an HDC and paints using that device context.
517デフォルトの名無しさん:2007/08/29(水) 18:47:20
ここで聞くのは違うかもしれませんが、ListViewコントロールで、
アイコンをExplorerみたいに自由に配置できる機能はないのでしょうか?

もしもExplorerもどきを作りたいなら、自分でコントロールを作らなければいけない?
518デフォルトの名無しさん:2007/08/29(水) 18:53:25
ImageList
519デフォルトの名無しさん:2007/08/29(水) 19:11:23
>>517
あるよ
520494:2007/08/29(水) 19:18:44
>>516
そのリンクのどこを見ればよいでしょうか?
サブクラスにするなら>>496と同じ気がするのですが。
521デフォルトの名無しさん:2007/08/29(水) 19:18:50
>>519 詳しく教えてください
522デフォルトの名無しさん:2007/08/29(水) 19:26:55
>>521
ListViewコントロール
523デフォルトの名無しさん:2007/08/29(水) 19:28:23
>>520
何も分かってないし、少ないページなんだから全部見ればいいだろ。
524デフォルトの名無しさん:2007/08/29(水) 19:46:58
>>522 格子状に配置する方法しか見つかりません
525デフォルトの名無しさん:2007/08/29(水) 19:57:52
何でや、どこ見とんねん。
アイコンの配置なんか変え放題やで。
http://msdn2.microsoft.com/en-us/library/ms670559.aspx
526デフォルトの名無しさん:2007/08/29(水) 20:02:21
節子それ外国語やないか!
527デフォルトの名無しさん:2007/08/29(水) 20:03:48
だからどうした?
英語くらいアメリカ人でもぺらぺらできるぞ。
528デフォルトの名無しさん:2007/08/29(水) 20:07:28
エゲレスの言葉なのにか?
529デフォルトの名無しさん:2007/08/29(水) 20:13:32
>>525 読んだのですけど、やっぱり格子状にしか配置できないような。。
530デフォルトの名無しさん:2007/08/29(水) 20:19:27
お前には無理だから諦めろ
531デフォルトの名無しさん:2007/08/29(水) 20:24:43
>>528
旗には米って書いてあるじゃないですか
532デフォルトの名無しさん:2007/08/29(水) 21:26:17
テリーマンかよw
533デフォルトの名無しさん:2007/08/29(水) 22:35:07
>>517
ドラッグ&ドロップでの移動の部分は自分で実装するしかないぞ。
534デフォルトの名無しさん:2007/08/29(水) 23:23:29
>>531
田中一郎君 乙
535494:2007/08/29(水) 23:47:58
>>523
そのページを全部見ましたが、さっぱり判りません。
WM_PAINTで何をすれば良いんですか?
意地悪しないでずばり教えてください。
536デフォルトの名無しさん:2007/08/29(水) 23:50:50
>>535
理解する能力のない貴方には無理です。
悪足掻きしないですっぱり諦めてください。
537デフォルトの名無しさん:2007/08/29(水) 23:51:22
うは、日本語でおkとか思っている?
ちょっと回り道して英語の勉強をするいい機会と思えばいい。
なに、中学校で1度はやっているんだから大したことはない。
538デフォルトの名無しさん:2007/08/30(木) 00:14:05
>>494
プログラミングWindowsとか、Advanced Windowsは読んだことある?
539494:2007/08/30(木) 00:16:46
もうあきらめます。さようなら!
540デフォルトの名無しさん:2007/08/30(木) 00:18:56
WM_PAINT
プログレスバーを描画します。wParamがNULLでない場合、このコントロールは、値がHDCで、そのデバイスコンテキストを使って描画するとします。

うーん難しい
541デフォルトの名無しさん:2007/08/30(木) 00:33:02
>>539
このスレにどんなことを期待していたかは知らないが、
まずマニュアルを読むというのは基本中の基本だぞ。
Win32 APIの場合、それにあたるのがMSDNライブラリ。
542デフォルトの名無しさん:2007/08/30(木) 00:42:24
>>539
すくなくとも、>>516のページはカストマイズの方法について触れてない。
WM_PAINTについても単にデフォルトの挙動が説明されてるだけなので参考にならない。
プログレスバーのWM_PAINTを使えば、楽に出来るのは確かだが、その具体的な
実装がサブクラス化であり>>496の方法。
516は単にスルーしておけ。
543516:2007/08/30(木) 01:02:12
>>496のページOnPaintでプログレスバーを自前で描画しているコードを
これで置き換えるだけ
DefWindowProc(WM_PAINT, (WPARAM)(HDC)dc, 0);

気づいてほしかったな。

>>542
ごちゃごちゃ書いてねーで実装示せよ
544デフォルトの名無しさん:2007/08/30(木) 01:02:26
hdc = BeginPaint(hWnd, &ps);
SendMessage(hProg1, WM_PAINT, (WPARAM)hdc, 0);
EndPaint(hWnd, &ps);
545デフォルトの名無しさん:2007/08/30(木) 01:07:01
デバッグモードで実行すると
GlobalFree()のところで必ず止まるんだけどなぜ?
546デフォルトの名無しさん:2007/08/30(木) 01:15:39
エスパー大募集中
547デフォルトの名無しさん:2007/08/30(木) 01:20:48
WndProcにこんなの書いたらできた
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
SendMessage(hProg1, PBM_STEPIT, 0, 0);
RECT rect;
rect.top = 150;
rect.left = 30;
rect.bottom = 180;
rect.right = 200;
SetBkMode(hdc , TRANSPARENT);
DrawText(hdc, L"ぬるぽ", 3, &rect, 0);
EndPaint(hWnd, &ps);
break;
548デフォルトの名無しさん:2007/08/30(木) 03:58:19
馬鹿な質問ですみませんがWin32APIってCでもC++でも書き方同じですか?
Cの書き方でもC++で使えるのは分かるのですが、C++でCの書き方してると
カッコわるいかなと思うんで
549デフォルトの名無しさん:2007/08/30(木) 04:00:17
むしろC++で書くのがかっこわるい
550デフォルトの名無しさん:2007/08/30(木) 04:08:34
>>548
CでもC++でもWin32API書けないお前には関係のない話
551548:2007/08/30(木) 04:40:16
いえこれからC+++でAPI作ってやるところだよ
お前らのためにな
552548:2007/08/30(木) 04:53:31
Win32APIぐらいいくらでもかけるわ
おまえらと一緒にすんな
553デフォルトの名無しさん:2007/08/30(木) 04:53:44
その前にC+++作らないと
100回生まれ変わってもお前には無理だけど
554デフォルトの名無しさん:2007/08/30(木) 04:55:53
>>552
ここはWin32APIを書けるか書けないかの人のスレじゃなくて
Win32APIを書ける人のスレです。
555デフォルトの名無しさん:2007/08/30(木) 06:16:37
Win32API の実装か・・・難しそうだな
556502:2007/08/30(木) 08:14:40
C++0xってどうなってんだろ?
多分、次々版でMSは採用なんかな?
557デフォルトの名無しさん:2007/08/30(木) 08:15:37
502は死ね
558502:2007/08/30(木) 08:16:17
>>557
後は頼む・・・ぐふっ
559デフォルトの名無しさん:2007/08/30(木) 08:17:02
喜んで
560デフォルトの名無しさん:2007/08/30(木) 08:40:07
レス指定殺人予告も逮捕理由にならなかったか?
561デフォルトの名無しさん:2007/08/30(木) 08:49:32
誰も殺人予告はしてないと思うが。
562デフォルトの名無しさん:2007/08/30(木) 09:11:34
自殺の強要
563デフォルトの名無しさん:2007/08/30(木) 10:11:57
質問です。
VC++6, SDK 使ってます。

PropertySheet()でプロパティシートを作ったとき、そのプロパティシートが
作られる直前タイミングは PROPSHEETHEADER.pfnCallback (=PropSheetProc)
の PSCB_PRECREATE で得られますが、閉じる(閉じた)タイミングはどうしたら
取得できるでしょうか?
ムリポ?
564デフォルトの名無しさん:2007/08/30(木) 10:17:39
>>563
VCスレに逝ってくださいよ
565デフォルトの名無しさん:2007/08/30(木) 12:04:55
>>564
マジデ?
(VCは使ってるけど)VCに依存する話ではないと思うんだが・・・
566デフォルトの名無しさん:2007/08/30(木) 12:40:36
>>563
PSCB_BUTTONPRESSEDじゃダメなん?
567デフォルトの名無しさん:2007/08/30(木) 13:20:08
>>566
d
comctl32.dll ver6 (XP)以降の機能ですね。
せめてw2kくらい対応してるといいのですが

XPになってPSCB_BUTTONPRESSEDが追加されたということは、つまり
それ以前には同機能が無かった、と読むべきなのか
568567:2007/08/30(木) 13:26:09
ごめん、ついWin32API以外にまで言及してしまった。
今回はWin95等を考慮し「Win32API」の範囲で実現したかったので、ひとまず断念します。
失礼しました。
569デフォルトの名無しさん:2007/08/30(木) 14:00:33
>>567
あとはPSN_APLLY, PSN_QURYCANCELとか

あと>>564はMFCの質問と間違えたと思われ
570デフォルトの名無しさん:2007/08/30(木) 14:34:44
確実なのはプロパティシートをサブクラス化してWM_DESTROY捕まえだろう
571デフォルトの名無しさん:2007/08/30(木) 16:16:31
ttp://wisdom.sakura.ne.jp/system/winapi/win32/win30.htmlの
上部に載ってたソースをコンパイルすると

タイトルバーの文字は正常に表示されたのですが、
メッセージボックス内部がめちゃくちゃに文字化けしてしまいました。
どこがまずいのでしょうか?
(メッセージボックスだけなどを作成したところそちらは問題ありませんでした。)
572デフォルトの名無しさん:2007/08/30(木) 16:39:51
>>571
wsprintf(tcStr , _T("Kitty on your lap\nwPalam = %Xh") , wp);
573デフォルトの名無しさん:2007/08/30(木) 17:25:08
>>572
いかんすっかり忘れとったw
ありがとうございました。
574デフォルトの名無しさん:2007/08/30(木) 18:01:52
ブラウザやms-office系のソフトで
マウスカーソルの下にあるテキストを取得するにはどうしたらいいでしょうか?

標準的なエディットコントロールではsendmessageでwm_gettextすることで取得できるようですが。。。
575デフォルトの名無しさん:2007/08/30(木) 18:28:12
>>570
WM_DESTROYは受け取れない?

Property Sheets
http://msdn2.microsoft.com/en-us/library/ms652415.aspx
576デフォルトの名無しさん:2007/08/30(木) 18:56:38
>>574
昔からのやり方でTextOutをフックするという方法がある
俺には無理だが
577563:2007/08/30(木) 19:33:58
>>575
>>563です。
当初の希望は「プロパティシート」の閉じるタイミングですが、WM_DESTROY等は「プロパティページ」
が閉じるときのメッセージですよね。

ということで今回は、
開いた全プロパティページにPSN_APLLYが来る=プロパティシートが[OK]で閉じる時
と判断するようにして対応しました。
578デフォルトの名無しさん:2007/08/30(木) 20:31:33
>>574
1.ウィンドウを列挙
2.PtInRect関数でウィンドウ内にマウスがあるか?
3.CharFromPos関数で一番近いテキスト

ごめんわからへん
579デフォルトの名無しさん:2007/08/30(木) 21:08:36
>>574
Microsoft Active Accessibility の機能を使うとできるかもしれない。
MSDNのその項目で紹介されているテスト用ツール(AccExplorer等)を試してみるといい。

アプリ側で対応していないとどうしようもないが、
MSのアプリならある程度期待できるような気がする。
580デフォルトの名無しさん:2007/08/30(木) 22:33:01
ちなみにカーソルの下という条件でなければ、
COM使ってDOMなりなんなりを読み取れる。
581デフォルトの名無しさん:2007/08/30(木) 22:45:44
>>576
マウスとキーボードのグローバルフックは出来たので
もっと調べてみます

>>578
ありがとうございます

>>579
読み上げの機能みたいなやつ?
調べてみます

>>580
COMでWORDのファイルを開くということ?
調べてみます
582デフォルトの名無しさん:2007/08/30(木) 22:46:17
わろた
583デフォルトの名無しさん:2007/08/31(金) 02:29:35
DirectX および OpenGL の中で簡単なテキスト入力フィールド
を作ろうと考えています。英語のみなら簡単に実装できそうなの
ですが、日本語対応も考えるとさっぱりです。
できるだけ低レベルな Win32API を使って IME と対話したいのですが、
どなたか経験をお持ちの方はいらっしゃらないでしょうか?
ヒントもしくはキーとなる API を教えてもらえば幸いです。
584デフォルトの名無しさん:2007/08/31(金) 02:46:00
IMMで始まるぜ!
585デフォルトの名無しさん:2007/08/31(金) 03:37:22
>>583
最近のDirectXSDKにIME対応エディットボックスのソース丸ごとついてるよ。
586583:2007/08/31(金) 17:19:32
>>584
>>585

なんとか資料を集めることができました。
ありがとうございます。
587デフォルトの名無しさん:2007/08/31(金) 17:34:01
msime.hくらい標準で入れとけって思う>>ms
588デフォルトの名無しさん:2007/08/31(金) 21:05:05
VC.Netのスレではスレ違いなようでしたので、
こちらで質問させていただきます。

VC++6.0Sp6@win2000なのですが、
現在win32 Application、単純な"Hello World"プログラムで
プログラムを作っており、

#include <commctrl.h>
#pragma comment(lib, "comctl32.lib")

と書いているのにInitCommonControls();が定義されていない識別子だと
エラーメッセージが出ます。
このエラーメッセージが出る訳と対処法の方教えて下さい。
589デフォルトの名無しさん:2007/08/31(金) 22:12:43
>>588
呼ばなきゃいいんじゃね?とか言ってみる。
ダイアログで使う分には、勝手に内部で呼ばれるだろうし。
エラーの原因自体はソースを見ないと判らないな。
590デフォルトの名無しさん:2007/08/31(金) 22:36:33
InitCommonControlsは実際には何もしないAPIで、本当に必要なのはcomctl32.dllのDllMain

InitCommonControlsをソース上でとりあえずつかっておけばcomctl32.dllがスタティックリンクされるって理屈らしいので
comctl32がリンクされてさえいれば問題無いんじゃないだろか

エラーの理由はシラネ
591デフォルトの名無しさん:2007/08/31(金) 22:55:37
>>588
#include <commctrl.h>
#pragma comment(lib, "comctl32.lib")
の行を
#include "stdafx.h"
より前に記述したと予想。

もし、そうなら記述位置を後ろにずらせ。
プロジェクト設定で「プリコンパイル済みヘッダを使う」が有効の場合(デフォルト状態)、
#include "stdafx.h"
の前には何も記述してはいけない。
記述しても無視されるが、これ自体はエラーにはならないので注意。
592デフォルトの名無しさん:2007/08/31(金) 23:05:43
WIN32APIって全部でいったいいくつくらいの関数があるん?

MSDNとかわかりにくくていやなんで、
自分なりに使い方をまとめて保存しているんだが、
永遠に終わらない気がしてきた・・・。
自分が覚えるスピードより新しく追加されるスピードの方が速い気が・・・
593デフォルトの名無しさん:2007/08/31(金) 23:09:22
>>591
後ろにずらすより、stdafx.hに書くべき内容だと思うがw
594デフォルトの名無しさん:2007/08/31(金) 23:10:59
>>592
(´-`).。oO(あほは大変だなぁ・・・)
595デフォルトの名無しさん:2007/08/31(金) 23:28:05
>>592
数はともかくマジレスするとカテゴリだけ覚えとけw
辞書は覚えるのじゃなくて引くものだぞ
596デフォルトの名無しさん:2007/08/31(金) 23:37:27
大学受験のときに英和辞典をaからzまで順番に覚えていった俺・・・
597デフォルトの名無しさん:2007/08/31(金) 23:37:31
公開時期別一覧
http://msdn2.microsoft.com/en-us/library/aa383687.aspx
カテゴリ別一覧
http://msdn2.microsoft.com/en-us/library/aa383686.aspx
アルファベット順は省略

>>592
http://msdn2.microsoft.com/en-us/library/aa383687.aspx
そういうわけでVistaでもたくさん追加されているね。
Server 2008でも少しながら追加されているし。

関数以外にもウィンドウメッセージやCOMインタフェースもあるし、
本当にきりがないよ。
598デフォルトの名無しさん:2007/08/31(金) 23:42:12
何年前の何日は何曜日とか芸能人の誕生日とか覚えてるやつはいるから
WinAPIを型から全部そらで覚えてるやつもきっといるんじゃね?
599デフォルトの名無しさん:2007/08/31(金) 23:48:35
そんなの関係ねぇ
600デフォルトの名無しさん:2007/09/01(土) 00:30:51
msdn2のAPIは、日本語化はされない?
古いmsdnは日本語化されているのに。
601デフォルトの名無しさん:2007/09/01(土) 00:35:40
APIはまだいいんだが、OLEとか、ActiveXtとか、COMインターフェイスとか、よくわかんないな。
「次の時代はこれ」って言ってたのに、すぐにまた新しいのがでてくる。
.Netは信用していいんだよな。
602デフォルトの名無しさん:2007/09/01(土) 00:39:26
>>600
msdn2のAPIも古いmsdn同様、一部日本語化されている。
603デフォルトの名無しさん:2007/09/01(土) 00:50:06
一生懸命試行錯誤して自作した関数が
既にWin32APIにあったと知ったときの虚無感
604デフォルトの名無しさん:2007/09/01(土) 00:52:43
しかし、その関数は要Win2kだったりすると、
少しは慰められるかもしれない。
605デフォルトの名無しさん:2007/09/01(土) 01:00:08
Vistaまでしかサポートしないよ。んじゃ!
っていうAPIとかCOMインターフェイスが多いので困る
606デフォルトの名無しさん:2007/09/01(土) 01:07:07
win9x はもう見捨てていいんじゃない?
607デフォルトの名無しさん:2007/09/01(土) 01:10:55
>>602
おお、そうなのか。てっきり.netだけ日本語化かと思ってた。
608デフォルトの名無しさん:2007/09/01(土) 04:40:22
>>603
漏れはこんなの当然あるだろうと思って探した機能が
APIになかったときの虚無感の方が大きい
609デフォルトの名無しさん:2007/09/01(土) 04:44:52
>>601
>OLEとか、ActiveXtとか、COMインターフェイスとか

特別何かが新しくなってる訳じゃない
強いて言えば名前だけ新しくなった
610デフォルトの名無しさん:2007/09/01(土) 05:56:22
リストボックスにLB_GETTEXTはあるのにLB_SETTEXTがなかったとき
611デフォルトの名無しさん:2007/09/01(土) 06:05:11
なみだがでますー
612デフォルトの名無しさん:2007/09/01(土) 06:10:35
>>597
2008用のAPIはVista SP1でも使えるんだろうな
613デフォルトの名無しさん:2007/09/01(土) 06:16:38
win32APIはvistaで廃止されるのです
そうここの住人は死を待つのみ
614デフォルトの名無しさん:2007/09/01(土) 06:36:58
LB_GETTEXTがあるから当然LB_SETTEXTもあると思うじゃないですか!
こいつアホ
615デフォルトの名無しさん:2007/09/01(土) 10:35:48
>>613
まじかw
これからはどうなるの?
616デフォルトの名無しさん:2007/09/01(土) 10:44:56
座して死を待つのみ
617デフォルトの名無しさん:2007/09/01(土) 10:52:15
>>616
おなかすいた
618デフォルトの名無しさん:2007/09/01(土) 11:34:06
WIN32APIの死=MSの死
619デフォルトの名無しさん:2007/09/01(土) 12:05:19
Win64API
620デフォルトの名無しさん:2007/09/01(土) 12:45:59
でも当初ビスタではwin32廃止するっていってたよね
621デフォルトの名無しさん:2007/09/01(土) 13:11:28
>>620
予定は未定
622デフォルトの名無しさん:2007/09/01(土) 15:07:16
GlobalAllocとmallocってどう使い分ければいいんでしょうか?
623デフォルトの名無しさん:2007/09/01(土) 15:14:29
mallocだけで大丈夫
624デフォルトの名無しさん:2007/09/01(土) 15:50:41
>>622
GlobalAlloc使えと書いてあるAPIで使う
625デフォルトの名無しさん:2007/09/01(土) 15:53:57
正社員なんてオレにとっちゃ社畜でしかねーよ!
ttp://www.geocities.jp/sakusyu2006/index4.html
626デフォルトの名無しさん:2007/09/01(土) 17:35:30
HeapAllocとかVirtualAllocとかもみんなmallocで統一しておk?
もちろんそのAPIじゃないとだめって書いてある場合はそうするけどさ
627デフォルトの名無しさん:2007/09/01(土) 17:44:19
そういう質問をしているレベルならmalloc()でいいんじゃね
628デフォルトの名無しさん:2007/09/01(土) 18:03:55
なんでmsdn全部翻訳しないの?
日本のmicrosoftは何やってんの?
629デフォルトの名無しさん:2007/09/01(土) 18:20:17
英語読めないプログラマお断り
630デフォルトの名無しさん:2007/09/01(土) 18:25:46
最近じゃ文系よりも理系のTOEIC受験者が多いぐらいだからな

>>626
パフォーマンスに影響が出るような局面で無い限り適当でも害は無い
ただmemsetをめでるのもいいけどHEAP_ZERO_MEMORYフラグを忘れないであげてください
631デフォルトの名無しさん:2007/09/01(土) 19:12:56
new deleteにしとけ
632デフォルトの名無しさん:2007/09/01(土) 19:34:50
MSDNの英語読めないのはさすがにまずいだろ‥‥
中3-高1程度の英語力(+技術系の英単語知識)があれば読めるだろ。あれ。
633デフォルトの名無しさん:2007/09/01(土) 19:39:37
ごめん…
634デフォルトの名無しさん:2007/09/01(土) 19:45:14
中2レベルなんです
635デフォルトの名無しさん:2007/09/01(土) 19:48:44
学校行け
636デフォルトの名無しさん:2007/09/01(土) 19:49:24
>>632
うちの会社の新人研修では「派遣さんは英語のマニュアルは読めないので必ずフォローし・・・」
なんて講師が真顔で説明してたけどw
637デフォルトの名無しさん:2007/09/01(土) 19:49:59
技術的なことは日本語でも意味わからなかったりするから
638デフォルトの名無しさん:2007/09/01(土) 19:53:03
ぶっちゃけ、英語よりも日本語のマニュアルの方が読めない。
639デフォルトの名無しさん:2007/09/01(土) 19:59:13
それって翻訳失敗(自動翻訳とか)ってことではなくて?
640デフォルトの名無しさん:2007/09/01(土) 20:03:54
ちゃんと人間が翻訳した本でもひどい文章になってるものはあるしなぁ
641デフォルトの名無しさん:2007/09/01(土) 20:13:03
英文学とかで学んでた翻訳が技術文書翻訳してまともな日本語の技術文書ができあがるわけがない
フライトシムの日本語マニュアルなんて翻訳無茶苦茶で英文マニュアルの方がはるかにわかりやすかった。
642デフォルトの名無しさん:2007/09/01(土) 20:16:31
英語の技術書は、半分がジョークとか世間話だったりするような気がする
643デフォルトの名無しさん:2007/09/01(土) 20:28:09
昔はウソもあったよ。MSDN
644デフォルトの名無しさん:2007/09/01(土) 20:39:43
>>642
デイヴィッド・マーク・スペクター並みのジョークですか?
それはきついですね
645デフォルトの名無しさん:2007/09/01(土) 20:41:28
戦うプログラマというほら吹き本?
646デフォルトの名無しさん:2007/09/01(土) 20:46:57
>>645
なぁ勘助。
デビット・カトラーは産婆やめてMSに寝返ったんだよな。
647デフォルトの名無しさん:2007/09/01(土) 20:52:27
自分が前いた会社を潰した人は潰しきくの?
648デフォルトの名無しさん:2007/09/01(土) 20:54:27
どうやって潰したのさ?理由しだいだな
649デフォルトの名無しさん:2007/09/01(土) 21:16:13
日本語は駄目な言語なんかね
650デフォルトの名無しさん:2007/09/01(土) 21:28:06
特定のウィンドウが所有しているウィンドウハンドルを列挙する方法をご存知の方、教えてもらえないでしょうか?
特定のウィンドウの兄弟ウィンドウをGetWindowで列挙させて、そいつらのオーナーウィンドウが特定のウィンドウかどうか調べる。。って方法であってますか?
それとももっと簡単な方法ってありますか?

651デフォルトの名無しさん:2007/09/01(土) 21:34:43
>>650
そのものズバリのEnumChildWindowsじゃ不満なのかね?
652デフォルトの名無しさん:2007/09/01(土) 21:37:31
>>651
EnumChildWindowsは子ウィンドウを列挙するものなんで使えませんでした。
653デフォルトの名無しさん:2007/09/01(土) 21:40:16
>>652に追加
特定のウィンドウが作成したモーダルダイアログは所有しているウィンドウだけど、子ウィンドウでないので、
EnumChildWindowsでは列挙できませんでした。
654デフォルトの名無しさん:2007/09/01(土) 22:02:11
ウィンドウ全部列挙してオーナーを調べるしかないんじゃね?
655デフォルトの名無しさん:2007/09/01(土) 22:08:48
>>654
ShowOwnedPopupsは内部的に所有しているウィンドウを列挙していると思うので、
所有しているウィンドウを列挙できる何か方法があるんじゃないかと思ったんですが...
ShowOwnedPopupsも全ウィンドウ列挙してるんでしょうかね?
656デフォルトの名無しさん:2007/09/01(土) 22:11:28
子ウィンドウ、親ウィンドウ、所有者のウィンドウは内部的に管理しているが、
所有しているウィンドウは管理していないので取得するAPIも存在しない。
657デフォルトの名無しさん:2007/09/02(日) 06:48:50
office onenoteのズームを外部プログラムから変えようとしているんですが、うまくいきません。
ツールバーのズームボックスのハンドルを取得して、WM_SETTEXTをセンドメッセージして、150%とか文字は
書き換えられるのですが、その後、それを反映させることができません。

スパイで得たズームボックスのメッセージをかなり忠実に再現してもだめです。
例えば、SendMessageで、WM_KEYDOWN,VK_RETURN,0x011c0001
WM_KILLFOCUS,NULL,NULL
WM_IME_SETCONTEXT,NULL,0xc000000F
EM_SETSEL,0xffffffff,NULL
EM_SCROLLCARET,0xffffffff,NULL
等々だめでした。

どうすれば、外部プログラムからオフィス等のズームを変えられるのでしょうか。
658デフォルトの名無しさん:2007/09/02(日) 07:00:28
keybd_event
659デフォルトの名無しさん:2007/09/02(日) 07:42:58
それよりもCOMでオートメーションを使うほうが確実ではないか?
Excel VBAならググればすぐ見付かったから、たぶんOneNoteでもできると思う。
660デフォルトの名無しさん:2007/09/02(日) 13:34:23
GUIアプリを作ったときにprintfとかで標準出力に出力すると、コンソールも一緒に表示させてるときはそこに出るけどコンソール出してないときにprintfすると文字列はどこにいくの?
661デフォルトの名無しさん:2007/09/02(日) 13:37:39
>>661
事象の地平線の向こう。
662デフォルトの名無しさん:2007/09/02(日) 13:51:37
時空の狭間かな。
663デフォルトの名無しさん:2007/09/02(日) 13:51:44
親プロセスに渡るか、闇に葬られる
664デフォルトの名無しさん:2007/09/02(日) 13:54:43
デバッグ用にprintfで出力した文字列は(事象の地平線の向こう|時空の狭間|闇に葬られる)からリリース時に消さなくてもたいして害はないってことでしょうか
ご回答ありがとうございました!
665デフォルトの名無しさん:2007/09/02(日) 14:02:24
いや、フォーマット文字列のパースと入力の変換のコストが掛かるから
(パフォーマンスを気にするなら)取り除いておいた方がいい。
666デフォルトの名無しさん:2007/09/02(日) 14:21:00
>>664
何その糞アプリ
667デフォルトの名無しさん:2007/09/02(日) 14:25:27
リリースなのにOutputDebugStringからデバッグ出力吐き続けてる糞アプリもよくあるよね
668デフォルトの名無しさん:2007/09/02(日) 15:24:44
ごめん…
669デフォルトの名無しさん:2007/09/02(日) 15:43:30
わりとよくやってる ごめんよ
670デフォルトの名無しさん:2007/09/02(日) 15:47:09
こっそり愚痴メッセージを垂れ流しているアプリがあっても不思議じゃないな。
671デフォルトの名無しさん:2007/09/02(日) 15:54:42
イースターエッグみたいなもんだと思えば
672デフォルトの名無しさん:2007/09/02(日) 17:03:51
>>667
普通は発生しないはずのエラーが発生したときとかのみその情報を出力してくれてるのはアリじゃね?
つか、俺はそうするようにしてる。
673デフォルトの名無しさん:2007/09/02(日) 17:06:08
そういう時って普通ログに吐かないか?
674デフォルトの名無しさん:2007/09/02(日) 17:07:52
>>672
http://www.nitoyon.com/vc/tutorial/debug/win32.htm
--
OutputDebugStringは、デバッグモード・リリースモードに関係なく、デバッガが存在すれば文字列を出力します。
この関数を埋め込んだままアプリケーションを公開するとパフォーマンスが落ちそうですが、デバッガが存在しない
ときにはパフォーマンスはほとんど低下しません。また、多くの市販アプリケーションの出荷版にも
OutputDebugStringが埋め込まれたまま出荷されています。このようにしておけば、出荷後の環境で不具合が
発生したときに、どのような状態になっているかを発見できるからです。
--
勘弁してくれ。
675デフォルトの名無しさん:2007/09/02(日) 17:09:34
恥ずかしながら知らんかった

どう考えても解析に利用されるだけです
本当にありがとうございました
676デフォルトの名無しさん:2007/09/02(日) 17:52:12
本当にありがとうでござるよ
677デフォルトの名無しさん:2007/09/02(日) 18:48:45
OutputDebugStringで出力されたものって、開発環境のないPCでも見れるの?
678デフォルトの名無しさん:2007/09/02(日) 18:58:17
見れるよ。そういうツールはある。
679デフォルトの名無しさん:2007/09/02(日) 19:04:51
680デフォルトの名無しさん:2007/09/02(日) 19:09:17
このスレの住人はDebugView標準装備だと思ってた 
さがせばほかにもいっぱいあるのね
681デフォルトの名無しさん:2007/09/02(日) 19:13:36
VS2005 Proで実験
「スキーマ '(略) \Projects\Hoge\Hoge\Properties\resources.resx' をアンロードしています。」
682657:2007/09/02(日) 19:46:57
>>659
既に開いてあるオフィス文書を、COMを介して外部プログラムから操作するとなると、
共有メモリとかなんとかを使わなければならないんですか。
683デフォルトの名無しさん:2007/09/02(日) 19:54:43
いいえ
684デフォルトの名無しさん:2007/09/02(日) 20:13:05
FrqScr[].hwndにハンドルが格納されません。(MessageBoxで表示させると0になる、file3のhTempの場合は表示される。

「構造体のポインタをcallocでメモリ確保して、
添え字を付けて指定、したところに代入」
の動作が正しくできるかチェックしたら
ちゃんと正しく表示されました。

根本的に間違ってるところがあるかもしれません。
言葉足らずだったらすいません。

次にソース貼ります。
685684:2007/09/02(日) 20:13:34

/ * file1 */

typedef struct _usrSetScrProp{

HWND hwnd;
SCROLLINFO scrInf;

}USRSETSCRPROP, *PUSRSETSCRPROP;

~~~~~~~~~~~~~~~~~~~~~~~~~~
686684:2007/09/02(日) 20:16:06

/* file2 */

static PUSRSETSCRPROP FrqScr;\
unsigned char i;


// メモリ確保
#ifdef SM_FRQ_VAL
FrqScr = calloc(sizeof(USRSETSCRPROP), SM_FRQ_VAL);
#endif

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
case  WM_CREATE:

    FrqScr[i].hwnd =
    CreateScroll(hwnd, (HMENU)SM_CH_FRQSCR_BASE+i,7 + i *80, 60 );

    str_Temp = malloc(sizeof(HWND));
    wsprintf(str_Temp, "%ld", FrqScr[i].hwnd);
    MessageBox(NULL, TEXT(str_Temp), TEXT(""), MB_OK);
    free(str_Temp);

}
687684:2007/09/02(日) 20:16:56

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/ * file3 */
HWND CreateScroll(HWND pareHwnd, HMENU hmenu, int x, int y ) {

HWND hTemp;

hTemp = CreateWindow( //スクロールバー
TEXT("SCROLLBAR") , TEXT("") ,
WS_CHILD | WS_VISIBLE | SBS_VERT ,
x, y , 16 , 120 ,
pareHwnd , (HMENU)hmenu,
hAppIns , NULL
);

str_Temp = malloc(sizeof(HWND));
wsprintf(str_Temp, "%ld", hTemp);
MessageBox(NULL, TEXT(str_Temp), TEXT(""), MB_OK);
free(str_Temp);

return hTemp;

連投すいませんでした
688デフォルトの名無しさん:2007/09/02(日) 20:26:10
str_Temp = malloc(sizeof(HWND));

TEXT(str_Temp)

この辺の意味がよくわからないんだけど
689684:2007/09/02(日) 20:31:45
TEXT()ってのがUnicodeに変換するやつみたいで、参考にしたサイトでは標準ってことになってた。

str_Tempはメモリ確保・・・って俺間違ってる
HWNDじゃ駄目じゃん・・・文字入れるのに
690デフォルトの名無しさん:2007/09/02(日) 20:34:31
ダメダメじゃんw何そのソース糞わろた
もうプログラミングやめた方がいいよ
691デフォルトの名無しさん:2007/09/02(日) 20:42:47
>>684
TEXTマクロの宣言をヘッダで確認してこい。
あとデバッグ出力させたいなら、CRTのデバッグルーチン使うなり
OutputDebugString使った自前の関数を用意しろ。

ちなみに、TEXT()と書くよりtchar.hをインクルードして_T()と書く方が楽だよ♪
692デフォルトの名無しさん:2007/09/02(日) 20:51:18
アンダーバーうつの面倒くさいとかたまに思ったり

>>684
人にバグの相談する前に、熊のぬいぐるみに対して、
どういう処理をしたくてそのコードを書いたのか説明して頭整理しておけ

ってだれか言ってた
693デフォルトの名無しさん:2007/09/02(日) 20:53:30
タイピングから練習した方がいいね
694デフォルトの名無しさん:2007/09/02(日) 21:12:35
俺は大文字打つの面倒くさい
695684:2007/09/02(日) 21:21:32
>>691
調べたところBCC使ってるんでCRTは無理みたいです。

確かに_T()は楽ですね、ありがとうございます。

>>692
その言葉頭に入れておきます。
696657:2007/09/02(日) 22:56:18
>>658
キーボードイベントでなんとかやりたいことが出来ました。
>>659,683
COMで確実にやりたいところでしたが次の課題にしました。
ありがとうございました。
697デフォルトの名無しさん:2007/09/03(月) 10:43:26
メールヘッダのData:をSYSTEMTIME等に変換するAPIを教えてください
698デフォルトの名無しさん:2007/09/03(月) 10:58:59
データ?
699デフォルトの名無しさん:2007/09/03(月) 11:04:00
DllのDllMainでGetProcAddressしているAPIをインジェクションする方法を知っておられる方、教えてください。

DllMainでGetProcAddressでポインタを取得されている場合、
ImportAddressTableの書き換えによるDLLインジェクションができないです。
LoadLibraryの後だとDLLインジェクションのためにImportAddressTableをかきかえても
GetProcAddressのポインタに影響しないのが原因とおもっています。
そこでLoadLibraryExでDONT_RESOLVE_DLL_REFERENCESを指定してロードして、
その後、LoadLibraryExで取れたポインタからDOSヘッダ->オプショナルヘッダから
エントリーポイントのアドレスを取得して、DllMainCRTStartUpを実行しましたが、
アクセス違反となります。この方法は無理っぽいです。
デバッガでみるとDllMainCRTStartUpのポインタはうまくとれて実行できているので、
なんかLoadLibraryではされている手順が自分のコードではできていないんだと思っています。
700502:2007/09/03(月) 11:13:29
>>697
ローカル時間に変更って事?
701デフォルトの名無しさん:2007/09/03(月) 11:27:23
>>700
いえ、たとえばメールヘッダの以下の形式を
Date: Fri, 2 Mar 2007 12:07:05 +0900
SYSTEMTIMEかまたは文字列の年/月/日 時:分:秒
形式にしたいです。
702デフォルトの名無しさん:2007/09/03(月) 11:29:13
>>700
お前死んだんじゃないのか嘘吐き野郎
703デフォルトの名無しさん:2007/09/03(月) 12:28:36
>>701
そういうのを自分でやるのがプログラマの仕事ですよと。
704デフォルトの名無しさん:2007/09/03(月) 13:37:37
>>701
そんなAPIはない。
705デフォルトの名無しさん:2007/09/03(月) 13:49:00
ペイントのようなお絵かきソフトを作りたいと考えています。
Win32APIとC言語、タブレットの筆圧を使う予定です。
自由選択による画像のコピー&ペースト機能も作りたいです。

お勧めのプログラミング参考書・サイトなどがありましたら教えてください
m(_ _)m
706デフォルトの名無しさん:2007/09/03(月) 14:02:17
http://www.google.co.jp

こんな感じでいい?
707705:2007/09/03(月) 14:04:06
もう最高!♪
708デフォルトの名無しさん:2007/09/03(月) 14:20:07
>>699
呼ばれるコードのほうを書き換えろ。
つーかインジェクトじゃなくやろうとしていることはフックに見えるけどな。
709デフォルトの名無しさん:2007/09/03(月) 14:27:52
    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    iiiiiiiillllll!!!!!!!!!!!!!!!!!!!!!iiii,,,,
   l"""",,,,,,,,iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii,
  |||||||||||!!!!!!!"""""""""!!!!!!!lll!!》
 .i|||||~~~~     ___      ..!!!》!
 巛/  ’,,,iiiiiiillllllll!!!!! iiiiiii,,,,,,,,, |
  |  """"≡ 。ヽ   _  ""'|
 .⌒”丶 .  `_彡"  ( °) |
(('.').  / " ⌒ 、.《  ~ヽ⌒' ヽ       >>706 屋上へ行こうぜ…
..'’、  '    ,,,!” ...  ___)    |
.ゝ `      ' ⌒_~ ⌒'    |          久しぶりに…
| ~~        '___       |
.|..       ,,,,,二二二ミ,     |             キレちまったよ…
..|                   |
...|...        "'!!!!!!!'"     |
 |、                ..|
..| へ          ソ   ....|
710デフォルトの名無しさん:2007/09/03(月) 14:30:45
>>709
m9(^Д^)プギャー
711502:2007/09/03(月) 15:08:10
>>702
いやー、実は>>557さんが、ザオリク(ry
712デフォルトの名無しさん:2007/09/03(月) 15:09:49
ザ ラ キ ー マ !
713557:2007/09/03(月) 15:10:01
唱えた憶えはない
714デフォルトの名無しさん:2007/09/03(月) 15:13:44
>>711
ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!
ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!
ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!
ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!
ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!
ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!ザキ!
715デフォルトの名無しさん:2007/09/03(月) 15:27:26
>>714
メラ
716デフォルトの名無しさん:2007/09/03(月) 15:30:29
>>711 オビス3
717デフォルトの名無しさん:2007/09/03(月) 15:56:21
うるさいぞ豚共
        /::::)(:::)(:::::::::::)(::::::^::::::::::\
       (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
     /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
     (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
    (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
   (::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
   ( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
    | =ロ   -=・=-  ‖ ‖ -=・=-   ロ===
    |:/ ‖    / /ノ  ヽ \     ‖ ヽ|ヽ     
     |/  ヽ`======/ .⌒ ` ========ノ.   ..| |   
   .(         .(●  ●)         )ノ  
   (   ・     / :::::l l::: ::: \         .)  
   (       // ̄ ̄ ̄ ̄\:\.       .)   
   .\     : )::::|.  ̄ ̄ ̄ ̄ |::: ::::(:     /..    
    \ :::   :::::::::\____/  ::::::::::   /
      ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_     ノ
       \丶\_::_:::::_:::: :::::_/::::  /
        | \ \ ::::::::::: :::::::::: ::: :: __/ |
    ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄    / ̄ ̄
719デフォルトの名無しさん:2007/09/03(月) 16:45:16
ドラスレ系の呪文か
720デフォルトの名無しさん:2007/09/03(月) 16:46:52
しょうもねー書き込みすんな
721デフォルトの名無しさん:2007/09/03(月) 16:52:17
ザラキ
722デフォルトの名無しさん:2007/09/03(月) 16:53:03
>>720
しょうもねー書き込みすんな
723デフォルトの名無しさん:2007/09/03(月) 16:58:13
>>722-723
しょうもねー書き込みすんな
724デフォルトの名無しさん:2007/09/03(月) 17:46:43
>>1001
しょうもねー書き込みすんな
725デフォルトの名無しさん:2007/09/03(月) 18:03:29
>>1-1000
しょうもねー書き込みすんな
726デフォルトの名無しさん:2007/09/03(月) 18:34:35
DLLのドキュメントってどこかでダウンロード出来ますか?
727デフォルトの名無しさん:2007/09/03(月) 18:36:40
プロセスIDからウィンドウハンドルを見つけ出すには
EnumWindowsで全ウィンドウを探してGetWindowThreadProcessIdでピックしていくしかないの?
728デフォルトの名無しさん:2007/09/03(月) 18:36:41
できます
729727:2007/09/03(月) 18:37:44
>>728
ありがとうございました
730デフォルトの名無しさん:2007/09/03(月) 18:49:36
>>726
DLLのドキュメントって意味わかりません
どんな内容のものが欲しいのか?
731デフォルトの名無しさん:2007/09/03(月) 18:55:01
>>726
dllの中身について説明しているものです。
言葉足らずですみません
732デフォルトの名無しさん:2007/09/03(月) 18:55:45
User32とかのAPIのリファレンスのこと
とエスパーしてみたがどうか。
733デフォルトの名無しさん:2007/09/03(月) 18:55:48
ミスりました。
>>731>>730にです
734デフォルトの名無しさん:2007/09/03(月) 18:57:52
>>732
違います。新で下さい。
735デフォルトの名無しさん:2007/09/03(月) 18:58:06
MZとかPEの事だろ。
とりあえずMSDNくらいは読めよ。
736デフォルトの名無しさん:2007/09/03(月) 18:58:43
>>735
違います。真で下さい。
737デフォルトの名無しさん:2007/09/03(月) 19:07:29
return TRUE;
738デフォルトの名無しさん:2007/09/03(月) 19:10:31
739デフォルトの名無しさん:2007/09/03(月) 22:00:29
>701
バリアント経由で、ってのはどうよ?
740デフォルトの名無しさん:2007/09/03(月) 23:50:38
>>739
俺もそれを考えたけど、残念ながら通らなかった。
.NETのDateTimeなら、タイムゾーン以外は書式指定で一発変換できるのだけど。
てことで、Win32APIレベルでは>>703が正解かと。
741デフォルトの名無しさん:2007/09/04(火) 00:02:46
甘いぜタイムゾーン含めて一発変換だぜ
742デフォルトの名無しさん:2007/09/04(火) 00:22:53
間に‘:’無くても変換できたっけ?
まあ正規表現で置換すれば済む話なんだろうけど。
743デフォルトの名無しさん:2007/09/04(火) 01:57:48
>>739
boost使ったら一発だった
744デフォルトの名無しさん:2007/09/04(火) 03:36:06
DrawText関数の第3引数は文字のバイトサイズじゃなくて、文字数?
UNICODEの文字列を出力しようとして使ったら、後半に余計なものg
745デフォルトの名無しさん:2007/09/04(火) 03:47:22
UNICODEはよけいなのつてるっしょ
746デフォルトの名無しさん:2007/09/04(火) 04:10:28
今、VisualC++使ってます。
たとえば、123214332っていう数字があった場合、3桁区切りで123,214,332って表示しようと思ってる。
いい関数ない?
747デフォルトの名無しさん:2007/09/04(火) 04:14:40
>>744
文字数

>>746
まるちかよ
748デフォルトの名無しさん:2007/09/04(火) 04:14:59
そういや日本の数字体系にあわせるよう
万の桁でコンマ入れようって運動が昔あったらしいな
749デフォルトの名無しさん:2007/09/04(火) 06:24:42
コンマ日本の記号じゃなくね?
750デフォルトの名無しさん:2007/09/04(火) 06:34:48
>>746
それくらい自作できんのかよ
751デフォルトの名無しさん:2007/09/04(火) 07:05:56
>>750
一応、作ったんですよ。
文字列変換して一度、配列を逆転させて、3桁区切りいれて、反転しなおす。

できたんですけど、美しくない。。んでこのスレで聞いてみました。
別スレで3ケタ区切りについてsetlocale関数を助言して下さった方がいたので、勉強中。

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

void main()
{
char *locale;
int a=12413513;
char str[256]="1341234214";
char buf[256];
struct lconv *lcp;

/* ロケールを日本語に設定 */
locale = setlocale(LC_NUMERIC, "ja");
printf("locale=%s\n", locale);
lcp = localeconv();
printf("%s\n", lcp->thousands_sep);
printf("%d\n", a);
printf("%s\n", str);

}
しかし、使い方がよく分からんっす。。orz
752デフォルトの名無しさん:2007/09/04(火) 07:06:26
できねーから書いてんだよ!
753デフォルトの名無しさん:2007/09/04(火) 07:18:03
GetNumberFormatを使わざるをえない
754デフォルトの名無しさん:2007/09/04(火) 07:28:01
>>751
配列を逆転って…する必要ないだろ
文字列の長さでコンマの位置決められるんだから
755デフォルトの名無しさん:2007/09/04(火) 07:36:34
>>751
問題として出すと向こうのスレ住人も幸せになれるかも?
http://pc11.2ch.net/test/read.cgi/prog/1178626960/
756デフォルトの名無しさん:2007/09/04(火) 07:48:02
>>751
マルチ死ね
757751:2007/09/04(火) 07:54:56
うるせーてめーら俺が配列を逆転させた意味すらしらねーくせーに
758デフォルトの名無しさん:2007/09/04(火) 07:56:41
>>753
多謝。
759デフォルトの名無しさん:2007/09/04(火) 07:57:35
>>757
おまえ、誰だよwww
勝手に俺を語るな
760デフォルトの名無しさん:2007/09/04(火) 07:58:21
俺こそがお前だ
761デフォルトの名無しさん:2007/09/04(火) 07:59:12
>>747
サロゲート考えると、文字数じゃなくて、WCHARの数と思う。試したことないけど
762デフォルトの名無しさん:2007/09/04(火) 08:01:12
>>758-759
死ね
763699:2007/09/04(火) 09:13:04
>>708
あれてるなかレスありがとう
よばれるほうをかきかえるということはGetProcAddressが呼ばれる関数だとすると、
書き換え先として偽GetProcAddressを用意しておいて、
元のGetProcAddressの先頭命令をCALL 偽GetProcAddress, RETにしておきかえる
元のGetProcAddressの実行コードはどっかにコピーして実行権限を付加して偽GetProcAddressから呼び出せるようにしておく。
でよろしい?なんかむつかしく考えてしまったような・・・。

フックをしているのはインジェクションを行うためにGetProcAddressとLoadLibraryをフックしておきかえたいからです。
DLL(A)がDLL(B)をLoadLibraryし、DLL(B)がDllMainでGetProcAddressしている先が、
インジェクションしたいAPIだった場合、LoadLibrary後ではImportAddressTableの書き換かえで
インジェクションできないので、DllMainより先にImportAddressTableの書き換えをするとかの方法を探しています。
これが解決できたらDllMainでIATから自力でアドレスを取得する自作GetProcAddressとかは
どう対応するのかとか考えていきたいです。
764デフォルトの名無しさん:2007/09/04(火) 10:27:20
メールヘッダの↓を変換する方法を教えてください
From: =?shift-jis?B?U2VhcmNo?=
765デフォルトの名無しさん:2007/09/04(火) 10:39:29
エンコードにShiftJIS使うようなメールは無条件破棄でOK
766デフォルトの名無しさん:2007/09/04(火) 10:45:12
メールでSJISってwwww
俺のところには1970/01/01付けでスパム送って来る奴がいるが
何考えてんのかと思う
フィルタリングする分には楽だけどね
767デフォルトの名無しさん:2007/09/04(火) 10:57:57
社長からの大事な指令なので捨てられないのです
よろしくおねがいします
768デフォルトの名無しさん:2007/09/04(火) 10:59:42
社長へ大事なスパムメールを送るので捨てられないのです
よろしくおねがいします
769デフォルトの名無しさん:2007/09/04(火) 11:01:16
ここはAPIスレ
770デフォルトの名無しさん:2007/09/04(火) 11:03:32
そういうアピありますよね。おながいします
ない?みんな俺を騙そうとしてるんだ。自分たちだけ独占したいからって
771デフォルトの名無しさん:2007/09/04(火) 11:09:28
荒れるからやめてください。
そんなアピはございません。
772デフォルトの名無しさん:2007/09/04(火) 11:18:22
おまえらしんでください
773デフォルトの名無しさん:2007/09/04(火) 11:29:54
おまいら、仲良く汁!(´・ω・`)
774デフォルトの名無しさん:2007/09/04(火) 11:36:49
api呼び出しをモニタリングする方法にはどんなものがありますか?
microsoftのsupport tool, rohitab, KaKeewareのような。
VTUNEというのでもできるようです。
775765:2007/09/04(火) 12:56:39
Bエンコード + 文字コードShiftJIS だったorz
776デフォルトの名無しさん:2007/09/04(火) 13:07:53
>>763
とことん馬鹿だな。
例えば、GetWindowTextを変えたければ、GetWindowTextのコードを書き換える。
テーブルなんてものは忘れてしまえ。
777デフォルトの名無しさん:2007/09/04(火) 13:39:49
むしろOSを書き換えれ
778デフォルトの名無しさん:2007/09/04(火) 13:45:41
>>776
元のコードは別のところに退避?サイズとかは勘?
779デフォルトの名無しさん:2007/09/04(火) 13:58:20
先頭数バイトをコピーして最後に戻りをつけてやってそっちをあとから呼び出せばいいのか
780デフォルトの名無しさん:2007/09/04(火) 14:10:53
>>778
ジャンプ命令のサイズ考えてあとは自分でどうにかしろ
781デフォルトの名無しさん:2007/09/04(火) 16:01:12
コンボボックス(ドロップダウン)で Ctrl+n/Ctrl+p で↓/↑キーと同じ動きをさせるために、
コンボボックスの子供のエディットコントロールを処理するプロシージャを作っています。
WM_KEYDOWN を拾って処理はできたのですが、ビープが鳴ってしまいます。
0 を返しても 1 を返してもこうなるのですが、Ctrl+c を押したときのように
音を鳴らなさないようにするにはどうしたらよいでしょうか。
782デフォルトの名無しさん:2007/09/04(火) 16:37:56
一時的にスピーカーOFF!!
783デフォルトの名無しさん:2007/09/04(火) 16:45:27
天才あらわる!!!
784デフォルトの名無しさん:2007/09/04(火) 16:48:29
スピーカーボリュームをミニマム!!
785デフォルトの名無しさん:2007/09/04(火) 16:57:50
ビープはスピーカー関係ないだろ
786デフォルトの名無しさん:2007/09/04(火) 16:59:37
net stop beep
787デフォルトの名無しさん:2007/09/04(火) 17:10:13
ビープがなる前にマザーボードを叩き割ったら問題なし!
788デフォルトの名無しさん:2007/09/04(火) 17:10:34
PC の電源OFF
789699:2007/09/04(火) 17:24:40
>>776
とことん馬鹿ですいません。助言をいただいたおかげで望みの実装ができました。
元の対象関数を別領域にコピーして
元の対象関数の先頭命令をインジェクションしたい関数にJMPするように書き換え
元の対象関数は別領域を呼び出せば動作するようにしました。
ありがとうございました。
790デフォルトの名無しさん:2007/09/04(火) 17:27:40
PCの中にウレタンとか入れてさ、防音すればビープも気にならなくなるよ?
まず、PCの静音化から始めるべきだろう。
791デフォルトの名無しさん:2007/09/04(火) 17:41:58
これ一人でレスしてんのかな
792デフォルトの名無しさん:2007/09/04(火) 18:52:49
そうだよ
キチガイは意外としつこい
793デフォルトの名無しさん:2007/09/04(火) 18:55:23
ビープ鳴るのは死亡した時ぐらいだろ
794デフォルトの名無しさん:2007/09/04(火) 19:06:22
"ding" というか「一般の警告音」、Edit で Ctrl+o とかやると出る音か。
795デフォルトの名無しさん:2007/09/04(火) 19:08:25
また自演が始まった・・・orz
796デフォルトの名無しさん:2007/09/04(火) 19:13:53
ビープの鳴るときのメッセージをspy++
797デフォルトの名無しさん:2007/09/04(火) 19:18:25
ビープじゃねぇじゃん糞野郎>>781
798デフォルトの名無しさん:2007/09/04(火) 20:12:44
サウンド設定に依存するから間違いとは言い切れないな。
799デフォルトの名無しさん:2007/09/04(火) 20:18:05
>>738
横からありがとう
手元に置いておいて損は無い資料だ
800デフォルトの名無しさん:2007/09/04(火) 20:19:31
サウンド設定に依存しないから間違いとは言い切れる。
>>768何この低脳アホじゃねw
801デフォルトの名無しさん:2007/09/04(火) 20:23:32
>>800
まったくだ
社長にスパム送るなんて
802デフォルトの名無しさん:2007/09/04(火) 20:41:51
社長に送ったらそれはスパムではない。
業務連絡だ。
803糞野郎781:2007/09/04(火) 22:35:10
>>796
C-p のときに 0x10、C-n のときに 0x0e の WM_CHAR が飛んできていました。
これを捨てるようにしたら音が出なくなりました。ありがとう。
804デフォルトの名無しさん:2007/09/04(火) 23:25:15
>>548
APIって所詮外部関数だろ
CもC+++も関数の呼び出し方は同じ
+++が違ってくるのはクラス関数(メソッド)を呼び出す場合
これが理解できなきゃまずC++スレで叩かれてから来い。
805デフォルトの名無しさん:2007/09/04(火) 23:33:18
XPのコマンドプロンプトでnet useをオプションなしで叩くと、
ネットワークドライブの一覧が取得出ますが、これと同じことを
APIでやろうとして行き詰ってます。

基本的には
WNetOpenEnum
WNetEnumResource
WNetCloseEnum
で一覧を取得できますが、net useで表示される先頭のステータスが
どうやっても取得できません。このステータスって、ネットワークドライブが
LAN上からいないだけで「切断」と見えますが、WNet系のAPIでは
「ネットワークドライブの切断」で切り離した場合のみ接続されていないと
判断するようで、サーバーが死んでるなどの原因でアクセス出来ない状態という
状態は取得できないようです。

エクスプローラでマイコンピュータをブラウズしていると、上記の状態の
ネットワークドライブは切断したネットワークドライブとして見えるので、
なにか方法はあると思うのですが。。。。。。
806デフォルトの名無しさん:2007/09/04(火) 23:39:37
>>804
正にCOMインタフェースを通じてのメソッド呼出は、
CとC++でだいぶ違うよね。
807デフォルトの名無しさん:2007/09/05(水) 00:24:04
子プロセスの終了待機はWaitForSingleObjectでいいことは分かったのですが
自身の外部からの強制終了時に子プロセスを終了させるにはどうしたらよいのでしょうか。
808デフォルトの名無しさん:2007/09/05(水) 00:36:43
>>807
目的にもよるが、別に監視プロセスを立てるとか。
809デフォルトの名無しさん:2007/09/05(水) 01:19:09
>>807
子プロセスのハンドルを持っておいて
プロセスに対して終了メッセージをポストすればいいのでは?
810デフォルトの名無しさん:2007/09/05(水) 01:37:17
本当に強制終了させられたらそのプロセスは何もできんわな
そのプロセスが死んだときに子プロセスが死ぬシカケがいる
811デフォルトの名無しさん:2007/09/05(水) 01:54:23
JobObjectとか?
812デフォルトの名無しさん:2007/09/05(水) 03:46:14
子が勝手に死ねばいい
813デフォルトの名無しさん:2007/09/05(水) 04:51:38
用途を詳しく書いてないから何とも言えんが
ターミナルみたいに子があらかじめ予想できないプログラムの場合
その手は使えないな
814デフォルトの名無しさん:2007/09/05(水) 05:07:47
親プロセスのハンドルを子がもって、子に待機関数使わせるのじゃだめ?
815デフォルトの名無しさん:2007/09/05(水) 08:54:39
子プロセスが、
終了用のイベントハンドルか親のプロセスハンドルを知っていれば、
待機関数でわかるんじゃね?
WaitForMultipleObjects関数とかつかって
816デフォルトの名無しさん:2007/09/05(水) 09:43:56
たまに、画面端とかに緑色のでか文字でOSD表示みたいなのを行うソフトが
あるんですが、このような表示って何のAPIを使っているのですか?
817デフォルトの名無しさん:2007/09/05(水) 09:49:34
普通にGDIじゃないの?
透明(つーか、何も描画しない)ウィンドウ作って文字を描けばいけると思う
818デフォルトの名無しさん:2007/09/05(水) 09:53:26
>>816の求める命題は、以下の3つのうちどれだ?

@.PCのパフォーマンスを計測する処理が知りたい。
A.デスクトップ、もしくは最前面を指定描画する方法が知りたい。
B.かっこいいポルナレフは何かすごいアイディアを思い浮かぶ。
819デフォルトの名無しさん:2007/09/05(水) 10:45:49
>>816
PathToRegion
SetWindowRgn
820デフォルトの名無しさん:2007/09/05(水) 10:50:14
>>817,818
レスどうもです。
>>818
2でしょうか。DirectXの全画面表示中に最前面に文字を表示させる方法が
知りたいです。
3は何を言っているのか理解できていません。
821デフォルトの名無しさん:2007/09/05(水) 11:47:55
GetGlyphOutlineでフォントイメージを取得して、自分で縁取り加工後、
サーフェイスに転送して結果のイメージを描画。
822デフォルトの名無しさん:2007/09/05(水) 11:54:12
今日は凄く詳しい人、多いな・・・
823816:2007/09/05(水) 12:20:42
ありがとうございます。
これだけ答えをいただければ・・・、なんとかやってみます。
824デフォルトの名無しさん:2007/09/05(水) 13:30:43
やばい、このスレは天才が集まる場所だったんですか!!
825デフォルトの名無しさん:2007/09/05(水) 13:34:29
自演乙
826デフォルトの名無しさん:2007/09/05(水) 13:35:31
>>824
お前そんなことしかできんのか暇人
827デフォルトの名無しさん:2007/09/05(水) 13:47:38
元々、ここはwin32apiの質問箱だったわけだし、元の流れに戻ったと見るのが自然だよな。
828デフォルトの名無しさん:2007/09/05(水) 14:21:20
>>826
お前そんなことしかできんのか暇人
829デフォルトの名無しさん:2007/09/05(水) 14:24:05
フォームを持たず、テキストだけを最前面に描画する事の出来る
APIはないでしょうか。
830デフォルトの名無しさん:2007/09/05(水) 14:27:22
フォームって.NET?
テキストを最前面に書くのは普通にデスクトップのDC取得すりゃいいだけだけど
消すのはその下のアプリの役目だよ。
831デフォルトの名無しさん:2007/09/05(水) 14:31:10
今なら普通そういうことをしたきゃレイヤードウィンドウだろう
832デフォルトの名無しさん:2007/09/05(水) 14:39:00
DC取ってきて
http://msdn2.microsoft.com/ja-jp/library/4ftkekek(VS.80).aspx
この辺で出来そうです。有り難う御座いました。
833デフォルトの名無しさん:2007/09/05(水) 14:50:44
ドリームキャスト!
834デフォルトの名無しさん:2007/09/05(水) 16:08:17
>>774 PLZ.
835デフォルトの名無しさん:2007/09/05(水) 16:11:03
>>834
>>774 のツール使えば良いんじゃない?
836デフォルトの名無しさん:2007/09/05(水) 16:30:48
嫌ですよぉ
837デフォルトの名無しさん:2007/09/05(水) 16:47:43
じゃあ自分で作ればいいだろ
838デフォルトの名無しさん:2007/09/05(水) 16:52:40
嫌ですよぉ
839デフォルトの名無しさん:2007/09/05(水) 18:03:06
>>835
使いたいんぢゃなくて作りたい
で、どうやっているのか知りたい
理解で切るできないにかかわらずどういう実装なのか知りたい
840デフォルトの名無しさん:2007/09/05(水) 18:04:07
テーブル書き換えが一般的
841デフォルトの名無しさん:2007/09/05(水) 18:32:35
そんなぁ
842デフォルトの名無しさん:2007/09/05(水) 18:49:32
そういうのの作り方はこんな所で不特定多数に話せる内容じゃないんで無理
スパイウェアが作れてしまう
843デフォルトの名無しさん:2007/09/05(水) 18:54:28
もういいよ!
844デフォルトの名無しさん:2007/09/05(水) 19:09:04
timeGetTime()より精度の良い関数があれば教えてください。
お願いします。
845デフォルトの名無しさん:2007/09/05(水) 19:12:18
知らないんだったらレスしないでよ!
846デフォルトの名無しさん:2007/09/05(水) 19:13:24
お前のことだろ
847デフォルトの名無しさん:2007/09/05(水) 19:20:15
>>844
http://www.emit.jp/prog/prog_t1.html

まずはここを読んで一考。
ここで名前が挙がる木屋氏は、ドラスレの方かと思われ
848デフォルトの名無しさん:2007/09/05(水) 19:25:34
timeGetDevCaps関数で、ハードウェアのタイマ精度を取得し、
timeBeginPeriod関数でTIMECAPS.wPeriodMinを設定し、timeGetTime関数の精度を上げる。
最後に精度を元に戻す為、
timeEndPeriod関数でTIMECAPS.wPeriodMinを設定し、精度を解除。
849844:2007/09/05(水) 19:31:07
>>847-848
ありがとうございます。
850デフォルトの名無しさん:2007/09/05(水) 20:05:39
パフォーマンスカウンタ最強説
851デフォルトの名無しさん:2007/09/05(水) 20:24:34
パフォーマンスカウンタはバグ持ちの環境もあるから、なるべく控えたい。
852デフォルトの名無しさん:2007/09/05(水) 20:27:44
パフォーマンスカウンタはポーリングするにはコストが高いって聞くけど
ゲームで60FPSを安定させるには、やむをえない方法だったりするの?
853デフォルトの名無しさん:2007/09/05(水) 20:43:42
スレッドの処理が回ってくるタイミングが揺らぐのは、
タイマーを高精度にしても何の解決にもならない。

電車の運行管理をコンマ何秒でやることに何の意味があるのかと。
854デフォルトの名無しさん:2007/09/05(水) 20:46:06
何の解決にもなるだろ、どれだけの環境でawaitが実装されてると思ってるんだ
855デフォルトの名無しさん:2007/09/05(水) 20:51:44
>>854
ミリセカンド単位でしかコントロールされていないスレッドに、
QueryPerformanceCounterで得られた高精度な値を使って何をするのか、
その解決方法を具体的に説明してくれ。
856デフォルトの名無しさん:2007/09/05(水) 20:52:20
FPSの管理がなんでスレッドなんだ
857デフォルトの名無しさん:2007/09/05(水) 21:00:34
メインスレッド無しでFPSを管理するの?
プログラムはどうやって動くの?
858デフォルトの名無しさん:2007/09/05(水) 21:02:15
>>856
スレッドを云々はいいから、高精度タイマーでFPSを安定させる具体的な解決方法をどうぞ。
面倒くさいから、グダグダ逃げ回るのだけは勘弁してくれ。
859デフォルトの名無しさん:2007/09/05(水) 21:03:15
逃げ回ってるっておまえの理解が足らないだけだろ
860デフォルトの名無しさん:2007/09/05(水) 21:13:18
>>859>>854の発言が何であるのか、見ていた人間には別のことを理解したはず。

出せ出せ言っても絶対に解決方法は提示されないという、
無駄にスレが伸びて住人からうざがられるパターンにはまったためこの話は終了。

何というか、もうどうしようもないな。
861デフォルトの名無しさん:2007/09/05(水) 21:15:44
yaneurao先生の登場を待つしかないな
862デフォルトの名無しさん:2007/09/05(水) 21:18:47
粘着するわりには決してぐぐったりはしない奴っているよな
863デフォルトの名無しさん:2007/09/05(水) 21:27:50
>>816
今なら普通そういうことをしたきゃレイヤードウィンドウだろう
864デフォルトの名無しさん:2007/09/05(水) 21:37:58
>>830
VistaでDWM制御下にあると、デスクトップDCに描画するとゲロ重なんで注意。
DWM環境だとレイヤードウィンドウが圧倒的に速い。
865デフォルトの名無しさん:2007/09/05(水) 21:40:16
指定した絶対パスを起点として、指定した相対パスの絶対パスを得る方法はありますか?
_fullpathだと、現在の位置からという条件があるので(かといって_chdirはしたくない)
866デフォルトの名無しさん:2007/09/05(水) 21:42:31
パスを自前で解析ならAPIいらず
867デフォルトの名無しさん:2007/09/05(水) 21:44:27
"f:.."とかとんでもない相対パスが来たらどうするの?
868デフォルトの名無しさん:2007/09/05(水) 21:44:50
\\?\GROBALROOT\Device\Floppy1\うんこ
869デフォルトの名無しさん:2007/09/05(水) 21:48:39
>>865
そういうご都合主義名APIはなんかShell APIを探せばあるという印象がある。
ttp://msdn2.microsoft.com/en-us/library/ms647376.aspx
870デフォルトの名無しさん:2007/09/05(水) 22:22:52
おそらくShellAPIのPathCombineが求めるものだろうね。
念のため、相対パス判定を入れておけばより安全かな。

TCHAR basedir[] = "C:\\a\\bb\\ccc\\dddd";
TCHAR rpath[] = "..\\..\\x\\yy\\zzz.txt";
TCHAR fullpath[MAX_PATH];
if (PathIsRelative(rpath)) {
PathCombine(fullpath, basedir, rpath);
}
else {
lstrcpy(fullpath, rpath);
}

ただ、ShellAPIは>>868のような一部の形式のパス名を受け入れず、
それが原因でMAX_PATHを超えるパス名を扱えないという問題がある。
それを気にしなければ上記でよいと思う。
871デフォルトの名無しさん:2007/09/05(水) 22:27:51
870だけど説明が変だった。
ShellAPIは868のようなパスを受け入れないのが原因でなく、単純に設計が
MAX_PATHを上限としているだけだな。
872デフォルトの名無しさん:2007/09/05(水) 22:35:40
>>870
わざわざTCHAR使ってるのに与える参照はcharなのは何故?
2005とかだと汎用テキストマッピングは型宣言だけでいけるの?
873デフォルトの名無しさん:2007/09/05(水) 22:37:50
TCHAR使う人ってM$製品しか使ったことないんかね。。。
874デフォルトの名無しさん:2007/09/05(水) 22:40:02
>>872
意味はありません、ボケてただけです。
文字列定数は_T()でくくる必要があります。
875デフォルトの名無しさん:2007/09/05(水) 23:00:32
>>873
あの、ここ、Win32APIスレ、です。
876デフォルトの名無しさん:2007/09/05(水) 23:04:08
何、その、しゃべり方、は。
877デフォルトの名無しさん:2007/09/05(水) 23:05:07
俺と、おまえと、大五郎。
878デフォルトの名無しさん:2007/09/05(水) 23:44:00
晴れ、時々、殺人
879デフォルトの名無しさん:2007/09/05(水) 23:45:16
いそのぉ、野球、やろうぜ
880デフォルトの名無しさん:2007/09/05(水) 23:47:39
声が、遅れて、聞こえるよ
881デフォルトの名無しさん:2007/09/05(水) 23:49:48
あれ(パクパク)、大変だ(パクパク) 、仕様が遅れて出てくるよ(パクパク)
882デフォルトの名無しさん:2007/09/06(木) 03:44:03
末尾にドットの付いたファイル名を作成することは無理なんでしょうか?
883デフォルトの名無しさん:2007/09/06(木) 04:31:21
>>882
>>868の書式で可能。
884デフォルトの名無しさん:2007/09/06(木) 08:38:36
>>840
先生、メモリ内容をみてみたところテーブル書き換えではないようです。
rohitabはドライバもあるようでなんか違うことしているようです。

>>841
おれのこころを描写するのやめてください。

>>842
そのような理由で話してもらえないのですか。
ここででているHookとかInjectionとかの話もスパイウェア関連の話だから嫌われるのですね。

>>843
おれのこころを描写するのやめてください。

というわけで >>774 PLZ
885デフォルトの名無しさん:2007/09/06(木) 08:51:10
>>852
描画タイミングなんてDirectGraphicsがやってくれたと思うが
家ゲのプログラムとPCゲーのプログラムは違う
886デフォルトの名無しさん:2007/09/06(木) 18:32:40
>>885
PCはリフレッシュレートが60Hzとは限らないので、fpsが固定の場合は
VSYNC同期では不十分。
887デフォルトの名無しさん:2007/09/06(木) 18:46:07
そもそも環境がマチマチなPCの世界でFPSを固定しようというのが間違いの始まり。
あくまで基準値にしかならないんだから、問題なのはタイマー云々ではなく、ずれた場合の辻褄の合わせ方。
そうなるともはやAPIではなくロジックの話になるので、完全にスレ違い。
888デフォルトの名無しさん:2007/09/06(木) 18:52:24
>>884
対象プロセスが一個ならデバッガとしてプロセス生成するかアタッチするかして、
シングルステップ実行でeipを常に監視して、
eipがEXE以外の領域に移動したらその瞬間が外部関数呼び出し

ってのを思いついた 
>>774のツール試してないし、思いつきだからたぶんどっか思い違いで達成できないとおもうけど
889デフォルトの名無しさん:2007/09/06(木) 19:00:15
>>887
fpsを固定するためのAPIについての話は、スレ違いではないと思うが。
fpsを固定することの是非について話のはスレ違いだと思うが、
そんな話をしているのは887ただ一人。
890デフォルトの名無しさん:2007/09/06(木) 19:18:38
fpsを固定するAPIは存在しないでFA

次の質問どぞ〜
891デフォルトの名無しさん:2007/09/06(木) 20:16:35
892デフォルトの名無しさん:2007/09/06(木) 20:28:12
次の質問どぞ〜
893デフォルトの名無しさん:2007/09/06(木) 20:34:10
FlashとかJavascriptとかjavaとか動画とか、Tridentに丸投げじゃないのか?
なんでプニル固有のバグが生まれるのか、
プログラム詳しい奴、推測でもいいから教えてくれ
894デフォルトの名無しさん:2007/09/06(木) 20:35:01
>>888の方法ではダメなのでしょうか?
895デフォルトの名無しさん:2007/09/06(木) 20:36:33
>>893
作者のレベルが低いから
896デフォルトの名無しさん:2007/09/06(木) 20:42:28
897デフォルトの名無しさん:2007/09/06(木) 20:43:14
Sleipnirってタブの挙動がおかしいよね
ナビゲーションロックしたままアプリ再起動するとロック解除できなくなるタブがある
個人的にはよく使う機能だからかなりうざい
898デフォルトの名無しさん:2007/09/06(木) 20:45:36
>>893
プニル固有のバグとはたとえばどんなもの?
再現手順がわかれば多少推測しやすいんだが
899デフォルトの名無しさん:2007/09/06(木) 20:57:31
俺もSleipnirの印象は良くないな。
あれを標準のブラウザとして設定していると、ShellExecuteに
URL渡しても開けなくなったり。
900デフォルトの名無しさん:2007/09/06(木) 23:49:52
ここで質問していいか悩んでいるのだが・・・
VS2005でVC++を利用し、ADOからデータベースにアクセスしようと思うが、
その手の質問はここ?

それとも、COM系に質問するの?

知っている方、板への誘導をお願いします。
901デフォルトの名無しさん:2007/09/07(金) 00:00:34
死ね
902デフォルトの名無しさん:2007/09/07(金) 00:25:57
>>900
COM系の方がいいんじゃないかな

【OLE】オートメーション総合スレ【ActiveX】
http://pc11.2ch.net/test/read.cgi/tech/1137771139/
903900:2007/09/07(金) 00:47:42
>>902
どもー
ありがとです。
904デフォルトの名無しさん:2007/09/07(金) 01:04:54
>>888
お前頭いいな
905デフォルトの名無しさん:2007/09/07(金) 01:06:32
>>904
よく言われる
906デフォルトの名無しさん:2007/09/07(金) 01:09:55
>>904-905
お前頭悪いな
907デフォルトの名無しさん:2007/09/07(金) 01:15:21
>>906
お前頭悪いな
908デフォルトの名無しさん:2007/09/07(金) 01:17:25
悔しかったの?頭悪い奴の典型的な行動ですね。
909デフォルトの名無しさん:2007/09/07(金) 01:21:54
(笑)
910デフォルトの名無しさん:2007/09/07(金) 01:42:09
よく言われる
911デフォルトの名無しさん:2007/09/07(金) 02:11:03
(笑)っていつの時代やねん
912デフォルトの名無しさん:2007/09/07(金) 02:18:25
(笑)
913デフォルトの名無しさん:2007/09/07(金) 03:04:41
fpsを固定するにはどうしたらいいですか?
914デフォルトの名無しさん:2007/09/07(金) 03:07:16
ヘイローとかどおよ?
915デフォルトの名無しさん:2007/09/07(金) 07:03:38
ああああああああ
916デフォルトの名無しさん:2007/09/07(金) 08:25:35
>>884
>>888
横槍すまん つくってみたけど遅すぎになった
WaitForDebugEventで待機してハードウェアブレイクポイントで順に実行してEIPみて
CALLのとび先を判定する実装
他に面白い実装案ないですか
917デフォルトの名無しさん:2007/09/07(金) 08:27:03
>>913
DXUTとかどうですか
918デフォルトの名無しさん:2007/09/07(金) 12:36:57
文字コードの変換でConvertINetStringが使えるとわかったんですが、
C言語でどのように使うのいかがわかりません。
誰か簡単なサンプルでいいので教えてくれませんか?
また、サンプルが載っているサイトを教えてくれませんか?
919デフォルトの名無しさん:2007/09/07(金) 12:42:11
ググるといっぱい出てくるけど、どれもだめだった?
920918:2007/09/07(金) 12:53:33
変数の説明みたいなのはいくつか見つけられたんですが、
実際どのように使用するかみたいなのは見つけられなくて。
具体的なサンプルというか使用方法が知りたいんです。
921デフォルトの名無しさん:2007/09/07(金) 13:46:24
ググってすぐにサンプル見つかるし実際試せてるけど、何がわからんのか
922デフォルトの名無しさん:2007/09/07(金) 14:18:49
>>916
トラップしたいDLLのコード領域の実行許可ビットを落としておいて、
コールされたときの例外をトラップしてログを出力とか。
シンプルでしょ。
923デフォルトの名無しさん:2007/09/07(金) 17:13:20
>>922
シンプルだ。デバッガのほうがSEHより優先されるのか。
924デフォルトの名無しさん:2007/09/07(金) 18:13:21
同じことを意味しまるです。
925デフォルトの名無しさん:2007/09/07(金) 19:05:51
アタッチしておけばDLLロードのタイミングもデバッガに通知できるから
結構キレイな実装かもね

>>916
やっぱりそうかー 時間のあるときに書いてみようかと思ったんだが
ともあれ報告サンクス
926デフォルトの名無しさん:2007/09/07(金) 21:28:47
CreateFont でフォントに Wingdings を指定して画面やプリンタに出したいのですが;
でません。どうやるとでるのでしょうか?
927デフォルトの名無しさん:2007/09/08(土) 00:03:49
何をどうやってみたのか、それでどういう結果になったのか、書かない奴が多いな
928デフォルトの名無しさん:2007/09/08(土) 00:21:21
>>926
死ねばでるよ
929デフォルトの名無しさん:2007/09/08(土) 00:28:31
何をどうやって:CreateFontでWindingsを指定
どういう結果:でません
930デフォルトの名無しさん:2007/09/08(土) 00:31:50
そりゃぁCreateFontでWindingsを指定しただけじゃ、何も描画してないんだから出るわけない。
つまんないよ。
931デフォルトの名無しさん:2007/09/08(土) 00:32:27
>>926=929
アホすぎw
932デフォルトの名無しさん:2007/09/08(土) 01:41:27
はなから回答は期待していない。
やっぱ自分でやったことなくても、文句言う素人だけか。
933デフォルトの名無しさん:2007/09/08(土) 01:45:45
負け犬乙
934デフォルトの名無しさん:2007/09/08(土) 01:45:50
>>932
よく分かったな
それが世の真理だ
ついでにいうと句点の位置がずれてる
935デフォルトの名無しさん:2007/09/08(土) 01:47:21
>>934
どこがずれてる?
正しい位置をいってごらん?
936デフォルトの名無しさん:2007/09/08(土) 01:47:41
>>932
お前の質問は1+1が分かりません、どうやったらできるでしょうかと一緒だ。
937デフォルトの名無しさん:2007/09/08(土) 02:06:36
知らないんだったらレスしないで!!
938デフォルトの名無しさん:2007/09/08(土) 02:37:56
      ____
     /____\
   /ィ赱、i_i_r赱ミ\
  / ̄ ̄ ̄ィ'。_。ヽ ̄ ̄\  
  |    / _lj_ }    | しないで!
  \    、{ ^' ='= '^'   /
     l ヽ. `""´ ノ l、
   _, ィ{  `' ― '´  }ヽ、
939デフォルトの名無しさん:2007/09/08(土) 02:39:46
どちら様でしょうか?
940デフォルトの名無しさん:2007/09/08(土) 03:24:37
質問者様です。
941デフォルトの名無しさん:2007/09/08(土) 03:26:26
何で幼稚園児並にあほなの?
942デフォルトの名無しさん:2007/09/08(土) 03:40:32
ママの愛情が足りなかったから
943デフォルトの名無しさん:2007/09/08(土) 03:41:06
新生児の俺が幼稚園児並って天才じゃね
944デフォルトの名無しさん:2007/09/08(土) 03:50:14
ふ〜ん
945デフォルトの名無しさん:2007/09/08(土) 04:41:50
SYMBOL_CHARSETは指定してるか?
946デフォルトの名無しさん:2007/09/08(土) 06:20:27
ママの愛情知らないんだったらレスしないで!!
947デフォルトの名無しさん:2007/09/08(土) 06:26:27
ママの愛情教えて下さい(;ω;)
948デフォルトの名無しさん:2007/09/08(土) 07:22:39
949デフォルトの名無しさん:2007/09/08(土) 07:58:00
ママの愛情教えてくれないんだったらレスしないで!!
950デフォルトの名無しさん:2007/09/08(土) 09:24:18
>>926
文字集合の指定が間違っているなんてことない?
Windgdingsってシンボルフォントのような気がするんだけど。
951デフォルトの名無しさん:2007/09/08(土) 09:41:39
ままの愛情は歌舞伎町にあるらしい。いってみる
952デフォルトの名無しさん:2007/09/08(土) 11:46:45
MSDNだけ〜
953デフォルトの名無しさん:2007/09/08(土) 17:25:05
>>950
>>945で既出
954デフォルトの名無しさん:2007/09/08(土) 19:29:30
伝説のレスとしてテンプレにw

  185 デフォルトの名無しさん 2007/08/20(月) 16:52:52
  >>184
  知らないならレスしないで下さい!ウザいだけです!
955デフォルトの名無しさん:2007/09/08(土) 20:40:14
どう見ても騙りです。ありがたくない。
956デフォルトの名無しさん:2007/09/08(土) 20:51:43
へぇ、アンタもママって言うんだ
957デフォルトの名無しさん:2007/09/08(土) 20:53:13
増田ゆり子風なママンがいればなぁ
958デフォルトの名無しさん:2007/09/08(土) 21:05:13
>>960次任せたぜ
959デフォルトの名無しさん:2007/09/08(土) 21:06:32
何を?
960デフォルトの名無しさん:2007/09/08(土) 21:42:32
>>958
行って来ました
テンプレなど追加お願いします

Win32API質問箱 Build57
http://pc11.2ch.net/test/read.cgi/tech/1189255282/
961958:2007/09/08(土) 21:44:01
失望した
962デフォルトの名無しさん:2007/09/08(土) 21:49:04
>>960
やっぱ、立てた奴がテンプレ追加せんとなw
963デフォルトの名無しさん:2007/09/08(土) 21:52:43
>>960
BooBoo
964960:2007/09/08(土) 21:59:54
失態だ
みんなスマン
テンプレ含め、立て終わるまでURL貼っちゃダメだな
965デフォルトの名無しさん:2007/09/08(土) 22:02:27
>>964
次回と、彼女の前で失敗しなければいいんじゃない?
元気出せお
966デフォルトの名無しさん:2007/09/08(土) 22:03:16
最近の1000行くまで誰も立てない現状から観ればしょうがないよ


とは思ってないけどな とりあえず乙
967デフォルトの名無しさん:2007/09/08(土) 22:16:24
>>962
連投制限とか出るんで厳しいんだよねー
968デフォルトの名無しさん:2007/09/09(日) 00:53:22
次スレの最初からクライマックス感がいいかも
969デフォルトの名無しさん:2007/09/09(日) 03:50:20
970デフォルトの名無しさん:2007/09/09(日) 05:38:02
SEだが、徹夜なんてしたことない。
971デフォルトの名無しさん:2007/09/09(日) 05:48:48
彼女なんて居ない
972デフォルトの名無しさん:2007/09/09(日) 05:49:28
デスマなんて都市伝説
973デフォルトの名無しさん:2007/09/09(日) 07:33:32
自称SE多いからなぁ
974デフォルトの名無しさん:2007/09/09(日) 14:16:56
w
975960:2007/09/09(日) 14:34:33
>>968
俺が演出した
976デフォルトの名無しさん:2007/09/09(日) 14:36:43
960はワシが育てた
977デフォルトの名無しさん:2007/09/09(日) 15:31:40
    ./\___/ヽ 
   /  _ノ||||ヽ、_  \  みんな、・・・・・・次スレの立ち上げ失敗して
  / o゚((●)) ((●))゚o \    ごめんなさいだお・・・・・
  | 三  (__人__) 三  |
  \     ` ⌒´     /

    ./\___/ヽ 
   /  _ノ||||ヽ、_  \  もう・・・もうしないから許してほしいんだお・・・・
  /  o゚⌒   ⌒゚o  \
  | 三  (__人__) 三  |
  \     ` ⌒´     /

    ./\___/ヽ 
   / ⌒ |||| ⌒ \
  /  ( ○)三(○)  \  ウソに決まってるお
  | 三 ⌒(__人__)⌒三 |   全部演出なんだお!
  \     r┬-|     /
       `ー'´
978デフォルトの名無しさん:2007/09/09(日) 20:10:21
埋め

WaitForSingleObject(スレ990, INFINITE);
CreateThread(NULL, 0, 次スレ立て, 0, 0, &新スレURL);
979デフォルトの名無しさん:2007/09/09(日) 20:52:55
>>978
別スレッドで回さないとスレ立てしかできないぞ
980デフォルトの名無しさん:2007/09/09(日) 21:22:14
日記帳として使わせてもらう

とりあえず腹減ったから、冷凍えびピラフをレンジでチンしてくる
981デフォルトの名無しさん:2007/09/09(日) 21:28:44
させない
982デフォルトの名無しさん:2007/09/09(日) 21:44:25
ピラフ食べ終わった
ごちそうさま

冷凍食品っておいしいね
983デフォルトの名無しさん:2007/09/09(日) 21:45:47
980の内部関数SeMicrowaveAccessをフックして常にFALSE返すようにした
もう冷凍食品は使えませんです。。。
984デフォルトの名無しさん:2007/09/09(日) 21:47:28
次食べるのは再起動後だから問題無い
985デフォルトの名無しさん:2007/09/09(日) 23:09:01
>>982
ほどほどにな。
中国産の素材だからね。

こういうとこで、足をひっぱるシナには呆れる。
986デフォルトの名無しさん:2007/09/09(日) 23:13:06
冷凍食品の裏に
販売者って書いてあるものと
製造者って書いてあるものがあるんだが
販売者って書いてある方は中国製なんだろうか…
987デフォルトの名無しさん:2007/09/09(日) 23:14:50
エビピラフに本当にエビが入ってると思うのは素人
988デフォルトの名無しさん:2007/09/09(日) 23:21:16
>>987
食べたのは味の素のエビピラフなんだが、
あれはエビじゃなかったのか!

ttp://www.ffa.ajinomoto.com/products/sanchi/hot.html#02
で見る限り産地は
米:日本
えび:ベトナム
のようだから中国産よりは安心?
989デフォルトの名無しさん:2007/09/09(日) 23:22:26
プログラムとは無関係な話になったときだけ喜々として語り出す馬鹿共は、
いい加減何とかならいのか?
990デフォルトの名無しさん:2007/09/09(日) 23:25:08
次スレのほうが進みつつあるので、埋めているだけ
でも、日記として1日分もつけられない予感w
991デフォルトの名無しさん:2007/09/09(日) 23:33:49
カト吉の冷凍うどんはうまい!
あれって全国展開してるんだろうか?
992デフォルトの名無しさん:2007/09/09(日) 23:37:15
>>989
まーおまえも、言っても資本は体だ。
体調管理には気をつけろよ
993デフォルトの名無しさん:2007/09/09(日) 23:38:27
Win32API質問箱から、過労死は出したくないよな
994デフォルトの名無しさん:2007/09/09(日) 23:38:58
うめうめ
995デフォルトの名無しさん:2007/09/09(日) 23:39:29
うm
996デフォルトの名無しさん:2007/09/09(日) 23:39:36
糞スレ埋め
997デフォルトの名無しさん:2007/09/09(日) 23:39:46
火の国熊本とんこつラーメンが食べたいんだけど、
どこにも売ってない!
998デフォルトの名無しさん:2007/09/09(日) 23:39:59
おめこ
999デフォルトの名無しさん:2007/09/09(日) 23:40:27
とんこつといえば久留米だろうが
1000デフォルトの名無しさん:2007/09/09(日) 23:41:02
博多も可
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。