Win32API質問箱 Build65at TECH
Win32API質問箱 Build65 - 暇つぶし2ch357:デフォルトの名無しさん
08/04/29 12:58:18
>>355
移動したみたいよ


358:デフォルトの名無しさん
08/04/29 13:31:08
>>356
もうそういうつっこみはいんでない?
ネタをネタとして(ry

359:デフォルトの名無しさん
08/04/29 13:32:07
彼のGWを費やしてゴミレスをまきつづけるという決心は誰にもいさめられはしないのだ。

360:デフォルトの名無しさん
08/04/29 14:16:51
sndPlaySoundする前にCreateThreadで別スレッド作って、
別スレッドでSleep(60000)でその後にメッセージ出せば良いと思う。

361:デフォルトの名無しさん
08/04/29 14:20:54
WindowsVistaでサービスアプリケーションを作ってるんですが、
タスクトレイ(通知領域)にアイコンをだすにはどうすればいいですか?
XPではNotifyIconを使って動いていたのですが、
Vistaではセッションが分離されたようで動かなくなりました。
よろしくおねがいします。

362:デフォルトの名無しさん
08/04/29 14:21:02
公開WindowsAPIだけを用いてまともな(信頼出来る)
リアルタイムアプリ作るのは不可能だと思う
それが嫌ならWindows使わないほうがいいと思う

363:デフォルトの名無しさん
08/04/29 14:38:02
>>362
はぁ?

364:デフォルトの名無しさん
08/04/29 14:38:41
>>361
タスクトレイアプリを別exeで作って
そいつをCreateProcessAsUserだかなんだかでデスクトップに注入しろ
タスクトレイアプリとの通信方法は自分で考えろ

365:デフォルトの名無しさん
08/04/29 14:43:07
>>362
話を理解してない馬鹿

366:↑
08/04/29 14:45:54
話を理解してない馬鹿

367:デフォルトの名無しさん
08/04/29 14:52:22
↑話を理解してない馬鹿

368:デフォルトの名無しさん
08/04/29 14:53:42
春だねぇ

369:デフォルトの名無しさん
08/04/29 14:56:19
Windowsにまともなリアルタイム性が期待できないことぐらい誰でも知ってるし誰もそんな話はしていない
そうやって勝手な雑談ネタを持ち込もうとしたら叩かれて当然

370:デフォルトの名無しさん
08/04/29 14:56:34
同じ宛先の郵便物を別のポストに僅かな時間差で入れた場合
先に入れたほうが先に届くことが保証されるか?
常識と教育が必要な知識との微妙な境界領域だろうが
一般的には保証されてると信じたほうが悪いと判決される。

371:デフォルトの名無しさん
08/04/29 15:03:50
保証されると信じるわけのないことを喩えに出されても困るが。

372:デフォルトの名無しさん
08/04/29 15:04:54
質問者が質問する
    ↓
質問内容が飛躍してスレ住人が雑談
    ↓
エスカレートしすぎて当事者以外は手がつけられなくなる
    ↓
質問者が「ごめんなさい」レス


この流れの永久ループだな
謝るべきは雑談しているカス共だろ

373:デフォルトの名無しさん
08/04/29 15:34:50
みんな自己表現しすぎなのが問題かと・・・

374:デフォルトの名無しさん
08/04/29 15:35:32
「俺はこんな事まで考慮した上でレスしてんだぞ フフン」ってのがそこらじゅうのレスから感じられる
だから何?って感じなんだが


375:デフォルトの名無しさん
08/04/29 15:43:16
API仕様情報なんて所詮、うわさ話の域を出ない。
だから、話が脱線していくのは仕方がないでしょ
誰も本当の事知ってる訳じゃないし。
断片情報のよせ集めでしかないからね。

376:デフォルトの名無しさん
08/04/29 15:44:37
>>375
お前が雑談の元凶か

377:デフォルトの名無しさん
08/04/29 16:02:55
MSDNからDirectShowの日本語ドキュメントすべて削除されたみたい

378:デフォルトの名無しさん
08/04/29 16:38:35
XP、Vistaで時間が経過した場合にシステムがスクリーンセーバーを起動できるかを
取得したいのですが、良い方法がありましたらアドバイスお願いします。

・分かっていること
スクリーンセーバーの有効無効、SCRファイル名は SystemParametersInfo で取得
SCRファイルが存在するか否かは GetFileAttributes や FindFirstFile など

・詰まっていること
アクティブウィンドウが WM_SYSCOMMAND の SC_SCREENSAVE をどう処理するか

・試してみたこと/調べてみたこと
DefWindowProc の APIフック後、SC_SCREENSAVE を投げて届くか監視
  ダイアログアプリでは呼ばれず、GINA の WlxScreenSaverNotify での拒否も未考慮で×
GINAを実装し、SC_SCREENSAVE を投げて WlxScreenSaverNotify が呼ばれるか監視
  VistaではGINAが廃止され、ISensLogon::StartScreenSaver は代替にならず×
CreateDesktopW/A を APIフック後 SC_SCREENSAVE を投げて "Screen-saver" な
デスクトップ作成要求が発生するかを監視
  winlogon.exe に対しては APIフックが失敗してしまい×

・スキル不足で試せていないこと
NtUserCreateDesktop をカーネルAPIフック後 SC_SCREENSAVE を投げて、以下略

そもそも、ただスクリーンセーバーが起動出来るか確認したいだけなのに
APIフックまで持ち出さなければならないのか…。

379:デフォルトの名無しさん
08/04/29 16:42:46
上にもあるけど
非同期wav再生
→再生位置取得
→位置により別の文字(歌詞でも)表示
ってSleepが手っ取り早いんかな

歌詞表示はコンソールなんだけど・・・

380:デフォルトの名無しさん
08/04/29 16:47:29
>>378
そもそも何でもAPIフックで済まそうという思考が以下略

381:デフォルトの名無しさん
08/04/29 16:58:11
>>379
URLリンク(www13.plala.or.jp)

こんなんどう?使い方わからんけど
誰か頼むorz

382:デフォルトの名無しさん
08/04/29 17:02:55
例えば
/* 取得の前準備 */
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
/* 再生位置取得 */
・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・
/* 終了 */
見たいな感じで 最小コード誰かplz

383:デフォルトの名無しさん
08/04/29 17:08:38
いい加減うざい
URLリンク(www.google.com)

384:デフォルトの名無しさん
08/04/29 17:17:23
>>380
全くその通りなのですが、色々調べた結果APIフックにいってしまいました。
APIフックがしたいわけではないので、どなたかよい方法があれば…。

385:デフォルトの名無しさん
08/04/29 17:39:41
スクリーンセーバーの実行処理なんてのはシステムの管轄だから、アプリ側では
それを抑止する(WM_SYSCOMMAND/SC_SCREENSAVEに応答する)以上は触るなという事だろう

要するに
「スクリーンセーバーを起動できるかどうか」
ではなくて
「スクリーンセーバーが起動されようとしている時にどうするか」
だけを考えろ、と。

386:デフォルトの名無しさん
08/04/29 18:24:06
>>361>>378も無理
Vistaは糞

387:デフォルトの名無しさん
08/04/29 19:53:21
今更だがDirectSoundには結構前から死亡宣告が出てるよ
URLリンク(www.4gamer.net)

388:デフォルトの名無しさん
08/04/29 20:54:31
>>361
サービスが直にアイコンを出すのではなく、
ログオンしているユーザと対話するためのEXEを作り、
そのEXEがサービスと通信して適宜、アイコンを表示すべし。

389:デフォルトの名無しさん
08/04/29 20:56:56
>>374
いろいろと考慮して、行儀良くAPIを使うのは、基本中の基本。
たまたま動いているからOKという考え方だと痛い目にあう。

>>364
> そいつをCreateProcessAsUserだかなんだかでデスクトップに注入

スタートアップに登録でいいと思う。

390:デフォルトの名無しさん
08/04/29 21:15:14
>>387
2chステレオでただ音を出すだけなら、今後も、互換性あるんじゃない?

391:デフォルトの名無しさん
08/04/29 23:13:07
>>356
こういうことじゃないのか。
>0 を指定すると、スレッドは、実行の準備ができている同じ優先順位の
>ほかのスレッドに残りのタイムスライスを譲ります。

>>375 同意。本当の事はバージョン限定。

392:デフォルトの名無しさん
08/04/29 23:18:23
>>389
たまたま動いてるからOKだなんて言わなかったけど?(笑)

393:デフォルトの名無しさん
08/04/29 23:23:56
明示的には言ってないが、暗にそういう前提で話をしてたろ。


394:デフォルトの名無しさん
08/04/29 23:25:00
うるせぇよ雑談で荒らすな

395:デフォルトの名無しさん
08/04/29 23:30:31
>>393
してないよ?
それは単なる君の憶測。


396:デフォルトの名無しさん
08/04/30 00:49:06
>>387
その記事を書いた時点で記者はXAudio 2のことを全く知らなかったみたいだがな。

397:デフォルトの名無しさん
08/04/30 03:09:28
>>385
レスどうもです。一筋縄ではいかなそうですね。
NtUserCreateDesktop のフックを試してみて、無理そうだったら
アイディアがもう無いので諦めたいと思います。

398:デフォルトの名無しさん
08/04/30 03:20:33
なぜスクリーンセイバーが起動できるか取得したい動機を知りたい

399:デフォルトの名無しさん
08/04/30 05:56:50
NtUserCreateDesktop ってエクスポートすらされてないじゃん
スクリーンセイバー相手に超乙

400:デフォルトの名無しさん
08/04/30 06:30:33
APIで出来ないことには手を出すなってのがMSの考えだろ

大体NtUserCreateDesktopなんて名前からしてモロNT依存だし
Win32がNT専用じゃない(なかった)事を考えるとその行為がいかに馬鹿げているか分かるだろうし
そんな事にいちいちSSDTフックを持ち出していたら何のためにAPIがあるのか分からん

401:デフォルトの名無しさん
08/04/30 07:06:45
それは真のプログラマとはいえない。

UndocumentedなAPIを使いこなしてこそ、真のプログラマというものだろう。

公開APIなんぞ、M$の手のひらで踊らされているだけに過ぎない。




おれは公開APIしか使わないけどね。

402:デフォルトの名無しさん
08/04/30 07:08:29
対案も出せないくせに、なぜそこまで否定するのかわからん
質問者もその辺は重々承知だろうし、勝手にやらせればいいだろ

403:デフォルトの名無しさん
08/04/30 07:08:48
俺様定義の「真のプログラマ」なんて持ち出されてもなぁ。

ていうか「真のプログラマ」ってネタだよな。

404:デフォルトの名無しさん
08/04/30 07:09:47
>>402
何が目的なのか、わからないから、
代替案を提案しようがないのだが。

405:デフォルトの名無しさん
08/04/30 07:32:35
こういう、荒れるor雑談となる原因を質問者自身が持ち込むのも勘弁してほしい。

IsScreenSaverEnabledなんてAPIが無い以上Win32APIレベルで無理なのは重々承知のはず。
その上でカーネルAPIのフックなどを持ち込んで「他に良い方法ありませんか?」なんて
正直、知識をひけらかしたいだけじゃないのかとも思ってしまう。

406:デフォルトの名無しさん
08/04/30 07:42:15
知らなきゃ黙ってればいいだけだろ

407:デフォルトの名無しさん
08/04/30 07:44:35
また温め納豆か?

408:デフォルトの名無しさん
08/04/30 08:11:42
調べてないから適当な事言うけど、
スクリーンセーバーの基本設定はレジストリに書かれてる訳じゃないのか?

409:デフォルトの名無しさん
08/04/30 08:24:02
>>408
いまスクリーンセーバーを起動しようとしたら、
誰がそれに反対するかは、
実際にお伺いを立ててみないとわからないのよ。

410:デフォルトの名無しさん
08/04/30 08:31:46
誰がそれに反対するのか調べるためだけにカーネルモードドライバを組み込むのか
馬鹿馬鹿しい

411:デフォルトの名無しさん
08/04/30 08:33:15
ああ、起動が阻害されるかどうかをチェックしたいのか・・・。

412:デフォルトの名無しさん
08/04/30 08:37:53
じゃあスクリーンセーバ起動してみたらいいじゃん

413:デフォルトの名無しさん
08/04/30 08:39:59
誰が起動を阻止するかなんてのはお前の気にする所ではないということだ
他のプロセスが何をしようが知ったことではない、マルチタスクの基本
それが分からんようなら勝手にドライバでも何でも作ってろ

414:デフォルトの名無しさん
08/04/30 08:43:47
×誰がそれに反対するかは
○誰かがそれに反対するかは

415:デフォルトの名無しさん
08/04/30 08:44:14
分からない人のレス要らないから。

416:デフォルトの名無しさん
08/04/30 08:50:01
特に何もしないスクリーンセーバーを作って、
スクリーンセーバーを一時的にそれに変更し、それを起動してみる。
起動できた場合はそのスクリーンセーバーからメッセージを送ってもらう。

こんなんでどうなんだ?

417:デフォルトの名無しさん
08/04/30 08:51:39
>>415
「知っている」という事象が存在しない命題に対して「知らないならレスするな」は矛盾している。
つまり、お前も>>406も質問者の>>378自身も単なる荒らしに過ぎないということ。

418:デフォルトの名無しさん
08/04/30 09:13:59
>>417
論理学を勉強しなおしましょう

419:デフォルトの名無しさん
08/04/30 09:17:02
自身の正しさを証明できませんってことで

420:デフォルトの名無しさん
08/04/30 09:17:50
return false;

421:デフォルトの名無しさん
08/04/30 10:45:50
Win32APIで出来ない事は「知っている」

422:デフォルトの名無しさん
08/04/30 11:44:13
休日に話進められても参加できんな-

423:デフォルトの名無しさん
08/04/30 12:11:11
俺と話すか?

424:デフォルトの名無しさん
08/04/30 12:30:32
今時Win32APIなんて雑談のネタにしかならないのがよく分かるスレだな

425:デフォルトの名無しさん
08/04/30 12:31:21
雑談スレへようこそ

426:デフォルトの名無しさん
08/04/30 13:31:55
荒らすなよ。興味ないのなら別のスレ行けよ。
わざわざwin32API勉強してる奴の妨害しなくてもいいだろ?
嫌がらせ受ける側の気持ちになれよ

427:デフォルトの名無しさん
08/04/30 13:33:31
ごめんね

428:デフォルトの名無しさん
08/04/30 13:34:03
すんませんでした…

429:デフォルトの名無しさん
08/04/30 14:04:59
>>426
荒ら
   わざ
       受け

430:デフォルトの名無しさん
08/04/30 14:14:53
今更win32apiを勉強するなんて時間の無駄
他の勉強時間に使え

431:デフォルトの名無しさん
08/04/30 14:24:44
それは言い過ぎ
Windowsを使う場合APIは避けて通れない道の一つ
でもCやVC++でするのは、迂遠かもな。

432:デフォルトの名無しさん
08/04/30 14:30:48
っ C#&WPF

433:デフォルトの名無しさん
08/04/30 14:40:31
VBやDelphiから入った連中はCreateProcessの引数すら覚えてないコピペ職人ばかりだろw

434:デフォルトの名無しさん
08/04/30 14:41:21
WPFで作られたまともなモノを見たことないんだけど

435:デフォルトの名無しさん
08/04/30 14:45:10
また水掛け論の悪寒

436:デフォルトの名無しさん
08/04/30 14:53:58
>>433
んなもん覚えるのは脳細胞の無駄づかい。

IDEなら引数の形式が表示されるし、
そうでないにしても、
MSDNライブラリで引けば一瞬で表示される。


437:デフォルトの名無しさん
08/04/30 16:02:17
俺もCreateWindowExとか未だに引数覚えてないな
だってVB5/VC6未満の開発環境使った事ないし

438:デフォルトの名無しさん
08/04/30 16:26:22
俺が引数を覚えているAPIなんてSleepと引数無しのやつだけだ。
他はIDEのヒントがないと自信ないな。

439:デフォルトの名無しさん
08/04/30 16:27:42
そんなん使いまわし(過去に使ったソースからコピペetc)でおk

440:デフォルトの名無しさん
08/04/30 16:29:33
オレも引数なんてほとんど覚えてないがCreateFontは大体そらで書ける気がする

441:デフォルトの名無しさん
08/04/30 17:00:46
>>440
ほとんど 0 でいいからな。

442:デフォルトの名無しさん
08/04/30 17:00:50
ウィンドウメッセージやウィンドウスタイルの一覧はどこで定義されていますか?

443:デフォルトの名無しさん
08/04/30 17:01:42
ヘッダのフォルダに検索掛ければいいだろ!!!!!11

444:デフォルトの名無しさん
08/04/30 17:07:56
大抵はWinUser.h,CommCtrl.hあたりか

445:デフォルトの名無しさん
08/04/30 17:13:14
いきなりですが、質問です。
Office Word にAPIを使って文字を入力したい(普通の文章)のですが、
たとえば、ExcelのVBAを使用して、sheetのセルに入力された文字列
を自動的にコピーして貼り付ける(でなくてもイイんですが)にはsendmessageでWM_SETTEXTや、
WM_PASTEなどを試しましたが上手くいきませんでした。

ネット検索でよく出てくる、メモ帳へのSendmessageでは上手くいきましたが
Wordだと上手くいきません。
フリーソフトを使用して、_WwG(ウインドウの位置も視覚的に捉えられるソフト
なので、キャレット?のある部分)というクラス名まではたどり着き、10進の
ウインドウハンドルを直接入力して、試していますがダメでした。

これはSendmessageの送り先が間違っているのか、
そもそも、この方法が通用しないものなのかわかりません。

ここ数日間まったくお手上げ状態です。。。

ちなみにSendKeysなど、keyストロークを送るものではなく、
あくまでも、テキストを直接的に送ることを前提にしています。

このWordに対しての送信?が上手く行った場合、他のソフト(Officeアプリではない)
への応用を考えており、その練習用としてなのですが、
何か汎用的な方法があるものなのでしょうか?

また、メモ帳で上手くいって、Wordで上手くいかない理由とは
(いろいろあるとは思いますが)なんでしょうか?

どなたかご教授ねがいます。

長文申し訳ありません。


446:デフォルトの名無しさん
08/04/30 17:21:47
>>445
Office系は独自コントロールだからWM_**系は使えないよ
OLEオートメーションとか使うべし

447:デフォルトの名無しさん
08/04/30 17:26:08
>>445
教授できるほどAPIに詳しくはありませんが、Office系の他にもゲーム類は受け付けない可能性が高そうですね。
ターゲットアプリが判っているのなら、そのアプリでテストする方が無難でしょう。

448:デフォルトの名無しさん
08/04/30 17:31:40
>>443,444
どうもありがとうございます。

それと、もうひとつ質問があってあるウィンドウからスタイルを数値として取得したときに
それと対応する文字列?(例えば54310000なら
WS_CHILDWINDOW
WS_VISIBLE
WS_CLIPSIBLINGS
WS_VSCROLL
WS_HSCROLL
WS_MAXIMIZEBOX
を)
を取得したいと思っているのですがどのようにやればいいのでしょうか?
教えていただければ幸いです。
よろしくお願いいたします。


449:デフォルトの名無しさん
08/04/30 17:36:42
spy++

450:445
08/04/30 17:40:28
>>446
>>447

どうもありがとうございます。

OLEオートメーションを勉強して使ってみます。


451:デフォルトの名無しさん
08/04/30 17:43:12
>>450
随分と>447に対して失礼なレスだな。無視するならアンカー書かなきゃいいじゃん。

452:デフォルトの名無しさん
08/04/30 17:46:21
>>451
「どうもありがとうございます。」だけが>>447へのレスだろ

453:デフォルトの名無しさん
08/04/30 17:47:14
>>433
ぱらめーた覚えてるって自慢されてもなあ。
APIなんか一度サブクラス化してから使うから、パラメータなんかいちいち覚えないよ。


454:青
08/04/30 17:49:04
Pythonで行列の計算ってどうやればいいんですか?


455:デフォルトの名無しさん
08/04/30 17:49:35
>>448
ビットが立ってるかどうか調べて、自力でやるしかない。

456:445
08/04/30 17:52:44
>>451

申し訳ありません。

実は、本当に操作したいアプリに対しても同じ方法で試していますが
ダメでした。そのアプリは業務用で下手をするとマズいので、
似たようなインターフェイス(MDIとか)だったので先にWordで練習しようかと。。

447さん すいませんでした。

457:デフォルトの名無しさん
08/04/30 17:55:41
>>455
やはりそのような方法しかないのですね。
どうもありがとうございました。

458:デフォルトの名無しさん
08/04/30 17:55:43
それでWordでオートメーションって練習になる気がしない。
対象のアプリケーションがオートメーションを持っている可能性なんて
限り無く0に近そう。

459:デフォルトの名無しさん
08/04/30 17:58:21
文字列つっこみたいならWM_CHARとかWM_KEY*とかのほうがまだ対応してそうだが。

460:デフォルトの名無しさん
08/04/30 17:58:54
限り無く0に近いというかゼロだろ
外部から操作されることを想定していないソフトだとまず有り得ない

461:デフォルトの名無しさん
08/04/30 18:00:46
>>451
みたいなんは気にしなくておk

462:デフォルトの名無しさん
08/04/30 18:02:17
ここはSendInputだな。

463:447
08/04/30 18:14:08
別に私はあなたに教授も教示もしたわけじゃないので謝罪は不要ですが。

見た目は似たようなインターフェースでも、中身は全然違う可能性もあります。
wordで巧くいってもそのアプリで巧くいく保障にはなりませんし、業務用で下手をすると拙いのなら
もしかしたら、そうやってメッセージを調べることでリバースエンジニアリングととられて契約違反とされるかもしれませんね。

464:デフォルトの名無しさん
08/04/30 18:22:17
>>463
最後の3行は余計

誰もそんな事は聞いてないし、質問者自身が「下手をするとマズい」といってるだろう
そういうレスが雑談の元になってるのに少しは自重しろ

465:デフォルトの名無しさん
08/04/30 18:37:04
それを言うなら>463は全て不要。勿論、>464-465でさえも。

466:デフォルトの名無しさん
08/04/30 18:57:49
>>466 は必要だけどな。

467:デフォルトの名無しさん
08/04/30 18:59:57
Win32API質問箱改め雑談箱 Build65 まとめ

>>12-29
Win32APIの将来性について(雑談)
>>30-53
Win32APIの設計思想と命名について(雑談)
>>54-100
どこまでをWin32APIとするか(議論、雑談) ※結論は>>61-62
>>101-112
「話を理解してない馬鹿」(雑談、荒らし)
>>126-136
なぜ.NETでWin32APIを使うのか(雑談)
>>215-235
MAX_PATHについて(雑談)
>>324-340
sndPlaySoundと音とび(雑談)
>>400-421
真のプログラマと「知らないならレスしないでください」(雑談、荒らし)
>>424-432
今時Win32APIなんて雑談しかない(雑談)
>>433-441
引数を覚える必要はあるか?(雑談)
>>463-
雑談の雑談(仮題)

468:デフォルトの名無しさん
08/04/30 19:07:12
質問箱もbuild65で終焉か・・・
荒らしも酷いことしやがる

469:デフォルトの名無しさん
08/04/30 19:08:41
>>467


470:デフォルトの名無しさん
08/04/30 20:00:22
自演乙

471:デフォルトの名無しさん
08/04/30 20:02:06
終わらんよ
俺が次スレを立てる限り

472:デフォルトの名無しさん
08/04/30 20:11:50
こうして雑談は続く

473:デフォルトの名無しさん
08/04/30 20:16:19
適当に雑談するにはもってこいのWin32APIw

474:デフォルトの名無しさん
08/04/30 20:52:34
まあ技術の進歩が止まって渇れてるから雑談だらけなのは仕方ないな
DOSやMSXなんかと同じ

475:デフォルトの名無しさん
08/04/30 22:09:55
レスが流れたので一応
>>378
>>416

476:デフォルトの名無しさん
08/05/01 00:56:35
こうしてこのスレはくそみそな結果に終わるのでした

477:デフォルトの名無しさん
08/05/01 00:58:18
デュアルやクアッドプロセッサ搭載のPCでは,
各プロセスにどのCPUコアを割り当てるか,タスクマネージャで設定できますが,
これと同じようなことが出来るAPIってありますか?

プロセスが使用するCPUコアを指定したいのです。

478:デフォルトの名無しさん
08/05/01 01:04:18
SetProcessAffinityMask かな。

479:デフォルトの名無しさん
08/05/01 01:10:54
>>478
おおまさに探し求めていたものですありがと~

480:デフォルトの名無しさん
08/05/01 22:38:05
大政小政

481:デフォルトの名無しさん
08/05/02 00:13:00
CSVのデータを読み込みたいのですが
strtok以外によい方法はありませんか?

482:デフォルトの名無しさん
08/05/02 00:17:09
まあ、strchr を使うとか、1文字ずつ普通に比較して行くとか、
そんなところじゃね。

ところで、コンマを含むデータを扱わない前提でいいのか?

483:デフォルトの名無しさん
08/05/02 00:17:56
スレ違いだけど、strtok()使うくらいならsscanf()で"%[^,],%n"

484:デフォルトの名無しさん
08/05/02 00:23:24
それ用のAPIみたいなのは無いみたいですね
言われてみればsscanfのほうが簡単に書けそうです
コンマは扱わないのでsscanfでやってみます。ありがとう。

485:デフォルトの名無しさん
08/05/02 00:41:08
このスレらしいものを挙げるとしたらODBCとかExcelオートメーションとかかな。
微妙にスレ違いのメンツだけど。


486:デフォルトの名無しさん
08/05/02 00:45:12
ADO.NET
・・もスレ違いか

487:デフォルトの名無しさん
08/05/02 01:15:11
パーサ書いてもたいした手間じゃない気もするが

488:デフォルトの名無しさん
08/05/02 01:37:03
CSVには明確な企画が存在しないからどの程度の方言を許容するかでえらい大変なことに。

489:デフォルトの名無しさん
08/05/02 01:43:55
>488
RFC4180

490:デフォルトの名無しさん
08/05/02 01:48:49
規格があっても皆が従わなければ意味がない。
CSVじゃないけどよくあるMicrosoft独自仕様とか。

491:デフォルトの名無しさん
08/05/02 01:56:11
どっちかってーとExcelCSVが標準というかなんとゆーか。

492:デフォルトの名無しさん
08/05/02 02:00:42
>>489
あれ参考情報じゃなかったか?

493:デフォルトの名無しさん
08/05/02 02:25:51
何でも言える事だがルールが全てじゃないしな
間違ったルールだってある

494:デフォルトの名無しさん
08/05/02 09:28:34
>>490-494
そういう雑談ネタはいいから。

495:デフォルトの名無しさん
08/05/02 10:14:38
>>494
そういうレスはいいから。

496:デフォルトの名無しさん
08/05/02 10:29:22
>>495
そういうレス(ry

497:デフォルトの名無しさん
08/05/02 10:33:54
>>496
そういう(ry

498:デフォルトの名無しさん
08/05/02 10:37:33
次の奴、「(ry」とか書いたら樹海行きな

499:デフォルトの名無しさん
08/05/02 10:37:56
(ry

500:デフォルトの名無しさん
08/05/02 10:52:52
こうして雑談は続く

501:デフォルトの名無しさん
08/05/02 11:50:35
・・・3年後

502:デフォルトの名無しさん
08/05/02 11:56:28
・・・7年後

503:デフォルトの名無しさん
08/05/02 11:57:13
・・・11年後

504:デフォルトの名無しさん
08/05/02 12:00:30
・・・13年後

505:デフォルトの名無しさん
08/05/02 12:08:24
・・・17年後

506:デフォルトの名無しさん
08/05/02 12:28:45
そして誰もいなくなった

507:デフォルトの名無しさん
08/05/02 12:29:09
Win32API質問箱改め雑談箱 Build65 まとめ

>>12-29
Win32APIの将来性について(雑談)
>>30-53
Win32APIの設計思想と命名について(雑談)
>>54-100
どこまでをWin32APIとするか(議論、雑談) ※結論は>>61-62
>>101-112
「話を理解してない馬鹿」(雑談、荒らし)
>>126-136
なぜ.NETでWin32APIを使うのか(雑談)
>>215-235
MAX_PATHについて(雑談)
>>324-340
sndPlaySoundと音とび(雑談)
>>400-421
真のプログラマと「知らないならレスしないでください」(雑談、荒らし)
>>424-432
今時Win32APIなんて雑談しかない(雑談)
>>433-441
引数を覚える必要はあるか?(雑談)
>>463-474
なぜ雑談が多いのか(雑談)
>>490-506
規格なんてクソ食らえ(雑談、荒らし)

508:デフォルトの名無しさん
08/05/02 12:37:55
CSVはboost::spiritにサンプル実装があったような

509:デフォルトの名無しさん
08/05/02 12:41:36
つまり、このスレ的な回答で言うと、
そんなAPIは無いという事で

510:デフォルトの名無しさん
08/05/02 12:52:38
結論:CSVぐらい自分でパースしろ

--終了--

511:デフォルトの名無しさん
08/05/02 12:54:32
Excel 関連の COM に何かあればいいんだろうけどねえ。

512:デフォルトの名無しさん
08/05/02 13:04:01
ADOでJET使えばいいじゃない

513:デフォルトの名無しさん
08/05/02 21:13:23
同一スレッド以外からのSend/PostMessageをブロックしたいけど無理ですか?

514:デフォルトの名無しさん
08/05/02 21:14:58
>>513
WM_PAINT WM_KEYDOWN WM_??? は誰が投げますか?

515:デフォルトの名無しさん
08/05/02 21:17:02
>>514
WM_APPとかの話

516:デフォルトの名無しさん
08/05/02 21:17:40
なら最初からそう書けと・・・

517:デフォルトの名無しさん
08/05/02 21:21:33
それぐらい察してほしかったってのが本音

同一スレッド以外からSend/PostMessageされたWM_APP+???をブロックしたいけど無理ですか?

518:デフォルトの名無しさん
08/05/02 21:36:27
他スレッドから投げられたものか判断する方法は分かるが。

519:デフォルトの名無しさん
08/05/02 21:50:55
>>518
教えてください

520:デフォルトの名無しさん
08/05/02 21:52:46
それぐらい察してほしかったってのが本音

521:デフォルトの名無しさん
08/05/02 21:53:54
>>519
それくらい君のテレバス能力で察しろ

522:518
08/05/02 21:56:31
「またフックか」って言われるから言いたくないとだけ

523:デフォルトの名無しさん
08/05/02 21:56:39
>>520-521
そのようなレスは不要です

524:デフォルトの名無しさん
08/05/02 21:58:03
それぐらい察してほしかったってのが本音

525:デフォルトの名無しさん
08/05/02 21:59:55
>>522
フックしないと無理なら諦めます

まぁデスクトップのListViewに
PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
とかすると落ちるから無理だろうとは思ってたけど

なんでどのスレッドからのメッセージなのか取得するAPIを用意してないのかなぁ

526:デフォルトの名無しさん
08/05/02 22:01:22
それぐらい察してほしかったってのが本音

527:デフォルトの名無しさん
08/05/02 22:39:13
よそのスレッドからSendされているかどうかは
InSendMessageやReplyMessageの戻り値を見ればわかる。
この関数、Postは無理だけど。

528:デフォルトの名無しさん
08/05/02 22:48:55
527を今日一番輝いていたレスに認定

529:デフォルトの名無しさん
08/05/02 22:54:24
>>527
そんな函数あるのか……と思ったらマジでありやがるw
MSすげぇw 知ってるおまえさんもすげぇww

530:513
08/05/02 23:07:28
>>527
ありがとうございます

531:デフォルトの名無しさん
08/05/02 23:26:09
>>514-526で煽ってる人、知らないならレスしなくていいよ。
ウザイだけだから。

532:デフォルトの名無しさん
08/05/02 23:53:22
え?やだよ?

533:デフォルトの名無しさん
08/05/03 00:06:35
>>529
MSDNで関連API一覧を眺めるとかしようぜ。
メッセージ関連なんて20個くらいしかないんだから。

534:デフォルトの名無しさん
08/05/03 00:11:53
>>532
死ね

535:デフォルトの名無しさん
08/05/03 00:20:46
>>534
はぁ?なんで?

536:デフォルトの名無しさん
08/05/03 00:37:54
>>535

537:デフォルトの名無しさん
08/05/03 00:41:22
>>534,536

538:デフォルトの名無しさん
08/05/03 00:42:35
>>532=>>534=>>535=>>536=>>537
自演乙

539:デフォルトの名無しさん
08/05/03 00:44:21
それぐらい察してほしかったってのが本音

540:デフォルトの名無しさん
08/05/03 00:45:53
↑話を理解してない馬鹿

541:デフォルトの名無しさん
08/05/03 04:33:30
経験不足の奴には察することはできない。

542:デフォルトの名無しさん
08/05/03 04:36:20
>>517
>>527
で終了するやりとりを延々と引っ張るなよ

543:デフォルトの名無しさん
08/05/03 07:12:30
そもそもWM_PAINTやWM_KEY**、WM_MOUSE**などは
普通はOSが内部でPostしてるメッセージだから
>>514のような疑問を持つ奴にまともな回答なんてできるはずが無い。
というわけで>>514君には荒れた責任を取ってもらおう。

544:デフォルトの名無しさん
08/05/03 08:54:15
C++初心者です。
ファイルマッピングとかどうやって使えますか?

545:デフォルトの名無しさん
08/05/03 09:21:34
ググれカス

546:デフォルトの名無しさん
08/05/03 09:35:21
「ググれカス」とはどういう意味ですか。
何語ですか?


547:デフォルトの名無しさん
08/05/03 09:41:04
C言語

548:デフォルトの名無しさん
08/05/03 09:55:50
>>546
日本語

グーグルで調べろよこのカスが!
って意味

549:デフォルトの名無しさん
08/05/03 11:06:16
通りがかりですみませんが、>>525 を見ての便乗質問です。

> デスクトップのListViewに
> PostMessage(hwnd, LVM_INSERTITEM, 0, 0xcccccccc);
> とかすると落ちる

これって、単に LVM_INSERTITEM における実装の怠慢なのでしょうか。
それとも、一般にウィンドウプロシージャ側ではポインタとして
与えられたパラメータの妥当性はチェックしないものなのでしょうか。

推測ですが、いちいちポインタの妥当性をチェックするのは面倒だし
実行時間もかかるので、チェックは行っていないような気がします。
しかしそうすると、他のプロセスからのウィンドウメッセージによる
攻撃を受け入れてしまうことになりますよね。

先輩プログラマの皆さんはどのようにコーディングされていますか?

550:デフォルトの名無しさん
08/05/03 11:34:17
よっぽどセキュリティに気をつかった実装でもなけりゃ、他のプロセスからの
悪意のメッセージ攻撃なんて想定しない。
悪意のあるプロセスが実行されている時点でそのマシンはもうダメなんだし、
ターミネートプロセスされたらどうするんだって話になる。

ただ、パラメータチェックすること自体は、
バグ対策とか、モジュールの独立性確保の意味で普通にやるだろ。

551:デフォルトの名無しさん
08/05/03 11:40:58
そもそもプロセス超えているんだから、おまえのメモリアドレス渡しても動くわけが無いだろ。
ちょっとは考えろよ。
Windowsが面倒を見てくれるのは一部の文字列をやり取りするメッセージだけだ。
LVM_INSERTITEMはWM_USERなんだから、ウインドウクラス独自のメッセージなんだよ。
だからプロセスをまたいでやり取りはできない。
どうしてもやりたきゃ、相手のプロセスにコード注入しやがれ。


552:デフォルトの名無しさん
08/05/03 11:49:53
> LVM_INSERTITEMはWM_USERなんだから
ハイ、知ったか乙

553:デフォルトの名無しさん
08/05/03 12:15:11
WM_USERは0x0400~0x7FFFで、LVM_INSERTITEMは0x1000 +7 or +77だから
WM_USERの範囲内にあるな。

554:デフォルトの名無しさん
08/05/03 12:21:15
WM_USERなんて名前だから、自作アプリの独自メッセージはそこから使えって意味だと思ってた俺。
そういうのはWM_APPからって、ややっこしいんだよ!逆だろ名前!
せめてWM_USERだけでもなんとかならんかったのか。


555:デフォルトの名無しさん
08/05/03 12:26:55
WM_USER+???を使っている物(Toolbarなど)と、そうでない物(ListViewなど)があるのは何故だろう
何か理由でもあるのだろうか・・・

>>554
Win16→Win32でコモンコントロールが大量に追加されてWM_USER未満では足りなくなったから
WindowsのコントロールがWM_USER以降を使うようになってWM_APPが定義されたかと

Win16時代のAPIヘルプにはこう書いてある。

> 0~WM_USER - 1  Windowsが使用するために予約されているメッセージです。
> WM_USER~0x7FFF プライベート ウィンドウ クラスが使用する整数メッセージです。
> 0x8000~0xBFFF  Windowsが使用するために予約されているメッセージです。
> 0xC000~0xFFFF  アプリケーションが使用する文字列メッセージです。

556:デフォルトの名無しさん
08/05/03 12:31:46
こういう話は面白いから許容

557:デフォルトの名無しさん
08/05/03 12:34:06
WM_USERはuser32.dllが使う場所かと思っていました

558:549
08/05/03 13:03:19
>>550
どうもありがとうございます。そういうことになりそうですね…。
確かに、他から TerminateProcess できてしまうことを考えると、
悪意のある攻撃を想定することはあまり意味がないですね。

>>551
>>549 の説明不足でしたかね…すみません。
ポインタの値が、プロセス境界を超えた時点で意味がなくなることは理解しています。
動作させたいのではなく、他のプロセスからの無意味なアクセスを拒否したかったのです。

559:デフォルトの名無しさん
08/05/03 13:17:38
>>558
じゃ具体的にどうやるんだ。
誰がメッセージを送ったのか知る方法は無いぞ。

アドレスだって、予約されてるとか、コミットされてるぐらいしかわからん。

560:デフォルトの名無しさん
08/05/03 13:19:10
同一デスクトップ内の同一権限のアプリにイタズラされることを想定するなんて
かなーり無意味なことだと思うが

561:デフォルトの名無しさん
08/05/03 14:16:05
そういう事が簡単に出来てしまうのもどうかと思うぞ
今更変えられないのも分かるけどな

562:549
08/05/03 14:18:00
>>559
アドレスから直接判断するのは難しいので、例えば __try ~ __except の
中で中身を読んで値をチェックすれば可能かなと思っていました。
もちろん、この方法にも限界があるような気はしますけど…。

>>560
そうかもしれません。ただ、仮に攻撃を想定しないでコーディングして、
>>525 に書かれているようなことをされてアプリが落ちてしまったとき、
実際は送った側に問題があるにもかかわらず、落ちたアプリの側に
問題があるように見えてしまうのが気持ち悪かったというのはあります。

563:デフォルトの名無しさん
08/05/03 14:46:14
気持ち悪さの解消のためにここまで引っ張ったのかよ

あほらしい

564:デフォルトの名無しさん
08/05/03 14:59:13
↑話を理解してない馬鹿

565:デフォルトの名無しさん
08/05/03 15:04:37
↑話を理解してない馬鹿

566:549
08/05/03 15:07:30
>>563
ちょっと気になったものですから、この機会に質問させていただきました。
私の疑問は >>550 さんのお返事で解消できましたのでこれにて消えることにします。
他にも不快な思いをした方がいらっしゃいましたら、申し訳ありませんでした。

567:デフォルトの名無しさん
08/05/03 15:09:52
vertualalloc使えば、相手プロセスがアクセス出来たんだったかな

これは、それ使ってるんじゃない?
URLリンク(www.yoshibaworks.com)

568:デフォルトの名無しさん
08/05/03 15:13:19
>>567
それはVirtualAlloc、WriteProcessMemory、CreateRemoteThread辺りでDLL注入してるだけじゃないの

569:デフォルトの名無しさん
08/05/03 15:13:58
IsBadReadPtr でも使っとけ

570:デフォルトの名無しさん
08/05/03 15:20:18
>>569
obsoletedだ馬鹿

571:デフォルトの名無しさん
08/05/03 15:29:02
ところで、obsoleteを動詞として使う用法ってどの程度一般的なの?
辞書によっては載ってるのと載ってないのとあるんだけど。

572:デフォルトの名無しさん
08/05/03 15:29:08
vertualalloc(笑)
どこをどうすればそんな勘違いして覚えられるんだよww

573:デフォルトの名無しさん
08/05/03 15:31:30
ローマ字読みです

574:デフォルトの名無しさん
08/05/03 15:33:58
URLリンク(www.rfc-editor.org)

obsoletedなんて単語はrfcでも使われてないな

575:デフォルトの名無しさん
08/05/03 16:19:20
>>573
ローマ字読みでもベーチャルだろ
つうかAPI名をスペルミスする奴は打ち慣れてない(=スキルが浅い)証拠だと思うな

で、誰だよSHStripMneumonicなんてミスした奴w
せめて#defineで間違ってない名前でも定義しとけっつーの

576:デフォルトの名無しさん
08/05/03 17:00:58
>>571
m-wによると、1640年からだそうだ。
--
Main Entry: 2obsolete
Function: transitive verb
Inflected Form(s): obsolet・ed; obsolet・ing
Date: 1640
: to make obsolete
--

577:デフォルトの名無しさん
08/05/03 17:48:34
>>571はどの程度一般的かを聞いてるのであって
何時から使われ出したかなどとは聞いていない

578:デフォルトの名無しさん
08/05/03 23:04:35
外野は黙っとけの典型例だな。なに文句付けてるんだか。

579:デフォルトの名無しさん
08/05/03 23:12:46
>>578
お前も外野だろ
そして俺も

580:デフォルトの名無しさん
08/05/03 23:13:53
BNCで引いたらobsoletedを動詞で使ってる用例が3件だけあった。形容詞は340件だった。

581:デフォルトの名無しさん
08/05/04 00:14:19
くだらん足の引っ張り合いしてんなよ。見苦しい。

ところで、自作アプリ内で動画再生したいんだけど、Media PlayerとDirect Showどちらを使うのが良い?


582:デフォルトの名無しさん
08/05/04 00:17:24
好きな方を使うとよい

583:デフォルトの名無しさん
08/05/04 00:56:22
エディットコントロールでDrawTextのDT_WORDBREAKみたいに自動で改行してくれるように
するにはどうすればいいですか?

584:デフォルトの名無しさん
08/05/04 01:52:30
横スクロールバーを消す

585:デフォルトの名無しさん
08/05/04 02:34:26
>>581
自前でデコード+DirectGraphicsで描画

586:デフォルトの名無しさん
08/05/04 02:59:12
>>584
ありがとう、できた

587:デフォルトの名無しさん
08/05/04 03:28:57
DialogBoxやCreateDialogを使わず、CreateWindow等を使って同じ事をする場合、どう書きますか

588:デフォルトの名無しさん
08/05/04 03:56:52
ひたすらコントロールを作りまくる

589:デフォルトの名無しさん
08/05/04 05:39:07
>>588
dialog base unitの座標変換もやってる?
絵とか貼ると、どうせズレるからおれは無視してる。


590:デフォルトの名無しさん
08/05/04 05:45:56
そんな物無視でいいだろ
無視しないで中途半端に絵とか貼ってもXPのダイアログみたいに
アイコンやビットマップが潰れてかえって見づらいだけ

591:デフォルトの名無しさん
08/05/04 05:47:47
質問が悪かったです。
DialogBox等はCreateWindowExを使ってダイアログを生成してると書いてありました。
どのようにCreateWindowExを使ってるのか知りたかったです。

592:デフォルトの名無しさん
08/05/04 06:23:19
>>581
VFW関数にフレームを1枚ずつデコードしてもらってGDIで描画

593:デフォルトの名無しさん
08/05/04 06:52:32
>>591
Old New Thingの本によくまとまっている。
邦訳版は「Windowsプログラミングの極意」
10.4.2のあたり。

594:デフォルトの名無しさん
08/05/04 06:56:25
old new thingの本というならば、リンクぐらい貼ってやれよ。
今すぐ読めるんだから。

だいたいこのあたりか。
URLリンク(blogs.msdn.com)
URLリンク(blogs.msdn.com)

595:デフォルトの名無しさん
08/05/04 14:37:22
こんにちは。DelphiスレでAPIスレで聞いた方がいいとアドバイスがあったので、質問します。
とりあえずマウスのフックとキーボードが押されたときに反応する(フックっていうのか?)のはできるんだけど、
電卓の例の場合はどういう種類のフック使うんでしょうか?
電卓のプログラム(OSに搭載されている)の3のボタンを9っていう数字に変えたいんですけど(というより3を押すと9を押したときと同じ動作に)

596:デフォルトの名無しさん
08/05/04 14:51:06
キー入れ替えソフト使ったほうが早いような・・・レジストリいじるやつ

597:デフォルトの名無しさん
08/05/04 14:57:32
どうしてもやりたいんであれば
対象ウィンドウのウィンドウプロシージャを入れ替えるとか…

お行儀のいい方法ではないよ

598:デフォルトの名無しさん
08/05/04 15:27:44
ていうか3を9に変えたいなんて不可解な行為の理由が激しく気になる
テンキーを携帯電話の配列にしたいの?

599:デフォルトの名無しさん
08/05/04 15:31:53
>>597
なんかDelスレでSetWindowsExで可能になると聞いたんですが、これを使うとなるとどのようにフックすればよろしいのでしょうか?

入れ替えるというより、3を押されたことを確認したら9というメッセージを変わりに送るという事はできますでしょうか?

600:デフォルトの名無しさん
08/05/04 15:32:50
>>598
とくに意味はないんですが、好奇心です^^



601:デフォルトの名無しさん
08/05/04 15:50:34
>>599
WriteProcessMemory、CreateRemoteThreadを使って相手プロセスにDLLを入れる
GetWindowLongでターゲットウィンドウのウィンドウプロシージャの前に自前のウィンドウプロシージャを挿入
ウィンドウメッセージのキーコードを見張って書き換えてから元のウィンドウプロシージャに渡す

602:デフォルトの名無しさん
08/05/04 15:56:59
>>601
ありがとうございます。
DLL INjectionってやつですか?
流れ書いてくれたおかげで、できそうです。
どうもありがとうございました。


603:デフォルトの名無しさん
08/05/04 16:01:22
どうしてこうフックまがいの話ばかりに…

604:デフォルトの名無しさん
08/05/04 16:14:45
便利だからじゃない、フック。
フックでアプリをファックするわけだよ。ぷぷっ

605:デフォルトの名無しさん
08/05/04 16:25:03
ほとんどが悪用だからな

606:デフォルトの名無しさん
08/05/04 16:52:50
ここで質問するような奴は悪用できないだろう。常考

607:デフォルトの名無しさん
08/05/04 16:54:30
>>601
そんな面倒な方法を取らなくてもできるだろ
ホント、フック厨は短絡思考だな

608:デフォルトの名無しさん
08/05/04 17:15:23
>>607
だったら書いてやれよw 悪態ついてないでさ。

609:デフォルトの名無しさん
08/05/04 18:13:53
SetWindowsHookExをMSDNで調べれば>>601のような面倒な手段を取る必要が無いぐらい分かるだろう
回答者がその程度のスキルじゃ質問者が可哀想だ

610:デフォルトの名無しさん
08/05/04 18:19:08
どうだろ。
別にフックする事が目的でないんなら601のような回答でも問題はないような。

611:デフォルトの名無しさん
08/05/04 18:40:51
キーイベントを弄るだけにWriteProcessMemoryやCreateRemoteThreadを使うのはナンセンス

612:デフォルトの名無しさん
08/05/04 20:21:58
>>609
SetWindowsHookEx
を使うとしたら、
SetWindowsHookEx(? @HookProc, HInstance, 0);
第一引数はなに使うんだ?

613:デフォルトの名無しさん
08/05/04 21:04:29
>>612
WH_GETMESSAGEかな。

GETMESSAGEフックならWM_KEYDOWN拾えるし
メッセージやパラメータの書き換えも出来たはず。

多分ね。

614:デフォルトの名無しさん
08/05/04 21:38:12
現在マウスのボタンが押下されてるかどうかを知る方法ってありますか
キーでいうGetAsyncKeyStateのマウス版がほしいのですが・・・

615:デフォルトの名無しさん
08/05/04 21:42:46
>>613
595読むとマウスでボタンクリックされた場合も考慮する必要がありそうだからダメだと思う。
SetWindowsHookEx はプロセスへのDLL注入目的に使うのかと思ったら違ったのか。

>>612
自分なら SetWindowsHookEx でプロセスを注入、メッセージ投げてフックプロシージャ内から
SetWindowLongPtr でウィンドウプロシージャの差し替えってやりそう。

616:デフォルトの名無しさん
08/05/04 21:44:55
>>614
MSDN の GetAsyncKeyState の項目に
> GetAsyncKeyState 関数は、マウスボタンの状態も取得できます。
> ただしこの関数は、物理的なボタンのマップ先である論理的なマウスボタンの
> 状態ではなく、物理的なマウスボタンの状態を取得します。
って書いてあるけど、ダメなの?

617:デフォルトの名無しさん
08/05/04 21:47:17
>>615
orz

キーボードだけだと思ってた。ごめんね。

618:デフォルトの名無しさん
08/05/04 21:51:18
流れも読めない奴がレスすべきではない。

と煽ってみる。

619:デフォルトの名無しさん
08/05/04 21:51:18
どないしたらWindowsアプリ

620:デフォルトの名無しさん
08/05/04 21:51:43
>>619
気になるので最後まで書き込んでください。

621:デフォルトの名無しさん
08/05/04 21:52:55
>>615
ボタンの位置をMoveWindowで動かして変えればいいんじゃね?

てかいつの間にか電卓のボタンがButtonコントロールになってるんだな
Win98以降文字が小さくなって見づらいと思っていたらそれが原因か

622:デフォルトの名無しさん
08/05/04 21:56:36
>>621
感動した。なんてスマートな方法なんだ。

623:デフォルトの名無しさん
08/05/04 22:03:07
>>615
まず何をフックするかじゃね?
この場合は3を押された事をフックするから何使うかわからないが・・・。


624:デフォルトの名無しさん
08/05/04 22:11:53
自分で電卓作ればよくね?



いや、電卓のUIだけ作って見えない本物のcalc.exeに計算させるとか。

625:デフォルトの名無しさん
08/05/04 22:12:19
電卓の改造 ~結論~

・calc.exeをリソースエディタで書き換える
 原則的に、フックやDLL注入などで動的に書き換える必要があるのは
 対象アプリが限定されていない場合、または対象アプリがCRCやMD5などで改竄チェックしている場合に留めるべき

・どうしてもフックで解決したいならSetWindowsHookEx(WH_GETMESSAGE)でWM_COMMANDを書き換える
 キー(0~9、+-*/など)を押された場合もアクセラレータテーブルに基づいて
 TranslateAcceleratorがWM_COMMANDを発行するようになっている

626:デフォルトの名無しさん
08/05/04 22:23:08
>>619
何を書き込もうとしたのか気になって昼寝ができませんでした。

627:デフォルトの名無しさん
08/05/04 22:36:04
>>626
ヨーロッパ辺りに住んでる人ですか?

628:デフォルトの名無しさん
08/05/04 22:36:19
>>616
失礼シマスタ・・・
キーだけだとばかり・・・

629:デフォルトの名無しさん
08/05/04 22:47:51
619は書き込んでる途中で来客か何かあったんだろう。
鼻歌を歌ってて、おっと、ここは用心しなければ。な事態になったとかな。

630:デフォルトの名無しさん
08/05/04 22:55:25
猫とwisdomが久しぶりに更新。
改訂第3版とな?

631:デフォルトの名無しさん
08/05/04 22:58:02
誰があんなとこ見てんだよ

632:デフォルトの名無しさん
08/05/04 23:02:36
久米井もよくやるもんだw

633:デフォルトの名無しさん
08/05/04 23:10:50
Win32APIの解説サイトってあまり良質な所は無いよね
まあそれに気づくのはスキルがそこそこ付いてきた頃だけど

この辺、Javaや.NETとかの解説サイトはどうなんだろう・・・

634:デフォルトの名無しさん
08/05/04 23:17:55
良質な所って例えばどこ?

635:デフォルトの名無しさん
08/05/04 23:44:01
完全無欠なサイトなど存在しない

636:デフォルトの名無しさん
08/05/04 23:46:01
↑話を理解してない馬鹿

637:デフォルトの名無しさん
08/05/04 23:51:22
どんな(へぼ)サイトでも役に立つよ

638:デフォルトの名無しさん
08/05/05 00:53:40
これ読めよ
URLリンク(www.amazon.co.jp)

639:デフォルトの名無しさん
08/05/05 02:48:04
SetForegroundWindow() するとウィンドウが最前面に来るけど、フォーカスだけを
当てて、ウィンドウは動かさない方法ない?

640:デフォルトの名無しさん
08/05/05 03:05:05
SetWindowPosでできそうな気がしたけど、URLリンク(msdn.microsoft.com)

641:デフォルトの名無しさん
08/05/05 03:06:24
途中で書き込んでしまった..。

SetWindowPosでできそうな気がしたが、できないようですね..。
URLリンク(msdn.microsoft.com)

642:デフォルトの名無しさん
08/05/05 03:39:35
ワロタ。じゃあ書くなよw

643:デフォルトの名無しさん
08/05/05 11:26:12
>>639
何のためにWin98でSetForegroundWindowの仕様が変更されたのかよく考えてみよう


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