Win32API質問箱 Build ..
[2ch|▼Menu]
858:デフォルトの名無しさん
07/06/08 15:33:06
>>843
安全確実な方法はないと思う。

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

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

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

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



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

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

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

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

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

862:デフォルトの名無しさん
07/06/08 15:36:25
>>846
おいおい。本気で言ってるのか?

863:デフォルトの名無しさん
07/06/08 15:36:42
>>860
それは分かるが、const_cast で代用できる。

864:846
07/06/08 15:38:15
>>862
本気だが?


865:デフォルトの名無しさん
07/06/08 15:39:56
「本気」と書いて「マジ」と読む

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

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

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

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

868:ららら
07/06/08 15:47:11
>>866
結論!
COM は C++ と相性が悪い!
のらー。

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

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



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

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

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

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

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

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

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



873:869
07/06/08 18:32:09
>>870
>>871
>>872
ありがとうございます。参考になりました

874:デフォルトの名無しさん
07/06/08 23:39:23
すいません、質問です。

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


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

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

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

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

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

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

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

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

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

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

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

(06/09)朝日新聞
URLリンク(www.asahi.com)

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

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

884:デフォルトの名無しさん
07/06/09 16:20:01
君のハートを捕まえて

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

886:デフォルトの名無しさん
07/06/09 16:41:26
?どっちも同じじゃない?

887:デフォルトの名無しさん
07/06/09 16:43:33
>>885
ああごめんごめん、全部がそうってわけじゃないよ

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

888:デフォルトの名無しさん
07/06/09 16:46:58
バージョンが違いますね

889:デフォルトの名無しさん
07/06/09 16:50:51
そうですか、すんませんです

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

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

892:デフォルトの名無しさん
07/06/09 20:07:43
ソフトウェア板に行ってね

893:デフォルトの名無しさん
07/06/09 20:16:25
>>891
それぐらい自分で作れカス

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

895:デフォルトの名無しさん
07/06/09 20:52:26
アイコンは各種サイズを格納してる?

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

897:デフォルトの名無しさん
07/06/09 21:01:20
指定しろよ

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

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

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

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

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

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

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

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

905:デフォルトの名無しさん
07/06/09 21:19:56
>>902-903
ちょっと@iconを落としてきます!

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

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

907:デフォルトの名無しさん
07/06/09 21:34:07
なんでgifが一つなんだ?

908:デフォルトの名無しさん
07/06/09 21:37:19
脳内

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

910:デフォルトの名無しさん
07/06/09 22:55:37
>>904
アイコンのエディット画面のイメージメニューだよ

911:878
07/06/09 22:58:18
>>887
BZはどうやら1行目だけは非表示にならずキャレットが点滅表示されるようです。

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

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



913:デフォルトの名無しさん
07/06/10 00:12:13
自分の好きなようにしろよ。

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

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

好きにするなりよ

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

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

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

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

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

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

919:デフォルトの名無しさん
07/06/10 01:05:25
誕生日プレゼントなら、happy99だよな

URLリンク(www.geocities.jp)


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

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

921:デフォルトの名無しさん
07/06/10 15:37:11
日本語でおk


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

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

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

924:デフォルトの名無しさん
07/06/10 16:09:23
あなたは きょうしには むいていません。

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

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

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

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

928:デフォルトの名無しさん
07/06/10 16:49:39
ファイルシステムとAPIとシェルの各層を区別しろや

929:926
07/06/10 16:52:53
>>920
すみません。よく読んだらちゃんとわかりました。
自分の読解力不足を嘆くばかりです。

URLリンク(www.ipa.go.jp)
ここを読んでおくとさらに悩めると思います。

930:920
07/06/10 17:08:36
説明下手ですいません。かなりアホなこと訊いている気がしてきました

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

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


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

932:デフォルトの名無しさん
07/06/10 17:19:39
GetVolumeInformation
URLリンク(msdn.microsoft.com)
FS_CASE_IS_PRESERVED
ファイルシステムは、ディスクにファイル名を記録するときに、大文字と小文字を区別して保存します。
FS_CASE_SENSITIVE
ファイルシステムは、ファイル名の大文字と小文字の区別をサポートしています。

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

934:デフォルトの名無しさん
07/06/10 17:36:45
がんばれ

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

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

936:デフォルトの名無しさん
07/06/10 18:15:31
がんばるな

937:デフォルトの名無しさん
07/06/10 18:25:55
CorrectFileNameEx

938:デフォルトの名無しさん
07/06/10 19:11:23
>>937
くわしく。

939:デフォルトの名無しさん
07/06/10 19:15:53
CorrectFileNameEx に一致するページは見つかりませんでした。

940:デフォルトの名無しさん
07/06/10 19:35:05
次スレたてられなかった

941:デフォルトの名無しさん
07/06/10 20:09:01
>>940
>980 くらいでちょうどよい。まだ、早すぎ。

942:デフォルトの名無しさん
07/06/10 20:17:01
>>980に期待

943:デフォルトの名無しさん
07/06/10 20:27:30
GetCanonicalFileName

944:デフォルトの名無しさん
07/06/10 21:32:03
>>943
詳しく

945:デフォルトの名無しさん
07/06/10 21:38:41
>>944
詳しく

946:デフォルトの名無しさん
07/06/10 21:43:09
>>945
悔しく

947:デフォルトの名無しさん
07/06/10 21:54:28
>>943
つまんね

948:デフォルトの名無しさん
07/06/10 22:22:49
>>947
ねんまつ

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

950:デフォルトの名無しさん
07/06/10 23:12:43
初めから削除権与えたら駄目なん?

951:949
07/06/10 23:27:14
>> 950
ありがとうございます。
それで行けそうです。
めちゃ助かりました!

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

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

954:デフォルトの名無しさん
07/06/11 08:40:08
DPMSで画面の電源を切るにはどうするですか?

955:デフォルトの名無しさん
07/06/11 23:05:52
>>954
KernelIoControlでIOCTL_HAL_DDIとかじゃね?

956:デフォルトの名無しさん
07/06/12 00:02:21
ochinchin.h を omanko.cpp に include したのに

957:デフォルトの名無しさん
07/06/12 00:15:29
includeはinsertじゃないよバーカ

958:デフォルトの名無しさん
07/06/12 00:26:02
僕バ(略

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

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

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

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

961:デフォルトの名無しさん
07/06/12 14:06:32
IEというか Comctrl32 のバージョン依存じゃね?

962:デフォルトの名無しさん
07/06/12 14:15:44
URLリンク(msdn2.microsoft.com)
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:デフォルトの名無しさん
07/06/12 14:57:49
そのアイコンの話じゃねーんだよバーヤ

964:デフォルトの名無しさん
07/06/12 15:02:19
そのアイコンの話なーんだよバーカ

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

966:デフォルトの名無しさん
07/06/12 16:05:06
いや、>>962の説明で正しい。

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

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

969:デフォルトの名無しさん
07/06/12 16:51:50
すいません。元の質問者です。

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

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

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

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

972:デフォルトの名無しさん
07/06/12 17:13:22
元の質問者です。

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

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

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

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

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

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

977:デフォルトの名無しさん
07/06/12 17:54:48
はい。

978:デフォルトの名無しさん
07/06/12 18:03:40
>>976
URLリンク(www.winapi-database.com)

979:デフォルトの名無しさん
07/06/12 18:06:19
>>976
出来ない が true か → いいえ
出来ない が false か → はい


980:デフォルトの名無しさん
07/06/12 18:07:43
>>976
質問の仕方が悪い。

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

とか言えばいいのよ。

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

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

982:デフォルトの名無しさん
07/06/12 18:24:12
>>978は余計なことをしたな

983:デフォルトの名無しさん
07/06/12 18:26:53
一行だから行間はない

984:デフォルトの名無しさん
07/06/12 18:27:46
>>980の脳が腐ってるだけ。

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

986:デフォルトの名無しさん
07/06/12 18:46:52
もう>>983の勝ちでいいよ

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

988:デフォルトの名無しさん
07/06/12 18:49:13
>>985がアホ過ぎるwよくそんなんで生活出来てるなwwwwwww

989:デフォルトの名無しさん
07/06/12 18:51:59
質問の回答を聞きに来たのか
煽りに来たのか
どっちだ

990:デフォルトの名無しさん
07/06/12 18:53:37
あんな質問してる方がアホ過ぎだ

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

992:デフォルトの名無しさん
07/06/12 18:56:29
「ぼくのしつもんに すなおに こたえないやつは わるいやつ」

993:デフォルトの名無しさん
07/06/12 18:56:49
じゃあ一番のボケは>>985ってことで

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

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

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

997:デフォルトの名無しさん
07/06/12 19:22:12
課長、行間読んでます?

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


999:デフォルトの名無しさん
07/06/12 19:35:08
ぬるぽ

1000:デフォルトの名無しさん
07/06/12 19:37:04
行間はここに↓

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


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4986日前に更新/234 KB
担当:undef