1 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:39:56 ] スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。 やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5 くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
75 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 06:05:51 ] >>72 環境勝手にいじれない(非開発の)PCではAPI使うのにofficeのVBAしかなかったりするんだよ… MSはPowerShell を優先度の高い更新に含めやがれ あるいは会社のPCをすべて2008にしてください
76 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 06:23:03 ] .NETは結局XPに標準搭載されなかったんだっけか
77 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 10:13:29 ] 標準搭載しなくていいよ
78 名前:デフォルトの名無しさん [2007/11/14(水) 11:30:13 ] ファイルだの日時をコピーもしくは変更するAPIを教えてください
79 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:09:27 ] SetFileTime GetFileTime
80 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:09:41 ] 日本語でおk
81 名前:78 [2007/11/14(水) 13:12:30 ] フォルダでした。 ところでこれってFATでも機能するのでしょうか?
82 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 13:33:53 ] 解説ぐらい読んで来い msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpsysinf/html/_win32_getfiletime.asp
83 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 14:56:30 ] SendMessageで書き直したいのですが、どのように書き直せばよいのか教えてください。 (VB2005です)↓ 'キーコード送信 Dim DownUp As Integer = 0 Dim Down As Integer = 1 Dim Up As Integer = 2 Private Sub KBD(ByVal KEY_CODE As Byte, ByVal 状態 As Integer, ByVal ms As Integer) Sleep(ms) If 状態 = 1 Then Call keybd_event(KEY_CODE, 0, 0, 0) ElseIf 状態 = 2 Then Call keybd_event(KEY_CODE, 0, &H2, 0) ElseIf 状態 = 0 Then Call keybd_event(KEY_CODE, 0, 0, 0) Call keybd_event(KEY_CODE, 0, &H2, 0) Else End If End Sub
84 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:09:01 ] keybd_eventがやってることはSendMessageじゃエミュレートできないと思うんだが
85 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:11:05 ] 場合による
86 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:14:41 ] キーイベントはポストだろ
87 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:16:27 ] ポストだとどんな感じですか?
88 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:19:42 ] マニュアル嫁
89 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 17:31:09 ] ポストはポストでも、マルチポストだろ
90 名前:デフォルトの名無しさん [2007/11/14(水) 21:50:10 ] いろんな方が質問されている内容ですがうまくいかないので質問させてください。 WS_EX_LAYERED、SetLayeredWindowAttributes、LWA_COLORKEY、IDB_CHRISTALについて 「定義されていない識別子です。」というエラーでコンパイルできません。 ソースは以下のサイトを見ながら書いています。 www.kumei.ne.jp/c_lang/sdk4/sdk_346.htm 環境はVC++6.0、OSはWindowsXP SP2です。 やってみたこと ・ServicePack6 の適用 ・Windows Server 2003 SP1 Platform SDK の PSDK-x86.exeをダウンロードしてインストール →C:\Program Files\Microsoft Platform SDK\Bin\Orca.Msi を実行 ・ソースに#include<WinUser.h> を追記 対処法がありましたら教えていただきたいです。
91 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 21:56:14 ] VC++のインクルードディレクトリの設定を変えろ。 新しいPlatform SDKのインクルードディレクトリを指すように。 winuser.hは昔も今もwindows.hの中でインクルードされるから、 自分でインクルードを明記する必要はない。
92 名前:デフォルトの名無しさん [2007/11/14(水) 22:33:26 ] VC++のディレクトリとPlatFormSDKのディレクトリで 階層構造が多少違うようなのですが、、、、 で、適当にやったらインクルードファイルがオープンできませんってなりました・・・。(;つД`) メニューのツール -> オプション -> ディレクトリ タブ の中の設定を変更したんですが違いました?
93 名前:90=92 mailto:sage [2007/11/14(水) 22:42:22 ] WS_EX_LAYERED については警告はでなくなりましたが 下記エラーが出ます。インクルードディレクトリの指定がマズイのでしょうか? error LNK2001: 外部シンボル "__imp__SetLayeredWindowAttributes@16" は未解決です
94 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:43:10 ] _WIN32_WINNTとかWINVERとかじゃね?
95 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:52:14 ] >>75 ExcelあるならスクリプトからExecuteExcel4MacroでCALL Win32API
96 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:05:20 ] >>93 インクルードパス同様、ライブラリパスも設定する必要があるぞ。
97 名前:90=92=93 mailto:sage [2007/11/14(水) 23:05:55 ] >>94 ソース冒頭で #define _WIN32_WINNT 0x0500 を指定しています。 WINVERというのが良くわかりませんが #define WINVER 0x0400 と指定したところではエラーの内容は変わらずでした。
98 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:12:44 ] >>97 つーかVC6で使えるSDKの最終バージョンって2003年2月ぐらいの奴じゃなかったっけ? 一応2003SDKとかも使えなくも無いがリンクエラー出ることあるからやめといた方がいいと思うぞ
99 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:16:43 ] >>93 ライブラリのパス
100 名前:90=92=93=97 mailto:sage [2007/11/14(水) 23:29:14 ] できました━━━━(゚∀゚)━━━━!!!!。 ありがとうございました。
101 名前:90=92=93=97=100 mailto:sage [2007/11/14(水) 23:44:52 ] >>98 ttp://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en ↑ これには ”Date Published: 5/2/2005 ”とあるようです。 このSDKはあんまり薦められないってことですか? 今回はこれでないと動かない代物だったので仕方ないですが 必要なければ使わないほうが良いのでしょうか?
102 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:46:11 ] タスクトレイのアイコン上でマウスホイールで操作したときに処理をすることを 考えているんですが、タスクトレイのアイコン上でマウスホイールを操作しても、 WM_MOUSEWHEELがとんできません。 WM_MOUSEWHEELをフックしても、タスクトレイのどのアイコン上なのか 識別する方法がわかりません。 NOTIFYICONDATAのhWndとかuIDを判別する方法ありませんか?
103 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:46:54 ] 今ならWindowsSDKだけで十分なような気も
104 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:49:38 ] >>102 状況がよくわからんけど・・・ タスクトレイから通知が来たときのLPARAMを見てみる
105 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:52:04 ] あ、違うか どのアイコンか判定したかったらShell_NotifyIconのAPIフックからしないと駄目な気が 通知メッセージはユーザー定義だからフックできんし WM_MOUSEWHEELは普通にタスクトレイが受け取ってるはず
106 名前:102 mailto:sage [2007/11/15(木) 00:13:14 ] >>105 レスどうもです。 えとですね。 自分のアプリで登録しているアイコンなんですよ。 タスクトレイのアイコン上で操作したときに、 例えば左クリックならばWM_LBUTTONDOWNは来るんですが、 マウスホイール操作のWM_MOUSEWHEELは来ないんです。 なので、WM_MOUSEWHEELをフックして処理しようかと思ったのですが、 自分のアプリで登録しているタスクトレイのアイコン上であるかどうかの 判別ってどうするんだ?と困っているところなのです。
107 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 01:24:41 ] >>101 そのページに書いてあるでしょ >This SDK does not support working with Microsoft Visual C/C++®, 6.0 as support for VC 6.0 has ended. >The last SDK that will work with VC 6.0 is the February 2003 Edition, you can order a CD on the fulfillment site. 2003年2月版でもXPSP1ぐらいまではサポートしてるので普通に使う分には困らないと思う
108 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:44:07 ] >>81 NT系ならFATでも使える。まだ9xサポートしてるのか?
109 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 06:19:56 ] >>95 知らなかった。ちょっと楽になる。サンクスですわ
110 名前:デフォルトの名無しさん [2007/11/15(木) 06:46:39 ] zipの圧縮、解凍をサポートするapi関数ってある? Jpegの伸縮のように、外部ライブラリ入れないとダメかな
111 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 08:09:45 ] なんでXPでzipfldr.dllなんてDLLが追加されたか考えれば分かるだろう
112 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 08:16:37 ] スレ違いだけど.NETならGZipStreamクラスある
113 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 08:49:12 ] zip圧縮解凍ライブラリなんてネット上に腐るほどあるだろ zipfldrを呼び出す方が遥かに面倒だと思うが
114 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 10:05:12 ] COM使ったことあれば、そう面倒でもないと思うが・・・まぁ人それぞれか
115 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 11:24:13 ] zipfldr.dllのCOMインターフェイスって公開されてたっけ? IShellFolder::GetUIObjectOfでIDropTargetを取得してD&Dをエミュレートして・・・とか考えたけど結構面倒な気が 他に方法あったらおせーて
116 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 11:56:30 ] rundll32.exe zipfldr.dll,RouteTheCall %zipfile% これか?ためしてないけど
117 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:05:42 ] CLSIDFromString("CompressedFolder",&clsid); CoCreateInstance(clsid,NULL,CLSCTX_ALL,IID_IStorage,(LPVOID*)&pStorage); pStorage->QueryInterface<IPersistFile>(&pPersistFile); pPersistFile->Load("zipファイル名",STGM_READWRITE|STGM_SHARE_EXCLUSIVE); てな感じ、足りないとこは脳内補完よろ あとはIStorageとIStreamの操作で中身読める。 書き込みは試したことないけど・・・、たぶん似たような手順でいけるとおもふ
118 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:10:27 ] それって rundll32.exe unzip32.dll,UnZipCommandLine "%1" と同レベルな気が
119 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:12:31 ] リロードしてなかった >>118 は>>116 へのレス >CLSIDFromString("CompressedFolder",&clsid); これって将来的に大丈夫なのかな? そんなモン気にするなってツッコミは無しで
120 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:21:32 ] 質問です。 SetWindowsHookEx でグローバルフック登録しているのですが、runas 等で別のユーザで起動したウィンドウへのメッセージがフックできないようです。 普通の (同じユーザ) ウィンドウへのメッセージはフックできています。 何か方法はありますか?
121 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:23:56 ] 別ユーザのウィンドウがフック出来たらセキュリティホール以外の何物でもないだろう ImpersonateLoggedOnUserとか使えばどうにかなるかも知れんが
122 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:27:09 ] 自分も昇格する
123 名前:120 mailto:sage [2007/11/15(木) 13:06:13 ] >>121 そういわれればそうですねぇ。 まあ、今回のは特殊用途なので権限は気にしなくていいのですが・・・ ImpersonateLoggedOnUser 知らなかったので調べます。
124 名前:110 [2007/11/15(木) 15:11:57 ] c++は使えないから、comとか無しで頼む 普通にapi関数を一本呼び出し(ループでも)で使えないの?
125 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:14:11 ] 無理だっつうの
126 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:15:27 ] もう自分でdeflate書け
127 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:18:37 ] >>124 例えCでもCOMは使えるぞ いったい何を言ってるんだ?
128 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:20:07 ] >>124 unzip32使え 嫌なら.net使え いずれにせよスレ違いだからもう来なくていいよ
129 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:20:30 ] (124は)CでCOMが使えない
130 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:25:45 ] 124では無いがCでCOMなんて面倒すぎるだろ 第1引数省略できねーしスマートポインタ使えねーしlpVtblとか一々書いてられるか
131 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:28:31 ] で、だから何?
132 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:30:40 ] 124みたいな奴がCでCOMなんかに手を出すとリークしまくりの糞プログラムにしかならんだろうという事だ
133 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:35:16 ] なるほど
134 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 22:58:01 ] >>110 一般公開されていないよ、MSのZIP解凍/圧縮は。 APIもCOMも。
135 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:04:43 ] このスレでいいのかどうか悩んだんですが 『Advenced Windows』を読む上で、Win32APIやOSの知識は前提になっているのでしょうか? C/C++は一通りやったけどWindowsプログラムは未経験という段階の人間が、 >>1 にある言葉を借りると「APIフックなど高度な事」が最終目標だという場合、 先に『プログラミングWindwos』などを読んでおくべきなのかどうかと思いまして。
136 名前:デフォルトの名無しさん [2007/11/16(金) 00:27:30 ] www.kumei.ne.jp/c_lang/sdk4/sdk_346.htm 上記のプログラムでCreateWindowExにてウィンドウスタイルを WS_OVERLAPPEDWINDOW としているのを WS_POPUP に置き換えるとウインドウが表示されなくなってしまうのですがどうしてでしょうか? 枠線が消えるのはわかりますが、表示されていたはずのピットマップまで消えてしまうので 納得できませんでした。 よろしくお願いします。
137 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:31:11 ] 基礎的なAPIの知識は必要。 最終的にAdvenced Windowsを買う「べき」なのは間違いないと思うけど入門には向かない。 4倍ぐらいの量と金額のEffectiveC++ or STLを入門として買うようなもの。 個人的には APIで学ぶWindows徹底理解 ちゅうのが激しくオススメ
138 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:31:46 ] どこでエラーが出てるか調べろ
139 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:33:44 ] 沢山のソースコードを読むほうがためになると思う。
140 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:53:01 ] >>139 に同意
141 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:07:23 ] >>137-139 アンカーつけて喋れw
142 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:18:33 ] はい
143 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:42:04 ] いいえ
144 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 01:47:24 ] はいえ
145 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 02:14:27 ] ないあるよ
146 名前:135 mailto:sage [2007/11/16(金) 02:17:40 ] >>137 分かりやすい解説、ありがとうございました。 おすすめいただいた書籍、目次見てたらおもしろそうなので、 是非目を通してみたいと思います。
147 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 05:04:23 ] >>136 CW_USEDEFAULTはWS_OVERLAPPEDでないと効果がない。 WS_POPUPだと単にサイズゼロのウィンドウが画面外に作成されてしまう
148 名前:デフォルトの名無しさん [2007/11/16(金) 11:22:25 ] TextOutで表示させる文字のフォントを変更したいのですが、 どのようにすればいいのでしょうか?
149 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 11:35:57 ] SelectObject
150 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 11:58:39 ] もっといえばCreateFont→SelectObject
151 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 12:04:38 ] スレ違いの場合は誘導をお願いします。 今、生DVDにデータを書き込むプログラムを作っています。理想は、時系列で増え続けるデータを direct recordingすることです。 ところがまず、Windows 2003 DDK添付のspti.cでWRITE DATA BUFFER operationがエラーコード2で 失敗する所ではまっています。 そもそも生DVDに対しては、spti.cでは書き込みは行えないのでしょうか?
152 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 13:33:13 ] _beginthreadex関数で、void*型の引数で文字列を渡したいんですけど _beginthreadex(NULL, 0, mythread, (void*)str, 0, (unsigned int*)&thID); でスレッド作成をして、スレッド内で char buf[256]; strcpy(buf, str); としていますが、上手く引数を受け取れません。 表示させてみると「フフフ…」となります。 strの部分を&strとしたり、色々試してみたのですが上手くいきません。 おとなしくグローバル変数で値を渡したほうがよいのでしょうか…。
153 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 13:41:33 ] 呼び出している側の領域が、相手のスレッドが動作する前に消失しているんだろ。 馬鹿がよくやる。
154 名前:デフォルトの名無しさん [2007/11/16(金) 16:55:25 ] よくわからないけど、とりあえずはキャストしないといけないんじゃない?
155 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 17:28:39 ] >>152 複数作成したりどうしてもグローバル変数使いたくないなら 動的に確保してやればいい ローカル変数のアドレスを渡すなんて問題外
156 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 18:43:29 ] プログラミングに慣れてないならスレッドなんかに手を出すのはやめとけよ ネット上のサンプルでも排他制御やアトミックオペレーションしてない、いい加減なソースが多いしな
157 名前:136 mailto:sage [2007/11/16(金) 20:11:06 ] >>147 また一つ賢くなれました。 ありがとうございました。
158 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 08:31:31 ] 助けて下さい。 次の物を作らなければなりません。 hp.jpdo.com/cc009/1/img/1718.jpg 図形は、単純なのですが、作り方が分かりません・・・ アドバイス・参考文献 宜しくお願いします。 出来れば優しい神降臨求む
159 名前:158 mailto:sage [2007/11/17(土) 08:39:59 ] i-bbs.sijex.net/imageDisp.jsp?id=gtrgtr&file=1195256319996o.jpg 上の画像は、出ないのでコチラ?
160 名前:158 mailto:sage [2007/11/17(土) 08:46:25 ] 画像は、サンプルです。実際は単純な○△◇等です。 言語は、Vidual c++ 6.0以降 ダイヤログから出発、ボタンを押すと各図形を表示 宜しくお願いします
161 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 08:53:38 ] 何が分かっていて、何がわからないの? CあるいはC++はわかるならプログラミングWindowsでも読め。
162 名前:158 mailto:sage [2007/11/17(土) 09:16:18 ] ダイアログからダイアログの飛ばし方が分からないです。 とばすのに必要なのは? ダイアログでも図形は、書けるものなのか? それに必要なのは? とりあえずこの2点の知識お願いします。
163 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 09:30:39 ] >ダイアログからダイアログの飛ばし方が分からないです。 ダイアログを親ウィンドウにしてダイアログを生成する >とばすのに必要なのは? お前のプログラミング知識 >ダイアログでも図形は、書けるものなのか? 描ける (書けるって何だよ) >それに必要なのは? お前のプログラミング知識
164 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 09:44:40 ] 宿題か >ダイアログからダイアログの飛ばし方が分からないです。 >とばすのに必要なのは? DialogBox msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_dialogbox.asp これだとダイアログリソースが必要になる CreateWindowExでも書けると言えば書ける www.sm.rim.or.jp/~shishido/mdialog.html こちらは普通にウィンドウを作るのでリソースは必要ない >ダイアログでも図形は、書けるものなのか? >それに必要なのは? 例示された奴をとりあえず書けって言われたら BeginPaint、EndPaint、GetStockObject、FillRect、LineTo、MoveToEx、SetPixel辺りで書くかな 訳分からなければWin32 API入門の30章あたりまで読め
165 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 10:49:57 ] やさしいインタネッツだな
166 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 11:03:22 ] ダイアログにその画像貼っとけ
167 名前:158 mailto:sage [2007/11/17(土) 11:36:02 ] >>164 様 他 有難う御座います・・・ 読んだけど、分け分から無いです。 取りあえず”Win32 API入門”を買って読みます。 必死なので、また来ます。 それでは、宜しくお願いします。
168 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 11:36:50 ] つーかMFCだろスレ違い
169 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 11:43:41 ] >>167 Win32 API入門って「サイト名」なんだけどね >>168 少なくとも164に上がってんのはほぼ全部API
170 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:05:01 ] リソースとして埋め込んだビットマップを 普通にファイルからビットマップ読み込んだ時のように CreateDIBSectionする方法って無いでしょうか? リソースとして埋め込んだビットマップで アルファブレンド等をしたいのでピクセル列が欲しいんです、W98SEです
171 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:10:19 ] とりあえず、LoadImageにLR_CREATEDIBSECTION使っとけばいいんじゃね? 暇なら、FindResourceから始める、という手もあるけど。
172 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:29:05 ] 今時98SEかよ
173 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:30:55 ] >>171 どうもありがとう、両方試してみます
174 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:38:48 ] アクティブなウインドウのファイル名を取得するコードを書いてます。 ネットではぴったりのコードがなく、つなぎ合わせで なんとかこんな感じでまとめたのですが、よくわからない のもあって、うまく動きません。 環境はBCB WinXPです。 /* //ttp://m--takahashi.com/bbs/pastlog/11800/11731.html 1) GetWindowThreadProcessId() で HWND から ProcessID を得る 2) OpenProcess() で ProcessID から hProcess を得る 3) EnumProcessModules() で hProcess から hModule を得る 4) hProcess / hModule を使って GetModuleFileNameEx() でヤッター!! */ DWORD dwPID; DWORD dwProcessID = GetWindowThreadProcessId(GetForegroundWindow(), &dwPID); DWORD ProcessIDs[1000]; /* プロセスIDの一覧 */ HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, 0, dwProcessID); DWORD ReturnSize; /* プロセスID一覧の取得結果のサイズ */ EnumProcesses(dwProcessID, sizeof(dwProcessID), &ReturnSize);//この行は? if(handle) { HMODULE hMod; DWORD size; char fname[MAX_PATH]; EnumProcessModules(handle, &hMod, sizeof(hMod) ,&size); GetModuleFileNameEx(handle, hMod, fname, sizeof(fname)); CloseHandle(handle); ShowMessage(fname); }
175 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:45:03 ] GetWindowThreadProcessIdの返り値はスレッドID