Win32API質問箱 Build ..
[2ch|▼Menu]
405:デフォルトの名無しさん
09/08/24 06:50:07
>>403
通知が来る

406:デフォルトの名無しさん
09/08/24 10:46:40
落ちたことを検知する方法なんて無いでしょ

407:デフォルトの名無しさん
09/08/24 10:51:58
ログオフなどによる正常な終了と落ちたことを区別するのは困難だな

408:デフォルトの名無しさん
09/08/24 13:42:20
>>404
>>386
タスクマネージャー消失が地味に困る

409:デフォルトの名無しさん
09/08/24 13:55:43
>>408
それはexplorerが落ちたときにどうするつもりなの?
普通は再起動時に何とかするもんじゃないかね。
TaskbarCreated を RegisterWindowMessageして通知来たら再登録でいいじゃない。

410:デフォルトの名無しさん
09/08/24 14:14:57
GetOpenFileNameでファイル選択ダイアログを開くと
選択したファイルを右クリックしても、ポップアップメニューが表示されない事があるんだが
これはどういう場合に発生する?

411:デフォルトの名無しさん
09/08/24 14:48:06
・シェルが落ちて再起動したらTaskbarCreatedを送ってあげるのでソフト側で対応しろ
・シェルが4秒以上ハングアップしてるとタイムアウトしてあげるので
APIが失敗した場合はLastErrorチェックしてソフト側で対応しろ

落ちたりハングアップしないシェルを作れよw

412:デフォルトの名無しさん
09/08/24 14:50:00
いやユーザーが強制的に落とすこともできるし

413:デフォルトの名無しさん
09/08/24 15:19:01
タスクバーのプロセスをシェルから分離して、フックなどの侵入を許さない設計にすればいいのにねぇ

ま、そうなるとTClock愛好者は困るだろうけどw

414:デフォルトの名無しさん
09/08/25 03:49:44
case WM_TIMER:
hoge() ;
break ;

見たいな感じでsettimerでセットした時間で呼び出す関数hogeがあったとして
前回のhogeの実行が終わってない状態で時間が来てhogeが呼び出された
場合どういう風に処理されるんでしょうか?

415:デフォルトの名無しさん
09/08/25 03:55:41
どうしてそういう心配をしないといけないのかさっぱりわからない

416:デフォルトの名無しさん
09/08/25 06:51:48
メッセージのヘルプぐらい読めよとしか言いようがない。

417:デフォルトの名無しさん
09/08/25 09:45:31
>>414
メッセージは1つずつ順番に処理される。
1回目のWM_TIMER呼び出しからreturnされていないのなら、その他のメッセージが処理されることはない。

ついでにいうと、hoge()が処理している間ウインドウを動かすメッセージとかも処理されないわけだから、
ウインドウが固まったようにユーザーは思うはず。
メッセージ処理の中であまり思い処理をやらないように

418:デフォルトの名無しさん
09/08/25 10:11:44
WM_TIMER のなかで無限ループしてる人ときどき見かけるよね

419:デフォルトの名無しさん
09/08/25 10:43:24
その場合はhogeが延々と呼び出され続けるのでプログラムがハングアップしてしまう
そこでメッセージ処理の中ではあまり重い処理をやらないようにしなければならない

初期のWindowsのころはハードウェアの処理能力が少なかったのでよくPCがフリーズしたが
最近は十分な処理能力があるので少々重い処理をしても大丈夫になった

420:名無し学生
09/08/25 10:56:43
Visual Basic の課題で困っております。
誰かお答えください。本当に助けてください。

1.Visual Basicの関数で数値を文字に直すCStr()とStr()の違いについて

2.戻り値の違いが確認できる方法を考え、戻り値の違いについて実際に確認し、
  その確認方法と違いを具体的に述べよ。
注意:実際にやったことと、確認した違いを簡潔かつ具体的に書くこと。

3.下記の計算結果などから、Visual Basicで計算できる数値の桁数について考察をまとめ、
  何故そのような制限があるかについて理由を答えよ
  1) 48 x 100 - 81
  2) 12 ÷ 9.3 x 247
  3) 0.2 - 12 ÷ 69
  4) -12 ÷ 100 + 100

421:デフォルトの名無しさん
09/08/25 11:06:23
URLリンク(www.google.co.jp)()%E3%81%A8Str()%E3%81%AE%E9%81%95%E3%81%84&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=

422:デフォルトの名無しさん
09/08/25 11:54:10
助ける訳ねーだろ
このスレには弱者蹴り落として喜ぶサドしかいねーよ

423:デフォルトの名無しさん
09/08/25 11:56:18
>>420
スレ違いしねくず

424:デフォルトの名無しさん
09/08/25 12:03:54
>>419
ウィンドウプロシージャは10ミリ秒以内に処理を返せみたいな制限があったはず
今はどうだか知らないけど

425:デフォルトの名無しさん
09/08/25 12:17:58
マルチポスト報告スレ
スレリンク(tech板)

スレリンク(tech板:688番)
スレリンク(tech板:183番)
スレリンク(tech板:793番)
スレリンク(tech板:388番)
スレリンク(tech板:601番)
スレリンク(tech板:408番)
スレリンク(tech板:711番)
スレリンク(tech板:279番)
スレリンク(tech板:60番)
スレリンク(tech板:937番)
スレリンク(tech板:963番)
スレリンク(tech板:547番)
スレリンク(tech板:861番)
スレリンク(tech板:420番)

426:デフォルトの名無しさん
09/08/25 12:20:22
運営に報告すればいいだろ

427:デフォルトの名無しさん
09/08/25 13:59:18
アプリケーション内でユニークなIDを発行するAPIはありますか?
インスタンス全てにIDを付けたいのですが・・・


428:デフォルトの名無しさん
09/08/25 14:05:33
>>420
課題やってみた。

1.CStr は漢数字 (chinese string の略)、Str はアラビア数字。

2.
Function Func() As String
 Return "違い"
End Function
'確認
MessageBox.Show(Func())

"違い" と書かれたメッセージ ボックスが表示されることから、
関数 Func() において、戻り値の "違い" が確認できる。

3.
1) “約 4000”
2) “約 300”
3) “約 0”
4) “実行時エラー: -12 って何?おいしいの?”

以上から、Visual Basic の中の人は算数が苦手な小学生と考えられる。

429:デフォルトの名無しさん
09/08/25 14:05:37
カウントしてけばいいだけ

430:デフォルトの名無しさん
09/08/25 15:50:08
>>427
インスタンスのアドレスはユニーク。


431:デフォルトの名無しさん
09/08/25 15:54:55
>>430
不要物を解放できなくないか

432:デフォルトの名無しさん
09/08/25 16:01:33
ハァ?

433:デフォルトの名無しさん
09/08/25 16:06:47
不要物って何だ

434:デフォルトの名無しさん
09/08/25 16:19:20
老廃物にきまってるだろ

435:デフォルトの名無しさん
09/08/25 16:30:47
nullpo

436:デフォルトの名無しさん
09/08/25 16:45:17
>>417-419
丁寧にありがとうございます!
やっと今自分のプログラムで起きてることが
理解できました(^ω^;)

437:デフォルトの名無しさん
09/08/25 17:24:40
>>427 uuidなんかどうよ

438:デフォルトの名無しさん
09/08/25 17:45:43
だからそもそもインスタンス自体がユニークだろが

439:デフォルトの名無しさん
09/08/25 17:47:00
アプリケーション内でって言ってんだからアドレスで十分だわ

440:デフォルトの名無しさん
09/08/25 18:00:18
解放後に同じアドレスを割り当てられても問題が無いのか

441:デフォルトの名無しさん
09/08/25 18:01:49
開放後もID持ち続けるとかどういうクソ構造だよ

442:デフォルトの名無しさん
09/08/25 18:42:53
438-441
ワロタ

443:デフォルトの名無しさん
09/08/25 20:36:44
笑う所なんて無いじゃん
頭おかしいのか?

444:デフォルトの名無しさん
09/08/25 20:38:01
ユニークだからか?

445:デフォルトの名無しさん
09/08/25 20:53:26
Vous ette original hahaha.

446:デフォルトの名無しさん
09/08/25 23:23:06
UNICODEにも対応するプログラムを書くときに
文字列を受け取る処理を書くときって

TCHAR szBuffer[256];
sizeof(szBuffer) / sizeof(szBuffer[0])

ってやらないと駄目だよね?

UNICODEだと、szBufferはwchar_tだから、sizeof(szBuffer)だと512になるから
文字列を受け取るバッファサイズは512になるから、問題出てくるよね?

447:デフォルトの名無しさん
09/08/25 23:26:16
>>440 そのアドレスをどこからも参照しなくなるから開放するわけで、仮に同じアドレスが割り当てられたとしても問題ない。
開放したアドレスの参照を持ち続けているほうが問題。

shared_ptrを使えばアドレスをオブジェクトを区別するユニークなIDとして使える。

448:デフォルトの名無しさん
09/08/25 23:29:36
このスレ的にはshared_ptrよりむしろIUnknown継承+_comptr_t

449:デフォルトの名無しさん
09/08/26 11:01:26
普段画面を隠して、マウスがある位置に来たら表示するようにしたくて

ShowWindow
SetForegroundWindow
SetFocus

を利用して表示してるんだが
中途半端な表示されてるのか
一度画面をクリックして完全にアクティブにしないと
フォーカスがセットされない

何かいい解決策ないかな?

450:デフォルトの名無しさん
09/08/26 11:44:28
いい方法はない

悪い方法1
SPI_SETFOREGROUNDLOCKTIMEOUT
悪い方法2
グローバルフックなどのコードインジェクションでアクティブスレッドから無理矢理変更

451:デフォルトの名無しさん
09/08/26 11:54:48
悪い方法3
AttachThreadInput

452:デフォルトの名無しさん
09/08/26 12:00:10
>>450-451
悪い方法しかないのかw
一応一通り試してみるよ
有難う!

453:デフォルトの名無しさん
09/08/26 13:03:08
>>452
いや、だって、普通に操作してるとき、唐突に他のウインドウがフォーカス奪ったら嫌じゃね?
しかも奪いっぱなしだったらさらに嫌じゃね?
だからできないようにできてるんだって。

454:デフォルトの名無しさん
09/08/26 13:07:54
妄想で物を語る人が出てくる予感。

455:デフォルトの名無しさん
09/08/26 14:26:58
というかそんなのウィルスだろ。

456:デフォルトの名無しさん
09/08/26 14:32:05
お前の脳みそがな

457:デフォルトの名無しさん
09/08/26 14:52:21
MSDNの低帯域モードで表示がバグってるんだが俺だけ?
URLリンク(msdn.microsoft.com)(VS.85,loband).aspx

FirefoxどころかIEでもおかしいので困ってる。

458:デフォルトの名無しさん
09/08/26 14:54:24
いや、バグってる確かに

459:デフォルトの名無しさん
09/08/26 15:36:01
開発者ツールでつついて見たんだが、とりあえずユーザーCSSに↓を追加で回避できた。
div.libCScode { clear: none !important; }

IE8で互換表示をオンにすると崩れないのがワロスw
なんでIE6/7向けのCSSをIE8や火狐に送ってんだよwww

460:デフォルトの名無しさん
09/08/27 12:23:42
>>435
ga

461:デフォルトの名無しさん
09/08/27 21:51:29
>>212なんですが、重ねて質問します
Web上でのコードなどはGetDC(hwnd)などとして描画していて、wParamの値を使っていませんが
メッセージのwParamで渡されるハンドルは一体何に使えるんでしょうか

462:デフォルトの名無しさん
09/08/27 22:16:37
クリッピングされていると書いてあるだろう。
いったい何が聞きたいんだ?

463:デフォルトの名無しさん
09/08/27 22:29:00
そのFillRgnしたらずれた位置に描画が起こってしまうんですけど、
どういった領域をあらわしてるんでしょうか

464:デフォルトの名無しさん
09/08/27 22:31:25
クライアント領域のDCを取得してるからだろ

465:デフォルトの名無しさん
09/08/27 22:43:25
では>>212のページに書いてあるのとは違う方法でHDCを取得する必要があるということですか

466:デフォルトの名無しさん
09/08/27 22:49:51
See also: GetWindowDCと書いてないか

467:デフォルトの名無しさん
09/08/27 23:46:00
つーか非クライアント領域に描画するのは行儀が悪いからやめとけ。

468:デフォルトの名無しさん
09/08/28 09:22:38
UNICODEでビルドしたらアプリってWin9x系でも動く?

469:デフォルトの名無しさん
09/08/28 11:29:51
動かない
98の関数ってUnicode版は定義してあるだけの奴が多い
中身も実装されてるのはほとんど描画関係

470:デフォルトの名無しさん
09/08/28 11:37:13
有難う
じゃあ一つのバイナリでANSIとUNICODEへの切替は無理か…

471:デフォルトの名無しさん
09/08/28 11:41:21
LoadLibraryして自分で呼ぶ方切り替えればいけるんじゃね?糞面倒そうだが。

472:デフォルトの名無しさん
09/08/28 12:27:24
サービスが作成した名前付パイプに,通常のプロセスから
CreateFile(L"\\\\.\\pipe\\pipename", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
とアクセスしたところ,アクセス拒否が帰ってきてCreateFileに失敗してしまいます
プロセスを管理者権限で起動すると,上記のCreateFileは成功します.
なんとか管理者権限で起動することなく,サービスのパイプに接続する方法はないでしょうか?
環境はVista SP2です.

473:デフォルトの名無しさん
09/08/28 12:34:08
権限の違う奴にアクセスしようとしてるのだから当たり前の動作のような気がするがな

474:デフォルトの名無しさん
09/08/28 12:57:30
SECURITY_ATTRIBUTEでアクセス権限を設定しないと駄目

475:デフォルトの名無しさん
09/08/28 15:48:46
TextOut関数のテキスト表示座標には浮動小数点が与えられるにもかかわらず
DrawText関数はRECT構造体をあさんでいるため、浮動小数点での渡し方がわかりません。
どうすればよいのでしょうか?RECT構造体のメンバ(座標を表すLeft, Top, Right, Bottom)がintで定義されてしまっています。


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

4920日前に更新/100 KB
担当:undef