トップページ⇒tech
1001コメント322KB

Win32API質問箱 Build11 [転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2014/12/10(水) 12:12:49.40ID:Ii7h0n5Y
Win32APIについての質問はこちらへどうぞ。

■過去スレ
Win32API質問箱 Build118
http://peace.2ch.net/test/read.cgi/tech/1407006123/

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
 英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0002デフォルトの名無しさん2014/12/10(水) 12:13:44.45ID:Ii7h0n5Y
あれ9が入ってねぇ
0003デフォルトの名無しさん2014/12/10(水) 14:15:32.62ID:Bt3w6SNQ
まあ乙
0004デフォルトの名無しさん2014/12/10(水) 15:51:35.74ID:SNTk7rlr
>1 乙
Win32API質問箱 Build119

わざとやってるだろω
0005デフォルトの名無しさん2014/12/10(水) 18:21:01.18ID:Bv+lRwzh
>>1乙です。
それにしてもID出てからというもの良スレに成り下がりましたね
0006デフォルトの名無しさん2014/12/10(水) 18:24:32.95ID:Bt3w6SNQ
そういう召喚するようなことを書くんじゃないの
0007デフォルトの名無しさん2014/12/10(水) 20:47:35.96ID:7ek4HD8a
基地概が仮面被ってウロウロしてるように見える
0008デフォルトの名無しさん2014/12/11(木) 01:17:47.91ID:2YwrX4ci
仮面弁士さんが仮面さんと略されるのは嫌だとかブログに書いてたときは
えー、と思った
0009デフォルトの名無しさん2014/12/11(木) 05:53:28.00ID:HD31sjD5
前スレ972です。忙しくて遅くなりましたが、一応報告。

MSDNフォーラムを流し読みで、これが該当してるかと思ったのですが、XPでは相変わらず解決しません。
ttps://social.msdn.microsoft.com/Forums/ja-JP/03a23938-639b-4a31-96b5-51e06bb0dcf7/help-i-get-multiple-dtndatetimechange?forum=vcgeneral

と言う訳で、これでDateTime_GetMonthCalの存在に気付いたので、無理矢理解決しました。
これで一回しか来なくなりました。その後動作に多少違和感ありますが、まあ良しと。


case IDC_DATE:
if (lpNmHdr->code == DTN_DATETIMECHANGE) {
  // DateTimePickerから日時を取得
SendDlgItemMessage(hwnd, IDC_DATE, DTM_GETSYSTEMTIME, 0, (LPARAM)&date);

  // OK処理
  if (日付判定でOK) {
    何らかの処理;

  // NG処理
  } else {
    DestroyWindow(DateTime_GetMonthCal(lpNmHdr->hwndFrom));  // シネハゲ
    MessageBox(hwnd, "ダメヨダメダメ", "error", MB_OK);
    日付を本日に戻す
  }
}
0010デフォルトの名無しさん2014/12/11(木) 08:38:02.85ID:qKHRQsDr
警告メッセージボックスを出すタイミングが間違ってると思う
0011デフォルトの名無しさん2014/12/11(木) 10:23:06.73ID:4YWsTBXo
IMEの変換候補リストの非表示化ってWM_IME_SETCONTEXTメッセージ通知時に
DefWindowProc ( hWnd, Msg, wParam, lParam & ~ISC_SHOWUIALL )をすることで出来るけど、
これをやっててもWM_IME_COMPOSITIONでDefWindowProcを呼ばずにreturn 0;しちゃうと
デスクトップ右下に変換候補リストが表示されちゃうんだけど、どうしたら良いんだろうか
return 0;するのは入力中の文字をIME側で表示させないためなんで、これは外せない

ちなみにWin8.1の場合で、Win7だと問題ない
0012デフォルトの名無しさん2014/12/11(木) 10:40:20.29ID:+7kmVeL+
>>10
MSDNフォーラムでも上がってる問題かつ前スレから見ててその答えに至る理由と答えを詳しく
0013デフォルトの名無しさん2014/12/11(木) 11:07:13.47ID:u3d/vbqo
☆☆☆☆☆
               /  /     /   |      \ ヽ
               / /  /   / /    ||  |  i  ヽ i
              i /  / /  / / /    ||  ||  |│ |ノス
               |//  / /___, -一ァ|  /! |ト、|│ | | く」
                |,-‐¬  ̄---┘'7 |!  ハ! |,、-┼十|! | | |
          , -‐ ''"  し' '´_ /,ィ二l |ト、/!ヽト、\_ヽ!|!l | ハ |
       ,r/      __   ,イ|リ ヾハ! ヽ!  ,ィ⌒ヾミリノ!/リ  | ☆ 自民党、グッジョブですわ。 ☆  
      / ||ヽ  -'     / ̄ )` __      |ヒノ:} '` ,イ/ |  |  http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html
    ,r '   ヾ、  ,-、____ , イ ̄,r==-      ==-'  レ' /|  |  
  / ヽ    `ーソ  ' | |ト、,ヘ ′""          "" / / || | ☆ 日本国民の皆様、12月14日(日)の
. /    \_  /  | ハ ヽ`゙'ヘ       ' '__. ィ  / / | |  |     『衆議院議員総選挙』に必ず投票にいきましょう。 ☆  
           /   / / |  ヽ 川\    ヾ三ニ‐'′//! |  | |  |   
        /    / / 八  \川| |`ト- ..  __ , イ‐ァヘ |  | ||  |!
      /    / / /  \  \ 「`ー- 、    /  .〉  ト、|  ヽ、
     ,イ    /-─=¬ニヘ、_  \   厂\ 厂ヽ /!|   | `ー=ヘ
 -‐  ̄ /─ '  ̄     ├- ヽ\  \ノ\ \ 人 ハ!ヽ ||  |-┤ ヽ
      /          /!‐-- | |\   ト、_`ヽ oヽ  ト、!  ||  |‐┤- ヽ
  // 〉      __ /  ├‐-  ||  | 川-‐  | |  厂7! ハ!  ├:┤  ̄ヽ
  / / ー ─    ̄       ├‐- リ  || ハ!ヘ   | |  ト┤|/′ ヾ,┤   ゙i_
  ‐ '              〉‐-    | / /\ .|o | /ヽ/(′    ∨     \
‐--─ ──-r、___-、    /ー_     {(   '´>、! /ヽ/       |\       \
0014デフォルトの名無しさん2014/12/11(木) 12:06:54.47ID:CmTJh6DI
>>11
DirectX SDKのCustomUIサンプルがもしかすると参考になるかも。
あれは変換候補リストを自前描画しているように見えたし。
0015デフォルトの名無しさん2014/12/11(木) 12:26:04.04ID:4YWsTBXo
>>14
レスさんくす。CustomUIは見てる
あのサンプル、WM_IME_から始まるメッセージを処理してる部分すべてに対して「DefWindowProcに任せて他に何もしない」ように書き換えても自前で描画しやがるんだよね
だからIMEのメッセージを処理する以外の方法でやってるんだろうけど、そうなると調べるきっかけが無くて困ってるんだわ…
0016デフォルトの名無しさん2014/12/11(木) 15:49:31.91ID:qKHRQsDr
ボカロ講座
https://www.youtube.com/watch?v=PrFd8dazSUs
https://www.youtube.com/watch?v=t8xKo11vqKU
0017デフォルトの名無しさん2014/12/11(木) 16:19:31.00ID:CmTJh6DI
>>15
WM_IME_SETCONTEXTは元の通りの処理で、
WM_IME_STARTCOMPOSITIONはreturn 0した上で、
WM_IME_COMPOSITIONはそのまま流すと、
候補リストが出なくなった。
期待した動きにはなっているみたいだけど、
WM_IME_COMPOSITIONの取り扱い方が謎すぎる。
下手したらWin8.1のみOKでしたとかありそうw
0018デフォルトの名無しさん2014/12/11(木) 16:21:13.59ID:Knr7owVD
>>17
Win7でテストしよっか?
0019デフォルトの名無しさん2014/12/11(木) 17:23:39.08ID:4YWsTBXo
>>17
おお、いけた!
Win7でもとりあえず期待通りに動いてる
STARTCOMPOSITIONだけ潰すという発想ができなかった
完全な思い込みだったわ
ありがと、助かった

>>18もありがと
0020デフォルトの名無しさん2014/12/12(金) 23:32:09.07ID:1WcHfeh2
IMEは本当にめんどくさい
GoogleIMEは候補リスト非表示にしたらIMN_OPENCANDIDATEとIMN_CLOSECANDIDATE送らなくなったりするし
予測変換リスト消せないし
0021デフォルトの名無しさん2014/12/13(土) 06:14:59.62ID:KcZztYF+
http://blog.trendmicro.co.jp/archives/10346
0022デフォルトの名無しさん2014/12/15(月) 17:08:35.86ID:ki2QYat8
OPENCANDIDATEは無くても問題ないけど、CLOSECANDIDATEが無かったら
候補リストが閉じられたことをどうやって判断すれば良いんだろう
キー入力や変換状況から推測するしかないのか?
0023デフォルトの名無しさん2014/12/15(月) 22:06:20.53ID:ZdlYoZ19
ネット上のファイルをDLする URLDownloadToFile についてです
これの戻り値は、正常を含めて3つあるとする説明がされているようですが
昨日からYoutubeのページを読もうとすると、800C000D が返ってきます

これは INET_E_UNKNOWN_PROTOCOL だそうで
検索しても日本語のサイトは出て来ないので最近追加されたのか
MSのサイトでは
The protocol is not known and no pluggable protocols have been entered that match.
となっていて、なにかプラグイン的なものが必要なのでしょうか
それとも、もうURLDownloadToFileは使えないのでしょうか
(XP+IE8では正常に表示しています)
0024デフォルトの名無しさん2014/12/15(月) 22:31:17.79ID:Frs3czro
Win8.1/VS2013/VC++で「ttps://www.youtube.com/?gl=JP&hl=ja」(実際はh抜かず)に対して実行してみたけど
普通にトップページのHTMLダウンロードしたわ
0025デフォルトの名無しさん2014/12/15(月) 22:55:54.12ID:ZdlYoZ19
なんかXPの更新が止まってるせいじゃないかという気がしてきました
URLDownloadToFileのせいじゃなくて、それを含むDLLのアップデートが必要ってことなんでしょうね
0026デフォルトの名無しさん2014/12/16(火) 00:13:30.39ID:OxbDdIsh
とんでもないことです
>>23は無かったことにして下さい
URLが間違ってただけでした
0027デフォルトの名無しさん2014/12/16(火) 18:58:26.88ID:PuXxa6T9
エラーメッセージが用をなしてない好例
0028デフォルトの名無しさん2014/12/16(火) 19:36:52.01ID:I/xcQtqD
いやわかるだろ
プロトコルが間違ってるつってんだから
0029デフォルトの名無しさん2014/12/16(火) 20:04:42.76ID:O3FTYGHy
やっぱGUIプログラミング極めるにはC#覚えた方が良いの?
0030デフォルトの名無しさん2014/12/16(火) 20:15:20.84ID:C7o/2Q89
そりゃ覚えられるなら覚えたほうがいいだろう
0031デフォルトの名無しさん2014/12/16(火) 20:56:02.75ID:RnBy1HD6
C#を覚えておくと就職で役に立つ可能性がある
趣味でやるならC++のほうが応用利く
C#はやりたいことが出来ないことがちょいちょいある
0032デフォルトの名無しさん2014/12/16(火) 21:07:33.11ID:O3FTYGHy
>>31
趣味だしC++でやるかな。いろいろ変態なことしたいし
0033デフォルトの名無しさん2014/12/16(火) 21:11:26.66ID:iZ4fodMn
そこでCLI?
0034デフォルトの名無しさん2014/12/16(火) 21:19:29.42ID:73pYDHty
就職でC#って土方一直線やん
C++で組み込みのほうが稼げるよ
0035デフォルトの名無しさん2014/12/16(火) 21:44:21.67ID:O3FTYGHy
C++でguiソフト作る時はみんなWin32APIでゴリゴリ書いてるのか
0036デフォルトの名無しさん2014/12/16(火) 21:45:20.29ID:I/xcQtqD
WTL使ってる
0037デフォルトの名無しさん2014/12/16(火) 21:46:20.41ID:WkYd0GRJ
なにそのマゾプレイ
最低でもWTL位は使うと思うぞ。
0038デフォルトの名無しさん2014/12/16(火) 21:58:02.07ID:rJ4g6hQd
>>28
最初のコロンの前がプロトコルを指定するということを知らない人は多い
まあ、そういう人がこの板にいるのはどうかと思うが...
0039デフォルトの名無しさん2014/12/16(火) 22:00:52.40ID:O3FTYGHy
あーそういうの使ってるのか。ようやく謎が解けたわ。もうプロシージャとバトルすんの疲れたわ
0040デフォルトの名無しさん2014/12/16(火) 22:01:40.09ID:rJ4g6hQd
>>31
> C#はやりたいことが出来ないことがちょいちょいある

インラインアセンブラとか、ライブラリー含めたオブジェクトサイズ命とか?
他に何かあるかなぁ?
0041デフォルトの名無しさん2014/12/16(火) 22:08:06.10ID:XedjYbmG
C#やっててやりたいこと調べてたら「Win32API使ってください」って書いてあるとゲンナリする
じゃあ最初からC++でやるわ

>>35
CreateWindow書きまくってるわ!
0042デフォルトの名無しさん2014/12/16(火) 22:24:28.50ID:iZ4fodMn
Win32API自体は何も面倒ではない。

WM_COMMAND WM_NOTIFY とか、もうちょっとWindows自体のメッセージの仕組みがどうにかならんかな。
0043デフォルトの名無しさん2014/12/17(水) 14:46:21.16ID:ejUwy2/1
そこは増築したから可笑しくなってるんで
治そうと思ったら基礎から創りなおさないといけないので無理
0044デフォルトの名無しさん2014/12/17(水) 15:05:18.23ID:M4DlxzNU
笑えない
0045デフォルトの名無しさん2014/12/17(水) 15:31:21.24ID:31zY9Bk5
>>41
あほか
C#から呼ぶWin32APIやCOMメソッドの味こそ至高
0046デフォルトの名無しさん2014/12/20(土) 11:55:41.16ID:ktPib6WI
質問ッス
CallWindowProc()がなぜ必要かについて教えてください
もとのウィンドウプロシージャを、シンボルなり関数ポインタなりで直接呼出しちゃいかんの?

ネットに転がってるサンプルとかだと、サブクラス化でウィンドウプロシージャをFoo()に変えるときは
Foo()からCallWindowProc()経由で元のウィンドウプロシージャを呼び出し、
ウィンドウ生成時にウィンドウプロシージャFoo()を指定したときは
Foo()からDefWindowProc()直接呼出し、みたいな傾向で使い分けられてるようなんだけど
意味わかんね;
0047デフォルトの名無しさん2014/12/20(土) 12:15:43.77ID:e+FqSQyU
リエントラントになってないんじゃね
0048デフォルトの名無しさん2014/12/20(土) 12:25:32.32ID:ktPib6WI
ウィンドウプロシージャの呼び出しはメッセージキューで同期化されているのでは…
0049デフォルトの名無しさん2014/12/20(土) 12:44:10.96ID:Rb9drWZD
>>46
サブクラス化が解除された時にチェインが切れてしまうから。
1がサブクラス化、2がサブクラス化、1がサブクラス化解除してさようならって順番になった時、
OSが管理していれば2から解除後のプロシージャに繋げることができる。
0050デフォルトの名無しさん2014/12/20(土) 12:57:40.39ID:Rb9drWZD
ふと思い出したけど、WinXPから追加されたShell系のAPI使った方がスマートかも。
Get/Set/RemoveSubclassとDefSubclassProcってのがある。
0051デフォルトの名無しさん2014/12/20(土) 19:49:13.64ID:yFHMiTkQ
47,48,49 ハズレ。 精進してください
0052デフォルトの名無しさん2014/12/20(土) 20:02:12.53ID:Rb9drWZD
Win32APIで二度と精進することは無いよ、流石に。
このまま解答は謎のまま終わるのだろうしw
0053デフォルトの名無しさん2014/12/20(土) 20:41:38.02ID:d3OhbbmF
>>46
内部でどうやってるのかは知らんけど
WIn32APIってある関数を関数ポインタから直接呼び出さないようにするためのAPIって他にもあった気がする。

元のウィンドウプロシージャがウィンドウプロシージャとは思えないような名前になっている場合でも
CallWindowProc()によって呼ばれていればウィンドウプロシージャとすぐ分かるとか(→まず命名規則を直せwと言われる)
あとコードの中で関数ポインタを使ってそのまま呼び出すと、それが普通の関数との区別が付きにくいから、
普通の関数ではなく関数ポインタを使って呼び出してますよ〜っていうアピールとか
ただ、稀にそういう無駄に思えるAPIにはなんらかの安全装置が入っている場合もあると思う
NULLの場合は呼ばないとかね

まぁ適当に書いたw
0054デフォルトの名無しさん2014/12/21(日) 07:13:15.86ID:8360BKUs
Win32APIでウィンドウ内部に表示したテキストをマウスカーソルで選択して
その内容をクリップボードにコピーするにはどうすればいいですか?
テキストをビットマップで描画した場合はそういう動作を実装するのは原始的な方法でやるしかないと思います。
例えば、独自のデータクラスでテキストのフォント情報とウィンドウ内での表示位置を保持しておいて
マウスカーソルが該当位置に入ったときに、マウスポインタをテキストカーソルに変更してテキストを選択、コピーできるようにするといった方法です。
テキストをスタティックテキストとして表示した場合は選択してコピーという動作は不可能ですか?
質問を率直に表現すると、一般的なウェブブラウザやメーラーでの実装がどうなってるのか知りたいです。
0055デフォルトの名無しさん2014/12/21(日) 10:13:26.13ID:Cbe/fEHP
http://blogs.msdn.com/b/oldnewthing/archive/2003/12/01/55900.aspx
0056デフォルトの名無しさん2014/12/21(日) 22:08:16.21ID:nIdOkAPb
Win16でチェインを作るのに用意したAPIが流用できたって事なのかな。
まあ、SDK Books Onlineに全てが書かれているわけでも無し、
Win16の時点で既に別の用途を持っていた可能性もあるか。
0057デフォルトの名無しさん2014/12/21(日) 22:13:14.89ID:OyijOBJq
>>46
Why not calling window procedure instead of calling CallWindowProc?
http://stackoverflow.com/questions/7712907/why-not-calling-window-procedure-instead-of-calling-callwindowproc
0058片山博文MZ ◆T6xkBnTXz7B0 2014/12/23(火) 19:22:30.30ID:wKRFgZ7F
スタティックコントロールは、標準では上下中央寄せができないんだよな?
0059デフォルトの名無しさん2014/12/23(火) 19:48:02.42ID:hFB1tnzj
>>58
SS_CENTERIMAGE
0060片山博文MZ ◆T6xkBnTXz7B0 2014/12/23(火) 20:03:29.88ID:wKRFgZ7F
>>59 ありがと
0061デフォルトの名無しさん2014/12/24(水) 01:05:28.96ID:EbeXH3Zw
>>54
ここに簡潔に書くことはできない
非常に手の込んだことやる
手探りならHTML->RitchTextコンバータ作ってRitchTextCtrlでごまかせ
0062デフォルトの名無しさん2014/12/24(水) 01:08:44.57ID:Y7j7WALA
mouse_eventでマウス選択をエミュレート
keybd_eventでctrl+cなどのクリップボードコピーのショートカットキーを合成
0063デフォルトの名無しさん2014/12/24(水) 01:14:30.06ID:tVM9CYMM
VBSでWindowsのアクティブウィンドウの"XXX.exe"やPIDを取得する方法ありますか?
WMIのWin32_Processテーブルで実行中アプリ一覧は取得できたんですけど、
アクティブなのかとかウィンドウの順序がわかりませんでした。
VBSを実行するとVBSがアクティブになるようなので、直前にアクティブだったモノを取得したいです。
0064デフォルトの名無しさん2014/12/24(水) 02:47:17.94ID:Xbr7BZOu
>>54
スタティックコントロールならGetWindowsTextで出来るし
TextOutや画像の場合はOCRで判別しないとだめな事は分かるが
ブラウザやメーラーのどんな機能を求めてるのかがいまいちわからない
オープンソースで沢山あるから求めるものを探してみては?

>>63
いろいろやり方あるけど
CUIオンリーで作るか
GUIでやるならGUI生成前にアクティブなウィンドウを保持すればいい
0065デフォルトの名無しさん2014/12/24(水) 11:33:52.81ID:mx5B7sKs
非MFCな簡単なDialog(STATICテキストとボタンのみ)を作ったのですが、
STATICテキストに文字列を改行を含めて複数行書きこんだら、Dialogの
高さが足りなくて、下のほうが表示出来ないのですが、STATICテキスト
全体が丁度うまく入るようにDialogの高さを自動的に調整するには、
どういう手法がありますか?使うフォントやサイズから必要な高さを
計算するしかないでしょうか?
0066デフォルトの名無しさん2014/12/24(水) 12:11:28.08ID:GkceODzb
リソースで用意したダイアログボックスをDialogBoxで呼び出す分には行数だけ意識してりゃ良いと思うんだけど、
CreateWindowでダイアログボックスっぽいウインドウを自作してるのか、それともフォントを動的に変更したいのか?
フォントが固定なら、あらかじめサイズ測ってそれが収まるサイズで作れば良いんじゃね
0067デフォルトの名無しさん2014/12/24(水) 12:18:20.64ID:mx5B7sKs
>>66
レスありがとうございました。
リソースで用意したダイアログボックスをDialogBoxで呼び出しています。
CreateWindowは使っていません。
フォントが固定です。
この場合には、この使っているフォントの高さを予め測っておいて、それに
行数を掛ければよいのでしょうか?
0068デフォルトの名無しさん2014/12/24(水) 12:22:58.34ID:mx5B7sKs
>>66
良く考えたら、横方向も、一番長い行に合わせてウインドウ幅を
広げないといけないように思うのですが、それも自前で実装する
必要ありますか?
0069デフォルトの名無しさん2014/12/24(水) 12:23:48.12ID:mX/5YedW
>>67
リソースは何で作ってんの
リソースエディタなら最初から必要な分だけ高さ持っとくではダメなん?
0070デフォルトの名無しさん2014/12/24(水) 12:25:35.17ID:mx5B7sKs
>>69
ああ、書き忘れていました。フォントは固定ですけれど、
表示する文字列は、状況に応じて変えたいのです。
0071デフォルトの名無しさん2014/12/25(木) 00:57:35.40ID:lIKku1jt
MessageBoxをやりたいのでは?
0072デフォルトの名無しさん2014/12/25(木) 01:11:18.47ID:hIjBmD/A
CreateSymbolicLinkで作られたリンクの
リンク先パスってどうやって取ればいい?
0073デフォルトの名無しさん2014/12/25(木) 01:20:46.64ID:g3diUBPe
>>71
MessageBoxって、表示する文字列に応じて、縦横サイズは
自動で調整されたっけ?
確か、横幅は勝手な値になったような気がする。
0074デフォルトの名無しさん2014/12/25(木) 01:28:01.75ID:hWcCZ3d4
>>72
「Junctions と Symbolic Links を見分ける」って記事で、参考になりそうな情報が載ってた

>>73
ある程度は可変だけど、横の長さは限界があったような
0075片山博文MZ ◆T6xkBnTXz7B0 2014/12/25(木) 06:02:25.32ID:gEw73of1
GetTextExtent32
DrawText
使えば、洗濯中のフォントでテキストの大きさが計算できる
0076デフォルトの名無しさん2014/12/25(木) 07:21:41.79ID:iVu6887z
>>72
DeviceIoControlを使う
0077デフォルトの名無しさん2014/12/25(木) 07:48:06.58ID:hIjBmD/A
>>74, >>76
DeviceIoControlのFSCTL_GET_REPARSE_POINTで取れそうだね
ありがとう
0078片山博文MZ ◆T6xkBnTXz7B0 2014/12/25(木) 15:02:58.41ID:gEw73of1
choosefontでarialフォントが出てこない。何でやねん!
0079片山博文MZ ◆T6xkBnTXz7B0 2014/12/25(木) 15:52:04.46ID:gEw73of1
自己解決。フォントの非表示になってた。
0080サトラレ32014/12/25(木) 17:34:46.20ID:EHIgPikd
メモリバッファオーバーフローする関数を使うなよ、下のページを見てね。

CRT 関数のセキュリティが強化されたバージョン
http://msdn.microsoft.com/ja-jp/library/wd3wzwts.aspx
0081デフォルトの名無しさん2014/12/25(木) 17:51:52.84ID:sOzYbLID
移植性皆無のゴミか
0082デフォルトの名無しさん2014/12/25(木) 19:31:42.18ID:g3diUBPe
>>80
visual studioが自動的に_s関数に置き換えてくれると
嬉しいんだけどなあ。
0083デフォルトの名無しさん2014/12/25(木) 19:42:12.64ID:/AazF+Ck
パラメーターあるのに
0084デフォルトの名無しさん2014/12/25(木) 19:45:23.74ID:g3diUBPe
>>83
それを考慮して自動的に変換するくらい
やれば出来るだろ。
0085片山博文MZ ◆T6xkBnTXz7B0 2014/12/25(木) 19:51:05.09ID:gEw73of1
>>84
templateでできそうだな。GitHubにアップップしてくれよ。
0086デフォルトの名無しさん2014/12/25(木) 19:53:16.23ID:TNXAHmr6
プルリクエストで他人をタダでコキ使う
0087デフォルトの名無しさん2014/12/25(木) 20:03:52.00ID:DUSQtRDS
Windowsのバッファオーバーフロー芸(脆弱性)の頻度を見るに
効果があるのか疑わしい
0088デフォルトの名無しさん2014/12/25(木) 22:08:24.76ID:WcNb3TxT
VC expressってめっちゃリンクエラー出るな。professionalなら出ないみたいな記事多いけど本当なのだろうか
0089デフォルトの名無しさん2014/12/25(木) 22:32:06.97ID:hWcCZ3d4
いつの時代のExpressだよ
0090デフォルトの名無しさん2014/12/26(金) 02:51:46.48ID:9kx5MszT
PlgBltでマスク付きで回転させると、180度の時だけマスクだけ回転されません
原因と対策が知りたいです
0091デフォルトの名無しさん2014/12/26(金) 07:37:15.32ID:MY2qGPtA
バッファーオーバーランだろうがww
0092デフォルトの名無しさん2014/12/26(金) 07:45:39.55ID:E/d/nF+F
突然どうしたの?発作?
0093デフォルトの名無しさん2014/12/27(土) 07:37:15.02ID:1yD8UlHJ
>>80 スレチ
0094デフォルトの名無しさん2014/12/28(日) 18:48:47.92ID:6Z3FAnif
もうスタックをcall/ret 用とデータ用にわけようよ‥
0095デフォルトの名無しさん2014/12/28(日) 18:52:59.69ID:vTsBbpaJ
ハーバードか
0096デフォルトの名無しさん2014/12/28(日) 20:08:19.98ID:AQDitcxr
>>95
違う、ハーバードアーキテクチャは命令とデータが別になってる
戻り番地は命令じゃない
0097デフォルトの名無しさん2014/12/29(月) 11:35:57.58ID:5nnfxQgp
>>94
イイネ!
0098デフォルトの名無しさん2014/12/29(月) 14:20:58.47ID:S3K6lQ9W
win32じゃないけどここが一番詳しそうだから知ってたら教えてくれ

HDDのドライブにautorun.infを撒くウィルスに掛かった。
消しても消しても直ぐ新しく作成される。中身はこんな感じ

> [AutoRun]
> ;QtgJy DWVOd
> oPEn = qlthe.pif
>
> ;
> sHell\ExplOre\command= qlthe.pif
> ;
> sHeLL\oPEN\DEFaUlt=1
> ;UNOVNAKwaqR
> sheLL\Open\coMMANd =qlthe.pif
> sHell\AuTOplAy\cOMmaNd =qlthe.pif

レジストリでAutoRunはdisableにしたけど、根本解決出来ていない。

よくわからないまま初めて使ったプロセスモニターで見てると、
消す時と作られる時、svchostからDLLhost.exeが呼ばれてるみたいなのは分かったけど、
レジストリ検索しても、それらしいトリガーが見つからなかった。

イベントドリブンで動いてるのは分かるんだけど、どこに仕掛けられてるか分からない。

教えて欲しいのは、仕掛けられてる可能性としてはどの辺なんだろうか?というのと
ファイル作成イベントを拾ってトレースする方法です。

説明を書きこむのもメンドーだと思うけど、知ってる人が居たらお願いします。
0099デフォルトの名無しさん2014/12/29(月) 14:31:14.30ID:/fu+2Q3X
環境によって違うかも試練が
こっちじゃないの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
0100デフォルトの名無しさん2014/12/29(月) 14:33:53.40ID:z3+ydwsT
>>98
ファイル作成イベントを監視するより、作成先のパスにアクセスしてる奴を探したほうが良いのでは?

>>99
それ、起動時に実行されるパスを記述するとこだろ
0101デフォルトの名無しさん2014/12/29(月) 14:35:16.58ID:MO2YxmqX
それは罠だ気をつけろw
その仕組みを無効にしたら時限爆弾のスイッチが入るかもしれんぞww

おとなしくまっさらにしてOSを入れ直しとけ
0102デフォルトの名無しさん2014/12/29(月) 14:45:29.22ID:/fu+2Q3X
>>100
起動時にウィルスが実行されるんじゃないの
0103デフォルトの名無しさん2014/12/29(月) 15:15:51.18ID:S3K6lQ9W
みんな有難う。入れ直すかぁ・・・
0104デフォルトの名無しさん2014/12/29(月) 15:49:07.15ID:OoIX/QSt
何故このスレでその質問を・・・?
0105デフォルトの名無しさん2014/12/29(月) 17:28:39.53ID:D8f+V+OM
>>104
>>98でここが一番詳しそうだからと書いてあるよ
0106デフォルトの名無しさん2014/12/29(月) 21:43:29.71ID:l6t0xFiE
詳しい奴も常にここ見てるとは限らんしなあ
0107デフォルトの名無しさん2014/12/29(月) 22:22:06.28ID:OjECgY52
>>103
タスクスケジューラとスタートアップは見たのかな?
0108デフォルトの名無しさん2014/12/30(火) 00:15:47.68ID:smW2R/O9
msconfigで確認
0109デフォルトの名無しさん2014/12/30(火) 00:17:44.22ID:smW2R/O9
svchostの実行ユーザーがSYSTEM/Administratorなら変なサービス登録されてるだろうし
一般ユーザーならどこかに実態があるな
0110デフォルトの名無しさん2014/12/30(火) 00:31:13.33ID:xDBp8ctI
自動起動は
・レジストリのAutoRunとAutoRunOnce(HKCUとHKLMの両方に存在)
・スタートメニューのスタートアップ
・コントロールパネルの管理メニューのサービス
・アクセサリのシステムツールのタスクスケジューラ
がある
特にタスクスケジューラに登録されたプログラムは起動タイミングが多様に設定できる
0111デフォルトの名無しさん2014/12/30(火) 00:39:49.88ID:eN0LA0SP
>>110
>AutoRunとAutoRunOnce
RunとRunOnceではなくて?

あと、スタートメニューのスタートアップとmsconfig(Win8の場合はタスクマネージャ)で設定出来るスタートアップは別だよね
0112デフォルトの名無しさん2014/12/30(火) 00:47:11.64ID:xDBp8ctI
>>111
そうRunとRunOnce
前のレスのほうでのAutoの文字につられてしまった

msconfigで見れるスタートアップはレジストリのRunとスタートメニューのスタートアップの列挙じゃね
0113デフォルトの名無しさん2014/12/30(火) 01:49:40.88ID:si9v+Xxr
なんのスレだよ
0114デフォルトの名無しさん2014/12/30(火) 01:57:12.63ID:JWtJz6A1
どさくさに紛れてウィルスの作り方をこっそり教えるスレ
0115デフォルトの名無しさん2014/12/30(火) 02:28:36.54ID:8Geo16ji
クラス内の2つの関数がテキストファイルにログを出力するようになってて
プロジェクトによって出力内容が少し変わるような場合ってどうしてる?

そのクラスは機能毎に分けられてる小さなクラスで
将来プロジェクトAとBに使用された場合ログ出力部分だけが
プロジェクトAとBで違う動作になる感じ
0116デフォルトの名無しさん2014/12/30(火) 02:29:29.57ID:8Geo16ji
C++スレと間違えたからそっち行くごめん
0117デフォルトの名無しさん2014/12/30(火) 08:20:02.76ID:z/APKETI
>>115
条件付きコンパイル
0118デフォルトの名無しさん2015/01/02(金) 12:53:58.03ID:3QN74PF7
BOOL WINAPI FileTimeToSystemTime(
_In_ const FILETIME *lpFileTime,
_Out_ LPSYSTEMTIME lpSystemTime
);
で入力のFILETIME構造体の中身が0の場合、
1601/01/01 00:00:00
が帰って来るようなのですが、これはそういう仕様でしょうか?
0119デフォルトの名無しさん2015/01/02(金) 13:02:54.04ID:s3wWdubz
仕様です。
0120デフォルトの名無しさん2015/01/02(金) 13:13:58.61ID:9DuwxUct
その日時から100ns単位での経過時間を64bitで表したものが
FILETIME構造体だから、そりゃそうだろって感じではある。
0121デフォルトの名無しさん2015/01/02(金) 13:28:24.30ID:gE/lARkH
徳川幕府が開かれた記念に開始年を合わせているのです
0122デフォルトの名無しさん2015/01/02(金) 13:58:51.17ID:3QN74PF7
>>119
仕様ですか。マイクロソフトのサイト見ても仕様だとは書いていないのですが。
どこかに情報ありますか?
一方、大きな値を与えた場合には
FILETIME の値が 0x8000000000000000 以上の値である場合、この関数は失敗します。
という説明はありますが、確かにこれ以上の値を与えるとエラーしました。
でも、戻り値のSYSTEMTIME構造体の中には、非常に大きな年月日が入っていて、いつも
同じ値なのですが、これも仕様でしょうか?エラーの場合に戻り値が異なる可能性ありますか?
0123デフォルトの名無しさん2015/01/02(金) 14:10:26.44ID:WWxidtQA
失敗した場合にlpSystemTimeに何が返るかなんて保証されんだろう。
0124デフォルトの名無しさん2015/01/02(金) 15:05:12.79ID:hrliGDH8
>>122
http://msdn.microsoft.com/ja-jp/library/x3399a54.aspx
>FILETIME の構造は、1601 年 1 月 1 日 1 時以降の 100 ナノ秒間隔の数値を表す 64 ビットの値です。

http://support.microsoft.com/kb/188768/ja
>FILETIME 構造体は 1601 年 1 月 1 日以降の 100 ナノ秒間隔の数を表します。構造を組み合わせて 1 つの 64 ビット値を形成する 2 つの 32 ビット値で構成されます。
0125デフォルトの名無しさん2015/01/02(金) 15:08:09.17ID:hrliGDH8
>>122
>仕様ですか。マイクロソフトのサイト見ても仕様だとは書いていないのですが。

MSのサイトの何処かには書いてるんだが、それがMSDNマガジンの中にしか無いってこともあるし。
まとめて書いてくれてたりハイパーリンクがあったりはしなくて情報は分散してる。
0126デフォルトの名無しさん2015/01/02(金) 15:16:26.95ID:hrliGDH8
>>122
何故 1601年なのか?
http://blogs.msdn.com/b/oldnewthing/archive/2009/03/06/9461176.aspx

ちゃんとMSのサイトの中にある。見つけにくいがw
0127デフォルトの名無しさん2015/01/02(金) 15:29:57.96ID:9gyWW7Zh
ところで、なんで経過時間になってるの?
サイズを最小に収めようとしたから?
0128デフォルトの名無しさん2015/01/02(金) 15:37:36.86ID:3QN74PF7
どうも私の質問の意図が伝わっていないようなのですが、何故1601年から数えるのかを聞いているのではありません。
私の質問は、systemtimeの
1601/01/01 00:00:00をfiletimeに変換すると二つの32bit正整数が得られると思いますが、それはゼロではありません。
それにもかかわらずにfiletimeのゼロを
systemtimeに変換すると何故1601/01/01 00:00:00
になるのかが疑問なんですが?仕様ですか?
0129デフォルトの名無しさん2015/01/02(金) 15:45:04.62ID:hrliGDH8
>>127
time_t の発案者に聞いてみないと分かんね
0130デフォルトの名無しさん2015/01/02(金) 15:45:28.67ID:C0yW4Jjr
FileTimeToSystemTime
http://msdn.microsoft.com/ja-jp/library/cc429727.aspx

SystemTimeToFileTime
http://msdn.microsoft.com/ja-jp/library/cc429961.aspx

FILETIME structure
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724284%28v=vs.85%29.aspx

SYSTEMTIME structure
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724950%28v=vs.85%29.aspx
0131デフォルトの名無しさん2015/01/02(金) 15:47:04.02ID:hrliGDH8
>>128
ん? 何時の間にか変換が逆になってない?
0132デフォルトの名無しさん2015/01/02(金) 15:51:02.77ID:9BexYNG0
>>124
> http://msdn.microsoft.com/ja-jp/library/x3399a54.aspx
> >FILETIME の構造は、1601 年 1 月 1 日 1 時以降

翻訳間違えてるな
原文には 1時なんて書いてないのに
0133デフォルトの名無しさん2015/01/02(金) 15:53:42.93ID:C0yW4Jjr
SYSTEMTIME構造体は最小単位がミリ秒
FILETIME構造体は最小単位が100ナノ秒
SYSTEMTIME構造体からFILETIME構造体に変換した際に100ナノ秒の位の値を弄らないだけじゃね
0134デフォルトの名無しさん2015/01/02(金) 16:04:40.76ID:hrliGDH8
>>132
>この記事は翻訳者によって翻訳されたものです。

誰かが機械翻訳に手を入れて間違えたのをMSがまんま承認したんだろな
0135デフォルトの名無しさん2015/01/02(金) 16:05:40.80ID:hrliGDH8
>>128
SystemTimeToFileTime のソースコード見れば解決するw
0136デフォルトの名無しさん2015/01/02(金) 16:11:22.40ID:WWxidtQA
書くたびに言うこと違うから、そりゃ意図が伝わらんわな。
0137デフォルトの名無しさん2015/01/02(金) 17:02:21.26ID:ibIo6Doo
>>128
> 私の質問は、systemtimeの
> 1601/01/01 00:00:00をfiletimeに変換すると二つの32bit正整数が得られると思いますが、それはゼロではありません。

再現しない(普通に 0, 0 になる)
コード晒してみなよ
0138デフォルトの名無しさん2015/01/03(土) 00:30:12.85ID:FOthHXBB
Windowsプログラミング学ぶ上で参考にした書籍ある?
0139デフォルトの名無しさん2015/01/03(土) 01:11:31.96ID:TeAjaTLz
AdvancedWindowsくらいかな
0140デフォルトの名無しさん2015/01/03(土) 01:31:24.07ID:ekZNF4RP
::Sleepについておしえて
1秒寝る場合

std::this_thread::sleep_for(std::chrono::milliseconds(1000));
と
::Sleep(1000);

では相対的な意味でどちらのほうが高精度なんですか?
0141デフォルトの名無しさん2015/01/03(土) 05:27:44.21ID:Cj8CgFQv
前者は最終的に
concurrency::wait
を呼んでいて精度はmilliseconds
なのでどっちも同じ
0142デフォルトの名無しさん2015/01/03(土) 08:46:05.08ID:zznC6x/d
>>137
わざわざテストして頂いてありがとうございました。
私の勘違いでした。1601/1/1は0,0になりました。失礼しました。
でも、不思議なのは、
FileTimeToSystemTimeは
FILETIME の値が 0x8000000000000000 以上の値である場合、この関数は失敗します。
とあるので、0x7FFFFFFFFFFFFFFFで試したら成功したのですが、これは良いのですが、
それで得られたsystimeの値を、逆にSystemTimeToFileTime
で逆変換したらエラーしました。不思議です。
0143デフォルトの名無しさん2015/01/03(土) 09:20:56.59ID:X+rqV4BU
>>142
有効範囲が違うだけだろ
SYSTEMTIME の wYear の最大値は 30,827 だけど、0x7FFFFFFF, 0xFFFFFFFF の FILETIME を SYSTEMTIME に変換すると wYear は 30,828 になる
有効範囲を合わせるという考え方もあるけど、範囲チェックのやり易さとかを優先したんだろ
0144デフォルトの名無しさん2015/01/03(土) 09:55:50.41ID:g9tk+6B8
>>142
そんな未来の話してたら鬼が笑いすぎて死ぬ
0145デフォルトの名無しさん2015/01/03(土) 13:12:33.23ID:zznC6x/d
>>143
30,827や30,828という数字が最大値になっているのは、何か意味があるのでしょうか?
32767とか65536みたいな数字なら分るんですが。
0146デフォルトの名無しさん2015/01/03(土) 13:28:02.85ID:/mlvjoc5
すこしは自分の頭を使えば?
0147デフォルトの名無しさん2015/01/03(土) 13:34:30.45ID:uW6/ZV96
>>145
0x7F...F を SYSTEMTIME に変換したら 30,828年の途中の月日になってるから、年を 30,827年までにしたんじゃね?
そうすりゃ、月日をどう指定されても 0x7F...F を越えないから
0148デフォルトの名無しさん2015/01/03(土) 13:49:29.60ID:2aVYf00S
1ミリも頭を使う気がないんだろうか
0149デフォルトの名無しさん2015/01/03(土) 14:05:18.45ID:g9tk+6B8
>>145
それが世界滅亡の年だから、MSの技術者はそれより先は不要と考えた
0150デフォルトの名無しさん2015/01/03(土) 15:37:38.64ID:TeAjaTLz
Y10K問題のRFCもあるというのに・・・ッ
0151デフォルトの名無しさん2015/01/03(土) 15:49:38.39ID:6GQPH0ED
gdgd過ぎる質問者
クレーマー気質だな
0152デフォルトの名無しさん2015/01/03(土) 17:02:48.26ID:ltaLXIWr
人工無脳のテスト中なんだろ。
0153デフォルトの名無しさん2015/01/03(土) 22:47:59.25ID:zznC6x/d
registry editorの画面はF5で表示を更新
出来ますが、それをプログラム的に
行えるようなWIN32API有りますか?
0154片山博文MZ ◆T6xkBnTXz7B0 2015/01/03(土) 22:51:42.29ID:XgnEofgF
>>153
InvalidateRect
TranslateAccelerators
0155片山博文MZ ◆T6xkBnTXz7B0 2015/01/03(土) 22:56:01.13ID:XgnEofgF
>>153
レジストリー関数、
ツリービューコントロールの更新、
リストビューコントロールの更新
0156デフォルトの名無しさん2015/01/04(日) 00:51:37.92ID:VkrGGUiZ
>>153
レジストリ情報を表示する処理をルーチン化して、
アプリ起動時の初期表示とF5が押された時にそれを呼び出す
0157デフォルトの名無しさん2015/01/04(日) 00:52:53.28ID:OnSb2bmJ
>>154-156
www
0158デフォルトの名無しさん2015/01/04(日) 01:14:46.04ID:lS1m/u6U
keybd_eventで。あーでもUAC効いてると送出側もUAC昇格してないといけないか
0159デフォルトの名無しさん2015/01/04(日) 02:36:02.78ID:KhFc6V4y
SendMessageでF5送ればいいやん
0160デフォルトの名無しさん2015/01/04(日) 04:36:56.74ID:Se//G/Gl
SendMessageでコマンドID648を送るのがいいでないかな。
UAC昇格が必要っぽいけど。
0161デフォルトの名無しさん2015/01/04(日) 05:27:09.82ID:45GcCJJQ
SendInputも?
0162デフォルトの名無しさん2015/01/04(日) 08:30:09.06ID:xLQUt7ms
いろいろ試したのですがどうやってもRegistry Editorの画面が更新
出来ません。どうすれば出来ますか?
0163デフォルトの名無しさん2015/01/04(日) 09:50:40.02ID:eaSAVEXU
グダグダ言わず、黙って動くソースコード寄越せという事ですか。
0164デフォルトの名無しさん2015/01/04(日) 10:06:12.02ID:+b+eo/V4
本当はWEBブラウザにでも使用してカウンター上げたいのかね
0165デフォルトの名無しさん2015/01/04(日) 11:07:44.66ID:iACTx4eq
キーボードに爪楊枝でもはさんでおけばいいよね。
0166デフォルトの名無しさん2015/01/04(日) 18:49:49.23ID:jxWL1hkj
むかし家庭用ゲームでも連射パッドってあったよな
スト�Uでしゃがみ小キックを連打とか
F5キー連打キーボードっての作ればバカ売れじゃね?
韓国あたりで
0167デフォルトの名無しさん2015/01/04(日) 20:10:44.38ID:9gg44y73
ttp://blog-imgs-18.fc2.com/g/a/i/gaikokuukikusa/20081217214912.jpg
0168片山博文MZ ◆T6xkBnTXz7B0 2015/01/04(日) 22:02:10.33ID:izkph8nP
>>162
操作アプリ側のmanifest設定でUAC昇格しろ
0169デフォルトの名無しさん2015/01/05(月) 05:03:36.91ID:W+aVkjp4
うるせ、カス
0170デフォルトの名無しさん2015/01/05(月) 20:11:15.00ID:c3CM6ukt
教えてくんBOTのお相手ご苦労
0171片山博文MZ ◆T6xkBnTXz7B0 2015/01/06(火) 14:28:33.60ID:hDnOTpqT
DoWonders98 (Win32 API Database Project)
https://github.com/katahiromz/DoWonders98

よろしく。
0172片山博文MZ ◆T6xkBnTXz7B0 2015/01/06(火) 14:52:45.97ID:hDnOTpqT
スクリプト言語でWin32 APIを直接たたくのが難しいという話が
あったので、Win32 APIのデータベースを作ることにした。
興味があったら開発に参加して下さい。
0173デフォルトの名無しさん2015/01/06(火) 14:58:57.69ID:/3+lVyCt
OLEのドラッグアンドドロップやってるんだけど、
ドラッグしてるファイルを他のファイルにドロップする方法が分かりません

フォルダへのドロップにらSHFileOperationで、実行ファイルへのドロップならCreateProcessで何とかなりますが、
ZIPファイルへのドロップとか、エクスプローラーなら圧縮ファイル内に追加したりできるのでそれを再現したいんです
後、IDropTargetのDragOverのタイミングでそれがドロップ出来るファイルなのか判別する方法も出来れば
0174デフォルトの名無しさん2015/01/06(火) 18:13:47.26ID:vIVMYKnQ
>>172
つ ttp://www.pinvoke.net/
0175デフォルトの名無しさん2015/01/06(火) 18:16:30.34ID:F2LheoCu
あれはシェルというよりエクスプローラーの機能だからなぁ
適当なライブラリ使って実装したほうがいい
0176デフォルトの名無しさん2015/01/06(火) 18:42:55.32ID:/3+lVyCt
>>175
いや、それがxfinderとか一部のファイラーでは出来るものがあるんですよ、
ソースの公開されてるexplorer++では残念ながら出来ないので参考にならず…
0177デフォルトの名無しさん2015/01/06(火) 18:51:24.99ID:/3+lVyCt
ソースの公開されてるファイラーを検索してみましたが、xfinderと同じ作者さんのtablacusexplorerがソース公開されてて再現できるようですね
これでどうにか解決できそうです
0178デフォルトの名無しさん2015/01/06(火) 19:38:22.42ID:fuOYowxU
だからさ、適当なライブラリで自前でやってるんだろうよ。
0179デフォルトの名無しさん2015/01/06(火) 19:40:23.59ID:W2F4pWSu
だからもくそもない
0180デフォルトの名無しさん2015/01/06(火) 21:14:47.07ID:RodQ+aTP
だからもくそもあるんだよ
0181デフォルトの名無しさん2015/01/06(火) 21:17:40.45ID:Q7R46vB5
いえいらないです
0182デフォルトの名無しさん2015/01/06(火) 21:23:32.55ID:nQ44NX4P
>>173
ファイルからIDataObject作って(SHCreateDataObject api等)
それをターゲットのIDropTargetにDragEnter&Dropする

DragOverで正しい引数を渡してやればeffectにドロップできるかどうかが入ってるでしょ
0183デフォルトの名無しさん2015/01/06(火) 22:32:22.60ID:/3+lVyCt
>>182
(=゚ω゚)ノ 大体分かりました。どもです。
0184デフォルトの名無しさん2015/01/07(水) 09:01:46.88ID:GreZiodL
SHCreateDataObjectのMSDNのコメントに、得られるDataObjectにはCF_HDROPなデータがないと書いてある
まあ自分でSetDataすればいいな
0185デフォルトの名無しさん2015/01/08(木) 20:31:36.79ID:cV2um/1t
>>182さんのいうようにドロップ先のファイルのIDropTargetを作って、
DragEnter/DragOver/Dropでドラッグされてるファイルや状態のデータが送られてくるので、
それを作ったドロップ先のドロップターゲットで処理させることで目的のeffectを受け取ったりドロップすることが出来ました

DragOverだけは効率を理由?にIDataObjectが受け取れないのでDragEnterのタイミングでとっておいたポインタを利用
マウスの入力はDropのタイミングでは当然ボタンが離されているので何も押されていない状態を受け取ってしまう
こちらはDragEnterのタイミングで左右どちらのドラッグか取得しておき、最後に入力状態に結合すればイイだけですね

これで問題なさそうです
本当に助かりました、感謝します
0186デフォルトの名無しさん2015/01/09(金) 09:22:24.41ID:+YxGEmiz
32bitの実行ファイルから64bitの実行ファイルをウィンドウを表示させずに起動して、終了待ちにしたいのですが

調べたところこのような感じのことがネットに出ていたのですが、間違いないでしょうか
・systemではウィンドウを非表示にできない。
・ShellExecuteでは終了待ちができない。
・CreateProcessでは32bitから64bitを呼び出せない。
395 名前: デフォルトの名無しさん [sage] 投稿日: 2015/01/
0187デフォルトの名無しさん2015/01/09(金) 09:45:14.13ID:50+lIvWd
まず、64bitモード用プログラムは64bitモードでしか実行できないし、32bitモード用プログラムは32bitモードでしか起動できません。
従って起動するコマンドの実行ファイルが64bitモードで作られていれば自動的に64bitモードで実行されると思いますけど。
32bit用と64bit用で同名のコマンドがある場合でも64bitの実行ファイルをフルパス指定すれば良いだけだと思います。
0188デフォルトの名無しさん2015/01/09(金) 09:53:04.76ID:7W6E51j5
コピペの応酬?
0189デフォルトの名無しさん2015/01/09(金) 09:53:33.44ID:50+lIvWd
FAQ
0190デフォルトの名無しさん2015/01/09(金) 10:42:48.54ID:Y0WqIXzk
>>186
試してないけど ShellExecuteEx なら終了待ちができるそうな
http://www.codeproject.com/Articles/1842/A-newbie-s-elementary-guide-to-spawning-processes
> ShellExecuteEx(&ShExecInfo);
> WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
0191デフォルトの名無しさん2015/01/09(金) 10:45:49.02ID:50+lIvWd
ShellExecuteEx
日本語
http://hp.vector.co.jp/authors/VA024411/vbtips02.html
0192デフォルトの名無しさん2015/01/09(金) 11:09:12.19ID:+YxGEmiz
ShellExecuteExの終了待ちは失敗することがあると出ていたのですが
まれなのでしょうか
0193デフォルトの名無しさん2015/01/09(金) 11:21:48.80ID:Y0WqIXzk
>>192
どこでだよ? そもそも「ShellExecuteExの終了待ち」なんて処理は存在しない。
あるのは「プロセスの終了待ち」だ。 それに失敗することがあるのなら、その詳細を洗えば良いだけだ。
0194デフォルトの名無しさん2015/01/09(金) 11:46:14.62ID:+YxGEmiz
ShellExecuteExにチャレンジしてみます。
ありがとうございます
0195デフォルトの名無しさん2015/01/09(金) 12:38:25.21ID:+YxGEmiz
>>190-193
できました。ありがとうございます
0196デフォルトの名無しさん2015/01/09(金) 17:09:44.37ID:JoT/J+XX
年始
0197デフォルトの名無しさん2015/01/14(水) 11:02:50.08ID:H5VD+o7q
Win7で非MFCで簡単なdialogを作ったのですが
リソースではdialogのフォントをMeiryo 9 にしていて、Win7ではいい感じに
表示されるのですが、XPで実行するとアホみたいに大きなフォントで表示されて
しまいます。これをXPでもWin7を同じがそれに近い見栄えにする方法
教えて下さい。
0198デフォルトの名無しさん2015/01/14(水) 13:01:42.75ID:EnBoJmyV
いやよ
いやいや
0199デフォルトの名無しさん2015/01/14(水) 13:41:37.70ID:H5VD+o7q
>>198
早く教えなさいよ
0200デフォルトの名無しさん2015/01/14(水) 13:41:54.76ID:zAqxDv6g
XPにMeiryo入れたらええがな。
それがダメなら7でMSゴシで作れや。
0201デフォルトの名無しさん2015/01/14(水) 14:21:03.25ID:0jHyb9lO
馬鹿には大きく見えるフォントですって書いとけ
0202デフォルトの名無しさん2015/01/14(水) 14:21:13.77ID:Jf8EXx2H
もういいかげんXPやめろや
0203デフォルトの名無しさん2015/01/14(水) 14:23:45.85ID:H5VD+o7q
>>200
XPは他人のPCなのでMeiryoを入れられないのよ。
XPでMeiryo 9に近いフォントを教えなさいよ。
0204デフォルトの名無しさん2015/01/14(水) 14:32:24.37ID:IApMgqT8
フォント入れられないなら無いから諦めろ
0205デフォルトの名無しさん2015/01/14(水) 15:54:27.58ID:/jk0RY/v
愛と希望と勇気の日
0206デフォルトの名無しさん2015/01/14(水) 16:19:18.59ID:YWWt0yf5
OSの種類調べてWM_SETFONTで変えればイイ
0207デフォルトの名無しさん2015/01/14(水) 16:35:44.94ID:/jk0RY/v
>>197
pygameのひとか
0208デフォルトの名無しさん2015/01/14(水) 16:36:24.61ID:t7e5aa/v
Tahoma 8ptでええやん
0209デフォルトの名無しさん2015/01/14(水) 16:39:53.75ID:ALs4owf5
Tahoma 8ptは本当にお世話になりました
0210デフォルトの名無しさん2015/01/14(水) 17:03:00.45ID:H5VD+o7q
Meiryo 9とTahoma 8で割といい感じに出来たわよ。
208には感謝するわ。
でも複数行の文字列だと、Tahoma 8のほうが改行幅が
少ないのよね。行が詰まった感じ。どうしたら改行幅を
増やせるのか教えなさいよ。
0211デフォルトの名無しさん2015/01/14(水) 17:20:55.37ID:0jHyb9lO
きめえんだよ殺すぞ
0212デフォルトの名無しさん2015/01/15(木) 10:55:50.96ID:WLm8ZLzH
はい
0213デフォルトの名無しさん2015/01/16(金) 19:29:37.64ID:49OvZmoV
.Netのフォームとか唯のWin32APIのラッパーって感じであんま興味なかったんだけど、
WPFはいい感じなんだよな。いろんなパーツが入れ子に出来るし、
ハードウェアアクセラレーションも効くし、ベクタグラフィックもあるし。
ついにWin32APIを置き換える本命が来たって感じ。移行しようかなぁ。
あれを体験すると、オーナードローとかマジ糞ってかんじ。
0214デフォルトの名無しさん2015/01/16(金) 19:31:35.22ID:3LWExJuS
WPFはオワコンなんじゃない
0215デフォルトの名無しさん2015/01/16(金) 21:09:39.44ID:+s1rBzQ5
WPFってすでに9歳なんですけど
9年経っても全く普及しない時点で
何かおかしいと感じるくらいのアンテナ感度が欲しいところです
0216デフォルトの名無しさん2015/01/16(金) 21:31:06.96ID:49OvZmoV
たぶんそれは今までWPFのポトペタ環境が無かったりアレだったりしたからだと思うんですよ。
ところが最近のVSではデザイナが結構まともになってるようで、
自分的にはこれからはWPFかなと思うのですが。
何でもかんでも入れ子に出来るのがステキかなぁと。
http://www.atmarkit.co.jp/ait/articles/0904/03/news104_4.html
0217デフォルトの名無しさん2015/01/17(土) 00:27:48.05ID:VtVVV8DK
見えます、見えますぞ
昔同じようななことがありましたぞ

何でもかんでも継承できるC++って素敵→スパゲッティクラスのできあがり
0218デフォルトの名無しさん2015/01/17(土) 05:03:11.42ID:Lt89vwb8
とりあえずWPFでボタン貼り付けて、
ボタンの中にStackPanel作ってListViewとTextBoxとEllipseを放り込んでみた。
http://fast-uploader.com/file/6976993736312/
こんなことWin32APIだけでやるのはもう無理な領域だな。
殆ど自前でUIパーツを作らなければならないだろう。
そんで最新のVS入れるとBlendってツールが勝手についてきて、
これ使うとUIをかなりエキセントリックにカスタマイズできるっぽい。
http://codezine.jp/article/detail/2354?p=4
0219デフォルトの名無しさん2015/01/17(土) 05:15:07.27ID:Lt89vwb8
せっかく最新のVSを入れたので、最新のMFCはどんなものかと
ウィザードつかってビルドしてみてビックリした。
すげーオシャレッティーなVS風のドッキングウィンドウに対応しているのな。
動作は丸々VSそのもの。ドッキングするし、ツールバーはフローティングするし、
これはこれで凄いんだけど、吐き出されたソースコードがかなりカオスってて、
これを理解するのは骨が折れるので今更MFCは無いなと。
ツールバーにコンボボックスを表示するにはどうしたらいいのかなーとか思って
CMFCToolBarのソースコード見たけど、どうも昔ながらのビットマップとボタンベースな感じの
メソッドがずらりと並んでいたので、どうせハックじみたことをしないといけないのなら
もうWin32APIでいいやって感じ。まーMFCは無いわ。
0220デフォルトの名無しさん2015/01/17(土) 06:53:00.14ID:wcQ46Ted
独り言でも流行ってんの?
0221デフォルトの名無しさん2015/01/17(土) 09:29:43.56ID:VtVVV8DK
MFCですら使えない可哀想な人なんだから
そうっとしておこうよ。
0222デフォルトの名無しさん2015/01/17(土) 10:42:58.44ID:Myj9loPB
>>218
最近はpython使ってます

>>219
同意します
0223デフォルトの名無しさん2015/01/17(土) 10:51:57.65ID:ZprTe1JK
どこぞの挙手厨みたいだ
0224デフォルトの名無しさん2015/01/17(土) 15:07:29.95ID:kMbky/jO
>>218
そんなGUIが必要になるケースはまれだから必要なときは手描きでOK
0225デフォルトの名無しさん2015/01/17(土) 16:31:40.05ID:Lt89vwb8
でもツールバーにいろんなパーツを載せたりとか、
リストボックスのアイテムに複合的なコントロールを載せたりとか、
夢が広がリングじゃね?Win32APIでそういうことをするのはマジで鬼畜だからねー。
何でもかんでも入れ子に出来るWPFはそれなりに魅力あると思う。

そんでちょっとMFCについてもいろいろ調べたんだけど、どうもバグの宝庫みたいだな。
Win32APIは枯れているのか、バグ自体はそんな無い感じだし、MFC使う意味はマジ無いな。
バッドノウハウが山のように引っかかる。
というか、MS自体ももうMFCを自社ソフト使ってないだろうから、
バギーでもうちは関係ねーって感じなんだろうけど。
最初ちょっと見た目の華やかさに引かれたけど、
よくよくコードを見ると旧態依然って感じで、MFC使うくらいならWin32APIで十分って思った。
0226デフォルトの名無しさん2015/01/17(土) 16:51:04.89ID:ZprTe1JK
噂になることより悪いことは
噂にすらならないこと
それがWPF
0227デフォルトの名無しさん2015/01/17(土) 16:55:22.07ID:gnkFi13Q
長いからさっきのコピペだとばかり。
Wikipediaの記述にでも毒されて、スレタイすら読めなくなったか?
0228デフォルトの名無しさん2015/01/17(土) 17:21:11.88ID:kMbky/jO
>>225
ツールバーにこだわる必要ある?
普通にウインドウにいろんなコントロール並べりゃ変わんないと思うんだが

リストボックスも、リストボックスやめてリストビューでオーナードローすりゃ何でも出来るでしょ
何ならリストを手描きにしちゃうとか

そもそも利用者はそんな凝ったUI望んでないと思うけどね
0229デフォルトの名無しさん2015/01/17(土) 17:32:22.93ID:sqhqU9t5
最初に教わったのが
ListBox は使ってはいけない
だからな
0230デフォルトの名無しさん2015/01/17(土) 17:55:34.39ID:ZprTe1JK
Connectで提示されたWPFのロードマップについて
元WPF開発者が「こんなものお為ごかしでロードマップでもなんでもない」とコメントするくらいなので
0231デフォルトの名無しさん2015/01/17(土) 18:01:39.39ID:AnR/lVu0
>>229
なんで?
0232デフォルトの名無しさん2015/01/17(土) 19:45:05.38ID:VtVVV8DK
>>225
>何でもかんでも入れ子に出来るWPFはそれなりに魅力あると思う。

MFCができたころも、そういういうオナニー画面を作る奴が続出したなあ
0233デフォルトの名無しさん2015/01/18(日) 01:20:37.86ID:6QGj4g4i
http://www.resedit.net/
↑ここからリソースエディタダウンロードして使おうとしたら怪しいインストーラで、
そんなはずないなぁと思いつつインストールしたら、めっちゃたくさん広告インストールされて、
RedEditを必死にスタートメニュから探したけどインストールされてなかったorz

インストールされたやつ全部アンインストールして、chromeの設定初期化して、ウィルスソフトで
フルスキャンかけてるわ

超ムカつくから、どうにか仕返ししたいんだけど、何かいい方法ない?
0234デフォルトの名無しさん2015/01/18(日) 01:29:42.69ID:3n+OvDNp
>>233
OSをきれいさっぱりインストールし直した方が良さそうだがなあ、
君の能力的にw
0235デフォルトの名無しさん2015/01/18(日) 01:48:34.84ID:6QGj4g4i
>>234
今、それやるかどうかかなり迷ってる
OSをクリーンインストールしてまだ1週間くらいしか経ってないんだよ
だから、余計ムカつく
0236デフォルトの名無しさん2015/01/18(日) 02:08:55.57ID:6QGj4g4i
窓の杜にはどうせインストーラしかないんだろうって思って、本家のサイトからポータブル版探してくるようにしてたから、
今回も本家のサイトから落としたんだけど
インストーラになってて、「?」って感じだったから、本家のサイト見直してみて、他にダウンロードできるファイルなさそうだし、
窓の杜のファイルサイズみても同じくらいだったから、インストーラしかないと思ってしまった

もう絶対インストーラなんか信じねー
必要もないのにインストーラで配布している奴は、サイトが乗っ取られて、
インストーラをすり替えられるとこまで想像できないんだよ
0237デフォルトの名無しさん2015/01/18(日) 04:08:29.95ID:vlONSagO
まともな開発者なら
インストーラーと一緒に
md5とかのhash値も置いてるはず
0238デフォルトの名無しさん2015/01/18(日) 04:24:16.07ID:6QGj4g4i
そのmd5とかのhash値も書き換えられてたら分からねーだろ
サイト自体を改ざんしてるんだから、インストーラをすり替えられるんだったらhtmlを少し書き換えるのも余裕だろ
0239デフォルトの名無しさん2015/01/18(日) 04:30:22.27ID:VBkFi4Oh
>>238
そこまで気にするならvsのdvd買って来いよw
0240デフォルトの名無しさん2015/01/18(日) 04:33:48.74ID:vlONSagO
>>238
同じサーバーに置くなよ
0241デフォルトの名無しさん2015/01/18(日) 04:42:33.41ID:cyPihoPR
>>233
まじでウイルスなの?怖いなぁ…
そんなん疑いなく入れるわ
0242デフォルトの名無しさん2015/01/18(日) 04:43:36.39ID:6QGj4g4i
>>240
hash値だけ別のサーバに置くなんてしてるとこある?
確かにそこまでやればセキュリティは十分だと思う
0243デフォルトの名無しさん2015/01/18(日) 04:49:41.77ID:mjlEj2zR
>>238
Downloadボタンを模した広告に引っかかったのか。
かわいそう(
0244デフォルトの名無しさん2015/01/18(日) 04:56:51.19ID:6QGj4g4i
>>243
ちげーよ、サイトが改ざんされてるんだよ

↓このURL自体はいろんなサイトからリンク貼られてるから間違いない
http://www.resedit.net/
↓これがダウンロードリンクのURL。このサイト内だし名前もおかしくないから、どう見ても配布ファイルへのリンク
http://www.resedit.net/ResEdit-win32.zip
ファイル名に関しては、窓の社から落とせるファイルと同一
ファイルサイズも、700KB弱で本物と同じくらい
0245デフォルトの名無しさん2015/01/18(日) 05:04:06.27ID:mjlEj2zR
>>244
あー、すまん。確かにお前さんの言うとおりだわ。
0246デフォルトの名無しさん2015/01/18(日) 05:05:41.06ID:EJiYTgCC
Webサイト改竄してまで広告しこむ輩が本当にいるのかにわかに信じがたいのだが。
だれか落として人柱になってみてよ。
0247デフォルトの名無しさん2015/01/18(日) 05:05:59.57ID:7m1yfQlP
インストーラを起動したら、hao123を入れるチェックボックスがあるなw

uniextractで展開してもreseditの実体が見つからんから、たしかに改竄されてるかも知れん。

面倒くさいからそれ以上調べなかったが。
0248デフォルトの名無しさん2015/01/18(日) 05:08:15.72ID:mjlEj2zR
言語ファイルが入っているはずのtranslation.7zも変なxlsxファイルが
入ってるみたいだし、あかんな。
0249デフォルトの名無しさん2015/01/18(日) 05:10:22.32ID:7m1yfQlP
で、窓の杜からreseditダウソしたけど、ポータブル版じゃん。
こっち使えよw
0250デフォルトの名無しさん2015/01/18(日) 05:12:10.46ID:6QGj4g4i
そうなんだよw そっち落とせばよかったのに、めっちゃ悔しいわー
0251デフォルトの名無しさん2015/01/18(日) 05:14:17.86ID:7m1yfQlP
まあ、迷惑ソフトの類が入ってるだけならadwcleaner辺りで削除しとけば。
0252デフォルトの名無しさん2015/01/18(日) 05:23:46.89ID:6QGj4g4i
>>251
なるほど、これいいな。thx
0253デフォルトの名無しさん2015/01/18(日) 05:33:28.01ID:EJiYTgCC
単に作者がResEdit本体を入れ忘れたって可能性も。
広告が入ったのはチェックボックスクリアするの忘れたID:6QGj4g4iのポカで。
こんなマイナーメジャーなソフト狙ってわざわざWeb改竄してまで
利益の薄い広告ソフト仕込んでくるとはちょっと考えられないしなー。
今となってはMS謹製のリソースエディタがタダになったので、
ResEditもお役御免って感じだし。
0254デフォルトの名無しさん2015/01/18(日) 05:54:55.64ID:6QGj4g4i
これインストールしてみると分かるけど、チェックボックスがあるのは最初のページだけで、そのあとは選択肢がない
5〜7ページくらいAcceptを押すと(この時点で明らかにおかしいんだが)
「バックグラウンドでインストールします」とか言ってインストーラの画面非表示にして
インストールしていくんだよね
そうするとchromeで普通にブラウジングするのも困難なほどアドウェアがインストールされる
0255デフォルトの名無しさん2015/01/18(日) 05:58:18.94ID:mjlEj2zR
>>253
> 単に作者がResEdit本体を入れ忘れたって可能性も。
ないな。
0256デフォルトの名無しさん2015/01/18(日) 06:41:00.03ID:EJiYTgCC
これは何か関係があるのかな。

http://lab.planetleaf.com/windows/development-win/free-visualcpp-extra-env.html
> ?2014.11.12 ResEditのリンクを作者のサイトから窓の杜のページへ変更しました。
> 作者の用意したインストーラーにはアドウェアが含まれるようになったようです。
> 配布も7z形式が削除され、インストーラー形式だけに絞られたようです。
> 善意のカンパに頼った開発には限界があると言うことを察してあげるべきかと思います。
0257デフォルトの名無しさん2015/01/18(日) 06:46:42.07ID:EJiYTgCC
これも引っかかった。
http://datezou.blog.fc2.com/blog-entry-32.html

>まず、作者のページからダウンロードできる最新版は、Adwareを導入します。
>4種類の良くわからないスポンサーのプログラムの導入をスキップして導入開始すると、
>バックグラウンドでインストールを開始します。
>でも、実際には、裏でPCの情報を外に送信してます・・・
0258デフォルトの名無しさん2015/01/18(日) 06:52:56.24ID:EJiYTgCC
もうこんなキモイ作者の作ったソフト使うのは止めたほうがよいだろうね。
素直にVSCommunityインストールすれ。リソースエディタ付いてくるから。
0259デフォルトの名無しさん2015/01/18(日) 07:10:01.81ID:s5LGz3LP
>>254
左下に小さくDeclineってあるだろバカか
0260デフォルトの名無しさん2015/01/18(日) 07:14:59.15ID:s5LGz3LP
>>254
それとResEditはインストール先の指定が無くて
ルートにインストールされてると思う
0261デフォルトの名無しさん2015/01/18(日) 07:29:54.24ID:s5LGz3LP
ResEditインストール注意点
・最初にいくつか広告が入りDeclineが小さく表示されている
・インストール先を指定できずルートにインストールされる
1ページ目 ttp://i.imgur.com/9qn75TR.jpg
2ページ目 ttp://i.imgur.com/HBajxao.jpg
3ページ目 ttp://i.imgur.com/Bowds3d.jpg
4ページ目 ttp://i.imgur.com/irH6Wx1.jpg
5ページ目 ttp://i.imgur.com/DIVwXN3.jpg

Declineを押していれば広告のインストールはされないので
検索で出てくるAdwareという指摘は勘違いや思い込みに過ぎない
0262デフォルトの名無しさん2015/01/18(日) 08:01:05.78ID:sNaTaheH
漢は黙って XN Resource Editor
0263デフォルトの名無しさん2015/01/18(日) 08:09:02.85ID:U80lDlYB
ResEdit-win32 を作者のサイトからダウンロードして
VMWare上のwin7ゲストOS上でインストールし始めると、インストーラーの最初の画面が
http://neo.vc/uploader/src/neo16980.png
こんなんで、Decline するチェックボックスなんてなかった。
最近のAdは仮想PCかどうか見分けるらしいから、実機とは違う挙動なのかもしれないけど。
0264デフォルトの名無しさん2015/01/18(日) 08:22:11.66ID:sNaTaheH
そろそろ Win32API の話しようぜ
0265デフォルトの名無しさん2015/01/18(日) 08:25:54.29ID:s5LGz3LP
>>247,254,263
1ページ目のチェックボックスは入れるかどうかではなく
ブラウザ起動した時の初期ページにするかどうかだからな

プログラム板でこうもひっかかりそうな奴ばかりなのは驚きなんだが
0266デフォルトの名無しさん2015/01/18(日) 10:05:03.39ID:ENvWPWHO
というかさあ、VS Community入れたら済む話じゃね?
0267デフォルトの名無しさん2015/01/18(日) 11:48:56.69ID:3n+OvDNp
バカは素直に窓の杜から落とせばいいのに
厨二なのかなんだかわからんけど、かっこつけるから。
0268デフォルトの名無しさん2015/01/18(日) 12:21:36.93ID:s5LGz3LP
>>266
vistaなんじゃね?
0269デフォルトの名無しさん2015/01/18(日) 12:37:28.88ID:FrxzlsYx
>>243
漏れもそれだと思ってた

馬鹿はこっちの想像以上に馬鹿だと認識を新たにした
0270デフォルトの名無しさん2015/01/18(日) 13:24:52.28ID:6QGj4g4i
>>261
マジか。俺の英語力が未熟だったようだ。これインストールするの難易度高すぎじゃね

これインストールしてもスタートメニューに登録されないし、デスクトップにショートカットが作られるわけでもない
それで、インストール先も選択できなくてルートに展開されるだけ
やっつけ作っただけじゃねーか、作者もう開発する気ないだろ

開発を継続しているならギリギリ許せるが、開発をやめてこういうインストーラに変えてくるって、
アドウェア認定されても文句は言えない
ちゃんとインストールはされるから、ウィルスソフトとかが反応しないし、たち悪すぎだわ
0271デフォルトの名無しさん2015/01/18(日) 13:33:17.72ID:6QGj4g4i
>>266
VSはPro持ってるけど、コンパイル済みのexeのリソースが見たかったんだよ。VSで見れる?
>>267
今回は結果的に窓の杜から落とせば問題なかったが、普通、インストーラーとポータブル版両方配布しているソフトだと、
窓の杜にはインストーラー版しかないから、本家のサイトからポータブル版探すようにしてた
インストーラーだと、OSクリーンインストールしたら消えちゃうから面倒なんだよ
0272デフォルトの名無しさん2015/01/18(日) 13:33:27.86ID:xTVffeg8
未熟なのは英語力だけなんでしょうか()
0273デフォルトの名無しさん2015/01/18(日) 13:52:15.78ID:6QGj4g4i
>>263
マジだ。Win8.1の実機だと>>261のようになるけど、Hyper-V上の2008R2だと>>263の画面になるな
>>272
何が何でも叩きたいのかな
今回の件、ちゃんと分かってたのってID:s5LGz3LP1人だけなのに、なんでエラそうにしてんのか分からん
0274デフォルトの名無しさん2015/01/18(日) 14:01:47.94ID:6QGj4g4i
あ、スマン、>>257の人が最初に見つけて来てくれだんだね
Declineでスキップしても裏でPC情報送信か。完全にアドウェアじゃねーか
02752662015/01/18(日) 14:34:52.35ID:ENvWPWHO
>>271
大丈夫だ、問題ない。
一番良いのでなくてもいける。
0276デフォルトの名無しさん2015/01/18(日) 14:40:44.04ID:FrxzlsYx
馬鹿には無理ですね
判ります
0277デフォルトの名無しさん2015/01/18(日) 14:46:51.01ID:xTVffeg8
何がなんでもっていうか、お前は叩きたい確かに
0278デフォルトの名無しさん2015/01/18(日) 14:51:33.21ID:6QGj4g4i
>>275
あ、ほんとだ。普通に編集できるな
ファイル→開く→ファイル で結構何でも開けるんだな
exe開こうと思ったことなかったから知らなかった
0279デフォルトの名無しさん2015/01/18(日) 17:06:23.54ID:cyPihoPR
VC6のリソースエディタが最強
0280デフォルトの名無しさん2015/01/18(日) 18:23:46.91ID:3n+OvDNp
>>271
VC++6.0でも見れたぞ?
0281デフォルトの名無しさん2015/01/18(日) 19:18:55.17ID:6QGj4g4i
そんな化石バージョンまだ使ってんの?
0282デフォルトの名無しさん2015/01/18(日) 20:13:03.11ID:cyPihoPR
>>281
ずっとメインで使ってるよ
0283デフォルトの名無しさん2015/01/18(日) 20:38:31.95ID:MSgZJjrE
Open Watcom C++のリソースエディタじゃダメなん?知らんけど
0284デフォルトの名無しさん2015/01/18(日) 22:50:49.49ID:1aKmdwrF
リソースエディタなんていらないだろ
男なら黙ってリソーススクリプト手書きだろ
0285デフォルトの名無しさん2015/01/18(日) 23:07:07.73ID:ev6gB9KS
CreateWindowで書きまくれよ
0286デフォルトの名無しさん2015/01/19(月) 15:27:24.31ID:G7rK5Vbu
2ch人減ったな・・・。
0287デフォルトの名無しさん2015/01/19(月) 18:02:39.72ID:IywTVsIe
WindowsのProcess ID ってDWORD(unsigned long)ですよね。
この場合、
0〜4294967295 までの値が可能だと思うのですが、
何らかのプロセスのIDがこの最大値4294967295を取るなんて言う
可能性はありますか?Win7 64bitの場合、タスクマネージャで見る限りは
0〜1万数千番台のIDばかりなので、IDの上限があるのかなと思いまして。
何か知っている人、教えて下さい。
0288デフォルトの名無しさん2015/01/19(月) 18:39:51.00ID:IyMzAKva
予約されてる範囲があるんじゃね
0289デフォルトの名無しさん2015/01/19(月) 19:22:52.70ID:MmQiAK43
>>287
0xFFFFFFFF を「特定の意味」にして利用したいのか?

ProcessIDだけじゃなくその空間でThreadIDも管理されるらしい。
要するにProcessIDで使われていなくてもThreadIDで使われている可能性もある。

OSを起動しっぱなし、アプリケーションの起動、終了を繰り返すのでなければ
そうそう大きな数値が割り当てられることは無いと思う。
ただ、目に見えないスレッドの作成、破棄でもIDが利用されると思うから注意。
重複させない、再利用を控えるための広大な範囲だと思うので「利用されない」というのは保証されないかと。

すべてのプロセスとスレッドがその数まで行くことは滅多にないだろうけど、
そういう使い方は万一のときに見つけにくいバグになると思うから辞めたほうが良いと思うよ。
0290デフォルトの名無しさん2015/01/19(月) 19:54:23.94ID:nizA7YRt
System Idle ProcessがPID0で固定だからこれを特定の意味として利用するのはどうよ
0291デフォルトの名無しさん2015/01/19(月) 20:14:51.32ID:MmQiAK43
GetProcessIDを使う場合は注意が必要だけど
0292デフォルトの名無しさん2015/01/19(月) 22:05:02.14ID:kDSoR0IX
Win9xのプロセスIDはこんな感じだった。
http://www.atmarkit.co.jp/fwin2k/special/win9xorwin2k/win2kprocess_3.html
まあ、勝手な前提条件を付けても碌なことにはならないな。
0293デフォルトの名無しさん2015/01/19(月) 22:39:07.29ID:RMIFPdrB
仕様で明確に定義されていない上限を仮定してプログラムを組むなんてのは
基礎の段階で「絶対にするな」と釘を刺されるレベルの話だと思うんだけどな
0294デフォルトの名無しさん2015/01/20(火) 01:46:34.43ID:b0WvEVmq
-1には別の意味があるだろ。
ドキュメント嫁や。
0295デフォルトの名無しさん2015/01/20(火) 07:29:44.51ID:vL4d8jBj
AllowSetForegroundWindow の ASFW_ANY とか?
0296デフォルトの名無しさん2015/01/20(火) 08:42:58.91ID:F6HHv4j5
-1を禁止にしたところで
-2を使う香具師は絶対出て来る
0297デフォルトの名無しさん2015/01/20(火) 09:15:21.65ID:Y4m7VuCx
馬鹿は死ねばいい
0298デフォルトの名無しさん2015/01/20(火) 14:44:42.94ID:oo8ddG28
真の馬鹿は他人を巻き込んで死ぬ
0299デフォルトの名無しさん2015/01/20(火) 23:02:40.12ID:xTVoTmEb
全員バカ
0300デフォルトの名無しさん2015/01/21(水) 01:40:32.30ID:JwcfpdWP
てか、底辺職業のマにバカ以外いるのか
バカだから室内底辺職業のドカタになったん(なるしかなかった)だからな
0301デフォルトの名無しさん2015/01/21(水) 09:06:16.59ID:KNee88yz
マ板じゃなくてム板だから
趣味の人も来るから
0302デフォルトの名無しさん2015/01/22(木) 17:54:32.21ID:26vbf8jb
タスクトレイのアイコン取得をしたいのですが
vista 32bitでは問題ないのですが8 64bitでは・・・

SendMessage(hTrayWnd, TB_BUTTONCOUNT, 0, 0);
で数の取得はできるのですが
SendMessage(hTrayWnd, TB_GETBUTTONINFO, i, (LPARAM)btnInfo);
ができないです

Build95に同じような質問があって
そこでは解決してたみたいだけど
UACの確認や64bitでコンパイルしてもむりぽ

アドバイスお願いします
0303デフォルトの名無しさん2015/01/22(木) 18:12:41.69ID:v3r7Cfk9
エラーは返ってないのかな
0304デフォルトの名無しさん2015/01/22(木) 18:54:49.21ID:QOe1Cpix
自作のアプリでウインドウを開いて、その中に他のアプリを子ウインドウと
して取りこむことは可能でしょうか?
例えば、ウインドウを開いて、その中にnotepad.exeを取りこんでしまうとか、
あるいは、chrome.exeを取りこむとか。
0305デフォルトの名無しさん2015/01/22(木) 19:57:21.01ID:cZyCjZEx
>>304
WS_CHILD
SetParent
0306デフォルトの名無しさん2015/01/22(木) 21:41:49.73ID:d3EdR03l
>>302
TB_GETBUTTONINFOのwPrarmはインデックスじゃなくてidのようだが
そこらへんは大丈夫か
0307デフォルトの名無しさん2015/01/22(木) 23:11:36.48ID:26vbf8jb
>>303
-1が返ってくる、GetLastErrorはなし

>>306
実際にはTB_GETBUTTONでidCommandを取得してからやってるから大丈夫
TB_GETBUTTONも問題ないからTB_GETBUTTONINFOだけどうにかならないかなあ
0308デフォルトの名無しさん2015/01/23(金) 01:48:36.97ID:/OdWQWeb
やりとりするポインタがプロセス間で共有できないから
相手のプロセス空間にメモリを確保するAPIで確保した
ポインタを使う
0309デフォルトの名無しさん2015/01/23(金) 19:11:05.05ID:o8k8FNHO
>>308
VirtualAllocExで確保しているので大丈夫かと
0310デフォルトの名無しさん2015/01/24(土) 10:52:26.66ID:hVWhGn4s
子出しイクナイ
0311デフォルトの名無しさん2015/01/24(土) 12:23:16.07ID:XGtAEOPl
中出し
子だし
0312デフォルトの名無しさん2015/01/25(日) 04:07:58.18ID:/1Pjh8Oi
http://momi5.momi3.net/19e/src/1421484889750.jpg
0313デフォルトの名無しさん2015/01/28(水) 22:49:55.78ID:Rh7TkJwS
>>312
黒っ!
0314デフォルトの名無しさん2015/01/29(木) 06:39:09.09ID:KP4aMXE3
こうみえても20代なんだろうか
0315デフォルトの名無しさん2015/01/31(土) 17:34:15.17ID:HR7qMAjg
http://stackoverflow.com/questions/25267272/win32-enable-visual-styles-in-dll
のAnswerにあるコードをWin7Pro64のVS2013 C++で実行すると正常動作するのですが、
XP向けにv120_xpでビルドしてWinXP32bitで実行すると
hActCtx = CreateActCtx(&actCtx);
if (hActCtx != INVALID_HANDLE_VALUE)

でエラーして、INVALID_HANDLE_VALUE になります。GetLastErrorを見ると、
このコマンドを実行するのに十分は記憶域がありません。0x08
なんです。ディスクもメモリも十分積んでいるのですが。
いろいろググルと英語で同じエラーの
CreateActCtx error 0x00000008 (Not enough disk space available)
みたいなページは幾つかヒットするのですが、肝心のWinXPでエラーする原因が見つけられませんでした。
何かご存知でしたら教えて下さい。
0316デフォルトの名無しさん2015/02/01(日) 09:33:13.03ID:Gotp+xwX
>>315
MSDNのAPIのコメントに、XPだとlpSourceも必要だったって書いてあるから、
それでもう一度試してみては?
0317デフォルトの名無しさん2015/02/01(日) 13:15:51.86ID:a7daD80f
>>316
レスありがとうございました。
ご指摘の方法で上手く行きました。
何時間もググったのですが
>MSDNのAPIのコメント
を発見出来なかったのですが、もし可能ならそのアドレス教えて下さい。
0318デフォルトの名無しさん2015/02/01(日) 19:12:09.43ID:ULsgfN/L
モーダルダイアログ上にレポートタイプのリストビューを配置しています。
リストビューヘッダーも表示していますが、このヘッダーのカラムの間にマウスを持って行き
ドラッグするとカラムサイズが変更できますよね。

このサイズ変更中、境界線のみ描画されるのですが、カラム全体もリニアにサイズ変更・描画
するにはどうすればいいでしょう?

Windowsの設定で、ウィンドウサイズの変更の際に枠のみ描画して処理を軽くするテクニックが
昔からあったと思いますが、動作としては似たような感じに見えます。
しかし、現環境ではそのような設定は行っていません。
(ウィンドウサイズ変更に対してリニアに再描画されている)
0319デフォルトの名無しさん2015/02/01(日) 20:07:50.82ID:5WStzBZM
ListViewのStyleとMaskは何にしてる?
0320デフォルトの名無しさん2015/02/01(日) 20:28:55.23ID:ULsgfN/L
>>319
styleはリソースからコピペすると、
CONTROL "", IDC_LIST, WC_LISTVIEW, WS_GROUP | WS_TABSTOP | WS_BORDER | LVS_ALIGNLEFT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | LVS_REPORT, 5, 5, 440, 200, WS_EX_LEFT

追加で
LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT

をやっています。

カラム追加時は
LVCFMT_LEFT | LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM

です。
0321デフォルトの名無しさん2015/02/02(月) 03:32:28.41ID:mSRFIK7l
ヘッダーにHDS_FULLDRAG
Vista以降はmanifestでCommon-Controls v6の指定も必要
0322デフォルトの名無しさん2015/02/02(月) 06:02:17.09ID:okdaZ/Vp
>>321
manifest追加で解決しました。ありがとうございます。
0323デフォルトの名無しさん2015/02/03(火) 07:35:13.18ID:2zuqa7HE
マウスホイールの関数で下記のものとボタンを結びつけて実行しているのですが
ボタンを一回押したら一回だけ関数を実行してほしいのですが、何回も実行しているようなのですが
SLEEPなどを入れるしかないでしょうか
void setMouseWhl(int whl)
{
INPUT data;
data.type = INPUT_MOUSE;
data.mi.mouseData = whl;
data.mi.dwFlags = MOUSEEVENTF_WHEEL;
data.mi.time = 0;
data.mi.dwExtraInfo = 0;
::SendInput(1, &data, sizeof(INPUT));
}
0324デフォルトの名無しさん2015/02/03(火) 08:10:05.21ID:AqPQb7sP
>>323
whl いくつになってるのよ?
> One wheel click is defined as WHEEL_DELTA, which is 120
になってるが 120ptの移動がwhl回発生するのか、(whl % 120) 回のイベントが発生するのかよくわかんない。

ただ、1回のイベントでの移動量は120pt固定だと思うよ。
WM_MOUSEWHEELごとに常に1行スクロールするクソコードが氾濫しているから
大きな移動量でもメッセージをまとめるようなことは避けているんじゃないかな。
0325デフォルトの名無しさん2015/02/03(火) 08:15:17.91ID:FgNHFzEr
https://msdn.microsoft.com/ja-jp/library/cc410921.aspx
>1 回のホイールクリックは、WHEEL_DELTA として定義されていて、この値は 120 です。
0326デフォルトの名無しさん2015/02/03(火) 08:17:49.98ID:FgNHFzEr
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms645617(v=vs.85).aspx
>The high-order word indicates the distance the wheel is rotated, expressed in multiples or divisions of WHEEL_DELTA, which is 120.
0327デフォルトの名無しさん2015/02/03(火) 08:19:49.17ID:FgNHFzEr
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms645617(v=vs.85).aspx
>The wheel rotation will be a multiple of WHEEL_DELTA, which is set at 120.
>This is the threshold for action to be taken, and one such action (for example, scrolling one increment) should occur for each delta.

>The delta was set to 120 to allow Microsoft or other vendors to build finer-resolution wheels (a freely-rotating wheel with no notches) to send more messages per rotation, but with a smaller value in each message.
0328デフォルトの名無しさん2015/02/03(火) 08:27:13.11ID:qs6+LCRH
WHEEL_DELTAの120ptってのもよくわからないのですが、120行一回の実行で飛ばすという意味でしょうか
実機のマウスでホイールを一回カチっとなる時に一回だけ発生してほしいのですが
0329デフォルトの名無しさん2015/02/03(火) 08:33:39.72ID:AqPQb7sP
120は何かしらの基準であって、行数でもピクセル数でもない。
ホイール1回相当のために data.mi.mouseData に指定すべき値は WHEEL_DELTA(=120) か 1 かどっちかだと思うが、試してみて。
あと、念のため setMouseWhl() がボタン1回ごとに1回だけ呼ばれているかも確認して欲しい。
0330デフォルトの名無しさん2015/02/03(火) 08:34:07.52ID:uSJof6v6
deltaの数だけ呼ぶんでなく
deltaが0でないときに1回呼べばいいんだよ
deltaの意味分かってるのか
0331デフォルトの名無しさん2015/02/03(火) 08:38:41.83ID:qs6+LCRH
少し実験をしてみます。
0332デフォルトの名無しさん2015/02/03(火) 08:48:21.43ID:AqPQb7sP
そういえば、マウスホイールって1回1回がカチっとなるタイプと
連続的にぬるぬる回るタイプがあるけど、メッセージの発生の仕方が違うのかな?
ぬるぬる系でもアプリが対応してなければ、結局はWHEEL_DELTAの粒度でしか反応しないんだろうか。
0333デフォルトの名無しさん2015/02/03(火) 08:51:39.75ID:qs6+LCRH
>>329
何回も実行されているのを確認しました。
0334デフォルトの名無しさん2015/02/03(火) 10:06:07.55ID:00JNNVea
それは良かった
0335デフォルトの名無しさん2015/02/03(火) 11:04:46.95ID:qs6+LCRH
ぐぐってるとこういうのが出てくるんですがこれは関係ありますか?
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
0336デフォルトの名無しさん2015/02/03(火) 17:37:03.46ID:qFGvzx1u
とりあえず一回実行したらフラグ立てて二回目を実行しないようにします。
0337デフォルトの名無しさん2015/02/03(火) 21:04:14.59ID:nEdye6fG
質問です
::CreateWindowEx( 0, REBARCLASSNAME〜
で作ったレバーコントロールの高さが変更されたとき、
親ウィンドウに何のメッセージが通知されますか?
0338デフォルトの名無しさん2015/02/03(火) 21:14:45.58ID:AqPQb7sP
RBN_HEIGHTCHANGE
0339デフォルトの名無しさん2015/02/03(火) 21:32:19.74ID:nEdye6fG
サンクス
0340デフォルトの名無しさん2015/02/07(土) 23:58:52.84ID:4Op8wAUL
c++でwindowsサービスプログラムを作りたいのですがATLプロジェクトからしか作れませんか?
windowsAPIを駆使して作るのに参考になるサイトや書籍はありますか?
0341デフォルトの名無しさん2015/02/08(日) 01:30:51.46ID:xOTX+lB0
駆使とか言うほど大したものじゃないよ。
MSDNライブラリのサービスの所にあるサンプルコードを
参考にするだけで十分じゃないかな。
0342デフォルトの名無しさん2015/02/08(日) 03:27:22.65ID:ZysdttaW
>>340
VC++Expressのがデフォルトで吐くコードとりあえず眺めてみたらいいと思う
0343デフォルトの名無しさん2015/02/08(日) 08:01:38.27ID:tUjKNEQ0
>>340
サービスだけならめっちゃ簡単
COMサーバーもサポートするなら面倒鴨試練
面倒なだけであって「出来ない」と言うつもりはない
0344デフォルトの名無しさん2015/02/08(日) 21:25:02.27ID:0qESbCiR
本当に理解したいなら古くからある本だけどWin32システムサービスプログラミングって本
0345デフォルトの名無しさん2015/02/08(日) 21:51:27.15ID:PVb3uKzn
皆様ありがとうございます。
COMサーバーと言われてもよくわかってないレベルなので本を買うことにします。
0346デフォルトの名無しさん2015/02/09(月) 03:34:33.98ID:RHlYdffT
Windows10にすればずっと使えそうだな

http://internet.watch.impress.co.jp/docs/news/20150122_684843.html
Windows10は「サービス」になる
 Windows 10は、Windows 8.1/7およびWindows Phone 8.1のユーザーに対し、
リリース後1年間は無料アップグレードとして提供されることが発表された。
また、一度アップグレードした機器は「端末が寿命を終えるまで」
無料でサポートされるとしている。
 MicrosoftのOS担当エグゼクティブバイスプレジデントであるTerry Myerson氏は「Windowsはサービスになる」と説明。
インターネットのサービスでバージョンを気にする人がいないことを例に挙げ、
それと同じように「Windowsのどのバージョンを使っているかという質問には
意味がなくなる」と述べた。
0347デフォルトの名無しさん2015/02/09(月) 04:38:32.52ID:j6Bs3lE+
Windows8にて、GetDC(0)でデバイスコンテキストを取得し、BitBltにてデスクトップを
キャプチャしようとしています。
(半)透明ウィンドウは除外したく、ネット上を見ているとSRCCOPYのみの指定でそれが
可能とあったのですが、映り込んでしまいます。
透明ウィンドウもしくは指定ウィンドウを除外したデスクトップキャプチャの取り方につい
て教えていただけないでしょうか。
0348デフォルトの名無しさん2015/02/09(月) 04:59:17.65ID:3wWvs3Zu
無理じゃね
0349デフォルトの名無しさん2015/02/09(月) 05:16:47.72ID:G+w3BN0W
ウィンドウを列挙して、透明ウィンドウを一時的に非表示にしてキャプチャ
0350デフォルトの名無しさん2015/02/09(月) 05:38:25.64ID:g8/r6g2w
これの話か?
http://dobon.net/vb/dotnet/graphics/screencapture.html
>そのため、Opacityプロパティで半透明にしたフォームや、TransparencyKeyプロパティで一部を透明にしたフォームを正しくキャプチャすることができません。
>下で紹介するWin32 APIの方法では、BitBltの最後のパラメータを「SRCCOPY Or CAPTUREBLT」(C#では「SRCCOPY | CAPTUREBLT」)とすることで、これらのフォームも正常にキャプチャできます。詳しくは、
0351デフォルトの名無しさん2015/02/09(月) 06:17:36.32ID:3wWvs3Zu
>透明ウィンドウもしくは指定ウィンドウを除外したデスクトップキャプチャ
0352デフォルトの名無しさん2015/02/09(月) 07:43:46.07ID:Z/OgJqfR
>>347
Aero世代 (Vista) 以降なら DWM を使ってキャプチャを取るのが推奨なんじゃないの?
古いやり方なら WM_PRINT が使えるかもしれない。
まぁ、>>349 で十分な気はするが。
0353デフォルトの名無しさん2015/02/09(月) 08:46:42.20ID:iJdyGTL3
Microsoft、オープンソースの.NET実行エンジン「CoreCLR」を公開 | スラッシュドット・ジャパン オープンソース
http://opensource.slashdot.jp/story/15/02/08/0721252/
0354デフォルトの名無しさん2015/02/09(月) 10:43:01.17ID:ra7crE5d
C#の最新バージョンか?
03553472015/02/09(月) 20:48:21.80ID:j6Bs3lE+
色々とご助言有り難うございます。
リアルタイムに処理したいため、ウィンドウを列挙して云々の方法は無理
そうなのでDWM APIの方を勉強してみたいと思います。
同じ関数でもWinバージョンによって挙動が変わるなら、MSもきちんと
明記して欲しいですよね。。。
0356デフォルトの名無しさん2015/02/10(火) 01:19:59.95ID:6CiTLKPy
VC++でMessageBox()でMB_ICONEXCLAMATIONで音を鳴らすと
Win7だと『ホワーン』という優しい感じの音ですが、XPだと『パン!』っていう
ちょっと耳障りな音ですが、このXPの音もWin7の『ホワーン』に出来ますか?
0357デフォルトの名無しさん2015/02/10(火) 01:59:59.04ID:gDj6m/g3
wav入れ替え
0358デフォルトの名無しさん2015/02/10(火) 03:24:18.27ID:cTe8RJyk
>>356
Windows側のサウンド設定
0359デフォルトの名無しさん2015/02/10(火) 13:35:11.32ID:Yis/lrEO
自分のPC1台の話か
それともアプリからそれを使うユーザのマシン設定を勝手に書き換えたいという話か
0360デフォルトの名無しさん2015/02/10(火) 15:52:53.36ID:j2mjRCPi
音声自作してリソースで持って再生すればいい
0361デフォルトの名無しさん2015/02/12(木) 10:47:44.82ID:5O+Dt9At
CreateFontで作ったフォントを使ってDrawTextで描画すると勝手にアンチエイリアスがかかります。
高さだけ指定して幅を指定しなければアンチエイリアスがかからない幅に自動調整してくれますが、幅は指定したいです。
幅を指定しなくてもFW_BOLDを指定したときとしないときの幅が同じになればいいのですが、それもなりません。
何がしたいか分かりにくいと思いますが、まとめると以下の通りです。

■太字かどうかに関わらず、全ての文字を同じ幅・高さで描画したい(日本語は2文字分)
■アンチエイリアスが嫌だ
■文字幅の値も把握していたい(自分が指定、もしくは自動で設定された幅を取得)

コマンドラインみたいに升目に入ったような、アンチエイリアスもかかってないような表示が理想です。
そこに太字も使えるようになったのが理想です。
CreateFontで一番可能性の高そうな設定、フォントはMS ゴシック、クオリティはDEFAULT_QUALITY、ピッチとファミリーにFIXED_PITCHを設定しましたが無理でした。
他にも色々試しましたが昨日一日中あれこれ試していたので何が何だか分からなくなって覚えていません。

解決方法を教えてください。
0362デフォルトの名無しさん2015/02/12(木) 11:23:49.74ID:EUdaAQEa
クオリティをNONANTIALIASED_QUALITYにしたらどうかな?試してないけど。
03633612015/02/12(木) 11:46:19.61ID:5O+Dt9At
>>362
できました。
ありがとうございます。
0364デフォルトの名無しさん2015/02/13(金) 10:35:40.23ID:f9ZjIrV9
何も動かしてなくてもWM_PAINTが呼ばれまくってCPU食いまくる
なんだこれ
0365デフォルトの名無しさん2015/02/13(金) 11:36:18.32ID:f9ZjIrV9
俺の糞コードが原因だったわ
0366デフォルトの名無しさん2015/02/13(金) 13:51:03.68ID:dpVVOxpY
報告GJ
0367デフォルトの名無しさん2015/02/13(金) 20:16:25.43ID:f9ZjIrV9
InvalidateRectで更新する領域を指定できるけど、実際WM_PAINT受け取ったときはWPARAMにもLPARAMにもクケイ情報がないから分からない
必要な領域だけ再描画すれば高速化できるかと思ったけど肝心のWM_PAINTで領域が分からないなら結局クライアント領域全部再描画しなければならない
領域をグローバル変数に入れようかと思ったけど、WM_PAINTを受け取るタイミングが不確定だから無理っぽい
1回目のInvalidateRectと2回目のInvalidateRectの領域が同じならグローバル変数でもいけるけど、
違った場合は、2回目のInvalidateRectの後で1回目のInvalidateRectによるWM_PAINTを受け取ると破綻する

まんこ
0368デフォルトの名無しさん2015/02/13(金) 20:28:46.06ID:hioZiCGH
beginpaint
0369デフォルトの名無しさん2015/02/13(金) 21:05:41.95ID:lpJSL/lf
指定されたpathが
 C:\〜\test\test.exeならC:\〜\test\を取得
 C:\〜\test1\test2ならC:\〜\test1\を取得
こんな関数はどんな名前つける?
GetUpperDirectory?
0370デフォルトの名無しさん2015/02/13(金) 22:00:24.41ID:30iXf5oS
>>369
PathRemoveFileSpec

っていうAPIがあるけど、敢えて自分で作るならって話か?
0371デフォルトの名無しさん2015/02/13(金) 22:11:22.26ID:f9ZjIrV9
>>368
BeginPaint何となく使ってたけどこいつが自動で設定してくれるだな
まさかこいつがやってるとは思わなかった
ありがとう
0372デフォルトの名無しさん2015/02/13(金) 22:33:56.31ID:AeHfWfSt
ExtractFilePath
0373デフォルトの名無しさん2015/02/13(金) 22:53:10.88ID:MTb8V7o7
GetBackToWhereYouOnceBelong
0374デフォルトの名無しさん2015/02/13(金) 22:55:28.51ID:f9ZjIrV9
俺だったら引数はファイル・ディレクトリ両対応にして
GetParentDirectory
0375デフォルトの名無しさん2015/02/14(土) 00:55:03.82ID:e+2FaUan
ありがとう

PathRemoveFileSpecは知らんかった
けど最後に\付いてほしいから結局部品プロジェクトとして作る事になるわ
0376デフォルトの名無しさん2015/02/14(土) 01:05:19.76ID:XFzbLFgN
\付いてほしい理由はなんだ?
Path関連のAPIはたくさんあるから、目的によっては\無しでも問題ないかも知れんぞ
0377デフォルトの名無しさん2015/02/14(土) 01:14:15.23ID:avu/sf60
GetRandomRgn,GetMetaRgn,GetClipRgn
0378デフォルトの名無しさん2015/02/14(土) 06:37:11.60ID:coEfqUtE
>>374
ファイルにたいして ParentDirectory は違和感あるから却下
0379デフォルトの名無しさん2015/02/14(土) 06:54:18.21ID:Xj7ivxhb
Scripting.FileSystemObjectでは GetParentFolderName ってメソッド名だね
0380デフォルトの名無しさん2015/02/14(土) 07:40:14.24ID:xzkKcWkn
os.path.dirname(path)
パス path のディレクトリ名を返します。これは split(path) で返されるペアの最初の要素です。

os.path.split(path)
パス名 path を (head, tail) のペアに分割します。
tail はパスの構成要素の末尾で、 head はそれより前の部分です。
tail はスラッシュを含みません;
もし path の最後にスラッシュがあれば、 tail は空文字列になります。
もし path にスラッシュがなければ、 head は空文字列になります。
path が空文字列なら、 head と tail のどちらも空文字列になります。
head の末尾のスラッシュは、 head がルートディレクトリ (1つ以上のスラッシュのみ) でない限り、取り除かれます。
join(head, tail) の結果は常に path と同じ場所を示すパスになりますが、文字列としては異なるかもしれません。
0381デフォルトの名無しさん2015/02/14(土) 08:57:11.78ID:4tVx2rNF
Pythonなど持ち出さなくても <filesystem> 使っておけばええねん
0382デフォルトの名無しさん2015/02/14(土) 09:27:31.50ID:uz36DEeO
つーかディレクトリ名の取得なんてPerlの正規表現使えば1行で済む話だろ
コーディングも1分もかからないし関数にするまでもないし何を悩んでるのか意味不明
2chブラウザ立ち上げてこのスレ開いてレス打つのと同程度の時間あればできるのに本物の馬鹿なんだろうか
0383デフォルトの名無しさん2015/02/14(土) 09:30:31.92ID:Be2NMpD8
なんでWin32APIと無関係な話を続けるの?馬鹿なの?死ぬの?(´・ω・`)
0384デフォルトの名無しさん2015/02/14(土) 10:16:54.17ID:4tVx2rNF
C/C++ライブラリってこのスレ的にはアウトなのか?
Win32とC/C++ライブラリに同じ機能がある場合、使い分けの指針ってあるんけ?
自分はVC付属って時点であまり区別してないんだが
0385デフォルトの名無しさん2015/02/14(土) 10:27:52.62ID:ocCjNIfb
話題がそれてスレ違い、ってのは個人的には気にならないが、
はなから区別しないってのはねーわ。
0386デフォルトの名無しさん2015/02/14(土) 10:28:41.92ID:xzkKcWkn
*sprintf とか *wsprintf とか wstring とか文字コード変換も一緒にやってくれればいいのにと思うときはある
0387デフォルトの名無しさん2015/02/14(土) 11:23:57.72ID:uz36DEeO
>>385
そんなジャンル別の縦割り思考だからお前はいつまで経ってもうだつがあがらないんだよ
時代遅れの縦割り思考は回線切って一人で分類ごっこでもしてろ
0388デフォルトの名無しさん2015/02/14(土) 11:27:54.03ID:XFzbLFgN
>>387
うるせーばか
0389デフォルトの名無しさん2015/02/14(土) 12:57:25.81ID:tVbUKrnU
言語の話し始めたらVB、C#で埋まるに決まってんだろ
すでにサーチエンジンはWin32API関連で検索してもそればっかで埋まってんだから
0390デフォルトの名無しさん2015/02/14(土) 13:29:08.25ID:avu/sf60
文字関連はWin32APIを使うべし
0391デフォルトの名無しさん2015/02/14(土) 16:13:10.51ID:gIUI7HnG
>>384
Win32はWindowsだけだけど
C/C++ライブラリはWindowsだけじゃないし。
0392デフォルトの名無しさん2015/02/14(土) 17:32:24.20ID:hL4wbJFm
どっちも見てるから違和感なく見てたけど、命名の話ならこっちだろ。

クラス名・変数名に迷ったら書き込むスレ。Part25
http://peace.2ch.net/test/read.cgi/tech/1416550677/
0393デフォルトの名無しさん2015/02/14(土) 18:46:09.31ID:RLjpPyN4
まずwin32APIでしかできないことって何?
.netじゃ駄目なんですか?
0394デフォルトの名無しさん2015/02/14(土) 18:55:21.43ID:XFzbLFgN
C#で全部出来て、Win32APIが一切不要なら、C#のDLLImportっていらないよね
0395デフォルトの名無しさん2015/02/14(土) 18:56:34.74ID:FsRJ7H3A
Javaじゃダメなんですか?
VBじゃダメなんですか?
0396デフォルトの名無しさん2015/02/14(土) 19:08:31.10ID:zmAFSOP/
海は死にますか
山は死にますか  
0397デフォルトの名無しさん2015/02/14(土) 19:18:36.15ID:uz36DEeO
ウインドウクラス登録するときにLoadCursorでカーソル設定してもクライアント領域でしか有効にならないんだけど?
ツールバーとかタイトルバーの上では普通のカーソルに戻る
0398デフォルトの名無しさん2015/02/14(土) 19:29:27.46ID:4tVx2rNF
>>397
WM_SETCURSOR
0399デフォルトの名無しさん2015/02/14(土) 19:29:55.92ID:FsRJ7H3A
>>397
偉そうなこと言いながら、こんな低レベルなことを
0400デフォルトの名無しさん2015/02/14(土) 19:32:13.72ID:Yj+zQwIv
>>393
LoadLibraryで呼び出せるDllが作れないとか
これのせいでプラグインなんか作れないじゃん
0401デフォルトの名無しさん2015/02/14(土) 19:51:07.13ID:uz36DEeO
>>398
ありがとう

>>399
消えろゴミクズ
0402デフォルトの名無しさん2015/02/14(土) 19:59:07.53ID:ocCjNIfb
ネイティブのLoadLibraryはもちろんできないけど、.netベースのプラグインならむしろ簡単だろ。
0403デフォルトの名無しさん2015/02/14(土) 20:31:12.26ID:ReAFsxko
プレイヤーの再生時間についてですが
曲の全体がduration
再生中の位置がposition
とすると残り時間は何でしょうか?
0404デフォルトの名無しさん2015/02/14(土) 20:31:18.94ID:Yj+zQwIv
>>402
そんなもん誰も使わんよ
04054032015/02/14(土) 20:31:55.21ID:ReAFsxko
すみません誤爆しました…
0406bti2015/02/14(土) 22:13:21.42ID:hFs/AfD2
ビットコインをはじめよう
このリンクからビットコイン購入・販売所bitFlyerにご登録すると
1000円分のビットコインがもらえます!

https://bitflyer.jp/gift/fn0tlipl

とにかく一応もらっておくといいです。
ビットコイン関係の開発にしよう
0407デフォルトの名無しさん2015/02/14(土) 23:00:19.23ID:/VrDBIQD
>>399
ワロタwwww
LoadCursorwwwwwww
0408デフォルトの名無しさん2015/02/14(土) 23:02:49.49ID:e+2FaUan
>>392
ありがとう

次からそっちのスレで聞くわごめんよ
0409片山博文MZ ◆T6xkBnTXz7B0 2015/02/15(日) 13:19:53.66ID:YOxjOULg
Win32 APIのほとんどの型情報が抽出できた!
これで、Win32 APIが使えない言語へのWin32 APIの移植が容易になるぞ!!!

https://github.com/katahiromz/DoWonders
0410デフォルトの名無しさん2015/02/15(日) 14:04:54.01ID:uxAoEDAd
今時FFIすら使えない言語あるんです?
0411デフォルトの名無しさん2015/02/15(日) 15:56:37.27ID:ergtEwn7
すでに存在するウィンドウに対してリソースのダイアログボックステンプレートから
コントール(ボタンなど)を作ってくれるWin APIってありますか?
CreateDialogのウィンドウを新規に作るじゃなくて、すでにウィンドウが存在する際につかえるAPIが知りたいです
0412デフォルトの名無しさん2015/02/15(日) 16:10:07.40ID:bX6frV1s
>>409
さっさとCOMのTypeLibrary対応してない言語で使えるようにしろ
0413デフォルトの名無しさん2015/02/15(日) 17:27:24.64ID:ergtEwn7
>>411ですが自己解決しました。ネットでソースありました
リソースからLoadResourceでメモリ上に構造体DLGITEMTEMPLATEなどの形で取り出してCreateWindowするようです
0414デフォルトの名無しさん2015/02/15(日) 18:31:24.51ID:bWgf/6Xs
>>409
nm *.dll -> typeid -> boostデマングリング
のが手っ取り早そう
0415デフォルトの名無しさん2015/02/15(日) 20:05:59.81ID:kipyhe5B
>>409
すいません。何するソフトなのか、簡単に解説して頂けませんか?
0416片山博文MZ ◆T6xkBnTXz7B0 2015/02/15(日) 20:35:21.43ID:kru9NTLv
>>415
Win32コンパイラからWin32 APIの情報を抽出して、データベースを作成するソフト。
素人にはまだ使いこなせない。
0417デフォルトの名無しさん2015/02/15(日) 20:56:23.86ID:kipyhe5B
>>416
解説ありがとうございました。
理解できるように精進したいと思います。
0418デフォルトの名無しさん2015/02/15(日) 23:46:43.13ID:65bKNNn8
片山と取り巻きの馴れ合いスレかよ
気色わる
0419デフォルトの名無しさん2015/02/16(月) 00:30:46.08ID:oJNvAL6Z
片山MZはわりあいに有用な情報を流すからね自然と手下が多くなる確かQZも
0420デフォルトの名無しさん2015/02/16(月) 02:11:51.65ID:Zn9bWbFW
片山MZは色々と試行錯誤するので、
見ているだけで、反面教師となって有益

自分が同じ間違いをしなくて済む

この板は他にも、QZ、ピラフなど、
何らかの情報を発信する、有益なコテハンが多い。
この板は有益なコミュニティだ
0421デフォルトの名無しさん2015/02/16(月) 03:43:59.12ID:N4N5sFFI
客寄せパンダ
0422デフォルトの名無しさん2015/02/16(月) 06:31:55.11ID:gRhA7X2Y
烏合の衆
0423デフォルトの名無しさん2015/02/16(月) 09:31:03.98ID:FO5Gq4fD
>>420
反面教師しかいないのは、それはそれで…
0424デフォルトの名無しさん2015/02/16(月) 09:38:43.55ID:F7oc1qZ/
むしろ人払いしてるよな
0425デフォルトの名無しさん2015/02/16(月) 10:04:35.86ID:McaEaMoK
そいつら全員同一なんだろ?
同時に現れたところを見たことないしw
0426デフォルトの名無しさん2015/02/16(月) 19:44:57.19ID:jN3tDTOq
EXCELの表計算の部分ってDataGridViewみたいな感じですが、そういう既存の
APIで作られているのでしょうか?
それとももっとLow Levelな手法で
作られているのでしょうか?
0427デフォルトの名無しさん2015/02/16(月) 22:28:24.82ID:PFbU5qB1
片山っていつも質問者に嘘回答してるクズじゃん
初心者騙して喜んでるただの荒らし
0428デフォルトの名無しさん2015/02/16(月) 22:40:46.76ID:PFbU5qB1
プログラム初心者に片山の嘘の例を示そうかと思ったけど、
プログラム初心者は大前提の知識が不足してて説明してもなかなか理解できないからな・・・

と思ったらちょうどいい例が見つかったわ
http://peace.2ch.net/test/read.cgi/tech/1388933972/4-5

これなら初心者でもどの程度の嘘か分かるだろ
これに限らず片山の回答はどこのスレでもこのレベルの嘘ばかり
初心者はとりあえず片山をNGワードに入れとけ
0429片山博文MZ ◆T6xkBnTXz7B0 2015/02/16(月) 23:08:57.62ID:jO7bZY/k
毎晩、酔っ払いの説教を聞いてると、こんな思考回路になるとじゃけんねん。しゃーねえ。
0430片山博文MZ ◆T6xkBnTXz7B0 2015/02/16(月) 23:57:47.01ID:jO7bZY/k
・同僚にだまされて腐った鯛を持って帰る
・ご飯に勝手にアルコールを入れる
・毎晩酔っ払った状態で説教
・その上、タバコをべらんぼうに吸う
・肺が病気になってもやめない、逆に精神論で返す
0431片山博文MZ ◆T6xkBnTXz7B0 2015/02/17(火) 00:09:55.19ID:J4a0mND/
・その上、パチンカスで給料の2/3を溶かす
・飲酒運転常習犯で自分は運転が上手いと考えている
・撮ったビデオをAVに放流する
・盗聴器や手錠や洗脳の本を持っている
・複数の宗教を手当たり次第に子供にやらせる
0432片山博文MZ ◆T6xkBnTXz7B0 2015/02/17(火) 00:22:13.02ID:J4a0mND/
匿名だったら犯罪者は攻撃できないから安心だよ
0433片山博文MZ ◆T6xkBnTXz7B0 2015/02/17(火) 00:34:56.17ID:J4a0mND/
犯罪者は根絶やしにしなければならない。
0434デフォルトの名無しさん2015/02/17(火) 02:11:12.28ID:52Ru56el
>>428
んでもキミはそういう分かり易い嘘以外では嘘だ嘘だとしか言わないだろ
その行為は、実は一見片山が正しいように見せる行為ですらある

…つまり、ハタから見ればキミは片山本人ってことになる
0435デフォルトの名無しさん2015/02/17(火) 04:33:03.17ID:NGo27G1P
レス番がすごい飛んだけどキチガイが暴れたの?
0436デフォルトの名無しさん2015/02/17(火) 04:43:30.96ID:Q4rBePsy
そんなことをわざわざ確認するとか
お前なんのためにNG機能とか使ってんの?アホなの?
0437デフォルトの名無しさん2015/02/17(火) 09:14:33.07ID:ZaoCuCHY
NG使ってる本人がNG使って書き込んで
反映されないので二重三重に投稿連投
ですねわかります
0438デフォルトの名無しさん2015/02/17(火) 15:35:18.35ID:cYnsHhOG
お前ら頭いいんだから、いい加減スレチなの止めてくれな。
0439デフォルトの名無しさん2015/02/17(火) 23:18:00.44ID:DwStm3jD
Win7(IME10.1)で日本語の品詞一覧を取得しようとしたんですが、ImmGetRegisterWordStyleの戻り値がゼロになります
GetKeyboardLayoutによるHKLの取得には成功していて、一応第3引数のポインタも指定しています
元々不具合のあった関数でもあるみたいなので、同環境の情報が欲しいので検証してもらえませんか?
0440デフォルトの名無しさん2015/02/17(火) 23:21:29.21ID:DwStm3jD
補足。nItemに0を指定して品詞の取得に必要なバッファサイズを得る段階です
0441デフォルトの名無しさん2015/02/18(水) 00:03:03.29ID:fxWFvcN5
めんどくさいから
int main()
{
...
}
でコピペして実行できるやつ貼ってくれ
そしてprintfで出た結果をここに貼るわ
0442デフォルトの名無しさん2015/02/18(水) 01:51:49.28ID:aOiIdSCQ
ありがとうございます。マイナー言語で書いてるのでC++に移植してきます。VSを起動するの超久々ですが
0443デフォルトの名無しさん2015/02/18(水) 01:53:53.03ID:Qs6pA21t
>>442
というかそのマイナー言語でまずは書け
マイナーすぎて誰にも分からないときに移植コードで
0444デフォルトの名無しさん2015/02/18(水) 02:07:38.06ID:aOiIdSCQ
>>443
HSP3.32です。sdimは文字列バッファの確保、varptrはそのバッファのアドレス、statは直近の戻り値です

#uselib "user32.dll"
#cfunc GetKeyboardLayout "GetKeyboardLayout" int
#uselib "imm32.dll"
#func ImmGetRegisterWordStyle "ImmGetRegisterWordStyleA" int, int, int
#define STYLE_DESCRIPTION_SIZE $00000020

hkl = GetKeyboardLayout()
mes "GetKeyboardLayoutの結果: " + hkl

; http://gaiji.jjworkshop.com/cgi-bin/topic/topic.cgi?4を参考
sdim dummybuf, 256 * (4 + STYLE_DESCRIPTION_SIZE)
ImmGetRegisterWordStyle hkl, 0, varptr(dummybuf)
style_max = stat
mes "取得した品詞の数: " + style_max
0445デフォルトの名無しさん2015/02/18(水) 02:35:51.13ID:aOiIdSCQ
VS2012でエラーが起きまくったもののVC++2010で何とか作成できたので貼ります

#pragma comment(lib, "imm32.lib")
#include <windows.h>
#include <imm.h>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
STYLEBUFA stylebuf;
HKL hkl = ::GetKeyboardLayout(0);
int style_max = ::ImmGetRegisterWordStyleA(hkl, 0, &stylebuf);
cout << "hkl:" << hkl << endl;
cout << "style_max:" << style_max << endl;
getchar();
return 1;
}
0446デフォルトの名無しさん2015/02/18(水) 06:13:26.44ID:YhMVzleA
GetKeybordLayoutする前にテキストボックスなんかにSetFocusしなきゃダメだったと思うわ
0447デフォルトの名無しさん2015/02/18(水) 07:21:07.85ID:SGYOmPlm
x64Win8.1で試してみたけど0しか返ってこないな。
決め打ちでバッファを用意しても中身空のままだし。
0448デフォルトの名無しさん2015/02/18(水) 10:07:37.02ID:0oFqPaUt
ユーザーが自分で登録した分しか出ないんちゃう?
0449デフォルトの名無しさん2015/02/18(水) 16:20:23.22ID:fxWFvcN5
>>445
ほらよ
単語に何も登録してない状態

hkl:04110411
style_max:0

単語に語句「OH! Manko」を読み「おまんこ」として登録した状態

hkl:04110411
style_max:0

結果は変わらなかった
0450デフォルトの名無しさん2015/02/18(水) 17:22:40.58ID:lVKX5epf
LoadKeyboardLayoutとか使ってみてもダメだったね。
ググっても、昔のこのスレでも同じ質問があって解決レスは無かったw
0451デフォルトの名無しさん2015/02/18(水) 17:49:01.30ID:aOiIdSCQ
>>446-450
わざわざ検証していただいてありがとうございます
ひとまず再現性があり自分の責任ではないようで安心しました
>>446さんのご指摘を受けてフォームアプリケーション用に書き変えてやってみましたが特に結果は変わりませんでした

一応試したコードも貼っておきます
http://codepad.org/t67U4cDb
0452デフォルトの名無しさん2015/02/18(水) 18:02:06.96ID:lVKX5epf
フォーカスの有無やIMEのON/OFFも試したけどダメだったわ。>450時点で試してたことだけど。
なお、Win8Pro64bit ATOK2015

第2引数に0を入れてるのに、第3引数に有効ポインタ入れとかなきゃいけないって仕様がおかしいって
情報も見つかってたので、そもそもこのAPIが怪しい気はする。
0453デフォルトの名無しさん2015/02/18(水) 18:47:37.18ID:aOiIdSCQ
>>452
事細かに試していただいて感謝します

ATOKとMS-IMEが成功可否に影響するというような情報も見つけた気がしますが、
今回の例ではたぶん根本的に原因が共通しているのでこちらでやっても同じ結果になると思います
こちらの環境を再掲しておくと、MicrosoftIME 10.1 on Windows7 HomePremium 32bitです

元々、辞書ツールから単語登録するのが面倒だから、
専用のTSVファイルをパッと開いて書き換えたらパッと単語登録されるようなツールが作りたかったんですが、
同じように列挙も登録もできず、周辺のAPIが全滅という有様でした

仮に単語登録が成功したとしても、ImmRegisterWordにはメモリリークもあるらしいですよ
0454デフォルトの名無しさん2015/02/18(水) 19:09:18.69ID:9ZeaK8N0
チョンに外注したのか
0455デフォルトの名無しさん2015/02/18(水) 19:36:03.78ID:YhMVzleA
メモリーリークって昔でしょ
今IMM32 APIってTSFのラッパーだからこっちに何か代わりになるものあるかも
Text Services Framework
https://msdn.microsoft.com/en-us/library/windows/desktop/ms629032%28v=vs.85%29.aspx
0456デフォルトの名無しさん2015/02/18(水) 20:50:09.74ID:aOiIdSCQ
>>455
それは知りませんでした。有益な情報をありがとうございます
なるほど、Vista以降ぐらいでラッパー関数になっているんですね

一見、TFSには単語登録や取得のメソッドが無いように見えます
imm32のAPIで単語を弄れない理由もここにあるのかも

反面、MS-IMEの辞書ツールで単語登録できているのは、専用のCOMを利用しているからだと推察しました
予想が当たれば少なくともMS-IMEについては解決できそうです。他のエンジンも多分専用のAPIがあるはず

参考にしたサイト
http://www.kanazawa-net.ne.jp/~pmansato/net/net_tech_ime.htm
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/4c8aebfa-caa7-47a8-988a-f3c252ec37c0/vistaime?forum=vcgeneralja
0457デフォルトの名無しさん2015/02/19(木) 07:55:11.67ID:rlVE8baN
単語登録だけで登録画面出てもいいならこれかな?
今動いてるコード

std::wstring text(L"登録単語");
REGISTERWORD regword = {0};
regword.lpWord = const_cast<LPWSTR>(text.c_str());

(void)::ImmConfigureIME(
 ::GetKeyboardLayout(0),
 hWnd, //ダイアログの親になるウィンドウのHWND
 IME_CONFIG_REGISTERWORD,
 &regword);
04584562015/02/19(木) 09:43:09.44ID:GozftCKZ
>>457
わざわざありがとうございます。TSFにもそれらしいものがあり、登録画面ならこちらでも出せるっぽいです
本来の目的とは違いますが、ホットキーからクリップボードの内容をさっと登録する機能なんかに使えそうですね
0459デフォルトの名無しさん2015/02/19(木) 13:33:25.45ID:F2+DwIhl
指定したexeを起動してその起動したexeのハンドル取るAPI教えてんこ
0460デフォルトの名無しさん2015/02/19(木) 13:41:27.72ID:YKDWyqEz
>>459
自分で起動したなら簡単にハンドルは取れるはず
起動中のexeを列挙して探すなら Process32First / Next
0461デフォルトの名無しさん2015/02/19(木) 16:39:54.11ID:rlVE8baN
HANDLE hProcess = NULL;
DWORD processId = 0;

PROCESS_INFORMATION pi = {0};
STARTUPINFO si = {0};
si.cb = sizeof(si);
if(::CreateProcess(
 prog.c_str(),
 const_cast<LPWSTR>(param.c_str()),
 NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
 NULL, NULL, &si, &pi))
{
 ::CloseHandle(pi.hThread);
 hProcess = pi.hProcess;
 processId = pi.dwProcessId;
}
〜
if(hProcess) ::CloseHandle(hProcess);
0462デフォルトの名無しさん2015/02/20(金) 11:42:43.98ID:f+GBkftj
>>460-461
ありがとうございます。
両方ともプロセスハンドルはあるけどウィンドウのハンドルは無いっぽいですが
プロセスのハンドルでウィンドウ操作できませんよね?
0463デフォルトの名無しさん2015/02/20(金) 11:47:11.05ID:SdYWKWEv
条件後出しすんなボケ
0464デフォルトの名無しさん2015/02/20(金) 11:54:24.97ID:f+GBkftj
>>463
知らないならレスしないで下さい、ウザイだけです。
0465デフォルトの名無しさん2015/02/20(金) 11:58:44.76ID:fEal40kx
ひさびさに聞いたなそれ
では死ね
0466デフォルトの名無しさん2015/02/20(金) 12:09:40.51ID:ahptq4t6
>>462
ウィンドウを操作するのにプロセスのハンドルは要らないんじゃないか?
単にウィンドウを列挙するなら EnumWindows / EnumThreadWindows
ウィンドウを列挙した後、どのプロセスに属するか調べるなら GetProcessHandleFromHwnd
0467デフォルトの名無しさん2015/02/20(金) 12:32:58.72ID:rRCvJJFn
ウィンドウ操作はプロセスハンドルじゃなくHWNDだろがJK
0468デフォルトの名無しさん2015/02/20(金) 12:40:09.76ID:ahptq4t6
>>466
追加。 プロセスに属するか調べるのは GetWindowThreadProcessId でも可
0469デフォルトの名無しさん2015/02/20(金) 12:45:33.80ID:C0yfY/Rk
exeのハンドル=ウィンドウハンドルだと思いこんでる時点でお察し
0470デフォルトの名無しさん2015/02/20(金) 14:33:18.61ID:XfKuwL2S
トップレベルウィンドウを列挙
各ウィンドウのプロセスIDを調べる
目当てのプロセスIDが見つかったら、そのウィンドウのウィンドウハンドルを返す
http://d.hatena.ne.jp/yu-hr/20100323/1269355469

ただし、トップレベルウィンドウ(親ウィンドウがない普通の窓)が、複数あるようなアプリケーションでは、
Zオーダーが上の窓(より前面にある窓)が返されます。
なのでIEのような、1つのプロセスで複数のウィンドウが開くアプリケーションに対して実行する場合は要注意。
0471デフォルトの名無しさん2015/02/20(金) 15:31:15.51ID:7c/Woly0
こんなやつにちゃんと答えてあげるなんてお前らやさしいな

464 名前:デフォルトの名無しさん[] 投稿日:2015/02/20(金) 11:54:24.97 ID:f+GBkftj [2/2]
>>463
知らないならレスしないで下さい、ウザイだけです。
0472デフォルトの名無しさん2015/02/20(金) 15:35:47.64ID:XfKuwL2S
少なからず本人が自分で考える力や検索する力を奪ってるので優しい訳ではない
0473デフォルトの名無しさん2015/02/20(金) 15:45:48.23ID:CB/nIcnB
どう考えてもコピペ
0474デフォルトの名無しさん2015/02/20(金) 19:40:06.37ID:++UFdJqE
おまえらバカ、とくに 461
> exeのハンドル取るAPI教えてんこ
これで気づけよ
0475デフォルトの名無しさん2015/02/20(金) 20:49:39.41ID:gADPfhrw
そいつのためだけじゃねえんだよ
0476デフォルトの名無しさん2015/02/20(金) 20:58:31.21ID:CB/nIcnB
>>474
むしろ「指定したexe」から補えない方がどうかしてる
0477デフォルトの名無しさん2015/02/21(土) 02:18:05.13ID:ujrM5Woq
https://msdn.microsoft.com/en-us/library/windows/desktop/ms670081%28v=vs.85%29.aspx
>but does not actually perform a search.

なんですかこれ。
0478デフォルトの名無しさん2015/02/21(土) 07:04:26.76ID:DGU3n6av
検索タブをアクティブにするよ、だけど検索を実際に実行はしないけどね

って書いてあるだろ
中学出たのか?
0479デフォルトの名無しさん2015/02/21(土) 08:04:32.80ID:ujrM5Woq
なんで検索してくれませんか。
0480デフォルトの名無しさん2015/02/21(土) 14:32:51.83ID:TG3Ky+4O
ウィンドウを管理するクラス作って、そこにウインドウプロシージャも入れようとすると、staticにしなきゃいけないけど、こういうやり方って普通なの?
何か気持ち悪いんだけど俺が慣れてないだけ?
それとも普通はウインドウの管理をするクラスなんか作らないとか?
0481デフォルトの名無しさん2015/02/21(土) 14:43:19.67ID:Qj5PkULS
staticで作ってインスタンス毎にウィンドウハンドルとclassdataで管理
0482デフォルトの名無しさん2015/02/21(土) 14:48:50.66ID:JB1czYZt
MFCとかWTLならstaticにしなくてもクラスのインスタンスごとに管理できる
0483デフォルトの名無しさん2015/02/21(土) 14:50:05.09ID:hXObCDYb
不特定多数に公開するライブラリを作るんでもなければ、クラスにするメリットないよね
プロシージャをstaticにしたらメソッドにアクセスすんのめんどくさいし
0484デフォルトの名無しさん2015/02/21(土) 14:50:12.04ID:b3TAXLfH
GWLP_USERDATA or SetWindowSubclass
0485デフォルトの名無しさん2015/02/21(土) 15:11:43.45ID:JFEpwQ1f
俺は、GWLP_USERDATAでthisを登録して、メンバ関数でウィンドウプロシージャを定義できるようにしたけど、
CreateWindowの中でもウィンドウプロシージャ呼ばれるから注意な
結局、CreateWindow呼ぶ前にstatic変数にthisを入れてCreateWindowの中でウィンドウプロシージャが呼ばれたときは、
static変数のthisを使うようにしたけど、気持ち悪いな。もっといい方法あるんだろうか
0486デフォルトの名無しさん2015/02/21(土) 15:14:54.14ID:QT8x93qN
WTLはインラインアセンブラを使ってたような
0487デフォルトの名無しさん2015/02/21(土) 15:24:47.02ID:hXObCDYb
>>485
CreateWindowのlpParam
0488デフォルトの名無しさん2015/02/21(土) 15:35:27.96ID:q8r+DySB
実はWM_CREATEの前にもメッセージ飛んでるので
厳密にはCREATESTRUCTでは不十分だったりするのよね

GWLP_USERDATA等の属性すら一切使わないWTLの実装が最強
0489デフォルトの名無しさん2015/02/21(土) 15:37:56.11ID:kwW1PPRV
>>488
WM_CREATEの前のメッセージで処理したいことって何ある?
0490デフォルトの名無しさん2015/02/21(土) 15:47:24.94ID:JFEpwQ1f
>>488
WTLはどうやってるの?
0491デフォルトの名無しさん2015/02/21(土) 15:58:48.77ID:JFEpwQ1f
>>487
こんな感じか。こっちのほうがだいぶいいね
LRESULT CALLBACK WindowBase::RealWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
 WindowBase* pThis = (WindowBase*)GetWindowLongPtr(hWnd, 0);
 if(pThis == NULL) {
  if(msg == WM_CREATE || msg == WM_NCCREATE) {
   CREATESTRUCT* ptr = (CREATESTRUCT*)lParam;
   SetWindowLongPtr(hWnd, 0, (ULONG_PTR)ptr->lpCreateParams);
   pThis = (WindowBase*)ptr->lpCreateParams;
   pThis->m_hWnd = hWnd;
  }
 }
 if( pThis ){
  _ASSERT( pThis->m_hWnd == hWnd );
  return pThis->WndProc(msg, wParam, lParam);
 }
 return 0L;
}
0492デフォルトの名無しさん2015/02/21(土) 16:07:44.95ID:q8r+DySB
>>489
WM_GETMINMAXINFOがWM_NCCREATEの前に飛んでくるから
CreateWindowで指定する初期サイズにWM_GETMINMAXINFOハンドラが対応できない

確認した限りじゃそのくらいなので実用上はCREATESTRUCT渡しでも全然問題ないよ

>>490
http://hp.vector.co.jp/authors/VA022575/c/msgmap.html
0493デフォルトの名無しさん2015/02/21(土) 16:28:16.67ID:JFEpwQ1f
>>492
これは面白いなw
まじめにやろうとするとコード生成まで必要になるとか、Win APIどんだけアホな設計なんだって思う(まぁ古いから仕方ないんだが)

つまり、最初(CreateWindowで呼ばれた時)は、スレッドごとのグローバル変数にインスタンスへの参照を持っていおいて、
最初にウィンドプロシージャが呼ばれた時に、ウィンドウプロシージャをコード生成で生成した関数に置き換えるってことだな

WTLはCreateWindowのlpParamじゃなくて、static変数のほうだったか。やっぱりコード戻すわ
0494デフォルトの名無しさん2015/02/21(土) 17:27:26.58ID:qCqW+14K
うーん、そういうのは UI スレッドにお任せだ‥
0495デフォルトの名無しさん2015/02/21(土) 19:47:01.43ID:eA3VAGwd
キーボード/タッチパネル等でマウスを操作するアプリを作りたいのですが、
マウスが繋がっていない環境(windows8タブレット)などで、マウス表示の方法がわかりません。

ShowCursor(TRUE); を使えばいいかと思ったんですが、
この関数は、 カーソルを表示するかどうかを決める内部的な表示カウントを設定します。
カーソルは、 表示カウントが0以上のときに表示されます。マウスがインストールされているときには、
初期表示カウントは0になります。マウスがインストールされていないときには、 −1になります。

ということなので、頭抱えています。
なにかいい方法ありませんか?
0496デフォルトの名無しさん2015/02/21(土) 19:48:02.30ID:xSRhDEOz
>>480
>ウインドウの管理をするクラス
これ?
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ff381400%28v=vs.85%29.aspx
0497片山博文MZ ◆T6xkBnTXz7B0 2015/02/21(土) 19:52:19.52ID:swM6o0zc
>>495
すぐ思い付くやり方は透過ウィンドウを使う方法だな。
SetWindowRgn
0498デフォルトの名無しさん2015/02/21(土) 19:56:50.45ID:eA3VAGwd
>>497
なるほど。。簡単そうなのは、透過ウインドですかねぇ。。?
ちょっと思いついたのは、マウスの仮想ドライバー作るとか?証明関連で悩みそうです;;
なんか簡単に、偽物じゃないOSのマウスが表示できればいいのですが・・
0499デフォルトの名無しさん2015/02/22(日) 00:08:41.99ID:qxC/WEu2
狂気に満ちたやり取りで頭が混乱しているが
なぜマウスが繋がっていない環境で、マウス表示をしなけりゃならんのか
0500デフォルトの名無しさん2015/02/22(日) 00:11:21.25ID:Z38HTJ9G
タブレットPCでスクリーンキーボードを使ってピクセル単位の操作がしたい、とか?
0501デフォルトの名無しさん2015/02/22(日) 00:12:14.56ID:+Vs0TRtQ
>>499
Win8タブレット前提で、タッチパネル上でマウス・キーボードを操作するアプリを作りたいからですよ?
既にそういうアプリはあるのは知っています。
0502デフォルトの名無しさん2015/02/22(日) 00:14:31.50ID:Z38HTJ9G
もうあれよ、既存のマウスを操作するアプリじゃなくて、キーボードで操作する仮想マウスドライバ書け
0503デフォルトの名無しさん2015/02/22(日) 00:21:58.79ID:+Vs0TRtQ
>>502
とりあえず、>>497 さんの SetWindowRgn で作ってみて、不具合出て対処出来そうもない場合は、
これ参考にしようかと思うのですが、ドライバー証明関連で詳しいサイトどなたか知りませんか?
ttp://riosu.hateblo.jp/entry/2013/09/08/013420
0504デフォルトの名無しさん2015/02/22(日) 00:58:23.39ID:+WCHq4X5
セキュリティホールにしかならないから止めてくれ
0505デフォルトの名無しさん2015/02/22(日) 01:31:59.12ID:uJK2QFdc
SuperFishの証明書発行しとけ
0506デフォルトの名無しさん2015/02/22(日) 03:03:47.82ID:ewsgN8fY
ウィンドウやビットマップを1000個作って明示的に解放せずに(強制)終了させたとき、
それらのリソースはOSが勝手に解放してくれるんですか?
0507デフォルトの名無しさん2015/02/22(日) 03:06:21.19ID:U+g4RZck
>>506
解放されるよ
0508デフォルトの名無しさん2015/02/22(日) 03:10:25.86ID:ewsgN8fY
>>507
ありがとう
0509デフォルトの名無しさん2015/02/22(日) 07:16:57.24ID:uX3Bvmht
されないものもある
0510デフォルトの名無しさん2015/02/22(日) 13:44:25.32ID:o1GxeALa
詳しい人教えてください。

Windows環境で実装しています。
DLL AとDLL Bが有るとします。

DLL Aで、
void Func_A(FILE* pFP) {
fprintf_s(pFP, "%d", 123);
}
と実装し、Func_Aはエクスポートされていて、DLL Bから利用可能な状態となっているとします。

またDLL Bでは、以下のような関数を実装しているとします。
void Func_B() {
FILE* pFP = NULL;
fopen_s(&pFP, "./hoge.txt", "w"); //もしくはfopen()を使う
Func_A(pFP);
fclose(pFP);
}

この時、VCの「マルチスレッドデバッグ(MTd)」でビルドした上で、
DLL BのFunc_Bを実行すると、Func_A内のfprintf_sで、エラーになります。
※エラー内容:「要求した操作で必要なオブジェクトの種類と要求に指定したオブジェクトの種類が一致しません」
(DLLをまたいだ、内部的な、ファイルポインタ関係のメモリ操作違反?!)
なおVCの「マルチスレッドデバッグDLL(MDd)」でビルドすると、エラーは出ません(共通のCRTを使うため?!)。

MTdでビルドする際に、DLL BのFILE* pFPを、DLL Aに安全に渡して引き継がせる方法ってないんでしょうか。
0511デフォルトの名無しさん2015/02/22(日) 13:49:19.79ID:jAanobMm
ない。
https://msdn.microsoft.com/ja-jp/library/ms235460.aspx
0512片山博文MZ ◆T6xkBnTXz7B0 2015/02/22(日) 13:49:33.80ID:vD6PHArE
DLL AとDLL Bを同じ種類のCRTライブラリー使うようにしろ
0513デフォルトの名無しさん2015/02/22(日) 14:17:07.73ID:o1GxeALa
ありがとうございます。

>>511
リンク先のCausesと、ファイルハンドルのExampleによると、オプションMT(d)は無理みたいですね。
リンク先のページを教えてもらって助かりました。

>>512
オプションMD(d)を使うしかないんですね。
0514デフォルトの名無しさん2015/02/23(月) 00:25:08.56ID:umJpzUJj
>>513
ソースをいじれるなら、OS側のハンドルに変換して渡す方法もあるかと
(FILE系関数を使わずに全部APIでやる方法もあるが…)
こんな流れで

[ Func_B ]
FILE*からfd(ファイル記述子)へ変換:_fileno()
fdからhandleへ変換:_get_osfhandle()

[ Func_A ]
handleからfdへ変換:_open_osfhandle()
fdからFILE*へ変換:_fdopen()
出力後はfflush()してから戻ること
0515デフォルトの名無しさん2015/02/23(月) 05:13:35.71ID:QqJCIrI1
ノートPCのバッテリへの電気供給をON/OFFに出来るAPIってある?ACPIってやつの制御?よくわからないけど
0516デフォルトの名無しさん2015/02/23(月) 08:18:05.67ID:u+Zi8bbf
アクティブウインドになる前のアクティブウインドを調べる方法は有りますか?
0517516です2015/02/23(月) 08:36:14.15ID:u+Zi8bbf
case WM_ACTIVATE:
{
HWND hBack = SetActiveWindow(GetActiveWindow());
return 0;
}
これはだめでした。。

スレッドやSetTimerなどで、GetActiveWindow()を動かして監視するしかないかな?
0518デフォルトの名無しさん2015/02/23(月) 08:47:10.65ID:AjFb9vvE
hookやね
0519デフォルトの名無しさん2015/02/23(月) 09:05:38.07ID:xos6Ur9w
うむ。 WH_CBT が最初に思い浮かんだが、
Alt+Tabででてくるリストを取得する方法があれば常駐しなくて済むかも。 後者の手段は知らない。
0520516です2015/02/23(月) 09:30:22.21ID:u+Zi8bbf
GetActiveWindow()だめでした。ヘルプ読んだら、関連付けされているスレッドのみ有効><
タイマーかスレッドで、GetForegroundWindow()使えばいいのかなと思いました。
EnumWindowsでアクティブウインドウを調べようかと思ったんですが、不具合出てきたら、フックのほうが正確かもしれませんね。
0521デフォルトの名無しさん2015/02/23(月) 11:42:03.06ID:Pw6BfwZP
WM_ACTIVATEのlParamに入ってなかったっけ
0522デフォルトの名無しさん2015/02/23(月) 16:17:37.64ID:dq6RfWKT
入ってるよ
0523デフォルトの名無しさん2015/02/23(月) 21:03:41.95ID:u+Zi8bbf
>>521
なんと!
lParamに入ってましたか!
ありがとう!
0524デフォルトの名無しさん2015/02/23(月) 23:28:59.37ID:hhR2xhyg
メッセージ処理する時にwParam lParamの意味を調べるのは基本
0525デフォルトの名無しさん2015/02/24(火) 10:37:18.28ID:Er3xweuT
主要メッセージのlParam,wParam,戻り値の一覧みたいなの無かったっけか
前にどっかで見た気がするんだが
0526デフォルトの名無しさん2015/02/24(火) 14:11:42.07ID:fS9qUf3C
一覧にする必要性を感じない
何が便利になるんだ?
0527デフォルトの名無しさん2015/02/24(火) 14:46:11.67ID:oePtv8Lt
子ウインドウAのリストビューの項目をクリックしたら、子ウインドウBにそのマンコを表示してアクティブにしたいんだけど、子ウインドウBがアクティブにならない
SetFocusもSetActiveWindowも両方試したけど駄目だった
リストビューをクリックして子ウインドウBに表示されたマンコをキーボードの矢印で上下左右に動かしたいんだけど、
フォーカスが移ってくれないからキーボードの矢印を押すとリストビューの選択が動く
子ウインドウBをクリックすればちゃんとフォーカス移ってキーボードで操作できるけど、いちいちクリックしてるとマンコの損失がでかい
ちなみに、なぜか子ウインドウAの項目をキーボードの矢印で選択したときはちゃんと子ウインドウBにフォーカスが移る
何だろうな、こういうことでも起こってんのかね

子ウインドウAでマウスダウン→子ウインドウBにマンコ表示→子ウインドウBアクティブ→子ウインドウAでマウスアップ→子ウインドウAアクティブ
0528デフォルトの名無しさん2015/02/24(火) 20:41:45.91ID:4wRlIK+Y
NM_CLICKのタイミングでフォーカス移しても駄目か?
0529デフォルトの名無しさん2015/02/24(火) 21:39:42.01ID:oePtv8Lt
>>528
ありがとう
でも駄目だった
結果は変わらず
0530デフォルトの名無しさん2015/02/25(水) 01:55:31.82ID:2mLZHhyU
モードレスDialogでタイトルバーに
---------------------------
                [-][□][x]
---------------------------
最小化、最大化、閉じるボタンの三つがありますが、
そのうち最大化のみ消して

---------------------------
                  [-][x]
---------------------------
にできますか?方法教えて下さい。
0531デフォルトの名無しさん2015/02/25(水) 02:44:45.76ID:FoI0Rp8s
>>527
マウスボタンを押して離すまでがクリックですよ!
離すまで待ってみないと、本当にクリックなのかそれともドラッグするか
おっと操作ミスった!でキャンセルするかわからんからな

リストビューでも、押した時点で選択は変わるけど
離すまでの間はマウスをキャプチャした状態になるみたいだ
だからマウス離したところでフォーカス移せばいいんでね?
0532デフォルトの名無しさん2015/02/25(水) 04:49:48.53ID:kAr5BbQr
>>530
スタイル
0533デフォルトの名無しさん2015/02/25(水) 05:46:40.57ID:PhSX1vqX
> 子ウインドウBがアクティブ
MDIか?
0534デフォルトの名無しさん2015/02/25(水) 06:47:27.22ID:2mLZHhyU
>>532
disableには出来たんですが非表示に出来ないんです。それと最小化ボタンをクリックしてもイベントが飛んで気ません。どうしたらいいですか?
0535デフォルトの名無しさん2015/02/25(水) 07:38:21.31ID:nKN7f0Au
>disableには出来たんですが非表示に出来ないんです。

知ってるよ
0536デフォルトの名無しさん2015/02/25(水) 10:48:14.06ID:2mLZHhyU
>>535
教えてけろ
0537デフォルトの名無しさん2015/02/25(水) 11:21:20.24ID:d0ie9jrP
ダイアログで良くね?
0538デフォルトの名無しさん2015/02/25(水) 11:22:25.66ID:69PZJRAE
>>530
自分でタイトルなしのウインド作ってほしいボタン貼り付けたら?
最小化ボタンは、SendMessage(hWnd,WM_SYSCOMMAND,0xF020,0); とか使って実装すればいいと思うよ?
0539デフォルトの名無しさん2015/02/25(水) 12:56:42.77ID:d0ie9jrP
style = WS_POPUP | WS_BORDER | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME;
で作ったらタイトルとXボタン付きで最小化ボタンと最大化ボタンの両方が消えた

style = WS_POPUP | WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | DS_MODALFRAME;
で作ったら最大化ボタンが一緒に出て来てしまう(無効にはされてるが)

なので >>538 さんの言うように
style = WS_POPUP | WS_BORDER | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME;
で作って最小化ボタンだけ自分で描く 👀
0540デフォルトの名無しさん2015/02/25(水) 12:58:58.35ID:d0ie9jrP
最近自分のレスの末尾に
��
が付くことが多いんだけど
これってなんなの?
入れた覚えないんだが
0541デフォルトの名無しさん2015/02/25(水) 13:52:29.92ID:2mLZHhyU
みなさんレスありがとうございました。
アドバイスに従っていろいろ試したんですが、結局、難しいので諦めました。それで、
モードレスダイアログをCreateDialogで作り、[-][□][x]の三つのボタンを付けました。
でも、[-]や[□]を押しても何も起こりません。[x]を押すとWM_CLOSEが来るのですが。
どうすれば[-]や[□]を検出できますか?
0542デフォルトの名無しさん2015/02/25(水) 14:07:28.82ID:E85DqTH1
なんで諦めたのにダイアログにしたの?
何も起きないのはダイアログのウィンドウプロシージャがそのメッセージを拾ってないからでしょ
WM_SYSCOMMANDを受けてwParamに応じてCloseWindowかなんかすればいいと思うけど
0543デフォルトの名無しさん2015/02/25(水) 15:27:50.11ID:2mLZHhyU
>>542
モードレスダイアログを作りたいのです。
追加で質問なんですが、
SendMessage(hDlg, DM_SETDEFID, IDC_BUTTON, 0);
とするとデフォルトボタンを設定できますけれど、IDで指定するのではなく
ボタンのhwndを指定してデフォルトボタンを設定する方法ありますか?
0544デフォルトの名無しさん2015/02/25(水) 16:10:56.29ID:E85DqTH1
さあ
ただGWLP_IDかなんかで手動でリソースIDを設定できた記憶があるからその延長でできる気がする
0545デフォルトの名無しさん2015/02/25(水) 18:11:54.28ID:uRiqOZSm
>>541
本体のウィンドウのメッセージループで
IsDialogMessage() チェックして
モードレスダイアログ宛てのメッセージはスキップして
ウィンドウ側で処理せずダイアログに渡す必要がある
0546デフォルトの名無しさん2015/02/25(水) 18:22:43.02ID:uRiqOZSm
試したコード
http://codepad.org/lTZ2hgkK
0547デフォルトの名無しさん2015/02/25(水) 19:41:38.08ID:2mLZHhyU
545さん!物凄い分り易いサンプルプログラム大変有難うございました。
早速試させていたいだいたのですが、
私の場合、最小化ボタンを付けたいので、サンプルのDlgProc()を変更して

case WM_INITDIALOG:
  SetWindowLong(hDlg, GWL_STYLE, GetWindowLong(hDlg, GWL_STYLE) | WS_MINIMIZEBOX);
  return TRUE;

のようにしたら、最小化ボタン出たのですが、これで最小化ボタン押しても何も反応しません。
これが私が最初の質問だったのですが、この最小化ボタンを押して最小化するにはどうすればいいのでしょうか? 
そもそも追加した行は、ググッて見付けたものを適当にコピペしたので、これで良いのかどうかも分っていません。
よろしくお願いします。
0548デフォルトの名無しさん2015/02/25(水) 19:50:24.61ID:uRiqOZSm
WndProc 中の
tpl.dlg.style |= WS_MINIMIZEBOX;
の行をコメント外して

DlgProc()を変更して
case WM_INITDIALOG:
SetWindowLong(hDlg, GWL_STYLE, GetWindowLong(hDlg, GWL_STYLE) & ~WS_MAXIMIZEBOX);
return TRUE;
としたら最小化できたよ
0549デフォルトの名無しさん2015/02/25(水) 21:34:40.70ID:2mLZHhyU
>>548
サンプルプログラムで無事に最小化出来ました。
一方、私の場合、テンプレートではなくてリソースでダイアログを作っていました。
それで
case WM_INITDIALOG:
  SetWindowLong(hDlg, GWL_STYLE, GetWindowLong(hDlg, GWL_STYLE) | WS_MINIMIZEBOX);
  return TRUE;
としたら最小化ボタンが出たのですが、これが無反応でした。それでリソースのプロパティの設定でMinimize box=Falseになっていたの
に気付いて、trueにしたら、無事に最小化できました。この場合、WM_INITDIALOGでの設定は不要でした。
ということは、リソースでMinimize box=FalseにしてWM_INITDIALOGでSetWindowLongで有効化しても、
確かに最小化ボタンは現れますが、クリックに反応しないんですね。リソースでtrueにする必要があるんですね。
一体両者で何が違うんでしょうか?
いずれにしましても、今回は、大変分り易いサンプルを作って頂きまして大変有難うございました。
大変感謝です。
0550デフォルトの名無しさん2015/02/25(水) 22:01:28.25ID:RgCL3LuA
リソースから造ってもテンプレから造っても同じ動きをしているね
0551デフォルトの名無しさん2015/02/25(水) 23:05:31.32ID:2mLZHhyU
もし分れば、もう一つ教えて下さい
546さんのプログラムで、ダイアログがキー入力を受け付けるように
するにはどうすればよいでしょうか?私のプログラムも同じく、
キーを押すとピンという音が鳴って、キーを受け付けてくれません。
0552片山博文MZ ◆T6xkBnTXz7B0 2015/02/25(水) 23:23:20.19ID:mKx2rGPv
__alignof(IMAGE_DOS_HEADER)が2になるのはなぜ? LONGがあるから4じゃねーの?
0553デフォルトの名無しさん2015/02/25(水) 23:33:43.90ID:flmNpp9d
>>552
#pragma pack(push,2) されている。16bit時代との互換性だろう。
メモリ上にコピーするぶんには4byte alignで問題ないだろうが、
mmapする場合には2byte alignされているのを考慮しないとbus errorの恐れがあるな。
0554デフォルトの名無しさん2015/02/26(木) 06:54:52.12ID:YbvsbeHP
>>551
質問が曖昧過ぎるので、具体的に万人が分かるように、もう少し噛み砕いてから質問してください。
どういうことを伝えたいのか理解できません。

キー入力を受け付けるとは、DlgProc内で、WM_KEYDOWNなどのイベントを取りたいってことか?
似た質問はこっちかな?
ttp://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200301/03010053.txt
サブクラス化関連はこっちを参考にするといいぜ。
ttp://www.kumei.ne.jp/c_lang/sdk/sdk_36.htm

キー入力を受け付けるとは、TABキーで他のボタンとかにフォーカスを移動すること?
SetFocusとか、WS_TABSTOP関連調べたらいいんじゃね?

ダイアログになにかコントロールは張ってあるの?
エディットボックスを配置してあってそのエディットボックスの内容を処理したいの?
キー入力の受け入れは、ダイアログで処理を前提とした内容なの?
0555デフォルトの名無しさん2015/02/26(木) 09:47:57.41ID:MDOnKL5v
名前欄に「エスパー求む」と書いておいてほしいな
0556デフォルトの名無しさん2015/02/26(木) 12:03:53.28ID:hCLRjR6a
Win32APIスレってこんなに穏やかだったっけ
う〜ん、泣ける
0557デフォルトの名無しさん2015/02/26(木) 13:10:31.37ID:8ZdwsKpC
>>556
ID出るようになった辺りが転換期かと
0558エスパー求む2015/02/26(木) 15:30:17.95ID:cGnKpNs3
誰かKB3008273を常に監視しておいてKB3008273が更新に入っていたら
無効にしてくれるソフト作ってくれないかな・・・

C:\Windows\SoftwareDistribution\DataStore\DataStore.edb
http://stackoverflow.com/questions/20601018/how-to-read-windows-edb-file
https://msdn.microsoft.com/en-us/library/windows/desktop/gg269259%28v=exchg.10%29.aspx
http://managedesent.codeplex.com/SourceControl/latest#Esedb/
0559デフォルトの名無しさん2015/02/26(木) 15:59:19.04ID:hCLRjR6a
>>557
そういや前はID無かったんだっけ
IDがここまで治安に関わるとはなぁ…
0560デフォルトの名無しさん2015/02/26(木) 16:19:07.58ID:Oz6S5H7y
穏やかにはなったけど有益なレスが極端に減ったよね
2chで議論したり質問したりするメリットがほとんどなくなった
惰性で見てる奴がほとんどだろう
0561デフォルトの名無しさん2015/02/26(木) 16:25:49.53ID:Oz6S5H7y
ここまで有益なレスがレスが極端に減ると代償は大きすぎたんじゃないかとは思う
最底辺を這いずり回ってる人から見ればレスの質の違いはほとんど感じられないのだろうけど
0562デフォルトの名無しさん2015/02/26(木) 16:45:57.44ID:RfmB+Emb
んじゃ有益なレスをどーぞ
0563デフォルトの名無しさん2015/02/26(木) 17:32:00.05ID:8ZdwsKpC
有益なレスはむしろ増えたと感じるよ
と言うか前はノイズそのものしか存在しなかった
0564デフォルトの名無しさん2015/02/26(木) 17:44:55.38ID:vBjTX7Yd
このスレを荒らしてたのとアンチhogeで荒らしてたのは同一IDだったな。
ついでにID導入に反対して自治スレ荒らしてたのも同じ奴だろう。
0565デフォルトの名無しさん2015/02/26(木) 20:08:15.17ID:cJpbHW1d
>>560
このスレに限らず、2ch 全体の傾向
特に技術系のスレは軒並み衰退してる
0566デフォルトの名無しさん2015/02/26(木) 21:02:24.97ID:WnrsjYVG
>>564
そうそう、seikyo さんだったっけ‥
0567デフォルトの名無しさん2015/02/27(金) 16:03:44.83ID:oi7CjQpo
>>514
OS側のハンドルに変換して渡す方法を教えていただき、ありがとうございます。

実は、アプリの構成が以下の様になってます。
 exe本体
 DLL_1 ツール
 DLL_2 出力フロー制御、出力サブA
 DLL_3 出力サブB
 DLL_4 出力サブC

DLL_2が出力の流れをコントロールしており、
DLL_2の出力フロー制御を行う関数の手続きに沿って、最初にDLL_1でfopen_sして、DLL_2〜4で出力したいと考えてます。
教えてもらった方法に基づいて色々試してみた所、MTdでもエラーが出ずに出力できたのですが、
exe終了時に、DLL_3でエラーが出てしまいます。

工夫が必要なようなので、自分でちょっと考えてみます。
0568デフォルトの名無しさん2015/02/27(金) 20:51:49.92ID:r3kgyrtk
>>567
なんでそんなにDLLがあるのにライブラリと静的リンクしにゃきゃいけないんだ?
0569デフォルトの名無しさん2015/02/27(金) 22:17:19.45ID:Ip5cIlNH
winAPI でまとめたほうがいいよ‥
0570デフォルトの名無しさん2015/02/27(金) 23:08:24.96ID:1tbgoJAT
各dllにはファイルに直接出力させずにバッファに書き出させてから呼び元一カ所でファイルに書けばいいのでは?
0571デフォルトの名無しさん2015/02/27(金) 23:54:54.98ID:iW29o0bD
>567
オープンも書き出しもクローズも一箇所にする
書式指定の書き出しはこんなふうにまとめる
void hoge(FILE *fp, char *function, char *format, ...) {
va_list arg;
va_start(arg, format);

vfprintf(fp, format, arg);

va_end(arg);
}
あとはそれぞれ呼び出すようにする

で、どうですかね
0572デフォルトの名無しさん2015/02/28(土) 05:53:03.42ID:7qcAqGEp
mallocしたのを別のDLLからfreeするのはいいんだっけ?(CRTと静的リンク時)
0573 ◆QZaw55cn4c 2015/02/28(土) 06:14:35.70ID:WGZr43/X
よくわからないが、自信がなければ
#define malloc(size) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (size));
#define free(p) HeapFree(GetProcessHeap(), 0, (p));
に置き換えれば問題ないだろう
0574デフォルトの名無しさん2015/02/28(土) 06:25:17.86ID:YX39mL1t
そもそも別のDLLからfreeする必要性がわからん
0575デフォルトの名無しさん2015/02/28(土) 07:27:47.03ID:kDCn/ge4
いらなくなったらそっちで解放してねーってありえへんの?
0576デフォルトの名無しさん2015/02/28(土) 07:33:44.88ID:dohjXiRJ
専用の解放関数もエクスポートする。 Win32API なら CoTaskMemFree() が標準的に使われている。
operator delete をオーバーロードしてもいい。
0577デフォルトの名無しさん2015/02/28(土) 10:31:09.77ID:/TOKC6AH
素人のクライアントが頑張って考えてくれた糞仕様的でとてもよい
0578デフォルトの名無しさん2015/02/28(土) 11:08:19.31ID:/hvue7cx
メモリ確保処理と解放処理は、必ず同じものがしなさいと教わりました。
これは、正しいですか?
0579デフォルトの名無しさん2015/02/28(土) 11:09:40.45ID:O3IcVn8Y
全て同じプログラムがしているので正しい
0580デフォルトの名無しさん2015/02/28(土) 11:13:51.22ID:VNSN4Y6t
>>578
「同じもの」とは何を示してますか。日本語で宜しく。
0581デフォルトの名無しさん2015/02/28(土) 11:54:14.21ID:nexQhfCQ
あえてこのスレで聞くということは
↓みたいな組み合わせを変に混ぜて使うなという意味かな それなら正しい

new と delete
malloc と free
GlobalAlloc と GlobalFree
0582デフォルトの名無しさん2015/02/28(土) 12:29:40.19ID:o5qWQGmA
横からだが、

>>581
それなら「同じものを使いなさい」という表現じゃないかな。
「同じものがしなさい」なら
・呼び元が確保したなら呼び元が開放しなさい
・呼び先が確保したなら呼び先が開放しなさい
という意味だと思うが
0583デフォルトの名無しさん2015/02/28(土) 12:33:51.19ID:MySCamNG
アプリ終了時にOSがやってくれる
0584デフォルトの名無しさん2015/02/28(土) 13:51:47.78ID:7qcAqGEp
>>574
例えばSTLのvectorをDLL境界を超えて渡すとか
CRTと動的リンクしてれば問題ないんだけどね
0585デフォルトの名無しさん2015/02/28(土) 14:00:36.15ID:0w0p4VdY
shared_ptrに包んで渡せば問題ない
0586デフォルトの名無しさん2015/02/28(土) 14:14:44.93ID:7qcAqGEp
>>585
vector自体の解放はそれでいいけど、push_backとかしたらアウトじゃん
0587デフォルトの名無しさん2015/02/28(土) 15:28:10.11ID:JFYCQWYV
vectorなんざ使ってるのは女子供だけだからどうでもいい
0588デフォルトの名無しさん2015/02/28(土) 16:08:14.51ID:rpQR9Pv+
https://msdn.microsoft.com/ja-jp/library/k1sf4cx2.aspx
BYTE bmPlanes;
BYTE bmBitsPixel;
↑これBYTEじゃなくてWORDじゃねえかくそバグったわ氏ね
0589デフォルトの名無しさん2015/02/28(土) 16:28:45.10ID:ODdhY4Z/
ここは合ってるな
http://www.kumei.ne.jp/c_lang/sdk/sdk_26.htm
0590デフォルトの名無しさん2015/02/28(土) 16:28:57.87ID:8VFhE8v6
intのところもLONGだな
0591デフォルトの名無しさん2015/02/28(土) 16:38:24.51ID:ODdhY4Z/
16bitのときのまま直し忘れかな
0592デフォルトの名無しさん2015/02/28(土) 17:00:53.56ID:g3yXT3ce
あるあるネタ
0593デフォルトの名無しさん2015/02/28(土) 17:10:28.11ID:G6B671t8
OS2のbitmapだとBYTEみたいね
0594デフォルトの名無しさん2015/02/28(土) 17:11:22.44ID:8VFhE8v6
msdnが間違ったままなのは論外として、それはそうとしてもバグる前に
ビルド時点で気付かんものか?
0595デフォルトの名無しさん2015/02/28(土) 17:15:16.73ID:ODdhY4Z/
コンパイルが成功するケースとして
気付かないアクセス方法を使ってたり
BMPHEADERのサイズを数え間違ったりする原因にはなるな
0596デフォルトの名無しさん2015/02/28(土) 17:24:47.32ID:rpQR9Pv+
スクリプトで構造体を弄るときは自分でアドレス計算しなくちゃならないからな
0597デフォルトの名無しさん2015/02/28(土) 17:30:58.75ID:O3IcVn8Y
そもそもドキュメントなんか信用するからだ
0598デフォルトの名無しさん2015/02/28(土) 17:34:34.44ID:g3yXT3ce
まあな。うちの会社もドキュメントが無くて、ソースが仕様書って言われたしw
0599デフォルトの名無しさん2015/02/28(土) 18:11:25.69ID:rpQR9Pv+
最終的にはVSのインテリセンスで確認して気づいたのも確か
猫以下の公式は信用できないな
0600デフォルトの名無しさん2015/02/28(土) 18:15:02.36ID:st/D/r/c
昔はまって原因判らなくて困って別の方法とったことがある気がするんだがコレだったのか
0601デフォルトの名無しさん2015/02/28(土) 18:28:12.04ID:eag/Tohr
おかしいのはMFCATLカテゴリの日本語版だけで英語版やWin32APIの方は正しい
単にメンテされてないんだろう
0602デフォルトの名無しさん2015/02/28(土) 19:19:52.82ID:WGZr43/X
>>588
あいかわらず翻訳はだめだな
https://msdn.microsoft.com/ja-jp/library/cc413950.aspx
0603デフォルトの名無しさん2015/02/28(土) 20:57:16.77ID:JFYCQWYV
つーか英語読めないヴァカはプログラミングするな
0604デフォルトの名無しさん2015/02/28(土) 21:25:47.21ID:JFYCQWYV
>>822
おいらは逆だなw
女子高生においらのスカートの中を盗撮してほしいwww
イメクラとか行ったらそういうプレイやってくれるかな?ww
0605デフォルトの名無しさん2015/02/28(土) 21:27:11.32ID:JFYCQWYV
>>604は関係ないから読まなくていい
0606デフォルトの名無しさん2015/02/28(土) 23:56:23.39ID:in6rjNY5
>>578
同じ「階層」に位置する場所でやるのが一番いいと思うな
関数呼び出しの深度、と言い換えてもいい
0607デフォルトの名無しさん2015/03/01(日) 00:45:57.37ID:Mu8lfqrn
>>606
それは無理がある
例外の発生とかで解放処理を行なう場合、階層を合わせるのは難しい。
0608デフォルトの名無しさん2015/03/01(日) 00:52:57.33ID:68G9IfEz
>>607
デストラクタで解放すれば例外が発生しても同じ関数の中で解放できるだろ
何が難しいんだ?
0609デフォルトの名無しさん2015/03/01(日) 01:02:31.74ID:JUHHhof8
>>608
解放処理は1箇所でもできる。
確保は1箇所(例コンストラクタ)とは限らない。
むしろ、Createなんちゃら、とかOpenなにがし、とかの個別関数で行なう場合が多い。
0610デフォルトの名無しさん2015/03/01(日) 01:27:16.04ID:68G9IfEz
>>609
何が言いたいのか分からん
> 確保は1箇所(例コンストラクタ)とは限らない
当たり前。そのクラスのメンバ関数で確保したものは、そのクラスのデストラクタで解放するのが普通
同じ階層で確保・解放できるじゃん
0611デフォルトの名無しさん2015/03/01(日) 01:43:59.47ID:anadyXDv
>>610
初心者か?
すべてのメンバ関数の階層が1層しか無いのなら可能ではある。
ただ、余程小さなクラスでもない限りメンバ関数が階層構造になるのが普通。
オブジェクト指向といえど構造化プログラミングの原則は変わらない。
メモリ確保などの詳細処理は、それを管理する側(処理)から呼び出して利用する。
0612デフォルトの名無しさん2015/03/01(日) 02:06:32.35ID:68G9IfEz
>>611
メンバ関数の階層構造なんかどうでもいいんだよ
確保したものをメンバ変数に入れておけばデストラクタで解放されるんだから同じ階層ってことでいいだろ
そんな小さい話じゃねーよ
0613デフォルトの名無しさん2015/03/01(日) 02:13:32.79ID:gHP/P/bi
>>612
主張している論理が破綻してるぞ
>>606で自分自身が書き込んだ内容見直してみろ
0614デフォルトの名無しさん2015/03/01(日) 02:15:42.08ID:ciqMShcX
>>611
Cしかやったこと無いんじゃないのかな
例外だのRAIIだのGCだの知らない人に見える
0615デフォルトの名無しさん2015/03/01(日) 02:17:43.55ID:68G9IfEz
>>613
>>606は俺じゃねーよ。何勝手に勘違いしてんだよ
0616デフォルトの名無しさん2015/03/01(日) 02:33:00.57ID:eo22pC4p
>>615
勘違いしていた。失礼した。
しかし言葉の上とは言え、メンバ変数に入れておけばどのメンバ関数で扱っても同じ階層と見なすという主張は乱暴に過ぎる。
強いて言えば、階層というより同じインスタンスで扱うといったところかな。
0617デフォルトの名無しさん2015/03/01(日) 02:47:49.01ID:68G9IfEz
>>616
同じインスタンスって継承とかしてたらおかしくならないか
基底クラスが確保したものを派生クラスが解放するのはおかしい
そういう意味で階層の方が適切だと思う
0618デフォルトの名無しさん2015/03/01(日) 02:54:47.52ID:ciqMShcX
>>616
スコープの寿命ってだけの話?
0619デフォルトの名無しさん2015/03/01(日) 02:58:15.99ID:46tsY+o2
>>617
確かにそうだが。
もともとが関数の呼び出し階層のことを言っていたからな。
言わんとしていることは分かるが、正直 適当な言葉が見つからない。
0620デフォルトの名無しさん2015/03/01(日) 03:55:28.27ID:KGIv2ag3
結論としては
メモリの確保と解放を、同じ関数呼び出し階層で行なうことに意味はない。
解放は1ヶ所(デストラクタ)で行ない、確保した階層に拘るべきではない。
ということでよろしいか?
0621デフォルトの名無しさん2015/03/01(日) 04:33:03.03ID:LYwpGVQL
スレチ
0622デフォルトの名無しさん2015/03/01(日) 05:43:06.37ID:pTcVnBAb
同クラスのメンバ関数で起こった確保を同クラスのメンバ関数で解放することを
同じ階層と呼ぶことに特に違和感はなかったけど、メンバ関数が階層構造になるってどういう意味?
はぁ〜Win32API、いいじゃない
0623デフォルトの名無しさん2015/03/01(日) 08:11:52.06ID:xHJpp+wq
>>617
なんで1確保1解放になる前提なんだ?
確保
→解放⇔確保
→確保されてたら解放
ってのもありえるだろう
0624デフォルトの名無しさん2015/03/01(日) 09:05:05.83ID:6ijce9uo
スレチ+1
0625デフォルトの名無しさん2015/03/01(日) 09:32:27.00ID:Z2A424Jm
>>622
C++は関数型言語ではないため、関数そのものを第一級オブジェクトとしては扱えない。
厳密な意味での関数の階層構造、いわゆる高階関数はあり得ない。
まあこの場合は、単純に呼び出し階層のことを階層構造と言っているんだと思う。
0626デフォルトの名無しさん2015/03/01(日) 09:39:40.78ID:nomKHzfb
>>625
C++11(C++0x)からはラムダ式をサポートしているから高階関数も記述できる。
0627デフォルトの名無しさん2015/03/01(日) 18:26:41.59ID:3UdH+o3p
スレチ++;
if (スレチ > 1) exit(0);
0628デフォルトの名無しさん2015/03/01(日) 18:48:36.09ID:LYwpGVQL
unsigned int スレチ = 0;
if (--スレチ < 0) exit(0);
0629デフォルトの名無しさん2015/03/02(月) 20:37:41.90ID:AZdlh9F+
2ちゃん終わるってね、さようなら
0630デフォルトの名無しさん2015/03/02(月) 21:09:54.74ID:/ZttR8id
やっとできそうだぞ
http://gigazine.net/news/20150302-ikea-qi-wireless-charging-furnishing/

19 :デフォルトの名無しさん:2012/09/05(水) 17:16:26.07
当然のことだけどプロバイダ契約とシンクライアントの契約は同時に行うことになる。
通信環境も劇的に向上するから、無線のインターネットでも論理値10Gbps、実測値8Gbps程度になる。
そしてすべての家庭からモデムやルーターが消える。
さらに多くの一般家電製品ががインターネットに直線接続するようになる。
今スマートホンで操作できる炊飯器やオーブンレンジがあるが、あれはスマートホンを炊飯器などにかざす必要がある。
しかし2014年にはそれらがインターネットに直線接続されるため、スマートホンをかざさなくても操作が可能になる。

グラフィックも大幅に改良され、タブレット端末でありながらリフレッシュレートが400Hz近くになる。
内臓GPUも高性能でかなり重い3Dゲームでも200fps程度で普通に動く。
電力消費も心配する必要はない。
現在のスマートホンなどに利用されている非接触型の充電設備が至るところに作られる。
飲食店やホテルや旅館の机、電車やバスの車内の壁、駅のロッカー内、トイレの鏡の前にある荷物を置くスペースなど、
ありとあらゆるところが非接触型充電器となる。
そんなコストのかかる話を多くのところが導入するはずかないとおもかもしれないが、それは間違いだ。
非接触型充電の可能なテーブル等は意識しないほど当たり前の存在となる、今で言えば照明設備のようなものだ。
照明設備のない飲食店やホテルを見たことがあるだろうか?日本中探せばないことはないだろうがかなり珍しいレベルだし、
照明がある店を見ても気にならない。
気にならないというよりむしろ意識に入ってこないほど当たり前の状況だ。
2013年後半にはそのレベルで非接触型充電設備がいたるところに導入される。
当然家庭のテーブルやベッドも、非接触型充電機能のついたものが今とほとんど変わらない値段で売られるようになる。

そんな時代がもう目の前なんだよ。
0631デフォルトの名無しさん2015/03/03(火) 00:22:00.50ID:CY26UHsq
そうか
あと10年か
0632片山博文MZ ◆T6xkBnTXz7B0 2015/03/04(水) 12:32:41.43ID:wAAd8cV7
サニタイズ完了。
https://github.com/katahiromz/DoWonders
0633デフォルトの名無しさん2015/03/04(水) 13:07:36.31ID:tgLNzxz5
VariantInit(&x)した変数xは、使い終わったら必ず
VariantClear(&x)する必要ありますか?
0634デフォルトの名無しさん2015/03/04(水) 13:16:28.70ID:4pfVor2U
Initしただけなら要らないし、整数とかの値型でも要らない。
ただ普通はVARIANTをラップしたクラスを使うのではないか。
0635デフォルトの名無しさん2015/03/04(水) 13:25:32.16ID:tgLNzxz5
>>634
レスありがとうございまし。
>VARIANTをラップしたクラス
CComVariantというやつでしょうか?
使っていません。もう一つ質問なのですが、BSTRを
SysAllocStringでxに入れた場合、解放はSysFreeStringでもVariantClearでも
どっちでもいいんですよね?
0636デフォルトの名無しさん2015/03/04(水) 14:32:25.29ID:4pfVor2U
>>635
どっちでも一緒だが、VARIANTに入れたならVariantClearが自然だと思うが。

あと、使っていません、じゃなくて、使うべきだということだ。
まぁ、pure-Cで書きたいならリークしないようがんばれ。
0637デフォルトの名無しさん2015/03/04(水) 16:35:21.60ID:CGrRsA9r
サブクラス化するときにわざわざCallWindowProcを使う理由って何ですか?
そのままWndProcを呼び出せばいいような気がしますが
0638デフォルトの名無しさん2015/03/04(水) 16:40:26.58ID:1ms42xKS
他の誰かがフックしてたら?
0639デフォルトの名無しさん2015/03/04(水) 16:47:31.58ID:kF2z/wHc
他の誰かがフックしてたらどうすんだって聞いてんだよ!!
0640デフォルトの名無しさん2015/03/04(水) 17:15:40.48ID:CGrRsA9r
すみません。チェインを繋ぐときにCallWindowProcの第一引数に元々あった関数ポインタを指定しますが、
それと同じものをCallWindowProcを使わずに手動で呼び出したらどういう不都合があるのかという意味です
0641デフォルトの名無しさん2015/03/04(水) 17:31:14.35ID:m8Ib0gvC
どっかにWin32APIの関数と引数と定数をCSV形式にまとめたものない?
ないなら自作するから別にいいんだけど
0642片山博文MZ ◆T6xkBnTXz7B0 2015/03/04(水) 17:37:25.07ID:+D050Nsw
>>641
TSVなら>>632のリンクをたどればあるよ
0643デフォルトの名無しさん2015/03/04(水) 19:48:53.75ID:4pfVor2U
>>640
まずは先にMSDNに当たろう。
> Windows NT/2000:CallWindowProc 関数は、Unicode から ANSI への変換を行います。ウィンドウプロシージャを直接呼び出した場合は、このような変換は行われません。
A系とW系が混ざったときに意味がある。
ただ、いまや全てがNT系になっているから、おそらく何もしていないとは思う。
0644デフォルトの名無しさん2015/03/04(水) 20:14:41.63ID:CGrRsA9r
>>643
ごめんなさい。見落としていたみたいです
あまり混ざる状況が想像できませんね
0645デフォルトの名無しさん2015/03/04(水) 22:44:03.39ID:+D050Nsw
printf("DoWonders、これは事件だ!\n");
0646デフォルトの名無しさん2015/03/04(水) 23:03:00.23ID:FBGUNvyY
最後改行するならputsじゃあかんの?
0647デフォルトの名無しさん2015/03/05(木) 09:58:20.60ID:3wyFIaYr
DLL(自作)
EXE(他作,ソース変更できない。 DLL使う)
の場合にEXEを複数起動したとして、DLL間で構造体を一個共有したいのですが、
どんな方法がお勧めですか?キーワード教えて下さい。
0648デフォルトの名無しさん2015/03/05(木) 10:50:26.88ID:OANpNxqp
CreateFileMapping
0649デフォルトの名無しさん2015/03/05(木) 11:11:26.47ID:3wyFIaYr
>>648
レスありがとうございます。
質問した後ぐぐって調べて
CreateFileMapping
CreateNamedPipe
などを使えば出来るのかなと思ったのですが、どっち使ってもできますか?
0650デフォルトの名無しさん2015/03/05(木) 11:31:51.71ID:GDG3LDPk
1から10まで聞くつもりか
0651デフォルトの名無しさん2015/03/05(木) 11:38:06.57ID:3wyFIaYr
>>650
教えてください
0652片山博文MZ ◆T6xkBnTXz7B0 2015/03/05(木) 11:55:31.35ID:rUbEobY5
CreateFileMapping は共有メモリー作成に使える。
CreateNamedPipe は、他のプロセスとの通信に使える。
0653デフォルトの名無しさん2015/03/05(木) 12:00:11.48ID:NOA7K+lC
#pragma data_seg("hogehoge")
https://msdn.microsoft.com/ja-jp/library/h90dkhs0%28v=vs.90%29.aspx
0654デフォルトの名無しさん2015/03/05(木) 12:03:17.13ID:3wyFIaYr
>>652
解説ありがとうございました。少し分ってきました。今回はCreateFileMapping
を使うのが良さそうな気がしますのでそれで試してみます。
もしCreateNamedPipeを使ってDLL同志でプロセス間通信をした場合、EXEの動き
と関係なく勝手に通信してもEXEの動きがおかしくなるとか、そういうことは
ありませんか?
0655デフォルトの名無しさん2015/03/05(木) 12:48:19.42ID:6vcov9qd
>>654
パイプ内のデータ量に注意が要るだろう。 空なら読み側がブロックされるし、一杯なら書き側が。
メモリマップの場合は排他処理が要るだろう。 マップしたデータの更新中に読み取ろうとするとおかしくなることも。
0656デフォルトの名無しさん2015/03/05(木) 15:28:53.17ID:FqBn4bE2
具体的にやりたいことが分からんけどDLLDLLと連呼するからにはシェルとの親和性は考えてないんでしょ
パイプにするメリットはないでしょ
0657デフォルトの名無しさん2015/03/05(木) 16:40:12.83ID:3wyFIaYr
みなさん有難うございました。
CreateFileMappingでどうにか出来ました。(たぶん)
排他制御はしていません。
>>653さんの
#pragma data_seg("hogehoge")
の方法は、ビルドは出来たのですが実行するとEXEが異常終了しましたが
何が悪いのか良く分らなかったです。
0658デフォルトの名無しさん2015/03/05(木) 16:50:32.22ID:wT1PXWMM
頭が悪い
06596412015/03/05(木) 18:09:03.90ID:gcFJJov5
1件もレスが来ないということは恐らくないんだろうな
しゃーない、スクリプト書いてmsdnから生成するか
0660デフォルトの名無しさん2015/03/05(木) 18:31:10.65ID:a7rJlVmw
>>659
そういうアピールいらないから
0661デフォルトの名無しさん2015/03/05(木) 18:31:37.01ID:lwDUotw+
真面目にレスしそうになったじゃん
やめろよそういうの
0662デフォルトの名無しさん2015/03/06(金) 00:40:32.17ID:ci1Iacgw
DialogBoxWで作ったダイアログにPictureControlを一個貼り付けて
32x32 24bitのアイコンを貼り付けると、周囲がギザギザになるんです。
アイコンの絵柄は円形です。その円の縁がギザギザになります。
どうすればスムーズに描けますか?Win7です。
0663デフォルトの名無しさん2015/03/06(金) 01:47:07.71ID:JmsQNHVX
クリップボード系関数ってめんどくさい構造してんな〜
0664デフォルトの名無しさん2015/03/06(金) 01:48:28.33ID:dcg9agNJ
VB臭がする
0665デフォルトの名無しさん2015/03/06(金) 02:05:43.30ID:TPaNSGwi
PictureControlの色とギザギザの色を近くしてごまかす
0666デフォルトの名無しさん2015/03/06(金) 15:27:26.95ID:/f5vJIs8
>>660
意味不明
アピールって何?
お前の意味不明なレスは迷惑だから書き込まないほうがいいよ
0667デフォルトの名無しさん2015/03/06(金) 15:34:04.06ID:7hSPkkPD
ダイアログはドットとピクセルが 1:1 じゃないんだっけ
0668デフォルトの名無しさん2015/03/06(金) 16:40:13.01ID:TPaNSGwi
>>666
>>659がアピールじゃないというなら無駄な独り言と言う事になるが
0669デフォルトの名無しさん2015/03/06(金) 18:09:00.40ID:/f5vJIs8
>>668
2ch自己解決してるレス全てに言ってこいよ
言ってこなければお前は煽りたいだけのただの荒らしということになるが
0670デフォルトの名無しさん2015/03/06(金) 18:26:56.10ID:JmsQNHVX
反省しないタイプかよ
0671デフォルトの名無しさん2015/03/06(金) 20:50:27.44ID:oEtb/vlp
>>669
ほんとに分かってないんだなwww
ヒント >>642
0672デフォルトの名無しさん2015/03/06(金) 21:18:15.26ID:Utx2vhNJ
片山うぜー
0673デフォルトの名無しさん2015/03/06(金) 21:50:32.27ID:LSRPy5GR
片山をNGにしてる可能性
0674デフォルトの名無しさん2015/03/06(金) 22:13:38.35ID:oEtb/vlp
クソコテNGアピールかと思ったら天然だった
0675デフォルトの名無しさん2015/03/06(金) 22:39:00.57ID:TPaNSGwi
>>669
論点ずらして口調真似るしか思いつかなかったんかな
0676デフォルトの名無しさん2015/03/07(土) 15:54:02.79ID:axQ1bDXB
サブクラス化というのを勉強中で、他のウインドウの
ウィンドウプロシージャを取得したいのですが、調べたら
(1) GetWindowLongPtr
(2) GetClassLongPtr
で取得出来そうですが、あるいは、
(3) SetWindowLongPtr
でも変更前のウィンドウプロシージャのアドレスが戻り値で得られるようですが、
結局どれを使えばいいのでしょうか?
試したところ取得した値は(1)!=(2)==(3)でした。
なぜ(1)は値が違うのでしょうか?それにも関らず、どのアドレスを使ってもサブクラス化の実験
はうまく行きました。ますます分りません。初心者に簡単に解説お願いします。
0677デフォルトの名無しさん2015/03/07(土) 15:55:36.36ID:axQ1bDXB
訂正

誤 (1)!=(2)==(3)でした。
正 (1)==(2)!=(3)でした
0678デフォルトの名無しさん2015/03/07(土) 15:56:43.99ID:axQ1bDXB
訂正
(1)==(3)!=(2) でした。
たびたび間違ってすみません。
0679デフォルトの名無しさん2015/03/07(土) 16:19:19.89ID:Dpuz2Uog
とりあえず普通の用途ではWindowLongPtrの方を使う
ウィンドウはハンドルごとに動的にプロシージャを書き換えられるけど、
ウィンドウクラスごとの既定のプロシージャの読み書きをするのがClass系だと思う
推測が正しければ、buttonクラスをCreateしたあとにSetClassLongPtrしても既存のボタンは無変化
0680デフォルトの名無しさん2015/03/07(土) 17:45:03.56ID:Rnf8iriw
動的サブクラス化はSetWindowSubclassの一択。 他はもう忘れろ。
0681デフォルトの名無しさん2015/03/07(土) 18:44:01.73ID:Dpuz2Uog
ああ、その通りだな。SetWindowSubclassを使ってくれ
0682デフォルトの名無しさん2015/03/07(土) 18:46:41.97ID:nqIUQWMv
目的が果たせりゃ手段なんてどうでも良いんだよ
0683デフォルトの名無しさん2015/03/07(土) 19:17:49.24ID:axQ1bDXB
>>679>>680>>681>>682
レスありがとうございます。SetWindowSubclassも試してみましたところ上手く行きました。
いろいろ試しているうちに分らなくなって来たのですが、サブクラス化してMyWndProc()に置き換えたとして、
関数の末尾で
return CallWindowProc(DefWindowProc, hWnd, msg, wp, lp); //(1) SetWindowLongPtrの場合
return DefSubclassProc(hWnd, uMsg, wParam, lParam); //(2) SetWindowSubclassの場合
などどしますよね。
例えば(1)の場合に、DefWindowProcを呼び出していますが、この関数の代わりに、予め
auto WndProcOrg = GetWindowLongPtr(hWnd, GWLP_WNDPROC);
で取得しておいた関数を
return CallWindowProc(WndProcOrg , hWnd, msg, wp, lp); //(3)
としても同じ動きをします。
MyWndProc()の末尾で呼び出すべき関数はDefWindowProcかWndProcOrgのどちらが良いのでしょうか?
SetWindowSubclassの方法でやる場合も同じ疑問があります。良く分りません。
0684デフォルトの名無しさん2015/03/07(土) 19:47:22.98ID:Dpuz2Uog
サブクラス化が二重に起こる可能性があるならDefじゃない方
0685デフォルトの名無しさん2015/03/07(土) 19:50:34.61ID:Dpuz2Uog
そのWndProcがサブクラスになりうる(最下層でなくなる)場合と言った方が適切かな
0686デフォルトの名無しさん2015/03/07(土) 19:57:24.30ID:X8MnyI4n
autoとか久々に見た気がする
0687デフォルトの名無しさん2015/03/07(土) 20:00:36.83ID:Dpuz2Uog
度々連レスしてすまんがSetWindowSubclassはDefSubclassProcとセットでこれで全部解決する
俺が言ったのはそれ以外の関数によるサブクラス化の話な
0688デフォルトの名無しさん2015/03/07(土) 21:13:31.10ID:6R+vjf4I
>>686
そのautoは、もう昔のautoじゃないんだぜ。
0689デフォルトの名無しさん2015/03/07(土) 21:18:02.58ID:axQ1bDXB
>>687
たびたびレスありがとうございます。
結論としては、SetWindowSubclassとDefSubclassProcの組み合わせ
使っておけばどんな場合でもこれでサブクラス化が出来るという
理解で良いですか?>>680さんの言うようにSetWindowLongPtrなど
は一切忘れて良いという理解で。
0690デフォルトの名無しさん2015/03/07(土) 21:19:05.80ID:Dpuz2Uog
OK
0691デフォルトの名無しさん2015/03/07(土) 21:20:25.52ID:udrejifJ
型推測のautoもあんま見ないな
メリットがよくわからん
0692デフォルトの名無しさん2015/03/07(土) 21:23:18.10ID:Dpuz2Uog
しかし、SetWindowSubclassのサポートはXP以降だから「どんな場合でも」ではないな
まぁそこまでの前方互換性は切ることを勧めるけど
0693デフォルトの名無しさん2015/03/07(土) 21:36:32.00ID:HLCui/DQ
「上位互換」と「下位互換」ですらどっちがどっちか分からなくなるのに「前方互換」とかあるのかよ
もう嫌だ
0694デフォルトの名無しさん2015/03/07(土) 22:22:04.19ID:k/mf99aT
後方互換と上位互換は簡単だ

後方互換は、時系列で新しく出た製品が、古い製品の機能をカバーしていること
上位互換は、上位の製品が下位の製品の機能をカバーしていること

問題は前方互換と下位互換

前方互換は、多くの説明を見る限り、
新しく出たデータフォーマットなどが古いシステムでも読み込めるなどの場合だな。
これは例えば、既存の古いフォーマットに新しいオプションをつけたフォーマットなどが相当するかと。→ビットマップ構造体など。
旧システムは古いフォーマット部分だけを読み込むので追加されたフォーマット部分の機能は使えないが限定的に読み込むことは可能。
新しい製品が古いデータフォーマットで保存することが出来る、なんてのも前方互換らしいけど。

古い製品で保存→新しい製品で開く ==> 後方互換
新しい製品で保存→古い製品で開く ==> 前方互換

下位互換も前方互換とほぼほぼ似たようなものだろう。

ライト版で保存→プロ版で開く ==> 上位互換
プロ版で保存→ライト版で開く ==> 下位互換

ただし前方・下位互換は一部機能が制限されている場合もあるということだ。
0695デフォルトの名無しさん2015/03/07(土) 22:47:27.43ID:k/mf99aT
ソフトウェアとOSの関係。
あるソフトウェアがあるOSをターゲットに作られた場合、

古いOSで新しいソフトウェアを動かせる。
新しいOSのAPIを利用して作られている。
既存の(古くからある)API部分は動くが、新規に追加されたAP部分は利用できない。
==> 前方互換

新しいOSで古いソフトウェアが動く。
これは新しいOSのAPIが古いOSのAPIと同じ動きをすること。
もしくは新しいOSとしては不要だが、廃止せずに残していること。
古いAPIで廃止されたものがあると動かない。
MSは互換性維持のため、古いAPIを残している場合がある。
==> 後方互換

>>692は新しいOS(XP以降)のAPIを利用して作ることで
古いOSで動かなくなるということになり前方互換性が無くなる、ということだ。
0696デフォルトの名無しさん2015/03/07(土) 22:51:32.27ID:ydBH9dlO
互換互換って未来永劫同じコードを使いまわしたいってことかよ
0697デフォルトの名無しさん2015/03/07(土) 22:53:55.38ID:zjzHBwlq
win32api 自体が‥winFX はどうなった?
0698デフォルトの名無しさん2015/03/07(土) 23:07:46.17ID:k/mf99aT
>>696
ユーザ的にはそのほうが楽。

けど。
新しいOSが出ても古いソフトウェアを使い続けられると困ります。
新しいソフトウェアが出ても古いOSを使い続けられると困ります。

MSはサポートの終了という形で新しいOSを売り込める。
ソフト屋さんは新しいOS対応という形で新しいソフトを売り込める。
Win-Winやね、Windowsだけにw
0699デフォルトの名無しさん2015/03/07(土) 23:18:41.42ID:beSd+1t5
>>571
ありがとうございます。
教えてもらった方法も検討してみます。
0700デフォルトの名無しさん2015/03/07(土) 23:33:39.49ID:axQ1bDXB
その後、またいろいろ試していて、
>>684
>サブクラス化が二重に起こる可能性があるならDefじゃない方
に関して疑問なのですが、これは
SetWindowLongPtrの方式でサブクラス化すると、
MyWndProc->DefWindowProc
のように呼び出すようになりますよね。
それをさらにMyWndProc2でサブクラス化すると、やり方によって、以下の二通りの場合が起こると
いうことでしょうか?
MyWndProc2->DefWindowProc (1) GetWindowLongPtrを使わない場合
MyWndProc2->MyWndProc->DefWindowProc (2) GetWindowLongPtrでやる場合
という理解で良いでしょうか?もしそうなら、同じ事を
SetWindowSubclass & DefSubclassProcの方式でやると、この(1)(2)のどっちになるのでしょうか?
0701デフォルトの名無しさん2015/03/08(日) 01:07:37.32ID:r6bOUE6y
そもそもサブクラス化に複数のやり方があるってより、SetWindowLongPtrが古くて穴があって非推奨。
それを解決したのがSetWindowSubclass。という話。
これ以上のテストは必要か?
0702デフォルトの名無しさん2015/03/08(日) 07:55:31.45ID:tlWR3Gzm
>>700
もちろん(2)。そうでないと全部解決なんて言わない

>You do not need to call the default window procedure; this function calls it automatically.
0703デフォルトの名無しさん2015/03/08(日) 09:25:09.97ID:Zdg2LulN
他ウィンドウのサブクラス化のみならず、
thisをHWNDに結びつけるためだけにSetWindowSubclassを使ってもいい。
これを使うだけでGWLP_USERDATAもATL::CWindowもいらない。
0704デフォルトの名無しさん2015/03/08(日) 15:26:44.09ID:UaA2rqzA
CComPtr<IStream> strm = SHCreateMemStream(buf, length);
これで参照カウント2になってスコープ抜けても解放されないのって罠すぎじゃない?
0705デフォルトの名無しさん2015/03/08(日) 16:51:33.89ID:Zdg2LulN
>>704
SHCreateMemStreamは明らかにMSが公開する気がなかったAPIだからしゃーない。
普通ならHRESULTとIStream**で返すはずだしな。
おとなしくAttachしとけ。
0706デフォルトの名無しさん2015/03/08(日) 21:06:15.16ID:rbSb1MSq
サブクラス化でまだ悪戦苦闘しているのですが、
RemoveWindowSubclassをする場合は、
http://eternalwindows.jp/control/controlbase/controlbase06.html
の例を参考に
case WM_DESTROY:
RemoveWindowSubclass(hWnd, SubclassProc, 1);
PostQuitMessage(0);
return 0;
としたのですが、Debugモードでステップ実行したらPostQuitMessageしたあたりで例外が出てしまいます。
ステップではなくて普通に実行したら問題なく終わります。このサンプルの方法は良くないのでしょうか?
EternalWindowsさんのHPは情報が多くていつも頼りにしているのですが。
0707デフォルトの名無しさん2015/03/08(日) 21:19:59.45ID:YRhnmZWz
>>706
WM_CLOSEのタイミングでRemoveWindowSubclassやってみて
0708デフォルトの名無しさん2015/03/08(日) 23:27:42.75ID:r6bOUE6y
え?WM_NCDESTROYじゃないの?
0709デフォルトの名無しさん2015/03/08(日) 23:31:49.82ID:tlWR3Gzm
WM_CREATEのタイミングでShowWindowとか色々やろうとして失敗するのは誰もが通る道だよな
0710デフォルトの名無しさん2015/03/09(月) 07:37:08.04ID:ewisVoGf
そもそもこれから破棄されるのにわざわざサブクラス解除する必要はあるのかね?
解除後も生存するならともかく、作法としてはいきすぎな気がする。
0711デフォルトの名無しさん2015/03/09(月) 08:11:50.25ID:d8cjeDnQ
そもそもこれからプログラム終了するのにわざわざメモリ解放する必要はあるのかね?
0712デフォルトの名無しさん2015/03/09(月) 08:28:20.19ID:CRFMLrc+
Windowsのメモリ管理はザルだからアプリでちゃんと解放しといた方が安心
0713デフォルトの名無しさん2015/03/09(月) 12:15:56.71ID:NnzyOe/j
w8.1 の OS レベルのメモリリークは本当にひどい
なんなのこれ
07145602015/03/09(月) 12:52:48.05ID:R+XoG9o+
>>713
具体的に書いてみ
0715デフォルトの名無しさん2015/03/09(月) 13:36:07.10ID:NnzyOe/j
開いてるウィンドウのメニューのプルダウンが全部出て来なくなった
タスクバーで右クリックしても何も出て来なくなった
しばらくしたらタスクバーが消えたので
エクスプローラー全部(シェルになってる分も)再起動したけど
結局右クリックするとまた何も出なくてしばらくするとタスクバーが消える
0716デフォルトの名無しさん2015/03/09(月) 13:53:55.84ID:JefS5wtF
512MBのメモリでVistaを動かしてたときはよくコンテキストメニューが表示されなくなったわ
0717デフォルトの名無しさん2015/03/09(月) 14:37:13.92ID:NnzyOe/j
もれも 8GB の w8.1 で目にするとは思わんかった
0718デフォルトの名無しさん2015/03/09(月) 16:45:43.84ID:rihTBotw
>>709
PostMessageでWM_USERにぶん投げたらどうかな?
こんなのだけど有りかな?
case WM_CREATE:
PostMessage(hWnd,WM_USER,0,0);
break;
case WM_USER:
ShowWindow(hWnd,TRUE);
break;
0719デフォルトの名無しさん2015/03/09(月) 19:18:14.64ID:JefS5wtF
>>718
switch文で完結する野暮用ならそれも有りだな
0720デフォルトの名無しさん2015/03/10(火) 00:42:10.77ID:DI4sqVG3
タスクバンド関連の基礎で質問。

http://eternalwindows.jp/shell/shellex/code/shellex13.html
のページでは、タスクバンドに文字列を出すという例があるのだけれども、
文字列ではなく、画像を出したいのだけれども、
どうもどうやっても上手くいかない。

case WM_PAINT:
の中や、WM_CREATE, WM_DESTROY等を加えて、
「通常のフォーム系のウィンドウ」と同じような記述をしても、
全く描画がされないのだけれども、なぜでしょう。
デスクバンドならでわの何か制限があります?

こうすれば画像が出るよ! という例があればありがたいです。
画像ボタンでもOKです。
0721デフォルトの名無しさん2015/03/10(火) 07:33:50.59ID:AEOJo20z
>>710
http://blogs.msdn.com/b/oldnewthing/archive/2003/11/11/55653.aspx
> you must remove your window subclass before the window being subclassed is destroyed.
0722デフォルトの名無しさん2015/03/10(火) 22:16:22.19ID:NHsqpG/8
ちょっと教えてください。

DrawTextでテキストを描画するんですが、
ピッタリ収まる領域の高さ、というか
行数を事前に知る方法はありますか?
07237222015/03/11(水) 00:10:01.29ID:1/cfAzG2
ちゃんと読んでませんでした。
DT_CALCRECTですね。
0724デフォルトの名無しさん2015/03/11(水) 04:18:31.79ID:1djAj2bo
DT軽くレクチャー
0725デフォルトの名無しさん2015/03/11(水) 08:20:38.38ID:xaw482vH
山田君、 ID:1djAj2boの家の座布団全部持って行きなさい
0726デフォルトの名無しさん2015/03/11(水) 13:11:39.34ID:9dJwmqGq
ボタンをクリックしてもそのウィンドウがアクティブにならないようにしたくて、
サブクラス化してWM_MOUSEACTIVEの戻り値をMA_NOACTIVATEに指定してみたんですが変わりありませんでした
ボタンの配置されているウィンドウでも同じことをしていますがこっちは上手くいきました
たぶん望みの挙動は.NETでいうところのControlStyles.Selectable==falseだと思うのですが、
Win32APIではどのように実装するんですか?
0727デフォルトの名無しさん2015/03/11(水) 14:01:09.26ID:XNQDoSm9
ワシが仮想キーボード作ったときは、WM_MOUSEACTIVEでMA_NOACTIVATEANDEATを返したが。
0728デフォルトの名無しさん2015/03/11(水) 14:13:30.36ID:9dJwmqGq
>>727
MA_NOACTIVATEANDEATも試したんですが、アクティブにはならないもののプッシュもできなくなるんですよね
マウスホバーのアニメーション以外は何も起こらない感じです
0729デフォルトの名無しさん2015/03/11(水) 14:30:44.32ID:XNQDoSm9
ああ、そうだよ。
WM_MOUSEACTIVEではWindowFromPointで実際にどのボタンが押されたのかを調べ、
ボタンを凹ませる処理から自分でする。
リピートとか全て自分で実装。
0730デフォルトの名無しさん2015/03/11(水) 14:40:21.75ID:9dJwmqGq
>>729
なるほど、そこからやればいいんですね
BM_SETSTATEで凹凸が表現できました。これならできそうです
ありがとうございました
0731デフォルトの名無しさん2015/03/11(水) 17:38:18.33ID:1/cfAzG2
APIのMouse Wheelイベントを捕らえて
ゆっくり回したときはヌルヌル、
速く回したときはサクッとスクロールして
惰性でさらにスクロールする
スマホアプリみたいな挙動を実現できます?

そもそもDeltaって何?
0732デフォルトの名無しさん2015/03/11(水) 17:43:25.19ID:8MeoENMQ
OK
0733デフォルトの名無しさん2015/03/11(水) 18:50:40.12ID:B0uxeYZf
そういう風なコードを書いてあげればそういう風になる。
0734デフォルトの名無しさん2015/03/11(水) 19:31:02.76ID:GG+mbF6g
>>731
できようができまいがお前には関係ないだろ

馬鹿にはどのみち無理
0735デフォルトの名無しさん2015/03/11(水) 19:34:10.40ID:GG+mbF6g
>>731みたいなゴミカスが実装したところで
今度は滑らかにスクロールしないと言い出して
ここでまたゴミみたいな質問を投下するのは目に見えてる
迷惑
できないと言っておくのがゴミの>>731にとっても回答者にとって幸せ
0736片山博文MZ ◆T6xkBnTXz7B0 2015/03/11(水) 19:54:17.43ID:cFDo18bs
WM_MOUSEWHEELで出来る。
deltaは差分(difference)を表すギリシャ文字。
0737デフォルトの名無しさん2015/03/11(水) 20:34:11.90ID:1/cfAzG2
>>736
ありがとう。

調べたところ、hParamをWHEEL_DELTA(120)で割ると
回転速度が分かるという記述もあったんですが、
試した結果、本当にそうかなと思ったもんで...

実は先週末から思い立って自分専用の2chブラウザを作ってて
(datではなく)htmlからの読み込みや投稿の部分の実装は終わったんですが
再整形したhtmlをWebBrowserで表示してたものの、これがメモリ喰いで
自前の描画エンジンを作ろうとしてるところです
0738片山博文MZ ◆T6xkBnTXz7B0 2015/03/11(水) 20:39:10.04ID:cFDo18bs
>>737
「Win32 自作コントロール」で検索。
APIを使わない2ちゃんねるスクレイピングは
違法になったのでは?
0739デフォルトの名無しさん2015/03/11(水) 20:42:43.01ID:blS4wY8n
>>738
違法ではない、勝手にやるぶんには問題ない
0740デフォルトの名無しさん2015/03/12(木) 05:57:38.32ID:9mlNKBOn
>>734-735はID非表示時の荒らしなんだろうなぁ
0741デフォルトの名無しさん2015/03/12(木) 07:35:52.11ID:PaCDKRwU
そして君はIDが表示されていてもされていなくてもゴミ未満ですね
0742デフォルトの名無しさん2015/03/12(木) 08:26:27.18ID:9mlNKBOn
>>741
支離滅裂
0743デフォルトの名無しさん2015/03/12(木) 08:33:23.97ID:PaCDKRwU
と思いたいのですね:-)
どーぞどーぞ
0744デフォルトの名無しさん2015/03/12(木) 08:42:16.65ID:5UC56zdP
>>741
>>743
0745デフォルトの名無しさん2015/03/12(木) 09:18:46.75ID:9mlNKBOn
>>743
あ、はい
0746デフォルトの名無しさん2015/03/12(木) 10:43:29.82ID:2mqKs9WG
ID導入で鎮静化
↓
API導入で専ブラリストラ&移転騒ぎ
↓
人減り過ぎ
↓
運営あわててBBq規制ゆるめる
↓
IP変えてIDもいつでも変えられる人増える
↓
元の木阿弥 ←いまココ
0747デフォルトの名無しさん2015/03/12(木) 16:39:36.35ID:Qs/VVwER
>>739 ← わざと嘘吐いてるやつにマジレスとか痛すぎ

片山が初心者に嘘を教えてるのはいつものこと
0748デフォルトの名無しさん2015/03/13(金) 01:28:38.03ID:fI59J60B
>>746
そもそも真剣に困ってる人は2chなんか来ないからどうでもいいと思う。
2chに来るのはどうでもいいネタを投下して暇潰しするような人ばかりだし。
0749デフォルトの名無しさん2015/03/13(金) 01:40:38.88ID:VBJF/bRa
>>746
暇つぶし乙
0750デフォルトの名無しさん2015/03/13(金) 16:32:28.76ID:UNvN9Dk7
全板ID共通になってないか?
0751デフォルトの名無しさん2015/03/13(金) 18:17:18.02ID:1q07XjK3
鯖が違えば変わる?
0752デフォルトの名無しさん2015/03/14(土) 00:43:11.63ID:QK+3jeRh
CreateWindowでWS_POPUPで作った場合、
ウインドウの移動機能の SendMessage(hWnd,WM_SYSCOMMAND,SC_MOVE,0);
が動かないんだけどなにかいい方法ある?
0753デフォルトの名無しさん2015/03/14(土) 00:56:11.85ID:Zay2tm1W
よくわからんが、MoveWindowじゃダメなん?
0754デフォルトの名無しさん2015/03/14(土) 01:02:00.14ID:QK+3jeRh
自己解決しました。
PostMessage(hWnd, WM_NCLBUTTONDOWN, (WPARAM)HTCAPTION, MAKEWPARAM(x,y));
でよかったっぽい。
0755デフォルトの名無しさん2015/03/14(土) 01:04:24.91ID:Zay2tm1W
あーそういうことがしたいのか。
それならこんな方法もあるよ。
http://win32lab.com/tips/tips17.html
どっちがいいのかねぇ。
0756デフォルトの名無しさん2015/03/16(月) 10:29:19.04ID:r187UUhH
>>713->>715
【IT】「Windows Update」でエクスプローラーが強制終了する不具合発生(c)2ch.net
http://daily.2ch.net/test/read.cgi/newsplus/1426290441/
【定期】今月のWindows Updateでexplorerやタスクバーに不具合が出る人が続出 [転載禁止](c)2ch.net [205643787]
http://fox.2ch.net/test/read.cgi/poverty/1426147114/
0757デフォルトの名無しさん2015/03/16(月) 10:48:00.03ID:q7gtYoDb
http://peace.2ch.net/test/read.cgi/win/1415946468/
477 名無し~3.EXE sage 2015/03/12(木) 13:29:16.23 0nlGc2Z/
今月は該当kbが来てないっぽい?
478 名無し~3.EXE sage 2015/03/13(金) 10:11:34.55 vMUH3k1E
8.1と8の64bitどっちにも来てた
やっぱりどっちもタスクバーがフリーズした
479 **** sage 2015/03/13(金) 21:01:57.29 wdAyGeQ6
最近のアップデート後、プチフリーズが時々起こるようになった。
ログオン時、フリーズしたままになり、しばらくすると、デスクトップに移ったりする現象を確認したし…。
>>478の現象、先ほど起きたのを確認。
しばらくすると復帰したが…。
480 名無し~3.EXE sage 2015/03/14(土) 13:04:35.04 fvAzrqsz
クリーンインストールする方がいいかも
481 名無し~3.EXE sage 2015/03/14(土) 22:06:40.89 J3Ukf0bq
KB3033889が原因らしいよ>プチフリーズ
0758デフォルトの名無しさん2015/03/17(火) 17:12:10.00ID:QJiUV4ub
特定キーの押し下げ状態を取得したいのですがGetAsyncKeyStateが破壊読み取りのため困っています
例えば
bool b0 = GetAsyncKeyState(vKey) < 0;
bool b1 = GetAsyncKeyState(vKey) < 0;
とするとb0 = true, b1 = falseが帰ってきます

b0 = b1 = trueを期待しているのですが、どのAPIを利用すれば非破壊読み取りができるのでしょうか?
0759デフォルトの名無しさん2015/03/17(火) 17:17:25.70ID:07oTgRoY
>>758
GetKeyboardState
0760デフォルトの名無しさん2015/03/17(火) 17:22:36.21ID:QJiUV4ub
>>759
GetKeyboardStateとGetAsyncKeyStateは戻り値の型が違うだけのような解説ばかりだったため
どちらも破壊読み取りだと勘違いしていました
ありがとうございます
0761デフォルトの名無しさん2015/03/20(金) 12:59:49.70ID:WsOA7RrA
WM_MOUSEMOVE でマウスの位置を追跡し、
マウスの通過した位置を記録して、
その付近を反転表示させることで
リストボックスとメニューの中間のようなウインドウを作ろうとしているのですが
うまくいかないです。

具体的には通過位置周囲をInvalidateRectして
次回のOnDrawで色を変えてみたり、
WndProcから直接塗りつぶしてみたり、
いろいろやってますがだめでした。
(残像が残ったり 歯抜けに表示されます)

このような場合の正しいやり方というか、定石ありますか?
0762デフォルトの名無しさん2015/03/20(金) 13:05:38.54ID:9j2TyrxJ
>>761
ListBoxのマウスポインタが通過した所全てを選択状態にするような感じ?
0763デフォルトの名無しさん2015/03/20(金) 13:17:07.76ID:WsOA7RrA
>>761

近いです。
ポップアップメニューに近い動作なんだけど、
ウインドウの枠があってフォーカスが外れても消えず、
ドラッグアンドドロップも受け付けるみたいな感じにしたいです。
0764デフォルトの名無しさん2015/03/20(金) 19:39:44.77ID:eLcGwyCE
> OnDraw すれち
0765デフォルトの名無しさん2015/03/21(土) 02:03:33.74ID:wTPdkcAS
ListBox程度なら自分で実装してもそんなに手間じゃないから、
一から好きなように書いてみては?
細かなユーザビリティーをとことん追求するのであれば、
出来合いのパーツ使わずに自分で思うように書くしかないと思う。
0766デフォルトの名無しさん2015/03/21(土) 05:13:54.32ID:GYXjYklz
Win32とは直接は関係ないのですが、もし分れば教えて下さい。
EXCELでセルに入力してある文字列にフリガナを表示させることが出来ますよね。
そのフリガナをクリックすると編集することもできます。
そういうコントロールをVC++で使いたいのですが、セルの文字列だけなら
RichTextで扱えると思うのですが、フリガナ文字を編集できるような機能も
追加するには、自作するしか方法はないでしょうか?
0767デフォルトの名無しさん2015/03/21(土) 07:47:32.02ID:7+ji4sYH
っていうか、今時winアプリなんて需要あるのか?
ここ2,3年でほとんど触らなくなったな
0768デフォルトの名無しさん2015/03/21(土) 11:02:06.25ID:rA11USYH
>>766
エディットコントロールを重ねる
0769デフォルトの名無しさん2015/03/21(土) 15:05:58.09ID:GYXjYklz
>>768
>エディットコントロールを重ねる
レス有難うございます。
そういう手法で作るのが良さそうですね。
その場合、C#だとUserControlでそういうのを作っておけばFormの上に自由自在に貼り付けて再利用出来ますが、VC++でも似たような手法が有るのかな?少し調べた限りでは無さそうですが。
0770デフォルトの名無しさん2015/03/23(月) 10:22:06.76ID:M3nkBPPX
C++で親ウインドウの上にモーダルダイアログを出した場合、通常ならそのダイアログ
がアクティブ?っていうのか、フォアグラウンドていうのか?になりますよね。
それを、常に親ウインドウがアクティブなまま、ダイアログを出したいのですが、
ヒント教えて下さい。
0771デフォルトの名無しさん2015/03/23(月) 11:48:02.81ID:Xk3bN+xh
それってモーダルではなくてモードレスでは?
0772デフォルトの名無しさん2015/03/23(月) 11:58:07.47ID:M3nkBPPX
>>771
レス有難うございます。
モーダルです。ダイアログ表示中も親ウインドウ操作したいです。
0773デフォルトの名無しさん2015/03/23(月) 12:02:19.29ID:M7S+dk2o
いや、ダイアログ表示中に親ウインドウ操作できるのはモードレスダイアログだろ
0774デフォルトの名無しさん2015/03/23(月) 12:04:55.13ID:M3nkBPPX
>>773
ああそうです。よく混乱します。
モードレスでお願いします。
0775デフォルトの名無しさん2015/03/23(月) 12:09:44.41ID:M7S+dk2o
ダイアログ表示後に親ウインドウにSetFocusじゃ駄目なのか?
0776デフォルトの名無しさん2015/03/23(月) 12:11:42.10ID:M3nkBPPX
>>775
有難うございます。試してみます。
0777デフォルトの名無しさん2015/03/23(月) 16:35:44.24ID:M3nkBPPX
>>775
試してみたのですがダイアログのほうが
アクティブのままで、親ウインドウがアクティブになってくれませんでした。
やりたいのは、とにかくダイアログは一切アクティブにならずに親ウインドウをアクティブにしたいんですが。例えばダイアログをマウスでドラッグして移動している間も親ウインドウがアクティブ。
0778デフォルトの名無しさん2015/03/23(月) 17:06:33.87ID:mNKMHWo0
ダイアログを動かす間も一切アクティブにならないって…流石に意図を聞きたくなってきたぞ
0779デフォルトの名無しさん2015/03/23(月) 18:46:35.47ID:uejvAHsZ
>>777
それホントにモードレスダイアログになってる?

それとマウスでドラッグしてる間はドラッグしてるダイアログがアクティブなのは
仕方ないでしょ。ドラッグ移動してるということは、それがアクティブということだから
ドラッグ終了したら親ウィンドウをアクティブにすればいいのでは?
0780デフォルトの名無しさん2015/03/23(月) 19:09:55.63ID:K3npmpJS
タッチパネルのあるWindows8の場合、タップした位置を長押しすると、右クリックが押したことになりますよね。
その動作一切を、自分のウインド内で、動作を停止させる方法ありませんか?
長押しなどでタッチした位置に、丸い軌跡やら矩形やらが表示されて困っています。
また、マウスが押された時にタッチメッセージがマウスに送られてくるなど問題があります。
下記は、押された時のメッセージ分岐です。
WM_LBUTTONDOWN/WM_LBUTTONUP/WM_RBUTTONDOWN/WM_RBUTTONUPのイベントで、下記で分岐
LPARAM extra =GetMessageExtraInfo();
if((extra & MOUSEEVENTF_FROMTOUCH) == MOUSEEVENTF_FROMTOUCH){
if(extra & 0x80){入力はタッチ}
else{入力はペン}
}else{入力はマウス}
当面は、これらを分岐して、入力がタッチの場合のメッセージを無視するやり方を考えていますが、根本的な解決ができません。
大まかな状況としては、自前で、WM_TOUCHの処理はしていまして、マウスでの操作も考慮したアプリを想定しています。
0781デフォルトの名無しさん2015/03/24(火) 00:30:17.51ID:V+UI4Cgo
Win8以降で良いならWM_TOUCHよりこのへんのAPI使った方がええんでないの
https://msdn.microsoft.com/en-us/library/windows/desktop/ff657750.aspx
0782デフォルトの名無しさん2015/03/24(火) 00:32:13.90ID:8AKB60h4
>>778>>779
ちょっと勘違いしていました。
やりたいのは親ウインドウに例えばListBoxとかListViewなどが有って、その中の要素を選択していても、
子ダイアログを表示してそのダイアログがアクティブになると親ウインドウ上のそれらの選択項目の強調表示が薄い色に
変わってしまいますよね。それを変えずに常に強調表示させたいのです。
そのためには子ダイアログを開いてもそれがアクティブにならなければ実現できるかなと思ったのですが、そういう手法ではなく
もっとちゃんとした手法があるのでしょうか?
0783デフォルトの名無しさん2015/03/24(火) 00:42:15.94ID:IjKYEhSY
>>782
親ウィンドウが非アクティブになる時に、強調表示の色に変更すればいいじゃん
0784デフォルトの名無しさん2015/03/24(火) 01:08:31.41ID:G9RxAwbz
>>782
HideSelectionで色だけ自分で
0785デフォルトの名無しさん2015/03/24(火) 01:34:12.91ID:8AKB60h4
>>783>>784
レスありがとうございます。
そういう手法しかないですか?
例えば子ダイアログがアクティブでも親を騙して
親がアクティブだと思わせるような小細工はできませんか?
0786デフォルトの名無しさん2015/03/24(火) 01:57:34.88ID:G9RxAwbz
親がインプット受け付けるようになってしまうんじゃ?
0787デフォルトの名無しさん2015/03/24(火) 01:58:21.93ID:IjKYEhSY
>>785
ListBoxとかListViewなどのウィンドウプロシージャの非アクティブの時の
処理を無効にするとかかなあ

やったことがないからわからんが、WndProcをいじれば何とかなりそうだがな
ListBoxとかListViewなどをサブクラス化してWM_ACTIVATEの処理をさせないとか
あとは、非アクティブ時にWM_ACTIVATEを叩き込んで騙すとか
0788デフォルトの名無しさん2015/03/24(火) 11:41:14.71ID:q5QMGn49
>>781
情報有難うございます。
0789デフォルトの名無しさん2015/03/24(火) 22:42:06.70ID:ozkMoQA1
WM_MOUSEMOVEのところに OutputDebugStringで以下の実験してみた。
マウスを裏返しに置いて動作しないようにしておいて、
キーボードのALT+TABでウインドウを手前に出したり引っ込めたりしたところ
WM_MOUSEMOVEが発生しています。

これって仕様?
これを抑制するようなAPIとかないですか?
0790デフォルトの名無しさん2015/03/24(火) 22:49:46.90ID:V+UI4Cgo
アクティブ切り替えた時にウィンドウ上にカーソルあったらWM_SETCURSORとかと一緒に飛んでくるで
むしろ無いと困る仕様だとは思うが、抑制する方法は知らん

ちゅーかSpy++使いたまへ
0791デフォルトの名無しさん2015/03/24(火) 23:13:09.16ID:ozkMoQA1
ちなみに、2010Express版でSpy++ないし winspectorも配布終わったみたいで
なにかおすすめあります?

あと、ALT+TAB以外の不明な原因でも動いてないマウスのMOUSEMOVEが
時々飛んできますYO
0792デフォルトの名無しさん2015/03/25(水) 00:57:43.98ID:TCac9qwb
裏返すんじゃなくて抜いてやっても?
0793デフォルトの名無しさん2015/03/25(水) 01:03:38.64ID:ICAFIUG+
なぜコミュニティエディションを使わないのかと
0794デフォルトの名無しさん2015/03/25(水) 01:35:33.35ID:kbD8DHre
>>793

2013にすればコミニティエディションがあるのね。
余裕ができたらバージョンあげる。

>>792
趣旨としては、マウスとキーボードの両方の操作を受け付けるコントロールを作ってるんだけど、
キーボードの操作中に予想外のマウスイベントが飛んでくるのでどうしようっか というような
そういう感じで実験してました。
0795デフォルトの名無しさん2015/03/25(水) 09:15:29.24ID:kQAq5P0Z
>>789
マウスボタン押しの時にフラグ立てておいて、MOUSEMOVEでスルーすればよくね?
MOUSEMOVE処理する時ってどんな時よ?マウスのボタン押しながら移動が多いと思うんだけど?
case LBUTTONDOWN: IsLbutton=true;break;
case LBUTTONUP: IsLbutton=false;break;
case MOUSEMOVE: if(IsLbutton) { マウス押しながら処理 }
0796デフォルトの名無しさん2015/03/25(水) 09:34:46.85ID:kbD8DHre
>MOUSEMOVE処理する時ってどんな時よ?マウスのボタン押しながら移動が多いと思うんだけど?

メニュー。
具体的には orchis ってソフトみたいな動作をするウインドウを
組み立ててみたけど、マウスとキーボードの両方での操作を受け付けたら
想定外のマウスイベントが飛んでくるって現象。
07977892015/03/25(水) 19:26:21.64ID:kbD8DHre
さらなる検証の結果、不意に飛んでくるMOUE_MOVEは常に座標が変化しないという結論になり、
初期化部分とウインドウリサイズのハンドラで変数に座標(-1,-1)を設定し、
WM_MOUSEMOVE側で常に比較しながら変数を上書きし、
差分がゼロの場合に無視するという処理で自己解決しますた。

MFCとかだとこういう感じ。

インスタンス変数を定義:
privete: CPoint lpos;

初期化:
OnInitialUpdate() { lpos = CPoint(-1, -1); }
OnResize() { lpos = CPoint(-1, -1); }


マウスイベント:
case WM_MOUSEMOVE:
{ int x = LOWORD(lp), y = HIWORD(lp);
CPoint xy = CPoint(x, y);
if (xy == lpos) return 0;
lpos = xy;
int ypos = y / fsize;
MoveMark(ypos);
}
0798片山博文MZ ◆T6xkBnTXz7B0 2015/03/25(水) 19:53:28.28ID:0It7vtDM
CPointの定義を見れば、マウスイベントのところはもっと短く書ける
0799デフォルトの名無しさん2015/03/25(水) 19:58:11.58ID:kQAq5P0Z
>>797
-1,-1よりも、 -2147483648 (1<<31) とかのほうが安全じゃね?
マルチディスプレイとかだと、マウス位置によって-1,-1の数値来る場合有りそうだけど?
WM_MOUSEMOVEなら負の値ほぼ出ないか?SetCapture()とか使ってないなら大丈夫っぽい?
0800デフォルトの名無しさん2015/03/25(水) 21:16:14.66ID:AVdI7SPn
どうせウィンドウ作成時にもカーソル乗ってりゃ勝手に一発目のMOUSEMOVE飛んでくるから
何入れようが考えるだけ無駄
0801デフォルトの名無しさん2015/03/26(木) 16:29:27.94ID:c0xiAkqR
MFC VC++6.0です
エディターを作っているのですが、起動直後に以前のファイルを読み込むように、xxView.cppにOnCreateをClassWizardで
生成して、その中で GetDocument()->ReadFile( filename ) としました。ReadFileは自分でつくった関数です
このReadFile関数の中で、SetTitleもしていて、アプリウインドウの上部のタイトルバーにファイル名が出るようにしているのですが
起動直後、CViewのOnCreate内で このGetDocument()->ReadFileをしてもその中でSetTitleをしているにもかかわらず
タイトルバーにはファイル名が出ません
起動直後にファイルを自動で読み込ませるにはここでするのは違うのでしょうか。どこでしたらいいのですか
0802デフォルトの名無しさん2015/03/26(木) 16:54:17.57ID:c0xiAkqR
DocのOnNewDocumentが起動直後に呼び出されていることがわかったのですが、ここに書くと
ここは新規ファイルを選択したときにも呼ばれるので、変な小細工をすれば出来るかもしれませんが
なにかスマートではありません。本来のやり方ではない気がするのですが
0803デフォルトの名無しさん2015/03/26(木) 19:15:35.87ID:DhJPyUKm
すれち
0804デフォルトの名無しさん2015/03/26(木) 22:00:45.91ID:/f/mgGCo
MFC相談室 mfc22d.dll
ttp://peace.2ch.net/test/read.cgi/tech/1316080347/
08058022015/03/27(金) 06:48:32.56ID:y8AOm3PR
すいませんでした。そちらへ行きますね
0806デフォルトの名無しさん2015/03/27(金) 11:18:52.10ID:h/AyVghg
アイコン化又は最大化されたウィンドウを元に戻すメッセージ教えてWMなんちゃらっての
0807デフォルトの名無しさん2015/03/27(金) 11:19:38.23ID:h/AyVghg
いや、元に戻したときに送られてくるメッセージです
0808デフォルトの名無しさん2015/03/27(金) 11:53:56.34ID:4hIGmkI6
WM_SIZEのSIZE_RESTORED
0809デフォルトの名無しさん2015/03/27(金) 11:57:08.11ID:h/AyVghg
>>808
ありがとう、WM_SIZEで受けてパラメータにSIZE_RESTOREDがあったら戻したメッセージってことですね
0810片山博文MZ ◆T6xkBnTXz7B0 2015/03/27(金) 17:29:06.46ID:DfCIYrgC
WE CREATE A NEW WORLD OF WIN32 API.

2015.03.29 COMING SOON
0811デフォルトの名無しさん2015/03/28(土) 10:20:30.53ID:E47wo/Zw
をいをい
> SIZE_RESTORED0
> The window has been resized, but neither the SIZE_MINIMIZED nor SIZE_MAXIMIZED value applies.
0812デフォルトの名無しさん2015/03/28(土) 15:13:49.30ID:C0BdKvDT
>>802
スレチだが、CxxApp::InitInstanceのParseCommandLine(cmdInfo);の後に
if ( cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew && なんか条件 )
{
cmdInfo.m_strFileName = LastFileName;
cmdInfo.m_nShellCommand = CCommandLineInfo::FileOpen;
}
みたいにするか、CxxAppのParseCommandLineをオーバーライドしてその中で上記のような処理を追加したりする
0813片山博文MZ ◆T6xkBnTXz7B0 2015/03/29(日) 17:36:46.95ID:v4NwZmHf
時間切れ。来週に先延ばし。ごめんなさい。
0814デフォルトの名無しさん2015/03/29(日) 17:56:02.45ID:5i4IxN6M
あ? どっかのMSの発表でもコピペしたのかと思ったらカバ山の発表かよ
テメエのオナニーライブラリなんぞ一生パンツん中に突っ込んどけ
0815デフォルトの名無しさん2015/03/30(月) 18:24:18.83ID:Txtn4xHn
そろそろ、API覚えようと思うんだが
MFCとWIN32、どっち覚えた方がいいの?
0816デフォルトの名無しさん2015/03/30(月) 18:35:02.32ID:ivoRy/L6
KFCはWin32APIのラッパーにすぎない
あとは分かるな
0817デフォルトの名無しさん2015/03/30(月) 19:27:52.60ID:KChkT48h
フライドチキンやべえ
0818デフォルトの名無しさん2015/03/30(月) 19:41:46.04ID:Txtn4xHn
>>816
だったら何でWin32の本売ってない?
ほとんどMFCばかりだぞ
0819デフォルトの名無しさん2015/03/30(月) 19:53:05.05ID:+x9foXQS
MFCはオワコン
時代はWTL
0820デフォルトの名無しさん2015/03/30(月) 19:57:00.87ID:AKJsrmAN
本なんか買わなくてもMSDNライブラリで事足りるんじゃ
0821デフォルトの名無しさん2015/03/30(月) 19:58:38.42ID:3cZLk65C
「API」の勉強をしたいんじゃないのかい
0822デフォルトの名無しさん2015/03/30(月) 20:40:22.79ID:tj/CKRcj
>>818
分厚い本になるから、もうないんだろうね。
0823デフォルトの名無しさん2015/03/30(月) 20:47:06.70ID:Z/xNzUYF
今更win32apiって学習する価値はないよ
win8では全廃されちゃったし・・・
0824デフォルトの名無しさん2015/03/30(月) 20:48:30.63ID:ZvmyvnLc
>>818
つPetzold
0825デフォルトの名無しさん2015/03/30(月) 21:26:04.85ID:i+YJuxFC
簡単なAPIなので学習する必要はない。
必要になれば、都度ネットで検索すればよい。
もちろんここで質問しても良い。
0826デフォルトの名無しさん2015/03/30(月) 21:40:51.95ID:+x9foXQS
むしろCOM勉強したい
ことごとく絶版だったりするけど、何読めばいいの?
0827デフォルトの名無しさん2015/03/30(月) 21:41:53.64ID:Txtn4xHn
Azure最強www
0828デフォルトの名無しさん2015/03/30(月) 21:48:08.37ID:f5AcnPuu
MFCは手書きに向いてない。自動生成のコードを注入されたソースを見直すのは苦痛。
そこで MFCを綺麗に再構築したような Win32++がおすすめ。

http://win32-framework.sourceforge.net/

プリミティブな関数の名前と使い方はMFCと一緒で、
プログラムの全体が簡潔で綺麗なコードに仕上がる。
0829デフォルトの名無しさん2015/03/30(月) 22:05:30.25ID:ivoRy/L6
ほえー、WTLしか知らんかったわ
0830デフォルトの名無しさん2015/03/30(月) 22:31:50.01ID:Z/xNzUYF
こんな糞みたいなライブラリ使う位なら
mfcのほうが全然印
0831デフォルトの名無しさん2015/03/30(月) 22:41:53.23ID:vDmNFgKG
>>823
win32api がない?本当か?
0832デフォルトの名無しさん2015/03/30(月) 22:43:14.84ID:Z/xNzUYF
win8は本当だよ
0833デフォルトの名無しさん2015/03/30(月) 22:47:07.75ID:1Xl/36uT
嘘だっ!
0834デフォルトの名無しさん2015/03/30(月) 22:49:33.23ID:f5AcnPuu
MSはWindowsDNAとかActiveXとか色々と手を付けては失敗して手を引くの繰り返しですわ
結局デスクトップの終焉(ビジネスとしての終了)まで生き残ったのはWIN32APIw
0835デフォルトの名無しさん2015/03/30(月) 23:00:29.37ID:vDmNFgKG
>>832
win8/10 でも win32api は提供されているんじゃなかったの?
0836デフォルトの名無しさん2015/03/30(月) 23:06:13.27ID:Z/xNzUYF
だったらそうじゃね
0837デフォルトの名無しさん2015/03/30(月) 23:21:27.55ID:u5ife7BW
Win32API廃止になってたらストアアプリすら動かねえよ
0838デフォルトの名無しさん2015/03/30(月) 23:34:58.92ID:ivoRy/L6
Win8APIの時代でもくるのかと思ったわ
0839デフォルトの名無しさん2015/03/31(火) 00:47:56.62ID:dMuTNiPT
片山博文MZ @katahiromz I bid 32won for Won32 and Won32 Web completion. Time limit is 2015.5.1. It's a joke event. OK? @BillGates
0840デフォルトの名無しさん2015/03/31(火) 08:29:29.72ID:V12GMbZM
ソースがないのはウソ
0841デフォルトの名無しさん2015/03/31(火) 15:09:34.80ID:r+PJt+7s
じゃあwin32api使ってるソフトはwin8/10じゃ動かないってこと?切り捨てられた?
0842デフォルトの名無しさん2015/03/31(火) 15:47:01.79ID:UV6mK08F
んなわけない
0843デフォルトの名無しさん2015/03/31(火) 16:13:46.05ID:UV6mK08F
もう凄し具体的に説明してやろう。
.Netも最終的にWin32APIを呼び出しているものが多い。かなり多い。
なので、Win32APIがなくなると.Netも動かなくなる。
Win32APIをそっくり別のAPIに置き換えて、.Netからそちらを呼び出すようにすれば、
Win32API無しで.Netを動かすことが出来るが、そうするメリットが全くない。
Win32APIが無くなると、殆どのアプリが動かなくなる。
C#などからWIn32APIを呼び出しているものも沢山有るので、これはかなりの数になる。
ほぼ全てといってよい。もちろんFirefoxもVLCメディアプレイヤーもJane StyleもEverythingも
何も動かなくなる。その他にドライバも動かなくなるので、本当に何も出来なくなる。
そうなると誰もWindowsなんて買わない。Linuxへ移住することになる。そっちのがマシだから。
過去の資産が無いなら、Windowsはゴミ。WIndowsPhoneが爆死したことからも分かるように。
つまりWin32APIはWindowsの生命線。
Windowsが無くなるその日までサポートされ続けられることになる。
たとえソフトウェアエミュレーションすることになったとしてもだ。
実際、今現在GDIはソフトエミュだしな。
0844デフォルトの名無しさん2015/03/31(火) 16:34:19.74ID:J/N8EfYp
そんな見え透いた釣り針に乗って何が楽しいんだか
継ぎはぎで徐々に代謝は起こるだろうけど
0845デフォルトの名無しさん2015/03/31(火) 17:42:47.81ID:6A5nghzV
OSが128bitになるくらい大きな変化が無い限り、代謝すら無いな。
0846デフォルトの名無しさん2015/03/31(火) 19:39:12.61ID:vWx1RFOR
>>845
64bit 版で既に 16bit アプリ打ち切ってるのに何を言ってるんだ?
0847デフォルトの名無しさん2015/03/31(火) 19:46:06.52ID:ACkAWsbc
128bit版で32bitアプリが打ち切られるってことだろ
0848デフォルトの名無しさん2015/03/31(火) 20:03:40.07ID:ytppRCf1
>>843

じゃぁ、現にwin8で未サポート元、不サポートとなっている理由は?
0849デフォルトの名無しさん2015/03/31(火) 20:10:17.91ID:+KfLn/60
             ___________
     ∧_∧∩ /    Jane Styleは別に
    ( ´∀`)/< 先生!動かなくなっても
 _ / /   /   \    いいです!できれば
\⊂ノ ̄ ̄ ̄ ̄\ |    動かない方が…
 ||\        \ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
    .||          ||
0850デフォルトの名無しさん2015/03/31(火) 20:14:28.72ID:Z0jTt7mn
>>848
現にWin8以降もサポートされているが、未サポートと主張する理由は?
0851デフォルトの名無しさん2015/03/31(火) 20:15:13.86ID:jIkoyFTK
だから win8 で win32/64api が走らないとでも?
0852デフォルトの名無しさん2015/03/31(火) 20:37:32.43ID:ytppRCf1
>>850
よく読め
未サポートとは主張していない
0853デフォルトの名無しさん2015/03/31(火) 20:46:06.09ID:ACkAWsbc
よく読んだところで「未サポート元」って意味不明
0854デフォルトの名無しさん2015/03/31(火) 20:46:53.25ID:ytppRCf1
もとい
0855デフォルトの名無しさん2015/03/31(火) 21:07:04.38ID:UbaiVWgy
それでも意味がわからん
0856デフォルトの名無しさん2015/03/31(火) 21:10:51.18ID:ytppRCf1
・・・
0857デフォルトの名無しさん2015/03/31(火) 21:15:37.11ID:ACkAWsbc
未サポート
不サポート

それぞれの意味は?
0858デフォルトの名無しさん2015/03/31(火) 21:28:03.07ID:Z0jTt7mn
deprecatedって意味だとしてもそんな事実はねえしなあ

全廃くんはただの釣りだと思ったけど・・・もう何がなんだか・・・
0859デフォルトの名無しさん2015/03/31(火) 21:42:01.28ID:J/N8EfYp
昨日から意味不明なこと言ってるやついるだろ
0860デフォルトの名無しさん2015/04/01(水) 01:31:56.21ID:SaeEUNg8
あれだろ、WinRTが当たるという、とらぬ狸の皮算用をしていて
とりあえず WIN32APIを直接使うとRTと互換性下がるよという話題が合った。

でも大方の予想どうりに RTの大失敗で黒歴史のエピソードに変わったんだよw
0861デフォルトの名無しさん2015/04/01(水) 03:49:22.97ID:PpKhxCtR
longhorn構想で自殺願望めいた妄言ぬかしてたあの頃w
0862デフォルトの名無しさん2015/04/01(水) 03:52:48.67ID:6No5roq+
黒歴史どころか現在進行形ですがな
0863片山博文MZ ◆T6xkBnTXz7B0 2015/04/01(水) 13:41:14.19ID:bTV2IHQs
2015年4月1日
Wonders API公開。
(動画) こんにちは、Wonders APIです
http://youtu.be/MSs4vto5u18
(Movie) Hello, this is Wonders API.
https://youtu.be/TvQZwOMPc8s
公式サイト
http://katahiromz.esy.es/wonders/
GitHubレポジトリ
https://github.com/katahiromz/DoWonders
0864片山博文MZ ◆T6xkBnTXz7B0 2015/04/01(水) 14:20:13.18ID:bTV2IHQs
C:\Users\katahiromz\DoWonders\pack-cl-32\Wonders98>iwonit-cl-32-a.bat
############################################
# iwon --- Won32 interactive by katahiromz #
# Wonders API Database (Won32) #
# [email protected] #
############################################
Loading data...
Loaded.
You are welcome!
Enter 'quit' to quit.

Enter name of type, function or constant: MessageBoxW
MessageBoxW is a function, defined in C:/Program Files (x86)/Windows Kits/8.1/in
clude/um/winuser.h (8695).
int __stdcall MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uTy
pe);

Enter name of type, function or constant: MB_ICONERROR
MB_ICONERROR is a macro constant, defined in C:/Program Files (x86)/Windows Kits
/8.1/include/um/winuser.h (8635).
long MB_ICONERROR = 16L;
size: 4

Enter name of type, function or constant: quit
See you!

C:\Users\katahiromz\DoWonders\pack-cl-32\Wonders98>
0865デフォルトの名無しさん2015/04/01(水) 17:22:53.86ID:FyEUPoFw
今、ダウンロードしたけど、これで何ができるの?
0866デフォルトの名無しさん2015/04/01(水) 18:11:12.76ID:SaeEUNg8
BATをダブルクリックして名前を入力すると、ヘッダファイルの定義を検索して表示するツールだね。
UNIXのmanコマンドの解説なしみたいなやつ。
0867デフォルトの名無しさん2015/04/01(水) 18:13:45.21ID:wvOVoLI0
>>864見たらわかるだろう
0868デフォルトの名無しさん2015/04/01(水) 18:21:52.56ID:4LHQBjDk
ある長い処理をボタンクリックで起動すると終わるまで、UIが更新されないの嫌って

void CHogeDlg::OnButtonClick()
{
 nagaishori();
}
を別スレッドにしたのですが、
void CHogeDlg::OnButtonClick()
{
 threaddekaishi(nagaishori);

shorigaowarunowomatsu();
}

shorigaowarunowomatsu()内でWaitForSingleObjectを使って待っています。
結果的には最初と同じですよね?

まぁ、 shorigaowarunowomatsu();を行わなければいいだけですが・・・
0869デフォルトの名無しさん2015/04/01(水) 19:19:27.54ID:/Cyandb9
こういうのとか
http://codezine.jp/article/detail/5332

基本的にはWaitForSingleObjectを200ミリ秒程度でタイムアウトさせて
メッセージを処理するってループを作る

コールバック用意を用意するとか
0870デフォルトの名無しさん2015/04/02(木) 01:12:52.13ID:E3hCyayk
ワーカースレッドの進捗や結果をどのように必要とするのかで変わってくるし
それだけじゃあ「や、そこで待つなよ」としか答えようがないで
0871デフォルトの名無しさん2015/04/02(木) 02:58:01.10ID:ypz26+uX
>>868
C#のasync/await使えばいい
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Run(() => nagaisyori());
}
0872デフォルトの名無しさん2015/04/02(木) 04:44:47.89ID:FH8gV7UA
もうスレタイも質問者の意図も読めてないな
0873デフォルトの名無しさん2015/04/02(木) 16:31:58.91ID:aTvkuwDP
こんな時ってワーカースレッドに分ける話ばかり出てきがちだけど、
時間のかかる処理中でも他の処理はできますよってレベルの設計にまで
なってないことも多いんじゃないのかね。

質問者のもそうなってると思うんだわ。
UIが更新されないのが嫌としか書いてないしね。

だから、時間のかかる処理中にWM_PAINTだけ処理するメッセージループ
噛ませるだけで質問者は満足するんじゃないかと思うんですよ。

あえてスレッドで処理するんなら、スレッド実行前にUIはEnableWindow
で入力禁止にした上でスレッド実行、WaitForSingleObjectは使わないで
スレッド終了時にUIをEnableWindowで入力禁止を解除すればいいんじゃないの。


長くてごめんよ。
0874片山博文MZ ◆T6xkBnTXz7B0 2015/04/03(金) 11:48:11.92ID:d2wNb10R
Windowsをタッチパネルにするのなら、ウィンドウのボタンをもっと大きくしなきゃダメだ
0875片山博文MZ ◆T6xkBnTXz7B0 2015/04/03(金) 11:53:18.17ID:d2wNb10R
それから通知領域のアイコンが小さすぎる。
0876デフォルトの名無しさん2015/04/03(金) 15:18:06.61ID:n1wYDwck
はい
0877デフォルトの名無しさん2015/04/03(金) 17:51:47.78ID:d2wNb10R
MSKKによろしく
0878デフォルトの名無しさん2015/04/03(金) 21:03:09.01ID:R/PiASKu
>>873
> だから、時間のかかる処理中にWM_PAINTだけ処理するメッセージループ噛ませる
そんなきちゃない設計したくないからスレッドにしてるわけだし

> あえてスレッドで処理するんなら、スレッド実行前にUIはEnableWindow
> で入力禁止にした上でスレッド実行、WaitForSingleObjectは使わないで
> スレッド終了時にUIをEnableWindowで入力禁止を解除すればいいんじゃないの。
それってなんの解決になってるんだ?
0879デフォルトの名無しさん2015/04/03(金) 21:18:35.61ID:qd46Xef5
>>878
きちゃないとか久しぶりに聞いた

後半は開始・終了ボタンの事じゃないのか?
0880デフォルトの名無しさん2015/04/03(金) 21:50:29.81ID:NtRakko8
>>878
別スレッドにした意味がない方法を取ってる時点で、別スレッドにしても「きちゃない設計」だと思うよ。
0881デフォルトの名無しさん2015/04/03(金) 22:09:30.06ID:nPEToW8d
>>880
質問者がきちゃない設計してるからと言って、別のきちゃない設計勧めてどうするw
しかもよりきちゃないし
0882デフォルトの名無しさん2015/04/03(金) 23:45:33.54ID:6TCkScwu
>>881
んなもん、設計からキレイに作り直せば解決って言うなら、小学生でもできるんだぜ?
実際、お前さんではきちゃない設計を解決できてない。

クソ設計でも、最小工数で解決する方法の提示の方が100倍マシだわ。
0883デフォルトの名無しさん2015/04/04(土) 00:05:26.91ID:mitlwOnN
Win8.1のタッチキーボードとかサイズが横2倍くらいのサイズに見えるんですが、タスクトレイの左横?に配置されてますよね。
Shell_NotifyIconとは、作り方違うのかなぁ・・・?
同じ登録方法が知りたいです。
0884デフォルトの名無しさん2015/04/04(土) 00:12:40.26ID:kQcA28WQ
>>881
勧めたつもりはないけど。
「きちゃない設計したくないからスレッドにしてる」はずなのに
汚いままじゃ同じじゃないの?そもそもの設計(特に親スレッド)を見直したほうが良いと言っているだけだよ。

WM_PAINTだけじゃだめだけど、処理を待つ間メッセージループを処理する工夫をしなくちゃいけないのは事実だし。
0885デフォルトの名無しさん2015/04/04(土) 05:55:45.65ID:Y86GgH66
>>884
> WM_PAINTだけじゃだめだけど、処理を待つ間メッセージループを処理する工夫をしなくちゃいけないのは事実だし。
メッセージループの処理とある長い処理を分離できてることが重要
>>882 みたいなドカタには不要らしいが w
そもそも >>873 の話は >>869 のリンク先に書いてあるし、>>869 には最小工数で解決する方法も書いてるし
0886デフォルトの名無しさん2015/04/04(土) 10:59:00.14ID:NvLS+ow4
それ、スレッドで作る綺麗な設計()の話じゃないよね?
0887デフォルトの名無しさん2015/04/04(土) 12:23:50.42ID:FbeX1h1l
>>886
>>869 の後半はスレッドでの話だし、少なくとも >>873 よりはまともな設計だろ
0888デフォルトの名無しさん2015/04/04(土) 14:44:58.01ID:+ZfwIkd7
まだやっとんのかいな〜
0889デフォルトの名無しさん2015/04/04(土) 16:44:22.96ID:kQcA28WQ
>>885
>メッセージループの処理とある長い処理を分離できてることが重要
だから、>>884でも「設計(特に親スレッド)を見直したほうが良い」と言っているんだけど。
0890デフォルトの名無しさん2015/04/04(土) 16:55:41.99ID:+ZfwIkd7
設計なんてしたときねーよ
学生だし
0891デフォルトの名無しさん2015/04/04(土) 16:56:54.66ID:Y86GgH66
>>889
> だから、>>884でも「設計(特に親スレッド)を見直したほうが良い」と言っているんだけど。
既に定番の方法が >>869 に書かれてるだろ
ひょっとして、理解できてないのか?
0892デフォルトの名無しさん2015/04/04(土) 17:19:37.12ID:N4lx0lGg
最近 FFI ってのをよく目にするんだけど
こいつはなにもの?
0893デフォルトの名無しさん2015/04/04(土) 17:30:01.61ID:kQcA28WQ
>>891
>>869は自分なんだが。
0894デフォルトの名無しさん2015/04/04(土) 18:14:23.97ID:Im19kqOF
>>892
何の略かによるだろ
略でなく単なるFFIなら知らん
0895デフォルトの名無しさん2015/04/04(土) 20:17:45.85ID:Y86GgH66
>>893
だからなに?
子スレッドの情報ないから状態でスレッドにする意味があるかないかについて語ってもしょうがないし、親スレッドについて >>869 よりマシな解決策があるのか?

>>892
このスレ的には他言語関数インターフェース (Foreign function interface) 位だと思うが、あまり目にすることはないけど...
http://ja.m.wikipedia.org/wiki/FFI
0896デフォルトの名無しさん2015/04/04(土) 21:22:51.45ID:KzhB2n3K
C#のasync/await
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Run(() => nagaisyori());
}
これが一番シンプルかつきれいな設計ってことでFA
0897デフォルトの名無しさん2015/04/04(土) 21:26:54.47ID:hQgjc6Dc
以下のリソースを使ってメニューを作ろうとしたら、
Error test.rc 5 31: Expecting END
ってエラーが出て上手くいきません。
右のIDMを全部どけたらなぜか通ります。
7でBCCDeveloperってソフト使って作っています。
原因と解決策を教えてください。
お願いします。


MENUTEST MENU
BEGIN
POPUP "ファイル(&F)"
BEGIN
MENUITEM "開く(&O)...", IDM_FILE_OPEN
MENUITEM SEPARATOR
MENUITEM "終了(&X)", IDM_FILE_EXIT
END
POPUP "ヘルプ(&H)"
BEGIN
MENUITEM "バージョン情報(&A)...", IDM_HELP_ABOUT
END
END
0898片山博文MZ ◆T6xkBnTXz7B0 2015/04/04(土) 21:36:04.77ID:AbppvLIl
>>897
IDM_FILE_OPENなどを#defineか#include
0899デフォルトの名無しさん2015/04/04(土) 21:41:56.50ID:kQcA28WQ
だからなに?と言われてもwww
理解できてないのか?と言われたから
理解していない内容を提示するやつはいないだろw
ということも理解できないのか?

>>869は会員制。
1〜2ページは良いが3〜4ページは普通では見られない。
1〜2ページだけで判断すればマシな解決策とは言えないし。

3〜4ページも含めたとしてもとりあえず while( (GetTickCount()-dwStart) < dwWait ); はダメだろ。
もしかしたら最適化で問題のないコードになるかもしれないが(そういうのは知らん)、なるとは限らない。
Win32APIでならSleepかSleepExって方法もあると思うが。
0900デフォルトの名無しさん2015/04/04(土) 21:44:44.40ID:hQgjc6Dc
>>898
あ、ヘッダじゃなくリソースにも書かないといけなかったのか
ありがとうすみません
0901デフォルトの名無しさん2015/04/04(土) 22:09:42.23ID:jIu2FuGY
>>900
ヘッダに定義して、リソースファイルでインクルードするのが普通。
0902デフォルトの名無しさん2015/04/04(土) 22:14:17.56ID:KzhB2n3K
>>899
> 理解していない内容を提示するやつはいないだろw
> 3〜4ページも含めたとしてもとりあえず while( (GetTickCount()-dwStart) < dwWait ); はダメだろ。

理解してないじゃんwwwww
そこは時間のかかる処理を再現してるだけなんだからなんでもいいだろ。関係ねーよ
しかもこれ1〜4ページまでが前半で後半はまた別だからwwww
0903デフォルトの名無しさん2015/04/04(土) 22:17:38.13ID:Y86GgH66
>>899
> ということも理解できないのか?
ID:kQcA28WQ = >>869 なんて知らんから当たり前

> 1〜2ページだけで判断すればマシな解決策とは言えないし。
誰もマシな解決策なんて書いてないんだが w
0904デフォルトの名無しさん2015/04/04(土) 22:22:45.83ID:KzhB2n3K
でも、やっぱりC#のasync/awaitが一番いい
0905デフォルトの名無しさん2015/04/04(土) 22:24:18.56ID:jIu2FuGY
C#の話なんて誰もしてねーんだよ。
スレタイ見えないのか
0906デフォルトの名無しさん2015/04/04(土) 22:29:43.99ID:KzhB2n3K
Win32APIってあるけどC++とは書いてないよ
0907デフォルトの名無しさん2015/04/04(土) 22:33:46.68ID:A5BBrLBB
そうだね、C#とは書いてないね
0908デフォルトの名無しさん2015/04/04(土) 22:38:50.23ID:KzhB2n3K
JavaやC#使ってプログラム組んでるけど、結構下の方いじってやりたいことあって、
JavaのSWTからWin32API呼び出したり、C#のP/Invoke使って呼び出したりって結構あるんだよね
0909デフォルトの名無しさん2015/04/04(土) 22:39:19.00ID:+ZfwIkd7
#なんてつかった必要性を感じたときねーよ
0910デフォルトの名無しさん2015/04/04(土) 22:45:43.34ID:KzhB2n3K
今日もJava SWTを使ったプログラムで、ウィンドウを最前面表示するとツールチップがウィンドウの後ろに隠れちゃう問題と格闘中
昔タスクバーのツールチップがタスクバーの後ろに隠れるっていうバグがあったじゃん
あれも関係しているみたいでぐぐってみたけど結局解決策分からんかった

>>909
いろいろ勉強した方がいいぞ。学生なんだから
0911デフォルトの名無しさん2015/04/05(日) 07:44:23.00ID:/hx1kX+a
VisualC++と、Win32の違いって何?
0912デフォルトの名無しさん2015/04/05(日) 08:05:52.66ID:KZ+Fa3I0
下回りは必要に応じてWin32API呼び出しで、
アプリ本体は圧倒的に開発が楽なんでC#だな
0913デフォルトの名無しさん2015/04/05(日) 08:06:35.21ID:P8pOEXR0
まずブラウザを開きます
それぞれの単語を検索欄に入力します
服を脱ぎます
0914デフォルトの名無しさん2015/04/05(日) 08:09:12.99ID:EKIW4rHW
>>911
IDEとAPI
0915デフォルトの名無しさん2015/04/05(日) 08:22:35.26ID:/hx1kX+a
>>914
ありがとうございます
0916デフォルトの名無しさん2015/04/05(日) 10:21:07.02ID:I2S790AD
C#やC++11のasyncとかでスレッドをどうやって生成して使いまわしてるのかわからない場合
CoInitializeとCoUninitializeか毎回呼ぶの?
初回だけ呼べるなら良いけどそうじゃない場合毎回初期化処理走って無駄じゃね?
0917デフォルトの名無しさん2015/04/05(日) 10:54:57.10ID:WDwqsM6E
>>909
# の前に日本語の勉強しろよ...
0918デフォルトの名無しさん2015/04/05(日) 10:55:48.70ID:mucm9Rcj
初期化済みなら内部の参照カウンタが増えるだけだから
0919デフォルトの名無しさん2015/04/05(日) 11:16:30.35ID:Y8CRHpsW
>>916
C#の場合、普通にスレッド起こしたらMTAだし
0920デフォルトの名無しさん2015/04/05(日) 11:20:10.27ID:KZ+Fa3I0
C#のランタイムは、スレッド開始毎にCoInitializeEx呼んでいる
0921デフォルトの名無しさん2015/04/05(日) 13:23:45.86ID:I2S790AD
C#はMTAなら標準でOKなのか
C++だとやっぱタスクごとに毎回呼ぶしかないか
STA必須なのって最近は少ないのかな
0922デフォルトの名無しさん2015/04/05(日) 15:34:26.44ID:ljsW1WyS
>>902
>そこは時間のかかる処理を再現してるだけなんだからなんでもいいだろ。関係ねーよ

そこにスピンループ持ってくるセンスのなさに
まともな設計できなそうな雰囲気を感じ取れないようでは...
0923デフォルトの名無しさん2015/04/05(日) 15:37:13.32ID:db7WcjYS
>>922
例題や仮を本気で考えるのか
目的の時間かかる処理なら適当でいいと思うが
0924デフォルトの名無しさん2015/04/05(日) 15:54:17.13ID:ljsW1WyS
>>923
だったらsleep()でいいじゃない。
スピンループなんか例題でつかうものではない。
0925デフォルトの名無しさん2015/04/05(日) 15:59:44.41ID:db7WcjYS
>>924
そういう突っ込みはナンセンス
好きにしたらいい本題じゃない部分だしな
0926デフォルトの名無しさん2015/04/05(日) 16:11:28.83ID:ljsW1WyS
どうやらまともな設計できないご本人だったようだ。
周りの人に迷惑を掛けてないといいんだが...
0927デフォルトの名無しさん2015/04/05(日) 16:27:56.42ID:db7WcjYS
>>926
本気で言ってるのなら統合失調症を疑った方がいい
09288962015/04/05(日) 17:37:02.18ID:2iwfQOMD
頭おかしい人だった

> そこにスピンループ持ってくるセンスのなさに
> まともな設計できなそうな雰囲気を感じ取れないようでは...

なぜスピンループを持ってくることがセンスがないのか説明すべき

マジレスするとマルチスレッドだとスピンループとsleep()で処理のされ方が変わることがある
例えば↓スレッドプールとかね。スピンループとsleep()の両方試す必要がある
ttp://stackoverflow.com/questions/15666443/which-stdasync-implementations-use-thread-pools

実際の処理がどっちか分からない以上、こういう例題ではどちらが優れているということはない

それにsleep()よりスピンループの方が書き方は難しい
コンパイラの最適化でループが除去されたりしないように気をつけないといけない
そういう意味ではスピンループの書き方も勉強できるから記事として悪くない
0929デフォルトの名無しさん2015/04/05(日) 17:48:34.79ID:WDwqsM6E
>>927
論破されたのを誤魔化すのに必死なんでしょ
そもそもスピンループ持ってきたのは >>869 = ID:kQcA28WQ なんだから、はたから見てたらアホとしか思えん
0930デフォルトの名無しさん2015/04/05(日) 20:15:10.08ID:db7WcjYS
>>929
必死に見えたならごめんよ
0931デフォルトの名無しさん2015/04/05(日) 20:53:09.36ID:rnU7gpAt
暇そうで何よりだな
0932デフォルトの名無しさん2015/04/05(日) 22:40:42.59ID:ljsW1WyS
>>928
例だからどうでもいい処理なんじゃないんだっけ?
支離滅裂だよ。
0933デフォルトの名無しさん2015/04/05(日) 23:30:36.26ID:2iwfQOMD
>>932
暇なの?勉強してから来いよ
重要度がかなり低いところだけど、そこの書き方がセンスがないというから、細かい部分にまで気を使って書いていると言っただけ
0934デフォルトの名無しさん2015/04/05(日) 23:55:25.40ID:ljsW1WyS
言い訳だけはセンスあるねb
0935デフォルトの名無しさん2015/04/06(月) 01:02:44.92ID:atvgCgU8
何のセンスもない会話はやめたまえ
0936デフォルトの名無しさん2015/04/06(月) 03:31:26.55ID:TiB43yfl
てか、

>本稿では時間のかかる処理として、ごく単純ではあるものの、CPUパワーを全力で利用するビジーループを用意しました。
>これは、CPUの処理時間をタスクマネージャで目視できるようにするためにわざわざ用意したもので、
>内容そのものは特に意味のあるものではありません。

ってわざわざ書いてあるのに、何でけんかしてるの?
0937デフォルトの名無しさん2015/04/06(月) 03:41:09.31ID:TiB43yfl
しかし、長い処理の合間にメッセージポンプを挟む方式は、
ウィンドウプロシージャが再突入してバグる可能性があるので
あまりお勧めではないな。
0938デフォルトの名無しさん2015/04/06(月) 03:58:07.89ID:tPALyaaz
ID:ljsW1WyS = ID:kQcA28WQ = ID:/Cyandb9 がよく読みもしないで記事引っ張ってきて一人で騒いでるんだよ
ちゃんと指摘してあげると攻撃してきて意味分からん

>>937
この記事は後半もあっていろんなやり方書いてあるよ
メッセージポンプ挟む方式でウィンドウプロシージャの再突入は想定の範囲内じゃね
0939デフォルトの名無しさん2015/04/06(月) 07:01:52.99ID:l3aCpmj8
反論してくる相手がひとりだと思ってやがるw
0940デフォルトの名無しさん2015/04/06(月) 07:18:17.35ID:tPALyaaz
>>939
こんなバカな主張してくるやつが2人以上いると思うとおぞましいわ
0941デフォルトの名無しさん2015/04/06(月) 07:18:51.34ID:O6JBKEAO
もれは一人だと思ってたわ(棒
0942デフォルトの名無しさん2015/04/06(月) 07:23:09.01ID:aw8e7+Ut
そろそろお薬でも飲んどけよ
0943デフォルトの名無しさん2015/04/06(月) 08:06:33.25ID:rbpG+7VY
バカな主張する奴が複数って言うのはまれにあるけど、自分が書いたリンク先に自分で的外れな突っ込み入れてる奴は初めてだわ
0944デフォルトの名無しさん2015/04/06(月) 18:55:24.42ID:z+P1A/YP
俺は自演だと思ってた
0945デフォルトの名無しさん2015/04/06(月) 20:14:01.81ID:e+Wx+qlz
少なくとも>>893 = >>869と言ってるな
0946デフォルトの名無しさん2015/04/06(月) 20:39:10.20ID:l3aCpmj8
なぜか単発でバカが複数湧いてきたw
0947デフォルトの名無しさん2015/04/06(月) 20:47:16.80ID:atvgCgU8
じゃあ俺もそう思ってた
0948デフォルトの名無しさん2015/04/06(月) 20:54:18.91ID:tPALyaaz
ID:l3aCpmj8 = ID:ljsW1WyS = ID:kQcA28WQ = ID:/Cyandb9
0949デフォルトの名無しさん2015/04/06(月) 20:58:54.33ID:rbpG+7VY
俺も俺も w
0950デフォルトの名無しさん2015/04/07(火) 19:22:14.82ID:H200pvkI
VCで↓の内容のプログラム作りたいです。でもどんな風にすればいいのか全く分かりません。教えてくれませんか?

1.プロセス(Firefox.exe)をオープンする。
Firefox.exeが存在しなければ「Firefox.exeが起動されていません」とメッセージ出して終了。
Firefox.exeが存在していたら、2.に進む。

2.プロセスメモリのアドレス1とアドレス2の値の変化を監視。
アドレス1の値が""xx""でアドレス2の値が"yy" だったならマウスの左ボタンを押す。
アドレス1の値がxx以外になったらクリックを離す。
アドレス2の値がyy以外になったらクリックを離す。
2の最初に戻ってループ。
0951デフォルトの名無しさん2015/04/07(火) 19:31:58.00ID:jnQKtoWz
夢砕いて悪いけどさ
そんな風に作ったゲームやエミュレーターじゃねーんだから
アドレス決めうちで見張ったって無駄だよ無駄

FindWindowかEnumWindowsでFireFoxのウィンドウを探して
GetWindowThreadProcessIdでプロセスIDを得る
あるいはEnumProcessesでプロセスID を直接得る
プロセスIDを入手したらOpenProcessでプロセスを読み書き可要求で開き
ReadProcessMemoryで読み、WriteProcessMemory書く
終わり
0952デフォルトの名無しさん2015/04/07(火) 19:33:05.86ID:jnQKtoWz
あ、クリックしたいのか
じゃあSendInputを使え
100年後にできあがってるといいな!
0953片山博文MZ ◆T6xkBnTXz7B0 2015/04/07(火) 19:37:03.68ID:2bTHzj+B
>>950
openprocess
readprocessmemory
writeprocessmemory
mouse_event
0954片山博文MZ ◆T6xkBnTXz7B0 2015/04/07(火) 19:52:18.23ID:2bTHzj+B
チーターは最速で走る動物。
0955デフォルトの名無しさん2015/04/07(火) 19:59:42.98ID:iCEcfKSN
>>951
起動してなければ終了させるなら
タスクマネージャのPID使えばいいんじゃね
0956デフォルトの名無しさん2015/04/07(火) 19:59:57.65ID:S1wxOgBA
マウスダウンやマウスアップのウィンドウメッセージを送るんじゃなくてマウスのエミュレートを使うのか
0957デフォルトの名無しさん2015/04/07(火) 20:10:14.90ID:2bTHzj+B
チートは違法です
0958デフォルトの名無しさん2015/04/07(火) 21:23:04.15ID:seUReA7S
勤怠管理の自動処理とみた
0959デフォルトの名無しさん2015/04/07(火) 21:56:33.89ID:H200pvkI
>>951-953
ありがとうございます。全体の流れがなんとく見えてはきたんですが・・
実際でCで書くとどうなるのか・・ このままだと本当に100年とはいわなくとも1年はかかってしまいます
Cが出来る方いましたらコード化してもらえないでしょうか
0960デフォルトの名無しさん2015/04/07(火) 22:32:48.11ID:XhF9pVwj
いくら?
0961デフォルトの名無しさん2015/04/07(火) 22:34:57.62ID:oxNKb4WX
1年分の給料を持って、近くの零細IT企業に行けば良い
0962デフォルトの名無しさん2015/04/07(火) 23:18:48.72ID:oAaB/ypb
Windows Vista コモン コントロールの作成要件
https://msdn.microsoft.com/ja-jp/library/bb531404.aspx

コモンコントロールの見た目をキレイにするために、上記ページに記載の記述が必要ですが、

#ifdef UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

このうち、#else部分の

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

だけでも、Win32、x64いずれでもキレイなスタイルになってくれました。
上記場合分けって必要ないですよね?
0963デフォルトの名無しさん2015/04/08(水) 06:36:20.77ID:8H9929k+
>>960-961
お金ですか? お金がほしいんですか!?
わたし15歳なので給料とかないですし1000円しか払えないんですが・・
>>950は複雑な処理してませんし量的にも少量ですみますよね?
酷いこと言わないで、さくっと書いてほしいです

CとAPIはこれから学んでいきますが、>>950だけはすぐに作らないと不味いんです
助けてください><
0964デフォルトの名無しさん2015/04/08(水) 07:13:30.64ID:bA5nfYlZ
うーん
3/100点
0965デフォルトの名無しさん2015/04/08(水) 07:33:11.66ID:kK26tG98
そういう丸投げはYahoo知恵袋でもない限りまともに取り合って貰えないよ
不味いとか言ってるけどどうせ見栄っ張りの安請け合いか遊び目的だろ
0966デフォルトの名無しさん2015/04/08(水) 07:44:04.60ID:Vs/ZCfgh
うわぁマジレス
0967デフォルトの名無しさん2015/04/08(水) 10:56:09.30ID:JmLgEFxG
>>963
>Cが出来る方いましたらコード化してもらえないでしょうか
>酷いこと言わないで、さくっと書いてほしいです

(盥回しされる原因は自己にあるんだけど)
こんなソフトウェアつくってください〜Part18
ttp://anago.2ch.net/test/read.cgi/software/1387352479/

ttp://peace.2ch.net/test/read.cgi/tech/1417257762/466
466 :デフォルトの名無しさん:2015/04/07(火) 14:46:44.81 ID:H200pvkI
>>460
たらい回しにしようとしないでください!!
Win32APIとかゆうのじゃなくてC言語のことがしりたいんです
このスレ初心者歓迎って書いてあるのに・・
わたしはまだ入門書の最初のページ読んで hello worldのしかやってないんです
でも>>459のプログラムだけは早く作らないといけないのでC言語のスレできいています!
0968デフォルトの名無しさん2015/04/08(水) 11:51:52.03ID:K0WLVf30
むかーし、FF11の釣り自動化にそういうプログラム書いたなあ(遠い目)
0969片山博文MZ ◆T6xkBnTXz7B0 2015/04/08(水) 14:21:57.47ID:6AvoIJiD
>>950
http://codepad.org/0E6iybtA
0970片山博文MZ ◆T6xkBnTXz7B0 2015/04/08(水) 14:26:19.78ID:6AvoIJiD
あげ
0971デフォルトの名無しさん2015/04/08(水) 17:22:32.15ID:8H9929k+
>>969
ありがとうございます!好きですめちゃ嬉しいです
でも実はわたしが>>950で書いたの一部間違えてて直したいところがあります

ボタン離す条件ですが、
アドレス2の値が"yy"以外になったらを離す
↑じゃなくて、
アドレス2の値が"zz"以外になったら離す。が正しかったです・・
LEFTDOWNした時点でアドレス2の値が"zz"になるんです。
それを忘れてました・・

今のままだとLEFTDOWN直後にLEFTUPしてしまいます。
一定時間経過後にアドレス2の値は"zz"以外になるので、それまではLEFTDOWNしたままにしておきたいんです。

よかったらもう少しだけ教えてもらえませんか? 
あできればついでにmouse_eventじゃなくてsendinputにしてほしい><
0972デフォルトの名無しさん2015/04/08(水) 17:43:03.61ID:Vs/ZCfgh
うーんこの
0973片山博文MZ ◆T6xkBnTXz7B0 2015/04/08(水) 17:59:53.88ID:GMSIP3gO
追加料金はWebMoney2000円です。
0974片山博文MZ ◆T6xkBnTXz7B0 2015/04/08(水) 18:24:13.40ID:GMSIP3gO
WebMoneyはコンビニでも買えるよ
[email protected]
0975デフォルトの名無しさん2015/04/08(水) 18:31:53.99ID:bms3DTdi
ここへきて後出し条件。カスみたいな奴だな。放っておくべき。
0976デフォルトの名無しさん2015/04/08(水) 18:33:24.75ID:b4lzJxfB
中学生から金銭を巻き上げようとしている悪質な人がいると、通報しておいた。
0977デフォルトの名無しさん2015/04/08(水) 18:45:56.38ID:bA5nfYlZ
週刊片山博文
全部買うとチートツールが完成するぞ
0978デフォルトの名無しさん2015/04/09(木) 02:32:22.07ID:Vh6AwiGf
>>975
違います! ほんとうにまちがただけです・・。

>>973
もしかして怒ってます? せっかく書いてくれたのにすみません
ほんっとうに、ほんとうに感謝してますがお金はないです><
反省したのでもう少しだけ協力してくれないですか・・

>>965さんに勧めらた知恵袋で質問してみても、
チートがどうこうとか、ソースは売れる商品レベルのルーチンになるとか意味不明
な答えしかもらえなかったですし・・

眠いの我慢して調べても分からないし・・どうすればいいですか?
0979デフォルトの名無しさん2015/04/09(木) 02:41:41.86ID:V62mLZFy
勉強すればよくね
0980デフォルトの名無しさん2015/04/09(木) 02:43:35.92ID:8YMocrt2
あきらめる。
0981デフォルトの名無しさん2015/04/09(木) 03:37:16.19ID:eUbfM8co
スパイウェアにキーロガーってあるけどどんなWin32APIを使ってるの?
0982デフォルトの名無しさん2015/04/09(木) 04:01:16.65ID:BITSEJu/
SetWindowsHookEx
あと自身をタスクマネージャーに表示しないようにするためにCreateRemoteThread+LoadLibrary
これでエクスプローラとかに隠れちゃえばユーザからは分からない
0983デフォルトの名無しさん2015/04/09(木) 04:36:19.90ID:eUbfM8co
�d
完全隠蔽が出来るのか
それは怖いな
0984デフォルトの名無しさん2015/04/09(木) 06:27:24.07ID:rW9xiAG/
>>978
売れる商品レベルとか意味不
yahoo知恵袋のURLあれば教えて見てみる
09859622015/04/09(木) 07:43:29.24ID:4GCasPgj
質問の仕方を変えます。

processorArchitecture='*'

と書けば、所謂ワイルドカードのような作用で、あらゆるプロセッサアーキテクチャに対応できる、という感じでしょうか?
0986デフォルトの名無しさん2015/04/09(木) 08:34:20.17ID:I6al/A0q
>>975
>>966
0987デフォルトの名無しさん2015/04/09(木) 09:05:30.09ID:HSsJiXv7
あ
0988デフォルトの名無しさん2015/04/09(木) 09:41:26.04ID:jpCTMsVI
>>962>>985
http://blogs.msdn.com/b/oldnewthing/archive/2007/05/31/2995284.aspx
> There's no downside to '*' in this context.
0989デフォルトの名無しさん2015/04/09(木) 11:07:29.83ID:RdxVg7ma
うめ
0990デフォルトの名無しさん2015/04/09(木) 11:16:29.32ID:ebpY04d9
梅
0991デフォルトの名無しさん2015/04/09(木) 11:19:12.77ID:2F7Fsafq
>>978
無理もないけど世間知らずだな
知恵袋だろうといっぺんに質問してタダで働いて貰えるわけねーだろ
・プロセスを開くソース
・メモリにアクセスするソース、
・ボタンを押し下げるソース
・押し上げるソース
・以上の断片を組み合わせるソース
これらを全部ID変えて小刻みに質問するんだよ
0992デフォルトの名無しさん2015/04/09(木) 11:25:14.07ID:/AVabmO6
とりあえず、おまえらスレチな。作ってくださいスレに誘導して終了だ。

次スレよろ。
0993デフォルトの名無しさん2015/04/09(木) 18:07:11.15ID:Vh6AwiGf
>>984
ここです
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11144138566
見てみるだけじゃなくて教えてくれませんか? 
あ、でも質問一部間違えてて正し内容は>>971です
>>992
スレチじゃないです。たらい回しやめてください・・
作ってください、じゃなくて質問にコードで説明してほしいって言ってるだけなのに。
コンパイルは得意だからコードで説明してもらえればそのはあとは自分でできます
0994デフォルトの名無しさん2015/04/09(木) 18:17:34.38ID:Rhj0QTuK
あやうく Build12 で立ててしまうところだった


Win32API質問箱 Build120
http://peace.2ch.net/test/read.cgi/tech/1428570962/
0995片山博文MZ ◆T6xkBnTXz7B0 2015/04/09(木) 19:31:32.96ID:i9IefrdE
>>971
特別にヒント。

BOOL bLeftDown = FALSE;
という変数を増やす。
クリックする条件になったら
bLeftDown = TRUE;
にする。
bLeftDownがTRUEで、なおかつアドレス2の値が"zz"以外になったら離し、bLeftDownをFALSEにする。
mouse_eventをSendInputで置き換える。SendInputの使い方は自分で調べる。以上。
0996デフォルトの名無しさん2015/04/09(木) 20:28:15.33ID:i9IefrdE
株価上げ
0997デフォルトの名無しさん2015/04/09(木) 20:37:29.70ID:rW9xiAG/
コンパイルは得意とか新しいなw
0998デフォルトの名無しさん2015/04/09(木) 20:58:34.10ID:rW9xiAG/
次立ってるし埋め
アドレス1 xx & アドレス2 yyならLeftDownでyyをzzに
アドレス1 xx以外 or アドレス2がzz以外になったらLeftUp
BOOL値なんていらなくね
0999デフォルトの名無しさん2015/04/09(木) 20:59:54.96ID:Y9VlGhm1
メモリ読み取り関係のDLL作って
UWSCから使ったほうが楽だな
内部メモリを読んで動く赤石BOTを作ったのは良い思い出
1000デフォルトの名無しさん2015/04/09(木) 21:00:34.04ID:KfNzBHIT
うめ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。