[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/22 14:14 / Filesize : 234 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build53



1 名前:デフォルトの名無しさん [2007/05/11(金) 20:27:08 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

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

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

751 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 23:04:20 ]
>>749
簡略化してる途中に治りました。原因は、等幅フォントを使用してないことにありました。
3行目までの文字をカウントし、2行+1バイトを他のエディットコントロールに送っていたのですが、
時々2行しか送られない事があるせいで-1が返ってきてたようです。2行+5バイトくらいにしたら正常に動作しました。

>>750
インターフェイスの仕様上、スクロールバーはつけないようにしています。
そのせいでエラーの原因に気付きにくい状態が生まれてしまったのですが・・・。

752 名前:749 mailto:sage [2007/06/05(火) 23:11:45 ]
>>751
だろw

753 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 23:14:18 ]
>>751
バカスw

754 名前:749 mailto:sage [2007/06/06(水) 00:03:36 ]
ま、早とちりは誰にでもある。
元気だせw

755 名前:747 mailto:sage [2007/06/06(水) 00:15:21 ]
どうやらWM_CHARの時にいちいちSendMessageしなくても、
WM_CREATEの時に一回SendMessageするだけでいいみたいですね。
随分時間を取られてしまった・・・orz

756 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 05:37:31 ]
IWebBrowser2::Navigate2で存在しないURLに移動しようとしたときに
'xxx'が見つかりません。パスまたはインターネット アドレスが正しいかどうかを確認してください。
というエラーのメッセージボックスが出ます。これを抑制する方法はないでしょうか。
このメッセージボックスはDWebBrowserEvents2::OnBeforeNavigate2が呼びだされる前に出て来ます。


757 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 05:59:31 ]
なぜ存在しないURLに行きたいの

758 名前:デフォルトの名無しさん [2007/06/06(水) 06:11:12 ]
ウインドウズマシンって、
目覚まし時計みたいに、あらかじめ決められた時間に起動するように設定するとかってできるのですか?
それと、usbバスに今、抜き差しが行われたって情報を確認することってできるのでしょうか?
それは原理的に無理なのでしょうか?

759 名前:デフォルトの名無しさん [2007/06/06(水) 06:28:49 ]
detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=119795641
一つ目の質問は調べたら分かってのでいいです。
スンマソン。



760 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 06:39:49 ]
>>757
移動できない時に代替処理をしたいのですが、
イベント通知や関数から戻るより先に強制的にメッセージボックスが出ているのが困るのです。


761 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 08:11:46 ]
移動する前に存在するか調べればいい

762 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 08:25:41 ]
>>756
IWebBrowser2::SilentにVARIANT_TRUEは?

763 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 09:42:44 ]
>>758
RegisterDeviceNotification

764 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 09:44:27 ]
>目覚まし時計みたいに、あらかじめ決められた時間に起動するように設定するとかってできるのですか?
コンパネ-タスク or at

765 名前:デフォルトの名無しさん [2007/06/06(水) 10:45:08 ]
>>763
>>764
ありがトン。

766 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 10:59:54 ]
OSの起動じゃないのか

767 名前:デフォルトの名無しさん [2007/06/06(水) 11:09:38 ]
いや、そうなんですけど、
それは、基本的にできないとわかったので良いです。
とりあえず、情報を教えてくれたと言う気持ち自体に感謝しとるわけです。

768 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 11:24:07 ]
BIOSが対応していれば出来るけど?

769 名前:デフォルトの名無しさん [2007/06/06(水) 12:14:56 ]
マジっすか?
バイオスにプログムから指示を出すんですか?



770 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:20:36 ]
>>768をどう読めばそうなるんだよ

771 名前:デフォルトの名無しさん [2007/06/06(水) 12:25:46 ]
ああ、なるほど、意味分かったです。

そう言うマシンがあるってことですね。
確かに聞いたことはあります。

772 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:33:52 ]
APIでアクティブタイマを設定するだけ。
あとはBIOSが対応していれば指定した時間に起動する。

773 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 12:55:53 ]
BIOS側でしか起動時間を変更出来ないハードウェアのために
スケジュールを変更するGUIを作りたいのですが
WindowsOS上のプログラムからBIOSの設定変更は可能ですか?



774 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:06:07 ]
可能ですがやり方や設定位置はマザーボードによって異なります。
詳細は各メーカに問い合わせてください。

775 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:27:14 ]
メーカーによってAPIが異なることはありますか?

776 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:33:47 ]
詳細は各メーカに問い合わせてください。

777 名前:デフォルトの名無しさん [2007/06/06(水) 13:33:55 ]
>>775
APIはウインドウズなんだから、
ウインドウズosであれば変わらないと考えても良いんじゃないですか?

なるほど。
基本的にはバイオスがアクティブタイマーを監視するようであれば、
プログラムからタイマーを設定すればよくて、
そうでない、場合は各種のバイオス次第と言うわけなんですね。


778 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 13:38:38 ]
APIはウィンドウズなんでしたか・・・
本当にありがとうございました

779 名前:デフォルトの名無しさん [2007/06/06(水) 15:29:05 ]
>>778
winのバージョンで使えなかったり動作が違う事はあるけどなー




780 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 15:56:46 ]
スルーしろよ

781 名前:691 mailto:sage [2007/06/06(水) 17:03:25 ]
>>692
ないですか・・・
>>693
情報ありがとうございます。

(1)はWindowsAPIではどうも難しそうですね。(2)はCryptoAPIでできるかもしれませんが。
(1)はOpenSSLでなんとかならないか調査してみます。

782 名前:デフォルトの名無しさん [2007/06/06(水) 20:22:51 ]
editcontrolにautocompleteを付けたんですが
そのsuggestのドロップダウンが出たタイミングはどうやったら知ることができますか?
WM_NOTIFYとか親に来るのかと思ったけどどうも来ないみたいです

783 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 20:46:18 ]
>>745
昔、PerlでCGIを書いたときは、ファイルのリネームで排他処理ができたから、
windowsでも、同じようにできるかなって思ったんだけど、Linuxなんかとは、動作が違うってことなんかなぁ。

VBからAPIを読んでるから、もしかしたらそのせいかもしれないかなと思ったけど、検証がめんどうだから
MoveFileのあとに、ファイルをオープンして、成功したら、リネーム成功ってことにしました。

784 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 20:48:37 ]
それってMoveFile()はアトミックじゃないってこと?
なんかそれすごく嫌だな

785 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 21:07:55 ]
WIN32APIとは違うかもしれませんが質問させてください。
CAxWindowの作成時にパワーポイントのファイルを読み込ませ表示させているのですが、何度もCAxWindowを作成、削除を繰り返していると、削除時(DestroyWindow時)にパワーポイント側のエラー(マイクロソフトにエラーデータを送信してくださいウィンドウ)が発生します。
何かエラーになる原因、もしくは、エラーウィンドウを表示させない方法を教えていただけないでしょうか。
お願いします。

786 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 21:17:22 ]
CAxWindow付随メンバの解放する順序なんじゃね?

787 名前:785 mailto:sage [2007/06/06(水) 21:41:01 ]
申し訳ありません。
付随メンバの解放とはどうすればよいのでしょうか?

788 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 22:10:55 ]
>>787
多分、ヒープやらなんやらの確保順と解放順がちぐはぐなんじゃね?
パワーポイント関連のオブジェクトの操作順をあらってみ?

789 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 22:16:51 ]
PowerPoint関連オブジェクトのメソッド操作を部分的にコメント(#if 0〜#endif)してみて、
エラーがでるか調べてみたら?



790 名前:785 mailto:sage [2007/06/06(水) 22:54:14 ]
レスありがとうございます。

再現しやすいように、CAxWindowの増加、処理の簡略化を
行いました。
(CAxWindowが一つですと、作成→削除を10時間近く繰り返さないと発生しないので)
処理の流れとしては、

CAxWindowを9個ほどCreateし、表示。
      ↓
3秒間CAxWindowの親ウィンドウにPeekMessageを繰り返す。
(CAxWindowを表示させる為だけであり、
 プログラムで明示的にメッセージは投げていないです。)
      ↓
CAxWindowをすべてDestroyWindowする。

以上の流れをループで10分〜30分繰り返すと発生します。
そして、CAxWindowに対して行う処理ですが、
CreateとShowWindowとDestroyWindow以外の処理はさせていないです。
パワーポイント関連のオブジェクトはCAxWindowだけです。
IWebBrowser2も取得しておりませんし。

また、HTMLファイルを読み込ませた場合は、エラーメッセージは表示されないんですよね。
ほんとお手上げです・・・。

791 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:11:10 ]
SBS_SIZEBOXとかSBS_SIZEGRIPとかって何なんですか!
ググっても日本語の解説が無くて

792 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:15:31 ]
ウソ付くな。

793 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:18:30 ]
思いっきりみつかるけどな

794 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:36:13 ]
いや詳しい解説が無くて
どこ行っても「サイズボックスを指定する」だの「縁のあるサイズボックス」だの
その「サイズボックス」って何なの!って

795 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:44:10 ]
>>794
www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP209JP210&q=%e3%82%b5%e3%82%a4%e3%82%ba%e3%83%9c%e3%83%83%e3%82%af%e3%82%b9

796 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:45:38 ]
「サイズボックスとは」でググレ

797 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 00:49:31 ]
もちろんググりましたが
「ウィンドウのサイズボックス」ではなく「スクロールバーのサイズボックス」についての解説が見たいのです!

798 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:05:18 ]
実際「スクロールバーのサイズボックスだ」としか答えようがないんだが・・。
SBS_SIZEBOX指定でスクロールバー作ってみ。

799 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:09:17 ]
>>798
わかりました。一応作っては見ました。が、使い方が今一わかりません
というか解説(又は画像)が無いことをちょっと不思議に思ってます
これ使われてるソフトもあまり見かけないかなー、と



800 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:12:53 ]
ttp://msdn2.microsoft.com/en-us/library/ms651267.aspx
この辺に書いてなきゃ諦めな

801 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:20:56 ]
そこは一番最初に見ました
が、だめ!
解説ページは諦めます

802 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 01:24:58 ]
へ〜。こんなの初めて知った。
スクロールバーというより「サイズボックスコントロール」っていうひとつの独立したコントロールみたいな感じだな。

803 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 06:38:05 ]
何が知りたいのかさっぱりわからん
自分の思い通りの解説が無かったら自分で書け

804 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 07:21:27 ]
自分の読解力の無さを人の文章力のせいにするな

805 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 08:37:15 ]
季節の変わり目だからな。最近、香ばしいのが多くて困る。

806 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 08:56:16 ]
お前モナー

807 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 09:22:40 ]
僕バッカー!

808 名前:691 mailto:sage [2007/06/07(木) 14:40:34 ]
HttpOpenRequest()のフラグをいろいろ変えて試してみましたが、
InternetOpen()にINTERNET_FLAG_ASYNCを付けると、
HttpSendRequest()はfalseかつERROR_IO_PENDINGになってしまうようですね。

InternetOpen()にINTERNET_FLAG_ASYNCを付けなかった場合、
HttpSendRequest()がfalseになりERROR_INTERNET_INVALID_CAを無事取得できました。

非同期にてERROR_INTERNET_INVALID_CAを取得できる方法はないでしょうか?
試行錯誤してみましたがまったく手段が見当たりません。
アドバイスお願い致しますm(_ _)m

809 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 14:45:51 ]
非同期でERROR_IO_PENDINGは正常なんだけど



810 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 14:56:43 ]
InternetDestroy()ってなんか恐ろしくて使ったこと無いんですけど、
使って大丈夫ですかね?

811 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 15:10:37 ]
>>808
InternetStatusCallbackの値みてる?

msdn2.microsoft.com/en-US/library/aa383931.aspx

812 名前:691 mailto:sage [2007/06/07(木) 16:45:23 ]
>>811
レスありがとうございます。
正にこれでした!
コールバックの第四パラメータlpvStatusからERROR_INTERNET_INVALID_CAを取得できました。

本当にありがとうございましたm(_ _)m

813 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 18:32:03 ]
ウインドウを常に手前に表示するには
SetWindowPosでHWND_TOPMOSTをあたえればできますが
そのウインドウがHWND_TOPMOSTなのかを取得するにはどうすればいいのでしょうか?

814 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 18:35:14 ]
GetWindowLong

815 名前:813 mailto:age [2007/06/08(金) 00:05:48 ]
どなたか分かる方はいませんでしょうか?

816 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:10:33 ]
>>815

>>814

817 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:12:27 ]
>>815
馬鹿じゃねぇの
分からない方が珍しい

818 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:12:42 ]
>>815
間違ってたらゴメン

拡張ウィンドウスタイル(GWL_EXSTYLE)を取得して、
WS_EX_TOPMOSTを含んでるか調べるんじゃないかな?

819 名前:813 mailto:sage [2007/06/08(金) 00:19:25 ]
難しすぎて分かりません



820 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:22:33 ]
LONG exStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
if ((exStyle & WS_EX_TOPMOST) != 0)
{
//TOPMOST
}

821 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 00:30:40 ]
WS_EX_TOPMOSTフラグではなく、お触り禁止フラグが立ちました


822 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 01:00:24 ]
>813
TOP MOSTの指定をしたのが知りたいのか?
今、ウィンドウがTOP MOSTで画面に表示されているのが知りたいのか?

後者なら、FindWindowして Z-Orderを確認するしか手がないよ。


823 名前:813 mailto:sage [2007/06/08(金) 02:53:05 ]
自己解決しました^^

824 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 02:55:49 ]
時間掛かり過ぎ(禿藁)

825 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 08:13:39 ]
どうみても他己解決

826 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 08:15:12 ]
たこちゅうちゅ

827 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 08:25:13 ]
>>823
恩知らずとはお前のことだ。

828 名前:デフォルトの名無しさん [2007/06/08(金) 08:35:34 ]
現在VC6.0でsubst相当のことをやろうとしているのですがDefineDosDeviceを
使えばできそうだというとこまではわかったのですがドライブの解除時に
そのドライブを使用していたら(エクスプローラで開いている等)
エラーメッセージを出すということをしたいのですが
探し方が悪いのかよい方法が見つかりません。

申し訳ありませんがどなたか教えていただけないでしょうか?お願いします。


829 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 09:02:36 ]
>>828
もちつけ
要約すると、メッセージが出したいのか?



830 名前:828 [2007/06/08(金) 09:07:00 ]
>>829
そうです。
DefineDosDeviceで割り当てたドライブを使用していたら
メッセージを出したいです。

831 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 09:19:28 ]
必要に応じてSetErrorMode関数
<TODO>
GetLastError関数でエラーNo
FormatMessage関数でエラーNoから日本語(地域言語)

<TODO>の箇所にDefineDosDevice関数とか、使用ユーザーほにゃほにゃ

832 名前:828 [2007/06/08(金) 09:35:23 ]
831>>
DefineDosDeviceはドライブを使用していてもエラーなしでドライブを解除してしまうみたい
なのでGetLastError関数でのやり方がわかりません。
あとSetErrorMode関数も調べてみたのですがいまいち使い方がわかりません。

どうやったらいいか詳しく教えてください。
お願いします。

833 名前:ららら [2007/06/08(金) 09:40:31 ]
COM インターフェイスのメソッドって、何で const メソッドがないのら?

834 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 09:45:37 ]
const の判断はコンパイラの仕事だから

835 名前:ららら [2007/06/08(金) 09:58:04 ]
どういうことなのら?

836 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:01:55 ]
あほすぎなのらw

837 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 10:05:49 ]
>>833
COM は C でも使えないといけないから。

838 名前:ららら [2007/06/08(金) 10:07:33 ]
> COM は C でも使えないといけないから
たとえば、
interface ISome {
 STDMETHOD_(size_t, GetSize)(void) PURE;
};
なら、Cでは
size_t ISome_GetSize(const ISome* some);
と書けるだろ?

839 名前:ららら mailto:sage [2007/06/08(金) 10:08:55 ]
× STDMETHOD_(size_t, GetSize)(void) PURE;
○ STDMETHOD_(size_t, GetSize)(void) const PURE;



840 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 12:01:28 ]
>>832
もうひとつの命題は
「そのドライブが、現在使用中かどうか判断」でおk?

841 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 12:21:30 ]
>>828
質問の仕方が悪いよ。

あなたが知りたいのは、
メッセージの出し方ではなく、
DefineDosDeviceした後に、当該のドライブが使用中だったのか否か判別する方法
もしくは、
DefineDosDeviceする前に、当該のドライブが使用中なのか否か判別する方法
なんでしょ?

ならば、そう書いたほうがいい。

>>829が言いたいのは、そういうことなんだと思うよ。


842 名前:828 [2007/06/08(金) 13:15:24 ]
質問の仕方が悪く申し訳ありません。
>>840さん、>>841さんの言うとおり知りたいのは
>DefineDosDeviceする前に、当該のドライブが使用中なのか否か判別する方法
です。

書き込み自体不慣れなもので迷惑をかけているとは思いますが
ご教授よろしくお願いします。

843 名前:828 [2007/06/08(金) 13:27:20 ]
知りたいことがまだわかりにくい気がするので
もう一度書かせてもらいます。

知りたいことは
DefineDosDeviceを用いて割り当てたドライブを
再びDefineDosDeviceを用いて解除する時に、
当該のドライブが使用中なのか否か判別する方法
です。

よろしくお願いします。


844 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:21:27 ]
>>838
C++ だと

STDMETHOD_(size_t, GetSize)(void) PURE;
STDMETHOD_(size_t, GetSize)(void) const PURE;

の2つを宣言できるけど、
C だとオーバーロードがないからこういう事ができない。

というあたりを意識してるんじゃないかな、と思ってるんだけど、
まあ、正直なところこれが理由かどうかは分からん。

845 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:30:34 ]
VBにconstなメソッドの概念がないからだと思う
まあCOMにconstがないからVBにconstなメソッドを入れなかったという順なのかもしれないけど

846 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:31:58 ]
まぁ、COM に限らず、C++ の virtual 関数は const にすべきではないように思う。
メンバ関数が const かどうかは実装に依存して決定されるべきことだが、
virtual メンバ関数がどのような実装になるかは派生クラスに依存するわけだから、
virtual メンバ関数の宣言時には const かどうかを決定できないことになる。
したがって、const メンバ関数と virtual メンバ関数は共存できないように思う。

847 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:32:17 ]
っつかCOM自体はOS・言語と独立。

848 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:36:15 ]
メンバ関数がconstにすべきかどうかは機能仕様によるだろ

実装に依存するならmutableの存在意義がない

849 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:37:03 ]
>>843
DeviceIoControlあたりなんかなー

誰か、ドライブ系のコントロールコマンドしりませんか?



850 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:42:43 ]
>>848
mutable は本来使ってはいけないもの。存在しないほうがいい。friend と同じく。

851 名前:ららら [2007/06/08(金) 14:47:20 ]
あのー、もう1つ質問なのら。
CComPtr を使うとインターフェイスの解放し忘れがない
というのは本当なのか? なのら。

たとえば、
ISome* GetSome(void);
という関数があって、これを CComPtr で受け取ろうとする場合、
CComPtr<ISome> spSome = GetSome(); や
CComPtr<ISome> spSome( GetSome() );
とすると、オブジェクトは解放されなくなるらろ?

でもこういうコードは自然に書いてしまいそうだから、コワイのらー。

GetSome 関数からも CComPtr を返せって?
でもライブラリとして与えられている関数だから、
自分ではどうにもならないのらー。

852 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:48:48 ]
まず日本語勉強してこい

853 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:50:58 ]
まことちゃん?

854 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 14:58:30 ]
静岡の東部人じゃないのか
>>851 そうら?

855 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:00:32 ]
山梨出身の友達もそんなしゃべり方するな。

856 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:05:27 ]
山梨でも、あんなしゃべり方しねーよw
853の言う通り、まことちゃんだろ。

しかし、まことちゃんを知っている奴は、確実にオッサン

857 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:24:31 ]
>>838
ISomeを使う側なら、constがあってもなくても同じじゃん。

858 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:33:06 ]
>>843
安全確実な方法はないと思う。

DefineDosDeviceのフラグに、
使用中ならばREMOVEしない
というのがないということは、
OS自体が実現方法を持っていないのだと思う。

副作用や誤判定が生じても構わないなら、
substしたディレクトリ以下にある、すべてのファイルとディレクトリに対して、
共有しないモードでCreateFileを試みて、失敗すれば誰かが使っている、と。

副作用は、CreateFileを試みて成功してしまった場合、
すぐにCloseHandleしなければならないが、その瞬間を狙って、
他のプロセスがCreateFileすると失敗してしまうこと。

誤判定は、仮想ドライブだけでなく、元のパスを使っていても、
引っかかってしまうこと。



859 名前:ららら mailto:sage [2007/06/08(金) 15:33:08 ]
>>857
何ゆーとんのら。使う側が C++ なら const であるかどうかは重要ら。
たとえば、ISome を包含するクラス CHoge を実装する場合、
ISome が const 型システムをもたないが故に、
CHoge も const 型システムを無視しなければならず、
この破壊の連鎖はどこまでも続いて行くらー。



860 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:33:48 ]
>>850
本来使ってはいけないものだが、
使わざるを得ない場合ってのもあるんだぜ?

861 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:36:24 ]
>>851
そういうコードを自然に書くくせを直すべき。Attach もあるし。

ISome* tmp = GetSome();
CComPtr<ISome> spSome = tmp;
// 以降でも tmp->Release() はしない

これでリークしないと思える筈がないわけで、1行に書いても同じこと。
でもまぁ MFC みたいに ctor で AddRef しないオプションも、あれば便利だったかもね。

862 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:36:25 ]
>>846
おいおい。本気で言ってるのか?

863 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:36:42 ]
>>860
それは分かるが、const_cast で代用できる。

864 名前:846 [2007/06/08(金) 15:38:15 ]
>>862
本気だが?


865 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:39:56 ]
「本気」と書いて「マジ」と読む

866 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:41:02 ]
>>859
単にCOMのシンタックス上非 const になってるだけで
セマンティックス的には const な動作ならば、
適宜 const_cast 使えばいいと思うけど。
そのための const_cast でそ。

盲目的に「変更するから非 const」とか考えてると、
AddRef ひとつ呼べやしない。

867 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 15:42:16 ]
>>863
mutable だと宣言する事と、
const_cast を使う事は、
表している意味合いとか読みやすさとかが変わってくるな。

どちらにしろ、使わざるを得ない状況自体が稀だが・・・。

868 名前:ららら mailto:sage [2007/06/08(金) 15:47:11 ]
>>866
結論!
COM は C++ と相性が悪い!
のらー。

>> 845
> VBにconstなメソッドの概念がないからだと思う
COM と IDispatch を混同してはいかんのらー。
COM は VB のためのものではないのらー。

869 名前:828 [2007/06/08(金) 16:13:14 ]
>>849,>>858
ありがとうございました。
実現が難しそうだということがわかりましたので
もう少し自分で考えた後、突破口が見つからなければあきらめたいと思います。





870 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 16:38:43 ]
>>869
Windowsって、ファイルを開いたときに渡したパスを、覚えてないんだよね。

部屋の中に人がいるかどうかしか管理してなくて、
どの入り口から入ってきたのかは、ノーケアなんだ。

ファイルのハンドルから、ファイル名を知りたくて色々調べたけど、解決方法はなかった。
裏APIを使えば、オブジェクトの名前はわかるようなんだけど、ファイル名とは違うんだよね。

いっそのこと全プロセスに対してCreateProcessをフックしてしまい、
ハンドルに対するCreateFile時のファイル名を管理してしまおうかとも思ったけど、
そんな行儀の悪いことをするのはダメだよねぇ、ってことで諦めた。

871 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 16:56:05 ]
870のいう通りなら、
当該のドライブが使用中に、その解除作業やっても問題ないんじゃないか?
だから「ドライブを使用していてもエラーなしでドライブを解除してしまう」のでは?

これは想像だけど、ファイルを開くときにSubstされたドライブの場合、
正しいディスクのパスに変換してからファイルを開く、ぐらいの処理やっててもおかしくないと思うんだがな。

872 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 17:21:17 ]
>>871
たぶんフィルタドライバを使って実現されていると思われ。



873 名前:869 [2007/06/08(金) 18:32:09 ]
>>870
>>871
>>872
ありがとうございます。参考になりました

874 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:39:23 ]
すいません、質問です。

WinXPにてsend,recvを使ってバイナリデータを送受信したいのですが、
バッファの大きさの上限(要するに、一回のsendや一回のrecvで送受信できるデータ量の上限)って、
何バイトでしょうか??


また、もし上限が無いのでしたら、
例えば1GByte程のデータを送受信する場合、
バッファサイズはどのぐらいが効率的なのでしょうか??

ご教授御願いいたしますm(。−_−。)m

875 名前:デフォルトの名無しさん mailto:sage [2007/06/08(金) 23:47:22 ]
>>874
WinScokのヘルプにバッファの設定について書いてあるんだから、
最低限確認してからにしろよ。

876 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 00:38:16 ]
>>874
なんつーか、そもそもTCP/IPはバッファを大きくしてもそれだけの大きさをそのまま扱えるわけじゃないことも
ご存知ないような。入門サイトでじっくりお勉強することをお勧めするですよ。

877 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:04:06 ]
>>874
マジレスしたらここに聞きにくる以前の問題すぎて笑った

878 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 01:55:50 ]
質問です。
CreateCaretでシステムキャレット(長方形型)を使わせていただいていますが
ウィンドウのステータスバーの上に被さって表示されてしまいます。
また、DrawEdgeで描いたウィンドウ内枠も上書きしてしまいます。
システムにお借りしたキャレットは描画のクリッピングなどはできないのでしょうか
お聞かせください。

879 名前:878 mailto:sage [2007/06/09(土) 01:58:46 ]
要するにエディタ等のウィンドウをスクロールした際の
キャレットが隠れるように見える挙動を実現したいのです。



880 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 11:19:01 ]
ウィンドウをスクロールして、
キャレットが隠れなければならないタイミングで、
HideCaret を呼べばいいのでは。

881 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 12:17:40 ]
【政治】民主党、無年金障害者問題で法案提出 在日外国人らも救済

民主党は9日、国民年金の対象外か、任意加入の時期に未加入だったため、
障害基礎年金をもらえない無年金障害者すべてに
「障害福祉年金」を支給する法案を衆院に提出した。
今国会に与党が提出を予定している案では、
救済対象を元学生と専業主婦に限っているが、
民主党案は在日外国人や在外邦人も救済する手厚い内容だ。

給付額は、与党案では障害基礎年金の約6割にあたる月4万〜5万円だが、
民主党案は障害基礎年金と同額としている。

(06/09)朝日新聞
www.asahi.com/money/pension/news/TKY200406090286.html

882 名前:878 mailto:sage [2007/06/09(土) 16:11:21 ]
>>880
手持ちの例で言えば↓このバイナリエディタStirlingのように
ttp://www.vector.co.jp/soft/win95/util/se079072.html
ウィンドウサイズを変更してキャレット上をステータスバーが覆うと
欠けたキャレットが点滅し続ける、このような挙動はどのように実現されているのか?ということです。

883 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:16:37 ]
テキストエディタ(バイナリもそうだけど)系の奴って、
キャレットは自前描画するもんなんじゃなかったっけ?
WM_TIMERつかまえて点滅、とか

884 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:20:01 ]
君のハートを捕まえて

885 名前:878 mailto:sage [2007/06/09(土) 16:27:03 ]
>>883
そうなんですか。
同じくバイナリエディタの例で申し訳ないのですが↓のBZなんかは
ttp://www.vector.co.jp/soft/win95/util/se032859.html
>>882のようなステータスバーがキャレット上を覆う時は
シンプルにも完全にキャレットを非表示にする隠す挙動になっています。

886 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:41:26 ]
?どっちも同じじゃない?

887 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:43:33 ]
>>885
ああごめんごめん、全部がそうってわけじゃないよ

でも、あれ。俺はスターリンもBZも持ってんだけど、
試してみたらどっちも、キャレット一部が隠れてもちゃんと残りの一部が点滅してるな・・
バージョンが違うのかな?

888 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:46:58 ]
バージョンが違いますね

889 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 16:50:51 ]
そうですか、すんませんです



890 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 18:57:44 ]
>>878
キャレットを所持するウィンドウとステータスバーの領域が重なってるんじゃないか?
StirlingとBZもCreateCaretを使っている

891 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:05:43 ]
フォルダの上で中央クリックしたら
フォルダを新しいウインドウで開く
ってのをできるソフトないかな?

892 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:07:43 ]
ソフトウェア板に行ってね

893 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:16:25 ]
>>891
それぐらい自分で作れカス

894 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:48:42 ]
実行ファイルのアイコンについてですが、WindowsXPのアイコンの表示方法には色々あると思います。
縮小版、並べて表示、一覧・・・
これらに対応して、違ったサイズのアイコンを表示したいのですが、どのようにすればいいのでしょうか?

895 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 20:52:26 ]
アイコンは各種サイズを格納してる?

896 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:00:03 ]
一応48*48と32*32のアイコンをリソースに取り込んでます。
一番数字が若いやつが実行ファイルのアイコンになるっぽいので、48*48が標準で表示されています。
まぁ、どういう表示にしても48*48が表示されるのですが、これをなんとか・・・

897 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:01:20 ]
指定しろよ

898 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:03:52 ]
>>896
その2つが別のアイコンとして扱われているのでは?
Windowsでは1つのアイコンファイルやリソースが複数の大きさ・色数のアイコンを保持できる

899 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:07:23 ]
どうやって指定するのでしょうか・・・(汗
VS2005を使用しているのですが、リソースビューでは特にいじる場所も見当たらなさそうな・・・



900 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:09:38 ]
>>898
そうなんですか。ということは、今は2つのicoファイルが独立したリソースになってるって事ですね。
ちょっと色々試してみます。

901 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:11:04 ]
>>899
なんだ、VSかい。EEじゃないよね?
アイコンエディットしてるときに、いろいろメニューさがしてみそ

902 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:16:08 ]
アイコンは、専用のソフトで一つの.icoにまとめてから、それを
リソースとしてそのまま取り込むのが楽。

アイコンをまとめるソフトはフリーのやつでもわんさかあるから適当に選んで使うがよろし
ちなみに俺は@iconってのを使ってる

903 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:17:14 ]
@icon変換 とかで(ものはなんでもいいけど)ひとつのicoファイルが複数の
サイズの違う画像を持つようするといいんじゃないかな

904 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:19:13 ]
>>901
Visual Studio 2005です。リソースの追加>インポートを2回繰り返して2つのicoファイルを読み込んだのですが、
それではいけないんですよね・・・。色々メニュー見てみたり、右クリックしてみたりしたのですが
いまいちどこでそういう変更が出来るのかまだわからないです・・・orz

905 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:19:56 ]
>>902-903
ちょっと@iconを落としてきます!

906 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:25:27 ]
@iconでマルチ画像保存したら出来ましたああああ;;
ありがとうございます!

というか、icoファイルって意外と高機能なんですね・・・
jpgとかgifの感覚で一つのファイルは一つの画像だと思ってました

907 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:34:07 ]
なんでgifが一つなんだ?

908 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:37:19 ]
脳内

909 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 21:46:46 ]
あ、gifは全然一つじゃないですね。アニメーションgifとか昔自分作ってたのに・・・orz



910 名前:デフォルトの名無しさん mailto:sage [2007/06/09(土) 22:55:37 ]
>>904
アイコンのエディット画面のイメージメニューだよ

911 名前:878 mailto:sage [2007/06/09(土) 22:58:18 ]
>>887
BZはどうやら1行目だけは非表示にならずキャレットが点滅表示されるようです。

>>890
つまり、クライアント領域は別の子ウィンドウを張り付けるべきですかね?
今まで親ウィンドウに直書き描画しておりましたが・・・。

912 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:02:25 ]
ここで聞くのが正しいか分からないけど、
VC++2005を使って「猫でも分かるプログラミング」を見て
Win32APIの勉強をしているところなのですが、
プログラムに組み込みたいビットマップ画像や音楽ファイルって
生のまま(?)配布するソフトに一緒に入れておくしかないですか?



913 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:12:13 ]
自分の好きなようにしろよ。

914 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:15:20 ]
>>913
自分の好きなようというか、
そのやり方しか知らなくて他に選択肢が無いから、
それ以外にやり方があるなら教えて下さい、という旨です。

915 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:16:09 ]
暗号化するなり、
1つのファイルにまとめるなり、
圧縮するなり、
リソースとして実行ファイルに埋め込むなり

好きにするなりよ

916 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:28:03 ]
>>914
やり方なんていくらでもある
その辺のPCゲームとか見れば、いくつか参考例もあるだろ?
あと…あんまりWin32APIには関係ないかもな

俺はzlib使って固めて、独自ファイルヘッダくっつけて、
ついでに軽い暗号化かけて、チェック用のハッシュも持たせてやってる
ファイル対象の圧縮・展開は専用ツール作って、
exeから使うときは展開ツールで利用してるクラスを使って簡単展開

917 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:33:52 ]
この手の質問をする奴って、やり方は分かっているのに、
思いつく方法が面倒くさくて逃げ出したいから、
他人に何とかしてもらおうとしているだけなんだよね。

918 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 00:55:22 ]
>>915
色々方法を教えて頂きありがとうございます、とても参考になりました。
まだレベルが低くて暗号化云々がアレなのでリソースとして
埋め込むという方法のやり方を調べてみます。

>>916
PC買って間もなくてプログラミング以外でほとんど使ったことが無かったので
一般的にどうするものなのか分からなかったです。
スレ違い&常識的なことを聞いていたらすいませんでした。
教えて頂いた方法はまだ技術的に追いつかないのでメモしておいて後で参考にさせて頂きます。
詳しく教えて頂きありがとうございました。

>>917
いえ、「猫でも〜」を挙げているように、まだ習い初めなのでガチでやり方が分かりませんでした。
ただ月曜が友人の誕生日で作ったプログラムを送りたくて
日程的に詰まっていたため自分で色々調べる時間が足りず、
ここで他人に何とかしてもらおうと思ったのは事実なので、
教えて君と不快に思われたらすいませんでした。

919 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 01:05:25 ]
誕生日プレゼントなら、happy99だよな

ttp://www.geocities.jp/hiko_bae/happy99.html




920 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:29:27 ]
すみません。質問です。
GetOpenFileNameで既存ファイルのフルパス文字列を受け取った場合、
ユーザーがキータイプしている可能性があるのでこれを統一化したいのですが良い方法はないでしょうか?
フルパス文字列をキーとして内部保存し新たにOpenされた場合は相応の処理をしたいのです。
(ちなみに実際にファイル操作をするのはLinkした外部ライブラリです。)

MBCS向けコーディングしていますが単純に_mbsnicmpをかませば大丈夫でしょうか?
パスの命名規則があいまいで確信が持てません。。。

921 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 15:37:11 ]
日本語でおk


922 名前:920 mailto:sage [2007/06/10(日) 16:04:07 ]
ああ、説明端折りすぎで意味不明でしたか。すみません
例えば、Abc.bmp、ABC.BMP、aBc.bmpなどは同じファイル(もっと長いファイル名でも)なので
GetOpenFileNameで受け取ったパスをそのまま使ってキー探索するのは危険かと思いました
で、Windowsシステムが認識しているパス名に統一する方法があればとお訊きした訳です

受け取ったパスでそのままSearchPathしてみたところ、どういう訳か入力した値そのものだったり
エクスプローラ上のファイル名に置き換えられたり動作不定です(win2000)

923 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:07:30 ]
> Abc.bmp、ABC.BMP、aBc.bmpなどは同じファイル
ファイルシステムによっては違うファイルなのでは?

924 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:09:23 ]
あなたは きょうしには むいていません。

925 名前:920 mailto:sage [2007/06/10(日) 16:23:49 ]
>>923
え゜、、そうなんですか?
少なくともNTFS上では同じファイルとして扱われてますがFATやFAT32だと違うんでしょうか

926 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:38:46 ]
なにを悩んでるのかがはっきりしないな。
特に
>GetOpenFileNameで受け取ったパスをそのまま使ってキー探索するのは危険かと思いました
の意味が分からない。
OPENFILENAME構造体のフラグで無効な文字や、無効なパスははじけるはず。

「危険」って何が「危険」なの?

927 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:40:14 ]
NTFSもVATもFAT32も大文字と小文字を区別する。
大文字小文字区別しないのは昔のファイル名が8.3のFATじゃなかったっけ?

928 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 16:49:39 ]
ファイルシステムとAPIとシェルの各層を区別しろや

929 名前:926 mailto:sage [2007/06/10(日) 16:52:53 ]
>>920
すみません。よく読んだらちゃんとわかりました。
自分の読解力不足を嘆くばかりです。

www.ipa.go.jp/security/awareness/vendor/programming/b08_01_main.html
ここを読んでおくとさらに悩めると思います。



930 名前:920 mailto:sage [2007/06/10(日) 17:08:36 ]
説明下手ですいません。かなりアホなこと訊いている気がしてきました

>>926
既にOpen済みかそうでないかを判定する手段として
Open済みのファイルのフルパスを保存し、一致検索しようと考ました
新たにOpenされたファイルなら前処理を行った後にライブラリにOpen要求を出します
GetOpenFileNameでは存在するValidなパスしか受け付けないように設定しています

>>927
不安になったので今デスクトップ上で上記3ファイルを新規作成してみましたが
最初の1個以外は同じファイル名だと怒られます(XP、NTFS)


931 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:17:52 ]
>>930
> 不安になったので今デスクトップ上で上記3ファイルを新規作成してみましたが
> 最初の1個以外は同じファイル名だと怒られます(XP、NTFS)
それはWindowsのファイルシステムドライバが過去の互換性に縛られるせい。

932 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:19:39 ]
GetVolumeInformation
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpfileio/html/_win32_getvolumeinformation.asp
FS_CASE_IS_PRESERVED
ファイルシステムは、ディスクにファイル名を記録するときに、大文字と小文字を区別して保存します。
FS_CASE_SENSITIVE
ファイルシステムは、ファイル名の大文字と小文字の区別をサポートしています。

933 名前:920 mailto:sage [2007/06/10(日) 17:32:51 ]
皆様、ありがとうございます
なるほど。基本的な理解が足りていなかったようです。
具体的な解決法が未だ見えませんが教えてもらった情報を元に
これから色々テストしてきます

934 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:36:45 ]
がんばれ

935 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 17:48:12 ]
>>920
与えられたパスをFindFirstFileに渡す。
これで大文字/小文字も含めて正確なパスが得られるよ。

俺はGetModuleFileNameで得られたパス名を修正するのに使っている。

936 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 18:15:31 ]
がんばるな

937 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 18:25:55 ]
CorrectFileNameEx

938 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:11:23 ]
>>937
くわしく。

939 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:15:53 ]
CorrectFileNameEx に一致するページは見つかりませんでした。



940 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 19:35:05 ]
次スレたてられなかった

941 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:09:01 ]
>>940
>980 くらいでちょうどよい。まだ、早すぎ。

942 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:17:01 ]
>>980に期待

943 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 20:27:30 ]
GetCanonicalFileName

944 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:32:03 ]
>>943
詳しく

945 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:38:41 ]
>>944
詳しく

946 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:43:09 ]
>>945
悔しく

947 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 21:54:28 ]
>>943
つまんね

948 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 22:22:49 ]
>>947
ねんまつ

949 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 23:08:34 ]
ファイルハンドルを開きっぱなしでそのファイルを削除しようとすると、
「ファイルまたはフォルダの削除エラー」がでます。
ファイルが削除されるタイミングを知ることができれば、
ファイルハンドルを解放しようと思います。
タイミングを知る方法を教えてください。



950 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 23:12:43 ]
初めから削除権与えたら駄目なん?

951 名前:949 mailto:sage [2007/06/10(日) 23:27:14 ]
>> 950
ありがとうございます。
それで行けそうです。
めちゃ助かりました!

952 名前:デフォルトの名無しさん mailto:sage [2007/06/10(日) 23:28:25 ]
>>949
試したことはないけど便宜的ロックで何とかならない?
SMBとかで使ってる奴。

953 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 06:14:19 ]
スーパーマリオブラザーズで使われているのはロックではありません。

954 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 08:40:08 ]
DPMSで画面の電源を切るにはどうするですか?

955 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 23:05:52 ]
>>954
KernelIoControlでIOCTL_HAL_DDIとかじゃね?

956 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:02:21 ]
ochinchin.h を omanko.cpp に include したのに

957 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:15:29 ]
includeはinsertじゃないよバーカ

958 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 00:26:02 ]
僕バ(略

959 名前:デフォルトの名無しさん [2007/06/12(火) 09:33:04 ]
スレ違いかと思いますが、他に適当なスレが見当たらなかったので
ここでお伺いさせてください。

Windows2000で
Shell_NotifyIcon()でシステムトレイに表示できるアイコンは
16色らしいのですが、この16色は16種類の色なのでしょうか?
それとも決められた16色なのでしょうか?



960 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:04:17 ]
2kまでシステムカラー16色限定。
XP以後フルカラー+アルファが使えるようになった。

でもMEで256色アイコンが色化け無しでトレイにあるのを見たことあるんだよな・・・

961 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:06:32 ]
IEというか Comctrl32 のバージョン依存じゃね?

962 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:15:44 ]
ttp://msdn2.microsoft.com/en-us/library/ms538121.aspx
hIcon
 Windows 95, Windows 98, and Microsoft Windows NT 4.0 support icons of up to 4 bits per pixel (BPP).
Windows Millennium Edition (Windows Me) and Windows 2000 support icons of a color depth up to the current display mode.
Windows XP supports icons of up to 32 BPP.

963 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 14:57:49 ]
そのアイコンの話じゃねーんだよバーヤ

964 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 15:02:19 ]
そのアイコンの話なーんだよバーカ

965 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 15:40:27 ]
扱うのはそのアイコンだが、今回の話はそれとは違う部分の制限だろ

966 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:05:06 ]
いや、>>962の説明で正しい。

967 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:21:31 ]
元の質問者は16色と言ってるんだけど、
つまりこれは16色の環境で実行したってことなの?

968 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 16:32:16 ]
>>967
>16色らしいのですが
っつーくらいだから、試してはいないとふんだ。

969 名前:デフォルトの名無しさん [2007/06/12(火) 16:51:50 ]
すいません。元の質問者です。

試しました。
オレンジベースのグラデーションで16色アイコンをShell_NotifyIcon()で
表示したのですが、XP上ではイメージどおりに表示されたのですが
2Kに持っていったらグレースケール色になってしまったのです。
ググったら2Kは16色だよ。との情報を得ました。

そしてその16色とは固定の16色なのか16種類なのかとの疑問となり、
グレーになる原因を求めてこのスレにお邪魔させていただきました。
>>962さんの情報では
2Kはデスクトップのカラービットに依存すると解釈したのですが
であれば、32bitに設定していますので普通に表示されるはずだと
思うのですが・・・また解からなくなってしまいました。



970 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:03:03 ]
普通にShell_NotifyIconだけだと16色にしかならないから
XP未満で256色なのはタスクトレイのウィンドウをフックしてイメージリストを書き換えてるんだよ。
exploer.exeにパッチとか常駐ソフトで変更てのもあるが汎用性がない。

971 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:06:47 ]
グレースケールだとシステム標準じゃないような、、、って
白、明灰、暗灰、黒の4段階ならシステム16色だな。

972 名前:デフォルトの名無しさん [2007/06/12(火) 17:13:22 ]
元の質問者です。

すると
Shell_NotifyIcon()だけを素直に使った場合、
>>960のシステムカラー16色という制限を受けるって
ことですね。

973 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:33:38 ]
16x16ドット16色で見やすいアイコンを作るのもプログラマの腕の見せ所です

974 名前:デフォルトの名無しさん [2007/06/12(火) 17:42:31 ]
なるほどシステムカラーを組み合わせて
遠目からオレンジっぽく見えるようにします。

それにしても>>962さんの紹介してくれたMSの説明は
フックしてイメージリストを書き換えるのが前提の
説明なのでしょうか。
英語が苦手なので全部を解読するのは厳しいですが、
それもプログラマの腕の見せ所ですものね。

975 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:48:12 ]
流れとは関係ないかも知れないが、
うちの win98 では、トレイ上ではないが、8ビットカラーの 32x32, 16x16 の
アイコンが表示されている。写真から xpadie かなんかで減色して作ったもの。

976 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:51:12 ]
休止状態、スタンバイ、スリープから復帰したことを知ることって出来ないですか?

977 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 17:54:48 ]
はい。

978 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:03:40 ]
>>976
ttp://www.winapi-database.com/Message/WM/WM_POWERBROADCAST.html

979 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:06:19 ]
>>976
出来ない が true か → いいえ
出来ない が false か → はい




980 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:07:43 ]
>>976
質問の仕方が悪い。

休止状態、スタンバイ、スリープから復帰したことを知る方法がありますか。
あれば、その方法を教えてください。

とか言えばいいのよ。

本当に知りたいことが、方法の有無だけで、
あるなら自分で調べるよ、という人もいるからね。

981 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:14:25 ]
>>978
thx
>>980
行間が読めない馬鹿は死ねばいいと思います

982 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:24:12 ]
>>978は余計なことをしたな

983 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:26:53 ]
一行だから行間はない

984 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:27:46 ]
>>980の脳が腐ってるだけ。

985 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:45:00 ]
>976が赤の他人に甘えてるだけ。
行間読むなんて、どこまでできても結局読んだ奴の推測にすぎない。

986 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:46:52 ]
もう>>983の勝ちでいいよ

987 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:46:56 ]
お前らそんなんじゃコンビニにすら行けないな。

988 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:49:13 ]
>>985がアホ過ぎるwよくそんなんで生活出来てるなwwwwwww

989 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:51:59 ]
質問の回答を聞きに来たのか
煽りに来たのか
どっちだ



990 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:53:37 ]
あんな質問してる方がアホ過ぎだ

991 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:54:40 ]
一連のレスで何が一番ひどいかって言ったら、>>981だろう。
こういうやつにまともなレスをしてはいけない。
しかも自演までしてるし。

992 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:56:29 ]
「ぼくのしつもんに すなおに こたえないやつは わるいやつ」

993 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 18:56:49 ]
じゃあ一番のボケは>>985ってことで

994 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:12:25 ]
>>988
対面リアルタイムでのやりとりは、この文字だけのやりとりとは情報量が格段に違うんだよ。

995 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:15:25 ]
>>980くらいでカチンとくるやつは
この板でちゃんとした回答はもらえないだろうなぁ

996 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:19:16 ]
社会でも駄目だろ
文章力も無いのに行間読めとか言う奴は

997 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:22:12 ]
課長、行間読んでます?

998 名前:デフォルトの名無しさん [2007/06/12(火) 19:28:04 ]
>>981
お前が死ねば?


999 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:35:08 ]
ぬるぽ



1000 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 19:37:04 ]
行間はここに↓

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef