Win32API質問箱 Build ..
374:デフォルトの名無しさん
08/12/27 15:35:19
>>372
ここまで応用が効かないヤツってどうやったら日本の教育で排出されるの?
375:デフォルトの名無しさん
08/12/27 15:41:35
日本ノ教育関係ナイ
376:デフォルトの名無しさん
08/12/27 15:41:59
>>374
?オレ別に質問した人間でもないし興味もないが、せっかく挙げるのならもうちょっと適切なサンプル上げてやったらどうかと思ってな
377:デフォルトの名無しさん
08/12/27 16:45:42
またゆとり世代プログラマのご乱心か。
378:デフォルトの名無しさん
08/12/27 17:09:05
>>376
適切なサンプルがあったらそうするだろ常考・・・
379:デフォルトの名無しさん
08/12/27 17:11:27
もうだめだこのスレ
380:デフォルトの名無しさん
08/12/27 17:16:28
レスしないで下さい。ウザイだけです。
381:デフォルトの名無しさん
08/12/27 17:21:40
URLリンク(img.2ch.net)
【依頼75】
パンツにWiiリモコンを装着し女性でも立ちションの気分を味わえる「スパー・ピーピー・ブラーザー」 2008年12月27日 09時00分00秒
URLリンク(gigazine.net)
さまざまな変わった商品を取り扱っているThink Geekというサイトで、
女性でも立ちションのきぶんを味わえるWii専用ソフトが販売されているようです。
パンツにWiiリモコンが付いており、そのパンツをはいてプレイするという
非常に斬新なゲームになっているようです。
プレイムービーを見るとかなりシュールで笑ってしまいます。
では、どのようなソフトなのか見てみましょう
これが「スパー・ピーピー・ブラーザー」。本体価格は約35ドル(約3200円)。
URLリンク(gigazine.jp)
ゲーム中の画像
URLリンク(gigazine.jp)
URLリンク(gigazine.jp)
URLリンク(gigazine.jp)
プレイ動画
URLリンク(jp.youtube.com)
382:デフォルトの名無しさん
08/12/27 17:29:19
>>378
↓こっちのがいいんじゃないの?
URLリンク(support.microsoft.com)
てか、"ツリー""ドラッグ"でググってトップに出てくるページを挙げても意味ない気がするんだが
383:デフォルトの名無しさん
08/12/27 22:58:29
GetTimeZoneInformationでサマータイムの開始時刻は取得できるのですが、終了時刻もしくはサマータイムである時間
を取得するにはどうすれば良いですか?日付でなく時刻が知りたいのですが・・・。
それともサマータイムって一日のうち何時間てのが決まってるんでしょうか?
384:デフォルトの名無しさん
08/12/27 23:20:48
はぁ?
385:デフォルトの名無しさん
08/12/27 23:26:18
俺が知ってるサマータイムじゃない
386:デフォルトの名無しさん
08/12/27 23:27:01
>>383
特定の日に1時間戻して特定の日に1時間進めて終わりとちがうんか?
つまり年2回時間をいじると
387:デフォルトの名無しさん
08/12/27 23:48:53
な、なんだってーーーーーーーーーーーーーー
ありがとうございました。ちなみに
10月3日2:00に始まって、3月3日2:00に終るとしたら、
開始時刻 <= サマータイム < 終了時刻
でいいんでしょうか?
388:デフォルトの名無しさん
08/12/27 23:50:25
意味gワカリマセン
389:デフォルトの名無しさん
08/12/27 23:51:58
>>387
うっせーな調べろよ
URLリンク(www.geocities.co.jp)
390:デフォルトの名無しさん
08/12/28 00:08:06
>>389ツンデレ乙
391:デフォルトの名無しさん
08/12/28 00:10:41
サマータイムを理解してないのに何をするつもりなんだろ
392:デフォルトの名無しさん
08/12/28 00:22:20
仕事での客からの依頼、じゃない?
393:デフォルトの名無しさん
08/12/28 00:38:30
時刻まわりはたしかに複雑だからわからんでもないけどな
新人で簡単だと思って取り組んではじめにやられる課題だろ>時刻
サマータイム時刻の12時と通常時刻の12時とで
重複カウントされて死ぬシステムに幸アレ!
394:デフォルトの名無しさん
08/12/28 01:00:17
仕事なら先輩か上司に訊けよ
395:デフォルトの名無しさん
08/12/28 01:57:20
仕事じゃないけど。
396:デフォルトの名無しさん
08/12/28 02:43:51
仕事じゃないなら自分で調べろハゲ
397:デフォルトの名無しさん
08/12/28 03:16:55
それにしたってサマータイムが1日ごとに設定しなおすものだという
思い込みの状態でプログラム組むとかこいつ馬鹿じゃねーのw
398:デフォルトの名無しさん
08/12/28 03:55:13
ま、仕事ならこんな常識外れの人は真っ先にリストラでしょ
399:デフォルトの名無しさん
08/12/28 08:11:24
うるう秒がきます。
400:デフォルトの名無しさん
08/12/28 08:46:23
きますね。
401:デフォルトの名無しさん
08/12/28 08:57:20
こいやぁー
402:デフォルトの名無しさん
08/12/28 09:59:19
うるう秒の間、息を止めてないと流星ガスで死ぬらしいよ
403:デフォルトの名無しさん
08/12/28 10:23:17
タイヤのチューブに空気入れておこう
404:デフォルトの名無しさん
08/12/28 10:49:48
流星ガスでタイヤのゴムが爆発するらしいよ
405:デフォルトの名無しさん
08/12/28 11:53:21
バスガス爆発
406:デフォルトの名無しさん
08/12/28 12:17:44
バスガスバスハツ
噛んだ
407:デフォルトの名無しさん
08/12/28 15:14:09
getPixelが遅いんですけどどうしたらいいですか
408:デフォルトの名無しさん
08/12/28 15:22:53
イメージを自分の確保したメモリ内で管理する
409:デフォルトの名無しさん
08/12/28 15:52:36
GetPixel/SetPixelは、色がどういうマッピングされるかの確認用とでも思っておいた方が良い。
実際の描画にはほぼ役に立たない。
410:デフォルトの名無しさん
08/12/28 16:22:55
メインのプログラムを走らす前に扱いたい画像データの全ピクセルについてgetPixelで得られる値を予め配列に格納しておいて、
メインのプログラムを走らせた時にはその配列データのみを参照するようにすればいいわけね。一つ別にプログラム書かないといけないな。
411:デフォルトの名無しさん
08/12/28 16:29:05
別のプログラムにする必要はないだろ・・・
412:デフォルトの名無しさん
08/12/28 16:35:24
CreateDIBSection
413:デフォルトの名無しさん
08/12/29 00:31:24
質問させていただきます.
WM_CREATE
が送られてきたときに、非常に時間のかかる処理(10秒~15秒くらい)をさせるのはやめたほうがいいでしょうか?
414:デフォルトの名無しさん
08/12/29 00:40:18
なんで止めた方が良いと思ったん?
415:デフォルトの名無しさん
08/12/29 01:06:53
別スレッドでやればいいやん
416:デフォルトの名無しさん
08/12/29 01:45:01
>>413
WM_CREATEに限らず、非常に時間のかかる処理はメインスレッドで
やらない方がいい。
メッセージに即座に応答できない状態だとOSから応答無しと判断されるし、
メッセージをブロードキャストするアプリケーションの動作にも影響する。
417:デフォルトの名無しさん
08/12/29 02:47:42
ウィンドウプロシージャは0.1秒以内に処理を終えなければいけないみたいな決まりがあるはず
418:デフォルトの名無しさん
08/12/29 04:37:05
>>417
詳細orサイトplz
それは意識してなかったorz
419:デフォルトの名無しさん
08/12/29 05:55:45
GetMenu()のようにポップアップメニューを取得できないでしょうか?
リストアイテムを選択中に右クリックした場合に出るコンテキストメニュー
(ポップアップメニュー)のハンドルやその要素一覧を取得したいのです。
420:デフォルトの名無しさん
08/12/29 06:01:53
> リストアイテムを選択中に右クリックした場合に出るコンテキストメニュー
出ねーよ
421:デフォルトの名無しさん
08/12/29 10:47:20
>>420
申し訳ありません、アイテムがメニューをもつわけではないですね。
その選択したアイテムを操作するようなメニュー(アイテムのコンテナが
もつメニュー)のことです。
422:デフォルトの名無しさん
08/12/29 10:56:04
ポップアップメニューって自分で表示しなきゃ出ないじゃん
少なくともAPIの範囲では
自分で明示的に表示してるものなのにハンドルが分からないって事は無いだろう
423:デフォルトの名無しさん
08/12/29 10:59:15
>>421
余計な言葉をつけずに
「メニューハンドルからメニューアイテム一覧を取得したい」
と言え。詳しく言ってるつもりが余計に分かりにくくなっている。
GetMenuItemCount/GetMenuItemInfo
424:デフォルトの名無しさん
08/12/29 11:34:41
>>423
いや欲しいのはメニューハンドルだろ?
「外部アプリのメニューを取得して何かしたい」んじゃねーの?
「外部からコンテキストメニューのメニューハンドルを取得する一般的な方法はない」がアンサーじゃね?
425:デフォルトの名無しさん
08/12/29 12:56:17
デスクトップの描画について質問があります。
以下のようにデスクトップのDCを取得して、描画するプログラムは作れるんですが、
描画した内容を消す方法がわかりません。
黒や白で塗りつぶすわけにはいかないし、どうしたらいいんでしょう。
終了ボタンを押したときでしか、描画が消えません。
// デバイスコンテキスト
HDC hdc = GetDC(NULL);
// 描画
Rectangle(hdc, 100, 100, 200, 200);
// 解放
ReleaseDC(NULL, hdc);
426:デフォルトの名無しさん
08/12/29 13:06:02
元の色保存しといて塗り直せ
427:デフォルトの名無しさん
08/12/29 13:14:43
>>425
InvalidateRectで再描画してもらう
428:デフォルトの名無しさん
08/12/29 13:17:20
InvalidateRect(0,0,false)
429:デフォルトの名無しさん
08/12/29 14:54:47
PaintDesktop
430:デフォルトの名無しさん
08/12/30 02:22:02
SW_HIDEを送って非表示になったウィンドウのウィンドウハンドルはどのように取得すればよいでしょうか?
そのウィンドウを持つプロセスIDはわかるのですが…
431:デフォルトの名無しさん
08/12/30 02:24:56
ずっと覚えとく
432:デフォルトの名無しさん
08/12/30 02:25:57
EnumWindows、GetWindowThreadProcessIdを組み合す
433:デフォルトの名無しさん
08/12/30 03:29:16
SW_HIDE を送るときに使う HWND は取得できるのに?
434:430
08/12/30 03:54:53
>>431,433
SW_HIDEは自身が送るものではない環境ですので…
ご回答ありがとうございます。
>>432
プロセスIDを取得する際にEnumWindowsを使っておりましたので
改めて考えるとすでに取得できていたのですね。助かりました。
435:デフォルトの名無しさん
08/12/30 13:42:38
今までFindFirstFileで全てのファイルを列挙するとき
"*.*"とやってたんですが、よく考えると"*.*"でディレクトリ
や拡張子のないファイルが引っかかるのはおかしい
気がするんですが、なぜでしょうか?
436:デフォルトの名無しさん
08/12/30 14:14:03
IsDBCSLeadByteExを使用して2byte文字の
先頭1byte目かという判定をしていたんですが、
0x82 0xF0(ひらがなの「を」)の2byte文字の
0xF0を指定して上記のAPIで判定をしたところ
FALSE以外。つまり2byte文字の先頭1byteという
判定が戻り値として戻ってきました。
これはIsDBCSLeadByteExのバグなのでしょうか?
または私の使い方が間違っているのでしょうか。
/* 2byte文字の1byte目かを判定 */
if(IsDBCSLeadByteEx(CP_ACP, 指定文字値) != FALSE)
{
}
437:デフォルトの名無しさん
08/12/30 14:16:14
case WM_KEYDOWN:
if(wp == VK_ESCAPE) 終了処理;
というようにエスケープキーを押したら終了するようにしたのですが、
EDITにフォーカスがあっているとEscを押しても終了してくれません
解決策があれば教えてください
438:デフォルトの名無しさん
08/12/30 14:23:54
>>436
2byte文字の2byte目にはいろんな値が来るので
0x82を判定したあと1文字飛ばしましょう(0xF0は判定しない)
439:デフォルトの名無しさん
08/12/30 14:25:12
>>436
使い方が間違っている。
IsDBCSLeadByteExはマルチバイト文字の1バイト目の範囲内にあるかどうかという判定しかしない。
1バイト目にも2バイト目にもくる可能性のあるコードならそうなる。
文字列渡してないんだから厳密な判定ができないのはわかるべ?
440:デフォルトの名無しさん
08/12/30 14:27:09
>>435
パターンが「.*」で終わる場合はその部分は無視される。だから「*.*」は「*」と同じ。
URLリンク(blogs.msdn.com)
>>436
0xF0は1byte目にも2byte目にもなりうるからだろ。
先頭から順に調べていかなくちゃ、本当の1byte目かどうかはわからない。
0x82がLeadByteと判明した時点で次の0xF0は読み飛ばさなきゃだめ。
>>437
WM_COMMANDでIDCANCELとか来ないの?
441:デフォルトの名無しさん
08/12/30 14:34:30
>437
WM_GETDLGCODE
442:デフォルトの名無しさん
08/12/30 14:36:17
コンソールでdir *.*とかすらやったことないのか・・
443:435
08/12/30 14:37:43
>>440
ありがとう、疑問が解決しました
今度から"*"にします。
444:435
08/12/30 14:43:54
>>442
むしろPC98時代からPC使ってたから
今まで疑問にも思わなかった
445:436
08/12/30 14:44:06
>>438-439
回答ありがとうございます。
私が本当にやりたい事はファイルからデータを読み込んで
エディットボックスに反映(処理ログみたいな)させていくというものなのですが、
一度に最大1023byteしか読み込ませないように(wsprintfの関係)制御しています。
しかし、この場合バイナリでReadしている為、文字化けが発生する可能性があり
それを回避する為、最大(1023byte)で読み込んだ場合、末尾のデータが
全角文字(2byte)の先頭1byte目かを判定して真の場合、読み込みポインタを
-1byteずらしているというやり方で回避させていたつもりなのですが、
>>436の記載したAPIの使い方を私が勘違いしていた為うまくいきませんでした。
ベタ書きでの判定となると
if((チェック値 >= 0x81 && チェック値 <= 0x9F) || (チェック値 >= 0xE0 && チェック値 <= 0xEF))
という感じになると思うのですが、こういう判定をしてくれるAPIは
提供されていないのでしょうか?
446:デフォルトの名無しさん
08/12/30 14:47:37
>>445
先頭から調べるか、調べたい場所から1バイトずつさかのぼって
1バイト目じゃない文字の部分から順に判定すればいい。
447:デフォルトの名無しさん
08/12/30 15:09:14
あるウィンドウプロシージャでコントロールのメッセージはWM_COMMANDとして送られてきますが、
コントロール自身のウィンドウプロシージャではどういう形でメッセージが飛んでくるんでしょうか?
たとえばリストボックスからのLBN_SETFOCUSはMSG = WM_COMMAND,WPARAM = (4 << 16) | 100ですが、
コントロール自身ではどう受け取ればいいのかが分かりません。もしかして頓珍漢なこと言ってますか?
448:デフォルトの名無しさん
08/12/30 15:12:48
コントロール自身がWM_SETFOCUSを受け取って、親に自分でLBN_SETFOCUSを投げてるんじゃないのか?
449:437
08/12/30 15:14:21
>>440
>>441
回答ありがとうございます
case WM_GETDLGCODE:
return DLGC_WANTALLKEYS;
case WM_KEYDOWN:
if(wp == VK_ESCAPE) 終了処理;
このような感じにしたのですが終わってくれません
何か間違いがあれば、ご指摘お願いします
450:デフォルトの名無しさん
08/12/30 15:26:21
>>448メルシー。じゃあ、LBN_SELCHANGEとかってのはコントロールの単純なサブクラス化じゃうまく捕らえられないのかな・・・
451:436
08/12/30 15:30:43
>>446
やはりそれしかないですよね。
ありがとうございました。
452:デフォルトの名無しさん
08/12/30 15:32:02
>>450
LBN_***はコントロールのプロシージャがユーザーの操作に応じて親ウィンドウに投げてる奴だから
サブクラス化しようが何しようが捕まえられんよ
そもそもそうしないためにWM_COMMANDがある
453:デフォルトの名無しさん
08/12/30 15:37:45
MFCだとメッセージリフレクションで実装されている処理の話だな。
結局の所、親に投げられたメッセージを引っ張り出す必要があるので、
残念ながら、コントロール側だけで完結するようには書けないな。
454:デフォルトの名無しさん
08/12/30 15:44:27
>>453
今ライブラリを作ってて、イベントハンドラ関連の整備してたんですが、そこで詰まりまして・・・
でも、WM_COMMANDのLPARAMってどうやら、コントロールのハンドルらしいですね。
ハンドルからクラスを引っ張ってくる仕組みは既にあるので、何とかなりそうです。
たしか、WM_COMMANDってアクセラレータとコントロールとメニューのメッセージが飛んでくるんですよね。
何とか頑張って実装してみます。ありがとうございました。
455:デフォルトの名無しさん
08/12/30 15:51:05
>>449
case WM_COMMAND:
if ( LOWORD( wParam) == IDCANCEL) 終了処理;
456:437
08/12/30 16:23:19
>>455
ありがとうございます
ですが、その通りにやっても動きませんでした
Escキーをおすとポーンと警告音みたいな音がするだけの状態です
457:デフォルトの名無しさん
08/12/30 16:27:06
>>445
そういう風にべた書きしても、436のように使えば全く同じ問題が起こる。
CP932でのIsDBCSLeadByteExだって同じことをやっているよ。
458:デフォルトの名無しさん
08/12/30 16:44:09
>>455
ダイアログリソースに ID = IDCANCEL のボタンを Visible = False で貼りつけてみ。
459:デフォルトの名無しさん
08/12/30 16:45:05
あ、>>456 だ。
460:デフォルトの名無しさん
08/12/30 16:54:59
>>458
ありがとうございます
case WM_CREATE:
CreateWindow(
TEXT("EDIT") , NULL ,
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL ,
0 , 24 , 100 , 24 , hWnd , (HMENU)1000 ,
g_hInst , NULL );
このようにEDITを作っていました
Win32APIをはじめたばかりでよくわからないのですがダイアログボックス(?)の勉強をしないと
話についていけそうにないので出直してきます。ありがとうございました
461:デフォルトの名無しさん
08/12/30 17:03:16
>>460
おやおや、ダイアログボックスじゃなくてウィンドウでの話だったのか?
だったら、メッセージループ while(GetMessage(&msg・・・){・・・} の中で WM_KEYDOWN を拾えばいいじゃん。
ここでメッセージを変換してウィンドウに送るコードを書いてるのは自分自身なんだぞ。
462:デフォルトの名無しさん
08/12/30 17:04:15
>>460を見る限り、おそらくメインとなるウィンドウもCreateWindow(Ex)で作っているんだろう。
だったら、TranslateMessage/DispatchMessageのところをこうしろ。
if (!IsDialogMessage(メインウィンドウのハンドル, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
そうすれば、>>458をやらなくても、455の処理が可能になる。
これをやると、ダイアログの挙動を示すため、ほかにも副作用があるけど。
463:デフォルトの名無しさん
08/12/30 18:11:39
>>461>>462
ありがとうございます
メッセージループ内でやったらうまくいきました
ところで、Win32APIを学ぶとき皆さんは何を参考にしましたか?
私はとりあえずテンプレートのサイトを見ているのですが、皆さんはやはり本などを1冊くらいはもっているのでしょうか?
先日まで、コンソールでプログラミングしていた私にとって、windosプログラミングはすごく難易度が上がって
戸惑っています
それから、見た目の部分(ウィンドウやリストボックス、メニューなど)はリソースエディターというもので
作るのが一般的なのでしょうか?参考程度に教えてください
464:デフォルトの名無しさん
08/12/30 23:43:27
クロスプラットフォームで動くGUIを作るとしたら
やはりJavaですか?
465:デフォルトの名無しさん
08/12/30 23:44:00
>>464
すみませんスレ間違えました
466:デフォルトの名無しさん
08/12/30 23:45:34
>>464
スレ違い
467:デフォルトの名無しさん
08/12/30 23:47:50
>>466
知らないならレスしないでください。ウザイだけです。
468:デフォルトの名無しさん
08/12/30 23:53:27
>>463
俺はとりあえず MSU へ行ってみた
今言わせればひでえ講義(特に OLE 関係)だったが
何を自習すべきかの参考にはなった
469:デフォルトの名無しさん
08/12/31 00:29:02
>>464
このスレ的には、Wineを信じてWin32API使え。
470:デフォルトの名無しさん
08/12/31 00:30:29
>>463
>本などを1冊くらいはもっているのでしょうか?
Win16の時代からやってるから、1冊どころではないな。情報源はそれしかなかったんだ。
手始めは「APIの散歩道」つう本だったと思う。今ならアマゾンで1円(古本)+送料で手に入るが。(笑)
それに比べると今はラクだぞ、インターネットで何でも調べられるし。
もっとも、転がってるのは玉石混在ではあるがな。
471:デフォルトの名無しさん
08/12/31 00:38:24
自分は本を勧めたいが、自身が猫で覚えた身ゆえ、積極的に勧める気になれない。
472:デフォルトの名無しさん
08/12/31 00:43:38
俺は現場のソースで覚えた
473:デフォルトの名無しさん
08/12/31 00:55:18
>>472
それが一番ダメなパターン
474:デフォルトの名無しさん
08/12/31 01:23:09
>>470
×玉石混在
○玉石混淆
475:デフォルトの名無しさん
08/12/31 01:27:26
>>474
四字熟語としては間違ってるけど、別におかしくはない。
476:デフォルトの名無しさん
08/12/31 01:34:31
あえて黙ってたのに
指摘する阿呆に
言い訳する阿呆
阿波踊りは他でやれ
477:デフォルトの名無しさん
08/12/31 01:36:22
あえて黙ってたのに
指摘する阿呆に
言い訳する阿呆
盆踊りは他でやれ
478:デフォルトの名無しさん
08/12/31 01:37:26
ウィンドウメッセージで392というのが飛んで来てはCallWindowProcが-1を返すんだが、
10進で392ってなんていうメッセージ?
479:デフォルトの名無しさん
08/12/31 01:42:01
392 == 0x188
winuser.hの中を調べる限りでは、LB_GETCURSELしか該当しなかった。
480:デフォルトの名無しさん
08/12/31 01:42:27
>>478
,.-─ ─-、─-、
, イ)ィ -─ ─- 、ミヽ
ノ /,.-‐'"´ `ヾj ii / Λ
,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
ノ/,/ミ三ニヲ´ ゙、ノi!
{V /ミ三二,イ , -─ Yソ
レ'/三二彡イ .:ィこラ ;:こラ j{
V;;;::. ;ヲヾ!V ー '′ i ー ' ソ
Vニミ( 入 、 r j ,′
ヾミ、`ゝ ` ー--‐'ゞニ<‐-イ
ヽ ヽ -''ニニ‐ /
| `、 ⌒ ,/
| > ---- r‐'´
ヽ_ |
ヽ _ _ 」
ググレカス [ gugurecus ]
(西暦一世紀前半〜没年不明)
481:デフォルトの名無しさん
08/12/31 01:50:35
>>473
何がダメなんだてめぇ
言ってみろクズ
482:デフォルトの名無しさん
08/12/31 01:53:13
明日実家に帰省するぜ!
ところでおまいら一年間振り返ってみるとやっぱおまいらの
技術力が一番参考になるわ
質問すると罵倒されるがちゃんと返してくれるしな
会社の連中は無関心すぎて役に立たないし第一話が通じなくてな
だから来年も困ったときはお前らに怒られながら質問するわ!
その時は罵倒しながらちゃんと答えてくれな
じゃあまた来年。
良いお年を!!!
483:482
08/12/31 01:55:02
>>481
レスした瞬間ワロタ
484:デフォルトの名無しさん
08/12/31 01:59:25
>>482
おう
良いお年を
485:デフォルトの名無しさん
08/12/31 03:34:29
>>468>>470>>471>>472
回答ありがとうざいます
みなさん人それぞれですね
私も早く一人前になれるようがんばります
486:デフォルトの名無しさん
08/12/31 05:58:40
>>408
URLリンク(oshiete1.goo.ne.jp)
の回答番号:No.8
>Win32 API を「Windows の API」だと発言した人をみんなで袋叩きにしている 2ch の書き込みを発見。
ってどこで行われたかわかりますか?
過去ログでもあればどのような状況のものだったか見てみたいので
スレリンク(tech板)l50
でも上記の内容を聞いたのですがAPIネタではなくてWin32APIネタならこちらの方が妥当だと思って質問紙をし直します。
487:デフォルトの名無しさん
08/12/31 07:12:34
>>486
スレ違い
帰れクズ
488:デフォルトの名無しさん
08/12/31 10:55:30
うるせーばかどっかいけ
489:デフォルトの名無しさん
08/12/31 12:48:21
ほのぼのしてるなー
見てて和むわw
490:デフォルトの名無しさん
08/12/31 12:48:44
質問です
以下のようにShellExecute で URL を print したときに独自のアプリケーションを関連付けしたいのですが、どのレジストリにキーを追加すればいいでしょうか?
HINSTANCE hInst = ShellExecute(NULL, L"print", L"URLリンク(www.google.co.jp)", NULL, NULL, SW_SHOWNORMAL);
※ShellExecute の第2引数に print、第3引数にURLを指定します
Expolorerのフォルダオプションのファイルの種類で、httpにprintを追加しましたが、ShellExecute の結果が SE_ERR_ACCESSDENIED (5) でエラーになりダメでした
htmlにも追加してみましたが、同様のエラー(SE_ERR_ACCESSDENIED)になりました
以下のレジストリへの登録は試したのですが、同様のエラー(SE_ERR_ACCESSDENIED)になりました
HKEY_CLASSES_ROOT\http\shell\print\command
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell\print\command
わかる方がいましたら教えてください
491:デフォルトの名無しさん
08/12/31 13:07:50
SE_ERR_ACCESSDENIED?
それだけを実行するシンプルなやつで試してみた?
492:デフォルトの名無しさん
08/12/31 13:10:43
TOPMOSTオプションをつけたウィンドウを作ったのですが
タスクバーより手前に表示できません(タスクバーをクリックするとウィンドウが隠れてしまう)
何か良い方法があれば教えてください
493:デフォルトの名無しさん
08/12/31 13:51:38
>>491
ShellExecuteだけを実行するアプリを作成して試してみましたが、ShellExecute の結果が SE_ERR_ACCESSDENIED (5) でエラーになりました
第3引数をURLではなく、.htmlファイルにしすると print した場合は ShellExecute で.htmlに関連付けしたアプリ起動できました。第3引数をURLにするとやはりエラーになります。
ShellExecuteで URL の print は無理なんですかね
494:デフォルトの名無しさん
08/12/31 13:55:42
>>490
HKEY_CLASSES_ROOT\htmlfile\shell\Print\command
495:デフォルトの名無しさん
08/12/31 15:51:58
DDEを考慮してないからだろ
496:デフォルトの名無しさん
08/12/31 16:57:13
URLの場合、
HKEY_CLASSES_ROOT\MIME\Database\Content Type
辺りから手繰っていかないと駄目な気がする。
Content Typeでの判断がメインで、拡張子はあくまで補助的なものだし。
497:デフォルトの名無しさん
08/12/31 17:58:08
テンポラリフォルダを空にするプログラムなんだけど、
"GetTempPath"でテンポラリフォルダを取得してそのままファイルを削除すると危険っぽいんで助けてください ><;
498:デフォルトの名無しさん
08/12/31 18:01:34
>>497
なぜ危険か承知しているなら、やめときなよ。
どのタイミングで削除するつもりだ?
499:デフォルトの名無しさん
08/12/31 18:01:38
You! やっちゃいなよ!
500:デフォルトの名無しさん
08/12/31 18:02:30
>>497
GetTempPathで取得したフォルダ以下を削除するプログラム作ったら
何故かD:\みたいなパスが返ってきていてDドライブ以下が全部消えた事ならある
501:490
08/12/31 18:03:10
>>494
残念ながら、そのレジストリをいじっても同様のエラーになりますた
>>495,496
DDEやらContent Typeとキーワードが出来てましたが、正直よくわからないので、
勉強してから挑戦してみます。d
502:デフォルトの名無しさん
08/12/31 18:04:05
環境変数見りゃわかんだろ
503:デフォルトの名無しさん
08/12/31 18:11:20
こちらのTaskbar Container のようにタスクバーからアイコンを一時的に消すには
どうしたらよいでしょうか?
Factorial
URLリンク(ray200x.s148.xrea.com)
検索しているのですが、なかなか見つかりません orz
504:デフォルトの名無しさん
08/12/31 18:23:51
>>498
任意でいつでも削除できるのを、止めといたほうがよさそうですね・・・
>>499
やっちゃってるお掃除ソフト見つけたけど、下手するとOS再インストールする羽目になりそうです ><;
>>500
TEMPフォルダが見つからないとそうなるっぽい、でもエラーは返さない (´・ω・`)
505:デフォルトの名無しさん
08/12/31 18:23:58
WS_EX_TOOLWINDOWをもつウィンドウはタスクバーには入らない。
506:デフォルトの名無しさん
08/12/31 18:28:11
>>504
ユーザーが任意で削除できるようなサポートツールならいいが、自動で全部消しちゃうよーなツールなら
怖くて使えない。他のソフトの一時的なバックアップファイルを勝手に削除して、そのソフトが動かなくなったらどーするよ?
一定時間ごとに自動バックアップするソフトは結構ある。それらのソフトが、自身で作ったテンポラリファイルすべてをロック
しているとも限らない。
507:503
08/12/31 18:34:59
>>505
Live Messengerを試しにTaskbar Containerに入れて
前後をWinSpectorで検証してみたのですが、
特にStyleやEXStyleは変化なしでした・・・うむむ
508:デフォルトの名無しさん
08/12/31 18:36:06
>>506
そうですよね、テンポラリフォルダはむやみに触ったらイケナイってことを理解しますた! (`・ω・´)
509:デフォルトの名無しさん
08/12/31 18:54:19
>>506
それって削除されると動かなくなるソフトの方が悪いんじゃまいか?
勝手に削除されて困るならロックしとくかApplication DataやLocal Settingsに置くべきだろ
510:デフォルトの名無しさん
08/12/31 18:58:41
>>509
ソフトが良くても悪くても動かなかったら困るだろ。
511:デフォルトの名無しさん
08/12/31 18:59:46
それは理解できるが、だからと言ってTemp全削除を行っていいわけにはいかない現実orz
512:デフォルトの名無しさん
08/12/31 18:59:48
昔、アンインストーラーがProgram Files以下を全消ししたエロゲを彷彿とさせられたw
513:デフォルトの名無しさん
08/12/31 19:01:02
>>503
それがどうやってるのか知らんけど、ITaskbarList を使えばできる
514:デフォルトの名無しさん
08/12/31 19:01:19
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
515:デフォルトの名無しさん
08/12/31 19:02:30
>>509
その通りだよ。そのソフトが悪い。
でも、そういうところに手を抜いているソフトを、手を抜いていることを知らないで使っているユーザが
被害を被るよーなことは、避けたほうがいいと俺は思う。ニュアンス的には、未必の故意ってヤツだ。
516:デフォルトの名無しさん
08/12/31 19:55:43
>>515
Windows付属のツールでもTEMPフォルダのファイルを削除できるのだから
その程度でバグるようなソフトを考慮する必要なんてあるか?
exeと同じフォルダにファイル置くソフトがVistaでバグってるような物だろ。
517:デフォルトの名無しさん
08/12/31 20:15:58
>>516
>ユーザーが任意で削除できるようなサポートツールならいい
と最初に>>506最初に書いたんだがなあ・・・。
518:デフォルトの名無しさん
08/12/31 20:18:59
WindowsUpdateで再起動が必要なファイル更新だと、
新しいファイルが一旦TEMPに置かれていた気がするのだが。
519:デフォルトの名無しさん
08/12/31 20:26:18
/⌒)
ム j
∧ f ヽ. |
/ ヽ | 「 ̄ヽ / i.ヘV|
/ -ニニ=- | L_ノ _/ ヽ.U|
/ ヽ、 | | \ へ ゝ|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ヽ/_/|_/^ ̄
The days which are wrapped in the scene of summer and to pass gently
An encounter with the girls repeated in the sunlight
Summer continues to where as well
She is waiting in the air
520:デフォルトの名無しさん
08/12/31 20:52:16
>>516
Windows付属のツールは一週間以上使用されていない一時ファイルのみ削除じゃなかった?
521:デフォルトの名無しさん
08/12/31 21:00:36
そりゃ一定期間経過後のファイル限定なのは常識だろw
数秒前に作成されたばかりのファイルを削除するなんてウィルスと変わらんからな
522:デフォルトの名無しさん
08/12/31 22:37:47
俺は全部削除するよ
523:デフォルトの名無しさん
08/12/31 23:01:28
俺も自分の作業場所と併せてバッチで全部削除
それで困った事なんてない
524:デフォルトの名無しさん
08/12/31 23:03:19
自己解凍型のインストーラ実行中だと困る
ていうかそれ以外で困るとしたらソフトが悪い
525:デフォルトの名無しさん
08/12/31 23:13:05
自己責任で削除するなら、困ろうがどーしようが自分の勝手。困ったときはスキルのなさを呪えばいい。
自分の知らないうちに勝手に削除されるなら、そういう削除ツールは>>521の言う通りウィルスと変わらん。
526:デフォルトの名無しさん
08/12/31 23:30:26
GetTempPathって、TMPもTEMPも定義されてなかったらUSERPROFILE
それもなかったらWindowsのディレクトリを返すんだな……ゴクリ
SHGetFolderPathなら少しは安全かと思ったらCSIDLが定義されてなかったぜ
527:デフォルトの名無しさん
08/12/31 23:42:43
どこまでWin32APIに関連するかわからないのですが、お聞きします。
英語版のWindowsで ansi window(not UNICODE)に
キャプションにSJISの日本語タイトルを表示した場合、
FindWindowで引数のタイトルに日本語を指定して見つけられるものでしょうか?
もちろん日本語だとfindwindowで0以外が返ってきて見つけてくれるのですが、
外人さんが試した限りだと見つけられないようなのです(0が返ってくる)
これは何か対処法がありますでしょうか?
528:デフォルトの名無しさん
08/12/31 23:44:42
>>527
クラス名で FindWindow() するとか。
529:デフォルトの名無しさん
08/12/31 23:50:05
文字コード環境を調べてタイトルを変化させるとか。
530:デフォルトの名無しさん
09/01/01 00:04:11
タイトルをBase64エンコードしとけばいいだろあけおめ
531:デフォルトの名無しさん
09/01/01 00:04:52
もうだめだ
おしまいだ
しぬしかない
532:デフォルトの名無しさん
09/01/01 00:06:16
>>528
対象ウインドウはJavaのフレームワークのようでかぶった時が怖いです(´・ω・`)
クラス名は "SunAwtFrame" でした。
タイトルが "ログイン" なんだけど、向こうさんの環境だと文字化けしているみたい
>>529
英語環境でCP932(SJIS)だとどうなるんだろ・・・
とりあえず、FindWindowW(FindWindowのUNICODE版)でも
日本語環境だとタイトルとクラス名でウインドウが発見できるようですので、
こちらの方法で試してもらうように先方に言ってみます。
FindWindowをUNICODE版にして換わる門だろうか?
533:デフォルトの名無しさん
09/01/01 00:06:31
なんか知らんがWindowsの内部文字コードは全部Unicode
534:デフォルトの名無しさん
09/01/01 00:07:22
>>530
ごめん、もう少しkwsk
見つけたいウインドウのタイトルを変えるのって、見つけてない状態で可能なんですかね?
外部のプログラムなんですが・・・
535:デフォルトの名無しさん
09/01/01 00:10:25
FindWindow() 以外にもいろんな方法あるし。
ウィンドウ列挙して GetWindowModuleFileName() とか、ついでにプロセスも列挙して、
GetWindowThreadProcessId() とか。
536:デフォルトの名無しさん
09/01/01 00:12:28
年越えで勉強とは真面目だな、おまいら
あけおめ
537:デフォルトの名無しさん
09/01/01 00:14:52
このスレ見てると現実に引き戻されるから正月くらい閉じよう
538:デフォルトの名無しさん
09/01/01 00:15:54
>>536
|・ω・)ノ
539:デフォルトの名無しさん
09/01/01 00:28:47
>>535
GetWindowModuleFileNameは自分のプロセス以外は正常に機能しない
540:デフォルトの名無しさん
09/01/01 00:38:07
>>539
へー。NT 系だとダメなのね。
URLリンク(support.microsoft.com)
541:デフォルトの名無しさん
09/01/01 00:50:54
そんなの常識だろ
2009年になったのにまだ9x系しか使ってないのかよ
542:デフォルトの名無しさん
09/01/01 00:53:27
>>540
10年前からタイムスリップしてきた人ですね、わかります
543:デフォルトの名無しさん
09/01/01 01:11:40
HWNDを、API(Direct3D)に渡す為にクラスのメンバにして保持しようと思うんですが、
HWNDは単純にコピーしていいんですか?
それともDuplicateHandle()で複製して、CloseHandle()で閉じるものなんでしょうか?
ちなみに、やってみたら不明なエラーで失敗しました。
※プログラムは単一プロセスです。
544:デフォルトの名無しさん
09/01/01 01:14:08
DuplicateHandleの説明読めよ・・・
545:デフォルトの名無しさん
09/01/01 01:21:45
>>544
読みました、複製できるハンドルの一覧にHWNDはありませんでした。
これは、HWNDの複製は単純コピーでかまわないってことですかね?
プロセス間で持ちまわるものじゃないから?
546:デフォルトの名無しさん
09/01/01 01:23:18
HWND はプロセス間で持ち回れるよ
547:デフォルトの名無しさん
09/01/01 01:24:27
“砂漠の女王”をテーマにした質素な衣装
URLリンク(contents.oricon.co.jp)
URLリンク(contents.oricon.co.jp)
URLリンク(contents.oricon.co.jp)
548:デフォルトの名無しさん
09/01/01 01:25:10
出来ない、という選択肢は無いのか?
549:デフォルトの名無しさん
09/01/01 01:26:53
>HWNDは単純にコピーして
HWNDの値はいくらでも「代入」できるが、「コピー」は不可能。
550:デフォルトの名無しさん
09/01/01 01:43:03
>>549
HWNDがファイルディスクリプションのような参照なら、
言い回しはコピーで違いなのでは?
HWNDってCOMのIFポインタみたいな、カウンタを持った参照だと
勝手に思ってたけど違うのかな?
551:デフォルトの名無しさん
09/01/01 01:44:26
そもそもHWNDなんてコピーできても意味ねーだろ
552:デフォルトの名無しさん
09/01/01 01:52:49
>>543
HWND CopyWindow(HWND hwnd);
指定されたウィンドウを、子ウィンドウを含め完全に複製します。
553:デフォルトの名無しさん
09/01/01 02:03:57
timeKillEventの成功したときの戻り値は、
timeSetEvent関数から返されるタイマーID、
TIMERR_NOERROR、MMSYSERR_INVALPARAM
のどれでしょうか。
ググってもページが少ないですし、
いろんな説があって分かりません。
いつも返ってくるのはTIMERR_NOERRORで、
その後のtimeEndPeriodもTIMERR_NOERRORが返り、
これは成功という事なので、
timeKillEventも成功と言えるのかも知れませんが。
554:デフォルトの名無しさん
09/01/01 02:06:59
>>550
カウンタは持っていないし、カーネルハンドルではないので
DuplicateHandleもできないしする必要もない。
555:デフォルトの名無しさん
09/01/01 02:07:03
>>553
Returns TIMERR_NOERROR if successful or MMSYSERR_INVALPARAM if the specified timer event does not exist.
556:デフォルトの名無しさん
09/01/01 02:07:06
Return Values
Returns TIMERR_NOERROR if successful
ヘルプくらい見たら?
557:デフォルトの名無しさん
09/01/01 02:16:07
見ても訳せなかったりして(笑)
成功したら TIMERR_NOERROR を返し、(引数で)指定したタイマーイベントが存在しないなら MMSYSERR_INVALPARAM を返します。
558:デフォルトの名無しさん
09/01/01 02:22:02
>>551-552,554
複製の必要はないのですね、
理解しました、教えて頂きましてありがとうございました。
559:デフォルトの名無しさん
09/01/01 02:57:04
>複製の必要はない
複製したくてもできない、が正解。
もし仮に君のクローンができたとしても、それは君ではないのだよ。
560:デフォルトの名無しさん
09/01/01 03:02:21
そういえば今日
自分のクローンができる夢見た
561:デフォルトの名無しさん
09/01/01 03:28:54
俺は苦労する夢
562:デフォルトの名無しさん
09/01/01 03:38:13
みなさん、ありがとうございます。
>>557
その通りです・・
「うまくいくかMMSYSERR_INVALPARAMであり、
指定されたタイマイベントが存在していないなら、
TIMERR_NOERRORを返します。」
とか訳サイトで出ていたので。
他のtimeBeginPeriodとか他の3つは日本語の
MSDNがあるのに、これだけないのも不思議です。
563:デフォルトの名無しさん
09/01/01 05:48:38
英語勉強しろよ小学生
564:デフォルトの名無しさん
09/01/01 09:26:18
英語勉強したら負けかなと思ってる
565:デフォルトの名無しさん
09/01/01 09:32:41
と負け組が申しております。
566:デフォルトの名無しさん
09/01/01 09:37:00
俺は、アメリカで生まれて成長されたので、英語を勉強するは不要だ。
日本の人々は不運と思っている。
567:デフォルトの名無しさん
09/01/01 09:38:57
完全に同意にダ……あル……です。
568:デフォルトの名無しさん
09/01/01 09:41:17
フーン
569:デフォルトの名無しさん
09/01/01 09:51:56
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
URLリンク(img.photobucket.com)
海外ではすでに常識だぞ
日本人が遅れすぎんなんだよ
570:デフォルトの名無しさん
09/01/01 10:11:34
Win95の頃は割と日本語でMSDN読めたのになあ
今やMSKB共に機械翻訳だらけ
和訳スタッフがリストラでもされたのか?w
571:デフォルトの名無しさん
09/01/01 10:23:50
あの頃だとVisual C++4.xか。
Win32APIの日本語訳なんて存在していた記憶が無いな。
和訳スタッフは.NET絡みの最前線行きだろ。
TechNet Magazine とかは割と早くに日本語訳されて助かってる。
流石に新ネタ絡みであの分量を英文で読むのはちと辛い。
572:デフォルトの名無しさん
09/01/01 10:35:19
API バイブル、なんてのもあったな・・・
573:デフォルトの名無しさん
09/01/01 11:51:50
萌文化も受け入れられてたのか
574:デフォルトの名無しさん
09/01/01 12:11:20
.NET関連は結構和訳されてるね
GDI+のクラスをググると.NETの方ばかり上位に来るので見づらいが
個人的にはMSKBの日本語訳をもっと増やしてほしい気がする
575:デフォルトの名無しさん
09/01/01 15:42:03
STGM_TRANSACTEDの複合ファイルはTEMPを使うような気が
576:デフォルトの名無しさん
09/01/01 16:51:54
Windowプロジェクトとしてコンパイルする時にint main()を定義してるのは合法ですか?
BCCはとりあえず問題なさそうなんですが
577:デフォルトの名無しさん
09/01/01 17:02:23
Win32API に関係ない話題はよそでお願いします。
578:デフォルトの名無しさん
09/01/01 17:03:18
>>576
合法も違法も無い。
正しくリンクできて実行できれば何の問題もない。
エントリポイントにmainとWinMain(あるいはその他)を選ぶことと、
サブシステムにコンソールを選ぶか否かは、互いと無関係に選べる。
(一般に、無指定のときmain - コンソール、WinMain - 窓アプリという暗黙の指定が働くけど)
579:デフォルトの名無しさん
09/01/01 17:07:35
分からないならレスしないでください。ウザイだけです。
580:デフォルトの名無しさん
09/01/01 17:18:17
>>576
合法
ホスト環境において実行開始点が main でない言語は C ではない
C から派生した M$ 定義の言語であり、そこで禁じていない行為にあたる
581:デフォルトの名無しさん
09/01/01 17:30:34
違法なプログラム、ってのを見てみたいもんだ。
582:デフォルトの名無しさん
09/01/01 17:31:45
>>580
Cではないとはまた過激思想な。
ホスト環境ですら処理系定義のエントリポイントを認めているぞ。
583:デフォルトの名無しさん
09/01/01 17:44:12
そろそろ死ね
584:デフォルトの名無しさん
09/01/01 18:21:41
>>576-584
スレ違い
585:デフォルトの名無しさん
09/01/01 18:45:41
このまま話を続けると、話についていけない人が泣いちゃうしな。
586:デフォルトの名無しさん
09/01/01 18:51:17
そっか、仕方ない・・・撤収撤収!
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4396日前に更新/198 KB
担当:undef