1 名前:デフォルトの名無しさん [2007/04/18(水) 01:54:51 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
856 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:34:29 ] >>855 さん @現在はテスト中ですので、キャッシュから取得に失敗した場合は何もしないようにしています A確認済みです。 B確認済みです。特定のアイコンのみが意図した通りの描画がされず、また、チェックサムを見る限りキャッシュデータ自体は問題ありませんでした。
857 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:36:34 ] >>856 Aは成功?Bは失敗?
858 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:46:47 ] いまいち>>851 の流れが見えん。 問1.HICONのキャッシュとは何? 独自フォーマットのデータ? 問2.吐き出させる直前の内容とは? exe.dlなどのモジュールに入ってるリソースそのものの事? 問3.キャッシュから得た内容でHICONを作成し描画する関数は何? CreateIconIndirectの事? 問4. >アイコンによって透明可に失敗しています >Winrarのアイコンだけが不透明にならない ここを詳しく
859 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:14:35 ] Alpha付き32ビットアイコンの予感
860 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:11:01 ] レス有り難うございます。 意見を頂けて大変恐縮です。 >>857 さん こちらでは動作上は成功と見ています >>858 さん 問1: 保存したいHICONをGetIconInfoで詳しい情報を取得した後に、カラーとマスクのビットをGetDIBBitsで取得します そして、取得した情報をキャッシュとして保存するようにしております。 問2: 直前の内容はカラー、マスクのピクセル情報です。ビットマップの画像ビットと同じですね(^^; 問3: その通りです。キャッシュから、カラー、マスクのピクセル情報を得た後、CreateIconIndirectでHICONを作成し、DrawIconで描画するようにしております 問4: Winrarのアイコンだけは本来透過される所が黒くなっていますorz カラーとマスクをそれぞれ別に描画させてみると、 カラーではきちんとWinrarの本が束ねられている所以外は黒く マスクでは、本が束ねられている所は黒く、それ以外は白くなっている事は確認済みです BitBltを用いるとうまく透過されるのですが、今度はBitBltでは別の問題が発生するという状態に・・・ 長文申し訳ありません
861 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:29:56 ] WinRARのアイコンは32bitカラーだったりしない?
862 名前:851 mailto:sage [2007/05/07(月) 01:55:06 ] >>861 さん 確認してみた所、32bitではありませんでした; それと、何とか解決することができましたorz GetDIBBitsを使わず、別の方法でビットを取得した所うまく行きました… 原因が全く分かりませんが、このまま作っていきたいと思います こんな質問に付き合って下さった皆様本当に有り難うございました。
863 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 02:35:08 ] >>862 CreateIconIndirectで使うマスクは2bitビットマップのはず。 16bitでなく2bitでキャッシュしてみたら? なんか解決しちゃったみたいだけど。
864 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 08:12:30 ] >>862 そうやね、可能性あるね。 使う色が違う他のアイコンにしたら、また問題が出るんではないかと
865 名前:デフォルトの名無しさん [2007/05/07(月) 11:24:07 ] >>863 アイコンのマスクビットマップは2bitじゃなくて高さ2倍の1bitじゃないか?
866 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:14:42 ] ttp://support.microsoft.com/kb/216686/ja ここを参考にExcelを操作するプログラムを作っているのですが Worksheets(2).Delete に相当することをやるにはどうしたらいいんでしょうか?
867 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 21:54:18 ] WM_PAINTについて、OSによってはメッセージループに来ず、 直接コールバックに来るとかなどの、 詳しい挙動が載っているサイトとかありましたら教えてください。
868 名前:866 mailto:sage [2007/05/07(月) 21:55:47 ] 環境 Win2000, Excel2000, VC++6, SDK
869 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:04:57 ] >>866 >>868 CLSIDFromProgID(L"Excel.Application", &clsid); こいつは、ProgIDからCLSIDを求めている。 んで、そのCLSIDからExcel.ApplicationインターフェイスのpXlAppを取得してる。 pXlAppからWorkbook伝いにWorksheetsを求めればいいんじゃない?
870 名前:869 mailto:sage [2007/05/07(月) 22:07:39 ] メソッドとかのノードがわからんだったら oleviewとかで調べてみてわ?
871 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:08:18 ] >>867 来ないから安心しろ 来るといったらせいぜいSendMessageした時くらいだろ
872 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:08:34 ] ×てわ ○ては
873 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:09:16 ] >>871 SendMessageはメッセージループから来るだろ・・・
874 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:09:59 ] >>873 MSDN嫁
875 名前:867 mailto:sage [2007/05/07(月) 22:13:59 ] >>871 自分が実験した感じでは、9xでは起動時に、 XPでは通常時でも半々ぐらいで直接コールバックに来るみたいです。 また、XPで直接コールバックに来た場合、 DefWindowProcをしない場合に、メッセージループにも来てくれるみたいです。
876 名前:866 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:19:35 ] >>875 同一スレッド内で UpdateWindow の類が発生したときには直接コールバックに来る。 他スレッド(プロセス)からの場合はどうだったか覚えてない。 ウィンドウが Activate/Deactivate されたときの再描画の挙動も普段の WM_PAINT とは 違っていたような記憶もある。
878 名前:867 mailto:sage [2007/05/07(月) 22:33:47 ] >>877 >Activate/Deactivate 自分も違うような感じがしていました。 もう一度実験してみます。
879 名前:869 mailto:sage [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にある) メンバ一覧 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 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:06:36 ] その中を漁ると、消したはずのエロゲーのパスとかが残っていて、他人の環境で確認すると楽しいよ。
884 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:12:27 ] >>880 playerを起動させて、プロセス一覧から取ってくるとか。 ユーザが入力しなくていい分、楽かもしれない。
885 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:18:15 ] calc, notepadみたいに、Shellでwmplayerって打てば開くんやね
886 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:24:37 ] >>882 LoadLibraryに"wmplayer"でパスを取る解法もあるのか
887 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:27:32 ] システムドライブ+\Program Files\Windows Media Player\wmplayer.exe
888 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 00:35:26 ] LoadImage でサイズ指定してロードしたらどう?
890 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 01:09:32 ] >>882 へー、880じゃないけどすごく参考になった。サンクス
891 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 01:13:52 ] >>889 すいません、説明が足りませんでした。 dllやexe, iclなどからのロードもあるので アイコンインデックスを指定する必要があったので ExtarctIconExを使ってました。
892 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 03:24:12 ] >>882 環境変数と引用符がある場合があるので注意 scripting.cocolog-nifty.com/blog/2007/03/path_367f.html
893 名前:866 mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 08:10:53 ] >>893 志村! itemプロパティ
895 名前:880 [2007/05/08(火) 08:47:01 ] いろいろな方法があるのですね。 皆さんのおかげで解決できそうです。 ありがとうございました。
896 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 09:44:37 ] 指定したテキスト(ローマ字とか)をしゃべらせるモジュールって MS系であります?
897 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 10:01:11 ] MSのSAPIと、それを使ったやつってこと?
898 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:38:52 ] もしもLoadBitmap()でエラーが出てるなら、ソースじゃなくてリソースファイルのほうの問題だ リソースのほうで、"MYBMP"となってるか? もし、ダブルクオート無しの MYBMP になってるなら、 LoadBitmap(hInst, MAKEINTRESOURCE(MYBMP)); こうしてみ
900 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:40:01 ] >>898 追記 リソースファイル↓ ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3953.txt
901 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 16:42:40 ] >>899 MAKEINTRESOURCE(MYBMP)にしたら出来ました! ありがとうございます! MAKEINTRESOURCE・・・調べてみます!
902 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:32:56 ] ビットマップ上にTextOutで文字を書いたり、 エディットコントロールを置いたりすると、文字の背景が白(デフォルト)に なると思うのですが、これを透過して後ろのビットマップを見えるように することは可能でしょうか?
903 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:39:02 ] えっきすおあ
904 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:46:24 ] TextOut 側は SetBkMode(... TRANSPARENT) でなんとか コントロール側は… WS_EX_LAYERED する?
905 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:55:23 ] >>903 BitBltの最後の引数のところですか?SRCINVERTでXORとったら BMPが真っ白になりました。まぁ当たり前なのですが・・・。 CreateWindow()の中で背景とXORを取れるようなのがあるのでしょうか?
906 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:02:49 ] >>905 ありません。 WS_TRANSPARENT にして WM_PAINT 時に上書きする程度。 あるいは SetWindowRegion でくりぬく
907 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:04:33 ] (背景 AND マスク) XOR 文字
908 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:25:42 ] TextOutについては>>904 さんので上手くいきました。 CreateWindowEx()にかえてWS_EX_LAYEREDしたら、文字も消えますね。 結構分からないこと多いので>>906-907 について調べてみます・・・
909 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:31:52 ] >>908 コントロール側を Layered Window にって意味で書いたが… 正解かどうか微妙 BitBltしてる側の window style でどうこうできる代物ではないのは確実だと思われ。 # SetWindowLong(コントロール側wnd, WS_EX_LAYERED) して SetLayeredWindowAttributes(コントロール側wnd)
910 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:38:50 ] WS_EX_LAYEREDはWS_CHILDは無理
911 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 18:42:29 ] コントロールをサブクラス化して、WM_PAINTをがんばる
912 名前:909 mailto:sage [2007/05/08(火) 18:44:56 ] >>910 ありがと。 WS_CHILD 相手はダメであったかー
913 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:15:51 ] 簡易切り替え有効状態のXPまたはvistaで、ユーザー名とパスワードがわかってる 別のユーザー(未ログオン状態)にAPIだけで切り替えって無理ですかね。 すでにログオンしてるならWinStationConnect()で切り替えられるってとこまでは何とか なったんだけど、未ログオンのユーザーのログオンを自動化する方法が解らなくて・・・ というか方法無さげ?
914 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:41:26 ] フックってあの赤くて毛むくじゃらで頭にプロペラがついたやつ?
915 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:47:38 ] >>914 135 246R ↑これ
916 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:04:58 ] WM_INITDIALOGの反対はWM_DESTROYとWM_CLOSEどっち
917 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:18:31 ] どっちも違う
918 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:21:17 ] 多分 WM_CLOSE 呼び出されるタイミングで、まだ 子供window が生き残ってるから WM_INITDIALOG は子供window が出来上がった後に来るしね
919 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:09:01 ] 子供window
920 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:18:52 ] child window の直訳と考えれば別に間違ってるわけでもない
921 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:20:11 ] 出来た子供がオスかメスかはどう判断すればいいの?
922 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:23:12 ] ちんこ見ればいい
923 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:24:41 ] BOOL GetWindowSex( HWND hwnd, LPWINSEX lpWinSex ); 書いてて虚しくなった
924 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:30:41 ] Win3.1まではWINS構造体 32bit時代からはWINSEX構造体
925 名前:デフォルトの名無しさん [2007/05/08(火) 21:44:37 ] FOX★公認!!! 俺たちのクリックで日本を一位にしようぜ!! “30年は日本に手は出せないな”という勝ち方をしたい 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 石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった 人間はさらに発展し兵器を使う戦争を始めた そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・ 皇国を勝利へと導くには貴様らの参戦が不可欠である ・戦場 www.clickclickclick.com/default.asp ・まとめサイト www33.atwiki.jp/clickvip/
926 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 21:59:59 ] >>887 せめてProgram Filesの位置はSHGetFolderPathで取ろう
927 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:52:25 ] 実行ファイルのアイコンを設定するにはどうすればいいんですか? ウィンドウの左上のアイコンは変えれたのですが・・・
928 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:54:53 ] >>925 BitBlt() じゃなくて StretchBlt() 使えって。
929 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:06:07 ] じゃあこれから子ウィンドウの事は子供windowって言おうぜwwwwwwwwwwwwwww
930 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:15:53 ] >>929 んじゃ親ウインドウは、大人ウィンドウかww
931 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:27:21 ] >>918 WM_DESTROYでも子ウィンドウが生きてることは保証されてるぞ >>927 エクスプローラーでは一番若いIDのアイコンが表示される
932 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:31:15 ] 何かおばちゃん細胞みたいなノリだな。
933 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:33:25 ] 親ウィンドウが、ダイアログボックスとかを開いている状態で、 親ウィンドウにSendMessageはできるが、 PostMessageができない状態であるか 調べるやり方がありましたら教えてください。
934 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:35:11 ] EnableWindowでいいんじゃね?
935 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:36:01 ] IsWindowEnabledだ。
936 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:37:01 ] >>933 モーダルダイアログ開いててもPostMessage出来るぞ
937 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:55:09 ] >>931 それで、アイコンが変わらなかったのか・・・ ありがとうございました!無事解決しました。
938 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:12:13 ] >>937 更新タイミングの自由度は低いがアイコンハンドラを作ればエクスプローラ上での 実行形式ファイルのアイコンも変更可能だぞ。
939 名前:933 mailto:sage [2007/05/09(水) 00:14:08 ] >>934-936 ありがとうございます。 IsWindowEnabledでいけそうです。 後、MessageBoxはモーダルダイアログですかね。 第一引数をHWND、NULLどちらの場合でも、 WM_PAINTがメッセージループには来てくれないみたいです。 InvalidateRectをしても直接コールバックの方に来てしまいます。
940 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:44:41 ] >>939 MessageBoxでは内部でメッセージループが回ってるんだよ
941 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 00:45:10 ] UpdateWindowしてないか
942 名前:933 mailto:sage [2007/05/09(水) 01:03:39 ] >>940 >>941 少し理解できました。 UpdateWindowはしていません。InvalidateRectはしています。 UpdateはSendMessage(WM_PAINT)、InvalはPostMessage(WM_PAINT) だと思うので、意図したメッセージループに来てほしいのですが、 MessageBox独自のメッセージループに移行してしまうので、 処理が変わってしまう感じですかね。
943 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 01:23:14 ] >>942 InvalidateRectは無効領域を追加するだけ。 無効領域があり、かつメッセージキューにメッセージが無くなったときに システムはWM_PAINTを生成する。
944 名前:933 mailto:sage [2007/05/09(水) 01:44:32 ] >>943 なるほど、ありがとうございます。
945 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 03:11:07 ] >>47 linux自体Solarisや*BSDから見ればカスなんだが
946 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 03:23:02 ] >>945 よう、カス
947 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 08:01:47 ] 僕バッカー!
948 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 14:14:25 ] >>942 そこらへんのメッセージループでもなにか特定の処理を行いたい場合には、 ローカルフックを使うのが簡単。dllもいらないし。
949 名前:デフォルトの名無しさん [2007/05/09(水) 16:03:32 ] アイコン入りのDLLからのアイコン画像を取得する方法を教えてください。 これ ringonoki.net/s-shot/icon/khre.png みたいに32x32x8のように色とサイズの情報を取得したいです。
950 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 16:50:08 ] >>946-947 バッカス
951 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 17:03:51 ] >>949 www.google.co.jp/search?q=DLL+EnumResourceNames
952 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 07:41:33 ] ググレカス
955 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 07:57:30 ] >>953 > LoadLibraryでHMODULEを取得しようとしましたがshell32.dllではエラーになり、 エラーとは何か? > APPWIZ.DLLではLoadLibraryは成功しましたがEnumResourceTypesがTRUEを返しました。 TRUEを返すと何か問題が?
956 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 08:15:28 ] 俺も使ったことないな、最後の引数
958 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:26:38 ] Explorerの右上の旗のロゴを隠したいのですが、 SetWindowPosやShowWindowで隠そうとしても、枠が残ってしまいます。 専用の関数みたいなものがあるのでしょうか?
959 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:39:27 ] >>958 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Explore/ShellBrowser ITBarLayoutのアドレス0x10のバイトの下位3bit目をオフ
960 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:41:35 ] 下位3bit目じゃなくて下位4bit目だった。ようするに0x08
961 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 15:54:00 ] >>960 できました、ありがとうございます。
962 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:42:34 ] 質問です HTMLのFORMタグでSUBMITすると何も指定していなければ FORMのACTIONで指定したURL等に ?---=---&___=___と付とついて送信されますよね? その時日本語が値のときにエンコードされているように見えるのですが、 これはAPIとして提供されている機能でしょうか? そうであればAPI名を教えてくれませんか?
963 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:43:13 ] そんなWin32APIはありません。
964 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 21:50:59 ] METHOD=GET の話か まあURLエンコードでググれ
965 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:02:44 ] IMultiLanguageインターフェイスのConvertStringメソッドとかあるけど、 ここじゃスレ違いかもね
966 名前:デフォルトの名無しさん mailto:age [2007/05/10(木) 22:21:50 ] BitBltについて質問です。 転送元と転送先が同じDCの場合でも、この関数はちゃんと動く保障はありますか?
967 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 22:39:33 ] >>966 厳密にはない。 GetDeviceCaps関数のRASTERCAPSで確認。
968 名前:デフォルトの名無しさん mailto:sage [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 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 01:20:37 ] 関連付けのレジストリを見れば分る
971 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 01:21:04 ] 時々エディットコントロールのボーダーが見えなくなったり、 エディットコントロールが見えなくなって下のBMP画像が出てきたりするバグで 困っています。これらはWM_PAINTで再描画された時に直るのですが、 むしろ、WM_PAINTで大きなBMP画像が毎回毎回再描画されているせいで エディットコントロールの表示がおかしくなるのではないかと思ってます。 BMP画像は壁紙としてウィンドウと同じサイズのものを使用しているのですが、 WM_PAINTでことある毎に再描画せずにずっと表示させるようなことは可能なのでしょうか?
972 名前:デフォルトの名無しさん [2007/05/11(金) 05:35:42 ] システムを終了するときの終了オプションダイアログ(コンピューターの電源を切る)のような 完全なシステムモーダルなダイアログボックス、或いはウィンドウってどうやって作ればいいんでしょう? ダイアログボックスにシステムモーダル属性を付けてもだめでしたorz タイマーでフォーカスを取り返し続けるっていうのは無しで、なにかいい方法ありますか?
973 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 06:20:01 ] HWndにNULLを入れて
974 名前:デフォルトの名無しさん [2007/05/11(金) 06:32:30 ] >>973 無理ですたorz
975 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:24:03 ] グローバルフックしたら?
976 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:28:52 ] システムモーダルつけてアド民では?
977 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 08:06:40 ] システム乗っ取るようなものじゃないかそれ? そんなお手軽に実現できていいのかなあ
978 名前:972 [2007/05/11(金) 08:14:53 ] どうしても乗っ取りたいんです。
979 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 08:47:58 ] 濃そうだから海外のシステム八苦系のコミュで聞いたら?答えが出ると思うよ
980 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 09:10:22 ] タイーホ!
981 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 09:27:54 ] GINA?
982 名前:デフォルトの名無しさん [2007/05/11(金) 10:21:17 ] >>978 は騙りだから無視して フリーのソフトで部屋にいない間、キャプチャーしてるんだけど(LiveCapture2ってソフトです) デスクトップロックが効かないんですよね それで、もし誰か侵入者がロックの掛かってないPCに触ったら(マウスが移動したら) システムモーダルのダイアログを表示してパスワードを要求する、って感じでプログラムを作ってるわけです 多分もっといい方法があるんだろうけど、結構面白いからこれでやってみようかなぁと どんなもんでしょうか
983 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 10:27:22 ] 誰か次スレ立てて
984 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 10:27:57 ] >>981 NT,2000,XPなら正解。GinaのShellShutdownDialogあたりちゃうか。 >>982 やってみれば?OSのリストア何回かすることになると思うけどw。
985 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 10:29:17 ] >>982 っ スクリーンセーバー
986 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 13:09:53 ] 982のやりたいことはスクリーンセーバーそのものだよなw
987 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 14:00:42 ] >>971 >WM_PAINTでことある毎に再描画せずにずっと表示させるようなことは可能なのでしょうか? それは無理。 WS_CLIPSIBLINGS とか WS_CLIPCHILDREN とかそのあたりをちゃんと理解して 適切に描画されるようにコードを直せば良い。
988 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 14:22:29 ] >>982 俺も >>985-986 に同意。 コアをスクリーンセーバーで作れば、OSのダイアログが利用できる。 スクリーンセーバーが稼働中に録画するような構造にすれば、 まさに君の望む挙動になるんでない? 問題はスクリーンセーバ稼働中にLiveCapture2というソフトが ちゃんと裏で動いてくれるかどうかだけど。 そこがダメなら、そこを自作する方向に行くとか。w 仮に裏で動いてくれるなら、何も作る必要がないという事にならないか?
989 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 17:15:45 ] CreateDesktop してみればどうかな。 スクリーンセーバーも別デスクトップで動作していたと思う。
990 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:00:37 ] CreateDesktopしてもNT系ならCtrl+Alt+Delで解除されるよ。 パスワードかけるならスクリーンセーバーでOSに丸投げするか、GINAしかない。
991 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:03:14 ] しかしGINAはVistaでは廃止されてしまった。 Vistaで同じことやるにはMSとShell Credential Providerの開発契約しないとだめぽ
992 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:10:48 ] まじかよ・・・
993 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:15:22 ] 開発契約なんぞ必要なのか?サンプルも公開されてるのに? ドキュメントもご丁寧に日本語化されてるけど。 ttp://msdn.microsoft.com/msdnmag/issues/07/01/CredentialProviders/default.aspx?loc=jp
994 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:17:05 ] もういっちょ。 ttp://www.microsoft.com/downloads/details.aspx?familyid=B1B3CBD1-2D3A-4FAC-982F-289F4F4B9300&displaylang=en
995 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 18:36:18 ] >>972 最大化したウィンドウ(タイトルバー無し、最上位)にデスクトップ画面を 描画して、そのウィンドウを親ウィンドウとしてダイアログを出せばいいんじゃね? XPで終了ダイアログを出すと背景がだんだん白黒になっていくから そういう仕組みでやってると思うけど。
996 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 19:51:15 ] >>993-994 Vistaβの頃のSDKには「詳細は問い合わせて契約してくれ」みたいな英文はあった気がした。 正規版になって普通に一般公開されたのかね。
997 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:21:34 ] デルファイでできたアプリケーションのダイアログウィンドウのハンドルについて質問です。 spy++では、親がTfrmMainというクラス名と判明しました そこでGetWindowLongで親ハンドルを取得すると、親はTApplicationというクラス名でした。ここでもう整合性がないです TApplicationの名前をもつハンドルを取得して、そのハンドルからダイアログハンドルを検索するためにFindWindowsExをしたのですが、Nullが返ってきました いったいどんな親子関係なんでしょうか? レスおながいします(´・ω・`)
998 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:31:28 ] 見えない親ウインドウがある。
999 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:32:22 BE:124224588-2BP(222)] >>995 ホットキー止めないと。Alt+Tabとかで普通に抜けられる。
1000 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:32:46 ] 次スレ Win32API質問箱 Build53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。