■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build13
251 名前:デフォルトの名無しさん :03/08/19 15:39
何故オーナードローを使いませんか。

252 名前:Windows GDIでの質問です :03/08/19 15:48
反転する線を描きたいのですが、どうすればいいでしょうか?

例えば、ある画像にRGB(255,255,25)で線を描くと、
白ではなく、元の画像とXORされる線を描きたいのです。
どなたか教えてください

253 名前:250 :03/08/19 15:53
>>251
いやぁ、このくらいなら、既存のものでチャキチャキ
終わらせたかったなと<(*´Д`)

オーナードローしかないですか…レスサンクスです。

254 名前:デフォルトの名無しさん :03/08/19 15:54
>>252 SetROP2(hdc, R2_XORPEN)

255 名前:252 :03/08/19 16:02
>>254
わーい、出来ましたー
ありがとですよ!!!

256 名前:デフォルトの名無しさん :03/08/19 17:35
何故カスタムドローを使いませんか。

257 名前:デフォルトの名無しさん :03/08/19 21:49
何故ケアルドローを使いませんか。

258 名前:デフォルトの名無しさん :03/08/19 22:25
子ウインドウは親ウインドウの終了を知ることは出来ますか?

259 名前:デフォルトの名無しさん :03/08/19 22:35
>>258
子供も道連れになるのでわかります。

260 名前:デフォルトの名無しさん :03/08/19 22:52
それは子ウィンドウにもWM_DESTROYが送られるという意味ですか?

261 名前:デフォルトの名無しさん :03/08/20 11:09
ShellExecuteで起動したアプリケーションをPostMessage等で終了させる方法を教えて下さい。


262 名前:_ :03/08/20 11:11
http://homepage.mac.com/yamazaki8

263 名前:_ :03/08/20 11:16
http://homepage.mac.com/yamazaki8/hankaku10.html

264 名前:デフォルトの名無しさん :03/08/20 18:23
CreatDCで作成したプリンタのデバイスコンテキストにTextOutで文字を描画して
BitBltでウインドウのデバイスコンテキストに転送して印刷プレビューを
ウインドウに表示させようとしているのですが表示されません。
手順を間違えてるいるのでしょうか?教えて下さい。

265 名前:デフォルトの名無しさん :03/08/20 19:05
プリンタのデバイスコンテキストからは転送できない。

266 名前:デフォルトの名無しさん :03/08/20 23:32
猫でも分かるプログラミングSDK編を勉強しているのですが
メニューを作る際、resource.rc、resource.hに記述して
コンパイルすると「.Debug/resource.resが開けません」
となってしまいます。これは何が原因なのでしょうか?

267 名前:デフォルトの名無しさん :03/08/20 23:39
そのディレクトリが無いからじゃないか?

268 名前:デフォルトの名無しさん :03/08/20 23:55
Win32 APIでキーボードやマウスの動きを自動化するプログラムを
作りたいのですが、どのようにすればいいのでしょうか?

269 名前:デフォルトの名無しさん :03/08/20 23:56
いえ、フォルダもファイルも存在しています

270 名前:デフォルトの名無しさん :03/08/20 23:58
>>266
プロジェクトにリソースファイルを加えてないとかw

271 名前:デフォルトの名無しさん :03/08/21 00:05
いえ、SourceFilisの下に確に入っています

272 名前:デフォルトの名無しさん :03/08/21 00:06
Filesですね。

273 名前:デフォルトの名無しさん :03/08/21 00:11
あれ?ワークスペースを開き直したら普通に出来ました。お騒がせしました。

274 名前:デフォルトの名無しさん :03/08/21 00:27
>>268
かなり勉強しないと無理臭い
勉強じゃないならば、FreeMacroってソフトを使ったら?

275 名前:デフォルトの名無しさん :03/08/21 12:42
CreateFile(...)で作成したファイルの途中以降のデータを切り捨てる方法を教えてください。
先頭から途中までのデータを新しいファイルに書き込むってのは無しの方向で。

SetFilePointer(hFile, 0x9613E, NULL, FILE_BEGIN);
CloseHandle(hFile);
これで0x9613E〜EOFまで切捨てられるかと思ってた。

276 名前:名無し@沢村 :03/08/21 12:50
>>275
SetEndOfFile()

277 名前:デフォルトの名無しさん :03/08/21 12:51
>>275
SetEndOfFile

関係ないがファイルマッピングでファイルサイズ伸張をバイト単位で綺麗に制御する方法を思いつかない

278 名前:275 :03/08/21 13:00
>>276-277
ありがd。
しかしヘルプのCreateFileの所にリンクくらい張っておいて欲しいな。
SetEndOfFileにはCreateFileのリンクあるのにさ・・・。

279 名前:デフォルトの名無しさん :03/08/21 18:29
>>278
SetFilePointerやWriteFileのとこにはリンク張ってあるし・・・

CreateFileで扱えるオブジェクトはファイルだけじゃないからなー



280 名前:268 :03/08/21 22:24
>>274
むー、そんなに難しいことなんですか?ちょっと考えが甘かったかな。
かなり趣味の領域なんですが、キーボードやマウス操作の自動化って
かなり面白そうだし実用性あるなーと思います。
やっぱりマクロじゃなくてプログラミングでやりたいですねー。

281 名前: :03/08/22 00:55
CSVファイルの読み込み・編集・保存等をしたいのですが参考になるHPってありますか?
またエクセルのセルのようなものを作ってそこに読み込ませたいのですが、どのコントロールを
使えばいいのでしょうか? VC++6.0使ってます
どなたか教えてくださいませm(_ _)m

282 名前:デフォルトの名無しさん :03/08/22 08:57
>>280
まずはフリーマクロというソフトを使ってみてください。難しいことは一切なし。非常に簡単。
どうしてでも気に入らなければプログラミングで。

やり方が推測できないようならばゼロから勉強して下さい
>>2の猫でもわかる〜を読んで


283 名前:デフォルトの名無しさん :03/08/22 11:55
>>268はキーボードやマウス操作を自動化したいんでなくて
キーボードやマウス操作の自動化するプログラムを組んでみたいって事だろ?
まあ他のソフトがどんな挙動してるか調べるにはFreeMacro使ってみて損はないけどな。

つうかそんなに難しくないと思うけどな。

284 名前:デフォルトの名無しさん :03/08/22 13:41
>>283
質問している内容から、質問者にはかなりハードルが高そうですね

285 名前:デフォルトの名無しさん :03/08/22 13:49
とりあえずJournalPlaybackとか挙げておけば?

286 名前:デフォルトの名無しさん :03/08/22 14:02
誰も触ってないのにキーボードがカタカタタイプされたり、マウスが移動しているとすると、
既にホラーだと思うのだが

287 名前:デフォルトの名無しさん :03/08/22 14:04
うちのマウスなら勝手に動くぞ

288 名前:デフォルトの名無しさん :03/08/22 14:06
>>287
光学マウスとかで、カーソルが勝手に動くことがあるみたいなオチ?

289 名前:デフォルトの名無しさん :03/08/22 14:15
マウスを掴もうとすると、嫌がって逃げたり

290 名前:デフォルトの名無しさん :03/08/22 14:22
_beginthreadex()の戻り値をHANDLEにキャストして
WaitForXXX()系のAPIに渡す事って正当な行為なんですか?

そんな事が出来るみたいな記事をどっかのHPで見たのでやってみたんですが、
スレッドハンドルがシグナル状態になってもWaitForSingleObject()が制御返してくれません。

291 名前:デフォルトの名無しさん :03/08/22 14:32
>>289
手を洗え

292 名前:290 :03/08/22 14:38
_beginthreadex()の戻り値でWaitForSingleObject()使えるみたい。
ヘルプに書いてあった。

んじゃ下のコードでWaitForSingleObject()が制御を返してくれないのはなぜ?

hThread = (HANDLE)_beginthreadex(NULL, 0, ThreadEntry, (void*)this, CREATE_SUSPENDED, &uiThreadID);
SetEvent(hThread);
WaitForSingleObject(hThread, INFINITE);


293 名前:デフォルトの名無しさん :03/08/22 14:54
>SetEvent(hThread);
これは何?

294 名前:290 :03/08/22 15:09
>>293
SetEvent(hThread);でハンドルをシグナル状態にして、
WaitForSingleObject()がすぐに制御を返すかのテスト。
でもこれCreateEvent()で作成したハンドルでないとダメなんかね。

295 名前:デフォルトの名無しさん :03/08/22 15:29
SetEvent が対応できるハンドルは、イベントのハンドルだけ。

296 名前:デフォルトの名無しさん :03/08/22 20:53
すみません。
GetGlyphOutlineでは下線や打消し線は無視されるのでしょうか?

297 名前:デフォルトの名無しさん :03/08/22 21:24
CreateFileを使うと
2000,XPだと正常にファイルができるんですが
Meだとファイルができません
使えないんでしょうか?

298 名前:デフォルトの名無しさん :03/08/22 21:24
そうなっているんなら、そうだろ。
そんな修飾付きのアウトライン返されても困ると思うがね。

299 名前:デフォルトの名無しさん :03/08/22 21:45
>>297
Windows9xでは使えない引数使ってるだろ

300 名前:デフォルトの名無しさん :03/08/22 22:41
>>281
> どのコントロールを使えばいいのでしょうか?

はぁ ? ほんとに VC++6.0使ってるの ?
VB の間違いとか言う落ちじゃないよね ?

まあどちらにしてもスレ違いだよ。

301 名前:281 :03/08/23 01:55
>>300
VBだとそういうのがあるってのはわかってるんですが、VCでやろうと思ってるんですよ

スレ違いですか?だったらスミマセン
一応APIに関することだと思ったのですが・・・

302 名前:デフォルトの名無しさん :03/08/23 06:14
>>301
> 一応APIに関することだと思ったのですが・・・

マジでか ?

> CSVファイルの読み込み・編集・保存等をしたいのですが参考になるHPってありますか?
ReadCSVFile(), EditCSVFile(), SaveCSVFile() とかの API があるとでも思ってんのか ?
CSV ファイルと言ってもいろいろバリエーションがあるのは知ってるのか ?
(話の流れから、エクセル互換か ?)

またMFC も使わずに...
> またエクセルのセルのようなものを作ってそこに読み込ませたいのですが、どのコントロールを
と言うことをしたい漢なのか ?
だったらその「エクセルのセルのようなもの」ってどういうものかを説明すれば、やさしいお兄様方が適切な API を教えてくれるかもしれない。
ただし、やりたいことによるけどそれなりのコード量になると思うよ。

303 名前:デフォルトの名無しさん :03/08/23 09:45
VB6使ってます。Textout()でPictureBoxの上に文字列を
表示してるんですが、その文字列ににアンチエイリアスを
かけて出力する方法が分かりません(;´Д`)

検索するとGetGlyphOutline()を使えば出来ると見かけますが、
全然使い方がわからず困ってます。GetGlyphOutline()以外で
実現する方法があるなら、何方かご教授頂ければ幸いです。

304 名前:デフォルトの名無しさん :03/08/23 12:01
>>303
ぐぐればGetGlyphOutline()の説明なんていくらでも出てくる。
GetGlyphOutline()以外の実装としては文字をグラフィックとして扱えば、
いくらでも方法はあると思う。
一番簡単なのは大きめのフォントで描画して縮小だな。

305 名前:デフォルトの名無しさん :03/08/23 12:07
DragQueryFile()でウィンドウに対しドロップされたファイルの個数とそれぞれのフルパスを手に入れることが出来るのですが、
どこからドロップされたのかを知る術が分かりません。

c:\hoge\hage\ というディレクトリ構成があると仮定して、
hage内のファイルをドロップした場合におけるhageを検出したいのです。

306 名前:デフォルトの名無しさん :03/08/23 12:13
>>305
フルパスが分かれば、
どこからドロップされたか分かりそうなもんだが・・・

307 名前:305 :03/08/23 12:20
ファイルがドロップされた場合は親ディレクトリがドラッグ位置だが、
ディレクトリがドロップされた場合はどこまでさかのぼればいいのだ?
あ、これも親ディレクトリでいいのか?

308 名前:デフォルトの名無しさん :03/08/23 12:23
検索からドラッグされる可能性はあるな

309 名前:デフォルトの名無しさん :03/08/23 12:28
>>303
CreateFontするときにANTIALIASED_QUALITYを指定するだけ。
http://www.microsoft.com/JAPAN/developer/library/jpgdipf/_win32_createfont.htm

310 名前:305 :03/08/23 12:43
>>308
新たな問題発覚(;´Д`)
でもWinRARだと検索からのドロップはディレクトリ無視して圧縮してるね。
そんな方向で対処します。

311 名前:デフォルトの名無しさん :03/08/23 13:19
エディットコントロールの文字列を変数に代入するのはどうしたらいいでしょうか。
がいしゅつであればアドレス出してください。

312 名前:デフォルトの名無しさん :03/08/23 13:36
>>311
GetWindowText() か WM_GETTEXT


313 名前:268 :03/08/23 14:23
一応Win32 APIの「SetCursorPos」を使ってマウスカーソルの移動は
できるようになりました。
マウスのクリックやキーボードの制御は「SendInput」を使えば
いいのでしょうか?

>>282
フリーマクロちょっと使ってみました。とても参考になりました。


314 名前:281 :03/08/23 14:47
>>302
なんか的外れな質問してるみたいでスミマセン
始めて間もないので実はよくわかってないとこがあるんですよ・・・今猫で勉強中です
じゃあやるなって言われそうですが、やらなきゃいけないもので・・・

>CSV ファイルと言ってもいろいろバリエーションがあるのは知ってるのか ?
エクセル互換のカンマ区切りのCSVファイルと思ってたんですが、ほかにもあるのでしょうか?

ttp://up.isp.2ch.net/up/a31622ee5486.jpg
↑はVBで作ってあるのですが、Cでこんな感じにしたいんですよ
無理ですかね?

315 名前:デフォルトの名無しさん :03/08/23 15:18
>>314
無理ではないよ。

316 名前:デフォルトの名無しさん :03/08/23 15:37
>>314
やれやれはっきり言わないとわからないみたいだな...

・CSV を扱う API なんかない。
・Excel みたいなセルを扱うのは最終的には API を使うだろうが、普通は直接 API なんか呼ばない。

∴ スレ違い。

VC 使ってるんなら、VC のスレに行った方が良いよ。

> エクセル互換のカンマ区切りのCSVファイルと思ってたんですが、ほかにもあるのでしょうか?

データ中の改行の扱いはどうするとか、細かいことを言い出すときりがない。

317 名前:311 :03/08/23 15:37
>>312
ありがとうございますぅ

318 名前:311 :03/08/23 15:39
GetWindowText()はどのライブラリの関数ですか?

319 名前:デフォルトの名無しさん :03/08/23 15:50
user32.libでねーの。実体はCOMCTL32.DLLにあるみたいだが。

320 名前:281 :03/08/23 17:01
VCスレ逝って来ます
お騒がせしました&ありがとうございました

321 名前:  :03/08/24 07:35
http://home.att.ne.jp/yellow/town/rockm.htm
のようなウインドウズの操作を自動化するツールを作りたいのですが、
MSDNなどを見てもマウスとキーボードの情報を送信する関数が分かりません。
SetCursorPosでマウスの位置は動かせることがわかったのですが、
クリックとキーボードの情報を出す方法がわかりません。
説明のあるページか、関数名をおしえてください

322 名前:デフォルトの名無しさん :03/08/24 11:31
SendInput

323 名前:デフォルトの名無しさん :03/08/24 13:58
>>321
mouse_event、keybd_event

324 名前:デフォルトの名無しさん :03/08/25 00:50
ResumeThread()の返り値が -1で、GetLastError()が 0ってどういうことです?

325 名前:デフォルトの名無しさん :03/08/25 01:00
>>324
テストしてみたがスレッド終了時とか

326 名前:325 :03/08/25 01:05
おっと
ERROR_CALL_NOT_IMPLEMENTEDが返ってきていた

327 名前:324 :03/08/25 01:49
MSDNには「戻り値が 0 の場合、指定したスレッドが中断されていなかった
ことを示します」と書いてあるが、中断していないスレッドを ResumeThread
すると0ではなく-1が返って GetLastError=0になるっぽいです。

MSDN間違ってる? Win98なんだけど、NTと9xで違うのだろうか...?

328 名前:  :03/08/25 06:09
>>322
>>323

問題解決しました。感謝です。

329 名前:デフォルトの名無しさん :03/08/25 11:17
GetStdHandleで取得したハンドルを最後にCloseHandleする必要はありますか?
MSのサンプルでCloseHandleしているところがあってその通りに実行するとエラーが発生します。

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q190/3/51.asp&NoWebContent=1

330 名前:デフォルトの名無しさん :03/08/25 11:28
メール受信日付で+900とか+400とかの日時の計算方法と種類を教えて下さい。

331 名前:デフォルトの名無しさん :03/08/25 11:43
>>330
まず中学校を修了して下さい。

332 名前:デフォルトの名無しさん :03/08/25 11:51
>>330
ほれ。
http://academic1.plala.or.jp/higataka/vj.htm

333 名前:デフォルトの名無しさん :03/08/25 13:38
いや+400とかの意味つうか時間になんぼ足すとかって書いてるとこ知りたい

334 名前:デフォルトの名無しさん :03/08/25 13:46
何故RFCを読みませんか。

335 名前:デフォルトの名無しさん :03/08/25 13:58
RFC厨は逝ってください

336 名前:デフォルトの名無しさん :03/08/25 14:00
RFCすら読めない厨は逝ってください。

337 名前:デフォルトの名無しさん :03/08/25 14:14
RFCしか言えない厨は消えて下さい。

338 名前:デフォルトの名無しさん :03/08/25 14:27
RFC知らない厨は死んで下さい。

339 名前:デフォルトの名無しさん :03/08/25 14:46
ふぁみこんのなかまだろ

340 名前:デフォルトの名無しさん :03/08/25 15:01
Real Family Computer

341 名前:デフォルトの名無しさん :03/08/25 15:05
初代ファミコンはTVと接続するときにRFC使ってた

342 名前:デフォルトの名無しさん :03/08/25 15:14
つか>>333を教えてよ

343 名前:デフォルトの名無しさん :03/08/25 15:19
>>342
板違いなので余所へいけ。

344 名前:デフォルトの名無しさん :03/08/26 03:43
キーボード入力で[D],[4],[→]の同時押しを検出しようと思い、
GetKeyboardState関数、GetAsyncKeyState関数を用いてプログラムを作成したのですが、他の3つのキーの同時押しは検出できるのですが、何故だか[D],[4],[→]の同時押しが検出できません。
これは仕様なんでしょうか?
何方か[D],[4],[→]の同時押しの検出方法をお教えください。
環境はVC++6.0,Win2000です。
よろしくお願いします。

345 名前:デフォルトの名無しさん :03/08/26 05:18
AT互換機のキーボードのハードウェア的な仕様なのでどーにもなりません。
コストダウンでどんどん安物を追求していった結果です。
シフトキー以外の同時押しは保証されないと思ってください

346 名前:  :03/08/26 06:39
>>344
PCでgeme作る時非常に困るんだよね、この仕様

347 名前:デフォルトの名無しさん :03/08/26 09:54
自分が答えられないと板違いってほざく厨房がいるスレはここですね?

348 名前:デフォルトの名無しさん :03/08/26 09:56
>>347
ん?何を教えて欲しいの?

349 名前:デフォルトの名無しさん :03/08/26 09:58
板違いじゃなくてスレ違いだよな
しかしもう>>334が答えてるじゃないか

350 名前:デフォルトの名無しさん :03/08/26 10:11
答えてもらえないと煽る厨房がいるスレは(

351 名前:デフォルトの名無しさん :03/08/26 11:09
便乗して煽る厨房がいるスレはここです!

352 名前:デフォルトの名無しさん :03/08/26 11:16
コマンドラインから(自作のアプリからでもいいのですが)
myhelp.chmを検索単語 myword で開くにはどうすればいいですか?

353 名前:デフォルトの名無しさん :03/08/26 12:57
>>352
板違いなので余所へいけ。

354 名前:デフォルトの名無しさん :03/08/26 13:08
>>353
板違いなので余所へいけ。


355 名前:デフォルトの名無しさん :03/08/26 13:15
>>354
板違いなので余所へいけ。


356 名前:デフォルトの名無しさん :03/08/26 13:29
>>352
一応、HtmlHelp API がある。使ったことないからよくしらない。

>>355
板違いなので余所へいけ。

357 名前:デフォルトの名無しさん :03/08/26 14:01
>>356
板違いなので余所へいけ。

358 名前:デフォルトの名無しさん :03/08/26 14:36
>>359
基地外は余所へいけ

359 名前:デフォルトの名無しさん :03/08/26 14:38
えー、そんなー

360 名前:デフォルトの名無しさん :03/08/26 19:24
>>352-359
板違いなので余所へいけ。

361 名前:デフォルトの名無しさん :03/08/26 23:37
板違いなら俺んとこへ来い!

362 名前:デフォルトの名無しさん :03/08/27 01:49
>>360とは腹違い

363 名前:デフォルトの名無しさん :03/08/27 22:39
>>360とは穴兄弟

364 名前:デフォルトの名無しさん :03/08/27 23:46
>>361
俺も違うから心配すんな!

365 名前:デフォルトの名無しさん :03/08/28 00:51
DialogBoxもMFC使わないでモーダルダイアログ?(WM_DESTROYまで処理を返さない方)を表示するにはどうやればいいんでしょうか?
モーダルにするウインドウ以外のウインドウのメッセージを全部カットするんでしょうか?

366 名前:デフォルトの名無しさん :03/08/28 02:20
呼び出した関数の中にメッセージループ作ればいいんじゃねぇの?
後はフォーカスの制御も必要か。

367 名前:デフォルトの名無しさん :03/08/28 02:57
>>365
オーナーウィンドウにEnableWindow(FALSE)して
ダイアログを閉じるときにEnableWindow(TRUE)で戻す。

368 名前:デフォルトの名無しさん :03/08/28 10:18
以下の手順で外部プロセスを終了するためにTerminateProcessを使っているのですが
うまくいきません。なにが悪いのでしょうか?

1.プロセスを列挙し終了させるプログラムのIDを取得する。
2.プロセスIDからプロセスハンドルを取得する。
3.TerminateProcessを呼び出す(TerminateProcess(ProcessHandle, 0&))
4.プロセスハンドルクローズ

言語:VB6
OS :Win2000


369 名前:デフォルトの名無しさん :03/08/28 10:32
特定のウィンドウのHWNDを取得して,そのウィンドウに対して
使用不可(マウスでそのウィンドウをクリックしても何も反応しないようにする)
右上のペケボタンを使用不可にする
隠す(タスクバーからも消す)
表示する
はSendMessageでどのようなメッセージを送ればよいのですか?
教えてください

370 名前:デフォルトの名無しさん :03/08/28 10:44
上から順に
EnableWindow
システムメニューから閉じるを削除
ShowWindow(SW_SHOW)
ShowWindow(SW_HIDE)
SendMessageを使うものなんか1つもないが

371 名前:デフォルトの名無しさん :03/08/28 10:48
SW_SHOWとSW_HIDEが逆だった

372 名前:デフォルトの名無しさん :03/08/28 11:07
EnableWindow関数の説明によれば
WM_CACELMODEとWM_ENABLE使えばいけるっぽい

ウィンドウを閉じずに、
タスクバーから消す方法は知らない

最初からタスクバーに表示しないウィンドウをつくるなら、
CreateWindowEXのスタイルで、
WS_EX_TOOLWINDOWを指定すれば良かったと

373 名前:デフォルトの名無しさん :03/08/28 11:08
>>370-371
ご親切にどうも
>システムメニューから閉じるを消去…
どういうことですか?(汗

374 名前:デフォルトの名無しさん :03/08/28 11:09
>>372
Thx!

375 名前:372 :03/08/28 11:31
>>373
CreateWindowするときに、スタイルにWS_SYSMENUを付けない

註:WS_OVERLAPPEDWINDOW,WS_POPUPWINDOW はWS_SYSMENUを含んでいる

もしくは、
style =GetWindowLong(hWnd,GWL_STYLE);
style &= ~WS_SYSMENU;
SetWindowLong(hWnd,GWL_STYLE,style);
みたいな感じでいけたと
ただ、最小化ボタンと最大化ボタンも消えるけど

376 名前:デフォルトの名無しさん :03/08/28 11:36
>>375
なるほどなるほど
ペケボタンは消すんじゃなくってただ単に押せなくなる(色が薄くなる)
だけでいいんですけどね…
ただまぁ自分のWindowをそうするんじゃないんで…たのWindowをいろいろ操作
したいのです

377 名前:デフォルトの名無しさん :03/08/28 11:50
>>373
GetSystemMenuでコントロールメニューのハンドルを取得して
EnableMenuItemでIDがSC_CLOSEなメニュー項目を無効化
つーか少しは自分で調べてよ

378 名前:デフォルトの名無しさん :03/08/28 11:59
>>377
ごめんなさい,ちょっと甘えてました
みなさんどうもありがとう!

379 名前:デフォルトの名無しさん :03/08/29 00:08
指定の exe 実行して、終わるまで待機 って API無いですか?
ShellExecuteだと、立ち上るけど、そのまま処理を続けるてるし。


380 名前:デフォルトの名無しさん :03/08/29 00:23
ShellExecuteEx

381 名前:デフォルトの名無しさん :03/08/29 01:25
ファイルを検索するのにFindFirstFileを使用しています。
Debugモードでは日本語を使用しているファイル名を指定でき、
ファイルを見つけることができます。
しかしReleaseでビルドしたものは全く日本語を受け付けてくれません。
原因は何が考えられるでしょうか。

環境 : VC++7.1,Win2KSP4
プロジェクトの設定
Release : スタティックライブラリでMFCを使用する。
Debug : 共有 DLL で MFC を使用する.
文字セット : マルチ バイト文字セットを使用する

問題と思われる個所のコード。
HANDLE dno;
TCHAR dir[MAX_PATH];
WIN32_FIND_DATA fil;
if ((dno = FindFirstFile(dir, &fil)) != INVALID_HANDLE_VALUE) {

よろしくお願いします・・・困ってます。

382 名前:381 :03/08/29 01:27
すいません。sageてしまいました。改めてよろしくお願いします。

383 名前:381 :03/08/29 02:03
申し訳ないのですが、他の個所に問題があったようで
FindFirstFileは関係なかったようです。
もう少し調べてから質問すべきでした。
お騒がせしました。

384 名前:デフォルトの名無しさん :03/08/29 14:26
CreateThreadで作ったスレッドがまだ実行中に
CloseHandleしたら成功したんだけど、
これってどういうこと?
スレッドが終了次第、自動的にスレッドオブジェクトが破棄されるの?
それともやっぱりスレッドが終わってから再度CloseHandleしないといけないの?


385 名前:デフォルトの名無しさん :03/08/29 16:02
ハンドルハ実体ニアラズ

386 名前:デフォルトの名無しさん :03/08/29 17:05
環境
OS:Windows98SE
コンパイラ:bcc5.5

ttp://www3.big.or.jp/~schaft/program/getopenf/getopenfC.html
上のページにあるサンプルをそのままコンパイルしたのですが上手くいきません。
コンパイルは出来るのですが、ファイルを開くダイアログは出てこないで
"キャンセルされました"のメッセージボックスが出て来るだけです。
最初に

#define _WIN32_WINNT 0x400
#define WINVER 0x400

を加えても上手くいきませんでした。
どう書けばいいのか教えて下さい。

387 名前:384 :03/08/29 17:10
>>385
実体ってスレッド自体のこと?スレッドオブジェクトのこと?

388 名前:デフォルトの名無しさん :03/08/29 17:30
>>386
WinMain にある
szFileName が初期化されて無いでち


389 名前:デフォルトの名無しさん :03/08/29 17:38
>388
ZeroMemoryで上手くいきました、有難うございます

390 名前:デフォルトの名無しさん :03/08/29 18:53
ウィンドウメッセージ

SC_MINIMIZEで最小化
SC_MAXIMIZEで最大化
元のサイズに戻すのは…SC_ZOOM?
ああSC_ZOOMとSC_MAXIMIZEって一緒だったんだっけ?

391 名前:デフォルトの名無しさん :03/08/29 19:23
SC_RESTOREだけど、ウィンドウメッセージではないぞ。

392 名前:デフォルトの名無しさん :03/08/29 20:01
>>391
SendMessageじゃだめなのですか?

393 名前:デフォルトの名無しさん :03/08/29 20:22
OS2のdllはコールゲート呼び出す設計らしいけど
windowsのdllってコールゲート呼び出してるの?

394 名前:デフォルトの名無しさん :03/08/29 21:33
>>392
SC_MINIMIZEなんかは、ウィンドウメッセージWM_SYSCOMMANDのパラメータ。
SendMessage(hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0)

395 名前:bees :03/08/29 23:02
指定したフォルダの中の全てのファイルパスを
拾得するにはどうしたらいいでしょうか?

396 名前:beep :03/08/29 23:04
書き忘れました、VC++6にてSDKでやっています
OSはXPです。

397 名前:デフォルトの名無しさん :03/08/29 23:05
FindFirstFile / FindNextFile

398 名前:デフォルトの名無しさん :03/08/29 23:08
>>395
http://www.google.com/search?lr=lang_ja&q=win32api

399 名前:bees :03/08/29 23:11
>>397
>>398
ありがとうございました!397さんのでできそうです、
ググルも見てミマス!

400 名前:デフォルトの名無しさん :03/08/30 10:33
>>393
Windowsはコールゲート使ってません。
int 20とかarplとか(Win9x)
int 2eとか(WinNT, WDM)

401 名前:デフォルトの名無しさん :03/08/30 11:36
>>400
さんくす

402 名前:デフォルトの名無しさん :03/08/30 13:29
>>394
Danke

403 名前:デフォルトの名無しさん :03/08/30 20:47
2重線を引きたいのですが、Penにはそういうのが
ないと思うのですがAPIとかあるのですか?

404 名前:デフォルトの名無しさん :03/08/30 21:03
>>403
GDI+のPen::SetCompoundArray()ぐらいかな。
GDIにはない。たぶん。

405 名前:403 :03/08/30 21:29
>>404
どうもです。
やはりですか。。。
GDIにはそんなのがあるのですね・
GDI使えないのでwidth5で引いて上からXORでwidth3で引いてみる
とかしてみますね。。。ありがとう。

406 名前:  :03/08/30 21:53
GDI+ってVC6で使えないよね?
初めて聞いたw
もうそろそろ乗り換えないといかんのかなぁ

407 名前:デフォルトの名無しさん :03/08/30 22:09
>>406
いや、そんなこと全然ないぞ。ないはず。
GDI+は最新のプラットフォームSDKダウンロードしたら付いてなかったかなぁ?

408 名前:デフォルトの名無しさん :03/08/30 23:07
単に>>406がGDI+もそれがVC6で使えることも知らないだけだ。

409 名前:デフォルトの名無しさん :03/08/31 16:00
 W2Kでフォルダをネットワーク経由でアクセス可能な共有状態にし、
そのフォルダのアクセス権からeveryoneを削除して、
Administoratorをフルアクセスで追加って事をしたいです。

バッチファイルでできそうな気がしたのですが、
net share、caclsでは、フォルダそのもののアクセス権を
変更するだけで、ネットワーク経由のアクセス権を変更
する事はできないようです。

適当なWin32APIがあればコマンドを自作してしまおうと思い、
こちらに書き込ませていただいてます。
ご存知でしたらアドバイスをお願いいたします。

410 名前:デフォルトの名無しさん :03/09/01 23:40
>>409
自宅でMSDN参照できないので、あまり参考にもならないかも
知れませんが、レスついていないのでちょっと。

キーワード acl でぐぐってみて。で、検索されたAPIの仕様を
確認してみて。おそらく希望しているものが見つかると思う。

参考 ttp://www.cisnet.or.jp/home/tsuneoka/win32tech/10.html

411 名前:デフォルトの名無しさん :03/09/01 23:44
APIENTRYとWINAPIって、何が違うの?
ググっても同じとしか書かれてないんだけど、
本当は何か違いがあるんじゃないの?
歴史的な理由とか?教えてプリーズ。


412 名前:デフォルトの名無しさん :03/09/02 00:35
ドライブのフォーマットを取得するAPIってありますか?
種別はGetDriveTypeとかなんとかで取れたんですが
FAT32かNTFSか、というのも判別したいんです。

おながいします。


413 名前:デフォルトの名無しさん :03/09/02 00:39
(゚д゚)<GetVolumeInformation

414 名前:デフォルトの名無しさん :03/09/02 01:02
>>413
即レスありがとうございます。
逝けそうです。


415 名前:デフォルトの名無しさん :03/09/02 03:51
case WM_VSCROLL:
 switch (LOWORD(wParam))
 {
  case SB_THUMBTRACK:
   HIWORD(wParam);
 }
スクロールに関する質問なんですが、
HIWORD(wParam)では 0〜65535 の範囲でしか値は得られませんよね?
65536 以上ドラッグ操作でスクロールしたい場合はどうしたらいいのでしょうか?

416 名前:デフォルトの名無しさん :03/09/02 03:52
STRINGTABLE { IDS_A "あああ" }

 ↓

STRINGTABLE { IDS_A "いいいいい" }

コンパイル時にexeファイルに入れたリソースの内容を書き換えるようなことはできないでしょうか?


417 名前:415 :03/09/02 04:19
ttp://www.asahi-net.or.jp/~uq7k-hrsm/vcdev2fr.htm
↑で解決いたしますた。

418 名前:デフォルトの名無しさん :03/09/02 04:21
>415
MSDNに書いてある。
>Thus, an application can call GetScrollInfo while processing
>either the WM_HSCROLL or WM_VSCROLL messages to
>obtain 32-bit scroll-bar position data.

419 名前:デフォルトの名無しさん :03/09/02 06:20
MessageBoxで表示されるアイコン(MB_ICONINFORMATIONとか、MB_ICONHAND等)は
自前で使えないでしょうか?何かヒントになる
APIがあれば教えて下さい。



420 名前:デフォルトの名無しさん :03/09/02 07:15
>>419
LoadIcon

421 名前:デフォルトの名無しさん :03/09/02 08:59
>>420
ありがとうございました。

422 名前:デフォルトの名無しさん :03/09/02 13:54
spoolデータの所有者を変更したいのですが。
何か方法ありませんか?

423 名前:デフォルトの名無しさん :03/09/02 15:30
StretchBlt()で直接デスクトップにBltしたいのですが、
なぜか画像に意図しない歪みが生じてしまいます。(下記URLがそのキャプです)
何がいけないのでしょうか?ご教授ください。
http://www.forgetmenot.jp/diary/img/1053829691/1054775553.jpg

424 名前:デフォルトの名無しさん :03/09/02 15:33
久しぶりに蓮コラ見た

425 名前:デフォルトの名無しさん :03/09/02 15:35
>>423
そりゃあ乳首が蓮だからだよ。


426 名前:bees :03/09/02 16:56
これは引数に指定したフォルダの中のファイル数をカウントするつもりで作ったのですが
なぜか毎回二個増えてしまいます、だれか助けてくだちぃ。
例えば空のフォルダ指定してもなぜか二個になってしまいます。
隠しファイルは表示させてあるのでわかると思うんですが・・。
int Find(char *fDir)
{
        HANDLE hFind;
       WIN32_FIND_DATA fd;
       char Dir[256];
       int count = 0;

       if(fDir[strlen(fDir)-1] != '\\')
           return -1;

       wsprintf(Dir,"%s*.*",fDir);

       hFind = FindFirstFile(Dir, &fd);
       if(hFind == INVALID_HANDLE_VALUE)
           return -1;
       do
       {
           count++;
       } while(FindNextFile(hFind, &fd));

       FindClose(hFind);
       return count;
}

無関係ですがホットゾヌつかて見ました、はまりカケです。

427 名前:デフォルトの名無しさん :03/09/02 16:57
fdの中身を確認してみれ。

428 名前:デフォルトの名無しさん :03/09/02 16:58
.
..
の二つじゃねーの。
つーかデバッグしてフォルダ名見てみりゃいーじゃん。

429 名前:デフォルトの名無しさん :03/09/02 17:03
カレントと親

430 名前:429 :03/09/02 17:03
カレントじゃなくて自分自身

431 名前:bees :03/09/02 17:08
ぬぁ!フントでした!フォルダも検索されていたんですね
FILE_ATTRIBUTE_DIRECTORYで判別してみました。
>>427~>>430
ありがとう!


432 名前:デフォルトの名無しさん :03/09/02 21:12
Win32API と Win32SDK って何が違うの?

433 名前:デフォルトの名無しさん :03/09/02 21:20
こんなの相手にすんな

434 名前:デフォルトの名無しさん :03/09/02 22:25
まあまあ。
APIはプログラムを作るためのライブラリ関数。
SDKはプログラムを作る時の組み方。
つまり、比べる分野の地点で違う。

435 名前:デフォルトの名無しさん :03/09/02 22:35
ここわ殺伐としたインターネットですね

436 名前:デフォルトの名無しさん :03/09/02 22:51
API = Application Program Interface
あるソフトウェアの機能を他のプログラムから利用するための手続き。
Win32APIではほとんどがDLLからexportされた関数として提供されている。

SDK = Software Development Kit
ある環境で動作するソフトウェアを開発するのに必要なものの一式。
Windows SDKの場合C/C++用のヘッダ、DLLや、それをリンクするのに必要な
インポートライブラリ、各種ドキュメント、サンプルプログラム等が含まれている。

437 名前:デフォルトの名無しさん :03/09/02 23:51
デスクトップとか
フォルダでファイルがドラッグ開始された瞬間を取得するには、
どうすればいいですか?

438 名前:デフォルトの名無しさん :03/09/02 23:56
>フォルダでファイルがドラッグ開始された瞬間
ボタンを押下した瞬間か移動しはじめた瞬間かどっちなんだ

439 名前:434(!432) :03/09/03 00:00
勉強させてもらいました。

440 名前:デフォルトの名無しさん :03/09/03 00:09
>>410
ありがとうございました。
720個のフォルダを手動で共有化せずに済みそうです。

441 名前:デフォルトの名無しさん :03/09/03 00:13
>>438
どちらでもいいです。
あえて言うなら
移動した瞬間です。


442 名前:デフォルトの名無しさん :03/09/03 01:53
>>441
Notify掛けとけば?


443 名前:デフォルトの名無しさん :03/09/03 06:00
プログレスバーがクリックされたかどうか知りたいんですけど
どうすればいいんでしょうか?

444 名前:デフォルトの名無しさん :03/09/03 08:19
>>443
サブクラス化してWM_LBUTTONDOWNを処理。

445 名前:デフォルトの名無しさん :03/09/03 12:35
拡張子関連付けの起動ができないURL(index.html#aaa 等)をブラウザで開きたいのですが、
ShellExecute(0, "open", BrowserPath, "", 0, SW_SHOW);
// BrowserPath = とりあえずエクスプローラへのパス
とすると、起動はできるのですが、実行するたびに新しいウインドウが起動してしまいます。

拡張子関連付けの場合、既に存在すれば使いまわされます。
一応、ぐぐってたら前スレの 29 にヒットしました
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html/29

つまり「既に存在するならそこで開いてほしい」のですが、どうしたら良いでしょうか?


446 名前:445 :03/09/03 12:39
訂正です

X // BrowserPath = とりあえずエクスプローラへのパス
O // BrowserPath = とりあえず IE へのパス

前スレの 29
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html

447 名前:kumazo :03/09/03 15:56
今、Winsockを使用しマルチプロセスサーバを作成しています。しかし、
親プロセスから子プロセスへのソケット値の継承方法がわかりません
(CreateProcess関数を使用しプロセスを生成しています)。
わかる方がいらっしゃいましたらご教授お願いします。
環境はVC++6.0 WINSOCKバージョンは1.1を使用しています。
また、スレッドは使用しないようにしたいと考えています。


448 名前:デフォルトの名無しさん :03/09/03 16:23
DuplicateHandle

449 名前:デフォルトの名無しさん :03/09/03 17:10
リフレッシュレートを変更する方法って
何かないですか?
UNIXではsetmonとかをsystem関数で呼び出してたんですが
その部分をWindowsで実現したいのです

450 名前:449 :03/09/03 17:27
ごめんなさい
解決しました

451 名前:449 :03/09/03 18:30
450は偽物です。
引き続き情報をお待ちしてます。

452 名前:デフォルトの名無しさん :03/09/03 18:31
何でリフレッシュレートを変更したいわけ?

453 名前:デフォルトの名無しさん :03/09/03 18:39
ChangeDisplaySettings
ChangeDisplaySettingsEx

454 名前:449 :03/09/03 20:46
引き続き皆さんの情報をお待ちしてます。
お電話はこちらまで。
4400333

455 名前:デフォルトの名無しさん :03/09/03 22:35
Win32API関数の一覧が載っているページを知りたいのですが教えてください。

456 名前:デフォルトの名無しさん :03/09/03 22:35
>>455
死ね割れ厨

457 名前:デフォルトの名無しさん :03/09/03 22:49
>>455
MSDN

458 名前:デフォルトの名無しさん :03/09/03 23:08
>>455
教えてやってもいいが有料

459 名前:455 :03/09/03 23:22
>>457
CDは持っているのですが、Win32APIだけが載っているページがあればなと。
ANSI-Cだとこういうページがあるのですが。
http://www.bohyoh.com/CandCPP/C/Library/index.html
また、検索する時一つ一つではこういうページにいけるのですが元のページが分かりません。
http://www.google.co.jp/search?q=cache:Fb-0krTmdfwJ:www.microsoft.com/japan/developer/library/jpwinpf/_win32_setconsoletextattribute.htm+SetConsoleTextAttribute&hl=ja&ie=UTF-8

>>458
お願いします。

460 名前:デフォルトの名無しさん :03/09/04 01:21
>>459
Platform SDK Update
ttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/

461 名前:455 :03/09/04 01:38
>>460
ありがとうございます。ただ、英語でページの使い方が分からないので、
いろいろいじってみます。

462 名前:デフォルトの名無しさん :03/09/04 01:46
英語読めないのにプログラミングするなと小一時間

463 名前:デフォルトの名無しさん :03/09/04 03:18
MSDN(SDK含む)は平易な英語だから辞書があれば中学生でも理解できると思う

464 名前:デフォルトの名無しさん :03/09/04 03:20
要は簡単な英語を訳す努力もしないような奴はプログラミングをするなと(

465 名前:デフォルトの名無しさん :03/09/04 04:25
ウインドウ上のマウス位置を取得したいのですが、どうすればよいのでしょう。
GetConsolePosやlParamだと、スクリーンの上のを調べてしまいます。

466 名前:デフォルトの名無しさん :03/09/04 04:34
ScreenToClient

467 名前:デフォルトの名無しさん :03/09/04 10:21
Borlandのbcc55フリーコンパイラでWindowsプログラミングができるのでしょうか?
_mainのシンボルが未解決と出てしまいます( ´Д⊂ヽ

468 名前:デフォルトの名無しさん :03/09/04 10:32
>>467
普通に可能だが。
何故そのエラーが出るのかといえばbccの使い方が理解できていないから。

469 名前:デフォルトの名無しさん :03/09/04 11:39
>>467
タダで最強!フリーC/C++コンパイラ
http://pc2.2ch.net/test/read.cgi/tech/1035882599/

470 名前:デフォルトの名無しさん :03/09/04 12:20
>>466
GetCursorで画面での位置を取得

ScreenToClientでウインドウでの位置に変換

でできました。ありがとうございました。

471 名前:デフォルトの名無しさん :03/09/04 12:35
 Win2k/XPでは、CTRLを押しながら[シャットダウン...]を押すと
緊急時シャットダウンとなり、瞬時(1〜2秒)でウィンドウズが
シャットダウンします。
 これと同じ事をプログラムからAPIを呼び出して行いたいのですが
どのAPIを使えばよいのでしょうか?

 ExitWindowsEx( EWX_FORCE | EWX_SHUTDOWN , 0 );
 とやったらイケルかと思ったのですが、この場合、アプリなどは
強制終了されているようですが、Windows自体のシャットダウン
プロセス自体は通常通りでした。(「設定を保存中です」という
ダイアログが表示され、10秒程度終了処理を行ったあと電源が切れる)

(参考) Windows で緊急時シャットダウンを実行する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;279134


472 名前:デフォルトの名無しさん :03/09/04 14:15
>>471
試していないのですが、EWX_FORCEIFHUNG が必要では?

参考:ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/exitwindowsex.asp

473 名前:471 :03/09/04 14:50
>>472 ありがとうございます。
 EWX_FORCEIFHUNG は試してみました。
 これをつけると無条件にアプリのプロセスを終了するのではなく
応答無しのプロセスのみ強制終了するようになります。
 結果、EWX_FORCE のみのときに比べてシャットダウン処理時に
余計に時間がかかるようになります。
 この方が安全なのでしょうけど、いまやりたいのは即座に
シャットダウンさせたいのです。

474 名前:デフォルトの名無しさん :03/09/04 19:01
MS Pゴシック 12pt の時のいろいろな文字列の実際に表示された時の幅を
取得したいのですが、どうすればいいのでしょうか?

いろいろ調べた結果
GetTextExtentPoint32
がぁゃιぃと踏んだのですが…

475 名前:デフォルトの名無しさん :03/09/04 19:07
>>474
その通りだが。

476 名前:474 :03/09/04 20:00
>475
Font 変更のところで詰まっていたへたれでして…
でも、検索したら猫に解説がありました(´・ω・`)

477 名前:474 :03/09/04 21:28
HDC hdc = GetDC(NULL);
HFONT hFont = CreateFont(12, 0, 0, 0, 0, 0, 0, 0, SHIFTJIS_CHARSET, 0, 0, 0, 0, "MS Pゴシック");
SIZE size;
GetTextExtentPoint32(hdc, "e", 1, &size);
cout << "e" << size.cx << endl;
GetTextExtentPoint32(hdc, "g", 1, &size);
cout << "g" << size.cx << endl;

結果:
e6
g6

こういう結果が得られたのですが、実際に IE にて二つの文字を表示してみたところ
e のほうが 1 dot 大きいのですがなぜでしょうか?
IE が特殊なのん?

478 名前:デフォルトの名無しさん :03/09/04 21:34
TextOut()やDrawText()でウインドウに出力したテキストを消去するにはどうすれば良いですか?

479 名前:デフォルトの名無しさん :03/09/04 21:48
>>477
CreateFontの引数はピクセル単位だぞ。12ピクセル=9ポイント(WinXPデフォルト設定で)

480 名前:デフォルトの名無しさん :03/09/04 22:02
>>478
背景色で塗りつぶす。もしくは背景の画像の該当部分をコピー。

481 名前:デフォルトの名無しさん :03/09/04 22:15
>>477
hFontを使ってないように見えるけど…省略しただけ?

482 名前:デフォルトの名無しさん :03/09/04 22:32
ふぉんとのことを言うと、SelectObjectしないとFontが変わらないよ。


483 名前:デフォルトの名無しさん :03/09/04 22:37
江~~~~~~~~~~~~~~~~~~フォントォォ~~~?????????????????????????

484 名前:デフォルトの名無しさん :03/09/04 22:37
>>483
5点

485 名前:デフォルトの名無しさん :03/09/04 23:41
CreateIoCompletionPort()やらについて解説してるサイトってないッスか?
…MSDN以外ないッスよね…。

486 名前:デフォルトの名無しさん :03/09/04 23:54
書籍でいいならAdvanced WindowsとかProgramming Windows2000とか当たってみたらどうだ?
英語のサイトなら多分あると思うが。

487 名前:デフォルトの名無しさん :03/09/05 00:20
DOSコマンドのnetstatのような自分のPCに接続している接続先の情報一覧
などを得ることはできないでしょうか?

488 名前:デフォルトの名無しさん :03/09/05 00:30
>>487
GetTcpTable, GetUdpTable,

XP以降なら
AllocateAndGetTcpExTableFromStack,
AllocateAndGetUdpExTableFromStack
のほうがプロセスIDも取れて便利。

489 名前:デフォルトの名無しさん :03/09/05 00:38
文字列があって、あるサイズ(横幅)に収まるポイントが
ほしいのですが、ループで回して調べるしか
ないでしょうか?

490 名前:デフォルトの名無しさん :03/09/05 00:54
>>489
意味がわからないが、たとえば

あいうえおかきくけこさしすせそ

あいうえおかき...

みたいなのを実装したいの?

491 名前:471 :03/09/05 00:57
>>471 の件ですが、ExitWindowsExでは無理そうなので
SYSTEMプロセスをTerminateしてやろうと挑戦中です。

HANDLE hProc = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE , false , <プロセスID> );
BOOL fStat = TerminateProcess( hProc , 0);

 システム系のプロセスを対象としたとき、PROCESS_TERMINATE を
つけるとOpenProcessが失敗するようです。
 SeDebugPrivilege を使うとなんでもありにあるようなので
これから試してみます。

[HOWTO] SeDebugPrivilege を使用して任意のプロセスへのハンドルを取得する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;JP131065

 

492 名前:デフォルトの名無しさん :03/09/05 00:57
ちょっと前に同じような質問なかったっけ。

493 名前:489 :03/09/05 01:13
>>490
いえ、エクセルの「縮小して全体表示」みたいなのが
ほしいです。。。

494 名前:471 :03/09/05 01:27
なんとなく独り言モード
>>491 の SeDebugPrivilege を使う方法でほとんどのプロセスを
Terminate出来るようになりました。
 タスクマネージャーで「致命的なシステムプロセスです。」と
いわれて終了出来ないプロセスも終了できます。
 ただ肝心の「System」プロセス(PID=8)は終了できません。
 イメージ名に「.EXE」がついていないので、Idle Processの
ような仮想的なプロセスなのでしょうか。
 とりあえずいろいろプロセスを殺してみましたが、WINLOGON.EXEを
Terminateしたら、いきなり画面が黒くなりマシンがリブートしました。
 これか?と思いましたが、リブートしては目的に添わないし
もう一度試してみても再現性がありませんでした。がっかり

495 名前:デフォルトの名無しさん :03/09/05 02:25
>>485
英語ページですが。
ttp://home.arcor.de/davidweatherall/work/iocompl.htm

496 名前:デフォルトの名無しさん :03/09/05 04:41
質もの願いします
画面を持たないEXEモジュールで以下のことをしたいのですが。
1.エクセルを起動
2.オブジェクトを取得
3.値を配置
4.保存
5.エクセルを閉じずにオブジェクトを開放
6.人間の手で修正
7.(この間VBはエクセル終了まで待機)
8.人間の手で終了
9.エクセルの内容をDBに変更

で、
1は「ShellExecuteEX」
2は「GetObject」
7は「WaitForSingleObject」
を使って実現しようと考えました。

ところがいくつか問題がありまして、よろしければご指導ください。

1.「画面を持たないEXEモジュール」なので「ShellExecuteEX」のhwndに0を渡すと
  戻りの実行ファイルのハンドルが0で帰ってきて、「WaitForSingleObject」が機能しない。

2.ループでExcelの起動完了を検出してからGetObjectでオブジェクト変数を取得しに行くが
  既にエクセルが起動している場合はにうまく機能しない

よければご教授お願いします。


497 名前:デフォルトの名無しさん :03/09/05 05:38
オンラインのMSDNの効率的な検索方法教えて。
普通にAPIの名前だけ入れてもうまく引っかからないことが多いので
とりあえずこんな感じでキーワードを並べるとだいぶましになるけど完全とはいえない。
ShellExecute site:www.microsoft.com プラットフォーム SDK

それにしても個人のサイトでAPIリファレンス載せてる人々は一体何を考えているんだろう?
検索精度が下がって激しく邪魔なんだけど。

498 名前:デフォルトの名無しさん :03/09/05 08:17
あ,あの,Windows でハードウェアスクロールって
・・出来ないすよね,やっぱし・・
いえ,もういいっす・・すんませんっした・・

499 名前:デフォルトの名無しさん :03/09/05 08:21
>>497
うまく検索できないのは、マイクロソフト(日本)のサイト自体
の問題。個人のサイトでAPIリファレンスを載せてる人は関係
ない。

そもそも全ての情報が日本語訳されている
わけではないので、
http://msdn.microsoft.com/
を使った方がいい。


500 名前:485 :03/09/05 08:30
>>486
うーっし、Advanced Windows辺り見てみまっさー


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.