Win32API質問箱 Build47
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/13(月) 08:56:12やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-5くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0757748
2006/12/08(金) 15:39:200758デフォルトの名無しさん
2006/12/08(金) 16:50:470759デフォルトの名無しさん
2006/12/08(金) 16:54:01JavaでいうところのSystem.currentTimeMillisはありますか?
GetLocalTimeでSYSTEMTIMEとって自分で掛け算ですか?
0760デフォルトの名無しさん
2006/12/08(金) 17:00:460761デフォルトの名無しさん
2006/12/08(金) 18:57:27どんな方法がよさげ?
コマンドラインパラメータ以外で。
0762デフォルトの名無しさん
2006/12/08(金) 19:10:59コマンドライン以外だと渡して起動というよりも起動後通信だな。
pipe、共有メモリ、ネットワーク等。
0763デフォルトの名無しさん
2006/12/08(金) 19:18:10量は多くても1KBくらい。
確実に渡せる方法がいいです。
0764デフォルトの名無しさん
2006/12/08(金) 19:39:200765デフォルトの名無しさん
2006/12/08(金) 19:46:54そうしてみるわ
トンクス
0766デフォルトの名無しさん
2006/12/08(金) 20:30:14Windowsのエクスプローラの、ファイルやフォルダが表示される部分を
自分で作ったウィンドウに埋め込むにはどうすれば良いでしょうか。
0767デフォルトの名無しさん
2006/12/08(金) 20:37:23IEコンポーネントを使っている例だが参考になる。
アドレスバーに入力すればわかるが、フォルダだって表示できる。
0768デフォルトの名無しさん
2006/12/08(金) 20:43:300769デフォルトの名無しさん
2006/12/08(金) 20:52:36メモリマップの表示っていうのありますが、あれはどの API
をつかってるんでしょうか?
開始アドレス フラグ サイズ
00010000 -RW- 1000
00020000 -RW- 1000
0011F000 -RW- 11000
....
77FDF000 -ERW- 1000
77FFE000 -R- 1000
こういうやつです。
0770デフォルトの名無しさん
2006/12/08(金) 21:02:390771デフォルトの名無しさん
2006/12/08(金) 21:46:580772デフォルトの名無しさん
2006/12/08(金) 21:50:10無理。
スタティックリンクライブラリに置くことは可能。
0773デフォルトの名無しさん
2006/12/08(金) 21:53:060774デフォルトの名無しさん
2006/12/08(金) 22:23:21ワイルドカード+拡張子でファイルを検索してるのですが、これで引っ張ってくる
ファイル名の順番はどういう順で返されるのでしょうか?
最初は名前順かと思ったのですが違うようで…
0775デフォルトの名無しさん
2006/12/08(金) 22:44:57MSDN読めよ
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findnextfile.asp
>The order in which this function returns the file names is dependent on the file system type.
>With the NTFS file system and CDFS file systems, the names are returned in alphabetical order.
>With FAT file systems, the names are returned in the order the files were written to the disk,
>which may or may not be in alphabetical order.
0776デフォルトの名無しさん
2006/12/08(金) 22:51:29それは邦訳を読んだけどそれでもイマイチ疑問なのヨ
具体的な例で、検索対象フォルダに名前が"a.txt"と"_.txt"で始まるファイルがあるとき、
explorerで「アイコンの整列->名前順」とすると
_.txt
a.txt
という順で表示されますが、FindFirst/FindNextで検索すると逆に出てくる。
なぜ?('A`)
'_' = 0x5f
'a' = 0x61
ってことを考慮するとexplorerの名前表示順がしっくりくるんだけどな…
0777デフォルトの名無しさん
2006/12/08(金) 22:52:55>>775 読め
0778デフォルトの名無しさん
2006/12/08(金) 23:00:34回避方法見つけたからもういいわ
0779デフォルトの名無しさん
2006/12/08(金) 23:03:26てか自前でソートすれ
0780デフォルトの名無しさん
2006/12/08(金) 23:05:34それを解った上で776を書いたんだが
>てか自前でソートすれ
そうしたよ
0781デフォルトの名無しさん
2006/12/08(金) 23:23:39内部でファイルを列挙して並び替えて・・・って処理をやってくれというのか?
0782デフォルトの名無しさん
2006/12/08(金) 23:29:18>781
誰が何時そんな事を言ったのか言ってみ
0783デフォルトの名無しさん
2006/12/08(金) 23:34:48ファイル名に数字がついた時とか
0784デフォルトの名無しさん
2006/12/08(金) 23:51:570785デフォルトの名無しさん
2006/12/09(土) 00:09:27FindNextFileはファイルシステムに物理的に格納されている順番で列挙するんだから。
z.txt
a.txt
の順で格納されていたら。その順で出てくるだけだと思うが。
たぶん、その実験した環境では、
a.txt
_.txt
の順番に格納されていたんだろうね。
explorerは表示する時に、ソートしなおしているんだから、「しっくりくる」順番なのは当然。
0786デフォルトの名無しさん
2006/12/09(土) 00:19:13>>775 読め
0787デフォルトの名無しさん
2006/12/09(土) 00:30:070788デフォルトの名無しさん
2006/12/09(土) 00:30:172052
3076
3com_dmi
6to4svc.dll
a15.tbl
a234.tbl
aaaamon.dll
Accesor.dll
access.cpl
acctres.dll
accwiz.exe
acelpdec.ax
acledit.dll
aclui.dll
acode.tbl
activeds.dll
activeds.tlb
actmovie.exe
actskin4.ocx
actxprxy.dll
adddrv.exe
admparse.dll
ADODC.SRG
ADODCJP.DLL
adptif.dll
adsldp.dll
adsldpc.dll
adsmsext.dll
adsnds.dll
adsnt.dll
勝手にソートしてんじゃん
0789774
2006/12/09(土) 00:33:39正にそれで済ませたワケだが
>788
先頭に'_'の付いたファイルも検索すれば言ってる事判ると思われ
0790デフォルトの名無しさん
2006/12/09(土) 00:40:13b.txt、c.txtも検索すれば皆が言ってる事判ると思われ
0791デフォルトの名無しさん
2006/12/09(土) 00:41:36何故か?については誰も答えられない
0792デフォルトの名無しさん
2006/12/09(土) 00:43:35多分一番解ってないのはお前
0793デフォルトの名無しさん
2006/12/09(土) 00:48:34GetSystemInfo
VirtualQueryEx
0794デフォルトの名無しさん
2006/12/09(土) 01:01:25区別をつけないように組まれていることを考えればわかるだろうに。
0795デフォルトの名無しさん
2006/12/09(土) 01:02:28LBS_STANDARDフラグは付けたの?
0796デフォルトの名無しさん
2006/12/09(土) 01:03:280797デフォルトの名無しさん
2006/12/09(土) 01:09:12NTFSなのかFATなのかくらい書けよ。
0798デフォルトの名無しさん
2006/12/09(土) 01:16:440799デフォルトの名無しさん
2006/12/09(土) 01:39:48B < D < _ < a < c と並び替えられる。
a より B が前に来るのは、直感的に分かりにくい。
そのためエクスプローラでは、いわゆる辞書順に並び替えるため、
おそらくアルファベット大文字を小文字に変換してからソートしている。
_, a, B, c, D
→ _, a, b, c, d
→ _ < a < b < c < d
→ _ < a < B < c < D
こうして、アンダーバーは先頭に持ってこられる。
全部予想だけど。
0800デフォルトの名無しさん
2006/12/09(土) 01:50:29言語の設定を日本語にしてるときだけかもしれんけど
0801デフォルトの名無しさん
2006/12/09(土) 03:25:26任意のアプリからフォルダのように見えるようにする事は無理なのでしょうか?
0802デフォルトの名無しさん
2006/12/09(土) 05:40:170803デフォルトの名無しさん
2006/12/09(土) 08:12:360804デフォルトの名無しさん
2006/12/09(土) 08:39:04それはAPIの質問なのか?
そのアプリ作った奴に頼め
0805デフォルトの名無しさん
2006/12/09(土) 08:43:410806デフォルトの名無しさん
2006/12/09(土) 09:11:450807デフォルトの名無しさん
2006/12/09(土) 09:36:30英文を読めるような頭を持った人間なら、そもそもここまで話を引き伸ばせません。
0808デフォルトの名無しさん
2006/12/09(土) 09:47:51! < 0 < A,a < _ < α < あ < ア < 亜 < A,a
Unicode順で、英字は大小の区別なし(大文字と見なす)、全角半角の区別あり、カタカナひらがなの区別あり
といった感じだな。
explorerは、英字は大小の区別なし(小文字と見なす)、全角半角の区別なし、カタカナひらがなの区別なし、
漢字はJISコード順って感じかな。
0809デフォルトの名無しさん
2006/12/09(土) 09:56:13本当に知らなくて恥ずかしかったんだろうな
0810デフォルトの名無しさん
2006/12/09(土) 09:57:22何故なのかが話題であって誰も同じであるべきとは言っていない事に気付け
0811kk
2006/12/09(土) 10:37:43うまく取得できてなく、
取得した文字列をatoiでintで変換したときにエラーになります。
エディットボックスに何を入れても、PTSTRにはいるのは「・U駆Qテ・」となっています。
何が原因なのでしょうか。
0812デフォルトの名無しさん
2006/12/09(土) 10:43:150813デフォルトの名無しさん
2006/12/09(土) 10:59:50返り値が返されるタイミングというのは
ダウンロードが完了した時、接続に成功したときのどちらでしょうか?
0814デフォルトの名無しさん
2006/12/09(土) 12:04:570815デフォルトの名無しさん
2006/12/09(土) 12:05:340816デフォルトの名無しさん
2006/12/09(土) 12:07:16すいません。教えていただけると幸いです。
0817デフォルトの名無しさん
2006/12/09(土) 12:28:140818デフォルトの名無しさん
2006/12/09(土) 12:36:03そもそも整数値を取るつもりなら始めからGetDlgItemIntを使ったらどうか。
0819デフォルトの名無しさん
2006/12/09(土) 13:39:16アンカーの間違いに気づけ
0820デフォルトの名無しさん
2006/12/09(土) 18:04:38どのAPIをつかえばいいの?
0821デフォルトの名無しさん
2006/12/09(土) 18:22:43というわけでXMLに保存しようかと思うんだけど.NET使わずにXMLにアクセスする手段はありますか?
MSXMLとかになるんでしょうか
0822デフォルトの名無しさん
2006/12/09(土) 18:28:52XMLのほうが遅くなるんじゃね?
0823デフォルトの名無しさん
2006/12/09(土) 18:30:040824デフォルトの名無しさん
2006/12/09(土) 18:44:150825デフォルトの名無しさん
2006/12/09(土) 18:45:55INIで木構造を維持するいい方法があったら教えてもらえると助かる
0826デフォルトの名無しさん
2006/12/09(土) 18:57:120827デフォルトの名無しさん
2006/12/09(土) 19:01:310828デフォルトの名無しさん
2006/12/09(土) 19:02:45タブの個数とかでやってみたら?
0829デフォルトの名無しさん
2006/12/09(土) 19:34:57どうもありがとうございました
0830デフォルトの名無しさん
2006/12/09(土) 19:44:16Get/WritePrivateProfile系APIでの読み書きしてるなら絶対遅いよ。
内部で1行ごとにOpen/Closeされてるだろうし..
0831デフォルトの名無しさん
2006/12/09(土) 19:49:080832デフォルトの名無しさん
2006/12/09(土) 19:52:04RUBY最強だけどね
0833デフォルトの名無しさん
2006/12/09(土) 19:55:250834デフォルトの名無しさん
2006/12/09(土) 20:06:19ちゃんとしたやり方 or もっとスマートなやり方があるかも知れんけど、
SetWindowsHook系のAPI使うなりなんなりして自前のDLLを調べたい
プロセスにロードさせてやればそのDLLから取得できるべ。
0835デフォルトの名無しさん
2006/12/09(土) 20:08:18GlobalMemoryStatus
0836デフォルトの名無しさん
2006/12/09(土) 21:02:27これは車輪の再発名なんていう問題じゃないだろ。
すべてのソートにバブルソートを用いるとか、
君がツリーで管理しているデータなんかをすべて、たんなる配列で管理するとか、そういうレベルだろうが。
0837デフォルトの名無しさん
2006/12/09(土) 21:04:43その程度の知識しか無いんだろ。
0838デフォルトの名無しさん
2006/12/09(土) 21:11:01Delphi/BCBなら64KBの制限なくて早いよ('(゚∀゚∩
0839a
2006/12/09(土) 22:28:52Microsoft の Windows 開発者 Dave 氏による Windows NT カーネル
解説講義のビデオをストリーミング公開!
http://d.hatena.ne.jp/softether/20061209#p2
0840デフォルトの名無しさん
2006/12/09(土) 23:21:260841デフォルトの名無しさん
2006/12/10(日) 00:45:120842デフォルトの名無しさん
2006/12/10(日) 01:56:12ちなみにProcess Explorerはドライバをロードしているので
自前でカーネル空間から情報収集していると思う。
0843801
2006/12/10(日) 03:13:03SUBSTってコマンドとかありますよね。
仮想ドライブにアクセスすると
代わりに実際のフォルダをシステムが提供してくれるわけじゃないですか。
その場合任意のアプリが「だまされる」事になりますよね。
Windows、もしくはデバイスドライバなどの機能でそういった事ができないか、
という質問な訳です。
0844デフォルトの名無しさん
2006/12/10(日) 04:28:340845デフォルトの名無しさん
2006/12/10(日) 05:15:250846デフォルトの名無しさん
2006/12/10(日) 05:21:28ようこそカーネルモードの世界へ。
0847デフォルトの名無しさん
2006/12/10(日) 06:02:37win32apiを使って、c言語での処理の仕方を一通り学びました。
で、c言語での処理をしていたら、メッセージが来た時にそこに
長々とした処理を書くしか無い(知識不足ですが)ように思うんですが
api関数をC++で独自でクラス化していく方法は有るんでしょうか。
mfcのヘッダーを見てたら、afx_msgが付いてる関数と#pragma comment(lib, "・・・")が目に付き
で、#pragma commentを見てると、libを#ifdef#undef等で詰め込んでるように
見えます。あとPASCAL形式が気になります。
ついで、afx_msgがmessageに送られるWM_・・・ととらえて良いんでしょうか
なぜ、このような質問をするかというと、単純にMFCがとっつきにくいというか
マクロ等で、フレームワークとその子ウィンドウ、ツールバー等が最初の設定時点で
作成されてしまい、順序としてはフレーム、ビュー(子ウィンドウ)←→ドキュメント
となってるのはわかりますが、マクロや関数が呼ばれていく順序が
Cなら、WinMainのHINCTANCEをグローバルで持っておき、WNDCLASSEXで
RegisterClassExで登録しウィンドウの生成でならまずNULL指定でオーナーとして存在させ・・・
と順に理解できるんですが、MFCだと、どうしても僕のレベルでは可読できません。
どなたか、このページなら参考になるとか、このオープンソースならわかりやすい
と言う物を教えていただけないでしょうか。
初心者の質問でもうしわけありませんが、どなたかお願いいたします。
0848デフォルトの名無しさん
2006/12/10(日) 07:04:57まず日本語を勉強しましょう。
言葉を理路整然と書き連ねる工夫をしましょう。
改行を不自然な位置で使用するのをやめましょう。
初心者である事は免罪符になりません。
0849デフォルトの名無しさん
2006/12/10(日) 09:04:48もちろん、それで801のやりたいZipをということはできないだろうが。
>>847
> 長々とした処理を書くしか無い
そんなことはない。処理毎に関数を書いて、全てのメッセージの処理を関数呼出だけにすれば、
それだけでウィンドウプロシージャはだいぶすっきりする。
というわけで、とりあえずメッセージクラッカはどうよ。
0850デフォルトの名無しさん
2006/12/10(日) 09:48:54いったんどっかの隠しディレクトリに物理的にファイルを展開しておいて
ファイルシステムフィルタドライバでパスをリダイレクトすればできる。
ネットワーク上のファイルをアクセスする時も同じような方法で処理されている。
0851デフォルトの名無しさん
2006/12/10(日) 12:46:32フォーカスを失っても閉じないことが結構あるんですが何で?
0852デフォルトの名無しさん
2006/12/10(日) 12:49:31タスクトレイの話?
だったら、WM_NULL
0853デフォルトの名無しさん
2006/12/10(日) 13:06:34それはオフラインファイルの場合だけじゃまいか
0854デフォルトの名無しさん
2006/12/10(日) 14:24:34自分で作ったもんでもなければクラックして動作確認したわけでもないから
違うかもしれんが、少なくとも俺はそう聞いている。なんでも、ネットワーク
上のものだからいつアクセスできなくなるかわかったもんじゃないし、
第一、ファイルI/Oがある度にネットワーク経由のアクセスしてたんじゃ
パフォーマンスが最悪になるとかで、ネットワーク上のファイルが開かれる
場合はとにかくいったんファイル全体をダウンロードしてしまうらしい。
0855デフォルトの名無しさん
2006/12/10(日) 14:36:340856デフォルトの名無しさん
2006/12/10(日) 14:40:46他のアプリケーションプログラムを起動させたりするのはSystem.Diagnostics.Processで可能らしいのですが入力ボックスに自動で入力したり、ボタンを押したりさせるような
関数とかってWIN32APIで準備されているのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています