Win32API質問箱 Build11 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2014/12/10(水) 12:12:49.40ID:Ii7h0n5Y■過去スレ
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:Ii7h0n5Y0003デフォルトの名無しさん
2014/12/10(水) 14:15:32.62ID:Bt3w6SNQ0004デフォルトの名無しさん
2014/12/10(水) 15:51:35.74ID:SNTk7rlrWin32API質問箱 Build119
わざとやってるだろω
0005デフォルトの名無しさん
2014/12/10(水) 18:21:01.18ID:Bv+lRwzhそれにしてもID出てからというもの良スレに成り下がりましたね
0006デフォルトの名無しさん
2014/12/10(水) 18:24:32.95ID:Bt3w6SNQ0007デフォルトの名無しさん
2014/12/10(水) 20:47:35.96ID:7ek4HD8a0008デフォルトの名無しさん
2014/12/11(木) 01:17:47.91ID:2YwrX4ciえー、と思った
0009デフォルトの名無しさん
2014/12/11(木) 05:53:28.00ID:HD31sjD5MSDNフォーラムを流し読みで、これが該当してるかと思ったのですが、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:qKHRQsDr0011デフォルトの名無しさん
2014/12/11(木) 10:23:06.73ID:4YWsTBXoDefWindowProc ( 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+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:CmTJh6DIDirectX SDKのCustomUIサンプルがもしかすると参考になるかも。
あれは変換候補リストを自前描画しているように見えたし。
0015デフォルトの名無しさん
2014/12/11(木) 12:26:04.04ID:4YWsTBXoレスさんくす。CustomUIは見てる
あのサンプル、WM_IME_から始まるメッセージを処理してる部分すべてに対して「DefWindowProcに任せて他に何もしない」ように書き換えても自前で描画しやがるんだよね
だからIMEのメッセージを処理する以外の方法でやってるんだろうけど、そうなると調べるきっかけが無くて困ってるんだわ…
0016デフォルトの名無しさん
2014/12/11(木) 15:49:31.91ID:qKHRQsDrhttps://www.youtube.com/watch?v=PrFd8dazSUs
https://www.youtube.com/watch?v=t8xKo11vqKU
0017デフォルトの名無しさん
2014/12/11(木) 16:19:31.00ID:CmTJh6DIWM_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:Knr7owVDWin7でテストしよっか?
0019デフォルトの名無しさん
2014/12/11(木) 17:23:39.08ID:4YWsTBXoおお、いけた!
Win7でもとりあえず期待通りに動いてる
STARTCOMPOSITIONだけ潰すという発想ができなかった
完全な思い込みだったわ
ありがと、助かった
>>18もありがと
0020デフォルトの名無しさん
2014/12/12(金) 23:32:09.07ID:1WcHfeh2GoogleIMEは候補リスト非表示にしたらIMN_OPENCANDIDATEとIMN_CLOSECANDIDATE送らなくなったりするし
予測変換リスト消せないし
0021デフォルトの名無しさん
2014/12/13(土) 06:14:59.62ID:KcZztYF+0022デフォルトの名無しさん
2014/12/15(月) 17:08:35.86ID:ki2QYat8候補リストが閉じられたことをどうやって判断すれば良いんだろう
キー入力や変換状況から推測するしかないのか?
0023デフォルトの名無しさん
2014/12/15(月) 22:06:20.53ID:ZdlYoZ19これの戻り値は、正常を含めて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普通にトップページのHTMLダウンロードしたわ
0025デフォルトの名無しさん
2014/12/15(月) 22:55:54.12ID:ZdlYoZ19URLDownloadToFileのせいじゃなくて、それを含むDLLのアップデートが必要ってことなんでしょうね
0026デフォルトの名無しさん
2014/12/16(火) 00:13:30.39ID:OxbDdIsh>>23は無かったことにして下さい
URLが間違ってただけでした
0027デフォルトの名無しさん
2014/12/16(火) 18:58:26.88ID:PuXxa6T90028デフォルトの名無しさん
2014/12/16(火) 19:36:52.01ID:I/xcQtqDプロトコルが間違ってるつってんだから
0029デフォルトの名無しさん
2014/12/16(火) 20:04:42.76ID:O3FTYGHy0030デフォルトの名無しさん
2014/12/16(火) 20:15:20.84ID:C7o/2Q890031デフォルトの名無しさん
2014/12/16(火) 20:56:02.75ID:RnBy1HD6趣味でやるならC++のほうが応用利く
C#はやりたいことが出来ないことがちょいちょいある
0032デフォルトの名無しさん
2014/12/16(火) 21:07:33.11ID:O3FTYGHy趣味だしC++でやるかな。いろいろ変態なことしたいし
0033デフォルトの名無しさん
2014/12/16(火) 21:11:26.66ID:iZ4fodMn0034デフォルトの名無しさん
2014/12/16(火) 21:19:29.42ID:73pYDHtyC++で組み込みのほうが稼げるよ
0035デフォルトの名無しさん
2014/12/16(火) 21:44:21.67ID:O3FTYGHy0036デフォルトの名無しさん
2014/12/16(火) 21:45:20.29ID:I/xcQtqD0037デフォルトの名無しさん
2014/12/16(火) 21:46:20.41ID:WkYd0GRJ最低でもWTL位は使うと思うぞ。
0038デフォルトの名無しさん
2014/12/16(火) 21:58:02.07ID:rJ4g6hQd最初のコロンの前がプロトコルを指定するということを知らない人は多い
まあ、そういう人がこの板にいるのはどうかと思うが...
0039デフォルトの名無しさん
2014/12/16(火) 22:00:52.40ID:O3FTYGHy0040デフォルトの名無しさん
2014/12/16(火) 22:01:40.09ID:rJ4g6hQd> C#はやりたいことが出来ないことがちょいちょいある
インラインアセンブラとか、ライブラリー含めたオブジェクトサイズ命とか?
他に何かあるかなぁ?
0041デフォルトの名無しさん
2014/12/16(火) 22:08:06.10ID:XedjYbmGじゃあ最初からC++でやるわ
>>35
CreateWindow書きまくってるわ!
0042デフォルトの名無しさん
2014/12/16(火) 22:24:28.50ID:iZ4fodMnWM_COMMAND WM_NOTIFY とか、もうちょっとWindows自体のメッセージの仕組みがどうにかならんかな。
0043デフォルトの名無しさん
2014/12/17(水) 14:46:21.16ID:ejUwy2/1治そうと思ったら基礎から創りなおさないといけないので無理
0044デフォルトの名無しさん
2014/12/17(水) 15:05:18.23ID:M4DlxzNU0045デフォルトの名無しさん
2014/12/17(水) 15:31:21.24ID:31zY9Bk5あほか
C#から呼ぶWin32APIやCOMメソッドの味こそ至高
0046デフォルトの名無しさん
2014/12/20(土) 11:55:41.16ID:ktPib6WICallWindowProc()がなぜ必要かについて教えてください
もとのウィンドウプロシージャを、シンボルなり関数ポインタなりで直接呼出しちゃいかんの?
ネットに転がってるサンプルとかだと、サブクラス化でウィンドウプロシージャをFoo()に変えるときは
Foo()からCallWindowProc()経由で元のウィンドウプロシージャを呼び出し、
ウィンドウ生成時にウィンドウプロシージャFoo()を指定したときは
Foo()からDefWindowProc()直接呼出し、みたいな傾向で使い分けられてるようなんだけど
意味わかんね;
0047デフォルトの名無しさん
2014/12/20(土) 12:15:43.77ID:e+FqSQyU0048デフォルトの名無しさん
2014/12/20(土) 12:25:32.32ID:ktPib6WI0049デフォルトの名無しさん
2014/12/20(土) 12:44:10.96ID:Rb9drWZDサブクラス化が解除された時にチェインが切れてしまうから。
1がサブクラス化、2がサブクラス化、1がサブクラス化解除してさようならって順番になった時、
OSが管理していれば2から解除後のプロシージャに繋げることができる。
0050デフォルトの名無しさん
2014/12/20(土) 12:57:40.39ID:Rb9drWZDGet/Set/RemoveSubclassとDefSubclassProcってのがある。
0051デフォルトの名無しさん
2014/12/20(土) 19:49:13.64ID:yFHMiTkQ0052デフォルトの名無しさん
2014/12/20(土) 20:02:12.53ID:Rb9drWZDこのまま解答は謎のまま終わるのだろうしw
0053デフォルトの名無しさん
2014/12/20(土) 20:41:38.02ID:d3OhbbmF内部でどうやってるのかは知らんけど
WIn32APIってある関数を関数ポインタから直接呼び出さないようにするためのAPIって他にもあった気がする。
元のウィンドウプロシージャがウィンドウプロシージャとは思えないような名前になっている場合でも
CallWindowProc()によって呼ばれていればウィンドウプロシージャとすぐ分かるとか(→まず命名規則を直せwと言われる)
あとコードの中で関数ポインタを使ってそのまま呼び出すと、それが普通の関数との区別が付きにくいから、
普通の関数ではなく関数ポインタを使って呼び出してますよ〜っていうアピールとか
ただ、稀にそういう無駄に思えるAPIにはなんらかの安全装置が入っている場合もあると思う
NULLの場合は呼ばないとかね
まぁ適当に書いたw
0054デフォルトの名無しさん
2014/12/21(日) 07:13:15.86ID:8360BKUsその内容をクリップボードにコピーするにはどうすればいいですか?
テキストをビットマップで描画した場合はそういう動作を実装するのは原始的な方法でやるしかないと思います。
例えば、独自のデータクラスでテキストのフォント情報とウィンドウ内での表示位置を保持しておいて
マウスカーソルが該当位置に入ったときに、マウスポインタをテキストカーソルに変更してテキストを選択、コピーできるようにするといった方法です。
テキストをスタティックテキストとして表示した場合は選択してコピーという動作は不可能ですか?
質問を率直に表現すると、一般的なウェブブラウザやメーラーでの実装がどうなってるのか知りたいです。
0055デフォルトの名無しさん
2014/12/21(日) 10:13:26.13ID:Cbe/fEHP0056デフォルトの名無しさん
2014/12/21(日) 22:08:16.21ID:nIdOkAPbまあ、SDK Books Onlineに全てが書かれているわけでも無し、
Win16の時点で既に別の用途を持っていた可能性もあるか。
0057デフォルトの名無しさん
2014/12/21(日) 22:13:14.89ID:OyijOBJqWhy 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:wKRFgZ7F0059デフォルトの名無しさん
2014/12/23(火) 19:48:02.42ID:hFB1tnzjSS_CENTERIMAGE
0061デフォルトの名無しさん
2014/12/24(水) 01:05:28.96ID:EbeXH3Zwここに簡潔に書くことはできない
非常に手の込んだことやる
手探りならHTML->RitchTextコンバータ作ってRitchTextCtrlでごまかせ
0062デフォルトの名無しさん
2014/12/24(水) 01:08:44.57ID:Y7j7WALAkeybd_eventでctrl+cなどのクリップボードコピーのショートカットキーを合成
0063デフォルトの名無しさん
2014/12/24(水) 01:14:30.06ID:tVM9CYMMWMIのWin32_Processテーブルで実行中アプリ一覧は取得できたんですけど、
アクティブなのかとかウィンドウの順序がわかりませんでした。
VBSを実行するとVBSがアクティブになるようなので、直前にアクティブだったモノを取得したいです。
0064デフォルトの名無しさん
2014/12/24(水) 02:47:17.94ID:Xbr7BZOuスタティックコントロールならGetWindowsTextで出来るし
TextOutや画像の場合はOCRで判別しないとだめな事は分かるが
ブラウザやメーラーのどんな機能を求めてるのかがいまいちわからない
オープンソースで沢山あるから求めるものを探してみては?
>>63
いろいろやり方あるけど
CUIオンリーで作るか
GUIでやるならGUI生成前にアクティブなウィンドウを保持すればいい
0065デフォルトの名無しさん
2014/12/24(水) 11:33:52.81ID:mx5B7sKsSTATICテキストに文字列を改行を含めて複数行書きこんだら、Dialogの
高さが足りなくて、下のほうが表示出来ないのですが、STATICテキスト
全体が丁度うまく入るようにDialogの高さを自動的に調整するには、
どういう手法がありますか?使うフォントやサイズから必要な高さを
計算するしかないでしょうか?
0066デフォルトの名無しさん
2014/12/24(水) 12:11:28.08ID:GkceODzbCreateWindowでダイアログボックスっぽいウインドウを自作してるのか、それともフォントを動的に変更したいのか?
フォントが固定なら、あらかじめサイズ測ってそれが収まるサイズで作れば良いんじゃね
0067デフォルトの名無しさん
2014/12/24(水) 12:18:20.64ID:mx5B7sKsレスありがとうございました。
リソースで用意したダイアログボックスをDialogBoxで呼び出しています。
CreateWindowは使っていません。
フォントが固定です。
この場合には、この使っているフォントの高さを予め測っておいて、それに
行数を掛ければよいのでしょうか?
0068デフォルトの名無しさん
2014/12/24(水) 12:22:58.34ID:mx5B7sKs良く考えたら、横方向も、一番長い行に合わせてウインドウ幅を
広げないといけないように思うのですが、それも自前で実装する
必要ありますか?
0069デフォルトの名無しさん
2014/12/24(水) 12:23:48.12ID:mX/5YedWリソースは何で作ってんの
リソースエディタなら最初から必要な分だけ高さ持っとくではダメなん?
0070デフォルトの名無しさん
2014/12/24(水) 12:25:35.17ID:mx5B7sKsああ、書き忘れていました。フォントは固定ですけれど、
表示する文字列は、状況に応じて変えたいのです。
0071デフォルトの名無しさん
2014/12/25(木) 00:57:35.40ID:lIKku1jt0072デフォルトの名無しさん
2014/12/25(木) 01:11:18.47ID:hIjBmD/Aリンク先パスってどうやって取ればいい?
0073デフォルトの名無しさん
2014/12/25(木) 01:20:46.64ID:g3diUBPeMessageBoxって、表示する文字列に応じて、縦横サイズは
自動で調整されたっけ?
確か、横幅は勝手な値になったような気がする。
0074デフォルトの名無しさん
2014/12/25(木) 01:28:01.75ID:hWcCZ3d4「Junctions と Symbolic Links を見分ける」って記事で、参考になりそうな情報が載ってた
>>73
ある程度は可変だけど、横の長さは限界があったような
0075片山博文MZ ◆T6xkBnTXz7B0
2014/12/25(木) 06:02:25.32ID:gEw73of1DrawText
使えば、洗濯中のフォントでテキストの大きさが計算できる
0076デフォルトの名無しさん
2014/12/25(木) 07:21:41.79ID:iVu6887zDeviceIoControlを使う
0077デフォルトの名無しさん
2014/12/25(木) 07:48:06.58ID:hIjBmD/ADeviceIoControlのFSCTL_GET_REPARSE_POINTで取れそうだね
ありがとう
0078片山博文MZ ◆T6xkBnTXz7B0
2014/12/25(木) 15:02:58.41ID:gEw73of10079片山博文MZ ◆T6xkBnTXz7B0
2014/12/25(木) 15:52:04.46ID:gEw73of10080サトラレ3
2014/12/25(木) 17:34:46.20ID:EHIgPikdCRT 関数のセキュリティが強化されたバージョン
http://msdn.microsoft.com/ja-jp/library/wd3wzwts.aspx
0081デフォルトの名無しさん
2014/12/25(木) 17:51:52.84ID:sOzYbLID0082デフォルトの名無しさん
2014/12/25(木) 19:31:42.18ID:g3diUBPevisual studioが自動的に_s関数に置き換えてくれると
嬉しいんだけどなあ。
0083デフォルトの名無しさん
2014/12/25(木) 19:42:12.64ID:/AazF+Ck0084デフォルトの名無しさん
2014/12/25(木) 19:45:23.74ID:g3diUBPeそれを考慮して自動的に変換するくらい
やれば出来るだろ。
0085片山博文MZ ◆T6xkBnTXz7B0
2014/12/25(木) 19:51:05.09ID:gEw73of1templateでできそうだな。GitHubにアップップしてくれよ。
0086デフォルトの名無しさん
2014/12/25(木) 19:53:16.23ID:TNXAHmr60087デフォルトの名無しさん
2014/12/25(木) 20:03:52.00ID:DUSQtRDS効果があるのか疑わしい
0088デフォルトの名無しさん
2014/12/25(木) 22:08:24.76ID:WcNb3TxT0089デフォルトの名無しさん
2014/12/25(木) 22:32:06.97ID:hWcCZ3d40090デフォルトの名無しさん
2014/12/26(金) 02:51:46.48ID:9kx5MszT原因と対策が知りたいです
0091デフォルトの名無しさん
2014/12/26(金) 07:37:15.32ID:MY2qGPtA0092デフォルトの名無しさん
2014/12/26(金) 07:45:39.55ID:E/d/nF+F0093デフォルトの名無しさん
2014/12/27(土) 07:37:15.02ID:1yD8UlHJ0094デフォルトの名無しさん
2014/12/28(日) 18:48:47.92ID:6Z3FAnif0095デフォルトの名無しさん
2014/12/28(日) 18:52:59.69ID:vTsBbpaJ0096デフォルトの名無しさん
2014/12/28(日) 20:08:19.98ID:AQDitcxr違う、ハーバードアーキテクチャは命令とデータが別になってる
戻り番地は命令じゃない
0097デフォルトの名無しさん
2014/12/29(月) 11:35:57.58ID:5nnfxQgpイイネ!
0098デフォルトの名無しさん
2014/12/29(月) 14:20:58.47ID:S3K6lQ9WHDDのドライブに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ファイル作成イベントを監視するより、作成先のパスにアクセスしてる奴を探したほうが良いのでは?
>>99
それ、起動時に実行されるパスを記述するとこだろ
0101デフォルトの名無しさん
2014/12/29(月) 14:35:16.58ID:MO2YxmqXその仕組みを無効にしたら時限爆弾のスイッチが入るかもしれんぞww
おとなしくまっさらにしてOSを入れ直しとけ
0102デフォルトの名無しさん
2014/12/29(月) 14:45:29.22ID:/fu+2Q3X起動時にウィルスが実行されるんじゃないの
0103デフォルトの名無しさん
2014/12/29(月) 15:15:51.18ID:S3K6lQ9W0104デフォルトの名無しさん
2014/12/29(月) 15:49:07.15ID:OoIX/QSt0106デフォルトの名無しさん
2014/12/29(月) 21:43:29.71ID:l6t0xFiE0107デフォルトの名無しさん
2014/12/29(月) 22:22:06.28ID:OjECgY52タスクスケジューラとスタートアップは見たのかな?
0108デフォルトの名無しさん
2014/12/30(火) 00:15:47.68ID:smW2R/O90109デフォルトの名無しさん
2014/12/30(火) 00:17:44.22ID:smW2R/O9一般ユーザーならどこかに実態があるな
0110デフォルトの名無しさん
2014/12/30(火) 00:31:13.33ID:xDBp8ctI・レジストリのAutoRunとAutoRunOnce(HKCUとHKLMの両方に存在)
・スタートメニューのスタートアップ
・コントロールパネルの管理メニューのサービス
・アクセサリのシステムツールのタスクスケジューラ
がある
特にタスクスケジューラに登録されたプログラムは起動タイミングが多様に設定できる
0111デフォルトの名無しさん
2014/12/30(火) 00:39:49.88ID:eN0LA0SP>AutoRunとAutoRunOnce
RunとRunOnceではなくて?
あと、スタートメニューのスタートアップとmsconfig(Win8の場合はタスクマネージャ)で設定出来るスタートアップは別だよね
0112デフォルトの名無しさん
2014/12/30(火) 00:47:11.64ID:xDBp8ctIそうRunとRunOnce
前のレスのほうでのAutoの文字につられてしまった
msconfigで見れるスタートアップはレジストリのRunとスタートメニューのスタートアップの列挙じゃね
0113デフォルトの名無しさん
2014/12/30(火) 01:49:40.88ID:si9v+Xxr0114デフォルトの名無しさん
2014/12/30(火) 01:57:12.63ID:JWtJz6A10115デフォルトの名無しさん
2014/12/30(火) 02:28:36.54ID:8Geo16jiプロジェクトによって出力内容が少し変わるような場合ってどうしてる?
そのクラスは機能毎に分けられてる小さなクラスで
将来プロジェクトAとBに使用された場合ログ出力部分だけが
プロジェクトAとBで違う動作になる感じ
0116デフォルトの名無しさん
2014/12/30(火) 02:29:29.57ID:8Geo16ji0117デフォルトの名無しさん
2014/12/30(火) 08:20:02.76ID:z/APKETI条件付きコンパイル
0118デフォルトの名無しさん
2015/01/02(金) 12:53:58.03ID:3QN74PF7_In_ const FILETIME *lpFileTime,
_Out_ LPSYSTEMTIME lpSystemTime
);
で入力のFILETIME構造体の中身が0の場合、
1601/01/01 00:00:00
が帰って来るようなのですが、これはそういう仕様でしょうか?
0119デフォルトの名無しさん
2015/01/02(金) 13:02:54.04ID:s3wWdubz0120デフォルトの名無しさん
2015/01/02(金) 13:13:58.61ID:9DuwxUctFILETIME構造体だから、そりゃそうだろって感じではある。
0121デフォルトの名無しさん
2015/01/02(金) 13:28:24.30ID:gE/lARkH0122デフォルトの名無しさん
2015/01/02(金) 13:58:51.17ID:3QN74PF7仕様ですか。マイクロソフトのサイト見ても仕様だとは書いていないのですが。
どこかに情報ありますか?
一方、大きな値を与えた場合には
FILETIME の値が 0x8000000000000000 以上の値である場合、この関数は失敗します。
という説明はありますが、確かにこれ以上の値を与えるとエラーしました。
でも、戻り値のSYSTEMTIME構造体の中には、非常に大きな年月日が入っていて、いつも
同じ値なのですが、これも仕様でしょうか?エラーの場合に戻り値が異なる可能性ありますか?
0123デフォルトの名無しさん
2015/01/02(金) 14:10:26.44ID:WWxidtQA0124デフォルトの名無しさん
2015/01/02(金) 15:05:12.79ID:hrliGDH8http://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>仕様ですか。マイクロソフトのサイト見ても仕様だとは書いていないのですが。
MSのサイトの何処かには書いてるんだが、それがMSDNマガジンの中にしか無いってこともあるし。
まとめて書いてくれてたりハイパーリンクがあったりはしなくて情報は分散してる。
0126デフォルトの名無しさん
2015/01/02(金) 15:16:26.95ID:hrliGDH8何故 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私の質問は、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:hrliGDH8time_t の発案者に聞いてみないと分かんね
0130デフォルトの名無しさん
2015/01/02(金) 15:45:28.67ID:C0yW4Jjrhttp://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ん? 何時の間にか変換が逆になってない?
0132デフォルトの名無しさん
2015/01/02(金) 15:51:02.77ID:9BexYNG0> http://msdn.microsoft.com/ja-jp/library/x3399a54.aspx
> >FILETIME の構造は、1601 年 1 月 1 日 1 時以降
翻訳間違えてるな
原文には 1時なんて書いてないのに
0133デフォルトの名無しさん
2015/01/02(金) 15:53:42.93ID:C0yW4JjrFILETIME構造体は最小単位が100ナノ秒
SYSTEMTIME構造体からFILETIME構造体に変換した際に100ナノ秒の位の値を弄らないだけじゃね
0134デフォルトの名無しさん
2015/01/02(金) 16:04:40.76ID:hrliGDH8>この記事は翻訳者によって翻訳されたものです。
誰かが機械翻訳に手を入れて間違えたのをMSがまんま承認したんだろな
0135デフォルトの名無しさん
2015/01/02(金) 16:05:40.80ID:hrliGDH8SystemTimeToFileTime のソースコード見れば解決するw
0136デフォルトの名無しさん
2015/01/02(金) 16:11:22.40ID:WWxidtQA0137デフォルトの名無しさん
2015/01/02(金) 17:02:21.26ID:ibIo6Doo> 私の質問は、systemtimeの
> 1601/01/01 00:00:00をfiletimeに変換すると二つの32bit正整数が得られると思いますが、それはゼロではありません。
再現しない(普通に 0, 0 になる)
コード晒してみなよ
0138デフォルトの名無しさん
2015/01/03(土) 00:30:12.85ID:FOthHXBB0139デフォルトの名無しさん
2015/01/03(土) 01:11:31.96ID:TeAjaTLz0140デフォルトの名無しさん
2015/01/03(土) 01:31:24.07ID:ekZNF4RP1秒寝る場合
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
と
::Sleep(1000);
では相対的な意味でどちらのほうが高精度なんですか?
0141デフォルトの名無しさん
2015/01/03(土) 05:27:44.21ID:Cj8CgFQvconcurrency::wait
を呼んでいて精度はmilliseconds
なのでどっちも同じ
0142デフォルトの名無しさん
2015/01/03(土) 08:46:05.08ID:zznC6x/dわざわざテストして頂いてありがとうございました。
私の勘違いでした。1601/1/1は0,0になりました。失礼しました。
でも、不思議なのは、
FileTimeToSystemTimeは
FILETIME の値が 0x8000000000000000 以上の値である場合、この関数は失敗します。
とあるので、0x7FFFFFFFFFFFFFFFで試したら成功したのですが、これは良いのですが、
それで得られたsystimeの値を、逆にSystemTimeToFileTime
で逆変換したらエラーしました。不思議です。
0143デフォルトの名無しさん
2015/01/03(土) 09:20:56.59ID:X+rqV4BU有効範囲が違うだけだろ
SYSTEMTIME の wYear の最大値は 30,827 だけど、0x7FFFFFFF, 0xFFFFFFFF の FILETIME を SYSTEMTIME に変換すると wYear は 30,828 になる
有効範囲を合わせるという考え方もあるけど、範囲チェックのやり易さとかを優先したんだろ
0144デフォルトの名無しさん
2015/01/03(土) 09:55:50.41ID:g9tk+6B8そんな未来の話してたら鬼が笑いすぎて死ぬ
0145デフォルトの名無しさん
2015/01/03(土) 13:12:33.23ID:zznC6x/d30,827や30,828という数字が最大値になっているのは、何か意味があるのでしょうか?
32767とか65536みたいな数字なら分るんですが。
0146デフォルトの名無しさん
2015/01/03(土) 13:28:02.85ID:/mlvjoc50147デフォルトの名無しさん
2015/01/03(土) 13:34:30.45ID:uW6/ZV960x7F...F を SYSTEMTIME に変換したら 30,828年の途中の月日になってるから、年を 30,827年までにしたんじゃね?
そうすりゃ、月日をどう指定されても 0x7F...F を越えないから
0148デフォルトの名無しさん
2015/01/03(土) 13:49:29.60ID:2aVYf00S0149デフォルトの名無しさん
2015/01/03(土) 14:05:18.45ID:g9tk+6B8それが世界滅亡の年だから、MSの技術者はそれより先は不要と考えた
0150デフォルトの名無しさん
2015/01/03(土) 15:37:38.64ID:TeAjaTLz0151デフォルトの名無しさん
2015/01/03(土) 15:49:38.39ID:6GQPH0EDクレーマー気質だな
0152デフォルトの名無しさん
2015/01/03(土) 17:02:48.26ID:ltaLXIWr0153デフォルトの名無しさん
2015/01/03(土) 22:47:59.25ID:zznC6x/d出来ますが、それをプログラム的に
行えるようなWIN32API有りますか?
0154片山博文MZ ◆T6xkBnTXz7B0
2015/01/03(土) 22:51:42.29ID:XgnEofgFInvalidateRect
TranslateAccelerators
0155片山博文MZ ◆T6xkBnTXz7B0
2015/01/03(土) 22:56:01.13ID:XgnEofgFレジストリー関数、
ツリービューコントロールの更新、
リストビューコントロールの更新
0156デフォルトの名無しさん
2015/01/04(日) 00:51:37.92ID:VkrGGUiZレジストリ情報を表示する処理をルーチン化して、
アプリ起動時の初期表示とF5が押された時にそれを呼び出す
0157デフォルトの名無しさん
2015/01/04(日) 00:52:53.28ID:OnSb2bmJwww
0158デフォルトの名無しさん
2015/01/04(日) 01:14:46.04ID:lS1m/u6U0159デフォルトの名無しさん
2015/01/04(日) 02:36:02.78ID:KhFc6V4y0160デフォルトの名無しさん
2015/01/04(日) 04:36:56.74ID:Se//G/GlUAC昇格が必要っぽいけど。
0161デフォルトの名無しさん
2015/01/04(日) 05:27:09.82ID:45GcCJJQ0162デフォルトの名無しさん
2015/01/04(日) 08:30:09.06ID:xLQUt7ms出来ません。どうすれば出来ますか?
0163デフォルトの名無しさん
2015/01/04(日) 09:50:40.02ID:eaSAVEXU0164デフォルトの名無しさん
2015/01/04(日) 10:06:12.02ID:+b+eo/V40165デフォルトの名無しさん
2015/01/04(日) 11:07:44.66ID:iACTx4eq0166デフォルトの名無しさん
2015/01/04(日) 18:49:49.23ID:jxWL1hkjスト�Uでしゃがみ小キックを連打とか
F5キー連打キーボードっての作ればバカ売れじゃね?
韓国あたりで
0167デフォルトの名無しさん
2015/01/04(日) 20:10:44.38ID:9gg44y730169デフォルトの名無しさん
2015/01/05(月) 05:03:36.91ID:W+aVkjp40170デフォルトの名無しさん
2015/01/05(月) 20:11:15.00ID:c3CM6ukt0171片山博文MZ ◆T6xkBnTXz7B0
2015/01/06(火) 14:28:33.60ID:hDnOTpqThttps://github.com/katahiromz/DoWonders98
よろしく。
0172片山博文MZ ◆T6xkBnTXz7B0
2015/01/06(火) 14:52:45.97ID:hDnOTpqTあったので、Win32 APIのデータベースを作ることにした。
興味があったら開発に参加して下さい。
0173デフォルトの名無しさん
2015/01/06(火) 14:58:57.69ID:/3+lVyCtドラッグしてるファイルを他のファイルにドロップする方法が分かりません
フォルダへのドロップにらSHFileOperationで、実行ファイルへのドロップならCreateProcessで何とかなりますが、
ZIPファイルへのドロップとか、エクスプローラーなら圧縮ファイル内に追加したりできるのでそれを再現したいんです
後、IDropTargetのDragOverのタイミングでそれがドロップ出来るファイルなのか判別する方法も出来れば
0174デフォルトの名無しさん
2015/01/06(火) 18:13:47.26ID:vIVMYKnQつ ttp://www.pinvoke.net/
0175デフォルトの名無しさん
2015/01/06(火) 18:16:30.34ID:F2LheoCu適当なライブラリ使って実装したほうがいい
0176デフォルトの名無しさん
2015/01/06(火) 18:42:55.32ID:/3+lVyCtいや、それがxfinderとか一部のファイラーでは出来るものがあるんですよ、
ソースの公開されてるexplorer++では残念ながら出来ないので参考にならず…
0177デフォルトの名無しさん
2015/01/06(火) 18:51:24.99ID:/3+lVyCtこれでどうにか解決できそうです
0178デフォルトの名無しさん
2015/01/06(火) 19:38:22.42ID:fuOYowxU0179デフォルトの名無しさん
2015/01/06(火) 19:40:23.59ID:W2F4pWSu0180デフォルトの名無しさん
2015/01/06(火) 21:14:47.07ID:RodQ+aTP0181デフォルトの名無しさん
2015/01/06(火) 21:17:40.45ID:Q7R46vB50182デフォルトの名無しさん
2015/01/06(火) 21:23:32.55ID:nQ44NX4PファイルからIDataObject作って(SHCreateDataObject api等)
それをターゲットのIDropTargetにDragEnter&Dropする
DragOverで正しい引数を渡してやればeffectにドロップできるかどうかが入ってるでしょ
0183デフォルトの名無しさん
2015/01/06(火) 22:32:22.60ID:/3+lVyCt(=゚ω゚)ノ 大体分かりました。どもです。
0184デフォルトの名無しさん
2015/01/07(水) 09:01:46.88ID:GreZiodLまあ自分でSetDataすればいいな
0185デフォルトの名無しさん
2015/01/08(木) 20:31:36.79ID:cV2um/1tDragEnter/DragOver/Dropでドラッグされてるファイルや状態のデータが送られてくるので、
それを作ったドロップ先のドロップターゲットで処理させることで目的のeffectを受け取ったりドロップすることが出来ました
DragOverだけは効率を理由?にIDataObjectが受け取れないのでDragEnterのタイミングでとっておいたポインタを利用
マウスの入力はDropのタイミングでは当然ボタンが離されているので何も押されていない状態を受け取ってしまう
こちらはDragEnterのタイミングで左右どちらのドラッグか取得しておき、最後に入力状態に結合すればイイだけですね
これで問題なさそうです
本当に助かりました、感謝します
0186デフォルトの名無しさん
2015/01/09(金) 09:22:24.41ID:+YxGEmiz調べたところこのような感じのことがネットに出ていたのですが、間違いないでしょうか
・systemではウィンドウを非表示にできない。
・ShellExecuteでは終了待ちができない。
・CreateProcessでは32bitから64bitを呼び出せない。
395 名前: デフォルトの名無しさん [sage] 投稿日: 2015/01/
0187デフォルトの名無しさん
2015/01/09(金) 09:45:14.13ID:50+lIvWd従って起動するコマンドの実行ファイルが64bitモードで作られていれば自動的に64bitモードで実行されると思いますけど。
32bit用と64bit用で同名のコマンドがある場合でも64bitの実行ファイルをフルパス指定すれば良いだけだと思います。
0188デフォルトの名無しさん
2015/01/09(金) 09:53:04.76ID:7W6E51j50189デフォルトの名無しさん
2015/01/09(金) 09:53:33.44ID:50+lIvWd0190デフォルトの名無しさん
2015/01/09(金) 10:42:48.54ID:Y0WqIXzk試してないけど 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日本語
http://hp.vector.co.jp/authors/VA024411/vbtips02.html
0192デフォルトの名無しさん
2015/01/09(金) 11:09:12.19ID:+YxGEmizまれなのでしょうか
0193デフォルトの名無しさん
2015/01/09(金) 11:21:48.80ID:Y0WqIXzkどこでだよ? そもそも「ShellExecuteExの終了待ち」なんて処理は存在しない。
あるのは「プロセスの終了待ち」だ。 それに失敗することがあるのなら、その詳細を洗えば良いだけだ。
0194デフォルトの名無しさん
2015/01/09(金) 11:46:14.62ID:+YxGEmizありがとうございます
0195デフォルトの名無しさん
2015/01/09(金) 12:38:25.21ID:+YxGEmizできました。ありがとうございます
0196デフォルトの名無しさん
2015/01/09(金) 17:09:44.37ID:JoT/J+XX0197デフォルトの名無しさん
2015/01/14(水) 11:02:50.08ID:H5VD+o7qリソースでは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早く教えなさいよ
0200デフォルトの名無しさん
2015/01/14(水) 13:41:54.76ID:zAqxDv6gそれがダメなら7でMSゴシで作れや。
0201デフォルトの名無しさん
2015/01/14(水) 14:21:03.25ID:0jHyb9lO0202デフォルトの名無しさん
2015/01/14(水) 14:21:13.77ID:Jf8EXx2H0203デフォルトの名無しさん
2015/01/14(水) 14:23:45.85ID:H5VD+o7qXPは他人のPCなのでMeiryoを入れられないのよ。
XPでMeiryo 9に近いフォントを教えなさいよ。
0204デフォルトの名無しさん
2015/01/14(水) 14:32:24.37ID:IApMgqT80205デフォルトの名無しさん
2015/01/14(水) 15:54:27.58ID:/jk0RY/v0206デフォルトの名無しさん
2015/01/14(水) 16:19:18.59ID:YWWt0yf50207デフォルトの名無しさん
2015/01/14(水) 16:35:44.94ID:/jk0RY/vpygameのひとか
0208デフォルトの名無しさん
2015/01/14(水) 16:36:24.61ID:t7e5aa/v0209デフォルトの名無しさん
2015/01/14(水) 16:39:53.75ID:ALs4owf50210デフォルトの名無しさん
2015/01/14(水) 17:03:00.45ID:H5VD+o7q208には感謝するわ。
でも複数行の文字列だと、Tahoma 8のほうが改行幅が
少ないのよね。行が詰まった感じ。どうしたら改行幅を
増やせるのか教えなさいよ。
0211デフォルトの名無しさん
2015/01/14(水) 17:20:55.37ID:0jHyb9lO0212デフォルトの名無しさん
2015/01/15(木) 10:55:50.96ID:WLm8ZLzH0213デフォルトの名無しさん
2015/01/16(金) 19:29:37.64ID:49OvZmoVWPFはいい感じなんだよな。いろんなパーツが入れ子に出来るし、
ハードウェアアクセラレーションも効くし、ベクタグラフィックもあるし。
ついにWin32APIを置き換える本命が来たって感じ。移行しようかなぁ。
あれを体験すると、オーナードローとかマジ糞ってかんじ。
0214デフォルトの名無しさん
2015/01/16(金) 19:31:35.22ID:3LWExJuS0215デフォルトの名無しさん
2015/01/16(金) 21:09:39.44ID:+s1rBzQ59年経っても全く普及しない時点で
何かおかしいと感じるくらいのアンテナ感度が欲しいところです
0216デフォルトの名無しさん
2015/01/16(金) 21:31:06.96ID:49OvZmoVところが最近の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ボタンの中に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風のドッキングウィンドウに対応しているのな。
動作は丸々VSそのもの。ドッキングするし、ツールバーはフローティングするし、
これはこれで凄いんだけど、吐き出されたソースコードがかなりカオスってて、
これを理解するのは骨が折れるので今更MFCは無いなと。
ツールバーにコンボボックスを表示するにはどうしたらいいのかなーとか思って
CMFCToolBarのソースコード見たけど、どうも昔ながらのビットマップとボタンベースな感じの
メソッドがずらりと並んでいたので、どうせハックじみたことをしないといけないのなら
もうWin32APIでいいやって感じ。まーMFCは無いわ。
0220デフォルトの名無しさん
2015/01/17(土) 06:53:00.14ID:wcQ46Ted0221デフォルトの名無しさん
2015/01/17(土) 09:29:43.56ID:VtVVV8DKそうっとしておこうよ。
0222デフォルトの名無しさん
2015/01/17(土) 10:42:58.44ID:Myj9loPB最近はpython使ってます
>>219
同意します
0223デフォルトの名無しさん
2015/01/17(土) 10:51:57.65ID:ZprTe1JK0224デフォルトの名無しさん
2015/01/17(土) 15:07:29.95ID:kMbky/jOそんな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:gnkFi13QWikipediaの記述にでも毒されて、スレタイすら読めなくなったか?
0228デフォルトの名無しさん
2015/01/17(土) 17:21:11.88ID:kMbky/jOツールバーにこだわる必要ある?
普通にウインドウにいろんなコントロール並べりゃ変わんないと思うんだが
リストボックスも、リストボックスやめてリストビューでオーナードローすりゃ何でも出来るでしょ
何ならリストを手描きにしちゃうとか
そもそも利用者はそんな凝ったUI望んでないと思うけどね
0229デフォルトの名無しさん
2015/01/17(土) 17:32:22.93ID:sqhqU9t5ListBox は使ってはいけない
だからな
0230デフォルトの名無しさん
2015/01/17(土) 17:55:34.39ID:ZprTe1JK元WPF開発者が「こんなものお為ごかしでロードマップでもなんでもない」とコメントするくらいなので
0231デフォルトの名無しさん
2015/01/17(土) 18:01:39.39ID:AnR/lVu0なんで?
0232デフォルトの名無しさん
2015/01/17(土) 19:45:05.38ID:VtVVV8DK>何でもかんでも入れ子に出来るWPFはそれなりに魅力あると思う。
MFCができたころも、そういういうオナニー画面を作る奴が続出したなあ
0233デフォルトの名無しさん
2015/01/18(日) 01:20:37.86ID:6QGj4g4i↑ここからリソースエディタダウンロードして使おうとしたら怪しいインストーラで、
そんなはずないなぁと思いつつインストールしたら、めっちゃたくさん広告インストールされて、
RedEditを必死にスタートメニュから探したけどインストールされてなかったorz
インストールされたやつ全部アンインストールして、chromeの設定初期化して、ウィルスソフトで
フルスキャンかけてるわ
超ムカつくから、どうにか仕返ししたいんだけど、何かいい方法ない?
0234デフォルトの名無しさん
2015/01/18(日) 01:29:42.69ID:3n+OvDNpOSをきれいさっぱりインストールし直した方が良さそうだがなあ、
君の能力的にw
0235デフォルトの名無しさん
2015/01/18(日) 01:48:34.84ID:6QGj4g4i今、それやるかどうかかなり迷ってる
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サイト自体を改ざんしてるんだから、インストーラをすり替えられるんだったらhtmlを少し書き換えるのも余裕だろ
0239デフォルトの名無しさん
2015/01/18(日) 04:30:22.27ID:VBkFi4Ohそこまで気にするならvsのdvd買って来いよw
0240デフォルトの名無しさん
2015/01/18(日) 04:33:48.74ID:vlONSagO同じサーバーに置くなよ
0241デフォルトの名無しさん
2015/01/18(日) 04:42:33.41ID:cyPihoPRまじでウイルスなの?怖いなぁ…
そんなん疑いなく入れるわ
0242デフォルトの名無しさん
2015/01/18(日) 04:43:36.39ID:6QGj4g4ihash値だけ別のサーバに置くなんてしてるとこある?
確かにそこまでやればセキュリティは十分だと思う
0243デフォルトの名無しさん
2015/01/18(日) 04:49:41.77ID:mjlEj2zRDownloadボタンを模した広告に引っかかったのか。
かわいそう(
0244デフォルトの名無しさん
2015/01/18(日) 04:56:51.19ID:6QGj4g4iちげーよ、サイトが改ざんされてるんだよ
↓このURL自体はいろんなサイトからリンク貼られてるから間違いない
http://www.resedit.net/
↓これがダウンロードリンクのURL。このサイト内だし名前もおかしくないから、どう見ても配布ファイルへのリンク
http://www.resedit.net/ResEdit-win32.zip
ファイル名に関しては、窓の社から落とせるファイルと同一
ファイルサイズも、700KB弱で本物と同じくらい
0245デフォルトの名無しさん
2015/01/18(日) 05:04:06.27ID:mjlEj2zRあー、すまん。確かにお前さんの言うとおりだわ。
0246デフォルトの名無しさん
2015/01/18(日) 05:05:41.06ID:EJiYTgCCだれか落として人柱になってみてよ。
0247デフォルトの名無しさん
2015/01/18(日) 05:05:59.57ID:7m1yfQlPuniextractで展開してもreseditの実体が見つからんから、たしかに改竄されてるかも知れん。
面倒くさいからそれ以上調べなかったが。
0248デフォルトの名無しさん
2015/01/18(日) 05:08:15.72ID:mjlEj2zR入ってるみたいだし、あかんな。
0249デフォルトの名無しさん
2015/01/18(日) 05:10:22.32ID:7m1yfQlPこっち使えよw
0250デフォルトの名無しさん
2015/01/18(日) 05:12:10.46ID:6QGj4g4i0251デフォルトの名無しさん
2015/01/18(日) 05:14:17.86ID:7m1yfQlP0252デフォルトの名無しさん
2015/01/18(日) 05:23:46.89ID:6QGj4g4iなるほど、これいいな。thx
0253デフォルトの名無しさん
2015/01/18(日) 05:33:28.01ID:EJiYTgCC広告が入ったのはチェックボックスクリアするの忘れたID:6QGj4g4iのポカで。
こんなマイナーメジャーなソフト狙ってわざわざWeb改竄してまで
利益の薄い広告ソフト仕込んでくるとはちょっと考えられないしなー。
今となってはMS謹製のリソースエディタがタダになったので、
ResEditもお役御免って感じだし。
0254デフォルトの名無しさん
2015/01/18(日) 05:54:55.64ID:6QGj4g4i5〜7ページくらいAcceptを押すと(この時点で明らかにおかしいんだが)
「バックグラウンドでインストールします」とか言ってインストーラの画面非表示にして
インストールしていくんだよね
そうするとchromeで普通にブラウジングするのも困難なほどアドウェアがインストールされる
0255デフォルトの名無しさん
2015/01/18(日) 05:58:18.94ID:mjlEj2zR> 単に作者がResEdit本体を入れ忘れたって可能性も。
ないな。
0256デフォルトの名無しさん
2015/01/18(日) 06:41:00.03ID:EJiYTgCChttp://lab.planetleaf.com/windows/development-win/free-visualcpp-extra-env.html
> ?2014.11.12 ResEditのリンクを作者のサイトから窓の杜のページへ変更しました。
> 作者の用意したインストーラーにはアドウェアが含まれるようになったようです。
> 配布も7z形式が削除され、インストーラー形式だけに絞られたようです。
> 善意のカンパに頼った開発には限界があると言うことを察してあげるべきかと思います。
0257デフォルトの名無しさん
2015/01/18(日) 06:46:42.07ID:EJiYTgCChttp://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左下に小さくDeclineってあるだろバカか
0260デフォルトの名無しさん
2015/01/18(日) 07:14:59.15ID:s5LGz3LPそれとResEditはインストール先の指定が無くて
ルートにインストールされてると思う
0261デフォルトの名無しさん
2015/01/18(日) 07:29:54.24ID:s5LGz3LP・最初にいくつか広告が入り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:sNaTaheH0263デフォルトの名無しさん
2015/01/18(日) 08:09:02.85ID:U80lDlYBVMWare上のwin7ゲストOS上でインストールし始めると、インストーラーの最初の画面が
http://neo.vc/uploader/src/neo16980.png
こんなんで、Decline するチェックボックスなんてなかった。
最近のAdは仮想PCかどうか見分けるらしいから、実機とは違う挙動なのかもしれないけど。
0264デフォルトの名無しさん
2015/01/18(日) 08:22:11.66ID:sNaTaheH0265デフォルトの名無しさん
2015/01/18(日) 08:25:54.29ID:s5LGz3LP1ページ目のチェックボックスは入れるかどうかではなく
ブラウザ起動した時の初期ページにするかどうかだからな
プログラム板でこうもひっかかりそうな奴ばかりなのは驚きなんだが
0266デフォルトの名無しさん
2015/01/18(日) 10:05:03.39ID:ENvWPWHO0267デフォルトの名無しさん
2015/01/18(日) 11:48:56.69ID:3n+OvDNp厨二なのかなんだかわからんけど、かっこつけるから。
0268デフォルトの名無しさん
2015/01/18(日) 12:21:36.93ID:s5LGz3LPvistaなんじゃね?
0269デフォルトの名無しさん
2015/01/18(日) 12:37:28.88ID:FrxzlsYx漏れもそれだと思ってた
馬鹿はこっちの想像以上に馬鹿だと認識を新たにした
0270デフォルトの名無しさん
2015/01/18(日) 13:24:52.28ID:6QGj4g4iマジか。俺の英語力が未熟だったようだ。これインストールするの難易度高すぎじゃね
これインストールしてもスタートメニューに登録されないし、デスクトップにショートカットが作られるわけでもない
それで、インストール先も選択できなくてルートに展開されるだけ
やっつけ作っただけじゃねーか、作者もう開発する気ないだろ
開発を継続しているならギリギリ許せるが、開発をやめてこういうインストーラに変えてくるって、
アドウェア認定されても文句は言えない
ちゃんとインストールはされるから、ウィルスソフトとかが反応しないし、たち悪すぎだわ
0271デフォルトの名無しさん
2015/01/18(日) 13:33:17.72ID:6QGj4g4iVSはPro持ってるけど、コンパイル済みのexeのリソースが見たかったんだよ。VSで見れる?
>>267
今回は結果的に窓の杜から落とせば問題なかったが、普通、インストーラーとポータブル版両方配布しているソフトだと、
窓の杜にはインストーラー版しかないから、本家のサイトからポータブル版探すようにしてた
インストーラーだと、OSクリーンインストールしたら消えちゃうから面倒なんだよ
0272デフォルトの名無しさん
2015/01/18(日) 13:33:27.86ID:xTVffeg80273デフォルトの名無しさん
2015/01/18(日) 13:52:15.78ID:6QGj4g4iマジだ。Win8.1の実機だと>>261のようになるけど、Hyper-V上の2008R2だと>>263の画面になるな
>>272
何が何でも叩きたいのかな
今回の件、ちゃんと分かってたのってID:s5LGz3LP1人だけなのに、なんでエラそうにしてんのか分からん
0274デフォルトの名無しさん
2015/01/18(日) 14:01:47.94ID:6QGj4g4iDeclineでスキップしても裏でPC情報送信か。完全にアドウェアじゃねーか
0276デフォルトの名無しさん
2015/01/18(日) 14:40:44.04ID:FrxzlsYx判ります
0277デフォルトの名無しさん
2015/01/18(日) 14:46:51.01ID:xTVffeg80278デフォルトの名無しさん
2015/01/18(日) 14:51:33.21ID:6QGj4g4iあ、ほんとだ。普通に編集できるな
ファイル→開く→ファイル で結構何でも開けるんだな
exe開こうと思ったことなかったから知らなかった
0279デフォルトの名無しさん
2015/01/18(日) 17:06:23.54ID:cyPihoPR0280デフォルトの名無しさん
2015/01/18(日) 18:23:46.91ID:3n+OvDNpVC++6.0でも見れたぞ?
0281デフォルトの名無しさん
2015/01/18(日) 19:18:55.17ID:6QGj4g4i0282デフォルトの名無しさん
2015/01/18(日) 20:13:03.11ID:cyPihoPRずっとメインで使ってるよ
0283デフォルトの名無しさん
2015/01/18(日) 20:38:31.95ID:MSgZJjrE0284デフォルトの名無しさん
2015/01/18(日) 22:50:49.49ID:1aKmdwrF男なら黙ってリソーススクリプト手書きだろ
0285デフォルトの名無しさん
2015/01/18(日) 23:07:07.73ID:ev6gB9KS0286デフォルトの名無しさん
2015/01/19(月) 15:27:24.31ID:G7rK5Vbu0287デフォルトの名無しさん
2015/01/19(月) 18:02:39.72ID:IywTVsIeこの場合、
0〜4294967295 までの値が可能だと思うのですが、
何らかのプロセスのIDがこの最大値4294967295を取るなんて言う
可能性はありますか?Win7 64bitの場合、タスクマネージャで見る限りは
0〜1万数千番台のIDばかりなので、IDの上限があるのかなと思いまして。
何か知っている人、教えて下さい。
0288デフォルトの名無しさん
2015/01/19(月) 18:39:51.00ID:IyMzAKva0289デフォルトの名無しさん
2015/01/19(月) 19:22:52.70ID:MmQiAK430xFFFFFFFF を「特定の意味」にして利用したいのか?
ProcessIDだけじゃなくその空間でThreadIDも管理されるらしい。
要するにProcessIDで使われていなくてもThreadIDで使われている可能性もある。
OSを起動しっぱなし、アプリケーションの起動、終了を繰り返すのでなければ
そうそう大きな数値が割り当てられることは無いと思う。
ただ、目に見えないスレッドの作成、破棄でもIDが利用されると思うから注意。
重複させない、再利用を控えるための広大な範囲だと思うので「利用されない」というのは保証されないかと。
すべてのプロセスとスレッドがその数まで行くことは滅多にないだろうけど、
そういう使い方は万一のときに見つけにくいバグになると思うから辞めたほうが良いと思うよ。
0290デフォルトの名無しさん
2015/01/19(月) 19:54:23.94ID:nizA7YRt0291デフォルトの名無しさん
2015/01/19(月) 20:14:51.32ID:MmQiAK430292デフォルトの名無しさん
2015/01/19(月) 22:05:02.14ID:kDSoR0IXhttp://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ドキュメント嫁や。
0295デフォルトの名無しさん
2015/01/20(火) 07:29:44.51ID:vL4d8jBj0296デフォルトの名無しさん
2015/01/20(火) 08:42:58.91ID:F6HHv4j5-2を使う香具師は絶対出て来る
0297デフォルトの名無しさん
2015/01/20(火) 09:15:21.65ID:Y4m7VuCx0298デフォルトの名無しさん
2015/01/20(火) 14:44:42.94ID:oo8ddG280299デフォルトの名無しさん
2015/01/20(火) 23:02:40.12ID:xTVoTmEb0300デフォルトの名無しさん
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:26vbf8jbvista 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:v3r7Cfk90304デフォルトの名無しさん
2015/01/22(木) 18:54:49.21ID:QOe1Cpixして取りこむことは可能でしょうか?
例えば、ウインドウを開いて、その中にnotepad.exeを取りこんでしまうとか、
あるいは、chrome.exeを取りこむとか。
0305デフォルトの名無しさん
2015/01/22(木) 19:57:21.01ID:cZyCjZExWS_CHILD
SetParent
0306デフォルトの名無しさん
2015/01/22(木) 21:41:49.73ID:d3EdR03lTB_GETBUTTONINFOのwPrarmはインデックスじゃなくてidのようだが
そこらへんは大丈夫か
0307デフォルトの名無しさん
2015/01/22(木) 23:11:36.48ID:26vbf8jb-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:o8k8FNHOVirtualAllocExで確保しているので大丈夫かと
0310デフォルトの名無しさん
2015/01/24(土) 10:52:26.66ID:hVWhGn4s0311デフォルトの名無しさん
2015/01/24(土) 12:23:16.07ID:XGtAEOPl子だし
0312デフォルトの名無しさん
2015/01/25(日) 04:07:58.18ID:/1Pjh8Oi0313デフォルトの名無しさん
2015/01/28(水) 22:49:55.78ID:Rh7TkJwS黒っ!
0314デフォルトの名無しさん
2015/01/29(木) 06:39:09.09ID:KP4aMXE30315デフォルトの名無しさん
2015/01/31(土) 17:34:15.17ID:HR7qMAjgの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+xwXMSDNのAPIのコメントに、XPだとlpSourceも必要だったって書いてあるから、
それでもう一度試してみては?
0317デフォルトの名無しさん
2015/02/01(日) 13:15:51.86ID:a7daD80fレスありがとうございました。
ご指摘の方法で上手く行きました。
何時間もググったのですが
>MSDNのAPIのコメント
を発見出来なかったのですが、もし可能ならそのアドレス教えて下さい。
0318デフォルトの名無しさん
2015/02/01(日) 19:12:09.43ID:ULsgfN/Lリストビューヘッダーも表示していますが、このヘッダーのカラムの間にマウスを持って行き
ドラッグするとカラムサイズが変更できますよね。
このサイズ変更中、境界線のみ描画されるのですが、カラム全体もリニアにサイズ変更・描画
するにはどうすればいいでしょう?
Windowsの設定で、ウィンドウサイズの変更の際に枠のみ描画して処理を軽くするテクニックが
昔からあったと思いますが、動作としては似たような感じに見えます。
しかし、現環境ではそのような設定は行っていません。
(ウィンドウサイズ変更に対してリニアに再描画されている)
0319デフォルトの名無しさん
2015/02/01(日) 20:07:50.82ID:5WStzBZM0320デフォルトの名無しさん
2015/02/01(日) 20:28:55.23ID:ULsgfN/Lstyleはリソースからコピペすると、
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:mSRFIK7lVista以降はmanifestでCommon-Controls v6の指定も必要
0322デフォルトの名無しさん
2015/02/02(月) 06:02:17.09ID:okdaZ/Vpmanifest追加で解決しました。ありがとうございます。
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:AqPQb7sPwhl いくつになってるのよ?
> 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>1 回のホイールクリックは、WHEEL_DELTA として定義されていて、この値は 120 です。
0326デフォルトの名無しさん
2015/02/03(火) 08:17:49.98ID:FgNHFzEr>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>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実機のマウスでホイールを一回カチっとなる時に一回だけ発生してほしいのですが
0329デフォルトの名無しさん
2015/02/03(火) 08:33:39.72ID:AqPQb7sPホイール1回相当のために data.mi.mouseData に指定すべき値は WHEEL_DELTA(=120) か 1 かどっちかだと思うが、試してみて。
あと、念のため setMouseWhl() がボタン1回ごとに1回だけ呼ばれているかも確認して欲しい。
0330デフォルトの名無しさん
2015/02/03(火) 08:34:07.52ID:uSJof6v6deltaが0でないときに1回呼べばいいんだよ
deltaの意味分かってるのか
0331デフォルトの名無しさん
2015/02/03(火) 08:38:41.83ID:qs6+LCRH0332デフォルトの名無しさん
2015/02/03(火) 08:48:21.43ID:AqPQb7sP連続的にぬるぬる回るタイプがあるけど、メッセージの発生の仕方が違うのかな?
ぬるぬる系でもアプリが対応してなければ、結局はWHEEL_DELTAの粒度でしか反応しないんだろうか。
0333デフォルトの名無しさん
2015/02/03(火) 08:51:39.75ID:qs6+LCRH何回も実行されているのを確認しました。
0334デフォルトの名無しさん
2015/02/03(火) 10:06:07.55ID:00JNNVea0335デフォルトの名無しさん
2015/02/03(火) 11:04:46.95ID:qs6+LCRHzDelta = GET_WHEEL_DELTA_WPARAM(wParam);
0336デフォルトの名無しさん
2015/02/03(火) 17:37:03.46ID:qFGvzx1u0337デフォルトの名無しさん
2015/02/03(火) 21:04:14.59ID:nEdye6fG::CreateWindowEx( 0, REBARCLASSNAME〜
で作ったレバーコントロールの高さが変更されたとき、
親ウィンドウに何のメッセージが通知されますか?
0338デフォルトの名無しさん
2015/02/03(火) 21:14:45.58ID:AqPQb7sP0339デフォルトの名無しさん
2015/02/03(火) 21:32:19.74ID:nEdye6fG0340デフォルトの名無しさん
2015/02/07(土) 23:58:52.84ID:4Op8wAULwindowsAPIを駆使して作るのに参考になるサイトや書籍はありますか?
0341デフォルトの名無しさん
2015/02/08(日) 01:30:51.46ID:xOTX+lB0MSDNライブラリのサービスの所にあるサンプルコードを
参考にするだけで十分じゃないかな。
0342デフォルトの名無しさん
2015/02/08(日) 03:27:22.65ID:ZysdttaWVC++Expressのがデフォルトで吐くコードとりあえず眺めてみたらいいと思う
0343デフォルトの名無しさん
2015/02/08(日) 08:01:38.27ID:tUjKNEQ0サービスだけならめっちゃ簡単
COMサーバーもサポートするなら面倒鴨試練
面倒なだけであって「出来ない」と言うつもりはない
0344デフォルトの名無しさん
2015/02/08(日) 21:25:02.27ID:0qESbCiR0345デフォルトの名無しさん
2015/02/08(日) 21:51:27.15ID:PVb3uKznCOMサーバーと言われてもよくわかってないレベルなので本を買うことにします。
0346デフォルトの名無しさん
2015/02/09(月) 03:34:33.98ID:RHlYdffThttp://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+キャプチャしようとしています。
(半)透明ウィンドウは除外したく、ネット上を見ているとSRCCOPYのみの指定でそれが
可能とあったのですが、映り込んでしまいます。
透明ウィンドウもしくは指定ウィンドウを除外したデスクトップキャプチャの取り方につい
て教えていただけないでしょうか。
0348デフォルトの名無しさん
2015/02/09(月) 04:59:17.65ID:3wWvs3Zu0349デフォルトの名無しさん
2015/02/09(月) 05:16:47.72ID:G+w3BN0W0350デフォルトの名無しさん
2015/02/09(月) 05:38:25.64ID:g8/r6g2whttp://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:3wWvs3Zu0352デフォルトの名無しさん
2015/02/09(月) 07:43:46.07ID:Z/OgJqfRAero世代 (Vista) 以降なら DWM を使ってキャプチャを取るのが推奨なんじゃないの?
古いやり方なら WM_PRINT が使えるかもしれない。
まぁ、>>349 で十分な気はするが。
0353デフォルトの名無しさん
2015/02/09(月) 08:46:42.20ID:iJdyGTL3http://opensource.slashdot.jp/story/15/02/08/0721252/
0354デフォルトの名無しさん
2015/02/09(月) 10:43:01.17ID:ra7crE5d0355347
2015/02/09(月) 20:48:21.80ID:j6Bs3lE+リアルタイムに処理したいため、ウィンドウを列挙して云々の方法は無理
そうなのでDWM APIの方を勉強してみたいと思います。
同じ関数でもWinバージョンによって挙動が変わるなら、MSもきちんと
明記して欲しいですよね。。。
0356デフォルトの名無しさん
2015/02/10(火) 01:19:59.95ID:6CiTLKPyWin7だと『ホワーン』という優しい感じの音ですが、XPだと『パン!』っていう
ちょっと耳障りな音ですが、このXPの音もWin7の『ホワーン』に出来ますか?
0357デフォルトの名無しさん
2015/02/10(火) 01:59:59.04ID:gDj6m/g30358デフォルトの名無しさん
2015/02/10(火) 03:24:18.27ID:cTe8RJykWindows側のサウンド設定
0359デフォルトの名無しさん
2015/02/10(火) 13:35:11.32ID:Yis/lrEOそれともアプリからそれを使うユーザのマシン設定を勝手に書き換えたいという話か
0360デフォルトの名無しさん
2015/02/10(火) 15:52:53.36ID:j2mjRCPi0361デフォルトの名無しさん
2015/02/12(木) 10:47:44.82ID:5O+Dt9At高さだけ指定して幅を指定しなければアンチエイリアスがかからない幅に自動調整してくれますが、幅は指定したいです。
幅を指定しなくてもFW_BOLDを指定したときとしないときの幅が同じになればいいのですが、それもなりません。
何がしたいか分かりにくいと思いますが、まとめると以下の通りです。
■太字かどうかに関わらず、全ての文字を同じ幅・高さで描画したい(日本語は2文字分)
■アンチエイリアスが嫌だ
■文字幅の値も把握していたい(自分が指定、もしくは自動で設定された幅を取得)
コマンドラインみたいに升目に入ったような、アンチエイリアスもかかってないような表示が理想です。
そこに太字も使えるようになったのが理想です。
CreateFontで一番可能性の高そうな設定、フォントはMS ゴシック、クオリティはDEFAULT_QUALITY、ピッチとファミリーにFIXED_PITCHを設定しましたが無理でした。
他にも色々試しましたが昨日一日中あれこれ試していたので何が何だか分からなくなって覚えていません。
解決方法を教えてください。
0362デフォルトの名無しさん
2015/02/12(木) 11:23:49.74ID:EUdaAQEa0364デフォルトの名無しさん
2015/02/13(金) 10:35:40.23ID:f9ZjIrV9なんだこれ
0365デフォルトの名無しさん
2015/02/13(金) 11:36:18.32ID:f9ZjIrV90366デフォルトの名無しさん
2015/02/13(金) 13:51:03.68ID:dpVVOxpY0367デフォルトの名無しさん
2015/02/13(金) 20:16:25.43ID:f9ZjIrV9必要な領域だけ再描画すれば高速化できるかと思ったけど肝心のWM_PAINTで領域が分からないなら結局クライアント領域全部再描画しなければならない
領域をグローバル変数に入れようかと思ったけど、WM_PAINTを受け取るタイミングが不確定だから無理っぽい
1回目のInvalidateRectと2回目のInvalidateRectの領域が同じならグローバル変数でもいけるけど、
違った場合は、2回目のInvalidateRectの後で1回目のInvalidateRectによるWM_PAINTを受け取ると破綻する
まんこ
0368デフォルトの名無しさん
2015/02/13(金) 20:28:46.06ID:hioZiCGH0369デフォルトの名無しさん
2015/02/13(金) 21:05:41.95ID:lpJSL/lfC:\〜\test\test.exeならC:\〜\test\を取得
C:\〜\test1\test2ならC:\〜\test1\を取得
こんな関数はどんな名前つける?
GetUpperDirectory?
0370デフォルトの名無しさん
2015/02/13(金) 22:00:24.41ID:30iXf5oSPathRemoveFileSpec
っていうAPIがあるけど、敢えて自分で作るならって話か?
0371デフォルトの名無しさん
2015/02/13(金) 22:11:22.26ID:f9ZjIrV9BeginPaint何となく使ってたけどこいつが自動で設定してくれるだな
まさかこいつがやってるとは思わなかった
ありがとう
0372デフォルトの名無しさん
2015/02/13(金) 22:33:56.31ID:AeHfWfSt0373デフォルトの名無しさん
2015/02/13(金) 22:53:10.88ID:MTb8V7o70374デフォルトの名無しさん
2015/02/13(金) 22:55:28.51ID:f9ZjIrV9GetParentDirectory
0375デフォルトの名無しさん
2015/02/14(土) 00:55:03.82ID:e+2FaUanPathRemoveFileSpecは知らんかった
けど最後に\付いてほしいから結局部品プロジェクトとして作る事になるわ
0376デフォルトの名無しさん
2015/02/14(土) 01:05:19.76ID:XFzbLFgNPath関連のAPIはたくさんあるから、目的によっては\無しでも問題ないかも知れんぞ
0377デフォルトの名無しさん
2015/02/14(土) 01:14:15.23ID:avu/sf600378デフォルトの名無しさん
2015/02/14(土) 06:37:11.60ID:coEfqUtEファイルにたいして ParentDirectory は違和感あるから却下
0379デフォルトの名無しさん
2015/02/14(土) 06:54:18.21ID:Xj7ivxhb0380デフォルトの名無しさん
2015/02/14(土) 07:40:14.24ID:xzkKcWknパス 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:4tVx2rNF0382デフォルトの名無しさん
2015/02/14(土) 09:27:31.50ID:uz36DEeOコーディングも1分もかからないし関数にするまでもないし何を悩んでるのか意味不明
2chブラウザ立ち上げてこのスレ開いてレス打つのと同程度の時間あればできるのに本物の馬鹿なんだろうか
0383デフォルトの名無しさん
2015/02/14(土) 09:30:31.92ID:Be2NMpD80384デフォルトの名無しさん
2015/02/14(土) 10:16:54.17ID:4tVx2rNFWin32とC/C++ライブラリに同じ機能がある場合、使い分けの指針ってあるんけ?
自分はVC付属って時点であまり区別してないんだが
0385デフォルトの名無しさん
2015/02/14(土) 10:27:52.62ID:ocCjNIfbはなから区別しないってのはねーわ。
0386デフォルトの名無しさん
2015/02/14(土) 10:28:41.92ID:xzkKcWkn0387デフォルトの名無しさん
2015/02/14(土) 11:23:57.72ID:uz36DEeOそんなジャンル別の縦割り思考だからお前はいつまで経ってもうだつがあがらないんだよ
時代遅れの縦割り思考は回線切って一人で分類ごっこでもしてろ
0388デフォルトの名無しさん
2015/02/14(土) 11:27:54.03ID:XFzbLFgNうるせーばか
0389デフォルトの名無しさん
2015/02/14(土) 12:57:25.81ID:tVbUKrnUすでにサーチエンジンはWin32API関連で検索してもそればっかで埋まってんだから
0390デフォルトの名無しさん
2015/02/14(土) 13:29:08.25ID:avu/sf600391デフォルトの名無しさん
2015/02/14(土) 16:13:10.51ID:gIUI7HnGWin32は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.netじゃ駄目なんですか?
0394デフォルトの名無しさん
2015/02/14(土) 18:55:21.43ID:XFzbLFgN0395デフォルトの名無しさん
2015/02/14(土) 18:56:34.74ID:FsRJ7H3AVBじゃダメなんですか?
0396デフォルトの名無しさん
2015/02/14(土) 19:08:31.10ID:zmAFSOP/山は死にますか
0397デフォルトの名無しさん
2015/02/14(土) 19:18:36.15ID:uz36DEeOツールバーとかタイトルバーの上では普通のカーソルに戻る
0398デフォルトの名無しさん
2015/02/14(土) 19:29:27.46ID:4tVx2rNFWM_SETCURSOR
0399デフォルトの名無しさん
2015/02/14(土) 19:29:55.92ID:FsRJ7H3A偉そうなこと言いながら、こんな低レベルなことを
0400デフォルトの名無しさん
2015/02/14(土) 19:32:13.72ID:Yj+zQwIvLoadLibraryで呼び出せるDllが作れないとか
これのせいでプラグインなんか作れないじゃん
0402デフォルトの名無しさん
2015/02/14(土) 19:59:07.53ID:ocCjNIfb0403デフォルトの名無しさん
2015/02/14(土) 20:31:12.26ID:ReAFsxko曲の全体がduration
再生中の位置がposition
とすると残り時間は何でしょうか?
0404デフォルトの名無しさん
2015/02/14(土) 20:31:18.94ID:Yj+zQwIvそんなもん誰も使わんよ
0405403
2015/02/14(土) 20:31:55.21ID:ReAFsxko0406bti
2015/02/14(土) 22:13:21.42ID:hFs/AfD2このリンクからビットコイン購入・販売所bitFlyerにご登録すると
1000円分のビットコインがもらえます!
https://bitflyer.jp/gift/fn0tlipl
とにかく一応もらっておくといいです。
ビットコイン関係の開発にしよう
0407デフォルトの名無しさん
2015/02/14(土) 23:00:19.23ID:/VrDBIQDワロタwwww
LoadCursorwwwwwww
0408デフォルトの名無しさん
2015/02/14(土) 23:02:49.49ID:e+2FaUanありがとう
次からそっちのスレで聞くわごめんよ
0409片山博文MZ ◆T6xkBnTXz7B0
2015/02/15(日) 13:19:53.66ID:YOxjOULgこれで、Win32 APIが使えない言語へのWin32 APIの移植が容易になるぞ!!!
https://github.com/katahiromz/DoWonders
0410デフォルトの名無しさん
2015/02/15(日) 14:04:54.01ID:uxAoEDAd0411デフォルトの名無しさん
2015/02/15(日) 15:56:37.27ID:ergtEwn7コントール(ボタンなど)を作ってくれるWin APIってありますか?
CreateDialogのウィンドウを新規に作るじゃなくて、すでにウィンドウが存在する際につかえるAPIが知りたいです
0412デフォルトの名無しさん
2015/02/15(日) 16:10:07.40ID:bX6frV1sさっさとCOMのTypeLibrary対応してない言語で使えるようにしろ
0413デフォルトの名無しさん
2015/02/15(日) 17:27:24.64ID:ergtEwn7リソースからLoadResourceでメモリ上に構造体DLGITEMTEMPLATEなどの形で取り出してCreateWindowするようです
0414デフォルトの名無しさん
2015/02/15(日) 18:31:24.51ID:bWgf/6Xsnm *.dll -> typeid -> boostデマングリング
のが手っ取り早そう
0415デフォルトの名無しさん
2015/02/15(日) 20:05:59.81ID:kipyhe5Bすいません。何するソフトなのか、簡単に解説して頂けませんか?
0416片山博文MZ ◆T6xkBnTXz7B0
2015/02/15(日) 20:35:21.43ID:kru9NTLvWin32コンパイラからWin32 APIの情報を抽出して、データベースを作成するソフト。
素人にはまだ使いこなせない。
0417デフォルトの名無しさん
2015/02/15(日) 20:56:23.86ID:kipyhe5B解説ありがとうございました。
理解できるように精進したいと思います。
0418デフォルトの名無しさん
2015/02/15(日) 23:46:43.13ID:65bKNNn8気色わる
0419デフォルトの名無しさん
2015/02/16(月) 00:30:46.08ID:oJNvAL6Z0420デフォルトの名無しさん
2015/02/16(月) 02:11:51.65ID:Zn9bWbFW見ているだけで、反面教師となって有益
自分が同じ間違いをしなくて済む
この板は他にも、QZ、ピラフなど、
何らかの情報を発信する、有益なコテハンが多い。
この板は有益なコミュニティだ
0421デフォルトの名無しさん
2015/02/16(月) 03:43:59.12ID:N4N5sFFI0422デフォルトの名無しさん
2015/02/16(月) 06:31:55.11ID:gRhA7X2Y0423デフォルトの名無しさん
2015/02/16(月) 09:31:03.98ID:FO5Gq4fD反面教師しかいないのは、それはそれで…
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:jN3tDTOqAPIで作られているのでしょうか?
それとももっと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/k0430片山博文MZ ◆T6xkBnTXz7B0
2015/02/16(月) 23:57:47.01ID:jO7bZY/k・ご飯に勝手にアルコールを入れる
・毎晩酔っ払った状態で説教
・その上、タバコをべらんぼうに吸う
・肺が病気になってもやめない、逆に精神論で返す
0431片山博文MZ ◆T6xkBnTXz7B0
2015/02/17(火) 00:09:55.19ID:J4a0mND/・飲酒運転常習犯で自分は運転が上手いと考えている
・撮ったビデオを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んでもキミはそういう分かり易い嘘以外では嘘だ嘘だとしか言わないだろ
その行為は、実は一見片山が正しいように見せる行為ですらある
…つまり、ハタから見ればキミは片山本人ってことになる
0435デフォルトの名無しさん
2015/02/17(火) 04:33:03.17ID:NGo27G1P0436デフォルトの名無しさん
2015/02/17(火) 04:43:30.96ID:Q4rBePsyお前なんのためにNG機能とか使ってんの?アホなの?
0437デフォルトの名無しさん
2015/02/17(火) 09:14:33.07ID:ZaoCuCHY反映されないので二重三重に投稿連投
ですねわかります
0438デフォルトの名無しさん
2015/02/17(火) 15:35:18.35ID:cYnsHhOG0439デフォルトの名無しさん
2015/02/17(火) 23:18:00.44ID:DwStm3jDGetKeyboardLayoutによるHKLの取得には成功していて、一応第3引数のポインタも指定しています
元々不具合のあった関数でもあるみたいなので、同環境の情報が欲しいので検証してもらえませんか?
0440デフォルトの名無しさん
2015/02/17(火) 23:21:29.21ID:DwStm3jD0441デフォルトの名無しさん
2015/02/18(水) 00:03:03.29ID:fxWFvcN5int main()
{
...
}
でコピペして実行できるやつ貼ってくれ
そしてprintfで出た結果をここに貼るわ
0442デフォルトの名無しさん
2015/02/18(水) 01:51:49.28ID:aOiIdSCQ0443デフォルトの名無しさん
2015/02/18(水) 01:53:53.03ID:Qs6pA21tというかそのマイナー言語でまずは書け
マイナーすぎて誰にも分からないときに移植コードで
0444デフォルトの名無しさん
2015/02/18(水) 02:07:38.06ID:aOiIdSCQHSP3.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#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:YhMVzleA0447デフォルトの名無しさん
2015/02/18(水) 07:21:07.85ID:SGYOmPlm決め打ちでバッファを用意しても中身空のままだし。
0448デフォルトの名無しさん
2015/02/18(水) 10:07:37.02ID:0oFqPaUt0449デフォルトの名無しさん
2015/02/18(水) 16:20:23.22ID:fxWFvcN5ほらよ
単語に何も登録してない状態
hkl:04110411
style_max:0
単語に語句「OH! Manko」を読み「おまんこ」として登録した状態
hkl:04110411
style_max:0
結果は変わらなかった
0450デフォルトの名無しさん
2015/02/18(水) 17:22:40.58ID:lVKX5epfググっても、昔のこのスレでも同じ質問があって解決レスは無かったw
0451デフォルトの名無しさん
2015/02/18(水) 17:49:01.30ID:aOiIdSCQわざわざ検証していただいてありがとうございます
ひとまず再現性があり自分の責任ではないようで安心しました
>>446さんのご指摘を受けてフォームアプリケーション用に書き変えてやってみましたが特に結果は変わりませんでした
一応試したコードも貼っておきます
http://codepad.org/t67U4cDb
0452デフォルトの名無しさん
2015/02/18(水) 18:02:06.96ID:lVKX5epfなお、Win8Pro64bit ATOK2015
第2引数に0を入れてるのに、第3引数に有効ポインタ入れとかなきゃいけないって仕様がおかしいって
情報も見つかってたので、そもそもこのAPIが怪しい気はする。
0453デフォルトの名無しさん
2015/02/18(水) 18:47:37.18ID:aOiIdSCQ事細かに試していただいて感謝します
ATOKとMS-IMEが成功可否に影響するというような情報も見つけた気がしますが、
今回の例ではたぶん根本的に原因が共通しているのでこちらでやっても同じ結果になると思います
こちらの環境を再掲しておくと、MicrosoftIME 10.1 on Windows7 HomePremium 32bitです
元々、辞書ツールから単語登録するのが面倒だから、
専用のTSVファイルをパッと開いて書き換えたらパッと単語登録されるようなツールが作りたかったんですが、
同じように列挙も登録もできず、周辺のAPIが全滅という有様でした
仮に単語登録が成功したとしても、ImmRegisterWordにはメモリリークもあるらしいですよ
0454デフォルトの名無しさん
2015/02/18(水) 19:09:18.69ID:9ZeaK8N00455デフォルトの名無しさん
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それは知りませんでした。有益な情報をありがとうございます
なるほど、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,
®word);
0458456
2015/02/19(木) 09:43:09.44ID:GozftCKZわざわざありがとうございます。TSFにもそれらしいものがあり、登録画面ならこちらでも出せるっぽいです
本来の目的とは違いますが、ホットキーからクリップボードの内容をさっと登録する機能なんかに使えそうですね
0459デフォルトの名無しさん
2015/02/19(木) 13:33:25.45ID:F2+DwIhl0460デフォルトの名無しさん
2015/02/19(木) 13:41:27.72ID:YKDWyqEz自分で起動したなら簡単にハンドルは取れるはず
起動中のexeを列挙して探すなら Process32First / Next
0461デフォルトの名無しさん
2015/02/19(木) 16:39:54.11ID:rlVE8baNDWORD 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ありがとうございます。
両方ともプロセスハンドルはあるけどウィンドウのハンドルは無いっぽいですが
プロセスのハンドルでウィンドウ操作できませんよね?
0463デフォルトの名無しさん
2015/02/20(金) 11:47:11.05ID:SdYWKWEv0464デフォルトの名無しさん
2015/02/20(金) 11:54:24.97ID:f+GBkftj知らないならレスしないで下さい、ウザイだけです。
0465デフォルトの名無しさん
2015/02/20(金) 11:58:44.76ID:fEal40kxでは死ね
0466デフォルトの名無しさん
2015/02/20(金) 12:09:40.51ID:ahptq4t6ウィンドウを操作するのにプロセスのハンドルは要らないんじゃないか?
単にウィンドウを列挙するなら EnumWindows / EnumThreadWindows
ウィンドウを列挙した後、どのプロセスに属するか調べるなら GetProcessHandleFromHwnd
0467デフォルトの名無しさん
2015/02/20(金) 12:32:58.72ID:rRCvJJFn0468デフォルトの名無しさん
2015/02/20(金) 12:40:09.76ID:ahptq4t6追加。 プロセスに属するか調べるのは GetWindowThreadProcessId でも可
0469デフォルトの名無しさん
2015/02/20(金) 12:45:33.80ID:C0yfY/Rk0470デフォルトの名無しさん
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/Woly0464 名前:デフォルトの名無しさん[] 投稿日:2015/02/20(金) 11:54:24.97 ID:f+GBkftj [2/2]
>>463
知らないならレスしないで下さい、ウザイだけです。
0472デフォルトの名無しさん
2015/02/20(金) 15:35:47.64ID:XfKuwL2S0473デフォルトの名無しさん
2015/02/20(金) 15:45:48.23ID:CB/nIcnB0474デフォルトの名無しさん
2015/02/20(金) 19:40:06.37ID:++UFdJqE> exeのハンドル取るAPI教えてんこ
これで気づけよ
0475デフォルトの名無しさん
2015/02/20(金) 20:49:39.41ID:gADPfhrw0476デフォルトの名無しさん
2015/02/20(金) 20:58:31.21ID:CB/nIcnBむしろ「指定したexe」から補えない方がどうかしてる
0477デフォルトの名無しさん
2015/02/21(土) 02:18:05.13ID:ujrM5Woq>but does not actually perform a search.
なんですかこれ。
0478デフォルトの名無しさん
2015/02/21(土) 07:04:26.76ID:DGU3n6avって書いてあるだろ
中学出たのか?
0479デフォルトの名無しさん
2015/02/21(土) 08:04:32.80ID:ujrM5Woq0480デフォルトの名無しさん
2015/02/21(土) 14:32:51.83ID:TG3Ky+4O何か気持ち悪いんだけど俺が慣れてないだけ?
それとも普通はウインドウの管理をするクラスなんか作らないとか?
0481デフォルトの名無しさん
2015/02/21(土) 14:43:19.67ID:Qj5PkULS0482デフォルトの名無しさん
2015/02/21(土) 14:48:50.66ID:JB1czYZt0483デフォルトの名無しさん
2015/02/21(土) 14:50:05.09ID:hXObCDYbプロシージャをstaticにしたらメソッドにアクセスすんのめんどくさいし
0484デフォルトの名無しさん
2015/02/21(土) 14:50:12.04ID:b3TAXLfH0485デフォルトの名無しさん
2015/02/21(土) 15:11:43.45ID:JFEpwQ1fCreateWindowの中でもウィンドウプロシージャ呼ばれるから注意な
結局、CreateWindow呼ぶ前にstatic変数にthisを入れてCreateWindowの中でウィンドウプロシージャが呼ばれたときは、
static変数のthisを使うようにしたけど、気持ち悪いな。もっといい方法あるんだろうか
0486デフォルトの名無しさん
2015/02/21(土) 15:14:54.14ID:QT8x93qN0487デフォルトの名無しさん
2015/02/21(土) 15:24:47.02ID:hXObCDYbCreateWindowのlpParam
0488デフォルトの名無しさん
2015/02/21(土) 15:35:27.96ID:q8r+DySB厳密にはCREATESTRUCTでは不十分だったりするのよね
GWLP_USERDATA等の属性すら一切使わないWTLの実装が最強
0489デフォルトの名無しさん
2015/02/21(土) 15:37:56.11ID:kwW1PPRVWM_CREATEの前のメッセージで処理したいことって何ある?
0490デフォルトの名無しさん
2015/02/21(土) 15:47:24.94ID:JFEpwQ1fWTLはどうやってるの?
0491デフォルトの名無しさん
2015/02/21(土) 15:58:48.77ID:JFEpwQ1fこんな感じか。こっちのほうがだいぶいいね
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+DySBWM_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これは面白いなw
まじめにやろうとするとコード生成まで必要になるとか、Win APIどんだけアホな設計なんだって思う(まぁ古いから仕方ないんだが)
つまり、最初(CreateWindowで呼ばれた時)は、スレッドごとのグローバル変数にインスタンスへの参照を持っていおいて、
最初にウィンドプロシージャが呼ばれた時に、ウィンドウプロシージャをコード生成で生成した関数に置き換えるってことだな
WTLはCreateWindowのlpParamじゃなくて、static変数のほうだったか。やっぱりコード戻すわ
0494デフォルトの名無しさん
2015/02/21(土) 17:27:26.58ID:qCqW+14K0495デフォルトの名無しさん
2015/02/21(土) 19:47:01.43ID:eA3VAGwdマウスが繋がっていない環境(windows8タブレット)などで、マウス表示の方法がわかりません。
ShowCursor(TRUE); を使えばいいかと思ったんですが、
この関数は、 カーソルを表示するかどうかを決める内部的な表示カウントを設定します。
カーソルは、 表示カウントが0以上のときに表示されます。マウスがインストールされているときには、
初期表示カウントは0になります。マウスがインストールされていないときには、 −1になります。
ということなので、頭抱えています。
なにかいい方法ありませんか?
0496デフォルトの名無しさん
2015/02/21(土) 19:48:02.30ID:xSRhDEOz>ウインドウの管理をするクラス
これ?
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すぐ思い付くやり方は透過ウィンドウを使う方法だな。
SetWindowRgn
0498デフォルトの名無しさん
2015/02/21(土) 19:56:50.45ID:eA3VAGwdなるほど。。簡単そうなのは、透過ウインドですかねぇ。。?
ちょっと思いついたのは、マウスの仮想ドライバー作るとか?証明関連で悩みそうです;;
なんか簡単に、偽物じゃないOSのマウスが表示できればいいのですが・・
0499デフォルトの名無しさん
2015/02/22(日) 00:08:41.99ID:qxC/WEu2なぜマウスが繋がっていない環境で、マウス表示をしなけりゃならんのか
0500デフォルトの名無しさん
2015/02/22(日) 00:11:21.25ID:Z38HTJ9G0501デフォルトの名無しさん
2015/02/22(日) 00:12:14.56ID:+Vs0TRtQWin8タブレット前提で、タッチパネル上でマウス・キーボードを操作するアプリを作りたいからですよ?
既にそういうアプリはあるのは知っています。
0502デフォルトの名無しさん
2015/02/22(日) 00:14:31.50ID:Z38HTJ9G0503デフォルトの名無しさん
2015/02/22(日) 00:21:58.79ID:+Vs0TRtQとりあえず、>>497 さんの SetWindowRgn で作ってみて、不具合出て対処出来そうもない場合は、
これ参考にしようかと思うのですが、ドライバー証明関連で詳しいサイトどなたか知りませんか?
ttp://riosu.hateblo.jp/entry/2013/09/08/013420
0504デフォルトの名無しさん
2015/02/22(日) 00:58:23.39ID:+WCHq4X50505デフォルトの名無しさん
2015/02/22(日) 01:31:59.12ID:uJK2QFdc0506デフォルトの名無しさん
2015/02/22(日) 03:03:47.82ID:ewsgN8fYそれらのリソースはOSが勝手に解放してくれるんですか?
0507デフォルトの名無しさん
2015/02/22(日) 03:06:21.19ID:U+g4RZck解放されるよ
0508デフォルトの名無しさん
2015/02/22(日) 03:10:25.86ID:ewsgN8fYありがとう
0509デフォルトの名無しさん
2015/02/22(日) 07:16:57.24ID:uX3Bvmht0510デフォルトの名無しさん
2015/02/22(日) 13:44:25.32ID:o1GxeALaWindows環境で実装しています。
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:jAanobMmhttps://msdn.microsoft.com/ja-jp/library/ms235460.aspx
0512片山博文MZ ◆T6xkBnTXz7B0
2015/02/22(日) 13:49:33.80ID:vD6PHArE0513デフォルトの名無しさん
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ソースをいじれるなら、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:QqJCIrI10516デフォルトの名無しさん
2015/02/23(月) 08:18:05.67ID:u+Zi8bbf0517516です
2015/02/23(月) 08:36:14.15ID:u+Zi8bbf{
HWND hBack = SetActiveWindow(GetActiveWindow());
return 0;
}
これはだめでした。。
スレッドやSetTimerなどで、GetActiveWindow()を動かして監視するしかないかな?
0518デフォルトの名無しさん
2015/02/23(月) 08:47:10.65ID:AjFb9vvE0519デフォルトの名無しさん
2015/02/23(月) 09:05:38.07ID:xos6Ur9wAlt+Tabででてくるリストを取得する方法があれば常駐しなくて済むかも。 後者の手段は知らない。
0520516です
2015/02/23(月) 09:30:22.21ID:u+Zi8bbfタイマーかスレッドで、GetForegroundWindow()使えばいいのかなと思いました。
EnumWindowsでアクティブウインドウを調べようかと思ったんですが、不具合出てきたら、フックのほうが正確かもしれませんね。
0521デフォルトの名無しさん
2015/02/23(月) 11:42:03.06ID:Pw6BfwZP0522デフォルトの名無しさん
2015/02/23(月) 16:17:37.64ID:dq6RfWKT0523デフォルトの名無しさん
2015/02/23(月) 21:03:41.95ID:u+Zi8bbfなんと!
lParamに入ってましたか!
ありがとう!
0524デフォルトの名無しさん
2015/02/23(月) 23:28:59.37ID:hhR2xhyg0525デフォルトの名無しさん
2015/02/24(火) 10:37:18.28ID:Er3xweuT前にどっかで見た気がするんだが
0526デフォルトの名無しさん
2015/02/24(火) 14:11:42.07ID:fS9qUf3C何が便利になるんだ?
0527デフォルトの名無しさん
2015/02/24(火) 14:46:11.67ID:oePtv8LtSetFocusもSetActiveWindowも両方試したけど駄目だった
リストビューをクリックして子ウインドウBに表示されたマンコをキーボードの矢印で上下左右に動かしたいんだけど、
フォーカスが移ってくれないからキーボードの矢印を押すとリストビューの選択が動く
子ウインドウBをクリックすればちゃんとフォーカス移ってキーボードで操作できるけど、いちいちクリックしてるとマンコの損失がでかい
ちなみに、なぜか子ウインドウAの項目をキーボードの矢印で選択したときはちゃんと子ウインドウBにフォーカスが移る
何だろうな、こういうことでも起こってんのかね
子ウインドウAでマウスダウン→子ウインドウBにマンコ表示→子ウインドウBアクティブ→子ウインドウAでマウスアップ→子ウインドウAアクティブ
0528デフォルトの名無しさん
2015/02/24(火) 20:41:45.91ID:4wRlIK+Y0529デフォルトの名無しさん
2015/02/24(火) 21:39:42.01ID:oePtv8Ltありがとう
でも駄目だった
結果は変わらず
0530デフォルトの名無しさん
2015/02/25(水) 01:55:31.82ID:2mLZHhyU---------------------------
[-][□][x]
---------------------------
最小化、最大化、閉じるボタンの三つがありますが、
そのうち最大化のみ消して
---------------------------
[-][x]
---------------------------
にできますか?方法教えて下さい。
0531デフォルトの名無しさん
2015/02/25(水) 02:44:45.76ID:FoI0Rp8sマウスボタンを押して離すまでがクリックですよ!
離すまで待ってみないと、本当にクリックなのかそれともドラッグするか
おっと操作ミスった!でキャンセルするかわからんからな
リストビューでも、押した時点で選択は変わるけど
離すまでの間はマウスをキャプチャした状態になるみたいだ
だからマウス離したところでフォーカス移せばいいんでね?
0532デフォルトの名無しさん
2015/02/25(水) 04:49:48.53ID:kAr5BbQrスタイル
0533デフォルトの名無しさん
2015/02/25(水) 05:46:40.57ID:PhSX1vqXMDIか?
0534デフォルトの名無しさん
2015/02/25(水) 06:47:27.22ID:2mLZHhyUdisableには出来たんですが非表示に出来ないんです。それと最小化ボタンをクリックしてもイベントが飛んで気ません。どうしたらいいですか?
0535デフォルトの名無しさん
2015/02/25(水) 07:38:21.31ID:nKN7f0Au知ってるよ
0536デフォルトの名無しさん
2015/02/25(水) 10:48:14.06ID:2mLZHhyU教えてけろ
0537デフォルトの名無しさん
2015/02/25(水) 11:21:20.24ID:d0ie9jrP0538デフォルトの名無しさん
2015/02/25(水) 11:22:25.66ID:69PZJRAE自分でタイトルなしのウインド作ってほしいボタン貼り付けたら?
最小化ボタンは、SendMessage(hWnd,WM_SYSCOMMAND,0xF020,0); とか使って実装すればいいと思うよ?
0539デフォルトの名無しさん
2015/02/25(水) 12:56:42.77ID:d0ie9jrPで作ったらタイトルと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モードレスダイアログを作りたいのです。
追加で質問なんですが、
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本体のウィンドウのメッセージループで
IsDialogMessage() チェックして
モードレスダイアログ宛てのメッセージはスキップして
ウィンドウ側で処理せずダイアログに渡す必要がある
0546デフォルトの名無しさん
2015/02/25(水) 18:22:43.02ID:uRiqOZSmhttp://codepad.org/lTZ2hgkK
0547デフォルトの名無しさん
2015/02/25(水) 19:41:38.08ID:2mLZHhyU早速試させていたいだいたのですが、
私の場合、最小化ボタンを付けたいので、サンプルのDlgProc()を変更して
case WM_INITDIALOG:
SetWindowLong(hDlg, GWL_STYLE, GetWindowLong(hDlg, GWL_STYLE) | WS_MINIMIZEBOX);
return TRUE;
のようにしたら、最小化ボタン出たのですが、これで最小化ボタン押しても何も反応しません。
これが私が最初の質問だったのですが、この最小化ボタンを押して最小化するにはどうすればいいのでしょうか?
そもそも追加した行は、ググッて見付けたものを適当にコピペしたので、これで良いのかどうかも分っていません。
よろしくお願いします。
0548デフォルトの名無しさん
2015/02/25(水) 19:50:24.61ID:uRiqOZSmtpl.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サンプルプログラムで無事に最小化出来ました。
一方、私の場合、テンプレートではなくてリソースでダイアログを作っていました。
それで
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:RgCL3LuA0551デフォルトの名無しさん
2015/02/25(水) 23:05:31.32ID:2mLZHhyU546さんのプログラムで、ダイアログがキー入力を受け付けるように
するにはどうすればよいでしょうか?私のプログラムも同じく、
キーを押すとピンという音が鳴って、キーを受け付けてくれません。
0552片山博文MZ ◆T6xkBnTXz7B0
2015/02/25(水) 23:23:20.19ID:mKx2rGPv0553デフォルトの名無しさん
2015/02/25(水) 23:33:43.90ID:flmNpp9d#pragma pack(push,2) されている。16bit時代との互換性だろう。
メモリ上にコピーするぶんには4byte alignで問題ないだろうが、
mmapする場合には2byte alignされているのを考慮しないとbus errorの恐れがあるな。
0554デフォルトの名無しさん
2015/02/26(木) 06:54:52.12ID:YbvsbeHP質問が曖昧過ぎるので、具体的に万人が分かるように、もう少し噛み砕いてから質問してください。
どういうことを伝えたいのか理解できません。
キー入力を受け付けるとは、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:MDOnKL5v0556デフォルトの名無しさん
2015/02/26(木) 12:03:53.28ID:hCLRjR6aう〜ん、泣ける
0557デフォルトの名無しさん
2015/02/26(木) 13:10:31.37ID:8ZdwsKpCID出るようになった辺りが転換期かと
0558エスパー求む
2015/02/26(木) 15:30:17.95ID:cGnKpNs3無効にしてくれるソフト作ってくれないかな・・・
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そういや前はID無かったんだっけ
IDがここまで治安に関わるとはなぁ…
0560デフォルトの名無しさん
2015/02/26(木) 16:19:07.58ID:Oz6S5H7y2chで議論したり質問したりするメリットがほとんどなくなった
惰性で見てる奴がほとんどだろう
0561デフォルトの名無しさん
2015/02/26(木) 16:25:49.53ID:Oz6S5H7y最底辺を這いずり回ってる人から見ればレスの質の違いはほとんど感じられないのだろうけど
0562デフォルトの名無しさん
2015/02/26(木) 16:45:57.44ID:RfmB+Emb0563デフォルトの名無しさん
2015/02/26(木) 17:32:00.05ID:8ZdwsKpCと言うか前はノイズそのものしか存在しなかった
0564デフォルトの名無しさん
2015/02/26(木) 17:44:55.38ID:vBjTX7YdついでにID導入に反対して自治スレ荒らしてたのも同じ奴だろう。
0565デフォルトの名無しさん
2015/02/26(木) 20:08:15.17ID:cJpbHW1dこのスレに限らず、2ch 全体の傾向
特に技術系のスレは軒並み衰退してる
0566デフォルトの名無しさん
2015/02/26(木) 21:02:24.97ID:WnrsjYVGそうそう、seikyo さんだったっけ‥
0567デフォルトの名無しさん
2015/02/27(金) 16:03:44.83ID:oi7CjQpoOS側のハンドルに変換して渡す方法を教えていただき、ありがとうございます。
実は、アプリの構成が以下の様になってます。
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なんでそんなにDLLがあるのにライブラリと静的リンクしにゃきゃいけないんだ?
0569デフォルトの名無しさん
2015/02/27(金) 22:17:19.45ID:Ip5cIlNH0570デフォルトの名無しさん
2015/02/27(金) 23:08:24.96ID:1tbgoJAT0571デフォルトの名無しさん
2015/02/27(金) 23:54:54.98ID:iW29o0bDオープンも書き出しもクローズも一箇所にする
書式指定の書き出しはこんなふうにまとめる
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#define malloc(size) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, (size));
#define free(p) HeapFree(GetProcessHeap(), 0, (p));
に置き換えれば問題ないだろう
0574デフォルトの名無しさん
2015/02/28(土) 06:25:17.86ID:YX39mL1t0575デフォルトの名無しさん
2015/02/28(土) 07:27:47.03ID:kDCn/ge40576デフォルトの名無しさん
2015/02/28(土) 07:33:44.88ID:dohjXiRJoperator delete をオーバーロードしてもいい。
0577デフォルトの名無しさん
2015/02/28(土) 10:31:09.77ID:/TOKC6AH0578デフォルトの名無しさん
2015/02/28(土) 11:08:19.31ID:/hvue7cxこれは、正しいですか?
0579デフォルトの名無しさん
2015/02/28(土) 11:09:40.45ID:O3IcVn8Y0580デフォルトの名無しさん
2015/02/28(土) 11:13:51.22ID:VNSN4Y6t「同じもの」とは何を示してますか。日本語で宜しく。
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:MySCamNG0584デフォルトの名無しさん
2015/02/28(土) 13:51:47.78ID:7qcAqGEp例えばSTLのvectorをDLL境界を超えて渡すとか
CRTと動的リンクしてれば問題ないんだけどね
0585デフォルトの名無しさん
2015/02/28(土) 14:00:36.15ID:0w0p4VdY0586デフォルトの名無しさん
2015/02/28(土) 14:14:44.93ID:7qcAqGEpvector自体の解放はそれでいいけど、push_backとかしたらアウトじゃん
0587デフォルトの名無しさん
2015/02/28(土) 15:28:10.11ID:JFYCQWYV0588デフォルトの名無しさん
2015/02/28(土) 16:08:14.51ID:rpQR9Pv+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:8VFhE8v60591デフォルトの名無しさん
2015/02/28(土) 16:38:24.51ID:ODdhY4Z/0592デフォルトの名無しさん
2015/02/28(土) 17:00:53.56ID:g3yXT3ce0593デフォルトの名無しさん
2015/02/28(土) 17:10:28.11ID:G6B671t80594デフォルトの名無しさん
2015/02/28(土) 17:11:22.44ID:8VFhE8v6ビルド時点で気付かんものか?
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:O3IcVn8Y0598デフォルトの名無しさん
2015/02/28(土) 17:34:34.44ID:g3yXT3ce0599デフォルトの名無しさん
2015/02/28(土) 18:11:25.69ID:rpQR9Pv+猫以下の公式は信用できないな
0600デフォルトの名無しさん
2015/02/28(土) 18:15:02.36ID:st/D/r/c0601デフォルトの名無しさん
2015/02/28(土) 18:28:12.04ID:eag/Tohr単にメンテされてないんだろう
0602デフォルトの名無しさん
2015/02/28(土) 19:19:52.82ID:WGZr43/Xあいかわらず翻訳はだめだな
https://msdn.microsoft.com/ja-jp/library/cc413950.aspx
0603デフォルトの名無しさん
2015/02/28(土) 20:57:16.77ID:JFYCQWYV0604デフォルトの名無しさん
2015/02/28(土) 21:25:47.21ID:JFYCQWYVおいらは逆だなw
女子高生においらのスカートの中を盗撮してほしいwww
イメクラとか行ったらそういうプレイやってくれるかな?ww
0605デフォルトの名無しさん
2015/02/28(土) 21:27:11.32ID:JFYCQWYV0606デフォルトの名無しさん
2015/02/28(土) 23:56:23.39ID:in6rjNY5同じ「階層」に位置する場所でやるのが一番いいと思うな
関数呼び出しの深度、と言い換えてもいい
0607デフォルトの名無しさん
2015/03/01(日) 00:45:57.37ID:Mu8lfqrnそれは無理がある
例外の発生とかで解放処理を行なう場合、階層を合わせるのは難しい。
0608デフォルトの名無しさん
2015/03/01(日) 00:52:57.33ID:68G9IfEzデストラクタで解放すれば例外が発生しても同じ関数の中で解放できるだろ
何が難しいんだ?
0609デフォルトの名無しさん
2015/03/01(日) 01:02:31.74ID:JUHHhof8解放処理は1箇所でもできる。
確保は1箇所(例コンストラクタ)とは限らない。
むしろ、Createなんちゃら、とかOpenなにがし、とかの個別関数で行なう場合が多い。
0610デフォルトの名無しさん
2015/03/01(日) 01:27:16.04ID:68G9IfEz何が言いたいのか分からん
> 確保は1箇所(例コンストラクタ)とは限らない
当たり前。そのクラスのメンバ関数で確保したものは、そのクラスのデストラクタで解放するのが普通
同じ階層で確保・解放できるじゃん
0611デフォルトの名無しさん
2015/03/01(日) 01:43:59.47ID:anadyXDv初心者か?
すべてのメンバ関数の階層が1層しか無いのなら可能ではある。
ただ、余程小さなクラスでもない限りメンバ関数が階層構造になるのが普通。
オブジェクト指向といえど構造化プログラミングの原則は変わらない。
メモリ確保などの詳細処理は、それを管理する側(処理)から呼び出して利用する。
0612デフォルトの名無しさん
2015/03/01(日) 02:06:32.35ID:68G9IfEzメンバ関数の階層構造なんかどうでもいいんだよ
確保したものをメンバ変数に入れておけばデストラクタで解放されるんだから同じ階層ってことでいいだろ
そんな小さい話じゃねーよ
0613デフォルトの名無しさん
2015/03/01(日) 02:13:32.79ID:gHP/P/bi主張している論理が破綻してるぞ
>>606で自分自身が書き込んだ内容見直してみろ
0614デフォルトの名無しさん
2015/03/01(日) 02:15:42.08ID:ciqMShcXCしかやったこと無いんじゃないのかな
例外だのRAIIだのGCだの知らない人に見える
0615デフォルトの名無しさん
2015/03/01(日) 02:17:43.55ID:68G9IfEz>>606は俺じゃねーよ。何勝手に勘違いしてんだよ
0616デフォルトの名無しさん
2015/03/01(日) 02:33:00.57ID:eo22pC4p勘違いしていた。失礼した。
しかし言葉の上とは言え、メンバ変数に入れておけばどのメンバ関数で扱っても同じ階層と見なすという主張は乱暴に過ぎる。
強いて言えば、階層というより同じインスタンスで扱うといったところかな。
0617デフォルトの名無しさん
2015/03/01(日) 02:47:49.01ID:68G9IfEz同じインスタンスって継承とかしてたらおかしくならないか
基底クラスが確保したものを派生クラスが解放するのはおかしい
そういう意味で階層の方が適切だと思う
0618デフォルトの名無しさん
2015/03/01(日) 02:54:47.52ID:ciqMShcXスコープの寿命ってだけの話?
0619デフォルトの名無しさん
2015/03/01(日) 02:58:15.99ID:46tsY+o2確かにそうだが。
もともとが関数の呼び出し階層のことを言っていたからな。
言わんとしていることは分かるが、正直 適当な言葉が見つからない。
0620デフォルトの名無しさん
2015/03/01(日) 03:55:28.27ID:KGIv2ag3メモリの確保と解放を、同じ関数呼び出し階層で行なうことに意味はない。
解放は1ヶ所(デストラクタ)で行ない、確保した階層に拘るべきではない。
ということでよろしいか?
0621デフォルトの名無しさん
2015/03/01(日) 04:33:03.03ID:LYwpGVQL0622デフォルトの名無しさん
2015/03/01(日) 05:43:06.37ID:pTcVnBAb同じ階層と呼ぶことに特に違和感はなかったけど、メンバ関数が階層構造になるってどういう意味?
はぁ〜Win32API、いいじゃない
0623デフォルトの名無しさん
2015/03/01(日) 08:11:52.06ID:xHJpp+wqなんで1確保1解放になる前提なんだ?
確保
→解放⇔確保
→確保されてたら解放
ってのもありえるだろう
0624デフォルトの名無しさん
2015/03/01(日) 09:05:05.83ID:6ijce9uo0625デフォルトの名無しさん
2015/03/01(日) 09:32:27.00ID:Z2A424JmC++は関数型言語ではないため、関数そのものを第一級オブジェクトとしては扱えない。
厳密な意味での関数の階層構造、いわゆる高階関数はあり得ない。
まあこの場合は、単純に呼び出し階層のことを階層構造と言っているんだと思う。
0626デフォルトの名無しさん
2015/03/01(日) 09:39:40.78ID:nomKHzfbC++11(C++0x)からはラムダ式をサポートしているから高階関数も記述できる。
0627デフォルトの名無しさん
2015/03/01(日) 18:26:41.59ID:3UdH+o3pif (スレチ > 1) exit(0);
0628デフォルトの名無しさん
2015/03/01(日) 18:48:36.09ID:LYwpGVQLif (--スレチ < 0) exit(0);
0629デフォルトの名無しさん
2015/03/02(月) 20:37:41.90ID:AZdlh9F+0630デフォルトの名無しさん
2015/03/02(月) 21:09:54.74ID:/ZttR8idhttp://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:wAAd8cV7https://github.com/katahiromz/DoWonders
0633デフォルトの名無しさん
2015/03/04(水) 13:07:36.31ID:tgLNzxz5VariantClear(&x)する必要ありますか?
0634デフォルトの名無しさん
2015/03/04(水) 13:16:28.70ID:4pfVor2Uただ普通はVARIANTをラップしたクラスを使うのではないか。
0635デフォルトの名無しさん
2015/03/04(水) 13:25:32.16ID:tgLNzxz5レスありがとうございまし。
>VARIANTをラップしたクラス
CComVariantというやつでしょうか?
使っていません。もう一つ質問なのですが、BSTRを
SysAllocStringでxに入れた場合、解放はSysFreeStringでもVariantClearでも
どっちでもいいんですよね?
0636デフォルトの名無しさん
2015/03/04(水) 14:32:25.29ID:4pfVor2Uどっちでも一緒だが、VARIANTに入れたならVariantClearが自然だと思うが。
あと、使っていません、じゃなくて、使うべきだということだ。
まぁ、pure-Cで書きたいならリークしないようがんばれ。
0637デフォルトの名無しさん
2015/03/04(水) 16:35:21.60ID:CGrRsA9rそのままWndProcを呼び出せばいいような気がしますが
0638デフォルトの名無しさん
2015/03/04(水) 16:40:26.58ID:1ms42xKS0639デフォルトの名無しさん
2015/03/04(水) 16:47:31.58ID:kF2z/wHc0640デフォルトの名無しさん
2015/03/04(水) 17:15:40.48ID:CGrRsA9rそれと同じものをCallWindowProcを使わずに手動で呼び出したらどういう不都合があるのかという意味です
0641デフォルトの名無しさん
2015/03/04(水) 17:31:14.35ID:m8Ib0gvCないなら自作するから別にいいんだけど
0643デフォルトの名無しさん
2015/03/04(水) 19:48:53.75ID:4pfVor2Uまずは先にMSDNに当たろう。
> Windows NT/2000:CallWindowProc 関数は、Unicode から ANSI への変換を行います。ウィンドウプロシージャを直接呼び出した場合は、このような変換は行われません。
A系とW系が混ざったときに意味がある。
ただ、いまや全てがNT系になっているから、おそらく何もしていないとは思う。
0644デフォルトの名無しさん
2015/03/04(水) 20:14:41.63ID:CGrRsA9rごめんなさい。見落としていたみたいです
あまり混ざる状況が想像できませんね
0645デフォルトの名無しさん
2015/03/04(水) 22:44:03.39ID:+D050Nsw0646デフォルトの名無しさん
2015/03/04(水) 23:03:00.23ID:FBGUNvyY0647デフォルトの名無しさん
2015/03/05(木) 09:58:20.60ID:3wyFIaYrEXE(他作,ソース変更できない。 DLL使う)
の場合にEXEを複数起動したとして、DLL間で構造体を一個共有したいのですが、
どんな方法がお勧めですか?キーワード教えて下さい。
0648デフォルトの名無しさん
2015/03/05(木) 10:50:26.88ID:OANpNxqp0649デフォルトの名無しさん
2015/03/05(木) 11:11:26.47ID:3wyFIaYrレスありがとうございます。
質問した後ぐぐって調べて
CreateFileMapping
CreateNamedPipe
などを使えば出来るのかなと思ったのですが、どっち使ってもできますか?
0650デフォルトの名無しさん
2015/03/05(木) 11:31:51.71ID:GDG3LDPk0651デフォルトの名無しさん
2015/03/05(木) 11:38:06.57ID:3wyFIaYr教えてください
0652片山博文MZ ◆T6xkBnTXz7B0
2015/03/05(木) 11:55:31.35ID:rUbEobY5CreateNamedPipe は、他のプロセスとの通信に使える。
0653デフォルトの名無しさん
2015/03/05(木) 12:00:11.48ID:NOA7K+lChttps://msdn.microsoft.com/ja-jp/library/h90dkhs0%28v=vs.90%29.aspx
0654デフォルトの名無しさん
2015/03/05(木) 12:03:17.13ID:3wyFIaYr解説ありがとうございました。少し分ってきました。今回はCreateFileMapping
を使うのが良さそうな気がしますのでそれで試してみます。
もしCreateNamedPipeを使ってDLL同志でプロセス間通信をした場合、EXEの動き
と関係なく勝手に通信してもEXEの動きがおかしくなるとか、そういうことは
ありませんか?
0655デフォルトの名無しさん
2015/03/05(木) 12:48:19.42ID:6vcov9qdパイプ内のデータ量に注意が要るだろう。 空なら読み側がブロックされるし、一杯なら書き側が。
メモリマップの場合は排他処理が要るだろう。 マップしたデータの更新中に読み取ろうとするとおかしくなることも。
0656デフォルトの名無しさん
2015/03/05(木) 15:28:53.17ID:FqBn4bE2パイプにするメリットはないでしょ
0657デフォルトの名無しさん
2015/03/05(木) 16:40:12.83ID:3wyFIaYrCreateFileMappingでどうにか出来ました。(たぶん)
排他制御はしていません。
>>653さんの
#pragma data_seg("hogehoge")
の方法は、ビルドは出来たのですが実行するとEXEが異常終了しましたが
何が悪いのか良く分らなかったです。
0658デフォルトの名無しさん
2015/03/05(木) 16:50:32.22ID:wT1PXWMM0659641
2015/03/05(木) 18:09:03.90ID:gcFJJov5しゃーない、スクリプト書いてmsdnから生成するか
0660デフォルトの名無しさん
2015/03/05(木) 18:31:10.65ID:a7rJlVmwそういうアピールいらないから
0661デフォルトの名無しさん
2015/03/05(木) 18:31:37.01ID:lwDUotw+やめろよそういうの
0662デフォルトの名無しさん
2015/03/06(金) 00:40:32.17ID:ci1Iacgw32x32 24bitのアイコンを貼り付けると、周囲がギザギザになるんです。
アイコンの絵柄は円形です。その円の縁がギザギザになります。
どうすればスムーズに描けますか?Win7です。
0663デフォルトの名無しさん
2015/03/06(金) 01:47:07.71ID:JmsQNHVX0664デフォルトの名無しさん
2015/03/06(金) 01:48:28.33ID:dcg9agNJ0665デフォルトの名無しさん
2015/03/06(金) 02:05:43.30ID:TPaNSGwi0666デフォルトの名無しさん
2015/03/06(金) 15:27:26.95ID:/f5vJIs8意味不明
アピールって何?
お前の意味不明なレスは迷惑だから書き込まないほうがいいよ
0667デフォルトの名無しさん
2015/03/06(金) 15:34:04.06ID:7hSPkkPD0668デフォルトの名無しさん
2015/03/06(金) 16:40:13.01ID:TPaNSGwi>>659がアピールじゃないというなら無駄な独り言と言う事になるが
0669デフォルトの名無しさん
2015/03/06(金) 18:09:00.40ID:/f5vJIs82ch自己解決してるレス全てに言ってこいよ
言ってこなければお前は煽りたいだけのただの荒らしということになるが
0670デフォルトの名無しさん
2015/03/06(金) 18:26:56.10ID:JmsQNHVX0671デフォルトの名無しさん
2015/03/06(金) 20:50:27.44ID:oEtb/vlpほんとに分かってないんだなwww
ヒント >>642
0672デフォルトの名無しさん
2015/03/06(金) 21:18:15.26ID:Utx2vhNJ0673デフォルトの名無しさん
2015/03/06(金) 21:50:32.27ID:LSRPy5GR0674デフォルトの名無しさん
2015/03/06(金) 22:13:38.35ID:oEtb/vlp0675デフォルトの名無しさん
2015/03/06(金) 22:39:00.57ID:TPaNSGwi論点ずらして口調真似るしか思いつかなかったんかな
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ウィンドウはハンドルごとに動的にプロシージャを書き換えられるけど、
ウィンドウクラスごとの既定のプロシージャの読み書きをするのがClass系だと思う
推測が正しければ、buttonクラスをCreateしたあとにSetClassLongPtrしても既存のボタンは無変化
0680デフォルトの名無しさん
2015/03/07(土) 17:45:03.56ID:Rnf8iriw0681デフォルトの名無しさん
2015/03/07(土) 18:44:01.73ID:Dpuz2Uog0682デフォルトの名無しさん
2015/03/07(土) 18:46:41.97ID:nqIUQWMv0683デフォルトの名無しさん
2015/03/07(土) 19:17:49.24ID:axQ1bDXBレスありがとうございます。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:Dpuz2Uog0685デフォルトの名無しさん
2015/03/07(土) 19:50:34.61ID:Dpuz2Uog0686デフォルトの名無しさん
2015/03/07(土) 19:57:24.30ID:X8MnyI4n0687デフォルトの名無しさん
2015/03/07(土) 20:00:36.83ID:Dpuz2Uog俺が言ったのはそれ以外の関数によるサブクラス化の話な
0688デフォルトの名無しさん
2015/03/07(土) 21:13:31.10ID:6R+vjf4Iそのautoは、もう昔のautoじゃないんだぜ。
0689デフォルトの名無しさん
2015/03/07(土) 21:18:02.58ID:axQ1bDXBたびたびレスありがとうございます。
結論としては、SetWindowSubclassとDefSubclassProcの組み合わせ
使っておけばどんな場合でもこれでサブクラス化が出来るという
理解で良いですか?>>680さんの言うようにSetWindowLongPtrなど
は一切忘れて良いという理解で。
0690デフォルトの名無しさん
2015/03/07(土) 21:19:05.80ID:Dpuz2Uog0691デフォルトの名無しさん
2015/03/07(土) 21:20:25.52ID:udrejifJメリットがよくわからん
0692デフォルトの名無しさん
2015/03/07(土) 21:23:18.10ID:Dpuz2Uogまぁそこまでの前方互換性は切ることを勧めるけど
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の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:ydBH9dlO0697デフォルトの名無しさん
2015/03/07(土) 22:53:55.38ID:zjzHBwlq0698デフォルトの名無しさん
2015/03/07(土) 23:07:46.17ID:k/mf99aTユーザ的にはそのほうが楽。
けど。
新しいOSが出ても古いソフトウェアを使い続けられると困ります。
新しいソフトウェアが出ても古いOSを使い続けられると困ります。
MSはサポートの終了という形で新しいOSを売り込める。
ソフト屋さんは新しいOS対応という形で新しいソフトを売り込める。
Win-Winやね、Windowsだけにw
0699デフォルトの名無しさん
2015/03/07(土) 23:18:41.42ID:beSd+1t5ありがとうございます。
教えてもらった方法も検討してみます。
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それを解決したのがSetWindowSubclass。という話。
これ以上のテストは必要か?
0702デフォルトの名無しさん
2015/03/08(日) 07:55:31.45ID:tlWR3Gzmもちろん(2)。そうでないと全部解決なんて言わない
>You do not need to call the default window procedure; this function calls it automatically.
0703デフォルトの名無しさん
2015/03/08(日) 09:25:09.97ID:Zdg2LulNthisをHWNDに結びつけるためだけにSetWindowSubclassを使ってもいい。
これを使うだけでGWLP_USERDATAもATL::CWindowもいらない。
0704デフォルトの名無しさん
2015/03/08(日) 15:26:44.09ID:UaA2rqzAこれで参照カウント2になってスコープ抜けても解放されないのって罠すぎじゃない?
0705デフォルトの名無しさん
2015/03/08(日) 16:51:33.89ID:Zdg2LulNSHCreateMemStreamは明らかにMSが公開する気がなかったAPIだからしゃーない。
普通ならHRESULTとIStream**で返すはずだしな。
おとなしくAttachしとけ。
0706デフォルトの名無しさん
2015/03/08(日) 21:06:15.16ID:rbSb1MSqRemoveWindowSubclassをする場合は、
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:YRhnmZWzWM_CLOSEのタイミングでRemoveWindowSubclassやってみて
0708デフォルトの名無しさん
2015/03/08(日) 23:27:42.75ID:r6bOUE6y0709デフォルトの名無しさん
2015/03/08(日) 23:31:49.82ID:tlWR3Gzm0710デフォルトの名無しさん
2015/03/09(月) 07:37:08.04ID:ewisVoGf解除後も生存するならともかく、作法としてはいきすぎな気がする。
0711デフォルトの名無しさん
2015/03/09(月) 08:11:50.25ID:d8cjeDnQ0712デフォルトの名無しさん
2015/03/09(月) 08:28:20.19ID:CRFMLrc+0713デフォルトの名無しさん
2015/03/09(月) 12:15:56.71ID:NnzyOe/jなんなのこれ
0715デフォルトの名無しさん
2015/03/09(月) 13:36:07.10ID:NnzyOe/jタスクバーで右クリックしても何も出て来なくなった
しばらくしたらタスクバーが消えたので
エクスプローラー全部(シェルになってる分も)再起動したけど
結局右クリックするとまた何も出なくてしばらくするとタスクバーが消える
0716デフォルトの名無しさん
2015/03/09(月) 13:53:55.84ID:JefS5wtF0717デフォルトの名無しさん
2015/03/09(月) 14:37:13.92ID:NnzyOe/j0718デフォルトの名無しさん
2015/03/09(月) 16:45:43.84ID:rihTBotwPostMessageで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:JefS5wtFswitch文で完結する野暮用ならそれも有りだな
0720デフォルトの名無しさん
2015/03/10(火) 00:42:10.77ID:DI4sqVG3http://eternalwindows.jp/shell/shellex/code/shellex13.html
のページでは、タスクバンドに文字列を出すという例があるのだけれども、
文字列ではなく、画像を出したいのだけれども、
どうもどうやっても上手くいかない。
case WM_PAINT:
の中や、WM_CREATE, WM_DESTROY等を加えて、
「通常のフォーム系のウィンドウ」と同じような記述をしても、
全く描画がされないのだけれども、なぜでしょう。
デスクバンドならでわの何か制限があります?
こうすれば画像が出るよ! という例があればありがたいです。
画像ボタンでもOKです。
0721デフォルトの名無しさん
2015/03/10(火) 07:33:50.59ID:AEOJo20zhttp://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/8DrawTextでテキストを描画するんですが、
ピッタリ収まる領域の高さ、というか
行数を事前に知る方法はありますか?
0723722
2015/03/11(水) 00:10:01.29ID:1/cfAzG2DT_CALCRECTですね。
0724デフォルトの名無しさん
2015/03/11(水) 04:18:31.79ID:1djAj2bo0725デフォルトの名無しさん
2015/03/11(水) 08:20:38.38ID:xaw482vH0726デフォルトの名無しさん
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:XNQDoSm90728デフォルトの名無しさん
2015/03/11(水) 14:13:30.36ID:9dJwmqGqMA_NOACTIVATEANDEATも試したんですが、アクティブにはならないもののプッシュもできなくなるんですよね
マウスホバーのアニメーション以外は何も起こらない感じです
0729デフォルトの名無しさん
2015/03/11(水) 14:30:44.32ID:XNQDoSm9WM_MOUSEACTIVEではWindowFromPointで実際にどのボタンが押されたのかを調べ、
ボタンを凹ませる処理から自分でする。
リピートとか全て自分で実装。
0730デフォルトの名無しさん
2015/03/11(水) 14:40:21.75ID:9dJwmqGqなるほど、そこからやればいいんですね
BM_SETSTATEで凹凸が表現できました。これならできそうです
ありがとうございました
0731デフォルトの名無しさん
2015/03/11(水) 17:38:18.33ID:1/cfAzG2ゆっくり回したときはヌルヌル、
速く回したときはサクッとスクロールして
惰性でさらにスクロールする
スマホアプリみたいな挙動を実現できます?
そもそもDeltaって何?
0732デフォルトの名無しさん
2015/03/11(水) 17:43:25.19ID:8MeoENMQ0733デフォルトの名無しさん
2015/03/11(水) 18:50:40.12ID:B0uxeYZf0734デフォルトの名無しさん
2015/03/11(水) 19:31:02.76ID:GG+mbF6gできようができまいがお前には関係ないだろ
馬鹿にはどのみち無理
0735デフォルトの名無しさん
2015/03/11(水) 19:34:10.40ID:GG+mbF6g今度は滑らかにスクロールしないと言い出して
ここでまたゴミみたいな質問を投下するのは目に見えてる
迷惑
できないと言っておくのがゴミの>>731にとっても回答者にとって幸せ
0736片山博文MZ ◆T6xkBnTXz7B0
2015/03/11(水) 19:54:17.43ID:cFDo18bsdeltaは差分(difference)を表すギリシャ文字。
0737デフォルトの名無しさん
2015/03/11(水) 20:34:11.90ID:1/cfAzG2ありがとう。
調べたところ、hParamをWHEEL_DELTA(120)で割ると
回転速度が分かるという記述もあったんですが、
試した結果、本当にそうかなと思ったもんで...
実は先週末から思い立って自分専用の2chブラウザを作ってて
(datではなく)htmlからの読み込みや投稿の部分の実装は終わったんですが
再整形したhtmlをWebBrowserで表示してたものの、これがメモリ喰いで
自前の描画エンジンを作ろうとしてるところです
0738片山博文MZ ◆T6xkBnTXz7B0
2015/03/11(水) 20:39:10.04ID:cFDo18bs「Win32 自作コントロール」で検索。
APIを使わない2ちゃんねるスクレイピングは
違法になったのでは?
0739デフォルトの名無しさん
2015/03/11(水) 20:42:43.01ID:blS4wY8n違法ではない、勝手にやるぶんには問題ない
0740デフォルトの名無しさん
2015/03/12(木) 05:57:38.32ID:9mlNKBOn0741デフォルトの名無しさん
2015/03/12(木) 07:35:52.11ID:PaCDKRwU0742デフォルトの名無しさん
2015/03/12(木) 08:26:27.18ID:9mlNKBOn支離滅裂
0743デフォルトの名無しさん
2015/03/12(木) 08:33:23.97ID:PaCDKRwUどーぞどーぞ
0744デフォルトの名無しさん
2015/03/12(木) 08:42:16.65ID:5UC56zdP>>743
0745デフォルトの名無しさん
2015/03/12(木) 09:18:46.75ID:9mlNKBOnあ、はい
0746デフォルトの名無しさん
2015/03/12(木) 10:43:29.82ID:2mqKs9WG↓
API導入で専ブラリストラ&移転騒ぎ
↓
人減り過ぎ
↓
運営あわててBBq規制ゆるめる
↓
IP変えてIDもいつでも変えられる人増える
↓
元の木阿弥 ←いまココ
0747デフォルトの名無しさん
2015/03/12(木) 16:39:36.35ID:Qs/VVwER片山が初心者に嘘を教えてるのはいつものこと
0748デフォルトの名無しさん
2015/03/13(金) 01:28:38.03ID:fI59J60Bそもそも真剣に困ってる人は2chなんか来ないからどうでもいいと思う。
2chに来るのはどうでもいいネタを投下して暇潰しするような人ばかりだし。
0749デフォルトの名無しさん
2015/03/13(金) 01:40:38.88ID:VBJF/bRa暇つぶし乙
0750デフォルトの名無しさん
2015/03/13(金) 16:32:28.76ID:UNvN9Dk70751デフォルトの名無しさん
2015/03/13(金) 18:17:18.02ID:1q07XjK30752デフォルトの名無しさん
2015/03/14(土) 00:43:11.63ID:QK+3jeRhウインドウの移動機能の SendMessage(hWnd,WM_SYSCOMMAND,SC_MOVE,0);
が動かないんだけどなにかいい方法ある?
0753デフォルトの名無しさん
2015/03/14(土) 00:56:11.85ID:Zay2tm1W0754デフォルトの名無しさん
2015/03/14(土) 01:02:00.14ID:QK+3jeRhPostMessage(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【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:q7gtYoDb477 名無し~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例えば
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:07oTgRoYGetKeyboardState
0760デフォルトの名無しさん
2015/03/17(火) 17:22:36.21ID:QJiUV4ubGetKeyboardStateとGetAsyncKeyStateは戻り値の型が違うだけのような解説ばかりだったため
どちらも破壊読み取りだと勘違いしていました
ありがとうございます
0761デフォルトの名無しさん
2015/03/20(金) 12:59:49.70ID:WsOA7RrAマウスの通過した位置を記録して、
その付近を反転表示させることで
リストボックスとメニューの中間のようなウインドウを作ろうとしているのですが
うまくいかないです。
具体的には通過位置周囲をInvalidateRectして
次回のOnDrawで色を変えてみたり、
WndProcから直接塗りつぶしてみたり、
いろいろやってますがだめでした。
(残像が残ったり 歯抜けに表示されます)
このような場合の正しいやり方というか、定石ありますか?
0762デフォルトの名無しさん
2015/03/20(金) 13:05:38.54ID:9j2TyrxJListBoxのマウスポインタが通過した所全てを選択状態にするような感じ?
0763デフォルトの名無しさん
2015/03/20(金) 13:17:07.76ID:WsOA7RrA近いです。
ポップアップメニューに近い動作なんだけど、
ウインドウの枠があってフォーカスが外れても消えず、
ドラッグアンドドロップも受け付けるみたいな感じにしたいです。
0764デフォルトの名無しさん
2015/03/20(金) 19:39:44.77ID:eLcGwyCE0765デフォルトの名無しさん
2015/03/21(土) 02:03:33.74ID:wTPdkcAS一から好きなように書いてみては?
細かなユーザビリティーをとことん追求するのであれば、
出来合いのパーツ使わずに自分で思うように書くしかないと思う。
0766デフォルトの名無しさん
2015/03/21(土) 05:13:54.32ID:GYXjYklzEXCELでセルに入力してある文字列にフリガナを表示させることが出来ますよね。
そのフリガナをクリックすると編集することもできます。
そういうコントロールをVC++で使いたいのですが、セルの文字列だけなら
RichTextで扱えると思うのですが、フリガナ文字を編集できるような機能も
追加するには、自作するしか方法はないでしょうか?
0767デフォルトの名無しさん
2015/03/21(土) 07:47:32.02ID:7+ji4sYHここ2,3年でほとんど触らなくなったな
0768デフォルトの名無しさん
2015/03/21(土) 11:02:06.25ID:rA11USYHエディットコントロールを重ねる
0769デフォルトの名無しさん
2015/03/21(土) 15:05:58.09ID:GYXjYklz>エディットコントロールを重ねる
レス有難うございます。
そういう手法で作るのが良さそうですね。
その場合、C#だとUserControlでそういうのを作っておけばFormの上に自由自在に貼り付けて再利用出来ますが、VC++でも似たような手法が有るのかな?少し調べた限りでは無さそうですが。
0770デフォルトの名無しさん
2015/03/23(月) 10:22:06.76ID:M3nkBPPXがアクティブ?っていうのか、フォアグラウンドていうのか?になりますよね。
それを、常に親ウインドウがアクティブなまま、ダイアログを出したいのですが、
ヒント教えて下さい。
0771デフォルトの名無しさん
2015/03/23(月) 11:48:02.81ID:Xk3bN+xh0772デフォルトの名無しさん
2015/03/23(月) 11:58:07.47ID:M3nkBPPXレス有難うございます。
モーダルです。ダイアログ表示中も親ウインドウ操作したいです。
0773デフォルトの名無しさん
2015/03/23(月) 12:02:19.29ID:M7S+dk2o0774デフォルトの名無しさん
2015/03/23(月) 12:04:55.13ID:M3nkBPPXああそうです。よく混乱します。
モードレスでお願いします。
0775デフォルトの名無しさん
2015/03/23(月) 12:09:44.41ID:M7S+dk2o0776デフォルトの名無しさん
2015/03/23(月) 12:11:42.10ID:M3nkBPPX有難うございます。試してみます。
0777デフォルトの名無しさん
2015/03/23(月) 16:35:44.24ID:M3nkBPPX試してみたのですがダイアログのほうが
アクティブのままで、親ウインドウがアクティブになってくれませんでした。
やりたいのは、とにかくダイアログは一切アクティブにならずに親ウインドウをアクティブにしたいんですが。例えばダイアログをマウスでドラッグして移動している間も親ウインドウがアクティブ。
0778デフォルトの名無しさん
2015/03/23(月) 17:06:33.87ID:mNKMHWo00779デフォルトの名無しさん
2015/03/23(月) 18:46:35.47ID:uejvAHsZそれホントにモードレスダイアログになってる?
それとマウスでドラッグしてる間はドラッグしてるダイアログがアクティブなのは
仕方ないでしょ。ドラッグ移動してるということは、それがアクティブということだから
ドラッグ終了したら親ウィンドウをアクティブにすればいいのでは?
0780デフォルトの名無しさん
2015/03/23(月) 19:09:55.63ID:K3npmpJSその動作一切を、自分のウインド内で、動作を停止させる方法ありませんか?
長押しなどでタッチした位置に、丸い軌跡やら矩形やらが表示されて困っています。
また、マウスが押された時にタッチメッセージがマウスに送られてくるなど問題があります。
下記は、押された時のメッセージ分岐です。
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+UI4Cgohttps://msdn.microsoft.com/en-us/library/windows/desktop/ff657750.aspx
0782デフォルトの名無しさん
2015/03/24(火) 00:32:13.90ID:8AKB60h4ちょっと勘違いしていました。
やりたいのは親ウインドウに例えばListBoxとかListViewなどが有って、その中の要素を選択していても、
子ダイアログを表示してそのダイアログがアクティブになると親ウインドウ上のそれらの選択項目の強調表示が薄い色に
変わってしまいますよね。それを変えずに常に強調表示させたいのです。
そのためには子ダイアログを開いてもそれがアクティブにならなければ実現できるかなと思ったのですが、そういう手法ではなく
もっとちゃんとした手法があるのでしょうか?
0783デフォルトの名無しさん
2015/03/24(火) 00:42:15.94ID:IjKYEhSY親ウィンドウが非アクティブになる時に、強調表示の色に変更すればいいじゃん
0784デフォルトの名無しさん
2015/03/24(火) 01:08:31.41ID:G9RxAwbzHideSelectionで色だけ自分で
0785デフォルトの名無しさん
2015/03/24(火) 01:34:12.91ID:8AKB60h4レスありがとうございます。
そういう手法しかないですか?
例えば子ダイアログがアクティブでも親を騙して
親がアクティブだと思わせるような小細工はできませんか?
0786デフォルトの名無しさん
2015/03/24(火) 01:57:34.88ID:G9RxAwbz0787デフォルトの名無しさん
2015/03/24(火) 01:58:21.93ID:IjKYEhSYListBoxとかListViewなどのウィンドウプロシージャの非アクティブの時の
処理を無効にするとかかなあ
やったことがないからわからんが、WndProcをいじれば何とかなりそうだがな
ListBoxとかListViewなどをサブクラス化してWM_ACTIVATEの処理をさせないとか
あとは、非アクティブ時にWM_ACTIVATEを叩き込んで騙すとか
0788デフォルトの名無しさん
2015/03/24(火) 11:41:14.71ID:q5QMGn49情報有難うございます。
0789デフォルトの名無しさん
2015/03/24(火) 22:42:06.70ID:ozkMoQA1マウスを裏返しに置いて動作しないようにしておいて、
キーボードのALT+TABでウインドウを手前に出したり引っ込めたりしたところ
WM_MOUSEMOVEが発生しています。
これって仕様?
これを抑制するようなAPIとかないですか?
0790デフォルトの名無しさん
2015/03/24(火) 22:49:46.90ID:V+UI4Cgoむしろ無いと困る仕様だとは思うが、抑制する方法は知らん
ちゅーかSpy++使いたまへ
0791デフォルトの名無しさん
2015/03/24(火) 23:13:09.16ID:ozkMoQA1なにかおすすめあります?
あと、ALT+TAB以外の不明な原因でも動いてないマウスのMOUSEMOVEが
時々飛んできますYO
0792デフォルトの名無しさん
2015/03/25(水) 00:57:43.98ID:TCac9qwb0793デフォルトの名無しさん
2015/03/25(水) 01:03:38.64ID:ICAFIUG+0794デフォルトの名無しさん
2015/03/25(水) 01:35:33.35ID:kbD8DHre2013にすればコミニティエディションがあるのね。
余裕ができたらバージョンあげる。
>>792
趣旨としては、マウスとキーボードの両方の操作を受け付けるコントロールを作ってるんだけど、
キーボードの操作中に予想外のマウスイベントが飛んでくるのでどうしようっか というような
そういう感じで実験してました。
0795デフォルトの名無しさん
2015/03/25(水) 09:15:29.24ID:kQAq5P0Zマウスボタン押しの時にフラグ立てておいて、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メニュー。
具体的には orchis ってソフトみたいな動作をするウインドウを
組み立ててみたけど、マウスとキーボードの両方での操作を受け付けたら
想定外のマウスイベントが飛んでくるって現象。
0797789
2015/03/25(水) 19:26:21.64ID:kbD8DHre初期化部分とウインドウリサイズのハンドラで変数に座標(-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:0It7vtDM0799デフォルトの名無しさん
2015/03/25(水) 19:58:11.58ID:kQAq5P0Z-1,-1よりも、 -2147483648 (1<<31) とかのほうが安全じゃね?
マルチディスプレイとかだと、マウス位置によって-1,-1の数値来る場合有りそうだけど?
WM_MOUSEMOVEなら負の値ほぼ出ないか?SetCapture()とか使ってないなら大丈夫っぽい?
0800デフォルトの名無しさん
2015/03/25(水) 21:16:14.66ID:AVdI7SPn何入れようが考えるだけ無駄
0801デフォルトの名無しさん
2015/03/26(木) 16:29:27.94ID:c0xiAkqRエディターを作っているのですが、起動直後に以前のファイルを読み込むように、xxView.cppにOnCreateをClassWizardで
生成して、その中で GetDocument()->ReadFile( filename ) としました。ReadFileは自分でつくった関数です
このReadFile関数の中で、SetTitleもしていて、アプリウインドウの上部のタイトルバーにファイル名が出るようにしているのですが
起動直後、CViewのOnCreate内で このGetDocument()->ReadFileをしてもその中でSetTitleをしているにもかかわらず
タイトルバーにはファイル名が出ません
起動直後にファイルを自動で読み込ませるにはここでするのは違うのでしょうか。どこでしたらいいのですか
0802デフォルトの名無しさん
2015/03/26(木) 16:54:17.57ID:c0xiAkqRここは新規ファイルを選択したときにも呼ばれるので、変な小細工をすれば出来るかもしれませんが
なにかスマートではありません。本来のやり方ではない気がするのですが
0803デフォルトの名無しさん
2015/03/26(木) 19:15:35.87ID:DhJPyUKm0804デフォルトの名無しさん
2015/03/26(木) 22:00:45.91ID:/f/mgGCottp://peace.2ch.net/test/read.cgi/tech/1316080347/
0805802
2015/03/27(金) 06:48:32.56ID:y8AOm3PR0806デフォルトの名無しさん
2015/03/27(金) 11:18:52.10ID:h/AyVghg0807デフォルトの名無しさん
2015/03/27(金) 11:19:38.23ID:h/AyVghg0808デフォルトの名無しさん
2015/03/27(金) 11:53:56.34ID:4hIGmkI60809デフォルトの名無しさん
2015/03/27(金) 11:57:08.11ID:h/AyVghgありがとう、WM_SIZEで受けてパラメータにSIZE_RESTOREDがあったら戻したメッセージってことですね
0810片山博文MZ ◆T6xkBnTXz7B0
2015/03/27(金) 17:29:06.46ID:DfCIYrgC2015.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スレチだが、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:v4NwZmHf0814デフォルトの名無しさん
2015/03/29(日) 17:56:02.45ID:5i4IxN6Mテメエのオナニーライブラリなんぞ一生パンツん中に突っ込んどけ
0815デフォルトの名無しさん
2015/03/30(月) 18:24:18.83ID:Txtn4xHnMFCとWIN32、どっち覚えた方がいいの?
0816デフォルトの名無しさん
2015/03/30(月) 18:35:02.32ID:ivoRy/L6あとは分かるな
0817デフォルトの名無しさん
2015/03/30(月) 19:27:52.60ID:KChkT48h0818デフォルトの名無しさん
2015/03/30(月) 19:41:46.04ID:Txtn4xHnだったら何でWin32の本売ってない?
ほとんどMFCばかりだぞ
0819デフォルトの名無しさん
2015/03/30(月) 19:53:05.05ID:+x9foXQS時代はWTL
0820デフォルトの名無しさん
2015/03/30(月) 19:57:00.87ID:AKJsrmAN0821デフォルトの名無しさん
2015/03/30(月) 19:58:38.42ID:3cZLk65C0822デフォルトの名無しさん
2015/03/30(月) 20:40:22.79ID:tj/CKRcj分厚い本になるから、もうないんだろうね。
0823デフォルトの名無しさん
2015/03/30(月) 20:47:06.70ID:Z/xNzUYFwin8では全廃されちゃったし・・・
0824デフォルトの名無しさん
2015/03/30(月) 20:48:30.63ID:ZvmyvnLcつPetzold
0825デフォルトの名無しさん
2015/03/30(月) 21:26:04.85ID:i+YJuxFC必要になれば、都度ネットで検索すればよい。
もちろんここで質問しても良い。
0826デフォルトの名無しさん
2015/03/30(月) 21:40:51.95ID:+x9foXQSことごとく絶版だったりするけど、何読めばいいの?
0827デフォルトの名無しさん
2015/03/30(月) 21:41:53.64ID:Txtn4xHn0828デフォルトの名無しさん
2015/03/30(月) 21:48:08.37ID:f5AcnPuuそこで MFCを綺麗に再構築したような Win32++がおすすめ。
http://win32-framework.sourceforge.net/
プリミティブな関数の名前と使い方はMFCと一緒で、
プログラムの全体が簡潔で綺麗なコードに仕上がる。
0829デフォルトの名無しさん
2015/03/30(月) 22:05:30.25ID:ivoRy/L60830デフォルトの名無しさん
2015/03/30(月) 22:31:50.01ID:Z/xNzUYFmfcのほうが全然印
0831デフォルトの名無しさん
2015/03/30(月) 22:41:53.23ID:vDmNFgKGwin32api がない?本当か?
0832デフォルトの名無しさん
2015/03/30(月) 22:43:14.84ID:Z/xNzUYF0833デフォルトの名無しさん
2015/03/30(月) 22:47:07.75ID:1Xl/36uT0834デフォルトの名無しさん
2015/03/30(月) 22:49:33.23ID:f5AcnPuu結局デスクトップの終焉(ビジネスとしての終了)まで生き残ったのはWIN32APIw
0835デフォルトの名無しさん
2015/03/30(月) 23:00:29.37ID:vDmNFgKGwin8/10 でも win32api は提供されているんじゃなかったの?
0836デフォルトの名無しさん
2015/03/30(月) 23:06:13.27ID:Z/xNzUYF0837デフォルトの名無しさん
2015/03/30(月) 23:21:27.55ID:u5ife7BW0838デフォルトの名無しさん
2015/03/30(月) 23:34:58.92ID:ivoRy/L60839デフォルトの名無しさん
2015/03/31(火) 00:47:56.62ID:dMuTNiPT0840デフォルトの名無しさん
2015/03/31(火) 08:29:29.72ID:V12GMbZM0841デフォルトの名無しさん
2015/03/31(火) 15:09:34.80ID:r+PJt+7s0842デフォルトの名無しさん
2015/03/31(火) 15:47:01.79ID:UV6mK08F0843デフォルトの名無しさん
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:6A5nghzV0846デフォルトの名無しさん
2015/03/31(火) 19:39:12.61ID:vWx1RFOR64bit 版で既に 16bit アプリ打ち切ってるのに何を言ってるんだ?
0847デフォルトの名無しさん
2015/03/31(火) 19:46:06.52ID:ACkAWsbc0848デフォルトの名無しさん
2015/03/31(火) 20:03:40.07ID:ytppRCf1じゃぁ、現にwin8で未サポート元、不サポートとなっている理由は?
0849デフォルトの名無しさん
2015/03/31(火) 20:10:17.91ID:+KfLn/60∧_∧∩ / Jane Styleは別に
( ´∀`)/< 先生!動かなくなっても
_ / / / \ いいです!できれば
\⊂ノ ̄ ̄ ̄ ̄\ | 動かない方が…
||\ \ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
||\|| ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄||
.|| ||
0850デフォルトの名無しさん
2015/03/31(火) 20:14:28.72ID:Z0jTt7mn現にWin8以降もサポートされているが、未サポートと主張する理由は?
0851デフォルトの名無しさん
2015/03/31(火) 20:15:13.86ID:jIkoyFTK0852デフォルトの名無しさん
2015/03/31(火) 20:37:32.43ID:ytppRCf1よく読め
未サポートとは主張していない
0853デフォルトの名無しさん
2015/03/31(火) 20:46:06.09ID:ACkAWsbc0854デフォルトの名無しさん
2015/03/31(火) 20:46:53.25ID:ytppRCf10855デフォルトの名無しさん
2015/03/31(火) 21:07:04.38ID:UbaiVWgy0856デフォルトの名無しさん
2015/03/31(火) 21:10:51.18ID:ytppRCf10857デフォルトの名無しさん
2015/03/31(火) 21:15:37.11ID:ACkAWsbc不サポート
それぞれの意味は?
0858デフォルトの名無しさん
2015/03/31(火) 21:28:03.07ID:Z0jTt7mn全廃くんはただの釣りだと思ったけど・・・もう何がなんだか・・・
0859デフォルトの名無しさん
2015/03/31(火) 21:42:01.28ID:J/N8EfYp0860デフォルトの名無しさん
2015/04/01(水) 01:31:56.21ID:SaeEUNg8とりあえず WIN32APIを直接使うとRTと互換性下がるよという話題が合った。
でも大方の予想どうりに RTの大失敗で黒歴史のエピソードに変わったんだよw
0861デフォルトの名無しさん
2015/04/01(水) 03:49:22.97ID:PpKhxCtR0862デフォルトの名無しさん
2015/04/01(水) 03:52:48.67ID:6No5roq+0863片山博文MZ ◆T6xkBnTXz7B0
2015/04/01(水) 13:41:14.19ID:bTV2IHQsWonders 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############################################
# 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:FyEUPoFw0866デフォルトの名無しさん
2015/04/01(水) 18:11:12.76ID:SaeEUNg8UNIXのmanコマンドの解説なしみたいなやつ。
0867デフォルトの名無しさん
2015/04/01(水) 18:13:45.21ID:wvOVoLI00868デフォルトの名無しさん
2015/04/01(水) 18:21:52.56ID:4LHQBjDkvoid CHogeDlg::OnButtonClick()
{
nagaishori();
}
を別スレッドにしたのですが、
void CHogeDlg::OnButtonClick()
{
threaddekaishi(nagaishori);
shorigaowarunowomatsu();
}
shorigaowarunowomatsu()内でWaitForSingleObjectを使って待っています。
結果的には最初と同じですよね?
まぁ、 shorigaowarunowomatsu();を行わなければいいだけですが・・・
0869デフォルトの名無しさん
2015/04/01(水) 19:19:27.54ID:/Cyandb9http://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+uXC#のasync/await使えばいい
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Run(() => nagaisyori());
}
0872デフォルトの名無しさん
2015/04/02(木) 04:44:47.89ID:FH8gV7UA0873デフォルトの名無しさん
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:d2wNb10R0875片山博文MZ ◆T6xkBnTXz7B0
2015/04/03(金) 11:53:18.17ID:d2wNb10R0876デフォルトの名無しさん
2015/04/03(金) 15:18:06.61ID:n1wYDwck0877デフォルトの名無しさん
2015/04/03(金) 17:51:47.78ID:d2wNb10R0878デフォルトの名無しさん
2015/04/03(金) 21:03:09.01ID:R/PiASKu> だから、時間のかかる処理中にWM_PAINTだけ処理するメッセージループ噛ませる
そんなきちゃない設計したくないからスレッドにしてるわけだし
> あえてスレッドで処理するんなら、スレッド実行前にUIはEnableWindow
> で入力禁止にした上でスレッド実行、WaitForSingleObjectは使わないで
> スレッド終了時にUIをEnableWindowで入力禁止を解除すればいいんじゃないの。
それってなんの解決になってるんだ?
0879デフォルトの名無しさん
2015/04/03(金) 21:18:35.61ID:qd46Xef5きちゃないとか久しぶりに聞いた
後半は開始・終了ボタンの事じゃないのか?
0880デフォルトの名無しさん
2015/04/03(金) 21:50:29.81ID:NtRakko8別スレッドにした意味がない方法を取ってる時点で、別スレッドにしても「きちゃない設計」だと思うよ。
0881デフォルトの名無しさん
2015/04/03(金) 22:09:30.06ID:nPEToW8d質問者がきちゃない設計してるからと言って、別のきちゃない設計勧めてどうするw
しかもよりきちゃないし
0882デフォルトの名無しさん
2015/04/03(金) 23:45:33.54ID:6TCkScwuんなもん、設計からキレイに作り直せば解決って言うなら、小学生でもできるんだぜ?
実際、お前さんではきちゃない設計を解決できてない。
クソ設計でも、最小工数で解決する方法の提示の方が100倍マシだわ。
0883デフォルトの名無しさん
2015/04/04(土) 00:05:26.91ID:mitlwOnNShell_NotifyIconとは、作り方違うのかなぁ・・・?
同じ登録方法が知りたいです。
0884デフォルトの名無しさん
2015/04/04(土) 00:12:40.26ID:kQcA28WQ勧めたつもりはないけど。
「きちゃない設計したくないからスレッドにしてる」はずなのに
汚いままじゃ同じじゃないの?そもそもの設計(特に親スレッド)を見直したほうが良いと言っているだけだよ。
WM_PAINTだけじゃだめだけど、処理を待つ間メッセージループを処理する工夫をしなくちゃいけないのは事実だし。
0885デフォルトの名無しさん
2015/04/04(土) 05:55:45.65ID:Y86GgH66> WM_PAINTだけじゃだめだけど、処理を待つ間メッセージループを処理する工夫をしなくちゃいけないのは事実だし。
メッセージループの処理とある長い処理を分離できてることが重要
>>882 みたいなドカタには不要らしいが w
そもそも >>873 の話は >>869 のリンク先に書いてあるし、>>869 には最小工数で解決する方法も書いてるし
0886デフォルトの名無しさん
2015/04/04(土) 10:59:00.14ID:NvLS+ow40887デフォルトの名無しさん
2015/04/04(土) 12:23:50.42ID:FbeX1h1l>>869 の後半はスレッドでの話だし、少なくとも >>873 よりはまともな設計だろ
0888デフォルトの名無しさん
2015/04/04(土) 14:44:58.01ID:+ZfwIkd70889デフォルトの名無しさん
2015/04/04(土) 16:44:22.96ID:kQcA28WQ>メッセージループの処理とある長い処理を分離できてることが重要
だから、>>884でも「設計(特に親スレッド)を見直したほうが良い」と言っているんだけど。
0890デフォルトの名無しさん
2015/04/04(土) 16:55:41.99ID:+ZfwIkd7学生だし
0891デフォルトの名無しさん
2015/04/04(土) 16:56:54.66ID:Y86GgH66> だから、>>884でも「設計(特に親スレッド)を見直したほうが良い」と言っているんだけど。
既に定番の方法が >>869 に書かれてるだろ
ひょっとして、理解できてないのか?
0892デフォルトの名無しさん
2015/04/04(土) 17:19:37.12ID:N4lx0lGgこいつはなにもの?
0893デフォルトの名無しさん
2015/04/04(土) 17:30:01.61ID:kQcA28WQ>>869は自分なんだが。
0894デフォルトの名無しさん
2015/04/04(土) 18:14:23.97ID:Im19kqOF何の略かによるだろ
略でなく単なるFFIなら知らん
0895デフォルトの名無しさん
2015/04/04(土) 20:17:45.85ID:Y86GgH66だからなに?
子スレッドの情報ないから状態でスレッドにする意味があるかないかについて語ってもしょうがないし、親スレッドについて >>869 よりマシな解決策があるのか?
>>892
このスレ的には他言語関数インターフェース (Foreign function interface) 位だと思うが、あまり目にすることはないけど...
http://ja.m.wikipedia.org/wiki/FFI
0896デフォルトの名無しさん
2015/04/04(土) 21:22:51.45ID:KzhB2n3Kprivate async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Run(() => nagaisyori());
}
これが一番シンプルかつきれいな設計ってことでFA
0897デフォルトの名無しさん
2015/04/04(土) 21:26:54.47ID:hQgjc6DcError 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:AbppvLIlIDM_FILE_OPENなどを#defineか#include
0899デフォルトの名無しさん
2015/04/04(土) 21:41:56.50ID:kQcA28WQ理解できてないのか?と言われたから
理解していない内容を提示するやつはいないだろ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あ、ヘッダじゃなくリソースにも書かないといけなかったのか
ありがとうすみません
0901デフォルトの名無しさん
2015/04/04(土) 22:09:42.23ID:jIu2FuGYヘッダに定義して、リソースファイルでインクルードするのが普通。
0902デフォルトの名無しさん
2015/04/04(土) 22:14:17.56ID:KzhB2n3K> 理解していない内容を提示するやつはいないだろw
> 3〜4ページも含めたとしてもとりあえず while( (GetTickCount()-dwStart) < dwWait ); はダメだろ。
理解してないじゃんwwwww
そこは時間のかかる処理を再現してるだけなんだからなんでもいいだろ。関係ねーよ
しかもこれ1〜4ページまでが前半で後半はまた別だからwwww
0903デフォルトの名無しさん
2015/04/04(土) 22:17:38.13ID:Y86GgH66> ということも理解できないのか?
ID:kQcA28WQ = >>869 なんて知らんから当たり前
> 1〜2ページだけで判断すればマシな解決策とは言えないし。
誰もマシな解決策なんて書いてないんだが w
0904デフォルトの名無しさん
2015/04/04(土) 22:22:45.83ID:KzhB2n3K0905デフォルトの名無しさん
2015/04/04(土) 22:24:18.56ID:jIu2FuGYスレタイ見えないのか
0906デフォルトの名無しさん
2015/04/04(土) 22:29:43.99ID:KzhB2n3K0907デフォルトの名無しさん
2015/04/04(土) 22:33:46.68ID:A5BBrLBB0908デフォルトの名無しさん
2015/04/04(土) 22:38:50.23ID:KzhB2n3KJavaのSWTからWin32API呼び出したり、C#のP/Invoke使って呼び出したりって結構あるんだよね
0909デフォルトの名無しさん
2015/04/04(土) 22:39:19.00ID:+ZfwIkd70910デフォルトの名無しさん
2015/04/04(土) 22:45:43.34ID:KzhB2n3K昔タスクバーのツールチップがタスクバーの後ろに隠れるっていうバグがあったじゃん
あれも関係しているみたいでぐぐってみたけど結局解決策分からんかった
>>909
いろいろ勉強した方がいいぞ。学生なんだから
0911デフォルトの名無しさん
2015/04/05(日) 07:44:23.00ID:/hx1kX+a0912デフォルトの名無しさん
2015/04/05(日) 08:05:52.66ID:KZ+Fa3I0アプリ本体は圧倒的に開発が楽なんでC#だな
0913デフォルトの名無しさん
2015/04/05(日) 08:06:35.21ID:P8pOEXR0それぞれの単語を検索欄に入力します
服を脱ぎます
0914デフォルトの名無しさん
2015/04/05(日) 08:09:12.99ID:EKIW4rHWIDEとAPI
0915デフォルトの名無しさん
2015/04/05(日) 08:22:35.26ID:/hx1kX+aありがとうございます
0916デフォルトの名無しさん
2015/04/05(日) 10:21:07.02ID:I2S790ADCoInitializeとCoUninitializeか毎回呼ぶの?
初回だけ呼べるなら良いけどそうじゃない場合毎回初期化処理走って無駄じゃね?
0917デフォルトの名無しさん
2015/04/05(日) 10:54:57.10ID:WDwqsM6E# の前に日本語の勉強しろよ...
0918デフォルトの名無しさん
2015/04/05(日) 10:55:48.70ID:mucm9Rcj0919デフォルトの名無しさん
2015/04/05(日) 11:16:30.35ID:Y8CRHpsWC#の場合、普通にスレッド起こしたらMTAだし
0920デフォルトの名無しさん
2015/04/05(日) 11:20:10.27ID:KZ+Fa3I00921デフォルトの名無しさん
2015/04/05(日) 13:23:45.86ID:I2S790ADC++だとやっぱタスクごとに毎回呼ぶしかないか
STA必須なのって最近は少ないのかな
0922デフォルトの名無しさん
2015/04/05(日) 15:34:26.44ID:ljsW1WyS>そこは時間のかかる処理を再現してるだけなんだからなんでもいいだろ。関係ねーよ
そこにスピンループ持ってくるセンスのなさに
まともな設計できなそうな雰囲気を感じ取れないようでは...
0923デフォルトの名無しさん
2015/04/05(日) 15:37:13.32ID:db7WcjYS例題や仮を本気で考えるのか
目的の時間かかる処理なら適当でいいと思うが
0924デフォルトの名無しさん
2015/04/05(日) 15:54:17.13ID:ljsW1WySだったらsleep()でいいじゃない。
スピンループなんか例題でつかうものではない。
0925デフォルトの名無しさん
2015/04/05(日) 15:59:44.41ID:db7WcjYSそういう突っ込みはナンセンス
好きにしたらいい本題じゃない部分だしな
0926デフォルトの名無しさん
2015/04/05(日) 16:11:28.83ID:ljsW1WyS周りの人に迷惑を掛けてないといいんだが...
0927デフォルトの名無しさん
2015/04/05(日) 16:27:56.42ID:db7WcjYS本気で言ってるのなら統合失調症を疑った方がいい
0928896
2015/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論破されたのを誤魔化すのに必死なんでしょ
そもそもスピンループ持ってきたのは >>869 = ID:kQcA28WQ なんだから、はたから見てたらアホとしか思えん
0930デフォルトの名無しさん
2015/04/05(日) 20:15:10.08ID:db7WcjYS必死に見えたならごめんよ
0931デフォルトの名無しさん
2015/04/05(日) 20:53:09.36ID:rnU7gpAt0932デフォルトの名無しさん
2015/04/05(日) 22:40:42.59ID:ljsW1WyS例だからどうでもいい処理なんじゃないんだっけ?
支離滅裂だよ。
0933デフォルトの名無しさん
2015/04/05(日) 23:30:36.26ID:2iwfQOMD暇なの?勉強してから来いよ
重要度がかなり低いところだけど、そこの書き方がセンスがないというから、細かい部分にまで気を使って書いていると言っただけ
0934デフォルトの名無しさん
2015/04/05(日) 23:55:25.40ID:ljsW1WyS0935デフォルトの名無しさん
2015/04/06(月) 01:02:44.92ID:atvgCgU80936デフォルトの名無しさん
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ちゃんと指摘してあげると攻撃してきて意味分からん
>>937
この記事は後半もあっていろんなやり方書いてあるよ
メッセージポンプ挟む方式でウィンドウプロシージャの再突入は想定の範囲内じゃね
0939デフォルトの名無しさん
2015/04/06(月) 07:01:52.99ID:l3aCpmj80940デフォルトの名無しさん
2015/04/06(月) 07:18:17.35ID:tPALyaazこんなバカな主張してくるやつが2人以上いると思うとおぞましいわ
0941デフォルトの名無しさん
2015/04/06(月) 07:18:51.34ID:O6JBKEAO0942デフォルトの名無しさん
2015/04/06(月) 07:23:09.01ID:aw8e7+Ut0943デフォルトの名無しさん
2015/04/06(月) 08:06:33.25ID:rbpG+7VY0944デフォルトの名無しさん
2015/04/06(月) 18:55:24.42ID:z+P1A/YP0945デフォルトの名無しさん
2015/04/06(月) 20:14:01.81ID:e+Wx+qlz0946デフォルトの名無しさん
2015/04/06(月) 20:39:10.20ID:l3aCpmj80947デフォルトの名無しさん
2015/04/06(月) 20:47:16.80ID:atvgCgU80948デフォルトの名無しさん
2015/04/06(月) 20:54:18.91ID:tPALyaaz0949デフォルトの名無しさん
2015/04/06(月) 20:58:54.33ID:rbpG+7VY0950デフォルトの名無しさん
2015/04/07(火) 19:22:14.82ID:H200pvkI1.プロセス(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+Bopenprocess
readprocessmemory
writeprocessmemory
mouse_event
0954片山博文MZ ◆T6xkBnTXz7B0
2015/04/07(火) 19:52:18.23ID:2bTHzj+B0955デフォルトの名無しさん
2015/04/07(火) 19:59:42.98ID:iCEcfKSN起動してなければ終了させるなら
タスクマネージャのPID使えばいいんじゃね
0956デフォルトの名無しさん
2015/04/07(火) 19:59:57.65ID:S1wxOgBA0957デフォルトの名無しさん
2015/04/07(火) 20:10:14.90ID:2bTHzj+B0958デフォルトの名無しさん
2015/04/07(火) 21:23:04.15ID:seUReA7S0959デフォルトの名無しさん
2015/04/07(火) 21:56:33.89ID:H200pvkIありがとうございます。全体の流れがなんとく見えてはきたんですが・・
実際でCで書くとどうなるのか・・ このままだと本当に100年とはいわなくとも1年はかかってしまいます
Cが出来る方いましたらコード化してもらえないでしょうか
0960デフォルトの名無しさん
2015/04/07(火) 22:32:48.11ID:XhF9pVwj0961デフォルトの名無しさん
2015/04/07(火) 22:34:57.62ID:oxNKb4WX0962デフォルトの名無しさん
2015/04/07(火) 23:18:48.72ID:oAaB/ypbhttps://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+お金ですか? お金がほしいんですか!?
わたし15歳なので給料とかないですし1000円しか払えないんですが・・
>>950は複雑な処理してませんし量的にも少量ですみますよね?
酷いこと言わないで、さくっと書いてほしいです
CとAPIはこれから学んでいきますが、>>950だけはすぐに作らないと不味いんです
助けてください><
0964デフォルトの名無しさん
2015/04/08(水) 07:13:30.64ID:bA5nfYlZ3/100点
0965デフォルトの名無しさん
2015/04/08(水) 07:33:11.66ID:kK26tG98不味いとか言ってるけどどうせ見栄っ張りの安請け合いか遊び目的だろ
0966デフォルトの名無しさん
2015/04/08(水) 07:44:04.60ID:Vs/ZCfgh0967デフォルトの名無しさん
2015/04/08(水) 10:56:09.30ID:JmLgEFxG>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:K0WLVf300969片山博文MZ ◆T6xkBnTXz7B0
2015/04/08(水) 14:21:57.47ID:6AvoIJiDhttp://codepad.org/0E6iybtA
0970片山博文MZ ◆T6xkBnTXz7B0
2015/04/08(水) 14:26:19.78ID:6AvoIJiD0971デフォルトの名無しさん
2015/04/08(水) 17:22:32.15ID:8H9929k+ありがとうございます!好きですめちゃ嬉しいです
でも実はわたしが>>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/ZCfgh0973片山博文MZ ◆T6xkBnTXz7B0
2015/04/08(水) 17:59:53.88ID:GMSIP3gO0974片山博文MZ ◆T6xkBnTXz7B0
2015/04/08(水) 18:24:13.40ID:GMSIP3gO[email protected]
0975デフォルトの名無しさん
2015/04/08(水) 18:31:53.99ID:bms3DTdi0976デフォルトの名無しさん
2015/04/08(水) 18:33:24.75ID:b4lzJxfB0977デフォルトの名無しさん
2015/04/08(水) 18:45:56.38ID:bA5nfYlZ全部買うとチートツールが完成するぞ
0978デフォルトの名無しさん
2015/04/09(木) 02:32:22.07ID:Vh6AwiGf違います! ほんとうにまちがただけです・・。
>>973
もしかして怒ってます? せっかく書いてくれたのにすみません
ほんっとうに、ほんとうに感謝してますがお金はないです><
反省したのでもう少しだけ協力してくれないですか・・
>>965さんに勧めらた知恵袋で質問してみても、
チートがどうこうとか、ソースは売れる商品レベルのルーチンになるとか意味不明
な答えしかもらえなかったですし・・
眠いの我慢して調べても分からないし・・どうすればいいですか?
0979デフォルトの名無しさん
2015/04/09(木) 02:41:41.86ID:V62mLZFy0980デフォルトの名無しさん
2015/04/09(木) 02:43:35.92ID:8YMocrt20981デフォルトの名無しさん
2015/04/09(木) 03:37:16.19ID:eUbfM8co0982デフォルトの名無しさん
2015/04/09(木) 04:01:16.65ID:BITSEJu/あと自身をタスクマネージャーに表示しないようにするためにCreateRemoteThread+LoadLibrary
これでエクスプローラとかに隠れちゃえばユーザからは分からない
0983デフォルトの名無しさん
2015/04/09(木) 04:36:19.90ID:eUbfM8co完全隠蔽が出来るのか
それは怖いな
0984デフォルトの名無しさん
2015/04/09(木) 06:27:24.07ID:rW9xiAG/売れる商品レベルとか意味不
yahoo知恵袋のURLあれば教えて見てみる
0985962
2015/04/09(木) 07:43:29.24ID:4GCasPgjprocessorArchitecture='*'
と書けば、所謂ワイルドカードのような作用で、あらゆるプロセッサアーキテクチャに対応できる、という感じでしょうか?
0986デフォルトの名無しさん
2015/04/09(木) 08:34:20.17ID:I6al/A0q>>966
0987デフォルトの名無しさん
2015/04/09(木) 09:05:30.09ID:HSsJiXv70988デフォルトの名無しさん
2015/04/09(木) 09:41:26.04ID:jpCTMsVIhttp://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:RdxVg7ma0990デフォルトの名無しさん
2015/04/09(木) 11:16:29.32ID:ebpY04d90991デフォルトの名無しさん
2015/04/09(木) 11:19:12.77ID:2F7Fsafq無理もないけど世間知らずだな
知恵袋だろうといっぺんに質問してタダで働いて貰えるわけねーだろ
・プロセスを開くソース
・メモリにアクセスするソース、
・ボタンを押し下げるソース
・押し上げるソース
・以上の断片を組み合わせるソース
これらを全部ID変えて小刻みに質問するんだよ
0992デフォルトの名無しさん
2015/04/09(木) 11:25:14.07ID:/AVabmO6次スレよろ。
0993デフォルトの名無しさん
2015/04/09(木) 18:07:11.15ID:Vh6AwiGfここです
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11144138566
見てみるだけじゃなくて教えてくれませんか?
あ、でも質問一部間違えてて正し内容は>>971です
>>992
スレチじゃないです。たらい回しやめてください・・
作ってください、じゃなくて質問にコードで説明してほしいって言ってるだけなのに。
コンパイルは得意だからコードで説明してもらえればそのはあとは自分でできます
0994デフォルトの名無しさん
2015/04/09(木) 18:17:34.38ID:Rhj0QTuKWin32API質問箱 Build120
http://peace.2ch.net/test/read.cgi/tech/1428570962/
0995片山博文MZ ◆T6xkBnTXz7B0
2015/04/09(木) 19:31:32.96ID:i9IefrdE特別にヒント。
BOOL bLeftDown = FALSE;
という変数を増やす。
クリックする条件になったら
bLeftDown = TRUE;
にする。
bLeftDownがTRUEで、なおかつアドレス2の値が"zz"以外になったら離し、bLeftDownをFALSEにする。
mouse_eventをSendInputで置き換える。SendInputの使い方は自分で調べる。以上。
0996デフォルトの名無しさん
2015/04/09(木) 20:28:15.33ID:i9IefrdE0997デフォルトの名無しさん
2015/04/09(木) 20:37:29.70ID:rW9xiAG/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:Y9VlGhm1UWSCから使ったほうが楽だな
内部メモリを読んで動く赤石BOTを作ったのは良い思い出
1000デフォルトの名無しさん
2015/04/09(木) 21:00:34.04ID:KfNzBHIT10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。