■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build52
751
名前:
デフォルトの名無しさん
:2007/05/05(土) 00:54:29
行方不明じゃん
752
名前:
デフォルトの名無しさん
:2007/05/05(土) 01:00:55
え?
753
名前:
デフォルトの名無しさん
:2007/05/05(土) 01:03:29
そもそも静的にしないと住所不定
754
名前:
デフォルトの名無しさん
:2007/05/05(土) 01:50:25
この処理は既に実行されています。
みたいな感じの時はHRESULTはどれを使えばいいんでしょうか?
755
名前:
デフォルトの名無しさん
:2007/05/05(土) 02:01:47
E_KONOSHORIHA(略
756
名前:
デフォルトの名無しさん
:2007/05/05(土) 02:06:27
E_ABORT
757
名前:
デフォルトの名無しさん
:2007/05/05(土) 02:11:27
HRESULT hr = AtlHresultFromWin32(ERROR_ALREADY_INITIALIZED);
758
名前:
デフォルトの名無しさん
:2007/05/05(土) 02:14:16
それがエラーではないというのならS_FALSEという手もある。
勿論その場合S_KONOSHORIHA(略も可。
759
名前:
デフォルトの名無しさん
:2007/05/05(土) 02:39:44
AtlHresultFromWin32(ERROR_BUSY); でいいんじゃ。
760
名前:
デフォルトの名無しさん
:2007/05/05(土) 08:34:39
その文章だと二つの意味に取れるな。
1.現在処理中なので、受け付けることができない。
2.この呼び出しを二回以上する必要は無い。
761
名前:
デフォルトの名無しさん
:2007/05/05(土) 08:41:09
この呼び出しを二回以上する必要は無い。
なんですけど。FACILITY_ITFで自分で定義できるみたいですね。
どうもありがとう。
762
名前:
デフォルトの名無しさん
:2007/05/05(土) 09:09:06
FORMAT_MESSAGE_FROM_SYSTEMは最大で何文字まで返ってくる可能性があるの?
763
名前:
デフォルトの名無しさん
:2007/05/05(土) 09:19:32
∞
764
名前:
デフォルトの名無しさん
:2007/05/05(土) 09:27:04
64KB。Unicodeで32K文字ってとこか。
765
名前:
デフォルトの名無しさん
:2007/05/05(土) 09:29:25
実メモリが許す限りじゃね?
各エラーコードに対応するメッセージが全部わかれば最大どれくらいか解ると思うけど
つか、FORMAT_MESSAGE_FROM_SYSTEMはFORMAT_MESSAGE_ALLOCATE_BUFFERと一緒に使うもんだと思ってたんだけどw
766
名前:
デフォルトの名無しさん
:2007/05/05(土) 09:31:27
>>764
詳しく
余談だけど、Unicode=2バイトじゃ無い
767
名前:
デフォルトの名無しさん
:2007/05/05(土) 09:32:33
へぇ〜
768
名前:
デフォルトの名無しさん
:2007/05/05(土) 10:09:56
>>766
内部的に使ってるUNICODE_STRING構造体の制限。
あとWin32のW系APIで文字と言ったら暗黙にUTF-16符号単位のことを指してると思っていい。
769
名前:
デフォルトの名無しさん
:2007/05/05(土) 10:52:47
FormatMessageへ渡すバッファってLPWSTRになってるけど
実際渡すのはLPWSTRへのポインタでは?
770
名前:
デフォルトの名無しさん
:2007/05/05(土) 10:55:00
>>769
それは、FORMAT_MESSAGE_ALLOCATE_BUFFERの時ね
771
名前:
デフォルトの名無しさん
:2007/05/05(土) 10:55:57
この事実に気付いた者は抹殺さr
772
名前:
デフォルトの名無しさん
:2007/05/05(土) 11:31:01
自動的にメモリ確保してくれるんだろ
後LocalFreeしないとダメなんだよな使い終わったら。
773
名前:
デフォルトの名無しさん
:2007/05/05(土) 11:35:05
あらかじめ確保したものを渡す関数と
勝手に確保して返してくれる関数の違いは
関数の仕様見て確認するしかないんですよね
ネーミングのルールとかありますか?
774
名前:
デフォルトの名無しさん
:2007/05/05(土) 12:07:26
呼び出し側でバッファを用意して渡す場合、
バッファサイズも渡さないとイケナイから、わかる。
775
名前:
デフォルトの名無しさん
:2007/05/05(土) 16:49:46
CopyMemoryの成否の判断ってどうするんでしょう
776
名前:
デフォルトの名無しさん
:2007/05/05(土) 16:51:35
CopyMemory が失敗する状況って、メモリが壊れてる時とかか?
777
名前:
デフォルトの名無しさん
:2007/05/05(土) 16:54:24
CopyMemoryってmemcpyの#defineじゃなかったっけか。
778
名前:
デフォルトの名無しさん
:2007/05/05(土) 16:59:06
しかもmemcpyはコンパイラによってはインラインに展開される。
そんなものが失敗するような状況じゃエラーチェックの判定だって正しく行われるかどうか
分からんぞ。つまり考えるだけ無駄
779
名前:
デフォルトの名無しさん
:2007/05/05(土) 17:20:52
memcpyはこういうときにエラーを返すということが定められていなかったと思う。
エラーになりそうな状況を考えると、思い付くのはヌルポインタなどメモリにアクセスできないとき。
それならWindowsが例外を投げてくるだろう。SEHで処理しろ。
780
名前:
デフォルトの名無しさん
:2007/05/05(土) 17:45:48
IMAGE_IMPORT_DESCRIPTOR についての質問です。
Advanced Windows のAPIフックに関するソースコードを読むと、
モジュールのベースアドレス(modBaseAddr)と、
モジュールのハンドル(hModule)は "常に同じ" として
扱われているみたいですが、
これは保証されている事なのですか?
781
名前:
デフォルトの名無しさん
:2007/05/05(土) 17:48:31
パケット取得でもするのかい?
782
名前:
デフォルトの名無しさん
:2007/05/05(土) 17:55:03
特に用途はないです。
ただの興味本位ということで・・・
783
名前:
デフォルトの名無しさん
:2007/05/05(土) 18:20:23
コンボボックスでドロップダウンリストが1行しか表示されません。
複数行を表示するにはどこを設定すればよいのでしょうか?
OS:WinXP
環境:Visual Studio 2005
言語:C++
784
名前:
デフォルトの名無しさん
:2007/05/05(土) 18:21:32
下に広げる
785
名前:
デフォルトの名無しさん
:2007/05/05(土) 18:26:46
コントロールのデザインのとこで、コンボボックスのドロップダウンボタンをクリックすると
コントロールの大きさを変えるのとドロップダウンリストの大きさを変えるのが切り替わる
786
名前:
783
:2007/05/05(土) 18:28:22
>>784
エディット画面で選択項目表示部分を選択すると
縦方向に伸ばすことができなかったのですが
矢印ボタンのところをクリックすると縦方向に伸ばせました。
ありがとうございました。
787
名前:
デフォルトの名無しさん
:2007/05/05(土) 18:42:21
ファイルマップオブジェクトにthisポインタの値を書き込むにはどうすれば良いですか?
788
名前:
デフォルトの名無しさん
:2007/05/05(土) 19:06:57
>>787
thisポインタの値を書き込めばいいと思います
789
名前:
デフォルトの名無しさん
:2007/05/05(土) 19:43:57
thisポインタの値とは?
790
名前:
デフォルトの名無しさん
:2007/05/05(土) 19:44:11
thisポインタの値のことだろ
791
名前:
デフォルトの名無しさん
:2007/05/05(土) 21:18:42
メニューバーのオーナードローをするにはどうすれば良いでしょうか?
Adobe Reader(8.0)のメニューバーのような感じにしたいです。
792
名前:
デフォルトの名無しさん
:2007/05/05(土) 22:08:50
メニューバー?
Reader8のメニューは普通だと思うが?
ツールバーか?
793
名前:
デフォルトの名無しさん
:2007/05/05(土) 22:17:27
どうしてnCodeがマイナスだとすぐにCallNextHookExを返すの?
794
名前:
デフォルトの名無しさん
:2007/05/05(土) 22:44:28
そういう決まりだから
795
名前:
791
:2007/05/06(日) 00:18:21
>>792
http://kjm.kir.jp/pc/?p=32876.jpg
赤線で囲ってあるところなんですけど、なんて言うんでしょうか?
796
名前:
デフォルトの名無しさん
:2007/05/06(日) 00:23:10
メニューバー
797
名前:
デフォルトの名無しさん
:2007/05/06(日) 00:24:11
メニューにアイコンをつけたいとかそういう話?
798
名前:
デフォルトの名無しさん
:2007/05/06(日) 01:04:42
質問です、以下のようなプログラムを現在制作しています。
コンソールアプリケーション
テキストをドラッグ&ドロップすることで、一定の処理をテキストファイルに対して行う。
「一定の処理」は、このアプリケーション用に書かれたDLLのによって変化する。
それで、DLLの検索&ロードをFindFirstFileとFindNextFile、LoadLibraryを用いて行っています。
そのプログラムなのですが、IDE(VC7)からでは設計通りに動作するのですが、それ以外では動作せず…。
どうやらFindFirstFileなどで、DLLが検索に引っ掛からないようなのです。
(おそらくはカレントディレクトリの問題なのでしょうが)、何故このようなことが起こるのでしょうか?
また、対策を教えてください。よろしくおねがいします。
799
名前:
791
:2007/05/06(日) 01:11:24
アイコンは別にいらないのですが、Adobe Readerみたいにメニューバーの通常状態の色や、選択状態の色を変えたいのです。
あと、右上端にあるバツ印もどうやっているでしょうか?
800
名前:
デフォルトの名無しさん
:2007/05/06(日) 01:11:40
GetModuleFileName
801
名前:
デフォルトの名無しさん
:2007/05/06(日) 01:12:45
>>798
>(おそらくはカレントディレクトリの問題なのでしょうが)
そう思うなら、まずはGetCurrentDirectory()で調べるべきでは?
802
名前:
デフォルトの名無しさん
:2007/05/06(日) 01:56:35
DLLを実行ファイルに含めて、一つの実行ファイルにすることって可能でしょうか?
803
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:05:33
>>802
無理やりリソースとして埋め込んで、実行時に復元すれば?
804
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:08:48
hIconでアイコンを指定しました。
けど
http://kjm.kir.jp/pc/?p=32881.png
みたいにタスクバー上でしかアイコンが変わってません。
どうしたらプログラム上でもアイコンを変えれますか?
805
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:12:05
hIconSm を放置してるとか?
806
名前:
798
:2007/05/06(日) 02:17:35
>801
ありがとうございます、さっそく調べてみました。
すると、カレントディレクトリがC:\Document and Settings\(ユーザー名)となっているようです。
これは何故なのでしょうか、理由をどなたか知っていれば教えていただければと。
807
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:19:44
>>805
素早いレスありがとうございます。
hIconSmの存在も調べました。
でもwindows95以外はWNDCLASSEXを使えないらしく、だからhIconSmも使えないそうなんです。
実際hIconSmも指定してビルドするとWNDCLASSにはhIconSmは存在しないってエラーがでました。
808
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:19:51
理由を考えるよりカレントディレクトリに依存しないようにプログラムを変えろ
809
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:23:44
>>807
Windows 95 以降全部で使えるぞ。
810
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:24:58
むしろどこに Win95 以外使えないって書いてるのか教えてくれ
811
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:28:52
Windows 95のころのSDKじゃね?
当然「Windows 95以外」が意味してるのはNT 3.5とかWindows 3.1とか
812
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:31:49
>>809-811
あれ、つかえるんですか。じゃあそれでやってみます。
813
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:32:14
>>811
VC++ 5.0 あたりか。
814
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:42:04
hIconSmで指定しても駄目でした。
ちなみにVC++ 6.0をつかってます
815
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:45:57
あ、16 ビット版のアイコンをエディットしてないとかはどうか?
確か VC++ 6.0 あたりは、アイコンを新たに作成したときは
32 ビット版と 16 ビット版が両方作られてたはず。
どっかでエディット対象を選択できるんで、
それで 16 ビット版の方もエディットすればいいはず。
816
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:47:11
ちゃんと WNDCLASSEX 使ってるか? WNDCLASS じゃないぞ
817
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:53:25
>>815
一つしか作られてないと思うのですが、どこに作成されるのでしょうか?
>>816
WNDCLASSEXに変えても駄目でした。
818
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:54:32
>>817
1つのファイルに2つのアイコンが入ってるはず。
819
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:55:45
ビットじゃないやw ドットだ。
820
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:58:26
>>818
一つしかアイコンはありませんでした・・・
もちろん32のほうだけしかありません・・・
821
名前:
デフォルトの名無しさん
:2007/05/06(日) 02:59:02
>>820
どういう風に確認した?
822
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:01:58
>>821
アイコンの保存場所がワークスペースがあるフォルダなのでそこを確認しました
823
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:04:56
>>822
アイコンの中身は見たのか?
824
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:07:30
WNDCLASSEXでhIconSmを指定してる箇所のソースを
ここに張り付けた方が解決が早い予感
825
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:11:51
>>823
アイコンの中身は見ました。
プロパティも確認しました。
826
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:13:43
メインのとこだけ貼り付けます
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) {
MSG msg; //メッセージ情報格納用構造体
WNDCLASSEX wc; //ウィンドウクラス
HWND hWnd; //ウィンドウハンドル
//*****ウィンドウクラスの設定*****//
wc.cbSize = sizeof(WNDCLASSEX); //構造体サイズ
wc.hInstance = hInstance; //インスタンスハンドル
wc.lpszClassName = szClassName; //ウィンドウクラス名
wc.lpfnWndProc = WindowProc; //ウィンドウプロシージャ名
wc.style = CS_HREDRAW|CS_VREDRAW; //ウィンドウスタイル
wc.hIcon = LoadIcon(hInstance,"IDI_ICON1"); //アイコンハンドル
wc.hIconSm = LoadIcon(hInstance,"IDI_ICON1");
wc.hCursor = LoadCursor(NULL,IDC_ARROW); //カーソルハンドル
wc.lpszMenuName = "saisei"; //メニュー
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //ウィンドウの背景色セット
//*****ウィンドウクラス登録*****//
if(!RegisterClassEx(&wc)) return FALSE; //登録失敗
//*****ウィンドウの作成*****//
hWnd = CreateWindow(szClassName,"再生プログラムだべ",WS_OVERLAPPEDWINDOW,440/*CW_USEDEFAULT*/,650/*CW_USEDEFAULT*/,400,100,NULL,NULL,hInstance,NULL);
/*hWnd = CreateWindow(ウィンドウクラス名,ウィンドウタイトル,ウィンドウスタイル,ウィンドウの水平座標位置,ウィンドウの垂直座標位置,ウィンドウの幅,ウィンドウの高さ,親ウィンドウのハンドル,メニューのハンドル,インスタンスハンドル)*/
//*****ウィンドウの表示*****//
ShowWindow(hWnd,nCmdShow); //ウィンドウの表示状態設定
UpdateWindow(hWnd); //ウィンドウの表示領域更新
//**********メッセージループ***************
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);
}
/*while(メッセージの取得){メッセージの変換,メッセージをプロシージャへ送信}*/
return msg.wParam;
}
827
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:14:16
>>806
IDEから実行したらおそらくカレントディレクトリはプロジェクトファイルのあるディレクトリになってるはず。
ファイルをドラッグ&ドロップして起動した場合は、ファイルのあるところがカレントディレクトリになってるはず。
理由?知らね。そのほうが都合がいいからだろ。
DLLをEXEと同じディレクトリに置くことにしてるのなら
>>800
とか。
828
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:14:36
アイコンファイルをうpってみたら?
829
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:20:49
アイコンをアップしました
ttp://vipup.sakura.ne.jp/512kb/src/512kb_9949.zip.html
830
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:31:28
確かに 32 ドットのしか入ってないね・・・。
>>826
も別に変には思えないし。
じゃ、16 ドットのも作ってみたらどうかな。
831
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:40:40
>>826
"IDI_ICON1"
を
MAKEINTRESOURCE(IDI_ICON1)
に置換すれ
ウチの環境では、それでうまくいった
832
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:54:18
MSDNより
>LoadIcon 関数がロードできるのは、GetSystemMetrics 関数の SM_CXCURSOR と SM_CYCURSOR
> の各フラグに相当するサイズのアイコンだけです。それ以外のサイズのアイコンをロードするには、
>LoadImage 関数を使ってください。
wc.hIconSm = LoadImage(hInstance,"IDI_ICON1", IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
でどお?
>SM_CXCURSOR と SM_CYCURSOR
これ誤植っぽい、SM_CXICON が正しい。
833
名前:
デフォルトの名無しさん
:2007/05/06(日) 03:56:50
32 ドットのアイコンを hIconSm にセットしたら、
自動的に縮小された(もちろん画像は粗い)なったはずなんだがなあ・・・。
834
名前:
デフォルトの名無しさん
:2007/05/06(日) 07:51:11
>>833
リソースの作り方によるよ
835
名前:
デフォルトの名無しさん
:2007/05/06(日) 11:45:27
WindowsMediaInfomationをVCで使ってPCの情報を抜きたいです。
VBのサンプルを見つけたのですが、VC6.0への置き換え方法がよくわかりません。
ttp://www.wmifun.net/sample/win32_operatingsystemd.html
VCではどうやってCOM呼び出しを実装すればよいのでしょうか?
APIの質問ではなくて、VCの質問になるかもしれませんが、ご教授お願い致します。
836
名前:
デフォルトの名無しさん
:2007/05/06(日) 11:47:11
WTL
837
名前:
デフォルトの名無しさん
:2007/05/06(日) 11:51:42
ttp://zatsugaku.info/index.php?Program%2FWmi%2FProgram
838
名前:
デフォルトの名無しさん
:2007/05/06(日) 11:52:51
驚異的に改行されてねえ
とか思ったけどIEだとOKなのか
839
名前:
デフォルトの名無しさん
:2007/05/06(日) 11:59:46
>>831
うまくいけました。
ありがとうございます!
>>832
なんか
error C2440: '=' : 'void *' から 'struct HICON__ *' に変換することはできません。
っていわれました。
みなさま数々のご教授ありがとうございました。
またなにかエラーのときはよろしくおねがいします。
840
名前:
デフォルトの名無しさん
:2007/05/06(日) 12:33:32
Wininetに関して質問なんですが、InternetOpenはアプリの起動時に実行すべきでしょうか?
それとも通信の必要がある場合にその都度の方がいいですかね?
841
名前:
デフォルトの名無しさん
:2007/05/06(日) 13:22:32
ダイアルアップの人もいるし、、、ノートで出先とか
842
名前:
デフォルトの名無しさん
:2007/05/06(日) 13:54:59
>>840
アプリの起動時、ネットにつながっていなくてもInternetOpen
は成功する。
実際にネットに接続するAPIが呼ばれるまでにネット接続
が確立すればOK。
843
名前:
デフォルトの名無しさん
:2007/05/06(日) 14:10:42
ということはどちらでも良いって事でしょうか。
タイムアウトもその都度設定するのはアレなんで起動時に呼ぼうと思います。
ありがとうございました!
844
名前:
デフォルトの名無しさん
:2007/05/06(日) 14:14:08
>>843
http://msdn2.microsoft.com/en-us/library/aa385438.aspx
この辺りを一読しとけ
845
名前:
デフォルトの名無しさん
:2007/05/06(日) 14:54:04
タイムアウトは効いたっけ?効果なかった気がする
846
名前:
デフォルトの名無しさん
:2007/05/06(日) 16:09:17
へ ヘ │ /∧ヽ__/∧ヽ_ 〜∞
/ハ \_/ 八 │ ∞〜 /ノ ヽ;;;;;;;;;丿/ ヽ\\ 〜∞
/_______) │ (;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)
{_____愛●国_| │ [_愛●國______] .
|ミ/ ー―◎-◎-). │ (__ (__ ミミミミミミミミ|
(6 (_ _) ) │ ) ミミミミミミミ)
ノ/| .∴ ノ 3 ノ イエーイ.. │ ( ノ(。。 ) ι∵)リ||σ)ミミ)
ノ/ _\_____ノ__ │ 丶 ε U j ノミミ)
ノ/ / ) 嫌 ≡ ;;;; ) `__ノフ. │ イエーイ ヽ ,,_ U ___,,ノ /
U |__|. 韓 ≡ ;;; )_/ ∈) │ \,,______,ノ 〈
| | .流 ≡ ) ̄ ̄ ̄´ │ _∩ 厶_______ノ⌒丶.
ヽ \ ) │(S 〉 / ANTI KOREA
847
名前:
840
:2007/05/06(日) 17:10:49
すいません、
>>844
さんのリンク先でサンプル見つけました。
タイムアウトも効かないみたいなので非同期で実装しようと思います。
ありがとうございました。
848
名前:
デフォルトの名無しさん
:2007/05/06(日) 17:48:51
これはどういう意味ですか?
イベント ID (0) (ソース testsrv 内) に関する説明が見つかりませんでした。
リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。
この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。詳細については、ヘルプとサポートを参照してください。
次の情報はイベントの一部です: Service started.
849
名前:
デフォルトの名無しさん
:2007/05/06(日) 18:15:18
>>837
参考になりました。ありがとうございます。
850
名前:
デフォルトの名無しさん
:2007/05/06(日) 18:26:12
>>848
>詳細については、ヘルプとサポートを参照してください。
851
名前:
デフォルトの名無しさん
:2007/05/06(日) 19:57:31
どうしても行き詰まってしまい質問させて頂きます。
現在、HICONのキャッシュを作成し、次回からはキャッシュを元にHICONを復元させるプログラムを組んでおります。
GetDibsを使いHICONのカラーとマスクをそれぞれ、32bit, 16bitで取得し吐き出せています
吐き出させる直前の内容をCreateIconIndirectでHICONにし描画すると問題はありません
しかし、キャッシュから得た内容でHICONを作成し描画すると、アイコンによって透明可に失敗しています
皆様お知恵をお貸しくださいorz
852
名前:
デフォルトの名無しさん
:2007/05/06(日) 20:09:27
吐き出す前と後で何か情報が変わってんだろ
853
名前:
デフォルトの名無しさん
:2007/05/06(日) 20:24:47
そのキャッシュは正しく作れてんの?
854
名前:
デフォルトの名無しさん
:2007/05/06(日) 21:33:05
レスありがとうございます。
吐き出すデータとキャッシュに格納したデータのチェックサムを取ってみました所一致しました。
キャッシュ側のテストもかなり行っておりますので、キャッシュ側の問題とはやはり考えにくいですorz
現在、何故かWinrarのアイコンだけが不透明にならないという摩訶不思議な状態です;
もう一度、アイコンの取得全体を作り直して見たいと思います
855
名前:
デフォルトの名無しさん
:2007/05/06(日) 22:02:40
まず、
@キャッシュなしで、想定する動作になるか確認。
A数キャッシュ(2個ぐらい)で、想定する動作になるか確認。
B
>>851
で失敗したキャッシュ数の半分のキャッシュ数で、想定する動作になるか確認。
んで結果は?
856
名前:
デフォルトの名無しさん
:2007/05/06(日) 22:34:29
>>855
さん
@現在はテスト中ですので、キャッシュから取得に失敗した場合は何もしないようにしています
A確認済みです。
B確認済みです。特定のアイコンのみが意図した通りの描画がされず、また、チェックサムを見る限りキャッシュデータ自体は問題ありませんでした。
857
名前:
デフォルトの名無しさん
:2007/05/06(日) 22:36:34
>>856
Aは成功?Bは失敗?
858
名前:
デフォルトの名無しさん
:2007/05/06(日) 22:46:47
いまいち
>>851
の流れが見えん。
問1.HICONのキャッシュとは何?
独自フォーマットのデータ?
問2.吐き出させる直前の内容とは?
exe.dlなどのモジュールに入ってるリソースそのものの事?
問3.キャッシュから得た内容でHICONを作成し描画する関数は何?
CreateIconIndirectの事?
問4.
>アイコンによって透明可に失敗しています
>Winrarのアイコンだけが不透明にならない
ここを詳しく
859
名前:
デフォルトの名無しさん
:2007/05/06(日) 23:14:35
Alpha付き32ビットアイコンの予感
860
名前:
デフォルトの名無しさん
:2007/05/07(月) 00:11:01
レス有り難うございます。
意見を頂けて大変恐縮です。
>>857
さん
こちらでは動作上は成功と見ています
>>858
さん
問1: 保存したいHICONをGetIconInfoで詳しい情報を取得した後に、カラーとマスクのビットをGetDIBBitsで取得します
そして、取得した情報をキャッシュとして保存するようにしております。
問2: 直前の内容はカラー、マスクのピクセル情報です。ビットマップの画像ビットと同じですね(^^;
問3: その通りです。キャッシュから、カラー、マスクのピクセル情報を得た後、CreateIconIndirectでHICONを作成し、DrawIconで描画するようにしております
問4: Winrarのアイコンだけは本来透過される所が黒くなっていますorz
カラーとマスクをそれぞれ別に描画させてみると、
カラーではきちんとWinrarの本が束ねられている所以外は黒く
マスクでは、本が束ねられている所は黒く、それ以外は白くなっている事は確認済みです
BitBltを用いるとうまく透過されるのですが、今度はBitBltでは別の問題が発生するという状態に・・・
長文申し訳ありません
861
名前:
デフォルトの名無しさん
:2007/05/07(月) 00:29:56
WinRARのアイコンは32bitカラーだったりしない?
862
名前:
851
:2007/05/07(月) 01:55:06
>>861
さん
確認してみた所、32bitではありませんでした;
それと、何とか解決することができましたorz
GetDIBBitsを使わず、別の方法でビットを取得した所うまく行きました…
原因が全く分かりませんが、このまま作っていきたいと思います
こんな質問に付き合って下さった皆様本当に有り難うございました。
863
名前:
デフォルトの名無しさん
:2007/05/07(月) 02:35:08
>>862
CreateIconIndirectで使うマスクは2bitビットマップのはず。
16bitでなく2bitでキャッシュしてみたら?
なんか解決しちゃったみたいだけど。
864
名前:
デフォルトの名無しさん
:2007/05/07(月) 08:12:30
>>862
そうやね、可能性あるね。
使う色が違う他のアイコンにしたら、また問題が出るんではないかと
865
名前:
デフォルトの名無しさん
:2007/05/07(月) 11:24:07
>>863
アイコンのマスクビットマップは2bitじゃなくて高さ2倍の1bitじゃないか?
866
名前:
デフォルトの名無しさん
:2007/05/07(月) 21:14:42
ttp://support.microsoft.com/kb/216686/ja
ここを参考にExcelを操作するプログラムを作っているのですが
Worksheets(2).Delete
に相当することをやるにはどうしたらいいんでしょうか?
867
名前:
デフォルトの名無しさん
:2007/05/07(月) 21:54:18
WM_PAINTについて、OSによってはメッセージループに来ず、
直接コールバックに来るとかなどの、
詳しい挙動が載っているサイトとかありましたら教えてください。
868
名前:
866
:2007/05/07(月) 21:55:47
環境
Win2000, Excel2000, VC++6, SDK
869
名前:
デフォルトの名無しさん
:2007/05/07(月) 22:04:57
>>866
>>868
CLSIDFromProgID(L"Excel.Application", &clsid);
こいつは、ProgIDからCLSIDを求めている。
んで、そのCLSIDからExcel.ApplicationインターフェイスのpXlAppを取得してる。
pXlAppからWorkbook伝いにWorksheetsを求めればいいんじゃない?
870
名前:
869
:2007/05/07(月) 22:07:39
メソッドとかのノードがわからんだったら
oleviewとかで調べてみてわ?
871
名前:
デフォルトの名無しさん
:2007/05/07(月) 22:08:18
>>867
来ないから安心しろ
来るといったらせいぜいSendMessageした時くらいだろ
872
名前:
デフォルトの名無しさん
:2007/05/07(月) 22:08:34
×てわ
○ては
873
名前:
デフォルトの名無しさん
:2007/05/07(月) 22:09:16
>>871
SendMessageはメッセージループから来るだろ・・・
874
名前:
デフォルトの名無しさん
:2007/05/07(月) 22:09:59
>>873
MSDN嫁
875
名前:
867
:2007/05/07(月) 22:13:59
>>871
自分が実験した感じでは、9xでは起動時に、
XPでは通常時でも半々ぐらいで直接コールバックに来るみたいです。
また、XPで直接コールバックに来た場合、
DefWindowProcをしない場合に、メッセージループにも来てくれるみたいです。
876
名前:
866
:2007/05/07(月) 22:15:49
// Call Workbooks.Add() to get a new workbook...
IDispatch *pXlBook;
{
VARIANT result;
VariantInit(&result);
AutoWrap(DISPATCH_PROPERTYGET, &result, pXlBooks, L"Add", 0);
pXlBook = result.pdispVal;
}
この後です。pXlBook を使ってどうAutoWrapを使えばいいのかが分かりません。
ブック.Worksheets(xxx).xxxxxxxx
877
名前:
デフォルトの名無しさん
:2007/05/07(月) 22:19:35
>>875
同一スレッド内で UpdateWindow の類が発生したときには直接コールバックに来る。
他スレッド(プロセス)からの場合はどうだったか覚えてない。
ウィンドウが Activate/Deactivate されたときの再描画の挙動も普段の WM_PAINT とは
違っていたような記憶もある。
878
名前:
867
:2007/05/07(月) 22:33:47
>>877
>Activate/Deactivate
自分も違うような感じがしていました。
もう一度実験してみます。
879
名前:
869
:2007/05/07(月) 22:52:06
このオブジェクトは大きな流れとして
Application → Workbooks → Workbook → Worksheets → Worksheet
とある。
んでこれ・・・
AutoWrap(DISPATCH_PROPERTYGET, &result, pXlBooks, L"Add", 0);
pXlBookのAddメソッドを、AutoWrapという補佐関数を介して呼んでいる。
なお、Addメソッドの結果は、追加した新しいブックのインターフェイスポインタが入ってる。
(Workbook& Workbooks.Add()な感じで、結果はresultにある)
メンバ一覧
http://msdn2.microsoft.com/ja-jp/library/microsoft.office.interop.excel.workbooks_members
(VS.80).aspx
しかし、DISPATCH_PROPERTYGETとは言うけど、Addはメソッドだよなー
結果、pXlBookには、いい値が入ってる?
880
名前:
デフォルトの名無しさん
:2007/05/07(月) 23:19:32
WindowsMediaPlayerのパス位置をAPIで取得したいのですが、
どうやればできるでしょうか?
マイドキュメントとかはSHGetSpecialFolderLocationで取得できましたが、
アプリ個別は絶対パスで指定方法しか使えませんか?
よろしくお願いします。
881
名前:
デフォルトの名無しさん
:2007/05/07(月) 23:25:47
COMなレジストリを探索するのはどう?
882
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:00:18
PATHにないのに、startやファイル名を指定して...で起動できるものは
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\
の下にwmplayer.exeがあるよ
883
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:06:36
その中を漁ると、消したはずのエロゲーのパスとかが残っていて、他人の環境で確認すると楽しいよ。
884
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:12:27
>>880
playerを起動させて、プロセス一覧から取ってくるとか。
ユーザが入力しなくていい分、楽かもしれない。
885
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:18:15
calc, notepadみたいに、Shellでwmplayerって打てば開くんやね
886
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:24:37
>>882
LoadLibraryに"wmplayer"でパスを取る解法もあるのか
887
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:27:32
システムドライブ+\Program Files\Windows Media Player\wmplayer.exe
888
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:30:18
16、24、32、48の各サイズを含むアイコンから
ExtractIconExで取得される
小さいアイコンは16×16と24×24で
大きいアイコンは32×32になるのでしょうか?
DrawIconExでアイコンハンドルをhIconSmallにして、サイズを16より大きくすると
24×24のアイコンが表示されます。
また、ハンドルをhIconLargeにし、サイズを32より大きい値を指定すると
32×32のアイコンが拡大されて表示されてしまいます。
たとえばサイズ16のアイコンを24に拡大して表示とか
サイズ48のアイコンの表示が出来ません。
分かりにくくて申し訳ありませんが、
分かる方いたらお願いします。
889
名前:
デフォルトの名無しさん
:2007/05/08(火) 00:35:26
LoadImage でサイズ指定してロードしたらどう?
890
名前:
デフォルトの名無しさん
:2007/05/08(火) 01:09:32
>>882
へー、880じゃないけどすごく参考になった。サンクス
891
名前:
デフォルトの名無しさん
:2007/05/08(火) 01:13:52
>>889
すいません、説明が足りませんでした。
dllやexe, iclなどからのロードもあるので
アイコンインデックスを指定する必要があったので
ExtarctIconExを使ってました。
892
名前:
デフォルトの名無しさん
:2007/05/08(火) 03:24:12
>>882
環境変数と引用符がある場合があるので注意
http://scripting.cocolog-nifty.com/blog/2007/03/path_367f.html
893
名前:
866
:2007/05/08(火) 05:43:59
>>866
,869,876,879
aaaa.bbbb
↓
AutoWrap(DISPATCH_PROPERTYGET, NULL, aaaa, L"bbbb", 0);
aaaa.bbbb(cccc)
↓
AutoWrap(DISPATCH_PROPERTYGET, NULL, aaaa, L"bbbb", 1, cccc);
aaaa(2).bbbb
は出来ないのでしょうか?
894
名前:
デフォルトの名無しさん
:2007/05/08(火) 08:10:53
>>893
志村!
itemプロパティ
895
名前:
880
:2007/05/08(火) 08:47:01
いろいろな方法があるのですね。
皆さんのおかげで解決できそうです。
ありがとうございました。
896
名前:
デフォルトの名無しさん
:2007/05/08(火) 09:44:37
指定したテキスト(ローマ字とか)をしゃべらせるモジュールって
MS系であります?
897
名前:
デフォルトの名無しさん
:2007/05/08(火) 10:01:11
MSのSAPIと、それを使ったやつってこと?
898
名前:
デフォルトの名無しさん
:2007/05/08(火) 16:32:55
Win32APIで、猫の本見ながらやってるのですが、
どうしてもBITMAPが表示されません。ソースは↓です!
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3952.txt
どうやらLoadBitmapでエラーが出てるようなのですが・・・。
理由が良く分かりません。助けて管あfじえじそjふぃおあjふぁお
899
名前:
デフォルトの名無しさん
:2007/05/08(火) 16:38:52
もしもLoadBitmap()でエラーが出てるなら、ソースじゃなくてリソースファイルのほうの問題だ
リソースのほうで、"MYBMP"となってるか?
もし、ダブルクオート無しの MYBMP になってるなら、
LoadBitmap(hInst, MAKEINTRESOURCE(MYBMP));
こうしてみ
900
名前:
デフォルトの名無しさん
:2007/05/08(火) 16:40:01
>>898
追記
リソースファイル↓
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3953.txt
901
名前:
デフォルトの名無しさん
:2007/05/08(火) 16:42:40
>>899
MAKEINTRESOURCE(MYBMP)にしたら出来ました!
ありがとうございます!
MAKEINTRESOURCE・・・調べてみます!
902
名前:
デフォルトの名無しさん
:2007/05/08(火) 17:32:56
ビットマップ上にTextOutで文字を書いたり、
エディットコントロールを置いたりすると、文字の背景が白(デフォルト)に
なると思うのですが、これを透過して後ろのビットマップを見えるように
することは可能でしょうか?
903
名前:
デフォルトの名無しさん
:2007/05/08(火) 17:39:02
えっきすおあ
904
名前:
デフォルトの名無しさん
:2007/05/08(火) 17:46:24
TextOut 側は SetBkMode(... TRANSPARENT) でなんとか
コントロール側は… WS_EX_LAYERED する?
905
名前:
デフォルトの名無しさん
:2007/05/08(火) 17:55:23
>>903
BitBltの最後の引数のところですか?SRCINVERTでXORとったら
BMPが真っ白になりました。まぁ当たり前なのですが・・・。
CreateWindow()の中で背景とXORを取れるようなのがあるのでしょうか?
906
名前:
デフォルトの名無しさん
:2007/05/08(火) 18:02:49
>>905
ありません。
WS_TRANSPARENT にして WM_PAINT 時に上書きする程度。
あるいは SetWindowRegion でくりぬく
907
名前:
デフォルトの名無しさん
:2007/05/08(火) 18:04:33
(背景 AND マスク) XOR 文字
908
名前:
デフォルトの名無しさん
:2007/05/08(火) 18:25:42
TextOutについては
>>904
さんので上手くいきました。
CreateWindowEx()にかえてWS_EX_LAYEREDしたら、文字も消えますね。
結構分からないこと多いので
>>906-907
について調べてみます・・・
909
名前:
デフォルトの名無しさん
:2007/05/08(火) 18:31:52
>>908
コントロール側を Layered Window にって意味で書いたが… 正解かどうか微妙
BitBltしてる側の window style でどうこうできる代物ではないのは確実だと思われ。
# SetWindowLong(コントロール側wnd, WS_EX_LAYERED) して SetLayeredWindowAttributes(コントロール側wnd)
910
名前:
デフォルトの名無しさん
:2007/05/08(火) 18:38:50
WS_EX_LAYEREDはWS_CHILDは無理
911
名前:
デフォルトの名無しさん
:2007/05/08(火) 18:42:29
コントロールをサブクラス化して、WM_PAINTをがんばる
912
名前:
909
:2007/05/08(火) 18:44:56
>>910
ありがと。 WS_CHILD 相手はダメであったかー
913
名前:
デフォルトの名無しさん
:2007/05/08(火) 19:15:51
簡易切り替え有効状態のXPまたはvistaで、ユーザー名とパスワードがわかってる
別のユーザー(未ログオン状態)にAPIだけで切り替えって無理ですかね。
すでにログオンしてるならWinStationConnect()で切り替えられるってとこまでは何とか
なったんだけど、未ログオンのユーザーのログオンを自動化する方法が解らなくて・・・
というか方法無さげ?
914
名前:
デフォルトの名無しさん
:2007/05/08(火) 19:41:26
フックってあの赤くて毛むくじゃらで頭にプロペラがついたやつ?
915
名前:
デフォルトの名無しさん
:2007/05/08(火) 19:47:38
>>914
135
246R
↑これ
916
名前:
デフォルトの名無しさん
:2007/05/08(火) 20:04:58
WM_INITDIALOGの反対はWM_DESTROYとWM_CLOSEどっち
917
名前:
デフォルトの名無しさん
:2007/05/08(火) 20:18:31
どっちも違う
918
名前:
デフォルトの名無しさん
:2007/05/08(火) 20:21:17
多分 WM_CLOSE
呼び出されるタイミングで、まだ 子供window が生き残ってるから
WM_INITDIALOG は子供window が出来上がった後に来るしね
919
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:09:01
子供window
920
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:18:52
child window の直訳と考えれば別に間違ってるわけでもない
921
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:20:11
出来た子供がオスかメスかはどう判断すればいいの?
922
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:23:12
ちんこ見ればいい
923
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:24:41
BOOL GetWindowSex( HWND hwnd, LPWINSEX lpWinSex );
書いてて虚しくなった
924
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:30:41
Win3.1まではWINS構造体
32bit時代からはWINSEX構造体
925
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:44:37
FOX★公認!!!
俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
http://wwwww.2ch.net/test/read.cgi/news4vip/1178602852/
1. ポーランド 139,797,680
2. チリ 137,040,439
3. ★日本 86,475,213★
4. イスラエル 80,930,530
5. スロベニア 57,137,042
6. フィンランド 40,857,499
石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である
・戦場
http://www.clickclickclick.com/default.asp
・まとめサイト
http://www33.atwiki.jp/clickvip/
926
名前:
デフォルトの名無しさん
:2007/05/08(火) 21:59:59
>>887
せめてProgram Filesの位置はSHGetFolderPathで取ろう
927
名前:
デフォルトの名無しさん
:2007/05/08(火) 22:52:25
実行ファイルのアイコンを設定するにはどうすればいいんですか?
ウィンドウの左上のアイコンは変えれたのですが・・・
928
名前:
デフォルトの名無しさん
:2007/05/08(火) 22:54:53
>>925
BitBlt() じゃなくて StretchBlt() 使えって。
929
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:06:07
じゃあこれから子ウィンドウの事は子供windowって言おうぜwwwwwwwwwwwwwww
930
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:15:53
>>929
んじゃ親ウインドウは、大人ウィンドウかww
931
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:27:21
>>918
WM_DESTROYでも子ウィンドウが生きてることは保証されてるぞ
>>927
エクスプローラーでは一番若いIDのアイコンが表示される
932
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:31:15
何かおばちゃん細胞みたいなノリだな。
933
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:33:25
親ウィンドウが、ダイアログボックスとかを開いている状態で、
親ウィンドウにSendMessageはできるが、
PostMessageができない状態であるか
調べるやり方がありましたら教えてください。
934
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:35:11
EnableWindowでいいんじゃね?
935
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:36:01
IsWindowEnabledだ。
936
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:37:01
>>933
モーダルダイアログ開いててもPostMessage出来るぞ
937
名前:
デフォルトの名無しさん
:2007/05/08(火) 23:55:09
>>931
それで、アイコンが変わらなかったのか・・・
ありがとうございました!無事解決しました。
938
名前:
デフォルトの名無しさん
:2007/05/09(水) 00:12:13
>>937
更新タイミングの自由度は低いがアイコンハンドラを作ればエクスプローラ上での
実行形式ファイルのアイコンも変更可能だぞ。
939
名前:
933
:2007/05/09(水) 00:14:08
>>934-936
ありがとうございます。
IsWindowEnabledでいけそうです。
後、MessageBoxはモーダルダイアログですかね。
第一引数をHWND、NULLどちらの場合でも、
WM_PAINTがメッセージループには来てくれないみたいです。
InvalidateRectをしても直接コールバックの方に来てしまいます。
940
名前:
デフォルトの名無しさん
:2007/05/09(水) 00:44:41
>>939
MessageBoxでは内部でメッセージループが回ってるんだよ
941
名前:
デフォルトの名無しさん
:2007/05/09(水) 00:45:10
UpdateWindowしてないか
942
名前:
933
:2007/05/09(水) 01:03:39
>>940
>>941
少し理解できました。
UpdateWindowはしていません。InvalidateRectはしています。
UpdateはSendMessage(WM_PAINT)、InvalはPostMessage(WM_PAINT)
だと思うので、意図したメッセージループに来てほしいのですが、
MessageBox独自のメッセージループに移行してしまうので、
処理が変わってしまう感じですかね。
943
名前:
デフォルトの名無しさん
:2007/05/09(水) 01:23:14
>>942
InvalidateRectは無効領域を追加するだけ。
無効領域があり、かつメッセージキューにメッセージが無くなったときに
システムはWM_PAINTを生成する。
944
名前:
933
:2007/05/09(水) 01:44:32
>>943
なるほど、ありがとうございます。
945
名前:
デフォルトの名無しさん
:2007/05/09(水) 03:11:07
>>47
linux自体Solarisや*BSDから見ればカスなんだが
946
名前:
デフォルトの名無しさん
:2007/05/09(水) 03:23:02
>>945
よう、カス
947
名前:
デフォルトの名無しさん
:2007/05/09(水) 08:01:47
僕バッカー!
948
名前:
デフォルトの名無しさん
:2007/05/09(水) 14:14:25
>>942
そこらへんのメッセージループでもなにか特定の処理を行いたい場合には、
ローカルフックを使うのが簡単。dllもいらないし。
949
名前:
デフォルトの名無しさん
:2007/05/09(水) 16:03:32
アイコン入りのDLLからのアイコン画像を取得する方法を教えてください。
これ
http://ringonoki.net/s-shot/icon/khre.png
みたいに32x32x8のように色とサイズの情報を取得したいです。
950
名前:
デフォルトの名無しさん
:2007/05/09(水) 16:50:08
>>946-947
バッカス
951
名前:
デフォルトの名無しさん
:2007/05/09(水) 17:03:51
>>949
http://www.google.co.jp/search?q=DLL+EnumResourceNames
952
名前:
デフォルトの名無しさん
:2007/05/10(木) 01:37:55
>>
ありがとうございます。やってみます。
953
名前:
デフォルトの名無しさん
:2007/05/10(木) 04:15:56
>>951
EnumResourceNamesの第1引数に指定するHMODULEはどうやって取得すればよいですか?
LoadLibraryでHMODULEを取得しようとしましたがshell32.dllではエラーになり、
APPWIZ.DLLではLoadLibraryは成功しましたがEnumResourceTypesがTRUEを返しました。
954
名前:
デフォルトの名無しさん
:2007/05/10(木) 07:41:33
ググレカス
955
名前:
デフォルトの名無しさん
:2007/05/10(木) 07:57:30
>>953
> LoadLibraryでHMODULEを取得しようとしましたがshell32.dllではエラーになり、
エラーとは何か?
> APPWIZ.DLLではLoadLibraryは成功しましたがEnumResourceTypesがTRUEを返しました。
TRUEを返すと何か問題が?
956
名前:
デフォルトの名無しさん
:2007/05/10(木) 08:01:56
CreateFile の hTemplateFile って使えないの?
↓のようにやってもtest.txtの属性が、test2.txtにはコピーされないみたい。
HANDLE hFrom = ::CreateFile("c:\\test.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
HANDLE hTo = ::CreateFile("c:\\test2.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, hFrom);
::CloseHandle(hFrom);
::CloseHandle(hTo);
>[in] Handle to a template file, with the GENERIC_READ access right. The template file supplies file
>attributes and extended attributes for the file being created. This parameter can be NULL.
最後の一文って一体。。。
957
名前:
デフォルトの名無しさん
:2007/05/10(木) 08:15:28
俺も使ったことないな、最後の引数
958
名前:
デフォルトの名無しさん
:2007/05/10(木) 15:26:38
Explorerの右上の旗のロゴを隠したいのですが、
SetWindowPosやShowWindowで隠そうとしても、枠が残ってしまいます。
専用の関数みたいなものがあるのでしょうか?
959
名前:
デフォルトの名無しさん
:2007/05/10(木) 15:39:27
>>958
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Explore/ShellBrowser
ITBarLayoutのアドレス0x10のバイトの下位3bit目をオフ
960
名前:
デフォルトの名無しさん
:2007/05/10(木) 15:41:35
下位3bit目じゃなくて下位4bit目だった。ようするに0x08
961
名前:
デフォルトの名無しさん
:2007/05/10(木) 15:54:00
>>960
できました、ありがとうございます。
962
名前:
デフォルトの名無しさん
:2007/05/10(木) 21:42:34
質問です
HTMLのFORMタグでSUBMITすると何も指定していなければ
FORMのACTIONで指定したURL等に
?---=---&___=___と付とついて送信されますよね?
その時日本語が値のときにエンコードされているように見えるのですが、
これはAPIとして提供されている機能でしょうか?
そうであればAPI名を教えてくれませんか?
963
名前:
デフォルトの名無しさん
:2007/05/10(木) 21:43:13
そんなWin32APIはありません。
964
名前:
デフォルトの名無しさん
:2007/05/10(木) 21:50:59
METHOD=GET の話か
まあURLエンコードでググれ
965
名前:
デフォルトの名無しさん
:2007/05/10(木) 22:02:44
IMultiLanguageインターフェイスのConvertStringメソッドとかあるけど、
ここじゃスレ違いかもね
966
名前:
デフォルトの名無しさん
:2007/05/10(木) 22:21:50
BitBltについて質問です。
転送元と転送先が同じDCの場合でも、この関数はちゃんと動く保障はありますか?
967
名前:
デフォルトの名無しさん
:2007/05/10(木) 22:39:33
>>966
厳密にはない。
GetDeviceCaps関数のRASTERCAPSで確認。
968
名前:
デフォルトの名無しさん
:2007/05/10(木) 23:41:11
WINDOWPLACEMENTのshowCmdあたりをいぢってて質問。
最大化してたウィンドウが最小化したあと、元の状態に戻すにはどうすればよいですか?
SW_RESTOREだと最大化状態が解除されてしまうので。
969
名前:
デフォルトの名無しさん
:2007/05/11(金) 00:50:22
Windows Picture and Fax ViewerをCreateProcessで実行したいのですが、
notepad,mspaintのような起動方法は可能でしょうか?
970
名前:
デフォルトの名無しさん
:2007/05/11(金) 01:20:37
関連付けのレジストリを見れば分る
971
名前:
デフォルトの名無しさん
:2007/05/11(金) 01:21:04
時々エディットコントロールのボーダーが見えなくなったり、
エディットコントロールが見えなくなって下のBMP画像が出てきたりするバグで
困っています。これらはWM_PAINTで再描画された時に直るのですが、
むしろ、WM_PAINTで大きなBMP画像が毎回毎回再描画されているせいで
エディットコントロールの表示がおかしくなるのではないかと思ってます。
BMP画像は壁紙としてウィンドウと同じサイズのものを使用しているのですが、
WM_PAINTでことある毎に再描画せずにずっと表示させるようなことは可能なのでしょうか?
972
名前:
デフォルトの名無しさん
:2007/05/11(金) 05:35:42
システムを終了するときの終了オプションダイアログ(コンピューターの電源を切る)のような
完全なシステムモーダルなダイアログボックス、或いはウィンドウってどうやって作ればいいんでしょう?
ダイアログボックスにシステムモーダル属性を付けてもだめでしたorz
タイマーでフォーカスを取り返し続けるっていうのは無しで、なにかいい方法ありますか?
973
名前:
デフォルトの名無しさん
:2007/05/11(金) 06:20:01
HWndにNULLを入れて
974
名前:
デフォルトの名無しさん
:2007/05/11(金) 06:32:30
>>973
無理ですたorz
975
名前:
デフォルトの名無しさん
:2007/05/11(金) 07:24:03
グローバルフックしたら?
976
名前:
デフォルトの名無しさん
:2007/05/11(金) 07:28:52
システムモーダルつけてアド民では?
977
名前:
デフォルトの名無しさん
:2007/05/11(金) 08:06:40
システム乗っ取るようなものじゃないかそれ?
そんなお手軽に実現できていいのかなあ
978
名前:
972
:2007/05/11(金) 08:14:53
どうしても乗っ取りたいんです。
979
名前:
デフォルトの名無しさん
:2007/05/11(金) 08:47:58
濃そうだから海外のシステム八苦系のコミュで聞いたら?答えが出ると思うよ
980
名前:
デフォルトの名無しさん
:2007/05/11(金) 09:10:22
タイーホ!
981
名前:
デフォルトの名無しさん
:2007/05/11(金) 09:27:54
GINA?
982
名前:
デフォルトの名無しさん
:2007/05/11(金) 10:21:17
>>978
は騙りだから無視して
フリーのソフトで部屋にいない間、キャプチャーしてるんだけど(LiveCapture2ってソフトです)
デスクトップロックが効かないんですよね
それで、もし誰か侵入者がロックの掛かってないPCに触ったら(マウスが移動したら)
システムモーダルのダイアログを表示してパスワードを要求する、って感じでプログラムを作ってるわけです
多分もっといい方法があるんだろうけど、結構面白いからこれでやってみようかなぁと
どんなもんでしょうか
983
名前:
デフォルトの名無しさん
:2007/05/11(金) 10:27:22
誰か次スレ立てて
984
名前:
デフォルトの名無しさん
:2007/05/11(金) 10:27:57
>>981
NT,2000,XPなら正解。GinaのShellShutdownDialogあたりちゃうか。
>>982
やってみれば?OSのリストア何回かすることになると思うけどw。
985
名前:
デフォルトの名無しさん
:2007/05/11(金) 10:29:17
>>982
っ スクリーンセーバー
986
名前:
デフォルトの名無しさん
:2007/05/11(金) 13:09:53
982のやりたいことはスクリーンセーバーそのものだよなw
987
名前:
デフォルトの名無しさん
:2007/05/11(金) 14:00:42
>>971
>WM_PAINTでことある毎に再描画せずにずっと表示させるようなことは可能なのでしょうか?
それは無理。
WS_CLIPSIBLINGS とか WS_CLIPCHILDREN とかそのあたりをちゃんと理解して
適切に描画されるようにコードを直せば良い。
988
名前:
デフォルトの名無しさん
:2007/05/11(金) 14:22:29
>>982
俺も
>>985-986
に同意。
コアをスクリーンセーバーで作れば、OSのダイアログが利用できる。
スクリーンセーバーが稼働中に録画するような構造にすれば、
まさに君の望む挙動になるんでない?
問題はスクリーンセーバ稼働中にLiveCapture2というソフトが
ちゃんと裏で動いてくれるかどうかだけど。
そこがダメなら、そこを自作する方向に行くとか。w
仮に裏で動いてくれるなら、何も作る必要がないという事にならないか?
989
名前:
デフォルトの名無しさん
:2007/05/11(金) 17:15:45
CreateDesktop してみればどうかな。
スクリーンセーバーも別デスクトップで動作していたと思う。
990
名前:
デフォルトの名無しさん
:2007/05/11(金) 18:00:37
CreateDesktopしてもNT系ならCtrl+Alt+Delで解除されるよ。
パスワードかけるならスクリーンセーバーでOSに丸投げするか、GINAしかない。
991
名前:
デフォルトの名無しさん
:2007/05/11(金) 18:03:14
しかしGINAはVistaでは廃止されてしまった。
Vistaで同じことやるにはMSとShell Credential Providerの開発契約しないとだめぽ
992
名前:
デフォルトの名無しさん
:2007/05/11(金) 18:10:48
まじかよ・・・
993
名前:
デフォルトの名無しさん
:2007/05/11(金) 18:15:22
開発契約なんぞ必要なのか?サンプルも公開されてるのに?
ドキュメントもご丁寧に日本語化されてるけど。
ttp://msdn.microsoft.com/msdnmag/issues/07/01/CredentialProviders/default.aspx?loc=jp
994
名前:
デフォルトの名無しさん
:2007/05/11(金) 18:17:05
もういっちょ。
ttp://www.microsoft.com/downloads/details.aspx?familyid=B1B3CBD1-2D3A-4FAC-982F-289F4F4B9300&displaylang=en
995
名前:
デフォルトの名無しさん
:2007/05/11(金) 18:36:18
>>972
最大化したウィンドウ(タイトルバー無し、最上位)にデスクトップ画面を
描画して、そのウィンドウを親ウィンドウとしてダイアログを出せばいいんじゃね?
XPで終了ダイアログを出すと背景がだんだん白黒になっていくから
そういう仕組みでやってると思うけど。
996
名前:
デフォルトの名無しさん
:2007/05/11(金) 19:51:15
>>993-994
Vistaβの頃のSDKには「詳細は問い合わせて契約してくれ」みたいな英文はあった気がした。
正規版になって普通に一般公開されたのかね。
997
名前:
デフォルトの名無しさん
:2007/05/11(金) 20:21:34
デルファイでできたアプリケーションのダイアログウィンドウのハンドルについて質問です。
spy++では、親がTfrmMainというクラス名と判明しました
そこでGetWindowLongで親ハンドルを取得すると、親はTApplicationというクラス名でした。ここでもう整合性がないです
TApplicationの名前をもつハンドルを取得して、そのハンドルからダイアログハンドルを検索するためにFindWindowsExをしたのですが、Nullが返ってきました
いったいどんな親子関係なんでしょうか?
レスおながいします(´・ω・`)
998
名前:
デフォルトの名無しさん
:2007/05/11(金) 20:31:28
見えない親ウインドウがある。
999
名前:
デフォルトの名無しさん
:2007/05/11(金) 20:32:22
?2BP(222)
>>995
ホットキー止めないと。Alt+Tabとかで普通に抜けられる。
1000
名前:
デフォルトの名無しさん
:2007/05/11(金) 20:32:46
次スレ
Win32API質問箱 Build53
ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.