1 名前:デフォルトの名無しさん mailto:sageteoff [2017/11/11(土) 19:23:00.69 ID:TpLoCFAx.net] Win32APIについての質問はこちらへどうぞ。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。 英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで ■過去スレ Win32API質問箱 Build123 mevius.2ch.net/test/read.cgi/tech/1475897582/ Win32API質問箱 Build122 echo.2ch.net/test/read.cgi/tech/1451988219/ Win32API質問箱 Build121 echo.2ch.net/test/read.cgi/tech/1438695290/ Win32API質問箱 Build120 echo.2ch.net/test/read.cgi/tech/1428570962/ ■関連スレ Visual Studio 2017 Part4 mevius.2ch.net/test/read.cgi/tech/1509244956/ 【C++】 DirectX初心者質問スレ Part40 【C】 mevius.2ch.net/test/read.cgi/tech/1474782237/
2 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 19:26:38.85 ID:TpLoCFAx.net] ■番外編 WindowsDDK各種についてのスレ mevius.2ch.net/test/read.cgi/tech/1049116134/ D言語 Part34 mevius.2ch.net/test/read.cgi/tech/1422155249/ Cygwin + MinGW + GCC 相談室 Part 8 mevius.2ch.net/test/read.cgi/tech/1411399211/ Borland Developer Studio 2006 No.13 mevius.2ch.net/test/read.cgi/tech/1175861395/ Borland C++ Compiler オ ワ タ mevius.2ch.net/test/read.cgi/tech/1206951221/
3 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 19:28:04.05 ID:TpLoCFAx.net] ■ネイティブなやつとか 【GUI】wxWidgets(旧wxWindows) その5【サイザー】 mevius.2ch.net/test/read.cgi/tech/1270793556/ 【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18 mevius.2ch.net/test/read.cgi/tech/1488948543/ ●●●●TCL/TKなら俺に聞け 4●●●●
4 名前: http://mevius.2ch.net/test/read.cgi/tech/1375678740/ Gtkプログラミング on Windows!!! http://mevius.2ch.net/test/read.cgi/tech/1147024203/ [] [ここ壊れてます]
5 名前:デフォルトの名無しさん [2017/11/11(土) 19:29:50.88 ID:TpLoCFAx.net] ■需要あるかしらん OpenGL 2.0 専用スレ mevius.2ch.net/test/read.cgi/tech/1126268759/ OpenGL/Vulkanスレ Part22©2ch.net mevius.2ch.net/test/read.cgi/tech/1440666771/ SDL=Simple DirectMedia Layerでゲームだ mevius.2ch.net/test/read.cgi/tech/1103655588/ Google NaCl プログラミング 2mol mevius.2ch.net/test/read.cgi/tech/1298614677/ 【boot】nasm【loader】 mevius.2ch.net/test/read.cgi/tech/1377053129/ MASM32 - 選ばれし本物のプログラマ mevius.2ch.net/test/read.cgi/tech/1348574727/
6 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 19:33:10.06 ID:i7HL5TEm.net] >1 乙
7 名前:デフォルトの名無しさん [2017/11/11(土) 19:43:41.81 ID:4LNBDgYy.net] いちもつ
8 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 20:47:03.12 ID:yAvgRxQb.net] >>1 乙ですー
9 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:49:57.76 ID:k+Q3OR2Q.net] >>1 乙
10 名前:デフォルトの名無しさん [2017/11/12(日) 18:55:13.45 ID:g8teYUTq.net] Win32API標準 のリストビュー(クラス名 SysListView32) 上のリストアイテムに対して、keybd_event()やmouse_event() を使わずに プログラムからキー押下やクリックのイベントを起こすにはどうしたらよいですか。
11 名前:片山博文MZ mailto:sage [2017/11/12(日) 19:03:29.37 ID:hcIx1LXl.net] SendMessage(hLV, WM_LBUTTONDOWN, ...); SendMessage(hLV, WM_LBUTTONUP, ...);
12 名前:片山博文MZ mailto:sage [2017/11/12(日) 19:06:05.53 ID:hcIx1LXl.net] LVM_ENSUREVISIBLE LVM_GETITEMRECT
13 名前:デフォルトの名無しさん [2017/11/12(日) 19:25:07.33 ID:g8teYUTq.net] >>10 ,11 スレの性質上、意味のない無駄な書き込みはやめてもらえますか。お願いします。 意味もなくAPI名やキーワードを羅列することは、情報が冗長になりスレの価値を下げることになります。
14 名前:片山博文MZ mailto:sage [2017/11/12(日) 19:38:02.33 ID:hcIx1LXl.net] >>9 LVM_ENSUREVISIBLEメッセージで、リストビューの項目を表示させる。 LVM_GETITEMRECTメッセージで、項目の位置を取得する。 取得した場所に対して、WM_LBUTTONDOWN/UPメッセージを呼ぶ。
15 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 19:59:30.69 ID:yKCfx7dw.net] >>12 若いな
16 名前:デフォルトの名無しさん [2017/11/12(日) 20:17:24.65 ID:g8teYUTq.net] >>13 リストビューにフォーカスがない状態でWM_LBUTTONDOWN/WM_LBUTTONUPを2回送信して、 ダブルクリックが仮想的に実行できるか試してみましたが、選択位置(フォーカスがないので灰色)が変わるだけで反応なしでした。 WM_LBUTTONDBLCLKだと灰色位置の変化もなし。 WM_LBUTTON*系のメッセージを使わない正規の方法があるかと思ったのですが、なさそうですね。 回答ありがとうございました。別の方法考えます。
17 名前:片山博文MZ mailto:sage [2017/11/12(日) 20:19:35.68 ID:hcIx1LXl.net] クライアント座標とスクリーン座標があって、クライアント座標系はウィンドウごとに場所が違うから注意が必要だ。
18 名前:片山博文MZ mailto:sage [2017/11/12(日) 20:29:12.30 ID:hcIx1LXl.net] forums.codeguru.com/showthread.php?415399-ListView-double-click-in-code-c これが役に立つかも知れない。
19 名前:片山博文MZ mailto:sage [2017/11/12(日) 20:43:32.51 ID:hcIx1LXl.net] https://stackoverflow.com/questions/974722/send-a-double-click-to-a-listview-c-not-net これはどうかな?
20 名前:デフォルトの名無しさん [2017/11/12(日) 21:45:52.37 ID:g8teYUTq.net] >>18 当方、送信したい相手はdllから読み込んだ同一プロセス上のリストビューなので、GetWindowLongPtr(GWLP_WNDPROC)でイベントをフックして使った。 NM_DBLCLKイベント自体はフックしたプロシージャにちゃんと送られていることは確認できた。 NM_DBLCLKイベント送受信は成功したが、期待するダブルクリック時の振る舞いをしてくれないので、求めていた機能は成功していない状態。 これ以上はdll側の実装依存との格闘になるので、ここでの質問は終わらさせていただきます。
21 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 23:18:10.01 ID:Kj+Cizk6.net] 人工無能同士の会話みたい
22 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 12:36:22.40 ID:Q60O1ghY.net] ダブルクリックには常に先行するシングルクリックがあるとか2回目のシングルクリックもあるとかちゃんとやってるよね
23 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:39:25.70 ID:dnspAOl6.net] ダブルクリック処理面倒くさい ドライバーレベルで峻別してくれないかな ところでGetDoubleClickTime()にあわせてタイマーイベントすると 体感長く感じるんだがどう処理するのが正しいのかな
24 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 00:02:34.16 ID:FWNbLyCJ.net] ブラウザゲームとかダブルクリック使わないので ダブルクリックなしのUIに慣れてきている自分
25 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 18:35:19.43 ID:t2ie3Fqr.net] Windows7などでタスクバー上の自身のアプリにマウスを置いたときに表示される サムネイルを別の画像にしたいのですが、やり方やサンプルなどはありませんか?
26 名前:デフォルトの名無しさん mailto:sage [2017/11/21(火) 18:57:28.67 ID:IqvSRvvZ.net] ITaskbarList3
27 名前:デフォルトの名無しさん mailto:sage [2017/11/22(水) 13:33:15.33 ID:NgxFNsMl.net] エディットコントロールに値を手入力した後、フォーカスを失った時点で飛んでくるメッセージはありませんか? エディットコントロールの値を、作業する直前に取り込む、という方法では、いろいろと不都合が出てきました。(たとえばレジストリへのバックアップなど)
28 名前:デフォルトの名無しさん [2017/11/22(水) 13:39:07.14 ID:TZAtmSaI.net] あります
29 名前:片山博文MZ mailto:sage [2017/11/22(水) 15:59:34.39 ID:QYl/HC3N.net] EN_KILLFOCUS
30 名前: mailto:sage [2017/11/22(水) 17:44:14.54 ID:NgxFNsMl.net] >>28 ありがとうございます。 強制的に、フォームに配置しているすべてのエディットコントロールへのフォーカスを失わせる方法はありますか? 関係ないコントロールにフォーカスを移す方法でもいいです
31 名前:片山博文MZ mailto:sage [2017/11/22(水) 18:08:51.27 ID:QYl/HC3N.net] フォーカスのあるコントロールにWM_KILLFOCUSを送信。
32 名前:片山博文MZ mailto:sage [2017/11/22(水) 18:21:42.81 ID:QYl/HC3N.net] SendMessage(GetFocus(), WM_KILLFOCUS, 0, 0);
33 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 13:46:55.30 ID:HWVyDVmi.net] SetWindowHookExのグローバルフックってもう使えないのかな? 64bitと32bitのアプリケーションが混合してる世の中だけど
34 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 14:10:48.48 ID:+7IWktV2.net] 使える
35 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 15:30:15.15 ID:HWVyDVmi.net] >>33 64bitのアプリケーションに32bitDllをマッピングしたら当然エラーが起きてプログラムが死んだんだけど・・・ マッピングするDllを切り替える方法とかが有るのですか?
36 名前: mailto:sage [2017/11/24(金) 15:40:48.12 ID:ZNkp8uW6.net] >>28 このたびはありがとうございました。無事に実装を完了させました。
37 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 15:41:26.89 ID:pohwH8o0.net] 最初から64bitDLLをマッピングすりゃいいんじゃないの?
38 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 16:01:57.91 ID:+7IWktV2.net] If a 64-bit application installs a global hook on 64-bit Windows, the 64-bit hook is injected into each 64-bit process, while all 32-bit processes use a callback to the hooking application.
39 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 20:44:09.53 ID:Y2cmNidj.net] ウィンドウメッセージを監視するVisualStudioの付属ソフト Spy++ でさえ32bitアプリ監視向けと64bitアプリ監視向けで別々に必要なのだからしょうがない。
40 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 01:59:09.56 ID:QwJx+kFY.net] 32と64のexeからそれぞれhookをするしかないよ。 SetWinEventHookとかで代用できるなら片方のみでもいける。
41 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 08:23:45.59 ID:WF+T0grB.net] インジェクションとグローバルフックが混同してる
42 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 15:27:02.72 ID:J6q+ZC/L.net] Windows10上で 64ビット開発してListViewを使う レポート形式で列を複数作り、カラムの幅の総和がリストビューの幅を超えるようにする。 項目をマウス左右(どちらでも)ドラッグで複数選択しようとすると、列の末尾にスクロールが発生し、 このときマウスカーソルがディスプレイの右下や右上に吹っ飛ぶ。 win32(x86)では発生しない。 専用テストプログラム組んで発生したのでこの場合コントロールのバグ確定でいいかな。 古めのSDK(2008とか)使っているので、最新の開発環境で作っている人の発生状況を知りたい。
43 名前:41 mailto:sage [2017/11/25(土) 17:17:50.99 ID:J6q+ZC/L.net] 追加条件 ビジュアルスタイルを適用で発生・・・代替案不明
44 名前:デフォルトの名無しさん mailto:sage [2017/11/25(土) 18:13:49.32 ID:KR9Edo9E.net] >>41 対処法は俺も知らんけど FCU入れるとコモンコントロールのListView使ってるアプリは全部同じ挙動になるから OS側の不具合で間違いないと思うよ
45 名前:41 mailto:sage [2017/11/25(土) 18:52:47.69 ID:J6q+ZC/L.net] >>43 情報サンクス しばらく様子見かな・・・
46 名前:デフォルトの名無しさん [2017/11/28(火) 12:44:11.35 ID:EqW/cfNY.net] e糞plorereで再現
47 名前:片山博文MZ mailto:sage [2017/11/28(火) 18:01:50.95 ID:TWDwWwDO.net] た、す、け、て! https://teratail.com/questions/102359?nli=5a1d03c4-2eb8-452f-88e5-5b2b0a000162
48 名前: mailto:sage [2017/11/28(火) 20:53:48.23 ID:+N+u9Tx7.net] ご相談させてください。 SetDIBitsToDevice 関数を使用して、bmp を表示させてようとしています。 ここで、メモリから bmp の一行分を読み込んで、SetDIBitsDevice() にて一行分だけ表示し、 繰り返し読み込みと表示を行数分だけおこなって表示させる方法を(特に)探しています。 https://ideone.com/v0METS にて試行していますが、画面が真っ黒になりうまくありません。 どこが悪いのでしょうか?また、SetDIBitsToDevice() の第6〜第9パラメータ int XSrc, // 転送元長方形の左下隅の x 座標 int YSrc, // 転送元長方形の左下隅の y 座標 UINT uStartScan, // 配列内の最初の走査行 UINT cScanLines, // 走査行の数 についてヒントをいただけないでしょうか? よろしくお願いいたします。
49 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 23:45:44.00 ID:7WoPw74F.net] デフォルトだと上下が逆になってたような
50 名前:デフォルトの名無しさん [2017/11/29(水) 15:39:20.27 ID:wmbD4JNt.net] ドキュメントにバグがあるやつか
51 名前: mailto:sage [2017/11/30(木) 17:09:52.13 ID:52HNpdYy.net] >>49 「猫Winプログラム」を並行して修正しながらやっています。 というか、猫Winプログラムに乗り換えようか…
52 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 05:40:43.29 ID:k0FZtccS.net] バグだらけのひどいコードだな! >>47 よ!動かないの当たり前だ! まず、グローバル変数で、HANDLE hFileを共有する設計前提で作ってるの? 51行目からのint WINAPI WinMain内でのバグっぽいの発見! 55行目:HANDLE hFile; ローカル変数で定義だと…? ローカル変数で定義するなら、そのコード内でhFileをCloseHandle();なぜしていないの? hFileをグローバル変数で使いまわすなら、55行目のHANDLE hFile;のローカル変数の定義は不要じゃねーの? まずは、55行目を削除しろ! グローバル変数と、ローカル変数をちゃんと理解して使いましょう! 9行目からの LRESULT CALLBACK WndProc内でのバグ 14行目:int WIDTH = 0; アプリケーションが終了するまで、イベントごとに毎回ウインドメッセージを処理する意味で、このプロシージャー呼ばれることは理解してるよな? 仮に、ローカル変数を確保はいいとして、case WM_PAINTでWIDTHは常に0なんだけど? 24行目〜のWM_CREATE内で一度だけ初期化して値をずっと保ちたいなら14行目は、static int WIDTH=0;じゃねーの? そもそもCALLBACK WndProcの仕組み理解してる? 24行目 WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount) + 31 / 32); はぁ…なんで意味不明な計算してるの? WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount + 31)/ 32); こっちが正しいんじゃね?これどういう意図で計算しているかわかってる? 猫のページ見てるならまずは、動くコードをコピペして動かせよ!手打ちでバグ作ってどーする! コード見てて、ローカル変数の使い方や、ウィンドウプロシージャの仕組みがちゃんと理解できていないように見えるので、 直ちに、ウィンドウプロシージャでググってコールバック関数とはなにかを理解することを勧める。 猫のページの7〜10ざっくりみたけどウインドメッセージとウィンドウプロシージャの詳しい説明してないので別のとこ探して読んだほうがいいぞ。
53 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 08:06:09.81 ID:lcmprfyj.net] 俺からも追加 SetFilePointer は ReadFile の前にしないと 2度目以降の WM_PAINT で1ライン目がおかしくなる 最近のWindowsだと「2度目以降の〜」自体そんなに来ないかもしれんが
54 名前: mailto:sage [2017/12/01(金) 08:19:52.73 ID:ytACGBKw.net] >>51 ありがとうございます。 ・hFile はこの関数(WinMain) だけで使う変数で、ここで一気にビットマップを読み込むのに使っています。確かに CloseHandle(hFilt) とした方がいいですね。 ・int WIDTH = 0 はひどい、static int WIDTH にするべきでした。 ・WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount) + 31 / 32); これもひどいなあ…ご指摘されてはじめてまずさがわかりました。 ようはビットマップの一行の幅を 32ビット単位にする操作ですね。31をたして、全体を 32 で割って DWORD 数を出し、それに 4 をかけてバイト数を出す、 ご指摘のとおり WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount + 31)/ 32); にいたしました。 すると画面に縦じまが現れました。これは重大な進歩です、これを元にもう一度元ソースを見直します。 ありがとうございました。
55 名前: mailto:sage [2017/12/01(金) 08:51:13.54 ID:ytACGBKw.net] >>51 >>53 すみません、hFile はグローバル変数でした。ローカル変数定義を削除しました
56 名前: mailto:sage [2017/12/01(金) 08:57:42.07 ID:ytACGBKw.net] >>51 >>53 ご指摘を受けたあたりを修正して、うまく表示できるようになりました。 コメントをいただき、ありがとうございました! https://ideone.com/W8wuOF >>52 SetFilePointer() は次回 WM_PAINT 時に備えたものだと考えています。
57 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 22:26:20.38 ID:rQkaX9hI.net] >>46 解決したみたいだけど、デバッグの知識は身につけといた方がいいよ。 無駄な試行錯誤をする事が減って使える時間が増える。
58 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 19:13:30.95 ID:K6qIkKEG.net] 線だけで長方形を描画したいのですが、もっとも簡単に実現できるAPIはどれですか? cで使えるものでお願いします
59 名前:デフォルトの名無しさん [2017/12/02(土) 19:16:20.77 ID:XRYOyseR.net] copyrect
60 名前:片山博文MZ mailto:sage [2017/12/02(土) 19:58:35.88 ID:ZusnwQZ4.net] >>57 MoveToEx LineTo
61 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 20:06:49.33 ID:r+fJBrgb.net] ブラシをNULLにして普通にRectangle
62 名前:デフォルトの名無しさん mailto:sage [2017/12/02(土) 20:31:13.22 ID:VR8xyICx.net] win32APIのみなら>>59 >>60 のを使うといいよ 速度重視で2d描画をしたいなら、Direct2dのAPI使ったらどうだ?線を描くならDrawLine、長方形ならDrawRectangleで描けるぞ。
63 名前:デフォルトの名無しさん [2017/12/03(日) 11:52:35.88 ID:cCU4BKBm.net] jpg や png などの2D静止画を高速描画するのに最も適したライブラリってどれだろう? gdiplus? DirectX?
64 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 12:14:03.55 ID:I8IEjg5G.net] ハードウェア描画前提ならdirectXじゃないかなー wikiでgdiを調べると詳しく書いてあるかもよ。 好きなライブラリー使えばいいよ。
65 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 12:26:39.95 ID:FVppKXn3.net] 最終的にはメモリDCに書き込んだのをBitBlt()するのが組みやすい フォーマット変換だけならwicやOpenCV
66 名前:デフォルトの名無しさん [2017/12/03(日) 12:47:14.81 ID:cCU4BKBm.net] メモリDCで作業してるのに、スレッド排他ロックでアプリ側のマルチスレッド実装を台無しにしてくれるgdiplus
67 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 13:01:46.59 ID:FVppKXn3.net] jpgだとJpegTurboってのがあって、それなりに速かった jpgで画像を連続で送ってくるカメラがあって、それで試しに使ったことがある
68 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 16:05:28.97 ID:FvsK2hd0.net] >>62 表示だけならライブラリ探さなくてもOleLoadPicture()で読み込んでDCにIPicture::Renderするだけでいいんじゃないか?
69 名前:デフォルトの名無しさん [2017/12/03(日) 19:28:19.70 ID:WsUY0GNs.net] >60 1pixel小さいです
70 名前:デフォルトの名無しさん mailto:sage [2017/12/03(日) 20:10:00.66 ID:S5PX0FVt.net] 可哀想な頭だ
71 名前:デフォルトの名無しさん [2017/12/04(月) 15:02:45.68 ID:6cKdvMQZ.net] メモリDCへの拡大縮小画像のレンダリングを高速に実現する最適な方法ってなんなのだろう? ちなみにGDI+ gdiplusは論外。GraphicクラスでメモリDC渡してレンダリングすると、GDI+がスレッドロックするので並列化による省時間はできない。
72 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 15:23:27.29 ID:1/3RfdNR.net] 最適ならDirectX一択だろ 最速になると描画よりも拡大縮小アルゴリズムの話になりそう
73 名前:デフォルトの名無しさん [2017/12/04(月) 16:26:01.49 ID:6cKdvMQZ.net] >>67 の方が教えてくれた IPicture::Render はWindows2000時代からあるレンダリングAPIという認識。 わざわざVista時代にDirect2dをリリースした意味は何なのか、という疑問がありまして、その辺どうなの、と。
74 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 19:17:48.59 ID:7Hssi5iQ.net] 32bitARGB画像ならDirect2Dだな、小数点座標指定できるし。 Direct2DのAPIではピクセルフォーマット変換とかHeight方向反転とかできなかったと思うので 異なる場合には渡す前に変換しておく必要がある
75 名前:デフォルトの名無しさん [2017/12/04(月) 20:29:21.18 ID:6cKdvMQZ.net] せめて有名Webブラウザ並みの描画速度で複数画像を一覧表示できてほしいんだけど、その点、gdiplusはダメダメ。 Wikipediaなどの情報によると有名WebブラウザはDirect2Dによる描画らしいので、Direct2Dがいいのかな。
76 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 21:10:25.84 ID:1/3RfdNR.net] 今作ってるソフトの遅い部分が「描画」でそこを改善したいんじゃなくて、たぶんこれから作るソフトの計画だよな ある程度形になってからどこに時間食ってるか調べてそこを潰したほうが開発時間も動作速度もいいと思うな
77 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 22:09:44.67 ID:5YKgC1OQ.net] >Direct2DのAPIではピクセルフォーマット変換とかHeight方向反転とかできなかったと思うので 当然SetTransformはあるしなんなら自分で書いたシェーダを挿入できるエフェクトグラフもあるでよ?
78 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 22:43:49.45 ID:7Hssi5iQ.net] >>76 SetTransformで鏡像反転できるのか マトリクス係数考えてみるわ
79 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 22:54:06.06 ID:m/z1wPSa.net] 考えるもなにも普通にスケール-1ちゃうんか
80 名前:デフォルトの名無しさん mailto:sage [2017/12/04(月) 23:12:40.00 ID:7Hssi5iQ.net] >>78 oh www
81 名前: mailto:sage [2017/12/05(火) 01:55:50.52 ID:x6DQdw1l.net] 低レベルな話ですみません。 ダイアログアプリケーション(calc.exe と同様) を win32api/C で書いています。 希望:ベースのダイアログの色を起動後に変えたい。 したこと: WM_CTLCOLORSTATICを捕らえて、 SetBkColor((HDC)wp, BackGroundColorG); および return HBRUSH / HBRUSH を DefWindowProc() に渡さずに返す 以上で、スタティックコントロールの背景色およびエディットコントロールのディスエイブル時の背景色は変わりました。 しかし、ベースダイアログの色は変わりません。 頭で、RegisterClass() にわたす前に設定する WNDCLASS の hbrBackground の値が、ダイアログのCreateWindow() の後も反映されています。 後から SetClassLongPtr((HWND)lp, GCL_HBRBACKGROUND, (LONG)hbrBackGroundS) しても反映されないことを確認しています。 起動後にダイアログの色を変えるにはどうすればいいでしょうか? 明日には再現コードをお見せできると思います。 アドバイスいただきたくよろしくお願いいたします。 #WINDCLASS.hbrBackground = NULL にすると、透けてデスクトップが移りこみ、これはこれで面白いです…もう寝ます
82 名前:デフォルトの名無しさん [2017/12/05(火) 02:14:11.47 ID:7/1p3S3k.net] >>80 WM_CTLCOLORDLG でブラシを返す
83 名前: mailto:sage [2017/12/05(火) 03:59:00.03 ID:x6DQdw1l.net] >>81 コメントいただき感謝しています。 試してみたのですが、よくありません。やはりダイアログは WNDCLASS.hbrBackground の指定が優先されています。 現象を再現させたコード次のとおりです。こちらでは cygwin/mingw 32 ビットでコンパイルしています。 test.c https://ideone.com/pch378 test.h https://ideone.com/1iKq2z test.rc https://ideone.com/kZH3Uf makefile https://ideone.com/9MDXT0
84 名前:片山博文MZ mailto:sage [2017/12/05(火) 04:05:08.93 ID:KBxdaLdg.net] WM_ERASEBKGND
85 名前:デフォルトの名無しさん [2017/12/05(火) 04:43:50.94 ID:wJV4W7rZ.net] ここ参照 https://stackoverflow.com/questions/20519533/change-the-background-color-of-a-dialog-box-win32api Tab キーによるフォーカス移動などを司る IsDialogMessage を呼んでいる辺りも注目
86 名前: mailto:sage [2017/12/05(火) 07:11:29.40 ID:x6DQdw1l.net] >>81 , >>83-84 コメントありがとうございます。 状況が変わりました。すなわち、 1. DefWindowProc() ではなく、DefDialogProc() にする 2. (>>81 ) WM_CTLCOLORDLG メッセージ処理(ブラシを返す) によりダイアログのベースの色が変わりました。 現在典拠を探しています。 遅いところ皆様ありがとうございました。勇気がでてきました! https://ideone.com/ZBuhbz >>84 StackOverflow のプログラム例は、(通常)ウィンドウがあって、そこから CreateDialog で新しくモードレスダイアログを作るときの作法ですね。 IsDailogMessage() が必要かどうかは、まだよくわかりません。
87 名前:デフォルトの名無しさん [2017/12/05(火) 07:41:30.27 ID:S7FU9Yl0.net] 大雑把に言うと WindowProc に来る前 DefDlgProc が 値を返しちゃうので色が変わらないわけです (多分)。 他にも DefDlgProc が反応するメッセージについては WindowProc ではなく DlgProc で処理する必要があります。 どれがそうか一覧等あるのかは知りませんが。
88 名前:デフォルトの名無しさん mailto:sage [2017/12/08(金) 17:59:18.20 ID:UBTxsLd5.net] フルスクリーンでも、色の取得ができるAPIは存在しないのでしょうか? GetPixelを試みましたが、何故かフルスクリーン対象にすると 常に0を返されます フルスク色取得が可能なapi、もしくはGetPixelでも出来るのでしたらやり方を教えてください
89 名前:デフォルトの名無しさん [2017/12/08(金) 21:57:36.41 ID:TcYdv7Hd.net] MemDC にコピーしてから好きに弄ぶ
90 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 12:37:57.44 ID:nuTX+Pqx.net] できましたありがとう
91 名前:デフォルトの名無しさん [2017/12/09(土) 22:01:16.23 ID:Lkee30cD.net] 質問です。 あるソフトがしたUSBの出力を、コンピュータの外部ではなくそのコンピュータ内の他のソフトへリダイレクトすることはできますでしょうか?
92 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 22:33:28.46 ID:rMepMJ5T.net] >>90 方法1 (「あるソフト」にパッチが可能なら) CreateFile()/WriteFile()などをフックする。 ただし、これらはKernel32.dllにあるAPIなので通常の方法ではフックできない。 「あるソフト」内のByte列"Kernel32.dll"を(例えば)"Xernel32.dll"に書き換え、 Xernel32.dllを作成・フックする。 方法2 対象デバイス用デバイスドライバと同じAPIを持ち、かつその入出力を「他のソフト」 へ受け渡すAPIを持つデバイスドライバを作成する。 方法3 (本物のUSBデバイスも生かしておくなら) フィルタードライバーを作成し、そこで「あるソフト」の出力を盗み見る。
93 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 23:13:14.29 ID:ntUKDUa2.net] kernelにあっても普通にインジェクトでフックできるような・・・
94 名前:デフォルトの名無しさん mailto:sage [2017/12/09(土) 23:53:32.26 ID:ntUKDUa2.net] と、書き込んでからプロキシ思い出した。あれ64bitのは作るの面倒すぎだけど32だったらありだな
95 名前:デフォルトの名無しさん [2017/12/10(日) 04:43:00.48 ID:Ivp7Fyt3.net] USBハブで物理的にteeすることって可能なんだろうか
96 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 04:49:03.51 ID:jPbEe7nV.net] Window API Hook で検索すればすぐ出てくるけど API のフックはかなり簡単にできる DLL インジェクション併用で CreateFile / WriteFile をフックするのがいいかもね
97 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 09:52:56.38 ID:tk0MZw2P.net] > ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 テンプレのこれいるか?ってほど簡単にできるしな 1つのページを見るだけではできなくても いくつかのページの情報を自分なりにまとめたらできるようになる
98 名前:デフォルトの名無しさん [2017/12/10(日) 10:07:01.58 ID:0DY65cdk.net] 皆さまありがとうございました APIフックを試します
99 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 10:07:15.33 ID:0xn5varO.net] >>94 usbアナライザ
100 名前: mailto:sage [2017/12/10(日) 19:23:15.93 ID:NAV3AZ5L.net] うーむ、やっとコンパイルできた… 32ビットコードは 32ビットのODBCデータソースしかみないし 64ビットコードは 64ビットのODBCデータソースしかみないのか… 手持ちの excel は 32ビットで、見に行くODBC テーブルは 32 ビット用であったことが混迷に拍車をかけてしまっていた cigwin の odbcライブラリとしては -lodbc32 でコンパイルしているが、32ビットなのか 64 ビットなのか、いったいどうなっているんだ?!
101 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:10:47.46 ID:NCCsPX6A.net] shell32.dll とか kernel32.dll とかもそうだし、 32→64 ビットではモジュールの名前変わらなかったからね
102 名前:片山博文MZ mailto:sage [2017/12/10(日) 20:15:22.78 ID:mhuWrsB5.net] dumpbin 使え。
103 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:23:53.29 ID:bN2Fk6CS.net] >-lodbc32 でコンパイル これで実行時に見に行くのが 32 になるか 64 になるかは決まらない いわんか wow64 を見るのか system32 を見るのかをや
104 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 10:54:59.64 ID:dxitcW2N.net] WS_POPUPの子ウィンドウって、 親ウィンドウからはGetNextWindow()などのループで辿っていけないものですか? GW_ENABLEDPOPUPだと、見えているものしか出てこないようです。
105 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 11:15:35.06 ID:79jDOY0/.net] 見えてる=enabled popup ってことなんだな。普通にGW_CHILD使えばいいじゃん
106 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 11:48:53.11 ID:dxitcW2N.net] >>104 GW_CHILDだとWS_POPUPのやつは出てこないようです
107 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 12:27:55.11 ID:RQRbm0+h.net] 人間は見えるものしか見ない 馬鹿は観たいものしか見ない
108 名前:片山博文MZ mailto:sage [2017/12/12(火) 12:33:23.81 ID:pbeXhwoZ.net] EnumWindows、EnumChildWindows推奨。
109 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 13:04:46.42 ID:79jDOY0/.net] ためしたらまじでgw_childだめなんだなw 全ウインドウの親見てくのか
110 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 13:05:49.05 ID:dxitcW2N.net] >>107 デスクトップの子ウィンドウを巡っていって、 片っ端からその親を調べていくしかないってことですか?
111 名前:片山博文MZ mailto:sage [2017/12/12(火) 14:01:58.99 ID:pbeXhwoZ.net] EnumChildWindowsだけでいっか。
112 名前: mailto:sage [2017/12/13(水) 19:25:57.66 ID:oFXUjnGM.net] >>99 引き続き ODBC まわりを触っている コンパイラの警告を黙らせるために、いい加減に適当にキャストしていたのが、バグ(c++ delete が失敗する)のもとになっていた ああ、ダウンキャスト/アップキャストの区別がつかない、こまったこまった
113 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 06:12:13.99 ID:fEY/FzHm.net] (´・ω・`)知らんがな
114 名前: mailto:sage [2017/12/20(水) 21:21:04.61 ID:8hKmNCKf.net] ODBC を完全に把握した しかし、面倒なので jdbc を使うことにした…
115 名前:デフォルトの名無しさん [2017/12/24(日) 20:20:35.24 ID:lhIRobpu.net] IsWindows10OrGreater関数を、 Windows10最新版(build16299)で使用すると、 Windows10にも関わらずfalseが返ってきます。 原因に心当たりのある聡明なお方はいらっしゃいませんか…?
116 名前:片山博文MZ mailto:sage [2017/12/24(日) 20:23:06.42 ID:gjaYlpPe.net] >>114 yamatyuu.net/computer/program/sdk/base/GetVersionEx/index.html
117 名前:片山博文MZ mailto:sage [2017/12/24(日) 20:45:24.50 ID:gjaYlpPe.net] GetVersionExはウソつきだが、OSのバージョン番号に依存するアプリは地獄へ行かねばならぬ。
118 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 21:23:48.92 ID:Y4i+PXlu.net] 質問に対する答えを書かないアホは地獄行きだバカ
119 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 21:46:03.09 ID:wguJVDMb.net] それapiじゃなくてVersionHelpers.hにある関数じゃないか?デバッグして何かえってるか見ろ
120 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 22:22:12.25 ID:VzvV4f9p.net] VersionHelpers.hの実装はVerifyVersionInfoだけどどのみちマニフェストでの指定は必要ってだけやね
121 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 18:30:50.24 ID:tTz9yXWR.net] GetCursorPos ってマルチモニタに対応してるんですかね?
122 名前:片山博文MZ mailto:sage [2017/12/27(水) 18:43:39.90 ID:b9N+03Hh.net] >>120 している。仮想スクリーンの座標系になる。
123 名前:片山博文MZ mailto:sage [2017/12/27(水) 19:06:57.63 ID:b9N+03Hh.net] >>121 ウソを書いてしまった。ごめんなさい。 仮想スクリーンではなく、プライマリーなスクリーン座標になる。 https://msdn.microsoft.com/en-us/library/windows/desktop/dd145136.aspx これとSM_XVIRTUALSCREENとSM_YVIRTUALSCREENを使って座標値をずらすと仮想スクリーン座標が得られる。
124 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 19:42:44.76 ID:tTz9yXWR.net] >>122 ありがとうございます!!
125 名前:片山博文MZ mailto:sage [2017/12/31(日) 00:31:58.10 ID:iQxViKH1.net] あれでうまく動いたのか?
126 名前:デフォルトの名無しさん [2018/01/01(月) 14:03:42.43 ID:yaUpEKWz.net] あけおめ
127 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 01:36:21.17 ID:d+dr+APG.net] しっかし、おっさん臭いスレだな
128 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土) 09:18:28.54 ID:Pup7wZC7.net] 若者はモバイルだからな
129 名前:デフォルトの名無しさん mailto:sage [2018/01/06(土)
] [ここ壊れてます]
130 名前:17:57:07.19 ID:OwgVV/3f.net mailto: モバイルカテゴリの人がWindows関連スレを覗きに来るか? [] [ここ壊れてます]
131 名前: mailto:sage [2018/01/13(土) 20:37:47.18 ID:9/EYlaQy.net] win32api の記述を C から C++ に移行中です CreateWindow() が hwnd を返すタイミングより先に、ウィンドウプロシージャに WM が流れ始めることを特定するのに時間がかかりました…
132 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 22:36:08.61 ID:TKXLfFcD.net] >>129 20年前位にやったなあ WindowProc DialogProc ThreadProc ****Callback この辺を包んでクラス化 ウィンドウの場合 CreateWindowのパラメータでクラスのポインタを渡し WM_CREATEで受け取るって感じ
133 名前: mailto:sage [2018/01/13(土) 22:55:08.82 ID:9/EYlaQy.net] >>130 そうです、それです!WNDCLASS.cbWndExtra を使うのがミソです! CreateWindow(..... 最後 (Derived)this); extern "C" long CALLBACK WindProc(...) { if (msg == WM_CREATE) { p = (Derived*)((LPCREATESTRUCT)lp)->lpCreateParams; SetWindowLong(hwnd, 0, (LONG)p); p->hwnd = hwnd // これを見つけるのが大変だった . } else { p = GetWindowLong(hwnd, 0) return p->WindowProc() // goto Derived::WindowProc() } Derived::WindowProc() { this->Base::WindowProc() virtual Base::WindowProc() { HWND hwnd // member instance variable return ::DefWindowProc(this->hwnd, mwg, wp, lp); 温故知新…
134 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 00:26:50.32 ID:TQ+v9n4/.net] 厳密
135 名前:にはWM_CREATEの前にもいくつかメッセージ飛んでくるけどね [] [ここ壊れてます]
136 名前: mailto:sage [2018/01/14(日) 00:44:30.50 ID:ekN/OeXo.net] >>132 了解!そういうのは全部まとめて ::DefWindowProc() に流しちゃっているのでダイジョブです!
137 名前:デフォルトの名無しさん [2018/01/14(日) 02:25:37.15 ID:yVTJx4nd.net] この行いらね HWND hwnd // member instance variable
138 名前: mailto:sage [2018/01/14(日) 08:36:59.72 ID:ekN/OeXo.net] >>134 ごめんなさい >>131 ははおって書いたので、内容が今一つはっきりしなかったこと謝罪いたします。 その行は、自作 Window クラスのメンバとして書いたつもり、Window クラスに hwnd を持たせたいと考えているのです
139 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 16:42:02.47 ID:hYyI16IJ.net] 片山先生の MZC4 みたいなのを作ってるわけね
140 名前: mailto:sage [2018/01/14(日) 17:06:39.99 ID:ekN/OeXo.net] >>136 はい https://github.com/katahiromz/MZC4/blob/master/include/MWindowBase.hpp をみました 私の趣向としては、hwnd は完全に隠蔽したい、そのため WNDCLASS.cbWndExtra をあえて使うことになります
141 名前:片山博文MZ mailto:sage [2018/01/15(月) 01:09:31.49 ID:rJu9VjYT.net] cbWndExtra == 0なウィンドウには使えないから、結局、設計思想が間違っている。
142 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 03:14:12.16 ID:dcGpNZle.net] GWLP_USERDATAをライブラリ側で潰してる時点で同レベルだな
143 名前:片山博文MZ mailto:sage [2018/01/15(月) 03:19:04.90 ID:rJu9VjYT.net] しかし、ハンドルマップにしたら、コストがかかるんだよな。
144 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 03:40:01.33 ID:dcGpNZle.net] 他人に設計思想が間違ってると宣いつつ自分は即座に言い訳 さすがカス山
145 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 08:03:32.90 ID:ss1wTrUG.net] MFCはハンドルマップ
146 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 08:53:13.95 ID:SI03IcDF.net] ATL方式もあるよ
147 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 23:24:20.23 ID:hzc1DIOG.net] ATLは機械語直接いじってジャンプかぁ
148 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 12:47:35.39 ID:xkA2S8go.net] ジャンプmemo blog.trendmicro.co.jp/archives/16735
149 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 16:44:05.34 ID:2zY1R7Mw.net] MSゴシックやMS明朝のフォントで描画するとき、 小さいときはビットマップフォントが使われることは知っているのですが、 常にビットマップフォントを使わないように CreateFontなどで指定することはできませんか?
150 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 17:25:15.15 ID:bZ1P4CsQ.net] 使われることも知らなかったが、小さいとドットが出てくるからビットマップをやめるメリットがなく逆に処理が多くなるデメリットが大きくなるんじゃないか?
151 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 17:43:48.94 ID:SC+4wpaQ.net] DirectWriteだと強制的にヒンティング切れるからそれでイケる GDIはGetGlyphOutlineでAA付きで書き出すくらいしか知らん
152 名前:デフォルトの名無しさん [2018/01/19(金) 17:50:56.78 ID:0WIN7azb.net] 24dot x 24dot とかで truetype 描画とかしたいの?
153 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 17:51:10.40 ID:H+lB59KU.net] ワイは大きめのビットマップメモリ領域に一度描画してから、縮小表示という無駄オブ無駄処理しとるやで
154 名前:片山博文MZ mailto:sage [2018/01/19(金) 19:13:16.59 ID:2v31ru1f.net] MZC4、ハンドルマップに切り替えできるようになったよ。 https://github.com/katahiromz/MZC4 #define MZC4_HANDLE_MAP
155 名前:片山博文MZ mailto:sage [2018/01/19(金) 20:16:32.63 ID:2v31ru1f.net] IPアドレスコントロールのEDIT子ウィンドウがGWLP_USERDATAを使っているみたい。。。
156 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 23:33:33.01 ID:SC+4wpaQ.net] 結局、設計思想が間違っていたなカス山
157 名前:片山博文MZ mailto:sage [2018/01/19(金) 23:42:37.51 ID:2v31ru1f.net] GWLP_USERDATAを使うのは低コストな選択肢としてアリ。ただし、IPアドレスコントロール内部やユーザー側のコントロールに触れる場合は、 問題が生じる可能性がある、という結論でファイナルアンサー。
158 名前:デフォルトの名無しさん [2018/01/20(土) 04:45:27.61 ID:kn1Qti/r.net] extrad
159 名前:ataはチェインにして使うもんじゃね? [] [ここ壊れてます]
160 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 10:42:21.43 ID:eYoKNwxu.net] >>154 問題が生じる可能性があるけど選択肢としてアリなら なぜ他人の実装には間違ってるなんてケチつけたんだ?
161 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 11:37:19.82 ID:BYAVkCTU.net] >>147-150 ありがとうございます。 やっぱり簡単にはいかないんですかね。 印刷の処理は今のままでよく、画面上をその印刷イメージに近づけたいので、 DirectWriteの勉強をしてみたいと思います。
162 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 12:42:48.77 ID:kH4wUtRw.net] 印刷物をモニターに等倍表示したいんだ!ってわけじゃないだろ? モニター上に拡大表示すりゃいいじゃん
163 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 20:49:32.77 ID:ZoyisMRe.net] わざわざ小さいときはビットマップフォントを使うのは、 その方が綺麗だからなんだけど
164 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 22:24:40.60 ID:CymiFGuu.net] >>157 >印刷の処理は今のままでよく、画面上をその印刷イメージに近づけたいので やったことないけど・・・ CreateDC(プリンタドライバ名・・・) CreateCompatibleDC() CreateCompatibleBitmap() でプリンタ互換のメモリデバイスコンテキストを作成し、これに印刷と同じ描画を行った後、 BitBltで画面にコピーするなり、DIBセクションにコピーするなりすれば良いんじゃね?
165 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 22:31:46.76 ID:XoG7D2n/.net] それするとデバイスコンテキストに書き込んだ時に、フォントがビットマップ描画になるから嫌ってんでしょ そもそもプリンタ自体の解像度とかあるから、ビットマップやめたとこでそれ意味あんのって感じだけどw
166 名前:デフォルトの名無しさん mailto:sage [2018/01/22(月) 23:19:36.00 ID:CymiFGuu.net] >>161 解像度の高いプリンタではTrueType中のVectorデータ、解像度の低い画面ではTrueType 中のビットマップデータが使われることで、文字幅(→結果的に文字位置)が微妙に違って しまうのを嫌っているんじゃないかとエスパーした
167 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 00:43:10.75 ID:aEarH6Fp.net] せやからワイが>>150 で書いたんや
168 名前:デフォルトの名無しさん [2018/01/23(火) 03:11:18.71 ID:vxISVnp8.net] TeX使え
169 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 09:23:53.86 ID:8Xy2PdTe.net] Acrobat Readerは、MSゴシックやMS明朝で画面上の表示が小さいときも ビットマップフォントは使われないようですし、 やはりビットマップフォントよりも綺麗に見えるので、 これと同じような描画ができないかと思った次第です。 もちろん、AdobeがGDIだけで描いているとは思ってませんが。
170 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 11:56:46.96 ID:YgQfJm1f.net] Instructs the font mapper to choose from only TrueType fonts.
171 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 12:41:24.18 ID:Q06yU05c.net] AdobeはBGRに対応してなくて糞
172 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 16:35:20.95 ID:yxm2qYfd.net] 文字コード総合スレ Part11 mevius.2ch.net/test/read.cgi/tech/1516629503/
173 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 17:55:13.46 ID:SJob4Z7Y.net] win32api直接叩いてるんですけど、タブオーダーってどうやって設定されるんですか? 多分 CreateWindow 呼んでコントロールを作った順番そのままだと思うんですが、 なんかTABキー押してもフォーカスが移動しないんです
174 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 18:02:35.67 ID:h2qX+tcO.net] モーダルダイアログじゃないと動かないよ
175 名前:片山博文MZ mailto:sage [2018/01/30(火) 18:09:59.30 ID:XXEBAVhR.net] モードレスの場合は、メッセージループにIsDialogMessage呼び出しが必要。
176 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 18:19:21.99 ID:FAoT3aWr.net] タブキー押されたらsetfocus
177 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 18:29:42.34 ID:SJob4Z7Y.net] ああー 助かりました IsDialogMessage でうまくいきました。 余談ですが CreateWindow の呼び出し順とは逆に移動するんですね。 Z手前から奥に向かって移動する感じですかね。 とりあえず後はどうにかなりそうです
178 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 21:54:44.90 ID:fLRARGcM.net] プリプロセッサマクロ値 "_MSC_VER" を知る方法はありませんか? cuda 9.1 提供のヘッダの #error が反応してしまいます
179 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 22:09:19.27 ID:Z73Qxpjd.net] は? printfでもしてみればいいだろ
180 名前:デフォルトの名無しさん mailto:sage [2018/01/30(火) 22:36:28.87 ID:5Yx/uuQb.net] VS2008でも使ってるのか?
181 名前: mailto:sage [2018/01/30(火) 23:33:34.49 ID:fLRARGcM.net] >>175 ありがとうございます、なるほど! 現時点の最新は _MSC_VER = 1912 でまだ cuda が追従できていないようです https://devtalk.nvidia.com/default/topic/1022648/cuda-9-unsupported-visual-studio-version-error/
182 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 01:14:49.25 ID:IFJhRfmg.net] ズコー
183 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 22:47:25.95 ID:0FY9q5SB.net] dll間でデータを共有するのはdata_segでできるけど dllAで動的確保したデータ(クラスでメンバ関数有り)をdllBでも使えるようにするには マッピング以外に何がある?
184 名前:デフォルトの名無しさん mailto:sage [2018/02/02(金) 23:33:47.71 ID:3zbIMbyp.net] ふつうにポインタ渡せばいいんじゃね?もちろんクラスの定義は一致している前提だけど。
185 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 09:27:06.89 ID:KnnmFvy8.net] ごめんdllA, dllBって書いたけど間違い 正しくはexeAとexeBが同じdllを使ってる状況で exeAで動的確保して初期化もしたクラス(メンバ関数有り)をexeBのdllでも使いたいんだ
186 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 09:40:28.84 ID:qWVkS+Es.net] ふつうにポインタをdata_segに置くが
187 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 10:55:22.08 ID:FhluCmMv.net] プロセス間で共有したいんだろ? 共有メモリでもなんでも使ってデータ本体を保管 データ本体にアクセスするクラスを作ってそれはプロセス内でのみ利用すりゃいい 要はクラスそのものはプロセス間で利用しようと考えない
188 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 15:00:03.34 ID:KnnmFvy8.net] >>182 それだとメンバ関数実行でexeBのdllが異常終了する >>183 やっぱそういうのしかないんかな ありがとう
189 名前:デフォルトの名無しさん mailto:sage [2018/02/03(土) 15:12:28.48 ID:Pk3rL+mD.net] クラスにnew と new[] 定義すればエラーにならないでしょ?
190 名前:デフォルトの名無しさん [2018/02/08(木) 23:07:42.59 ID:C1oz7nNF.net] Windowsがシャットダウンした時刻を記録したいんだけど、 1秒おきにファイルに時刻を書き込み続けるしかないかね?
191 名前:デフォルトの名無しさん mailto:sage [2018/02/08(木) 23:27:36.93 ID:UuuqIveG.net] カーネルエラーで落ちたのでなければイベントログにシャットダウン時刻が書いてあるはずだが
192 名前:デフォルトの名無しさん mailto:sage [2018/02/08(木) 23:53:21.80 ID:PXTihGAK.net] VS2015とVS2017のsplitpathがMBCS対応してないんだけどどういうこと?
193 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 02:23:09.51 ID:E+KPBbPo.net] >>186 イベントログの他には WM_QUERYENDSESSION WM_ENDSESSION WM_POWERBROADCAST
194 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 03:30:07.89 ID:dI/VZTKe.net] 初歩的な内容で申し訳ないのですが、、、 親ウィンドウと子ウィンドウがあります。 子ウィンドウは自分でCreateWindow()を使い、親のウィンドウハンドルを指定して作っています。 そこで質問ですが、親ウィンドウでWM_DESTROYを処理する際に、子ウィンドウに対して 明示的にDestroyWindow()を一々実行する必要はありますか? 自分としては子ウィンドウは親の破棄に伴って暗黙のうちに破棄されると勝手に解釈しているのですが、 間違いがあればご指摘ください。
195 名前:デフォルトの名無しさん mailto:sage [2018/02/09(金) 04:33:00.77 ID:dI/VZTKe.net] 確認不足でした。 DestroyWindowをしなくてもちゃんと破棄されていましたね。 WM_DESTROYが来ていました。 すみませんでした。
196 名前:デフォルトの名無しさん [2018/02/09(金) 07:08:12.16 ID:h2mjWzgv.net] わかればよろしい
197 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 21:23:21.68 ID:KbLCHvlc.net] ウィンドウサイズが変更禁止されているウィンドウを強制的にサイズ変更する方法を教えてください
198 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 21:29:53.35 ID:RAq02Plv.net] 聞く前にとりあえずあっちのスレの>>134 をやったらどうだ?
199 名前:片山博文MZ mailto:sage [2018/02/14(水) 14:48:35.52 ID:634XtcmA.net] katahiromz.web.fc2.com/re/ja https://github.com/katahiromz/RisohEditor リソーエディタ、一応完成したから、使ってやってな。無料。
200 名前:片山博文MZ mailto:sage [2018/02/14(水) 15:06:14.81 ID:634XtcmA.net] >>195 電子署名付けろよ、ばーか
201 名前:片山博文MZ mailto:sage [2018/02/14(水) 15:07:22.57 ID:634XtcmA.net] >>195 電子産廃を作らないで下さい
202 名前:片山博文MZ mailto:sage [2018/02/14(水) 15:14:32.79 ID:634XtcmA.net] >>195 チョコもらわないで、何作ってんだよ、ヒマジン。 ネトウヨ超きも。
203 名前:片山博文MZ mailto:sage [2018/02/14(水) 15:15:29.03 ID:634XtcmA.net] Wwwwwwwwww 受けるw
204 名前:片山博文MZ mailto:sage [2018/02/14(水) 15:29:58.12 ID:634XtcmA.net] >>196-199 おまいら全員、逝ってよし。
205 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 18:27:56.31 ID:zJihYzXI.net] ツリービューに対してTVS_DISABLEDRAGDROPを設定してるのに、 右ドラッグをするとTVN_BEGINRDRAGが発生するのは仕様なのでしょうか。 しかもそのまま右ドラッグ操作をすると、 TVS_DISABLEDRAGDROPを設定していないときの左ドラッグと同じように、 選択位置が元に戻ってしまい、とても格好悪い動きになります。 左右どちらもドラッグ操作を無効にしたい場合、 左はTVS_DISABLEDRAGDROPで、右は自力でという変な方法しかないのでしょうか。 それとも、なにか他にスタイルがあるのでしょうか。
206 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 08:18:20.63 ID:VsrLFn20.net] モーダルダイアログの子ウィンドウとしてモードレスダイアログを使用している場合 モードレスダイアログをキー操作するにはどうすればいいですか? IsDialogMessageでメッセージを捕捉できません そもそもメッセージが発生しません
207 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 09:20:57.85 ID:iVztdi8j.net] 親に全部メッセージ来てないか
208 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 09:55:46.39 ID:VsrLFn20.net] 試しに モーダルダイアログ(親)のPushButtonAと モードレスダイアログ(子)のPushButtonBを同じコントロールIDにしてみましたが ボタンBのメッセージは子にしか来ていませんでした
209 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 10:21:48.34 ID:iVztdi8j.net] ああ、キー操作ね・・・・ 親もモードレスにしてメッセージループ回せばいいんじゃないかな なお、Enterは(略
210 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 10:44:51.48 ID:cQEFrnWP.net] キー操作ならDS_CONTROLをつければすべて自動でやってくれる。
211 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 12:18:08.54 ID:VsrLFn20.net] ありがとうございます 親はモーダルダイアログ固定でお願いします 子にDS_CONTROLスタイルを追加で操作はできるようになりましたが ボタン1 ボタン2 この状態でボタン2で方向キー右を押したらボタン1がアクティブに ボタン1で方向キー左を押したらボタン2がアクティブになるようにできませんか? 今の状態だとボタン1で左やボタン2で右を押すと親ダイアログのコントロールにフォーカスがうつってしまいます
212 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 12:31:01.78 ID:VsrLFn20.net] 補足です ボタン1にWS_GROUPは追加してあります
213 名前:206 mailto:sage [2018/02/22(木) 13:12:13.54 ID:cQEFrnWP.net] WS_EX_CONTROLPARENT もつけてみてください。
214 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 13:52:52.23 ID:VsrLFn20.net] ありがとうございます 親に追加したら親のコントロールから子のコントロールへ移動ができるようにはなりましたが >>207 の状況は変化無しでした ボタン1 -> ボタン2 -> 親のコントロール ではなく ボタン1 -> ボタン2 -> ボタン1 -> ボタン2 のようにフォーカス移動させられませんか?
215 名前:206 mailto:sage [2018/02/22(木) 14:00:44.86 ID:cQEFrnWP.net] 親だけでなく子ダイアログにもつけてください。
216 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 14:40:26.34 ID:VsrLFn20.net] ありがとうございます やっぱりダメでした
217 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 15:28:49.61 ID:McDcHlyx.net] >>210 ボタン2の次にフォーカスが来るコントロール(親ダイアログ側)にも WS_GROUPを付ければよいのでは
218 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 16:27:58.24 ID:VsrLFn20.net] ありがとうございます WS_GROUPを追加するとグループ開始で次のWS_GROUPが見つかるとそれ以降は別グループの繰り返しですよね 同ダイアログ内では問題無いですが 今回の条件では親コントロールに追加していてもフォーカスが親コントロールにうつってしまいます
219 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 15:46:28.17 ID:0tA6Y4q1.net] wsh 使って Environ("Volatile") とかの環境変数書き換えたあと WM_SETTINGCHANGE 呼べば親プロセスの環境変数書き換え出来ますか?
220 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 16:12:30.32 ID:YZ7AwSGF.net] 別プロセスならできないだろ やるならレジストリいじってだろうが、変更適用されるかはアプリ次第
221 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 17:02:23.92 ID:0tA6Y4q1.net] WM_SETTINGCHANGE は別プロセスには届かないのですね
222 名前:デフォルトの名無しさん mailto:sage [2018/02/23(金) 17:17:45.85 ID:0tA6Y4q1.net] こんなのもありました www.garbagecollect.jp/~usa/d/200803a.html
223 名前:デフォルトの名無しさん mailto:sage [2018/02/24(土) 21:02:04.05 ID:fc+Pe6yo.net] IMEによる日本語入力の際、今時よくある予測変換ウィンドウを自アプリでは 表示しないようにしたいのですが、なにかいい方法はないでしょうか。 ImmSetCandidateWindow()を試してみましたが、どのような値を入れても 通常の変換候補ウィンドウすら制御できず(何も変化無し)でした。 OSはWindows8.1です。 よろしくお願いします。
224 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 03:02:30.21 ID:eoTI2sxe.net] Win32APIの範疇ではない
225 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 03:26:29.95 ID:ghAeZDtA.net] そうではない根拠と該当範疇をどうぞ
226 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 08:57:28.39 ID:FvDCdjOy.net] MSIMEとGoogleIMEとかで違ったと思う(だからやるならターゲットIMEごとにウインドウ捕まえて消すことになるんじゃないかな) そういう意味じゃ範疇じゃないな でも使うのはwin32だから範疇だろ
227 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 09:03:25.97 ID:eoTI2sxe.net] なにその俺様が使うからなんでもここでOK論理
228 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 09:52:19.82 ID:FvDCdjOy.net] >>221 に答えろよw
229 名前:デフォルトの名無しさん [2018/02/25(日) 15:11:39.99 ID:DMbXpP0c.net] おまいらキーロガーほんと好きだな
230 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 16:41:54.90 ID:eoTI2sxe.net] >>224 そのくらい自分で調べなよ
231 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 17:18:38.57 ID:ghAeZDtA.net] IMM系列はWin32APIだろ 小学生は黙ってろよ
232 名前:219 mailto:sage [2018/02/25(日) 19:33:33.45 ID:WLgWOXVj.net] 今やっていることは、仮想キーボードを使って文字入力する画面があるのですが、 入力中に予測変換候補ウィンドウが仮想キーボードに被ってしまって仮想キーボードの キーが押せなくなる(もちろん移動すればいいですが)問題の回避を検討しています。 文字入力中に EnumWindow()等を使って調べてみましたが、関係しそうなのは クラス名 CiceroUIWndFrame, MSCTFIME Composition, mscandui40.* あたりで、 mscandui40.candidate を DestroyWindow()すれば予測変換・変換候補ウィンドウともに 非表示にはできました。 しかし mscandui40.candidate は MS-IME 使用時のみしか捕まえられませんし、 MS-IME のバージョンでクラス名が変わってしまう可能性もあるのでやり方を変えました。 というか、正攻法では Imm系の処理で行けそうです。
233 名前:219 mailto:sage [2018/02/25(日) 19:35:36.97 ID:WLgWOXVj.net] WM_IME_NOTIFY メッセージで IMN_OPENCANDIDATE を処理すれば何とかなりそうではあります。 ググってC#のサンプルは見つけましたが、それは上記のメッセージを捕まえてその後処理せずに (ように見える)いるだけみたいです。 しかし、こちらはC/C++なのでそのメッセージを捕まえて、処理せずリターンしている (CallWindowProc()を処理しない)ものの変換候補ウィンドウが表示されてしまいます。 解決は近そうなのですが、ご助言お願いいたします。
234 名前:219 mailto:sage [2018/02/25(日) 19:37:31.33 ID:WLgWOXVj.net] 見つけたサイトの短縮URLを貼ると書き込めなかったので、検索ワードを貼ります。 「IMEの変換ウィンドウを表示しないようにする」 (ページタイトルそのまま)
235 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 19:38:41.80 ID:eoTI2sxe.net] >>229 だからWin32APIじゃないってのに
236 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 21:20:41.03 ID:ghAeZDtA.net] かまってちゃんの幼稚園児はおうちに帰ってね
237 名前:219 mailto:sage [2018/02/25(日) 21:31:20.85 ID:WLgWOXVj.net] >>231 Win32APIです。
238 名前:デフォルトの名無しさん mailto:sage [2018/02/25(日) 22:25:31.77 ID:eoTI2sxe.net] >>233 プ
239 名前:デフォルトの名無しさん [2018/03/02(金) 19:26:39.11 ID:EPNBBNtc.net] https://github.com/pauldotknopf/WindowsSDK7-Samples/blob/master/winui/WindowsSearch/IFilterSample/Dll.cpp このサンプルソースで使われてる #define SZ_FILTERSAMPLE_CLSID L"{6C337B26-3E38-4F98-813B-FBA18BAB64F5}" #define SZ_FILTERSAMPLE_HANDLER L"{1AA9BF05-9A97-48c1-BA28-D9DCE795E93C}" この部分のguidって自分用に修正すべきguidだよね? なんかこのguidググるとWindows10のPDF用フィルターで使ってるみたいでよく分からんぞ
240 名前:デフォルトの名無しさん [2018/03/03(土) 10:12:18.29 ID:Cp/R2Wou.net] どうせ変えるんだからサンプルの値が何に使ってたかなんて考える必要ないやん
241 名前:41 mailto:sage [2018/03/08(木) 22:19:16.84 ID:SokprYE+.net] guidそのまま使ったらまずいかな
242 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 22:43:22.53 ID:kGuAlqnM.net] 個人で遊ぶぶんにゃ問題起きることなんてまずないよ
243 名前:デフォルトの名無しさん [2018/03/10(土) 15:29:17.15 ID:GkfRicR7.net] うむ
244 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 09:17:43.23 ID:kVx+PpNX.net] ある自作DLLの処理の中でGetWindowRectでウィンドウの座標を取得する場面があります。 Pythonから呼び出すと正確な値が取得できるのですが、C++から呼び出すと実際の数値と異なる値が取得されてしまいます。 同じapiを呼び出してるはずなのになぜ違いが出るのでしょうか?
245 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 10:18:22.88 ID:9wDOvV2B.net] クイズすんなっての 全然違うとこでバグってんだろどうせ
246 名前:デフォルトの名無しさん [2018/03/12(月) 16:01:49.08 ID:CSgz2Faf.net] クライアントのハンドルかアプリのハンドルかで間違うケース 右下の座標を幅と高さで間違うケース
247 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 14:29:33.71 ID:8m56Wtsd.net] GetWindowRectとかはvista以降色々あってdpi上げてると挙動がおかしくなる 挙動をきちんとする方法はぐぐれ
248 名前:デフォルトの名無しさん mailto:sage [2018/03/16(金) 13:18:40.44 ID:iQOXhM1r.net] >240 セットでマウスカーソル合わせたら?
249 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 16:53:36.96 ID:QYLzsgv6.net] dpi manifestでぐぐるよろし
250 名前:片山博文MZ mailto:sage [2018/03/23(金) 22:41:11.83 ID:8hwURVKL.net] https://github.com/katahiromz/EntryPointExamer エントリーポイントの静的解析ツールを作ったよ。EXEがどのWindowsで起動するかを簡易的にチェックできるよ。
251 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 15:39:07.71 ID:e7kV7Arm.net] https://blogs.msmvps.com/gdicanio/2018/03/27/string-performance-tests-atl-vs-stl/ という事です
252 名前:片山博文MZ mailto:sage [2018/03/28(水) 15:47:10.03 ID:prHO3Z7S.net] Short String Optimization (SSO)凄い。最初から標準のstd::stringを使えば良かったんや。
253 名前:デフォルトの名無しさん mailto:sage [2018/03/28(水) 19:56:58.54 ID:RZwUzQ0T.net] 何を今さら
254 名前:デフォルトの名無しさん mailto:sage [2018/04/01(日) 13:07:18.94 ID:PWmnEzsZ.net] OneDrive というアプリもSTLを使っている。以下の内容のログファイルaria-debug-nnnn.logをTEMPに吐くことから察せられる。 C:\build\aria-cpp-v1\clienttelemetry\src\LogManagerImpl.cpp(626): class Microsoft::Applications::Telemetry::ILogger *__thiscall Microsoft::Applications::Telemetry::LogManagerImpl::Initialize( const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,const struct Microsoft::Applications::Telemetry::LogConfiguration &) WARNING: Invalid in-ram queue size (20971520), adjusted to max ram queue size
255 名前:デフォルトの名無しさん [2018/04/01(日) 13:14:21.91 ID:GlQ4Mmqm.net] OneDriveってアプリなのか?
256 名前:片山博文MZ mailto:sage [2018/04/02(月) 15:35:23.63 ID:APYGmZJZ.net] 記事書いたよ。Win32の学習にお使い下さい。 katahiromz.web.fc2.com/win32/page01.html
257 名前:デフォルトの名無しさん [2018/04/02(月) 15:55:39.87 ID:r6uHUG7/.net] 用語の出し方がめちゃくちゃ 誰を読み手のターゲットにしてるのか
258 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 15:59:46.30 ID:7bVJtASd.net] https://msdn.microsoft.com/ja-jp/library/d1587c1h.aspx ウィンドウズでは exe,dllは共に実行可能ファイル
259 名前:デフォルトの名無しさん mailto:sage [2018/04/02(月) 23:25:31.45 ID:Oln58DHN.net] せめてメッセージクラッカーとリソースエディタのページ背景統一したら?
260 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 13:42:26.76 ID:hocIISHS.net] .NET FrameworkにあるDataGridViewのような物って、Win32にありますか?
261 名前:デフォルトの名無しさん mailto:sage [2018/04/03(火) 13:56:57.67 ID:R6gDm2yr.net] ListViewかなー
262 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 13:44:33.19 ID:hda/dUZf.net] _tmainで始まるコンソールアプリで、ウインドウプロシージャを使う方法はありますでしょうか WM_TIMERを使いたいのですが・・
263 名前:片山博文MZ mailto:sage [2018/04/05(木) 13:47:50.84 ID:7o7fJyTF.net] >>258 Sleepでミリ秒待つ。
264 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 14:01:34.32 ID:hda/dUZf.net] >>259 やっぱりコンソールだとそのやり方になるんですか・・・ Sleepでやりますありがとうございます
265 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 14:11:50.90 ID:cRNyIYvE.net] タイマースレッドからWM_TIMER相当のをバンバン投げりゃいいな
266 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 14:21:45.59 ID:N5yR+hE9.net] ウインドウ作れば・・・
267 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 14:32:45.47 ID:71zQ6xbb.net] デジャヴかと思った https://social.msdn.microsoft.com/Forums/vstudio/en-US/96639123-b543-4ca3-b8ca-0cbbde4621f1/timer-s-in-win32-console-application?forum=vclanguage
268 名前:デフォルトの名無しさん mailto:sage [2018/04/05(木) 19:58:46.14 ID:Oqjfw3cg.net] >>258 HWND_MESSAGEでぐぐればよろし
269 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 01:02:24.51 ID:TZTB2D9P.net] コンソールアプリなら、プロシージャを使わずに マルチメディアタイマー周期を設定してコールバックからイベントを送って メインループ側は WaitForSingleObject で待ったりすることが多い 昔からゲームアプリでよく使われてる
270 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 08:40:18.45 ID:WLNY2IeJ.net] ありがとうございます。 HWND_MESSAGEとWaitForSingleObject、ちょっと試してみます。
271 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 17:56:05.76 ID:AEfKVJYt.net] 次の質問はスレッドかな
272 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 06:34:16.89 ID:NQAA1W7E.net] CPUの周波数と温度を取得する方法を教えていただけないでしょうか CPU使用率(%)については、下記サイトのようにpdh.hを使う方法で取得できました home.a00.itscom.net/hatada/windows/tips/performance02.html
273 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 06:57:09.27 ID:ISGzNLI0.net] WMI
274 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 09:39:47.05 ID:NQAA1W7E.net] >>269 こちらを参考にオペレーションシステムの名前取得まではできました もう少しいじればできそうなので頑張ってみます。ありがとうございます https://msdn.microsoft.com/en-us/library/aa390423.aspx
275 名前:デフォルトの名無しさん [2018/04/08(日) 11:01:23.12 ID:YK+KPtHu.net] wshとかpythonとかでも同じ方法でもっと楽に取れるから そっちでテストプログラム書いてから逆移植すると楽
276 名前:デフォルトの名無しさん mailto:sage [2018/04/08(日) 11:31:10.35 ID:ISGzNLI0.net] その逆移植が面倒な部分だからな 一番簡単なのはスクリプトの結果受け取る方法。でもこういうの嫌がる人多いw
277 名前:デフォルトの名無しさん [2018/04/08(日) 11:42:37.54 ID:YK+KPtHu.net] 逆移植する前にもうやりたいこと出来たからそこで終わるパターンが最近多い
278 名前:デフォルトの名無しさん [2018/04/08(日) 11:55:02.91 ID:rGuvDNEz.net] CPUの温度ってCPU自身が持ってるけど、それにアクセスするには特権が必要で、そのためには署名されたデバイスドライバーが必要。 フリーソフトで温度を取れるのもあるけど、自前でドライバーを用意してるか、MS的にグレーっぽいドライバーを利用してる。
279 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 07:41:24.53 ID:4rymfX2t.net] こちらのサイトを参考に、WMIによる温度取得できました https://stackoverflow.com/questions/23314886/get-cpu-temperature しかし、何度アクセスしても27.85℃のままです 試しに水を止めて50℃まで上げてからプログラムを立ち上げてみましたが、27.85℃でした リアルタイムの温度を取得するのは無理なのでしょうか
280 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 08:45:28.69 ID:aqcvNYtD.net] 誰かが作ったwmiのツール使って温度見て同じく27.85だったらcpu(ドライバー)が原因 きちんとしてたらおまえが原因
281 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 09:02:21.02 ID:4rymfX2t.net] 一文字も変えずに丸々コピペしてみましたがやはり27.85と表示されます・・
282 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 09:23:51.04 ID:JpSN62c4.net] こちらでも同じく temp=27.850000 でした (Visual Studio 2015 Community)
283 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 09:47:42.76 ID:aqcvNYtD.net] > it's always the same and it's not the CPU temperature at all ソースコードのコメントがこれなんだから、丸々コピペならそうなるんじゃないか? だから丸々コピーしても意味ないだろ。原因探せよ・・・
284 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 12:21:58.67 ID:4rymfX2t.net] WMIでは無理なんですね・・ winring0というもののサンプルコードをいじってみたところ取得できたので、こちらを移植する方法でやってみます ありがとうございました
285 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 14:27:04.14 ID:iBEYls0Z.net] 結局>>274 ってことだったんだな
286 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 14:52:46.99 ID:/jbUbJls.net] おまえらがWMIなんて言うから無駄な遠回りしとるやんかわいそうに
287 名前:デフォルトの名無しさん [2018/04/09(月) 14:54:53.98 ID:GdkyYm9A.net] 27.85℃=301K
288 名前:デフォルトの名無しさん [2018/04/09(月) 22:58:31.99 ID:ph8eLpPP.net] Windows10になって増えたWin32APIとか調べたい場合どうするのが確実? ネットで調べるとXP以前の例ばかり
289 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 02:38:53.85 ID:M1sGJjGL.net] >>284 ググってみると SDK のヘッダの変化を見てチェックしてる人いるな https://naughter.wordpress.com/2015/05/15/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-one/ https://naughter.wordpress.com/2015/05/24/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-two/ 細かい API 一つ一つの追加とかまでは書かれていないけど参考になるんじゃないだろうか winerror.h に SQLite のエラーコードが(740行も!)追加されたとか豆知識得られた この人は最近のSDKについても調べてる
290 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 02:40:40.00 ID:M1sGJjGL.net] いやWindows10で何が追加されたかを調べたい という質問じゃなかったのか、もしかすると…
291 名前:デフォルトの名無しさん [2018/04/10(火) 13:42:13.82 ID:JIHFaEMv.net] ヘッダ比べるのは現実的な方法
292 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 16:30:34.70 ID:hrbxCJ/r.net] 音声にいろいろなエフェクトをかけてスカイプやdicordなどに流せるようなソフトを作りたいんですけど 仮想デバイスを作るにはどうすればいいんでしょうか マイク入力をうけとってエフェクトをかけてスピーカーから再生するまではできたんですが 他のアプリに仮想デバイスとしてみせる方法が分からなくて困っています
293 名前:デフォルトの名無しさん [2018/04/10(火) 16:45:17.90 ID:La3PY+dC.net] VST かな
294 名前:デフォルトの名無しさん [2018/04/10(火) 16:48:11.15 ID:La3PY+dC.net] この辺かな https://qiita.com/funatsufumiya/items/c2a009a300ecdc88247a もう古いって言われるかも知れんが
295 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 16:50:37.00 ID:hrbxCJ/r.net] >>289 すばやい返答ありがとうございます 軽く検索みてみたらGUIみたいなのがたくさんでてきます サンプルコードが一切でてこないですけど プログラムの中にうめこむライブラリとしてつかえるものなんでしょうか?
296 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 16:51:39.43 ID:hrbxCJ/r.net] >>290 分かりやすいサイトありがとうございます サンプルコードがあるので読んで見ます
297 名前:デフォルトの名無しさん [2018/04/10(火) 16:53:47.39 ID:La3PY+dC.net] あとフィルタはたぶんこっち https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/windows-audio-architecture https://msdn.microsoft.com/ja-jp/library/windows/desktop/dd317589(v=vs.85).aspx https://msdn.microsoft.com/ja-jp/library/windows/desktop/dd375473(v=vs.85).aspx がんがれ
298 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 19:08:17.02 ID:n4pH5xN4.net] 必要なのはVSTじゃなくて仮想デバイスドライバの作成方法なんじゃないのか?
299 名前:デフォルトの名無しさん [2018/04/11(水) 00:11:41.02 ID:5V3NvSPI.net] そだねーJap
300 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 01:33:21.32 ID:nGNQyhwo.net] vst 経由なら vst skype とかでググればやり方は見つかるし
301 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 16:45:30.30 ID:oc5yP9in.net] 自アプリで簡単な手書きメモ機能があるのですが、Win10タブレット端末でペン操作すると うまく文字が書けません。 短い線が書けない感じです。 恐らくマウス周りのメッセージの代わりに WM_GESTURE 系メッセージが来ていると思うのですが、 真っ当にこれらのメッセージを処理するのではなく、自アプリではこれまで通りマウス処理しかしない と何らかの方法で設定・宣言することによってペン・タッチ操作関連のメッセージを来なくすることは 可能でしょうか? OSレベルで全体的にこの機能をOFFにすることは可能なようですが、自アプリだけこれを適用できれば と思っています。 よろしくお願いします。
302 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 19:46:07.75 ID:xs6mCoGI.net] 自アプリだろ?要らないメッセージ無視すりゃいいじゃん
303 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 21:23:09.60 ID:4xNEGOrU.net] >>297 使ったことないけど WM_TABLET_QUERYSYSTEMGESTURESTATUS で色々disableしてあげれば良いんじゃないだろうか
304 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 21:31:47.99 ID:4xNEGOrU.net] ほかに .Net だとメッセージフィルターでWM_POINTERDOWN / UP を無視するなんてやり方を紹介している人も多い
305 名前:デフォルトの名無しさん [2018/04/11(水) 23:34:57.38 ID:HwL4BRgS.net] フルボッコすぎる
306 名前:片山博文MZ mailto:sage [2018/04/12(木) 13:06:30.81 ID:S0A11kDt.net] https://teratai
307 名前:l.com/questions/121464?sip=n0070000_019&uid=11595 早く返事が来ないかな。ワクワク [] [ここ壊れてます]
308 名前:297 mailto:sage [2018/04/12(木) 17:22:14.25 ID:1t6GyJnt.net] 一応分かりやすく画像で状況を補足します。 imgur.com/pvaetNV.png ペンでタッチ(押下)したときに、画像左側の◎印が出ます。 この◎印の中でぐりぐり動かしても何も描画できません。 (既存処理のWM_LBUTTONDOWN〜WM_MOUSEMOVEの流れでの描画処理が実行されない) この◎印からはみ出すようにペンを動かした瞬間、描画処理が働き出し、◎印が薄くなっていき消えます。 やりたいことは、◎印内でも描画させたいです。 現状では点などが描けませんので、例えば「う」だと上の部分が描きにくくて「つ」と描いてしまうことが多いです。 >>298 >>300 WM_POINTERDOWN / UP を含む、その他思い付く関連メッセージを無視するように試してみましたが、 ペン入力自体ができなくなりました。 >>299 WM_TABLET_QUERYSYSTEMGESTURESTATUS で色々disableも試してみましたが、 TABLET_DISABLE_PRESSANDHOLD を返した時に◎印の表示はなくなりました。 しかし、描画に関しては変化無くその領域に相当する部分からはみ出ないと描画できません。 WM_POINTERDOWN 等のメッセージが来たら WM_LBUTTONDOWN を投げる等試してみましたが 状況が変わりません。 WM_TOUCH 系の処理を追加すれば対処はもちろん可能でしょうが、簡単に既存処理を生かせる方法が ないものか、情報をお持ちの方よろしくお願いします。
309 名前:片山博文MZ mailto:sage [2018/04/12(木) 17:59:17.97 ID:S0A11kDt.net] インクとジェスチャーの両方が必要ということかな。
310 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 18:22:16.36 ID:nMaemNOx.net] いやゼスチャの判定が優先されるから少し動かさないと WM_LBUTTONDOWN とかが来ないんだよ それを簡単にマウスの時と同様すぐメッセージが来る動作にできないか、という話 ゼスチャ無効化してもダメとは面倒な話だよね
311 名前:片山博文MZ mailto:sage [2018/04/12(木) 19:12:40.30 ID:S0A11kDt.net] 今日の収穫は、OLEオートメーションがめちゃややこしいことがわかっただけだ。
312 名前:片山博文MZ mailto:sage [2018/04/12(木) 19:15:03.07 ID:S0A11kDt.net] 言語でネイティブにサポートされたヴァリアント型があればもっと簡単なんだが。
313 名前:41 mailto:sage [2018/04/12(木) 19:19:31.30 ID:gePCm00Z.net] そもそもマウスとジェスチャー分ける必要あったんかいな 軌跡はないが矛盾はしないだろうに
314 名前:名無し@キムチ [2018/04/12(木) 19:35:21.15 ID:jXGrykA6.net] コンソールのmain関数のコマンドライン引数argv、argcを引数にとる関数があるのですが、 これはwinmain関数内でも使えますか? その場合argv、argcの代わりにcommandshowとcommandlineを引数にする必要があるとおもうのですが、 どのようにすればエラーが出ずにargv、argcをcommandshowとcommandlineに変換できますか? よろしくお願いいたします。
315 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 19:43:37.70 ID:ZuhK/vm7.net] __argc、__argvでアクセスできる
316 名前:名無し@キムチ [2018/04/12(木) 19:45:08.29 ID:jXGrykA6.net] >>310 ありがとうございます。 早速それでやってみます。
317 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 19:45:11.97 ID:ifFSa3KQ.net] >>309 なんかどっちに変換したいのかよくわからんが __argv、__argc、GetCommandLineW、CommandLineToArgWあたりで調べてよきにはからへ
318 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 20:12:39.23 ID:ofGuXLCP.net] >>303 そんな古臭いメッセージ処理せずに、下記のメッセージで処理したら? WM_POINTERDOWN: WM_POINTERUPDATE: WM_POINTERUP: win8以降しか対応してないけどな。xp/vista/7とかでタッチパネルの処理は切り捨て推奨
319 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 21:38:47.94 ID:Cv0USnCZ.net] 旧来のアプリなんかタッチやフリックに対応してるわけないのに、そんなアプリに対してそれらのメッセージを投げつけて マウス関連のメッセージを投げないという仕組みがMSらしいというか融通が利かないというか、バカバカしいな。 タッチやフリックを要求するアプリのみにそれらのメッセージ投げるだけでいいのに。 旧来アプリでも旧来アプリなりにペンタッチで動くようにすりゃ、裾野も広がりやすいだろうにな。
320 名前:297 mailto:sage [2018/04/12(木) 22:59:34.36 ID:1t6GyJnt.net] ちょっと古いシステムなのでそのままちょっと直すだけで動かないものかと 試行錯誤していました。 313さんの仰る方向でも試行錯誤を続けていたのですが、既存プログラムの 出来がおかしいのか今のところうまく行っていません。 理屈で言えばうまく行くはず・・・なので、このまま調整を続けようと思います。 皆さんありがとうございました。
321 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 23:04:18.01 ID:ifFSa3KQ.net] >>314 いやタッチのメッセージを処理しなけりゃ普通にマウスのメッセージにフォールバックはされるぞ マウスメッセージのみで手を抜きたいけど目的の品質の届かないって趣旨の質問じゃろ
322 名前:297 mailto:sage [2018/04/12(木) 23:33:07.34 ID:1t6GyJnt.net] >>316 上でも書きましたが、タッチのメッセージを処理しないようにすると ペン入力自体全くできなくなりました。
323 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 23:44:04.43 ID:fS8U0BFZ.net] 関係あるんだかないんだかはわからんが EnableMousePointer なんて api があるな
324 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 23:59:24.17 ID:ifFSa3KQ.net] Surfaceでしか確認してないけどそういやFCUだかでペンのスワイプの既定が カーソル移動からスクロールに変更されてたなあ そのへんが原因かもね
325 名前:297 mailto:sage [2018/04/13(金) 02:19:42.71 ID:4MPC6lcI.net] >>318 ありがとうございます。 飛びついてみましたが、変化ありませんでした。 逆の考え方で、マウスをポインティングデバイスとして使うためのものかも知れませんが、 マウス操作しても前と変わらずでした。 もしかするとマウスでフリック操作などができるようになるのかも?という気がしますが、 そのような自作アプリがないのでこれ以上は分かりません。(なお、デフォでDisableが設定されていた) 整理しますと、現状>305さんの仰るとおり、ペンでタッチして少し動かせばマウスメッセージが 飛んでくるという状況です。 すっごく古いお絵かきアプリを複数引っ張り出してみましたが、基本的に同じ挙動でした。 描きやすさに多少の差異は見られましたので工夫の余地はあるものの、根本的には WM_POINTER 系統か WM_TOUCH 系統への対応が必須のようです。 色々アドバイスいただき、皆さんありがとうございました。
326 名前:313 mailto:sage [2018/04/13(金) 10:24:16.60 ID:MklDTzxh.net] タッチパネルのみのメッセージであるWM_POINTERで、必要なイベントを自分で加工してPostMessageかSendMessageを使って WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_LBUTTONUP:とかに投げればマウス部分の従来の処理でそのまま動くんじゃね? マウスっぽく処理するならタッチIDを保存して判別したほうがいいな WM_TOUCHは使ったらダメだと思う昔それで不具合があってハマった記憶がある。 void SingleTouch(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam) { // WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATEの共通処理 static UINT pointerID=0; // ポインタIDを静的に保存しておく POINTER_INFO info = { 0 }; // ポインタの情報を毎回初期化 UINT contactId = GET_POINTERID_WPARAM(wParam);GetPointerInfo(contactId, &info); // ポインタの情報を得る ScreenToClient(hWnd, &info.ptPixelLocation); // クライアントの座標で使うならローカル座標に変更 lParam = MAKELPARAM(info.ptPixelLocation.x,info.ptPixelLocation.y); // PostMessage用のlParamを作成 // 個別処理、同じpointerIDを判別をしないと10点タッチとかで酷いことになるw switch(message){ case WM_POINTERDOWN: if(0==pointerID){pointerID=info.pointerId;PostMessage(hWnd,WM_LBUTTONDOWN,0,lParam);}break; case WM_POINTERUP: if(pointerID == info.pointerId){pointerID=0;PostMessage(hWnd,WM_LBUTTONUP,0,lParam);}break; case WM_POINTERUPDATE:if(pointerID == info.pointerId){PostMessage(hWnd,WM_MOUSEMOVE,0,lParam);}break; } } LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)のswitch(message)で下記を追加 case WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATE: SingleTouch(hWnd,message,wParam,lParam);break;
327 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 10:47:38.98 ID:bFIkQBXO.net] タブレット持ってないからわかんないけどさ >>303 の◎ってOSが出してて、OS自体が入力を拒んでるんじゃないのか? だとしたらどのモジュールがその処理してるのか調べてその処理置換してwindows自体の挙動を変える必要があると思う
328 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 10:49:29.00 ID:bFIkQBXO.net] 処理置換しなくてもrawinputだとか入力関連のapi叩いても盗れる可能性あるか
329 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 11:35:55.96 ID:UdLtdLwz.net] >>323 取る方法はいくらでもあってドキュメント化もされている 今回の質問は簡易なコードでマウスと同様の動作をさせる方法は無いか?ということ。
330 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 11:58:28.35 ID:bFIkQBXO.net] ◎の中はメッセージ来ないから困ったって質問かと思ったんだが違ったのか わかんないもんに口出すべきじゃないなw
331 名前:313 mailto:sage [2018/04/13(金) 12:15:36.03 ID:MklDTzxh.net] 書き忘れてた。WM_TOUCH系の初期化すると◎のジェスチャーとか、不具合でるよ。 初期化しないで、321のコード実装してみたらいいと思う。
332 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 00:16:48.20 ID:a7yPR2Rx.net] サーバー上のファイルを編集中に、他人からの全てのアクセスを禁止したいのですが CreateFileでdwShareModeを0にすれば排他制御は万全だと思いますか? 良い方法があれば教えてください。
333 名前:327 mailto:sage [2018/04/14(土) 00:22:28.28 ID:a7yPR2Rx.net] 補足。クライアントからサーバー上のファイルを編集するときです。
334 名前:デフォルトの名無しさん [2018/04/14(土) 02:38:22.36 ID:lnTeyTPJ.net] deleteされちゃいますよ
335 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 06:15:46.39 ID:fnoJLpZQ.net] linux やわunix サーバなら消されちゃうかもね
336 名前:327 mailto:sage [2018/04/14(土) 18:14:56.59 ID:a7yPR2Rx.net] 編集完了までCloseHandleしなければdelete出来ないんじゃないでしょうか。悪意のある攻撃者はいないとして。 私が心配しているのは、一つのファイルに対して、複数のクライアントから同時に排他Open(CreateFile)が 発生したとして、複数のクライアントで排他Openが成功してしまう可能性があるんじゃ無いかって事です。
337 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 18:23:06.50 ID:s4TUpiI7.net] >>331 Open/Close は排他ロックにならない、ときいたことがある
338 名前:327 mailto:sage [2018/04/14(土) 18:32:55.41 ID:a7yPR2Rx.net] >>332 そうですか、、 小さいシステムなので、サーバ側プロセスまで作りたくないなーと思ってたんですが。
339 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 20:04:17.98 ID:fnoJLpZQ.net] smb なら排他的にロックされる 2つのクライアントが矛盾する共有モードでファイルをオープンしたり削除したりはできない。 https://docs.microsoft.com/en-us/rest/api/storageservices/managing-file-locks smb のサーバが linux や mac で、その os などから smb 以外の方法で ファイルを変更、削除したりは可能だけどこれはどうしようもない もしも目的が他のクライアントにエラーを返すとこでなく 書き終わった時点でアプリが書いた内容になっていることを保証したい (書いている途中のファイルを読まれないように)だけなら 別名のファイルを作って書き終えたところで MoveFile するというよくある手法もある。
340 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 20:19:46.84 ID:fnoJLpZQ.net] 上のurlはazureのドキュメントだけどsmbでWindowsサーバなら同じ仕様だと思う
341 名前:327 mailto:sage [2018/04/14(土) 21:05:12.23 ID:a7yPR2Rx.net] >>324 私にsmbはちょっと難易度高杉のようです。 妥協 or
342 名前:違うアプローチを考えてみます。 [] [ここ壊れてます]
343 名前:名無し@キムチ [2018/04/14(土) 21:10:19.87 ID:ywXYi+/7.net] 質問です。 glutを使ったプログラムで、描画の後ダブルバッファ交換のglutSwapBuffers();を入れると、 windowの画面が真っ白になってしまって何も表示されなくなるのですが、どうしたらいいですか?
344 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 23:46:15.72 ID:fnoJLpZQ.net] >>336 Windows の標準ファイル共有プロトコルSMBを用いて接続している ファイルサーバ上のファイルなら CreateFile の共有モードでロックができるということです。
345 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 00:06:05.13 ID:G47pMzYo.net] >>338 なるほど。でしたら概ねロックできそうです。 ごく少数のクライアントは無料のVPNツールでLAN外からサーバーにアクセスしているんですが これもSMBプロトコルなのかどうかは調べてみます。 情報ありがとうございました。
346 名前:デフォルトの名無しさん [2018/04/15(日) 10:41:11.68 ID:E1b18XLI.net] >>337 どこに描いたの? 何を表に持ってきたの?
347 名前:名無し@キムチ [2018/04/15(日) 21:45:37.16 ID:X4sBLOS0.net] Windowsのコールバック関数の中のWM_PAINTにダイレクトXの描画処理を書くと、エラーが出て実行されないのですが、どうしてですか?どうしたらいいですか?
348 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:53:50.01 ID:qZPDSYA2.net] まず全裸になります
349 名前:デフォルトの名無しさん [2018/04/15(日) 22:41:41.98 ID:UX4y5Mn1.net] 使わなくてもいいからDCだけ確保
350 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:01:26.11 ID:+Hw5szkB.net] ドリームキャスト手に入れるのは大変そうだ
351 名前:デフォルトの名無しさん [2018/04/15(日) 23:27:51.27 ID:xpwShDOv.net] ぴぴん
352 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:37:59.49 ID:qZPDSYA2.net] dc1 = beginpaint dc2= getdc dc2= releasedc dc1=endpaint
353 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 08:23:21.50 ID:5yp4kCb0.net] >>344 MDが復刻されるらしいじゃん。 上手くいけばSSやDCも行けるよ。
354 名前:デフォルトの名無しさん [2018/04/16(月) 09:43:27.45 ID:75OnkAat.net] カードキャプターさくら
355 名前:名無し@キムチ [2018/04/17(火) 18:57:41.86 ID:nz/ieMrf.net] 初歩的な質問ですが、fgxsdkを使ったプログラムと、openGLを使ったプログラムをつくりましたが、 どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。 どうしてそうなるのですか?またどうすればいいのですか?
356 名前:デフォルトの名無しさん [2018/04/18(水) 00:45:47.24 ID:lRwbg5zI.net] バッファを上書きしないように気を付ける
357 名前:297 mailto:sage [2018/04/19(木) 18:13:16.20 ID:o7VdbXqH.net] 297ですが、WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に 投げることで無事解決しました。 WM_POINTER 系はスクリーン座標、マウス関連はクライアント座標という 不一致の整合性を取ることと、ペン操作中の描画がされないので UpdateWindow を随時実行すること、あとは WM_POINTER 系の処理後に DefWindowProc は実行しないことで快適に動作するようになりました。 (描画については元の作りが甘いのが原因かもですが) >>321 色々とありがとうございました。 取りかかりが遅くなりましたが、おかげさまで対応できました。
358 名前:297 mailto:sage [2018/04/19(木) 18:16:39.64 ID:o7VdbXqH.net] > WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に > 投げることで無事解決しました。 なんか変ですね。 WM_POINTER 系処理時に、併せて適切な WM_LBUTTON や WM_MOUSEMOVE も SendMessage or PostMessage で送信することで無事解決しました。
359 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 17:47:35.10 ID:h8C5n4IB.net] surfaceのペンの筆圧などの情報を取得したい場合、何というキーワードで調べるべきですか?
360 名前:片山博文MZ mailto:sage [2018/04/21(土) 17:53:19.89 ID:9EumPI9y.net] >>356 SurfaceはWin32APIを使いません。代わりにWindows RTを使います。
361 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:05:27.99 ID:h8C5n4IB.net] 言葉足らずかも知れません。 surface proのペンの情報もwindows rtですか?
362 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:18:24.59 ID:gTRsxGnx.net] >>353 直前までのスレの話題がそのまんまなんだがなあ とりあえずこのへんを満遍なく読んでおきなさい https://msdn.microsoft.com/en-us/library/windows/desktop/hh454916.aspx ちなみに筆圧/傾きは基本的にGetPointerPenInfo系 片山は馬鹿だから無視しとけ
363 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:24:09.27 ID:h8C5n4IB.net] ありがとうございます。
364 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 08:01:02.21 ID:qK0Tcf+m.net] >>356 筆圧取得できました。 ペンだけでなくタッチもわかったのはとてもありがたい。 今後の課題は筆圧の最大値の取得、座標のズレの解決だ。 lParamからx,y座標取得してスクリーン座標からクライアント座標に変えたけど最大4pxぐらいずれてる(気がする)
365 名前:デフォルトの名無しさん [2018/04/26(木) 16:08:09.24 ID:obVS20md.net] ありがとうございます。
366 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 10:38:44.80 ID:urlL8t0C.net] https://docs.microsoft.com/en-us/windows/arm/ ハードが高杉て買えません
367 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 00:47:31.66 ID:jtnkDrxN.net] WiXでディレクトリを作ってCreatorOwner(S-1-3-0)にアクセス権設定してみたら プロパティのアクセス許可エントリにに"CREATOR OWNER"というグループが出てきた。 こんなの初めて見た。
368 名前:デフォルトの名無しさん [2018/05/11(金) 10:36:48.86 ID:eFEUpfi5.net] へ?
369 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 20:07:56.91 ID:jtnkDrxN.net] saclsなんかでS-1-3-0を指定しても実在の所有者のSIDに置き換わるじゃん。そもそもそのためにあるわけだし。 ACLには入らないものかと思ってた。
370 名前:デフォルトの名無しさん mailto:sage [2018/05/11(金) 21:00:03.68 ID:KUxDXsAg.net] ん?
371 名前:デフォルトの名無しさん [2018/05/12(土) 11:03:35.97 ID:yo5m8R46.net] 何十年も経ってるのに今更初めてとか
372 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 13:23:12.21 ID:Wuy9HJPF.net] 何十年てなんぞ?
373 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 00:22:00.59 ID:VV/fGzO7.net] ゲームの効果音を鳴らすのにmciSendCommandで鳴らそうとすると 一瞬画面が固まるので別スレッドで再生するようにしたのですが改善せず固まります。 以下のサイトの別スレッドで動かす例も試しましたがメインループが1秒に1回しか実行されません。 ttp://eternalwindows.jp/winmm/mci/mci02.html DirectSoundを使うしか画面が固まるのを回避する方法はないでしょうか?
374 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 08:42:54.37 ID:YOvAeQk/.net] 鳴らす毎に固まるん? ロード画面とかでオープンだけ先にやっておいて 後は鳴らし終わったら最初にシークしてまた鳴らしたらいいんでない? 的外れてたらごめんな
375 名前:367 mailto:sage [2018/05/14(月) 09:10:04.81 ID:Yo4sXSf8.net] すみません。自己解決しました。 キーが連続して入力されたと判定されないように 前回から0.1秒以下の間隔で入力されたキーを無視する部分で レンダリングまで無視してしまっていました。
376 名前:デフォルトの名無しさん [2018/05/14(月) 13:32:12.89 ID:dnGRWxRE.net] >>367 waveout
377 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 15:03:48.05 ID:YOvAeQk/.net] ズコー
378 名前:367 mailto:sage [2018/05/14(月) 19:29:13.78 ID:TSV87Y/E.net] 度々すみません。 音の再生で画面が固まらないようには出来たのですが、 オープン、シークを事前に行っておいても再生までに少し時間がかかってしまいます。 例えばクリックでクリック音を鳴らせるようにすると、クリックを連打した時に鳴らなくなってしまいます。 クリック音は1フレーム目から音が鳴るように調整済みで、高速化のためwavファイルにしてあります。 core i5 8250u, m.2 ssdの環境で最適化ビルドでも再生まで0.2秒以上かかります。 mcisendcommandを高速に動作させる方法はないでしょうか?
379 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 19:57:29.23 ID:9wWfcYFS.net] MessageBeepでは?
380 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 22:23:19.23 ID:Zf7UDWDq.net] sndPlaySoundでは?
381 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 08:42:15.75 ID:RLKB0pPy.net] まさかのWM_LBUTTONUP?
382 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 09:35:21.30 ID:iduN+0hu.net] >>372 ないんじゃない?
383 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 11:24:49.27 ID:iNTYPTvx.net] 20年近く前に設置されたお手軽APIにリアルタイム性を求めるのもな… ゲーム用の効果音ならDirectXTKのAudio(XAudio2のラッパー)がお手頃かしら
384 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 03:14:40.15 ID:52uBQuev.net] OpenALでもいいんじゃね?
385 名前:デフォルトの名無しさん [2018/05/18(金) 06:39:21.09 ID:KYXS7qiH.net] キーボードの入力だけを無効化するAPIを教えてください BlockInputだとキーボードとマウスの両方が無力化されてしまうので。
386 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 07:22:41.68 ID:JEElro2Y.net] そのものずばりなapiはないんじゃないかな
387 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 09:20:15.65 ID:KYXS7qiH.net] ないじゃねーんだよアホ だったらどうすりゃ実現できるのか教えろよ
388 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 09:36:45.73 ID:JEElro2Y.net] うわあ
389 名前:片山博文MZ mailto:sage [2018/05/18(金) 09:49:08.60 ID:C170FFEJ.net] フィルタドライバ
390 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 09:56:15.34 ID:crDPuGzZ.net] ローレベルフックでキーボード入力を捨てられた気が
391 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 10:17:50.27 ID:mWyCAt5N.net] >>381 教えろよじゃねーんだよアホ だったらどうなりゃ理想なのか教えろよ 指定したプロセスのみ無効化? 全てのプロセスで無効化? BlockInputを試したという事は全てのプロセスで無効化でいい?
392 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 10:20:51.20 ID:JEElro2Y.net] BlockInputはそのスレッドだけじゃないかな おまえらこんな糞な奴のをよく答える気になるなw
393 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 10:29:53.45 ID:PW/5KQgQ.net] キーボードを取り外す 展示とかに使うならこれだなw
394 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 11:03:10.17 ID:/yTMyJuo.net] 16bit時代にはそのものズバリのapiがあった
395 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 12:07:37.64 ID:aDkqve5K.net] easyhookを使えるようにするにはどうすればいいのですか? たすけて
396 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 12:21:16.66 ID:JEElro2Y.net] チュートリアルにサンプルコード載ってるじゃん
397 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 12:23:26.03 ID:aDkqve5K.net] ごめんなさい プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
398 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 12:40:49.02 ID:JEElro2Y.net] ducumentationにインストール方法書いてあるじゃん
399 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 12:53:35.86 ID:aDkqve5K.net] どれ?。。 プロジェクトに追加されてたらOKなの? EasyHookをつかってるプログラムが動かないんだけど RemoteHooking.Injectがエラーになる
400 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 12:55:27.82 ID:JEElro2Y.net] ducumentationからコピペ Adding EasyHook to your project 1.Open your project in Visual Studio, or create a new one. 2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”. 3.Search for “EasyHook” 4.Select the EasyHook package and click install. After accepting the license agreement your project is ready to use EasyHook.
401 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 12:59:51.80 ID:mWyCAt5N.net] おまえこんなスレチなのをよく答える気になるなw
402 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 13:06:44.09 ID:aDkqve5K.net] ごめんなさい どこいけばいいの?
403 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 13:26:58.25 ID:mWyCAt5N.net] あるならEasyHookをつかってるプログラムのスレ 無いなら入手元良く見る
404 名前:デフォルトの名無しさん mailto:sage [2018/05/21(月) 14:45:12.74 ID:J624wk10.net] keymapでも壊してみたらいいんじゃね?
405 名前:デフォルトの名無しさん mailto:sage [2018/05/21(月) 15:51:07.84 ID:pTo/71V7.net] 壊すのも元に戻すのも再起動必要になるだろ
406 名前:デフォルトの名無しさん [2018/05/23(水) 19:14:45.20 ID:Au5e7VGg.net] 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 IAVAJ
407 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 10:37:52.55 ID:cPlRxlDn.net] IAVAJ
408 名前:デフォルトの名無しさん [2018/05/29(火) 22:34:39.42 ID:7/wI9AnP.net] Windows10で仮想デスクトップを使った場合 そのどちらのデスクトップに自作アプリがあろうとも GetDC(0)って現在表示しているデスクトップを取得するんだな 子ウィンドウだけを仮想デスクトップに移動しておいて その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが 所詮、仮想なんだ? もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
409 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 07:12:33.93 ID:tkaPgK/f.net] そらgetdcの引数は仮想デスクトップ番号じゃないかならなw ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
410 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 07:34:07.95 ID:VLAeNwdW.net] アクティブじゃない仮想デスクトップにあるUWPアプリとか サスペンドするようにもなってるしDWM的に無理じゃないかしら
411 名前:デフォルトの名無しさん [2018/06/01(金) 04:15:17.48 ID:LQ78zvmu.net] このスレがまだあってよかった。 いま時 Win32APIを使ってゴリゴリ書いてるんだけど、 RegisterClassEx 構造体の lpszClassName に指定する文字列って、 ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に 文字列のメモリが解放されてしまうことになっても問題ない? それとも文字列リテラル(静的文字列)じゃないとダメなの?
412 名前:405 mailto:sage [2018/06/01(金) 04:17:20.03 ID:LQ78zvmu.net] すまそ、変な書き方をした。 >RegisterClassEx 構造体の WNDCLASSEX 構造体の、lpszClassNameフィールド。
413 名前:放置された蟻人間 mailto:sage [2018/06/01(金) 04:33:40.82 ID:p/Dhco7s.net] 登録されたら、文字列の内容が記録されるから、ローカル変数で結構毛だらけ。
414 名前:405 mailto:sage [2018/06/01(金) 08:42:09.72 ID:LQ78zvmu.net] >>407 ご回答ありがとうございます、了解です(>∀<;)
415 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 19:44:17.74 ID:lSIEjw1a.net] declspec dllexport使ってなかったから気づかなかったけど x64で仕様変わったんだな
416 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 19:53:03.95 ID:08JTaAbh.net] 呼び出し規約が?
417 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 21:31:58.11 ID:lSIEjw1a.net] x86だと先頭にアンダーバーが 後ろに@引数バイト数がついてたけど それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
418 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 00:37:48.44 ID:CDT3Iung.net] https://msdn.microsoft.com/ja-jp/library/56h2zst2.aspx これのことか。
419 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 02:49:39.56 ID:zhf22BrY.net] Cの話なのね
420 名前:デフォルトの名無しさん mailto:sage [2018/06/14(木) 09:33:49.07 ID:0LV14Koi.net] ++でも同じだよ。結局使うのはc形式なんだから
421 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 12:34:33.29 ID:eoVHJNOw.net] Windows7でRemoveMenu関数を使ってコマンドプロンプトのクローズボックスを無効化したあと タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で 回避する方法はありますか?
422 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 12:41:21.25 ID:fQgtrTpq.net] cmdが内部で特殊な処理してない限りそんなこと起きないと思うんだけど・・ 単にプロパティの位置が一番下だから間違えて消してるんじゃない?
423 名前:放置された蟻人間 mailto:sage [2018/06/16(土) 13:09:31.09 ID:Iux2O+3t.net] RemoveMenu呼び出しの周辺のコードさらせ。
424 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 16:12:48.28 ID:IDYLbmOn.net] コマンドプロンプトやPSのコンソールの実装はかなり特殊だよ 1ウィンドウと同じに考えてはいけないと思ってる
425 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 16:48:55.99 ID:fQgtrTpq.net] 本当かよっと思って試しにやってみたら何のトラブルもなく閉じるだけ消えてプロパティ開けるぞ
426 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 14:47:03.73 ID:XFilFgQX.net] LOGFONTのlfUnderlineを設定したフォントで文字を描画した際、下線が引かれますが、 この下線の位置や太さを決定するルーチンはありませんか? 点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、 単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
427 名前:デフォルトの名無しさん [2018/06/20(水) 14:57:53.57 ID:OnxnZInx.net] つまりアンダーラインが相対的にどこに来るかを指定してる属性を取りたいっていう質問でしょうか?
428 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 15:05:42.83 ID:XFilFgQX.net] >>421 そういう感じです。 CreateFontIndirectで作成したフォントを使って文字を描画したあと、 その文字の位置に自分で下線を引きたいと思っています。
429 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 15:06:59.64 ID:XFilFgQX.net] 追記ですが、理想としてはlfUnderlineのときと 全く同じ位置や太さで描きたいと思っています。
430 名前:デフォルトの名無しさん [2018/06/20(水) 15:10:10.67 ID:4KfCtndu.net] baseline memo d.hatena.ne.jp/satosystems/20140210/1392019342 marupeke296.com/DXG_No66_OutlineFont.html d.hatena.ne.jp/It_lives_vainly/20100331/1270002338 k3tec.net/neko_wiki/index.php?%A3%D7%A3%E9%A3%EE%A3%B3%A3%B2%A3%C1%A3%D0%A3%C9%B9%D6%BA%C28%B2%F3 chokuto.ifdef.jp/urawaza/struct/LOGFONT.html 👀 Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
431 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 15:34:01.33 ID:mFWpedZK.net] 質問者じゃないけど、フォント周りのコードを弄ってるときに ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。 結局分からなかった思い出。 >>424 結局概念しか分からないw win32apiじゃなくて、これしかないのかな? https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx
432 名前:菩薩@太子 [2018/06/21(木) 20:10:03.98 ID:6ce+aANS.net] 汝らよ、汝らはWin32APIに関してわからないことがあったら、このスレで質問しなさい。 そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
433 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 20:18:23.12 ID:pkPeGiXN.net] さすれば、弥勒菩薩が降臨するまでに回答が得られるであろう
434 名前:デフォルトの名無しさん [2018/06/22(金) 06:16:52.85 ID:kyYAMp48.net] 芽っていう意味だよ
435 名前:デフォルトの名無しさん [2018/06/22(金) 08:59:29.47 ID:4s+1pzSQ.net] >>423 アセント、ディセントの値を取ってベースラインを割り出すとか出来たような… とにかく、アセント、ディセントをググってみるのがいいと思う 昔、似たようなことやって、えらい苦労した覚えがあるわ 詳しいことはもうほとんど忘れた
436 名前:デフォルトの名無しさん mailto:sage [2018/06/22(金) 20:00:29.48 ID:HpQmxb21.net] DirectWriteだとカスタム描画用にIDWriteTextRenderer::DrawUnderlineというコールバックがあるで
437 名前:デフォルトの名無しさん mailto:sage [2018/06/22(金) 20:21:26.56 ID:vo7No3CM.net] もしかして GetTextMetrics で取得した TEXTMETRIC の tmAscent, tmDescent で分かるんじゃないの?
438 名前:415 mailto:sage [2018/06/23(土) 09:44:08.76 ID:UVw2sBCh.net] >>416-419 原因が分かりました ↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました MSDNに「TRUE を指定すると、この関数は、ウィンドウメニュー
439 名前:をリセットして Windows の既定の状態へ戻します。」と 書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz HMENU hmenu; /* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */ GetSystemMenu(GetConsoleWindow(), TRUE); /* コンソールメニューハンドルのコピーを取得する */ hmenu = GetSystemMenu(GetConsoleWindow(), FALSE); /* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */ if (!(button_stat & 0x01)) RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND); /* 以下省略 */ [] [ここ壊れてます]
440 名前:さまよえる蟻人間 [2018/06/24(日) 08:52:07.32 ID:jlx8CiNF.net] 来たよ!!! https://twitter.com/katahiromz/status/1010659723119509504 https://twitter.com/katahiromz/status/1010661747433172992
441 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 09:12:16.31 ID:7l22t7T7.net] また片山の宣伝かよ
442 名前:放置された蟻人間 mailto:sage [2018/06/24(日) 10:11:04.49 ID:Ki1yi8uD.net] 一応、Win32APIで書いたんですけど。
443 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 10:53:22.32 ID:7l22t7T7.net] そういう考えで今まで何度も宣伝してたのかw ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、 API使ってるアプリ紹介スレじゃないんだよ
444 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 10:54:03.26 ID:QdNeiEeM.net] あ? なんだよ「C++11に準拠してarray::operator[]で範囲チェックしろ」とかラリってる糞コテは片山かよ
445 名前:放置された蟻人間 mailto:sage [2018/06/24(日) 11:09:06.07 ID:Ki1yi8uD.net] >>436 リソースエディタがWin32APIに関係ないって? >>437 誤解です。関係ない話を勝手に結び付けないで下さい。
446 名前:放置された蟻人間 mailto:sage [2018/06/24(日) 11:19:47.20 ID:Ki1yi8uD.net] 5ちゃんねるは、広告料と浪人の収益によって成り立っています。
447 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 11:21:10.11 ID:7l22t7T7.net] 関係ないよ 質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
448 名前:放置された蟻人間 mailto:sage [2018/06/24(日) 11:23:27.52 ID:Ki1yi8uD.net] コマーシャルの仕組みについて皆さまのご理解をお願い致します。
449 名前:放置された蟻人間 mailto:sage [2018/06/24(日) 11:24:22.52 ID:Ki1yi8uD.net] >>440 お前の中ではな。
450 名前:放置された蟻人間 mailto:sage [2018/06/24(日) 11:39:26.10 ID:Ki1yi8uD.net] お前ら、Win32を知り尽くしているんだろ? だれかReactOSで日本語入力できるようにしてくれよ。
451 名前:41 mailto:sage [2018/06/24(日) 11:48:47.83 ID:iIAhljkC.net] Win32Apiで何ができるかをを知り尽くしているが Win32Apiが何をしているのかは何も知らない
452 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 01:12:02.96 ID:R9m7k+sg.net] if(sa::sendkey[cnt]!=NULL){ if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 ); if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 ); if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 ); SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 ); SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1); if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1); if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1); if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1); } sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、 「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、 データキーしか送信されません。 何がいけないのでしょうか?
453 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 07:03:38.33 ID:euNVlzH4.net] keybd_eventもしくはsendinput使う
454 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 18:46:39.01 ID:oo6U7F08.net] 非アクティブウィンドウのままがいいならこれでどうでしょう ShiftとEndの同時押しが出来ることを確認しました void send_shift_and_end() { HWND hWnd = FindWindow(L"Notep
455 名前:ad", NULL); if (hWnd == NULL) { return; } HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" ); if (hEdit == NULL) { return; } BYTE kstats[256], shiftstat; DWORD srctid, dsttid; srctid = GetCurrentThreadId(); dsttid = GetWindowThreadProcessId(hEdit, NULL); AttachThreadInput(srctid, dsttid, TRUE); GetKeyboardState(kstats); // 実行前の状態を保存 shiftstat = kstats[VK_SHIFT]; kstats[VK_SHIFT] |= 0x80; // shift を押下状態に SetKeyboardState(kstats); // 状態を更新 SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG kstats[VK_SHIFT] = shiftstat; SetKeyboardState(kstats); // 実行前の状態に復帰 } [] [ここ壊れてます]
456 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 20:01:44.94 ID:R9m7k+sg.net] レスありがとうございます。 このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、 アクティブ出ない場合、アクティブに出来ずに居ます。 if(sa::sendkey[cnt]!=NULL){ //ターゲットををアクティブに HWND hWndTemp = SetActiveWindow(sa::hWndSa); char t0[256 + MAX_PATH]; sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp); strscr_set(t0); //Key Event送信 if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0); if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0); if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0); keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0); keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0); if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); //元のウィンドウをアクティブに SetActiveWindow(hWndTemp); } デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
457 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 20:03:32.63 ID:R9m7k+sg.net] ちょっと>>447 さんの方法も試してみます。 有り難うございます。
458 名前:放置された蟻人間 mailto:sage [2018/06/25(月) 20:32:07.52 ID:RnBLs+IR.net] Ctrl+Alt+Delは、セキュリティで保護されているんじゃ中田家?
459 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 21:13:56.50 ID:R9m7k+sg.net] >>447 さんの方法で無事うごきました。 ありがとうございましたm(_ _)m
460 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 21:31:41.84 ID:f6L/NlJ0.net] SetActiveWindow の代わりに SetForegroundWindow を試してみたら?
461 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 21:35:50.33 ID:I2eYxQBJ.net] blinkWindowtop
462 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:06:34.48 ID:RTJdtcUh.net] 言いたかないがCOMでマジで糞だなと思うのは アパートメントか何だか知らないが 勝手に内部でメッセージループ回すな!!! たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎 そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが 実に馬鹿らしい どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな どうしろと
463 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:25:36.41 ID:SPR6zsx0.net] 別スレッドにしたら余計危ないだろw
464 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 19:40:38.36 ID:RTJdtcUh.net] いやまじでさ しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら なぜかメッセージループ回すようになったやつとかあるし いつ何のタイミングでメッセージループが回るか分からねぇ アパートメントモデルはマジで糞過ぎ 全部マルチスレッド対応でいいだろ意味不明
465 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 19:45:02.11 ID:RTJdtcUh.net] ただスレッドモデルのせいでメッセージループが回ってるのかどうかは良くわからないんだがな 原因は分からんが勝手にメッセージループ回すのはマジで迷惑だからやめてほしい 何がどの順で実行されるか分からなくなるから
466 名前:デフォルトの名無しさん [2018/07/04(水) 22:09:52.47 ID:gFgZc5FG.net] 548
467 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 06:45:33.22 ID:uNMy++3S.net] Direct2D いいね。 4K画像もヌルヌルに縮小拡大表示できる。回転や鏡像反転も大丈夫だった。
468 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 20:02:27.82 ID:xJt/yCDq.net] 1台のPCにマウスAとBを接続し、 マウスAは普通のマウスとしてWindowsで、マウスBを特定のプログラムのみで使いたいのですが どのようにすればよいでしょうか?
469 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 20:26:18.50 ID:uwYbJKCZ.net] 特定のプログラムのみで使うってのをどういう意味にするかだな フィルタードライバ作ってBを潰すと同時に操作をアプリに送って、アプリから特定のプログラムへマウスメッセージでも送るとか
470 名前:デフォルトの名無しさん mailto:sage [2018/07/08(日) 20:51:40.89 ID:O/180cHX.net] Low-Level Mouse HookでデバイスIDは取れなかったと思うし ソフトでやる場合ドライバまで降りるしかないね
471 名前:デフォルトの名無しさん mailto:sage [2018/07/08(日) 23:36:33.06 ID:aNDdpi7h.net] GetGlyphOutlineでサロゲートペアの文字のビットマップを取得するには どうすればいいでしょうか 普通の2バイトの文字はできます 調べると、グリフインデックスを取得して〜みないな内容は ぽつぽつ見つかったのですがよくわかりません コピペして適当に真似てみたのですが、GGO_GLYPH_INDEXを指定すると 謎の小さいデータ(abc間隔とかいうやつでしょうか)が返ってくるだけです これまた試しにGGO_GRAY8_BITMAP | GGO_GLYPH_INDEX とやってもサイズは0でした
472 名前:デフォルトの名無しさん [2018/07/09(月) 17:38:45.00 ID:1p1eFn95.net] INDEXをもらったら本体を取りに行く
473 名前:デフォルトの名無しさん mailto:sage [2018/07/09(月) 21:03:04.88 ID:xF/N3z+3.net] >>464 それはINDEXから直接アウトラインデータを持ってきて自前で処理するという意味でしょうか 本体を取りに行くというのがわからないです
474 名前:デフォルトの名無しさん mailto:sage [2018/07/10(火) 19:32:28.56 ID:Q7aC7GqH.net] カーネルモードからユーザーモードアプリにデータを渡すいい方法ないかな? イメージとしてはマウスのボタンを押したらその情報をアプリが受け取るとか、ネットワークメッセージを受信したらそれをアプリに渡すというもの CreateEventの通知と共有メモリ使えばできるけど、もっといい方法ないかな
475 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 04:33:45.21 ID:Fuh1W0mR.net] >>463 これですがインデックス取得後、GGO_GRAY8_BITMAP | GGO_GLYPH_INDEXで 普通にサロゲートペアのビットマップを取得することが出来ました 原因は単にテストに使用していたフォントがサロゲートペアに対応してなかっただけでした… もしそういうフォントの場合は 自分で取得前に代替フォントに切り替えるという認識であってますか それともどこかで指定する方法はあるんでしょうか
476 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 07:18:20.84 ID:F1eG7opL.net] >>466 > もっといい方法ないかな 「いい」はあなたの脳内でのみ定義された概念なので他人には答えようがない。
477 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 07:30:49.51 ID:8618Mha6.net] >>468 あなたが考える「いい」方法を教えてって意味でしょwww
478 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 07:36:07.14 ID:iXIp3nZ5.net] カーネルモードでFDDに保存 ユーザーモードはFDDの中身を定期的に読む これで良い
479 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 08:27:47.61 ID:GnA/ld69.net] >>469 答えたらそれは俺の「いい」と違うって言われるだけだろ
480 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 08:54:59.84 ID:JD67P8Kl.net] プログラマなんてアスペキチばっかだから質問を読み取ってくれないのはよくあることよ それにDDKスレ見りゃ分かるが質問は海外ですべき。国内じゃ回答つかん 共有メモリだとデータ欠落がありえるから(受け渡し済みデータをメモリ内から消す仕組みを作るのが大変だから) FIFOにためて通知後にdeviceiocontrolで読み出させる
481 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 09:02:55.50 ID:TNInTYOo.net] いい方法はわからないが正しい方法はあるだろう システムはある方法が正解になる前提で全体ができている それに逆らうと別の局面で何か問題が発生する
482 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 14:57:39.97 ID:F1eG7opL.net] 煽りぬきで、まず「いい」の定義から。 信頼性を優先するのか、速度を優先するのか、ソースコードの使いやすさを優先するのか、メモリ消費を抑えることを優先するのか、等。
483 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 15:00:46.43 ID:JD67P8Kl.net] 用途が挙げられてるからそこから読み取れってことよ その用途で実装するならこういう処理の方が「いい」となる
484 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 15:19:18.62 ID:F1eG7opL.net] 質問者や発注者は、何を優先し、何を犠牲にする覚悟があるかを明確にすることが必要。 それは金であったり時間であったりする。お前らの工数と人件費を犠牲にしたい場合が多い。
485 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 15:24:35.14 ID:blM5pGUx.net] まあ、「いい」は人それぞれな部分はあるかもしれないけど、そこやこだわりが書かれて無いならテキトーで良いんじゃね? 「お手軽な」という程度の解釈で。
486 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 15:38:50.77 ID:F1eG7opL.net] 発注側が受注側にわざと曖昧な要件を出して、受注側が提案したアイデアを無償で手に入れるのも重要な技術。 いかにしてコストを相手に押し付けるかが重要になる。
487 名前:デフォルトの名無しさん [2018/07/15(日) 16:39:00.88 ID:F1eG7opL.net] 相手の自尊心を刺激しつつ、情報をタダで引き出す技術は極めて重要。省資源の基本。
488 名前:デフォルトの名無しさん [2018/07/15(日) 18:54:11.43 ID:z9dis41F.net] >>471 だよな
489 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 19:02:18.64 ID:/PIdnGOp.net] 逆に言えば「CreateEventの通知と共有メモリ」ではダメな理由は何なのか? 当人(>>466 )が思うダメな理由が判れば、それを改善するものが「いい方法」なんじゃね?
490 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 19:29:32.13 ID:JD67P8Kl.net] ネットワークモニターを共有メモリで実装すること考えたらダメと感じる理由分かるだろうよ
491 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 19:54:05.79 ID:JjtknQT5.net] ・・・・・この感覚・・・・・・感じるぞ・・・・・・
492 名前:デフォルトの名無しさん [2018/07/16(月) 09:41:18.75 ID:Tl1DHPio.net] memory mapped file
493 名前:デフォルトの名無しさん mailto:sage [2018/07/16(月) 11:29:16.36 ID:fjsGqhw7.net] 共有メモリは誰が最後に開放するか問題があった気がする 代表プロセス(サービスとか)が全部やることにすればいいんだろうけど
494 名前:デフォルトの名無しさん mailto:sage [2018/07/17(火) 09:35:44.28 ID:3FwnZhxD.net] Win32APIでHDCに描画していくルーチンでPDFを作成できて、 プリンタドライバではなくDLLなどで提供されているものはありませんか? ユーザーが印刷でAcrobatなどを選択するのではなく、専用のコマンドを用意して、 DLLのAPIからHDCを作成してそこに描画していく、という方法を探しています。
495 名前:さまよえる蟻人間 mailto:sage [2018/07/17(火) 11:31:49.15 ID:iiy4NiaP.net] pdfium
496 名前:さまよえる蟻人間 mailto:sage [2018/07/17(火) 11:36:41.73 ID:iiy4NiaP.net] ごめん、pdfiumは表示ができるけどPDF作成はできないんだった。
497 名前:デフォルトの名無しさん [2018/07/17(火) 14:53:09.38 ID:+kxKOOfA.net] HDC って描いてるからダメなんだろうけど win32api じゃなくて良ければ matplotlib の dll
498 名前:デフォルトの名無しさん mailto:sage [2018/07/17(火) 15:02:10.66 ID:Zb0J/52v.net] >>486 いっそpdfを自分でゴリゴリ作るライブラリを作って公開しよう
499 名前:デフォルトの名無しさん mailto:sage [2018/07/17(火) 19:29:45.08 ID:8vhfTmzU.net] PDFつくるの割と簡単だからな。読むのは難しいが
500 名前:さまよえる蟻人間 mailto:sage [2018/07/17(火) 21:32:24.00 ID:o/CsZXJt.net] PDFは、Win32APIの範疇じゃないから、HDCにこだわる必要はないと思う。 どうしてもHDCで描くなら、ビットマップを使うことになる。
501 名前:デフォルトの名無しさん mailto:sage [2018/07/17(火) 21:46:38.93 ID:zCwWixNA.net] >>486 libharu 手書きPDF (www.kobu.com/docs/pdf/pdfxhand.htm )
502 名前:デフォルトの名無しさん mailto:sage [2018/07/17(火) 23:12:07.09 ID:Zb0J/52v.net] どうしてもHDCからデータを取る必要があるのなら、pdfじゃなくてemfはダメなの
503 名前:486 mailto:sage [2018/07/18(水) 09:13:26.55 ID:b6TTATjh.net] やっぱりこういうライブラリは無いものなんですかね。 プリンタのHDCに対する印刷処理は実装済みで、 普通にAcrobatなどを選んで印刷すればPDFは作成できるので、 PDF作成用のHDCさえ作れれば、Acrobatなどに依存せずに、 今の処理でPDFを作成できるんじゃないかと思った次第です。 もちろん、プリンタのHDCに描画する処理とは別に、 PDFを作成する処理を新たに作れば可能なんでしょうけど、 今の印刷結果と一致させるもの大変そうだと思いました。
504 名前:デフォルトの名無しさん mailto:sage [2018/07/18(水) 09:30:56.80 ID:XytxFrpz.net] HDC→bmp→手書きPDFの調子で画像埋め込みpdf生成 これで終わり。1日あればできるでしょw
505 名前:デフォルトの名無しさん mailto:sage [2018/07/18(水) 09:32:44.92 ID:b6TTATjh.net] >>496 説明不足ですいません。 それだと文字がコピーできなくなってしまいます。
506 名前:デフォルトの名無しさん mailto:sage [2018/07/18(水) 10:32:30.08 ID:w8OpeSfX.net] >>469 じゃぁそう書けばいいじゃん
507 名前:デフォルトの名無しさん mailto:sage [2018/07/18(水) 10:35:38.58 ID:w8OpeSfX.net] >>497 まさにここに>>471 の実例がw
508 名前:デフォルトの名無しさん mailto:sage [2018/07/18(水) 10:49:35.82 ID:XytxFrpz.net] HDCをDLLから作れないと思う。プリンタドライバ入れないと無理じゃないかな それでもプリンタドライバを入れたくない&HDC使いたいってなら、手書きPDFしかないと思う HDC使う処理を全てフックして手書きPDF処理に渡して生成 フォントは埋め込めるし、当然座標指定もできるから見た目を合わせるのは難しいことじゃない
509 名前:さまよえる蟻人間 mailto:sage [2018/07/18(水) 11:39:33.38 ID:2uaoDzyj.net] https://www.colorpilot.com/emf2pdfsdk.html
510 名前:デフォルトの名無しさん [2018/07/18(水) 17:17:05.71 ID:r2tNZQmN.net] EMFがPDFになってもうれしくないんだよな
511 名前:デフォルトの名無しさん mailto:sage [2018/07/18(水) 19:00:09.03 ID:1yGq4zZr.net] 嬉しいとか悲しいという感情はしまい込め
512 名前:さまよえる蟻人間 mailto:sage [2018/07/18(水) 19:44:08.79 ID:IL3iPWys.net] EM_DOCUMENT_AddPageFromMetaHandleというメソッドがあるみたいだから試してみては。 $4995-が高いかどうかは自分で考えな。 https://github.com/sybrexsys/VersyPDF というものもある。
513 名前:さまよえる蟻人間 mailto:sage [2018/07/18(水) 21:34:56.01 ID:2uaoDzyj.net] プロプロイエタリっぽいな。日本人にはまだ未踏の分野みたいだ。
514 名前:デフォルトの名無しさん mailto:sage [2018/07/21(土) 18:28:47.97 ID:TBQGTmI1.net] IE(11)のタブってspy++で見ると、タブコントロールじゃないように見えるけど これ自前かな? タブの入れ替えの時も、タブがするすると動いて入れ替わる動作だし これってタブコントロールだと無理だよね? 基本的に、IE,Edge,Chrome,Firefox,Opera,Vivaldi等のブラウザのタブって タブコントロールじゃなくて、自前で描画しているのかな?
515 名前:デフォルトの名無しさん mailto:sage [2018/07/21(土) 22:53:51.14 ID:diLgD0pr.net] 基本的に自前だよ
516 名前:デフォルトの名無しさん [2018/07/22(日) 17:11:05.29 ID:0LoJ4eZK.net] char *p = "hello"; を書くと、「型 const char * の値を使用して型 char * のエンティティを初期化することはできません 」 と表示されるんだが、どうすればいいんだ? CQ出版社の『Win32 API完璧マスタ』189ページにも書いてある構文なのに・・・
517 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:13:16.23 ID:Xbb1Ck+x.net] スレタイ
518 名前:デフォルトの名無しさん [2018/07/22(日) 17:14:28.87 ID:LiIRy0eu.net] char q[] = "hello"; char *p = q;
519 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:14:46.72 ID:V5NblbDe.net] そんなのはCスレで聞けよ char p[] = "hello";
520 名前:デフォルトの名無しさん [2018/07/22(日) 17:15:10.69 ID:LiIRy0eu.net] こうか char q[] = "hello"; char *p = (char *)q;
521 名前:デフォルトの名無しさん [2018/07/22(日) 17:20:17.81 ID:0LoJ4eZK.net] これをTextOutしたいんだが・・・ TextOut(hdc,10,10, p, strlen(p) ); と書いてもエラーになってしまうし、 pをqに変えてもエラーが出る
522 名前:デフォルトの名無しさん [2018/07/22(日) 17:26:49.45 ID:0LoJ4eZK.net] >>513 「型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません BOOL TextOutW(HDC,int,intLPCWSTR,)int: 引数 4 を char[6] から LPCWSTR へ変換できません。」 って出てしまう。 CQ出版社の本には、 「TextOut(ps.hdc,10,10, p, strlen(p) ); 」って書いてあるのに。
523 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:27:01.83 ID:+kDBWEhy.net] >>513 >508のエラーなのか TextOut のエラーなのか
524 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:29:03.13 ID:+kDBWEhy.net] あー、面倒なので正確には調べないが、文字コードセットかソースファイルのコードを調べて 全部マルチバイト文字にでも統一すれ
525 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:30:27.51 ID:V5NblbDe.net] コンパイラのオプションでユニコードを使うを無効化しろ もしくはTCHARとかTextOutWとかTextOutAとかその辺でぐぐれ
526 名前:デフォルトの名無しさん [2018/07/22(日) 17:33:51.95 ID:0LoJ4eZK.net] >>515 TextOutの際に、いちいち TextOut(hdc, 10, 10, TEXT("hello"), 5); と文字列と字数を毎回入力したくないし、 表示文字を"good morning"とか "good bye" とか違う字数の文字列にも置き換えたいんだ。 だから、変数を使って文字列をpとかqとかに置き換えたいんだけど、そこで 型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません 」 とかのエラーが出てしまう。
527 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:36:00.67 ID:V5NblbDe.net] charは1バイト文字の型 LPCWSTRは2バイト文字の型 ものが違うんだよ ってかwin32の本ならそのくらい書いてあるだろ。もし書いてないならゴミだから捨てろw
528 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:38:56.62 ID:2bRdLxLs.net] TCHAR p[] = TEXT("hello"); TextOut(hdc, 10, 10, p ,lstrlen(p));
529 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 17:45:11.99 ID:2bRdLxLs.net] >>518 後から文字列を変更するのであれば、初期化の時に配列の要素数に注意 #define MAX_LENGTH 256; // 要素数に注意 TCHAR p[MAX_LENGTH] = TEXT("hello");
530 名前:デフォルトの名無しさん [2018/07/22(日) 17:55:50.38 ID:SZ8yn981.net] >>516-517 今から覚える人に非推奨のMBCS版を勧めるのはどうかと。 VSでも2015辺りからMBCS版のバグを治さず放置してたりするのだし。
531 名前:デフォルトの名無しさん [2018/07/22(日) 18:02:40.99 ID:0LoJ4eZK.net] 「TCHAR p[MAX_LENGTH] = TEXT("hello");」 で「式が必要です」ってエラーが出てしまうし。 「TCHAR p[256] = TEXT("hello");」って直接に数値指定するとエラーメッセージが消えるから、 なんかdefineが働いてないっぽい
532 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:09:58.01 ID:lnBo9wWY.net] >>521 「256」の後の「;」は不要
533 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:17:18.42 ID:2bRdLxLs.net] >>523 すまんね 流石に気付くだろうと思って黙ってたけど、define文の末尾にうっかり余計なセミコロン付けてしまっているので注意してね とりあえずいまどきの環境なら、charはTCHAR、char *はLPTSTR、const char *はLPCTSTRを使い、リテラルはTEXTマクロで囲って 文字列操作関数はl付きの関数strlenならlstrlen、strcpyならlstrcmpなどに置き換えればほとんど問題はないよ
534 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:18:05.39 ID:2bRdLxLs.net] 被った、 指摘ありがとう>>524
535 名前:デフォルトの名無しさん [2018/07/22(日) 18:19:49.25 ID:0LoJ4eZK.net] いろいろと教えてもらい、スレの皆様、ありがとうございます。 自分、最終的にゲームっぽいのを作りたくって、 それで会話メッセージが何百個もあるから、どうしても文字列を変数にする必要があるんです。 エラーコード↓です。 「 TCHAR p[256] = TEXT("hello"); TextOut(hdc, 10, 10, p, lstrlen(p)); p = TEXT("good morning"); TextOut(hdc, 30, 30, p, lstrlen(p)); 」 こんな感じで、1つのpを使いまわしたいんです。 strcpyかとも思ったんですけど、「strcpy(p, TEXT("good morning") );」でも 「char*のパラメーターと互換性がありません」ってエラーが出て、なんか違いそうだし・・・ ググッても、Win32APIで1つの文字列変数を複数の文字列に何度も書き換える事例が見つからなくて、困ってます。
536 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:20:26.15 ID:2bRdLxLs.net] >>525 でstrcpyとstrcmpがごっちゃになってた、訂正
537 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:20:35.42 ID:V5NblbDe.net] >>522 でもなこのレベルだとstrcpyすらできずに詰むぞw
538 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:24:33.44 ID:2bRdLxLs.net] >>527 多分 lstrcpy でいける
539 名前: mailto:sage [2018/07/22(日) 18:26:03.58 ID:+jM3tBOE.net] >>527 私なら(char *) にキャストしてしまいますね…これは悪手ですが
540 名前:デフォルトの名無しさん [2018/07/22(日) 18:26:33.56 ID:0LoJ4eZK.net] 解決しました!こうですね 「 TCHAR p[MAX_LENGTH] = TEXT("hello"); TextOut(hdc, 10, 10, p, lstrlen(p)); lstrcpy(p, TEXT("good morning") ); TextOut(hdc, 30, 30, p, lstrlen(p)); 」 じぶん "lstrcpy" の存在を知りませんでした。 買ってたCQ出版社の本が2001年の本で古くって、 それで、ここら辺の話題が見当たらなくって、地元書店にWin32APIの本が無くって、 困ってました。月曜日に、銀行からカネを引き出して、都会の本屋に買い物に行こうかと思ってたところです。 質問に回答してくださった皆様、ありがとうございます。
541 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:26:39.79 ID:lnBo9wWY.net] >>527 中身を直接書き換えないならLPCTSTRで十分 LPCTSTR p = TEXT("hello"); p = TEXT("good morning");
542 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:36:11.82 ID:2bRdLxLs.net] >>533 LPTSTRなら可能だけどLPCTSTRだと無理じゃないかな
543 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 18:57:59.75 ID:Xbb1Ck+x.net] なぜ?
544 名前:デフォルトの名無しさん [2018/07/22(日) 19:17:54.18 ID:LiIRy0eu.net] >>513 TextOutA使え お前にTextOut/TextOutWはまだ早い
545 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 19:47:40.34 ID:lnBo9wWY.net] >>534 無理と決め付ける前に、まずは試してみるべきじゃないかな。
546 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 19:49:56.11 ID:Rc8bc+T5.net] >>507 やっぱり自前ですか。 ベースにコモンコントロールのタブコントロール使ってるかと思ったら どのブラウザも完全にオリジナルのタブコントロールを作ってる みたいなんですよね。 これだけで一仕事だ、せめて手を抜く方法が無いものか。
547 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 20:07:22.02 ID:V5NblbDe.net] コモンコントロールでつくりゃいい 何も真似することないでしょ
548 名前:デフォルトの名無しさん mailto:sage [2018/07/25(水) 12:14:32.39 ID:ObNghvXR.net] >>508 レスをつけてたここの住人はある意味、意地悪だなw 508よ、VS2017とか使ってるなら、プロジェクトのプロパティから、 構成プロパティ -> C/C++ -> 言語 の画面に、準拠モードという項目があるので、準拠モードをオフにしてみろ。 コンパイラが悪さしているだけだw たとえば、準拠モードONだとこのコードは、こんなエラーになる。オフなら無事コンパイルできる。 #include <stdio.h> int main(){ char *p = "hoge\n"; printf(p); return 0; } 1>------ ビルド開始: プロジェクト: test0001, 構成: Debug Win32 ------ 1>test0001.cpp 1>d:\test0001\test0001\test0001.cpp(3): error C2440: '初期化中': 'const char [6]' から 'char *' に変換できません。 1>d:\test0001\test0001\test0001.cpp(3): note: 文字列リテラルからの変換では const 修飾子が失われます (/Zc:strictStrings を参照) 1>プロジェクト "test0001.vcxproj" のビルドが終了しました -- 失敗。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
549 名前:デフォルトの名無しさん [2018/07/25(水) 12:16:39.87 ID:SfO6vmHU.net] >コンパイラが悪さ 最低だなこいつ
550 名前:540 mailto:sage [2018/07/25(水) 12:19:48.04 ID:ObNghvXR.net] マルチバイト文字の設定しろって書き忘れた。 構成プロパティ -> 全般 -> 文字セット マルチバイト文字セットを使用する の項目をセットしておけ。 古い本ベースで作るならそっちで十分だ。 慣れて来たらunicode文字セットにしてwchar_tとか使えばいいよ。
551 名前:デフォルトの名無しさん mailto:sage [2018/07/25(水) 12:21:31.72 ID:ObNghvXR.net] >>541 本読んでる初心者相手に、難しいこと言って混乱させるよりはいいだろう。 まずは動くようにするのが先じゃね?w
552 名前:デフォルトの名無しさん mailto:sage [2018/07/25(水) 12:42:55.89 ID:BhmZZaV3.net] コンパイラとか言う野郎最悪だな そんなもんに頼むなよ
553 名前:デフォルトの名無しさん mailto:sage [2018/07/25(水) 13:07:44.22 ID:yh3zla7+.net] だな ハンドアセンブルとかハンドコンパイルしろ
554 名前:デフォルトの名無しさん mailto:sage [2018/07/25(水) 13:11:46.60 ID:ufwVuEFI.net] https://www.suruga-ya.jp/database/pics/game/978050199.jpg
555 名前:デフォルトの名無しさん mailto:sage [2018/07/25(水) 13:15:34.98 ID:bHme1j3N.net] >>542 意地悪も何も、そのレスをとっくにしとるんだが
556 名前: mailto:sage [2018/07/25(水) 19:02:54.19 ID:2d5RfbzO.net] cygwin/mingw-gcc で文句がでなければ、ほぼ問題ない、としています
557 名前:デフォルトの名無しさん mailto:sage [2018/08/06(月) 21:23:32.62 ID:CcPxoO2Y.net] 成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPIって何なんだよクソ野郎め
558 名前:デフォルトの名無しさん mailto:sage [2018/08/06(月) 21:32:35.68 ID:1U9qnNco.net] getlasterror
559 名前:デフォルトの名無しさん mailto:sage [2018/08/06(月) 21:52:26.61 ID:ID4O2Vgr.net] もちろんそんなの知ってるけど、GoがWindows API用に生成してくれるコードが返り値をチェックしちゃっててしばらくハマった
560 名前:デフォルトの名無しさん mailto:sage [2018/08/06(月) 23:33:15.82 ID:rktgM2el.net] >成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPI ちなみにどのAPI?
561 名前:デフォルトの名無しさん mailto:sage [2018/08/06(月) 23:58:21.60 ID:ID4O2Vgr.net] GetClassLongPtrとか
562 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 00:48:58.54 ID:QZJ4WUVF.net] Goがクソなだけじゃん リファレンス読んでコード生成しろよバーカ
563 名前:デフォルトの名無しさん [2018/08/07(火) 05:00:55.97 ID:OlmXtX1U.net] >>549-550 「失敗が返って来たときは関数を呼びます」 だっけ
564 名前:デフォルトの名無しさん [2018/08/07(火) 13:27:12.44 ID:ldpX++7o.net] >>549 「失敗したら0を返します」の対偶は「非ゼロが返ったら成功している」だ。 「成功したら非ゼロを返す」ではない これが分からない人には if文は書けない
565 名前:デフォルトの名無しさん [2018/08/07(火) 14:31:10.43 ID:AJOeK/rw.net] >関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。 これな
566 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:06:57.68 ID:BoePinTI.net] >>557 >>拡張エラー情報を取得するには、 関数を使います。 これがわからない人には、プログラムは書けない
567 名前:デフォルトの名無しさん [2018/08/07(火) 21:15:30.99 ID:vzugDPjm.net] >>554-555 >リファレンス読んでコード生成しろよバーカ >失敗が返って来たときは関数を呼びます しばしば、動詞の主語がないせいで誰が対象なのか、わからないことが多い。 バカなのは誰なのか。 関数を呼ぶのは誰なのか、関数が関数を勝手に呼んでくれるのか。 的な。
568 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 21:19:02.18 ID:+HmVRhEr.net] 馬鹿なのは読み手に決まってるだろww
569 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:23:50.41 ID:ca/GX3OS.net] まさかと思うけど英語読めないとか? 戻り値 関数が成功すると、要求した値が返ります。 関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。 https://msdn.microsoft.com/ja-jp/library/cc364638.aspx Return value Type: ULONG_PTR If the function succeeds, the return value is the requested value. If the function fails, the return value is zero. To get extended error information, call GetLastError. https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms633581(v=vs.85).aspx
570 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:39:40.91 ID:95G7jtf/.net] 訳が全然ちげぇ、ってネタだろ。
571 名前:デフォルトの名無しさん mailto:sage [2018/08/07(火) 23:44:38.95 ID:JmB8aria.net] う〜ん 実に使いにくい
572 名前:さまよえる蟻人間 mailto:sage [2018/08/07(火) 23:55:05.37 ID:p+v0mQmH.net] ダークサイドの貧乏マは、インターネットのどこかにWin*2 Pr*gramm*rs' Refer*nceというヘルプファイルがあるから、別に。。。まあ、できる奴はサプスクリプションをイッチャッテ。
573 名前:デフォルトの名無しさん [2018/08/08(水) 04:44:16.55 ID:XhOfYtOw.net] >>561 このひどい訳文はテンプレのようになってて このGetClassLongPtr()の例だけじゃなく Win32APIのいたるところで見るんだが ほんとうにやめてほしい
574 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 05:30:57.38 ID:pP5XdYnX.net] >>562 , >>565 訳が酷いと言うよりなぜかわからんが関数名(GetLastError)が無くなってるって話だろ
575 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 07:00:27.96 ID:EhLv0UZk.net] もう慣れたわ
576 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 08:05:04.95 ID:ApshsMT9.net] GetClassLongPtrのように値だけ返すやつは、失敗時ややこしいってのはAPIに限ったことじゃなく関数作ったことあればだれでも知ってること MSDNの日本語ページはの罠は無数にあるから少しでもWindowsプログラミングしたことあれば英語ペ
577 名前:[ジ見ることになる どっちも超初心者じゃないとひっかからない罠 昨日のニュース 日本国内でのプログラミング言語別の年収ランキング、中央値1位は「Go」 http://www.itmedia.co.jp/news/articles/1808/07/news087.html [] [ここ壊れてます]
578 名前:デフォルトの名無しさん [2018/08/08(水) 16:43:15.25 ID:QemCzjVB.net] >>566 それを訳がひどいって言うんだよ
579 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 16:56:08.84 ID:T8cc5IXv.net] みんな間抜けなんでマジレスするけど、SetLastError(0)でクリアしてから呼ばないと、成功したのか失敗したのかわからん仕様です。
580 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 17:43:49.45 ID:jbuaovom.net] >>569 周回遅れ乙 >>570 みんなそんなことは分かってるだろ 普通に考えたら失敗/成功をBOOLで返して取得した値はポインタ経由で返せばいいのに って思ってる人は多いと思う
581 名前:デフォルトの名無しさん mailto:sage [2018/08/08(水) 19:26:41.46 ID:9aI0uHWQ.net] ぬるぽ
582 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 00:27:06.52 ID:MXmSxQHh.net] >>566 これを見るたびに何でどうしたらこんなことになるのかと考え込んで作業が中断してしまうのだ
583 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 07:49:06.09 ID:J6jQGTXX.net] 開発が遅れるわけだw
584 名前:デフォルトの名無しさん mailto:sage [2018/08/11(土) 13:45:31.92 ID:VJAxUjoq.net] 悟ってお仕事
585 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 22:27:48.51 ID:hCHxCnaA.net] スナップできるのはどういうウィンドウかあるいはどういう条件なのか、具体的な要件の一覧ってどこかで見られますか。 自作デスクトップアプリケーションのウィンドウがスナップ機能の対象になってないことに気づいて、少しプログラムをいじってみたところ すぐにウィンドウスタイルによってスナップ機能が働かないことがあるのはわかりました。 具体的にはWS_MAXIMIZEBOXが無いとスナップできません。 で、他のスタイルやスタイル以外の条件もあるかもしれないと思い、 まずはウィンドウスタイルとスナップの関係性から調べてみましたがスナップ機能の条件についての情報は見つけられませんでした。 よろしくお願いします。
586 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 23:19:58.10 ID:yNz2G80b.net] スナップなんてOSの設定で最初に切る項目だぞ 気にするな
587 名前:デフォルトの名無しさん [2018/08/24(金) 12:24:54.13 ID:ZVlysGry.net] ダイアログにすればいい
588 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:28:22.65 ID:NFTQhSIK.net] ついでに質問だけど win10あたりからウィンドウの枠のちょっと外まで(影なしにしてても) ウィンドウのリサイズとかマウスアイコン⇔の判定に使われてるみたいで ウィンドウの下のウィンドウを上にもって来たくてクリックしたつもりが 違うウィンドウが上に来てしまうことが多くて困ってる これなんとかする設定どこにある?
589 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 12:54:56.78 ID:9pgk/rrF.net] このスレ的な解決だとFrameRectをフックして少し大きめの枠に変えちゃえばいいのかな
590 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 13:35:47.85 ID:C22mUEBr.net] > 具体的にはWS_MAXIMIZEBOXが無いとスナップできません。 win7 WS_MAXIMIZEBOXなしのタイトルバーをマウスでつまんで desktopの上辺に移動してマウスを放すと、 タイトルバーが完全に表示されるように再移動される これもsnapではないのか
591 名前:デフォルトの名無しさん mailto:sage [2018/08/24(金) 16:58:34.94 ID:71ZOGqZF.net] >>581 そうですね。即席で調べただけなので見落としてました。 いずれにせよ、スナップ操作時にどういったウィンドウならばどういう作用が起こるのか、 逆に特定のスナップの効果が欲しい場合にどういうウィンドウをセットアップすればよいのか みたいなことがわかる情報を探しています。
592 名前:デフォルトの名無しさん mailto:sage [2018/08/27(月) 20:05:43.05 ID:vbuO7hMr.net] 片山の取り巻きは帰れ
593 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 18:50:20.34 ID:K0zx4BAG.net] 実行中のGUIアプリケーションのコントロールを取得して表示させたいのですが良い方法はありますか?
594 名前:デフォルトの名無しさん mailto:sage [2018/08/28(火) 22:31:26.44 ID:CqD+kceR.net] spyのソースを読むべし
595 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 06:13:37.68 ID:bvggge1h.net] hwnd検索するだけの質問だったのか てっきりインジェクトして中身奪い取るとかそんなのかと思ったわww
596 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 06:56:51.37 ID:/uFmfA/d.net] そっちならAppInit_DLLsの勉強しなされ ってのが回答かな
597 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 07:15:50.54 ID:bvggge1h.net] 難しいのはインジェクトの先だから・・・
598 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 08:38:47.27 ID:SgdWV5FD.net] 悪用出来るからこの先は自分でお勉強
599 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 09:10:27.86 ID:eKXrV34J.net] >>589 素直にわからないって言えよ >>588 の「先」は、「自分のプロセスに貼ったコントロールを、そのまま残しつつさらに別プロセスのウインドウに貼り付けて表示する」ということだからな
600 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 09:13:57.66 ID:/ngMaME6.net] >>590 なんでそんなことするのか全然わからん。 >そのまま残しつつ >貼り付けて
601 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 09:29:45.16 ID:eKXrV34J.net] >>591 >>584 がもしも>>586 ならそうなるでしょ
602 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 10:17:28.09 ID:X/yLq4q6.net] そのまま残してんなら奪ってないやん
603 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 10:41:34.94 ID:eKXrV34J.net] >>593 飽きれるほどくだらない揚げ足取りだな 「パスワードを奪い取る」の考えてみろ。残さないとは限らないんだよ
604 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 11:02:53.78 ID:X/yLq4q6.net] >>594 飽きれるほど下手な例えだな パスワードは残さないと使えないだろ
605 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 11:13:44.40 ID:7geB3Ftq.net] パスワードはいただいた 返して欲しければ1BC用意しろ
606 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 12:00:14.20 ID:X/yLq4q6.net] いただいた(変更した)
607 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 12:09:36.88 ID:/ngMaME6.net] 入力するパスワードを勝手に変えたら駄目じゃん
608 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 14:19:35.46 ID:X/yLq4q6.net] パスワード変えずに「パスワードはいただいた」って? それ何の脅しにもならんやん 元の持ち主が別のに変更して終わり
609 名前: [] [ここ壊れてます]
610 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 14:37:13.57 ID:7geB3Ftq.net] せっかくギャグを入れてやったのにしょうもねえ奴ら
611 名前:デフォルトの名無しさん mailto:sage [2018/08/29(水) 22:37:19.40 ID:/ngMaME6.net] え?おもしろいとでも思ってたの? もしかして渾身のギャグなの? 恥ずかしくないの?
612 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 10:17:52.45 ID:Z5Fjo3b4.net] 程度が同じじゃないとジョークは通じないらしい ただ今回はガキとバカだからどちらも等しく低いように見えるな
613 名前:デフォルトの名無しさん mailto:sage [2018/08/30(木) 10:23:06.98 ID:53NSE4xw.net] 謎の上から目線
614 名前:デフォルトの名無しさん [2018/08/31(金) 04:18:44.69 ID:kx4Z958G.net] 昔のゲームのコードを弄ってて困った事があります。 ウィンドウの大きさを変えると一緒に表示中の画面も引き延ばされるのですが 引き延ばされた時に粗くなって美しくないです。内部のバッファをウィンドウを最大化された時の大きさで確保しておき ゲームの処理の方でフィルタ処理を施せば上手く行きますが出来れば小さいバッファのままで ウィンドウのリサイズ時にAPI側でフィルタ処理できないでしょうか? あと気になるのが環境によっては上記の処理を勝手にやってくれている環境もあります(ディスプレイドライバによるのかもしれません)。 出来れば確実にこちらで処理できるようになれば嬉しいです。
615 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 06:25:35.68 ID:u3E//DdP.net] >>604 普通、WM_SIZEの都度ゲームのフレームバッファを再作成するもんじゃねえの?
616 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 06:50:31.93 ID:kx4Z958G.net] >>605 出来ればバッファの大きさは固定で行きたいんです。 最大化された時にいかにも拡大してフィルタリングされた感じを出したいので。 環境によってはウィンドウがリサイズされると勝手にフィルタリングしてくれて ぼやっとした画面になるので出来ればそれを確実にやりたい感じです。 何か設定でもあるんでしょうか。OSの設定としてあるならそれを知りたいです。
617 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 07:13:40.06 ID:wCA0c3fj.net] SetStretchBltMode
618 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 18:32:30.98 ID:kx4Z958G.net] >>607 良さげですね!試してみます。ありがとうございます。
619 名前:608 mailto:sage [2018/08/31(金) 20:11:53.40 ID:kx4Z958G.net] どのタイミングでStreachBltを呼び出してるのかわからない… ウィンドウを制御するクラスの中のWM_PAINTは空だし。 初期化時にDirectXのAPIにhWndを渡してるので勝手にDirectX内部で呼び出してるのかな? リサイズされた時にhWndを元にHDC作ってそこでStreachBltとか。その後HDC破棄みたいな。 そうなると手出しできないってこと?
620 名前:デフォルトの名無しさん mailto:608 [2018/08/31(金) 20:17:23.84 ID:kx4Z958G.net] それともウィンドウ作成時のスタイル設定などで リサイズに合わせてスケーリングをどうするのかみたいな設定があるのかな。 それだとそこの設定でどうにかなりそうな気もするけどよく分からない。 ちなみにウィンドウ制御クラスの中のWM_PAINTでは動画などのスケーリングは自前でやってた。 なので少なくともWM_PAINTの中では自分でウィンドウ内部の他の表示のスケーリングはやってない。
621 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 20:46:55.45 ID:kx4Z958G.net] ここ見たらたぶん同じような症状で困ってた人がいて dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=past&no=1506 基本的に手出しができず綺麗に拡大されるかはドライバによるという事らしい… え〜やだやだ〜 納得できない。やっすいPCでも綺麗に拡大されてるのに 家の高いPC(ドライバも新しい)で汚いなんて納得できないよ〜!
622 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:07:44.36 ID:pOoITzWx.net] > 現状ではコーラさんがお書き込みになられた方法しかありません あるって書いてあるじゃn
623 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:22:40.36 ID:kx4Z958G.net] >>612 うん。そうだけど、たっかいグラボ積んでる家のマシンで汚く表示されて やっすい3万くらいのPCで綺麗に表示されるのが納得いかないの。
624 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:23:46.62 ID:kx4Z958G.net] >>612 あ、ごめん見間違った。 方法はあるんだけどバッファの大きさは固定でやりたいの。
625 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:31:04.55 ID:pOoITzWx.net] だからバッファ固定でできるって
626 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:32:44.33 ID:LcHwdHfr.net] なんか意味不明な質問だなと思ったら、それWin32じゃなくてDXライブラリとかいう よくわからんライブラリの話やん。
627 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:33:51.55 ID:kx4Z958G.net] 拡大した時に粗くなる→最初から内部のバッファの解像度を上げておけばよくね? ってのはナシで。 あくまでも内部のバッファの大きさは今のままでウィンドウが拡大された時に 勝手にドライバがやる部分をどうにかしたい。けど無理そうだね… 納得いかないのは、やっすいPCでは綺麗に表示されてるのに たっかいPCで汚く表示されてしまうこと… 逆なら納得したのにこれはないよな〜
628 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:35:25.97 ID:kx4Z958G.net] >>616 いやDXライブラリでも制御できない部分なので Win32APIの方でなんとかならないのかなと思って。でも無理なのかな。 ここの人ならなんか解決法わかるかなと思ってたけど。
629 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:44:49.09 ID:pOoITzWx.net] win32でやるならSetStretchBltMode おまえがやるべきなのは小さい画面サイズのでいいからそのDCを取り出すこと それしたらあとは表示するだけ
630 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 21:50:44.31 ID:kx4Z958G.net] >>619 要するにそれは内部バッファのHDCを取り出して SetStretchBltModeを設定し、その後ウィンドウのクライアント領域に自前で StretchBltで描画しろってことになるかな?まあそれしかないのかやっぱ。
631 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 22:41:05.39 ID:kx4Z958G.net] さすがに自前でやったらGDI+使っても速度が全然でなかった(毎フレーム描画しないといけないので)。 諦めます〜
632 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 22:47:15.40 ID:u3E//DdP.net] なんか基本的な部分から盛大に勘違いしてそうだな Direct3D使ってるならドライバ依存になるのはスワップチェインのバックバッファが ターゲットウィンドウのサイズとかみ合わない場合に Presentの呼び出しでウィンドウにフィットするように自動でスケーリングされる部分だ ドライバ依存の挙動を回避したいならバックバッファをウィンドウに合わせてリサイズするのは必須なの 逆に、バックバッファの解像度をゲームの解像度と考える必要も無い バックバッファがどんなサイズであれゲーム自体は固定サイズのレンダーターゲット用テクスチャにレンダリングし バックバッファへはそのテクスチャをスプライトとして張り付けるだけ 拡縮フィルタリングをニアレストにするのもバイリニアにするのもアプリでしっかり管理できる なんならシェーダでLanczosにしても良い
633 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 23:02:05.30 ID:GkpBxwA9.net] せっかく諦めたのに
634 名前:デフォルトの名無しさん mailto:sage [2018/08/31(金) 23:19:59.47 ID:kx4Z958G.net] >>622 なるほど〜バッファをリサイズしないと必ずドライバ依存のスケーリングになってしまうってことね。 その辺りをもうちょい考えてどう対処するか検討してみるよ。ありがとう。 >>623 まだまだ諦めんぜえ〜ww
635 名前:デフォルトの名無しさん [2018/08/31(金) 23:25:09.45 ID:N52+Kto5.net] 野菜の日
636 名前:デフォルトの名無しさん [2018/09/04(火) 23:00:53.53 ID:g1EQF691.net] CreateFile()で取得したハンドルをGetMailslotInfo()に渡していいものでしょうか? CreateFile()の第1引数には、別プロセスでCreateMailslot()したときの第1引数と同じ です。
637 名前:デフォルトの名無しさん mailto:sage [2018/09/05(水) 08:35:25.55 ID:w5sEnOXo.net] 流石にmsdn見ろとしか
638 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 18:23:25.15 ID:BIMPuBeq.net] リストビューでマウスドラッグで範囲選択をしているとき、 その選択範囲の矩形座標を取得する仕組みは無いのでしょうか。 範囲選択開始時のLVN_MARQUEEBEGINしか見つからないのですが。
639 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:00:23.19 ID:OkuzM4NB.net] メインウィンドウのメッセージループからマウス系イベント拾ってくるのが楽で良い
640 名前:デフォルトの名無しさん [2018/10/18(木) 16:38:48.09 ID:rfYW9BA4.net] AVIStreamGetFrameOpenというAPIで「MPEG-4 Visual (XviD)」で 圧縮されたaviファイルを開きたいのですが可能でしょうか? また上記が無理なら無圧縮以外の何かでエンコードされたものを 開きたいのですが何だったら可能なのかも教えてもらえないでしょうか? AVIStreamGetFrameOpenは、2番目の引数にAVIGETFRAMEF_BESTDISPLAYFMTを指定すれば 完全な無圧縮以外でYUY2だけはいけました。
641 名前:630 mailto:sage [2018/10/18(木) 17:40:26.75 ID:rfYW9BA4.net] 調べていたらコーデックというのはAVIStreamGetFrameOpenで使用されたような古い形式と メディアプレイヤーで使用されてるような新しい形式があるようですね… つまりこの古いAPIだとそれように提供されているコーデックを探してインストールしないといけないという事になるでしょうか? 新しい形式を利用するプログラムを作った方がいいような気がしてきました。
642 名前:630 mailto:sage [2018/10/18(木) 18:23:13.79 ID:rfYW9BA4.net] 確かにVideo for Windows用のコーデックを探してきてインストールすれば動くようになりました。 解決はしたのですが他のPCでもその都度これをインストールしないといけないってのがどうも…
643 名前:デフォルトの名無しさん mailto:sage [2018/10/18(木) 18:34:46.06 ID:LsEafRqd.net] そりゃコーデックのインストールは必須だよ 自前実装するとかなら別だけど
644 名前:デフォルトの名無しさん mailto:sage [2018/10/18(木) 18:57:16.36 ID:rfYW9BA4.net] >>633 ただ新しいタイプの方(DirectShow)の方はメディアプレイヤーとかも入ってるので デフォルトでも結構動きそうなのでそこがいいなと。 初回のプログラム起動時にコーデック用dllだけシステムフォルダに突っ込んでもいいのかな…
645 名前:デフォルトの名無しさん [2018/10/19(金) 12:08:49.41 ID:jQ8EJjtV.net] >>632 ffmpeg
646 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 17:30:46.21 ID:HIw2KJmH.net] ところでMacとかだと64bit化で32bit打ち切りの方向みたいだけど、Winはまだまだ32bitもサポートしてくれるよね?
647 名前:デフォルトの名無しさん mailto:sage [2018/10/19(金) 19:13:40.82 ID:HIw2KJmH.net] 今のって64bit環境でエミュレーションしてるんだっけ?だから基本的にはずっと維持されるのかな?
648 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 11:06:47.52 ID:6LBMAo3K.net] WOW64だけ終了させるのは考えにくいね。 32bit過去資産を切り捨てるメリットが当面無い。 32bitって、一般的なアプリだけなら切る方向に動くのもあり得る話だけど、 工業系で周辺ハードウェアを制御するのに32bitドライバとか組み込んでて 不思議じゃないので簡単に切れるレベルじゃないかと。 ARM系なんか採用してたらムリじゃね。 128bitOSが出てきたときにようやく切るようになるんじゃないかな。 Macはそんな環境で動いているケースはほとんどないから問題ない気がする。
649 名前: mailto:sage [2018/10/20(土) 11:46:35.45 ID:9jkSTDWo.net] >>638 >128bitOS 128ビットアーキテクチャーとか 128ビットOS とかは、ここ30年くらいは現れないのではないでしょうか…
650 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 11:57:36.98 ID:6LBMAo3K.net] 8/16bit全盛時代、64bitを現実的に捉えてた人は居なかったしなあ。 128bitなんて遠い先だと今は思ってても、どうなるか分からんもんよ。
651 名前:デフォルトの名無しさん [2018/10/20(土) 12:18:25.97 ID:u8BRF3D8.net] WOW64←32bit用のフォルダ SYSTEM32←64bit用のフォルダ では128bit化したときはどうなる? WOW64←32bit用のフォルダ WOW128←64bit用のフォルダ SYSTEM32←128bit用のフォルダ こうか?
652 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 12:22:46.95 ID:QqxqMvRx.net] WOW128←32bit用のフォルダ WOW64←64bit用のフォルダ SYSTEM32←128bit用のフォルダ こうなる可能性も悪夢
653 名前:デフォルトの名無しさん [2018/10/20(土) 13:36:52.57 ID:fOofNO0j.net] >>640 8/16bit全盛時代は32bitデスクトップコンピューターが スーパーパソコンと言われることもあったなあ 32bit機なんて夢だった、64bit機なんて遠い未来に 実現するのかなあという感覚
654 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 19:16:09.86 ID:ZcZ7Cx83.net] >>638 そういうところがOSだけ最新なの使っているものなのか? 古いアプリケーションをずっと使っているようなところだとOSも昔のままな気がするけど >>641 その時にはSYSTEM32って名称はやめていると思う んで、64bit以前のアプリケーション互換云々は単純に仮想マシン環境下で動作させればいい 仮想マシン上でも十分な性能を得られるだろうし
655 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 19:42:10.64 ID:LsRLW+LD.net] 128bitは多分こないんじゃないかなw 32bitとか64bitってメモリマッピングの領域の問題なんで 64bitなら4GByte×4GByteまでマッピング出来てしまうので 超絶高速SSDとかできてONメモリのように管理できるように なっても64bit超えないような
656 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 20:09:53.22 ID:zBQrNBwm.net] ドリームキャストは128bitって連呼してたなぁ
657 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 20:18:05.59 ID:wecQHzx8.net] 既にWindowsフォルダ配下はカオスだろ M$よくこんなん管理できんなーと思ってたらやっぱり管理できてなかったみたいだな
658 名前:デフォルトの名無しさん mailto:sage [2018/10/20(土) 21:00:21.96 ID:A+7VUlnR.net] アプリケーション的には 16bits → 64KB 死ぬほど不便 32bits → 4GB 快適 64bits → 16EB 贅沢できる
659 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 02:36:06.52 ID:fpcnU4T3.net] 32bitアプリ使ってる人多いだろうから動かなくなったら苦情がめちゃくちゃ来そう。
660 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 03:23:03.53 ID:C+Apg5Hi.net] >>643 でもその頃、汎用機は32bit機械だったよ? アドレッシングは24bitだったけど。 >>645 AS400は128bitと言ってもいいのでは。 むしろIoTとか言ってコンピュータ側のリーチが伸びてるから 単一レベル記憶で世界を管理しようとしたら、既にある技術で言えば IPv6は128bitだし、既に128bitの世界はきてる気がするよ。
661 名前:デフォルトの名無しさん [2018/10/21(日) 05:03:20.85 ID:5lMyjKAV.net] 既存プロセスのウィンドウhwndに対するファイルのドラッグ&ドロップをマウスエミュレートを使わず実現するにはどうしたらよいですか? 過渡的な視覚効果であるドラッグは必要ないので、実質ドロップだけできればいいとは思うのですが。
662 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 08:15:24.58 ID:S2kctYlU.net] >>649 そもそもVisual Studioが32bitだから32bit打ち切ったら開発できなくなるし w
663 名前:デフォルトの名無しさん [2018/10/21(日) 14:33:56.37 ID:jYu3kmgI.net] >>650 個人が買えるPCの話だよ、その頃はPCで 32Bitアドレッシング24Bitなんて夢だった
664 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 16:15:03.17 ID:/+3u54Rp.net] >>653 XL2でも100万だったけど?
665 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 18:55:34.10 ID:PdeVN0B9.net] > アプリケーション的には > 16bits → 64KB 死ぬほど不便 > 32bits → 4GB 快適 > 64bits → 16EB 贅沢できる 8bitは ?
666 名前: mailto:sage [2018/10/21(日) 18:59:32.77 ID:gNVlu9Yw.net] >>655 >8bitは ? ほとんどの 8 ビットCPU のアドレス空間はすでに 16 ビットだったからなあ…
667 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 19:06:52.55 ID:9MgCOCRf.net] マウントの取り合いになってきたゾ〜
668 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 20:51:33.47 ID:3rYBWp0g.net] >>651 アプリケーション毎にドラッグをどう処理しているか不明だからマウスエミュが確実だと思うけど
669 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:19:33.66 ID:MYahSoZu.net] >>651 ttps://docs.microsoft.com/en-us/windows/desktop/shell/wm-dropfiles
670 名前:デフォルトの名無しさん mailto:sage [2018/10/21(日) 21:43:12.45 ID:CMVET5pn.net] >>655 アドレスが8bitの汎用CPUなんてないんじゃない? 4004でさえアドレスは12bitだそうだ
671 名前:651 [2018/10/22(月) 01:10:30.37 ID:zMz+R4iM.net] >>659 WM_DROPFILEはすでに試して失敗を確認済みです。 ドラッグ&ドロップの具体例をあげるとVisual Studio 2017 にファイルをドロップして開く処理をやりたいのだけど、 GlobalAlloc()、GlobalLock()、GlobalUnlock() などで作ったhDropをPostMessage(WM_DROPFILE)しているのだけど、まったく変化なし。 メモ帳notepad.exeの場合はPostMessage(WM_DROPFILE)で開けたのですが、VS2017と何が違うのやら。
672 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 02:10:39.32 ID:T6zy7H5q.net] WM_DROPFILEの他に、OLE Drag&Dropもあるでよ
673 名前:デフォルトの名無しさん [2018/10/22(月) 12:32:01.71 ID:uugU0jx6.net] PIC のアドレスって何bitだっけ 68xx の memory mapped register とかは 8bit か そもそもどうでもいい
674 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 14:14:29.65 ID:2rAhHCnw.net] >>648 がネタだったらどうでもいいのだが 16bitのWindows3.1でも 1Mを越えるメモリーは使えたし、 32bitのWindowsのアプリケーションのメモリー空間は32bitではないし 64bitのWindowsのアプリケーションのメモリー空間は64bitではない
675 名前:デフォルトの名無しさん [2018/10/22(月) 15:48:26.25 ID:H1W4+XYR.net] アセンブラで書いてるのかω
676 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 18:19:05.88 ID:x0pcGzlw.net] 8bit→16bit 前世代の256倍 16bit→32bit 前世代の65536倍 32bit→64bit 前世代の4294967296倍 64bit→128bit 前世代の18446744073709551616倍 で各時代のジャンプしてる倍数が全然リニアじゃない 128bitは俺らが生きてる間に実現しない
677 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 18:27:51.91 ID:x0pcGzlw.net] つまりは 8bit倍→16bit倍→32bit倍→64bit倍 とくるから だんだん間隔が長くなって正常 64bit(前世代の32bit倍)ですら途方もなくて持て余す(実際48bit)のに 64bit倍なんてのは途方もないものはどうしようもない 永遠に到達しないと思っても問題ないくらいに天文学的数値
678 名前:デフォルトの名無しさん [2018/10/22(月) 18:38:09.95 ID:N4Dlk9u9.net] そうでもない 進化は指数関数的に変化するから
679 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 18:44:02.73 ID:VafFZz5P.net] CPU取り扱いビット数は、なにもメモリー空間だけの問題じゃないと思うが。 なんにしても、ないもの語るのは不毛な話だわ。
680 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 19:04:08.99 ID:+9ubm+fa.net] 64bit増毛
681 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 19:06:40.33 ID:x0pcGzlw.net] CPUのビット数と言ったらやっぱりメモリ空間だろ 俺らに関係する互換性の意味でもさ >>668 bit数が一つ増えると2倍になるが、そのbit数も2倍で増やしていくから 指数関数の指数関数でとんでもない速度で増加する 一方でムーアの法則はただの指数関数だから 割り算すると指数関数が残る というのが>>666-667 の説明
682 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 22:15:29.36 ID:iXt7ySqh.net] さすがに64bitアドレスを使い切ることは無いべ? 下手すると64bit個の原子は目で見えるサイズじゃないか? 2^64=1.8446744e+19 アボガドロ数=6.0221409e+23/1mol 砂粒くらいはありそうだよな?
683 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 22:22:39.79 ID:haEJCmq/.net] みんながそう思ったら、IPv6は128bitにしなかっただろうね :-p
684 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 23:05:44.67 ID:CgLRMpn3.net] 過去からbit数が上がる際にはメモリー空間に限定した話ではなくて 「パフォーマンスが上がる」というまずは大ざっぱな喧伝がなされてた メモリー空間はもちろん広がるが、そんな限定的な事じゃない様々な性能アップ要素で 話がされたもので、今になってメモリー空間だけに絞った話にしかならないのは その話している人の経験や視野が狭すぎるのが原因ではなかろうか
685 名前:デフォルトの名無しさん mailto:sage [2018/10/22(月) 23:08:02.77 ID:1Kkbm3du.net] >>664 アプリケーションの話をしてんだから 8086 死ぬほど不便 あってるじゃん 32bitのWindowsのアプリケーションのメモリー空間は32bitじゃん? 36bit使える?32bitアプリが。
686 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 01:54:45.89 ID:WBybiFHu.net] >>674 80286とi386だと、クロックが同じだと80286の方が速いこともあったよ?
687 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 02:55:48.42 ID:sn2WQhnj.net] アーキテクチャや最適化とかあらゆる要素を全く無視して 一部だけ切り取って主題の否定に終始しておけば勝つから頑張れ
688 名前:664 mailto:sage [2018/10/23(火) 10:09:02.12 ID:GIVzaW28.net] >>675 Windows3.1は8086では動かない 多くの32bit Windowsアプリケーションのメモリー空間は 2G (31bits)
689 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 11:47:28.84 ID:hJha4BQY.net] 何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから ポインタのサイズがいくらになるかが互換性の面で最大限問題なんだよ 互換性の面でな
690 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 11:49:19.92 ID:hJha4BQY.net] しかもここはWin32APIのスレで 128bitのWinAPIはいつ出るかって話だから ポインタのサイズ=メモリ空間のサイズの 話になっていくのは当たり前
691 名前:デフォルトの名無しさん [2018/10/23(火) 12:48:48.94 ID:joSIbJ7d.net] >>675 128bitマシンがあっても FDDだったら死ぬほど不便だな
692 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:26:03.23 ID:WBybiFHu.net] >>681 オンラインストレージもすべてアドレッシングされてるような美来を考えると、 そんなに不便でもないような気も少し。
693 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 15:28:44.02 ID:sn2WQhnj.net] >>679-680 > 何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから プログラムの話でCPUの基本であるアセンブラ・命令セット・レジストリやアーキテクチャなどをすっぱり抜く意味はなんですか。 > 128bitのWinAPIはいつ出るかって話だから >>636-640 「Win32APIのサポートはいつまでか」〜 から、 「128bit CPU・OSが出たら」〜 の話であって、128bitのWinAPIはいつ出るかって話ではありません。 しかし、「128bit CPU・OSが出たら」に対してメモリマップの問題だと言い出したのは>>645 です。 この主張に対して、メモリ限定の話になっているのがおかしいというのが本反論です。 あくまでも「128bit CPU・OSが出たら」が基本の話で、あなたの言う「128bitのWinAPI」は 話の本筋ではありませんし、そもそも話が出ていません。 アドレッシングの話題は話題でやればいいですが、これを論拠に「だから次はない」 なんてのはナンセンスというだけの話です。
694 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:08:56.16 ID:hJha4BQY.net] レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ ただこれとWin32APIは関係ないでしょ? x64が続く限りWin32APIのサポートがずっとあるのは明白だし (あえて命令セットを変える意味がないでしょ・・・何の意味が?) もし変えるとしたら128bit化の時だろうけど まず生きてる間には来ないよねって話でしょ
695 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 16:18:21.83 ID:hJha4BQY.net] ちなみに128bit化に伴って32bitプロセスがサポートされなくなる可能性は有る 何故なら128bitは100年後か1000年後かあるいは永遠に来ないか そのぐらいの未来になったら32bitプロセスはすっかりレガシーになってて サポートする意味が無いかもしれん、わからんがな ただそんな未来は生きてる間に来そうにない、という事で Win32APIのサポートが無くなることはないだろうという事を述べておる
696 名前:デフォルトの名無しさん [2018/10/23(火) 17:00:05.35 ID:yFsvvFWj.net] >生きてる間には来ない 来たらどうするか(どうなるか)って話をしてるんだろ 空気読めないアスペか?
697 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:40:29.64 ID:GIVzaW28.net] I/Oがすべてマッピングされている世界はたぶんたのしい
698 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:47:11.62 ID:POYrFqPG.net] PCIとかはメモリ空間にマッピングされているよね
699 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:55:28.41 ID:hJha4BQY.net] 計算したら来ないし 遠い未来すぎて今と状況が違いすぎるからなんとも 結局は32bitをサポートするかは技術的というより時間的要因とうか周りからの要求で決まるわけで 例えばもし10年後に128bitになるなら32bitをサポートするようにCPUを作るだろうし 100年後だったらもはやレガシーすぎてサポートしないかもだし (その場合はソフトエミュレーションかな) 結局は問題ないだろうということ 俺らが困らないようにしてくれるさ IntelがItaniumを作って広げようとしても、AMDがx86作ってそっちが選ばれたしな 互換が無くなって一番困るのは俺らよりマイクロソフトだから何とかしてくれるのだわ
700 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 17:58:27.40 ID:hJha4BQY.net] ただ、Windowsが無くなればWin32APIも無くなるが。。。
701 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 18:15:44.57 ID:d491RiZs.net] > レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ AVXのときにAVX512なんて絶対来ないとか言ってたか? 次がどうなるとお前が決める事ではない > ただこれとWin32APIは関係ないでしょ? 関係ないからこそWin32APIだけの話題で次があるないを確定づける論拠にするのに意味がない
702 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 19:35:50.85 ID:bNdv7B9n.net] ポインタのサイズが互換性において何の問題が?
703 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 20:21:56.29 ID:tecJ1BiK.net] 32/64だとポインタをDWORDに放り込んで処理してるのとかあるからな
704 名前:デフォルトの名無しさん mailto:sage [2018/10/23(火) 23:44:40.09 ID:volyHHZE.net] window handleとかはx64だと64bit幅だけど、wow64でもそのまま扱えるように32bit内の値しか設定されないとかあるね。
705 名前:687 mailto:sage [2018/10/24(水) 06:38:30.05 ID:UmzQGEnh.net] >>682 が書いているように I/Oの中身がすべてアドレスでとれるようなマッピングのこと 他のPCもまるごとアドレシングされているような世界
706 名前:デフォルトの名無しさん [2018/10/24(水) 11:37:09.95 ID:XOgiiIOy.net] >>692-693 rubyは困りそうω
707 名前:デフォルトの名無しさん [2018/10/24(水) 13:36:44.56 ID:42dinMX8.net] >>696 perl もだよ。 perlでライブラリWin32APIで構造体をマッピングする場合、 構造体のメンバー変数のアラインメントを自力で解決しなければならず、 32bit版と64bit版でオフセットを適切に切り替えるコードが必要。
708 名前: mailto:sage [2018/10/25(木) 00:37:44.65 ID:yGYVJ0zR.net] http://wisdom.sakura.ne.jp/system/
709 名前:デフォルトの名無しさん [2018/10/25(木) 11:37:51.73 ID:5Cy/pQlU.net] えらい古いな っていうか 赤坂玲音 って糞筆者の筆頭じゃねーか QZ って 赤坂玲音 だったのか?
710 名前:デフォルトの名無しさん [2018/10/27(土) 13:09:18.62 ID:NcyVMn+k.net] 今や当たり前のようになった入力補完候補の動的羅列を従来のコンボボックスのドロップダウンリストでやってみた。 作成済みコンボボックスは途中でオーナードローにスタイル変更できないので、毎回リストを再構築することにした。 ドロップダウンリストの再構築に時間がかかっているように見えたので、 試しにリストをSetRedraw(FALSE)で描画せずに再構築したところ、まったく時間がかからなくなった。 リストアイテムに追加していく処理のたびに描画で重くなっていただけだった。 結論: ドロップダウンリストの動的変更はSetRedraw(FALSE)で見かけ上は高速に実行可能。 リスト再構築が終わったらSetRedraw(TRUE)で再び描画できるようにして RedrawWindow() などを呼べばOK。
711 名前:デフォルトの名無しさん [2018/10/27(土) 13:29:57.46 ID:R2aCZi1a.net] おめ子
712 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 03:50:14.50 ID:2tbaDxKB.net] >> 700 SetRedraw スレチ
713 名前:700 [2018/10/28(日) 04:05:03.07 ID:y4CTIPMK.net] >>702 別にMFCの話したかったわけじゃないんだが。 リスト破棄とアイテム追加のたびに描画処理が行われるとどうしてもアイテム更新完了が遅くなる。 オーナードローできない汎用のリストコントロールのアイテム更新はSetRedraw()つまりSendMessage(WM_SETREDRAW)で描画抑止すれば高速実行できる、というのが主旨。
714 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 15:00:14.25 ID:MGLPoTB/.net] >>702 Win32API的には SetWindowRedraw (WM_SETREDRAW) でOK
715 名前:デフォルトの名無しさん [2018/10/28(日) 22:57:05.89 ID:G0OjLYsX.net] >>691 違うって AVXだろうがAVX512だろうがAVX1024だろうが ただの拡張命令だから何がこようがどうでもよいけど ポインタのサイズだけは命令セット全体に影響して互換性の面で問題が出るから プログラマとしてそこが真っ先に気になるのは当たり前だろうよ そんでポインタのサイズが64bitで足りなくなる事は生きてる間には無さそうということと 今現在64bit版のWin32APIのサポートがあることを合わせて考えて Win32APIのサポートの心配するより自分の寿命の心配したほうが良いってことに ただし、将来Windowsが無くなったら知らんが
716 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 23:18:58.18 ID:VktvRbK2.net] AVXとか持ち出した人自身がどうでもいいとか言い出したよ
717 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 23:34:05.53 ID:X0Sl4ey0.net] すみません アナルに今電極を差してみているのですが どのくらいの電圧が人間の限界なのかがよく分かっていません 参考までにお教え願えませんでしょうか?
718 名前:デフォルトの名無しさん mailto:sage [2018/10/28(日) 23:46:07.82 ID:sr3fygGC.net] >>707 今差しているんだろ? 限界になるまで電圧上げてみればいい [] [ここ壊れてます]
720 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 03:39:30.92 ID:syL/ZpQ2.net] 電流か
721 名前:デフォルトの名無しさん [2018/10/29(月) 11:33:26.98 ID:VxCr7qKV.net] >Win32APIのサポートの心配するより自分の寿命の心配したほうが良い どっちも心配
722 名前: mailto:sage [2018/10/29(月) 19:36:35.79 ID:MQrExvvX.net] >>699 >赤坂玲音 って糞筆者の筆頭 kwsk
723 名前:デフォルトの名無しさん mailto:sage [2018/10/29(月) 23:04:33.26 ID:/SfeOL5O.net] 何かプリキュアとか好きそうなイメージ
724 名前:デフォルトの名無しさん [2018/10/30(火) 14:43:24.71 ID:p4LrBCE7.net] 橋本 和明 山本 洋介山 こいつらよりまし
725 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 00:30:08.49 ID:bv97uCMI.net] 東京ミュウミュウ舐めんなよ
726 名前:デフォルトの名無しさん mailto:sage [2018/10/31(水) 00:34:00.99 ID:pqSFU9GW.net] サンプルコードにキモさを織り込める偉人だぞ
727 名前:デフォルトの名無しさん [2018/10/31(水) 01:20:17.24 ID:OyhA4eFa.net] >>713 1冊じゃないのが許せないよな 赤坂玲音って会社員経験がないんだっけ 確かにそんな感じはする
728 名前:651,661 mailto:sage [2018/11/04(日) 09:16:05.57 ID:muyEcRRg.net] SendInput() にINPUT配列を渡してドラッグ&ドロップをエミュレートすることで対応できました。配列の要素は以下2つ。 ドラッグ開始位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN ドロップ位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP mouse_event()と違ってSendInput()はユーザーのマウス操作の影響を受けづらいはずですが、 マウス移動とマウスボタン操作を別のINPUT要素に入れるとユーザーのマウス操作が入り込んでしまうので、要注意でした。
729 名前: mailto:sage [2018/11/04(日) 10:52:13.06 ID:4sZQO68Y.net] >>716 >赤坂玲音って会社員経験がないんだっけ 書籍を執筆するのに会社員経験は必要ですか?
730 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 11:18:54.43 ID:kSTg14OV.net] いるわけねーだろ。バカかよw って馬鹿だからいつまでもくだらない話題ひっぱってんだろうな
731 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 13:01:34.19 ID:cd0AZv6K.net] GetMessageの戻り値をちゃんと調べる良識人やぞ
732 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 13:46:25.24 ID:izn20/on.net] GetMessage… 懐かしの踏み絵ですね
733 名前:デフォルトの名無しさん [2018/11/04(日) 14:04:57.01 ID:5RY1Lh2I.net] エラーを調べるには関数を呼びます
734 名前:デフォルトの名無しさん [2018/11/04(日) 15:45:01.93 ID:I4L5mfdv.net] せめてヒントを書いとけよ ヒント:最後のエラーを取得する関数です とか
735 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 16:16:20.98 ID:K9FptJr2.net] >>722 で通じるからw
736 名前:デフォルトの名無しさん [2018/11/04(日) 18:11:10.68 ID:rLQVzKFu.net] MSが保守投げだしたくなる気持ちは判る
737 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 18:32:10.13 ID:eJWttrBP.net] >>724 w
738 名前:デフォルトの名無しさん [2018/11/04(日) 19:09:01.33 ID:I4L5mfdv.net] >>724 www まいりました
739 名前: mailto:sage [2018/11/04(日) 19:41:55.05 ID:4sZQO68Y.net] >>720 >GetMessageの戻り値をちゃんと調べる 当然なのでは? while(GetMessage(&msg , NULL , 0 , 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } メッセージループを抜けるかどうかは、GetMessage() を調べでもしないかぎり分かりようがないのでは?
740 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 19:56:38.13 ID:K9FptJr2.net] それバグコードだからw
741 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 20:20:15.94 ID:izn20/on.net] 踏み絵がまだ機能しててワロタ
742 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 20:46:13.51 ID:cd0AZv6K.net] >>728 ちゃんと調べてないぞ
743 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 20:50:35.10 ID:h5bAAdgj.net] >>729 釣られんなよ…
744 名前:デフォルトの名無しさん [2018/11/04(日) 22:51:52.16 ID:I4L5mfdv.net] -1・・・
745 名前:デフォルトの名無しさん [2018/11/05(月) 13:33:52.85 ID:o5QGnfIr.net] while(GetMessage(&msg , NULL , 0 , 0) < 0) { boolじゃないからな
746 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 14:30:24.29 ID:frT8bC/+.net] そんなコードばっか書いてるからいつまでも使えないんだよw
747 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 17:36:34.14 ID:cQ3f3cLB.net] >>734 エラーの時だけループするのが正しいんですね 勉強になります
748 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 19:35:45.35 ID:7LsLMyD5.net] >>734 ネタなのかマジなのか判断できねー w
749 名前:さまよえる蟻人間 mailto:sage [2018/11/05(月) 19:41:49.06 ID:l7k9Isvb.net] while(BOOL bRet = GetMessage(&msg , NULL , 0 , 0)) { if (bRet < 0) { MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0); break; } TranslateMessage(&msg); DispatchMessage(&msg); }
750 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 20:01:12.60 ID:44ykk/Ua.net] 無効ポインタを渡してしまった以外にエラーを起こす事あるか?
751 名前:さまよえる蟻人間 mailto:sage [2018/11/05(月) 20:02:50.18 ID:6+yTtRut.net] Windows互換を目指すReactOS、 いよいよ明日の夜、リリースです。よろしくね。
752 名前:さまよえる蟻人間 mailto:sage [2018/11/05(月) 20:09:34.41 ID:l7k9Isvb.net] C/C++では、メッセージループの異常終了に加えてC++の例外と、構造化例外による異常終了があるよ。
753 名前: mailto:sage [2018/11/05(月) 21:19:04.73 ID:E6RwMSoz.net] >>740 期待しています!
754 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 05:22:40.71 ID:ARgE5xEK.net] >>739 そんなもんMSの中の人にしかわからんだろ
755 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 05:47:46.71 ID:sIfl11dh.net] ざっと見て2つ目の引数で-返るな
756 名前:デフォルトの名無しさん [2018/11/06(火) 12:09:16.46 ID:vyXuaWzf.net] while(TRUE){ try{ while(BOOL bRet = GetMessage(&msg , NULL , 0 , 0)) { if (bRet < 0) { MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0); break; } TranslateMessage(&msg); DispatchMessage(&msg); } }catch(std::exception &e){ MessageBox(NULL, TEXT("例外補足してやんぜw ぷぷぷ"), NULL, 0); } }
757 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 12:43:49.56 ID:sIfl11dh.net] また頭悪いコードw
758 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 12:56:40.18 ID:N7p2WNxF.net] メッセージループを終了しても永久ループから脱出できない罠
759 名前:デフォルトの名無しさん [2018/11/06(火) 13:14:59.49 ID:qdniag2/.net] goto最強
760 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 15:07:52.54 ID:W/feU5S7.net] std::exception はスレチだし、WndProcから送出してよい例外はWindowsの構造化例外のみだし、送出された構造化例外をWinMainで処理してはいけない
761 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 17:40:05.44 ID:2Imqjq5w.net] ボケなのマジなのかわからんコードを貼ってるやつはなんなの
762 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 17:48:14.42 ID:NYh1+GRl.net] 真面目に書いてるつもりなんだよ
763 名前:さまよえる蟻人間 mailto:sage [2018/11/06(火) 17:54:13.46 ID:koMt5OtT.net] 異常終了の際にバックアップを作ってくれるのは、親切なんだろうか。
764 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 19:49:18.62 ID:W/feU5S7.net] 半分 中の人 The Old New Thing When will GetMessage return -1? https://blogs.msdn.microsoft.com/oldnewthing/20130322-00/?p=4873/
765 名前:デフォルトの名無しさん [2018/11/18(日) 16:47:49.39 ID:0OJqhmsU.net] リストボックスのリストアイテムに、游ゴシックの文字列をイタリック(斜体)で右詰めでDrawText()描画すると見切れてしまうのはどうしたらいいですか?
766 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 17:05:18.33 ID:5HKlow/5.net] owner draw
767 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 17:16:58.01 ID:0OJqhmsU.net] >>755 CDDS_SUBITEM | CDDS_ITEMPREPAINTで owner drawした結果としてのDrawText()なのですが…
768 名前:754 [2018/11/18(日) 17:24:06.74 ID:0OJqhmsU.net] 描画直前に文字列末尾に半角スペースを追加して見切れないようにする対症療法がまず思いつきます。 DrawText()で斜体フォントを右詰め表示するときに最右文字(日本語や欧州語だと末尾文字)が切れてしまうことがあるのは、既知の現象でしょうか?
769 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 17:43:56.83 ID:iB0TPElw.net] 斜体は必要サイズうまく取得できないからな。別口で取得してそれ使うか、取得値より多少大きくすればいいでしょ
770 名前:さまよえる蟻人間 mailto:sage [2018/11/18(日) 17:47:51.97 ID:TJFJUOYd.net] 斜体のずれの寸法は、tmOverhangだったかな。
771 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 18:13:41.25 ID:0OJqhmsU.net] >>759 悲報。GetTextMetrics() で得られたtmOverhangはzeroでした。tmItalicはnonzeroが戻ってきているのに。 そんなわけで模範的な解決方法が特にないようなので、文字列末尾に半角スペース追加で対応しようと思います。
772 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 20:31:51.66 ID:iB0TPElw.net] 原因が斜体の必要サイズ取得なんだから、模範的な方がよければそれぐぐれば一発で出るよw
773 名前:デフォルトの名無しさん mailto:sage [2018/11/18(日) 23:09:34.60 ID:5HKlow/5.net] 取れないって回答になると思うけどね 新APIとか隠し情報がないと無理かと
774 名前:デフォルトの名無しさん [2018/11/19(月) 05:02:23.92 ID:vKX2BinB.net] リストボックスに限らず、スタティックコントロールも右詰め・游ゴシック・斜体で末尾文字が見切れてしまう。 他のフォントだと見切れが発生しないフォントも多い。描画APIじゃなくてフォント固有の問題に思える。 あと、「見切れる」という北斗の拳っぽい表現、あまり好きじゃないが適切な表現って他にある? 見切れる(ミキレル)とは - コトバンク https://kotobank.jp/word/%E8%A6%8B%E5%88%87%E3%82%8C%E3%82%8B-673764 1 テレビ放送や演劇で、本来見えてはいけないものが見えてしまう。「裏方スタッフが―・れる」 2 写真や映像で、フレームに人物などの全体が収まらず、一部が切れている。「集合写真で端の人が―・れる」
775 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 05:48:21.80 ID:q6cfzVbs.net] https://www.google.co.jp/search?q=斜体+サイズ+取得+windows+api&oq=斜体%E3%80%80サイズ%E3%80%80取得+windows+api
776 名前:デフォルトの名無しさん [2018/11/19(月) 13:07:49.59 ID:poEgfl9j.net] >>760 半角スペースで大丈夫かな? 俺はフォントサイズ×0.5くらいを幅に足したわ
777 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 13:10:21.39 ID:poEgfl9j.net] >>763 「見切れる」で十分通じると思うけどな
778 名前:デフォルトの名無しさん [2018/11/19(月) 14:52:36.11 ID:3MOWhUti.net] フォント側データ書き換えないと無理
779 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 15:36:43.44 ID:yv29DTgI.net] えーそれふぉんと?
780 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 15:49:16.38 ID:Vi0v2wfh.net] >>768
781 名前:デフォルトの名無しさん [2018/11/19(月) 16:01:26.62 ID:vKX2BinB.net] 「Palatino Linotype」フォントでHDCにテキスト描画すると星印「★(U+2605)」などの記号が文字化け扱いされて四角になるんだけどどうしたらいい? Windows 10 October 2018 Update から起きるようになったような気がする。
782 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 16:55:11.57 ID:DcxQo4X/.net] MBCとかUNICODEとか?
783 名前:デフォルトの名無しさん mailto:sage [2018/11/19(月) 17:13:53.40 ID:RxTglLMs.net] そもそもそのフォントのそのコードが定義されてるのか? 昔は定義されてたけど今はされてないとかじゃないの
784 名前:770 [2018/11/20(火) 07:34:02.29 ID:FIdfDS6L.net] 以下に再現プログラムのC++ソースをアップロードしました。 https://ideone.com/wqZpPL 各フォントで「★test☆テスト」という文字列を表示するWinMainエントリのプログラムです。 「テスト」を表示できるのに「★」や「☆」を表示できないフォントがたくさんあるように思います。 評価やご助言のほどお願いいたします。 m(_ _)m
785 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 07:45:01.17 ID:XdMfHhgY.net] 定義されてるかどうか確かめたのか? 単にその文字が定義されてないだけだろ
786 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 07:49:45.64 ID:FIdfDS6L.net] >>774 文字が定義されているか確かめるにはどうしたらよいですか?
787 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 09:26:40.38 ID:c9mHPamo.net] 英字フォントでは★などはないんじゃないの windowsに最初から入ってる文字コード表アプリで見てみ Palatino Linotypeには登録されてない
788 名前:デフォルトの名無しさん [2018/11/20(火) 09:36:43.33 ID:FIdfDS6L.net] >>776 なるほど。回答ありがとうございます。 記号である★や☆を表示できないのにカタカナや漢字を表示できるのですが、 ご紹介いただいた文字コード表との整合性についてはどうなっているのでしょうか。
789 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 09:52:35.34 ID:XdMfHhgY.net] 代替フォントが使われるけど、デフォルトはかなり適当だからきちんと^やりたいなら一文字ずつチェックして描画
790 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 10:07:40.17 ID:FIdfDS6L.net] >>778 プログラム内でチェックするAPIはなんでしょうか? 検索のヒントになるキーワードが分からずこんなこと聞いてすみません。
791 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 10:11:32.06 ID:XdMfHhgY.net] GetGlyphIndex
792 名前:デフォルトの名無しさん [2018/11/20(火) 10:20:12.32 ID:FIdfDS6L.net] >>780 回答ありがとうございます。 GetGlyphIndexは、Win32APIには該当の関数が見当たらないようです。 何かサードパーティーのライブラリでしょうか?
793 名前:デフォルトの名無しさん [2018/11/20(火) 10:24:32.94 ID:jmuJusIM.net] freetype
794 名前:デフォルトの名無しさん mailto:sage [2018/11/20(火) 10:26:38.56 ID:FIdfDS6L.net] 失礼しました。以下関数ですね。 GetGlyphIndices() https://msdn.microsoft.com/ja-jp/library/cc428689.aspx
795 名前:さまよえる蟻人間 mailto:sage [2018/11/25(日) 16:05:13.88 ID:1GlBO1DK.net] 64-bitの環境でCreateRemoteThreadでAPIフックを試みた。フックは成功したのだが、フックの解除がかなり難しい。 LoadLibraryの戻り値を使う→だめ。 Module32First/NextのhModuleの値を使う→だめ。 DLLの内部からFreeLibraryを呼ぶ→だめ。
796 名前:さまよえる蟻人間 mailto:sage [2018/11/25(日) 16:09:53.05 ID:1GlBO1DK.net] 自分のプロセスの内部ではフックの解除は成功した。 しかし、他のプロセスになるとフックの解除が難しい。
797 名前:デフォルトの名無しさん mailto:sage [2018/11/25(日) 16:48:41.81 ID:ItHAeG65.net] どう駄目なのかを書かないのは単なる独り言なのでやめてくれませんかね。 クラッシュしてるんなら以下。 https://blogs.msdn.microsoft.com/oldnewthing/20131105-00/?p=2733
798 名前:さまよえる蟻人間 mailto:age [2018/11/26(月) 21:54:54.87 ID:owLNC83c.net] https://github.com/katahiromz/ApiHook 1. CMakeでビルド。 2. Targetプログラムを起動して、出てきたPIDをコピーする。 3. 「Test!」ボタンを押すと、「Unhooked」のメッセージが表示される。 4. Injectorプログラムを起動して、さっきコピーしたPIDを貼り付けて、 「Do Inject!」ボタンをクリックする。「Injected!」のメッセージが表示される。 5. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の メッセージが表示される。注入成功。 6. Injectorプログラムの「Do Un-Inject!」ボタンをクリックする。 「Un-Injected!」のメッセージが表示される。 7. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の メッセージが表示される。これを「Unhooked」にしたい。
799 名前:さまよえる蟻人間 mailto:sage [2018/11/26(月) 22:11:22.95 ID:vT7JWcSC.net] 今回はTargetというプログラムを対象に注入しているが、任意のプログラムに対して同じように(MessageBoxA APIをフックして)動作しないといけない。
800 名前:さまよえる蟻人間 mailto:sage [2018/11/26(月) 22:14:42.78 ID:vT7JWcSC.net] InjectorプログラムからFreeLibraryの呼び出しに成功すれば、フックが元に戻るはずだが、FreeLibraryが失敗しているように見える。 よろしくお願いいたします。
801 名前:さまよえる蟻人間 mailto:sage [2018/11/26(月) 23:16:21.86 ID:owLNC83c.net] https://msmania.wordpress.com/2015/04/26/reflective-dll-injection/amp/ シェルコード書きくけこ?
802 名前:さまよえる蟻人間 mailto:sage [2018/11/26(月) 23:27:16.40 ID:owLNC83c.net] reflectiveはブルースウィリス判定される恐れあり。他に方法はないのか。
803 名前:デフォルトの名無しさん mailto:sage [2018/11/27(火) 10:52:25.21 ID:krSRsG9l.net] なぜインジェクションするためにloadlibraryを皆したがるのか直接メモリにコード書き込めばfreelibraryする必要がないじゃないか。
804 名前:デフォルトの名無しさん mailto:sage [2018/11/27(火) 11:06:20.88 ID:cSPHWeDO.net] dllの方が圧倒的に楽だからな
805 名前:さまよえる蟻人間 mailto:sage [2018/11/27(火) 12:27:02.62 ID:mpDKeVau.net] 終了待ちのイベントオブジェクトと、DLLスレッドと、FreeLibraryAndExitThreadで解決した。 ありがとうございました。
806 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 11:51:42.13 ID:BbScykOp.net] LVM_SUBITEMHITTESTの戻り値の説明に書かれている 「Returns the index of the item or subitem tested」 の意味がよくわからないんですが、 戻り値とLVHITTESTINFOのiItemが異なる値になる可能性はあるのでしょうか。
807 名前:さまよえる蟻人間 mailto:sage [2018/12/05(水) 13:13:14.97 ID:6bKah/Y1.net] リストビューのサブ項目は、詳細表示のときの最初の列以外の列のテキストで使われる。
808 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 13:31:27.57 ID:BbScykOp.net] >>796 それ自体は理解しているのですが、 戻り値がアイテムの番号ではなくサブ項目の番号になることがあるのでしょうか。
809 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 15:00:20.42 ID:Gi6GtpHL.net] iSubItemメンバに値が入る 戻り値およびiItemは今まで通り
810 名前:デフォルトの名無しさん mailto:sage [2018/12/05(水) 15:22:34.72 ID:XTelINnE.net] カエル
811 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 08:51:15.20 ID:lNQUDg2h.net] ReactOSはどうなった?
812 名前:デフォルトの名無しさん mailto:sage [2018/12/08(土) 10:18:34.02 ID:uWIwAxnc.net] Reactなし
813 名前:さまよえる蟻人間 mailto:sage [2018/12/10(月) 14:41:18.82 ID:ILcXe1rk.net] Windows互換を目指すReactOS Part12 https://medaka.5ch.net/test/read.cgi/os/1519906380/ こっちのスレで活動してるよ。暇なら見てね。るんぱっぱ。
814 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 19:29:05.60 ID:3mpeBFkx.net] wineに頼らないと動かない産廃
815 名前:さまよえる蟻人間 mailto:sage [2018/12/27(木) 19:45:16.53 ID:xEoyai35.net] >>803 微軟おつ。
816 名前:デフォルトの名無しさん mailto:sage [2018/12/27(木) 20:15:23.13 ID:8bFD2Xmo.net] ほんと産廃だよな なんでwindowsに頼らないとwin32アプリは動かないんだ
817 名前:さまよえる蟻人間 mailto:sage [2018/12/27(木) 20:32:52.08 ID:xEoyai35.net] ジャバザハット
818 名前:さまよえる蟻人間 mailto:sage [2018/12/27(木) 21:04:33.87 ID:e6FVPdkR.net] らんらんるー
819 名前:デフォルトの名無しさん [2019/01/01(火) 23:36:15.57 ID:ML8jFpoW.net] 念のため聞
820 名前:くけどさ、金毘羅とコンパイラどっちが御利益あるかわかってるよね? [] [ここ壊れてます]
821 名前:デフォルトの名無しさん mailto:sage [2019/01/01(火) 23:48:35.00 ID:okGaeCMA.net] 念のために聞くけどさ、ネタとしてもここに書くつもりじゃなかったよね?
822 名前:デフォルトの名無しさん [2019/01/02(水) 12:04:23.94 ID:fpC2xUq7.net] キンピラごぼうの方が御利益ある
823 名前:デフォルトの名無しさん [2019/01/06(日) 11:52:07.26 ID:RBr8Qah/.net] ktkr 【Win】 WindowsUpdateで入れなくても良いKBリスト。2018年12月12日まで分 blog.livedoor.jp/nichepcgamer/archives/1039785182.html
824 名前:デフォルトの名無しさん [2019/01/08(火) 21:00:32.75 ID:V1Q/vFq5.net] Windows(上で動作しているアプリ)が鳴らしている音の「生データへのポインタ」 を取得するWin32APIを教えてください。
825 名前:デフォルトの名無しさん [2019/01/08(火) 21:03:39.61 ID:V1Q/vFq5.net] 812 音データが入っているバッファへのポインタです。
826 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 21:13:43.96 ID:BVjQZPEf.net] ない
827 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 21:14:52.46 ID:jpAVboCM.net] dllインジェクションするしかない
828 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 21:20:13.54 ID:V1Q/vFq5.net] >>814 ありがとうございます。APIとしては用意されていないのですね。 >>815 DLLインジェクション。注射ですか。初めて聞く言葉なので少し調べてみます。 分からなくなったらまた来ます。 目的は、現在発音中の音声のスペクトラムアナライザーを作ることです。 FFT自体はできており、自アプリで鳴らしているWAVデータを処理する ことまではできていますが、上記のことを実現したいので。
829 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 21:25:43.44 ID:V1Q/vFq5.net] winmm.dllをフックすれば実現できそうです。 早速やってみます。 ありがとうございました!
830 名前:デフォルトの名無しさん [2019/01/09(水) 11:55:22.51 ID:B8oaeAR+.net] >>812 生データかどうかは知らんがミキサーの出力は取れるはず
831 名前:デフォルトの名無しさん mailto:age [2019/01/12(土) 14:22:16.93 ID:nOTIPVuG.net] OS:Windows10 VC++ 2015 なんですが、下記ページの質問者と同じ問題にあたりました。 (LANが抜けているとNICに設定した固定IPアドレスではなく0.0.0.0が取得されてしまう) https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/9dd046d6-d0ad-4875-b9be-9ac6c7106454/ip124501248912524124731239821462244712604127861?forum=vcgeneralja このページの解決方法(WSAIoctl()関数にSIO_GET_INTERFACE_LIST)では、 ループバックアドレスしか取得できませんでした。 この他、GetIpAddrTable()も試しましたが同様でした。 どうすればLANケーブルが抜けていてもNICに設定した固定IPアドレスを取得できるでしょうか?
832 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 15:05:56.36 ID:hHDH7/la.net] へ〜そうなんや〜。この辺サンプル作ってたから試してみよ。 と思ったらPCの裏側弄るのめんどくせw 結果、おっしゃるとおりGetAdapterInfo()でもダメだった。 けど、これってAPIレベルでは取れないんじゃないかな? プロパティで表示されてる固定IPって、単にレジストリに登録されてるだけでは・・・ GetAdapterInfo()で取れるAdapterNameを取得し、 レジストリの HLM\SYSTEM\ControlSet001(ここは環境による?)\Services\Tcpip\Parameters\Interfaces\{上記で取れた名前}\IPAddress から取ればいいんじゃないかなあ。 固定IP設定してないと上記キーは存在せず、代わりにDhcpIpAddressが存在する。 なお、もうPCしまい込んだんで、LANケーブル抜いてレジストリ確認してないw 間違ってたらスマソ
833 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 15:18:01.40 ID:uLAlds2c.net] >>820 ControlSet001の所はCurrentControlSetの方が良い
834 名前:819 mailto:sage [2019/01/12(土) 15:43:42.17 ID:nOTIPVuG.net] >>820 わざわざ検証してくださってありがとうございます! www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19361&forum=6 このページを見ても、LANケーブルが抜かれている状態でIPアドレスが参照できないのは然りのようですね。 レジストリにアクセスした経験が無く、何か恐いので、 0.0.0.0が取得できたらLANケーブルが抜けているか、とりあえずロクな状態じゃないということで、 エラーを出す等の対処としたい(今回のアプリではこれで十分)と思います。 ありがとうございました!
835 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 15:58:58.78 ID:hHDH7/la.net] >>821 そうそう、それそれ >>822 ケーブルが抜けてる時点では通信のしようがないので、 IPを取得できてしまうとむしろエラーの判定方法が面倒くさくなると思う。 だから「取得できない=エラー」でいいでしょう。 なお、レジストリからの値の取得は別に何も恐くは・・・書き込みは気を遣うけど。
836 名前:819 mailto:sage [2019/01/12(土) 20:54:40.03 ID:cv9IM3HX.net] >>823 RegGetValue()で固定IPアドレスを簡単に取得できました! レジストリアクセス、恐るるに足らず・・・!w >だから「取得できない=エラー」でいいでしょう。 IPアドレスを取得できても、LANケーブルが接続されていないと、 その後のbind()で失敗するので、そこでエラーを出すことができます。 さらに、一定時間間隔でbind()を試みておけば、 ケーブルが接続された段階で正常な受信処理に進むことができます。 これで理想的な対応が完了しました! ありがとうございました!。゚( ゚´∀`゚)゚。
837 名前:デフォルトの名無しさん [2019/01/13(日) 10:39:34.53 ID:ATVrIMyH.net] >>819 WirelessLANで固定IPのときな何が取れるのかな
838 名前:819 mailto:sage [2019/01/14(月) 02:01:50.42 ID:DNWDWbUc.net] >>825 確認してみました。 ・Wi-Fiオフ ⇒ 0.0.0.0 ・Wi-Fiオン(AP未接続) ⇒ 0.0.0.0 ・Wi-Fiオン(AP接続) ⇒ 設定した固定IPアドレス APへの接続有無が、有線時のLANケーブル接続有無に対応する結果となりました。 もちろん、上記ケースのいずれの場合においてもレジストリからは設定された固定IPアドレスが取得できました。
839 名前:デフォルトの名無しさん [2019/01/14(月) 10:58:45.95 ID:ZKhJHRcZ.net] LANケーブルが刺さってて反対側の端もHUBに刺さってて そのHUBがどこにもつながってないときはどうかな
840 名前:デフォルトの名無しさん mailto:sage [2019/01/14(月) 14:56:20.16 ID:F7cyM080.net] どこと何の通信をするのか分からないけど、インターネットが可能かどうかという判定なら 固定IPとか関係ないしな
841 名前:819 mailto:sage [2019/01/17(木) 02:34:20.94 ID:5Sf+2HTN.net] >>827 確認してみました。 どこにも繋がっていないハブ(通電はしている)に繋げば GetAdaptersInfo()で固定IPアドレスが取得できました。 要はコネクタのところのLEDがチカチカしてる状態ならOKのようです。
842 名前:デフォルトの名無しさん [2019/01/17(木) 13:32:04.21 ID:uUdEyVn6.net] ガキの使いやあらへんで
843 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 09:31:37.52 ID:/JSvmQQz.net] Win32に限らない話なんだけど、「floating window」と 「top-level window」って、何らかの意味の違いってあるのだろうか? それとも同じ?
844 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 09:57:11.80 ID:oa0CPX6o.net] トップレベルは全部の上に対して上 フローティングは親に対して浮いてる
845 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 12:23:14.96 ID:/JSvmQQz.net] >>832 ちなみに、TOP-MOST と TOP-LEVEL を勘違いしての発言?
846 名前:デフォルトの名無しさん [2019/01/18(金) 12:26:49.75 ID:/+PP0p1B.net] WS_OVERLAPPEDWINDOW WS_OVERLAPPED WS_POPUPWINDOW WS_POPUP WS_CHILDWINDOW WS_CHILD
847 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 17:24:32.14 ID:1LXUKdBd.net] >>831 「floating window」って非MDIウインドウであってtop-levelである必要はないんじゃね? 「top-level window」ならば必然的に「floating window」だろうけど
848 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 17:55:26.61 ID:/JSvmQQz.net] >>835 top-level の定義は、親が存在しない (CreateWindow 実行時に NULL が指定され ている) Window だ、って英語で書かれているよ。 MDI とか関係ないと思うんだけど。
849 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 18:42:47.29 ID:1LXUKdBd.net] >>835 訂正 「非MDIウインドウであって」→「非MDI子ウインドウであって」ね >>836 だから『「top-level window」ならば必然的に「floating window」』ってのはOK? 親の存在の有無にかかわらず非MDI子ウインドウならそれは「floating window」でしょ 要するに「floating window」のうち親を持たないのが「top-level window」
850 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 18:53:17.40 ID:FdTpqa5z.net] フローティングってのはブラウザなんかでタブをドラッグすると独立できる奴ってイメージがあるけどなあ。
851 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 19:49:53.56 ID:xKp6dC4w.net] >>838 同じ用語が別の文脈で異なるものを指すことはよくある。 このスレのタイトルを見直してごらん。
852 名前:デフォルトの名無しさん mailto:sage [2019/01/18(金) 20:27:04.31 ID:bji/uTEx.net] >>838 小さなものってイメージもあるな
853 名前:デフォルトの名無しさん [2019/01/19(土) 01:02:57.44 ID:2Tiw7zAQ.net] それはない
854 名前:デフォルトの名無しさん [2019/01/19(土) 01:55:25.45 ID:Lyax1h3i.net] どうも、Win32APIそのものの質問ではないですが質問させてください。 Win32API等のサンプルがおいてあったサイトがどうしても見つからないのです。 以前は難なく見つかったので、消失したっぽいのですが。 覚えているのは以下です - デバイスコンテキストを利用したスプリッターのサンプルがあった(これは自分ライブラリにしたので確実) - OLEを利用したファイルのD&Dのサンプルがあった(これも自作アプリで利用したので確実) - 2016年3月までは存在していた(日記を見て確認) - 確かZIP(かLZHの圧縮ファイル)がアップロードされてたような。(通常のソースとその解説ページもあった) URLさえ判れば Internet Archive 等で何とかなるかと思うのですが・・・
855 名前:さまよえる蟻人間 mailto:sage [2019/01/19(土) 02:02:18.49 ID:eJ/T1GXt.net] OLE D&Dの資料は俺様も欲しいっす。
856 名前:デフォルトの名無しさん [2019/01/19(土) 02:55:55.30 ID:2Tiw7zAQ.net] みおぼえあるわ
857 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 03:12:53.98 ID:n7alGXg6.net] 見たら思い出しそうではあるが
858 名前:デフォルトの名無しさん [2019/01/19(土) 06:43:28.33 ID:wHcHNf+g.net] これとか? OLE DragDrop (サンプル) hp.vector.co.jp/authors/VA016117/oledragdrop5.html
859 名前:842 [2019/01/19(土) 09:43:29.26 ID:Lyax1h3i.net] >>846 そのページは昨日に到達してましたが、残念ながら違います。 確かOLEのD&DのページはC++で実装されてて、 IDropSource、IDataObject、IDropTargetの共通部分である QueryInterface、AddRef、Release関数をIUnknownImplementという名前の クラスを作ってそれをprivate継承してから、内部ではその親クラスの関数を呼び出す事をしていました。 IUnknownImplementという名前は自分のセンスではないのでそのページからそのままコピペしたのだと思います。 以前はOLE D&Dで検索すると難なく到達出来てたので消失したと思われます。 誰かブックマークしてて今では消えてるページのURLとかでそれらしきものがないでしょうか?
860 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 10:35:14.95 ID:S211ls6J.net] >>847 ブラウザの履歴
861 名前:を検索したら出てこない? [] [ここ壊れてます]
862 名前:デフォルトの名無しさん [2019/01/19(土) 11:05:14.74 ID:E3pxDp1L.net] NGチェックで貼れないサイトがあるな atata sakura ne jp . /com/chap5.html atata sakura ne jp . /com/chap7.html https://docs.microsoft.com/en-us/windows/desktop/api/oleidl/nn-oleidl-idroptarget https://gist.github.com/yohhoy/3053385
863 名前:デフォルトの名無しさん [2019/01/19(土) 11:10:10.62 ID:E3pxDp1L.net] eternalwindows.jp/ole/oledrag/oledrag00.html rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi
864 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 11:17:26.03 ID:ie4pzIPS.net] これ? eternalwindows.jp/ole/oledrag/oledrag00.html
865 名前:デフォルトの名無しさん mailto:sage [2019/01/19(土) 18:27:05.61 ID:a3eM+T1s.net] >>841 そう? メインウィンドウよりでかいフローティングウィンドウなんて見たこと無いんだよな
866 名前:デフォルトの名無しさん [2019/01/20(日) 11:49:19.90 ID:h0iPP/nj.net] 朝鮮人メンタル
867 名前:842 [2019/01/20(日) 15:59:03.36 ID:CaWvoORx.net] >>848 最後にアクセスしたのも大分前なので。その間にPCも変わってたりしますし。 >>849 >>850 >>851 残念ながらそれらでもないですね。 今日も探していたのですが見つからずもう諦めてきた感じです。 その際に副産物で見つけた、既にサイトが無くなってたページと そのInternet Archivesを張っておきます。 かなりこの手の情報が消失してる事が判りますね。 www.g-ishihara.com/ https://web.archive.org/web/20180807082916/www.g-ishihara.com/ win32lab.com/tips/ https://web.archive.org/web/20160810040639/win32lab.com/tips/ web.kyoto-inet.or.jp/people/ysskondo/ https://web.archive.org/web/20160810173814/web.kyoto-inet.or.jp/people/ysskondo/ ruffnex.oc.to:80/kenji/index.php https://web.archive.org/web/20160324222113/ruffnex.oc.to:80/kenji/index.php www7.plala.or.jp/keny01/ https://web.archive.org/web/20170123104718/www7.plala.or.jp/keny01/
868 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 07:38:46.81 ID:5BrFA625.net] > top-level の定義は、親が存在しない (CreateWindow 実行時に NULL が指定され > ている) Window だ、って英語で書かれているよ。 最大の突っ込みどころは根拠が「英語で書かれている」のみ
869 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 10:35:20.85 ID:UEk4ntQa.net] >>855 The MSDN entry About Windows offers the following definition: A window that has no parent, or whose parent is the desktop window, is called a top-level window. https://stackoverflow.com/questions/18244379/what-exactly-is-a-top-level-window-in-win32-programming A top-level window is a window that is not a child window, or has no parent window (which is the same as having the "desktop window" as a parent). The MSDN entry About Windows offers the following definition: A window that has no parent, or whose parent is the desktop window, is called a top-level window.
870 名前:デフォルトの名無しさん mailto:sage [2019/01/21(月) 16:33:26.70 ID:5BrFA625.net] >>856 引用元にCreateWindowは出てこないわけだが
871 名前:デフォルトの名無しさん mailto:sage [2019/01/22(火) 12:47:25.26 ID:/p6ZcYuK.net] no parentでそれぐらいわかるだろ
872 名前:デフォルトの名無しさん [2019/01/22(火) 13:04:37.64 ID:/wbMKv3O.net] PPAP
873 名前:デフォルトの名無しさん mailto:sage [2019/01/23(水) 01:51:43.39 ID:fK1BYch6.net] msdnのAbout WindowsのParent or Owner Window Handle "A window that has a parent is called a child window. " childでparentがnullの場合はtoplevel "A window can own, or be owned by, another window." ここからmsdnのWindow FeaturesのOwned Windowsに移動して CreateWindowのhwndParentの話になる 要は、child(WS_CHILD)はparentを持ちownerを持たない WS_POPUPやWS_OVERLAPPEDはparentを持たずownerをもつ CreateWindowのhwndParentはparentかowner(両義性がある)
874 名前:デフォルトの名無しさん mailto:sage [2019/01/24(木) 18:27:16.16 ID:/05KE7l4
] [ここ壊れてます]
875 名前:.net mailto: >>860 Parent, Owner は、「排他的」にしか持つことは出来ないことは正しいけど、 >WS_POPUPやWS_OVERLAPPEDはparentを持たずownerをもつ はちょっと違うと思うよ。一応、NULL を指定することが出来るから。 [] [ここ壊れてます]
876 名前:デフォルトの名無しさん mailto:sage [2019/01/27(日) 08:58:04.40 ID:Z8Sr7X5M.net] という訳で CreateWindow hwndParent != 0, WS_OVERLAPPED or WS_POPUPだと "A window that has no parent, or whose parent is the desktop window, is called a top-level window. " のとおり、top-levelになる
877 名前:770 [2019/01/27(日) 18:15:04.65 ID:qHVP6gPn.net] 私は“「Palatino Linotype」フォントでHDCにテキスト描画すると星印「★(U+2605)」などの記号が文字化け扱いされて四角になる”件について質問した者です。 みなさん、何の役にも立たない知ったかぶりの回答ありがとうございました。2019年1月22日にリリースされたKB4476976で無事、修正されたようです。 https://support.microsoft.com/ja-jp/help/4476976/windows-10-update-kb4476976 テキスト コントロールで、一部の記号が四角形で表示される問題を修正します。
878 名前:デフォルトの名無しさん mailto:sage [2019/01/27(日) 22:30:57.69 ID:I4R/P36r.net] >>863 Palatino Linotypeに★(U+2605)は存在しない(>>776 )し、 その場合の代替フォントの扱いがてきとうだった(>>778 )のが、 KB4476976で修正されただけだろ。
879 名前:770 [2019/01/27(日) 22:57:15.58 ID:qHVP6gPn.net] >>864 知らないんなら憶測で書き込まないでくれるか? そういう憶測の書き込み、質問者が混乱するだけで意味がないんだよ。 スレのレベルが下がるからこのスレには書き込みを控えてくれ。 https://en.wikipedia.org/wiki/Star_%28glyph%29
880 名前:デフォルトの名無しさん mailto:sage [2019/01/27(日) 23:00:10.55 ID:biLrTPET.net] >>863 >みなさん、何の役にも立たない知ったかぶりの回答ありがとうございました こいつは、荒らしだろ。 無視しろ。相手をするな!
881 名前:デフォルトの名無しさん mailto:sage [2019/01/27(日) 23:07:56.82 ID:Z8Sr7X5M.net] > スレのレベルが下がる www
882 名前:デフォルトの名無しさん mailto:sage [2019/01/27(日) 23:13:55.20 ID:15mfyiko.net] >>865 そのリンク先に意味無いだろ。 荒らしたいだけか。
883 名前:770 [2019/01/27(日) 23:21:03.57 ID:qHVP6gPn.net] >>868 リンク先は星印についての英語版Wikipedia。見ればわかるとおり、星印★は欧州で普通に使われている。 日本語のひらがなや漢字を代替フォントで痴漢できているのに、欧州でもよく使う星印★が代替フォントで痴漢できない不可解な状態がようやく解消された。
884 名前:770 [2019/01/27(日) 23:26:16.39 ID:qHVP6gPn.net] このスレは「です・ます」調で質問を書き込むと、的外れでレベルの低い回答が返ってきやすい。 この手の回答者には、丁寧語を使うのは不慣れな初心者と値踏みして質問者へのいたずらで無駄な作業をやらせてやろうという悪意がある。
885 名前:デフォルトの名無しさん mailto:sage [2019/01/27(日) 23:53:38.21 ID:eqe5Jbhe.net] 文字コード表で「Palatino Linotype」のU+2605が存在しないことに何も間違いなかったでしょ? そのことに気付かず指摘されて初めて分かった人が何言ってるの?
886 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 00:07:05.80 ID:+M9WQ/f8.net] 元から代替フォントの問題だと指摘されていたし、何も間違っていないな 質問された時にはまだ修正されていなかったのだし
887 名前:770 [2019/01/28(月) 00:10:03.58 ID:FJ2d04ee.net] >>871 欧州フォントにはU+2605だけじゃなくて漢字やひらがななども存在しないよ。 欧州フォントにない記号が表示されないことを仕様であるかのように知ったかぶりで断定するデタラメな回答はアウト。
888 名前:770 [2019/01/28(月) 00:40:47.00 ID:FJ2d04ee.net] ちなみにPalatino Linotype のような欧州フォントは雄雌記号の♂(U+2642)と♀(U+2640)が少しイラストっぽく表示されるので、お試しあれ。
889 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 00:40:53.70 ID:J+udoZHz.net] >>873 さすがにアホ
890 名前:770 [2019/01/28(月) 00:55:58.16 ID:FJ2d04ee.net] Win32APIの不具合なのか新しい仕様なのか判断できない人は質問に回答したらダメでしょ。
891 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 01:15:13.62 ID:j971hPKN.net] > 欧州フォントにはU+2605だけじゃなくて漢字やひらがななども存在しないよ。 欧州フォントでも漢字表示できるの? はえーすっごーい
892 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 01:59:38.49 ID:yOibm1qy.net] 言い方は忘れたけど、確か、Forwarding や Redirecting みたいな機能が あって、グリフが存在して無い文字は、他のフォントのグリフを使用する ことができる機能が Win32 には備わっていたと記憶している。
893 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 02:08:56.48 ID:jKaiFfBH.net] https://superuser.com/questions/396160/how-to-change-configure-font-fallback ・Font Fallback ・Font Linking
894 名前:デフォルトの名無しさん mailto:sage [2019/01/28(月) 06:24:36.00 ID:yQjFtWDc.net] >>874 それも代替フォント選択がいい加減だから=バグだよw
895 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 18:23:03.18 ID:zuTwaubK.net] WS_HSCROLL や WS_VSCROLL スタイルを指定してスクロールバー付きの ウィンドウを作った場合なんですが、スクロールバーのつまみをスライドさせると 親(?)がWM_CAPTURECHANGED を受信してしまうのは仕様なのでしょうか。 クライアント領域内の画像をドラッグ&ドロップする処理(WM_LBUTTONDOWN で SetCapture(), WM_LBUTTONUP でReleaseCapture() 呼び出す)を書いているんですが、それに加えて WM_CAPTURECHANGED でも ReleaseCapture() を呼び出して Alt+Tab などでウィンドウが 切り替わった場合でも確実にキャプチャが解放されるように処理しています。 ところがこのように WM_CAPTURECHANGED を処理すると、スクロールバーのつまみをスライド させることが出来なくなってしまいます。おそらく Windows がつまみをスライドする直前に SetCapture() を呼び出しているために、WM_CAPTURECHANGED を受信した瞬間それが解放されて しまうからだと想像しています。 この問題に対処する一般的(標準的?)な方法はあるのでしょうか? よろしくお願いいたします。
896 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 18:37:28.68 ID:J/ff8w5v.net] マウスを直接やって独自実装やるんじゃなくてwindowsのドラッグアンドドロップとして機能実装するのが一般的
897 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 18:48:17.83 ID:zuTwaubK.net] 881です。 >>882 WindowsにD&D処理を支援する機能があるということなのでしょうか。 画像のドラッグ中はフラグを立てておけば良いのではないかと、いま思いつきました。 // 修正前 case WM_CAPTURECHANGED: if (GetCapture() == hWnd) ReleaseCapture(); return 0; // 修正後 case WM_CAPTURECHANGED: if (dragging) ReleaseCapture(), dragging = false; return 0; こんな感じで、ちょっと試してみようと思います。
898 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 19:14:06.85 ID:VYsToa/P.net] ウィンドウが切り替わったって事はWM_KILLFOCUS飛んでくると思うけどそれじゃダメなん?
899 名前:デフォルトの名無しさん [2019/01/31(木) 19:33:52.56 ID:zuTwaubK.net] 881です。 >>884 Alt+Tabのほか、キャプチャ中にEscキーが押下されたためにウィンドウがクローズするタイミングにも 対応しなければならないようなんです。ウィンドウが閉じるときは WM_KILLFOCUS を 受け取らないようなので WM_CAPTURECHANGED しかないのかなと思いました。
900 名前:デフォルトの名無しさん mailto:sage [2019/01/31(木) 19:40:12.79 ID:VYsToa/P.net] WM_KILLFOCUSとWM_CLOSEよりWM_CAPTURECHANGEDの1箇所で処理したいって事なのかな
901 名前:デフォルトの名無しさん [2019/01/31(木) 19:50:33.62 ID:zuTwaubK.net] >>886 状況に応じて対応する手もあると思うのですが、予測していなかった状況がまだあるかもしれないので 一カ所で処理したほうが無難なのかな、と考えています。
902 名前:L mailto:sage [2019/02/01(金) 01:20:53.20 ID:WOdIBupf.net] >>887 基本、>>883 見たいなやり方でいいんじゃないかな。 後、個人的には、Spy++みたいなものでメッセージの来る順序を 観察してそれに応じて「アルゴリズム(←大げさかも)」を考えてる。 Windows の場合、OSのバージョンアップでメッセージの飛んでくる 仕様が変わったりするかも知れず、もしかしたら動かなくなることも あるかも知れないが、「行儀よくプログラムすれば」それを防げる という単純なものではないと思ってる。なぜなら、何が行儀の 良いプログラムがそもそもドキュメント化されていないし。 という訳で、現存する全てのバージョンのWindows OSで実験して 動くかどうか確認して動かなければ修正し、新しいバージョンのOS が出てきたら、また実験する事で対応するしかないらしい。 2ch/5ch の書き込みによれば、「どんな場合にも対応できる プログラムなんて作れるわけがない」んだそうだで、それを 聞いて深く考えさせられたことがある。
903 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 01:29:58.10 ID:WOdIBupf.net] >>888 [続き] MSDNなどで、自分のやりたいことを探すと、近いものが見つかって、 「これこれこうすれば良い」と書かれていることがあるので、実際に やってみたとしても、後々、さまざまな不具合と独自機能拡張の難しさに 悩まされ続けることがある。そのたびにネット中を探し回ったり、 色々実験して対処することになる。 でもよくよく考えてみると、そもそも自分で0から実装すると意外と簡単な ことであったりして、全部自分の制御下にある分、調べる必要もなく、 むしろ時間の節約になったりする事が多い。
904 名前:デフォルトの名無しさん [2019/02/01(金) 01:44:48.22 ID:n6bcSVs+.net] >>889 FindFirstFileのワイルドカードはあまり当てにするな、まで読んだ。
905 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 04:13:32.40 ID:2psUfhCM.net] MFTを直接読みなされ
906 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 17:50:15.61 ID:IACxdzc7.net] >881 ScrollBarのつまみをLButtonDownしたままマウスポインタをつまみから外してドラッグするとつまみの位置は移動します。ということはCaptureしています。 スレッドのCaptureはひとつしかないので、事前のCaptureは解放され、WM_CAPTURECHANGEDが通知されます。 あと、WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。
907 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 18:19:28.05 ID:WOdIBupf.net] >>892 >WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。 ああ、そういえば、そうだった気がする。メッセージの Caputure Changed という名前からしても。
908 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 18:35:25.24 ID:kGNgvrty.net] キャプチャ中のAlt+Tabなどは、WM_CANCELMODEというものもある
909 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 18:50:09.36 ID:WOdIBupf.net] >>894 あー、そういえば海外のサイトを調べていたら、 「ALT+TAB でも Capture がどうのこうのなるから、 正しくは、これこれこんな風にプログラムしなければならない」 みたいに書いてあった。ALT+TABを使わなければ生じないことなので、 後回しだな、と思ったのでちゃんと理解してない。
910 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 18:53:12.96 ID:WOdIBupf.net] 「Using SetCapture() and ReleaseCapture() correctly (usually during a drag n' drop operation).」 https://www.codeproject.com/Tips/127813/Using-SetCapture-and-ReleaseCapture-correctly-usua 「Avoiding Trouble with Mouse Capture」 www.drdobbs.com/avoiding-trouble-with-mouse-capture/184416474
911 名前:デフォルトの名無しさん mailto:sage [2019/02/01(金) 18:55:01.83 ID:WOdIBupf.net] // THE RIGHT WAY OF DOING IT: //* <- Remove a slash to comment out the good version! case WM_LBUTTONUP: ReleaseCapture(); return 0; case WM_CAPTURECHANGED: g_MovingMainWnd = (HWND)lParam == hWnd; return 0; /**/ // THE WRONG WAY OF DOING IT: /* <- Prefix this with a slash to uncomment the bad version! case WM_LBUTTONUP: g_MovingMainWnd = false; ReleaseCapture(); return 0; // buggy programs usually do not handle WM_CAPTURECHANGED at all case WM_CAPTURECHANGED: break; /**/
912 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 12:26:45.88 ID:kmlzmIx7.net] PCをXPからwin8.1 64bitに移行したんだけど、自作のソフトがいくつか動かない。デバックしてみたら、GetDC(0)→GetPixelやっている所でフリーズしているみたい。 win8でGetDC(0)は駄目だったりする?
913 名前:さまよえる蟻人間 mailto:age [2019/02/07(木) 12:30:15.66 ID:trMMLIP2.net] GetDCはウィンドウに対するDCを返す関数だから、ウィンドウに関係ないなら、CreateCompatibleDC(NULL)/DeleteDCに変えてみい。
914 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 13:23:19.52 ID:FsbblVW+.net] >>898 DWM(Aero) の場合と、そうでない場合とで surface backend が有る無いの違いがあるには あるが、一応、GetDC(NULL) が Screen 全体の DC を得るということは仕様化されているので、 新しいOSでも動作自体は出来ないわけではないと思う。 https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/fb7d5836-5e3b-42f8-95cb-586cb2b3da21/getwindowdc-and-bitblt-in-windows-7-and-windows-8?forum=windowssdk Under DWM (Aero) each window has its own surface backed up by GPU memory. Without DWM, that is under classic renderer, all pixels covered by another window are simply discarded. To detect whether DWM is currently running and enabled use DwmIsCompositionEnabled function. [ブラウザ上の新OSの紹介] nowsmartsoft.atwebpages.com/
915 名前:デフォルトの名無しさん [2019/02/07(木) 15:13:59.88 ID:GcZVZFC2.net] >>898 一回コピーを作らないとだめ
916 名前:デフォルトの名無しさん mailto:sage [2019/02/07(木) 19:21:59.34 ID:/5LF0iCd.net] >>898 Aero環境ではGetPixelがとてつもなく遅くなるというやつじゃないの?
917 名前:デフォルトの名無しさん [2019/02/08(金) 16:13:48.70 ID:OJ5k9nKR.net] Win8.1はAeroじゃなくてMetroだから違うのでは。
918 名前:デフォルトの名無しさん mailto:sage [2019/02/09(土) 07:34:09.50 ID:VoK7d33Y.net] そういったシステム上の差異をブラックボックス化して吸収するのがSDKなりライブラリの役割だと思うんだけどな。 なんでこうも面倒なのかね。
919 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 00:56:19.51 ID:B31yNMWe.net] AeroやMetroはライブラリだから
920 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 09:55:16.21 ID:jvY/9N9p.net] Quattroは大佐だから
921 名前:デフォルトの名無しさん [2019/02/10(日) 14:10:30.78 ID:25jgEgQt.net] 5ちゃんはチラシの裏だから
922 名前:898 mailto:sage [2019/02/10(日) 14:41:50.30 ID:pMKPJfwr.net] 遅ればせながら、ご教示していただいた皆様、ありがとうございます。 15年以上前にVC6で作成したソースをもとしたソフトだったので、これを機会に作り替えすることにしました。 今回は、.netのCopyFromScreenからBitmapを作成してGetpixelしてみます。 他にも、mixer関連で取得変更できてなかったり、手を入れなければならないソフトがいっぱいありそう
923 名前:sage [2019/02/10(日) 15:07:59.97 ID:FHx5KBLx.net] 元々SetPixelを呼び出すごとにDrvBitBltしていたので遅かった
924 名前:デフォルトの名無しさん mailto:sage [2019/02/10(日) 18:15:03.40 ID:qfB3Qf/j.net] managedだとピクセル単位の処理はunsafe使わないと遅いよ 百倍以上の差が出る
925 名前:898,908 mailto:sage [2019/02/12(火) 14:13:36.96 ID:ArFYaOAy.net] マスターボリュームが変更されたらWAVE音量を同じ値に変更するということを、XPではMixerAPIを使って出来てましたが、win8では出来なくなりました。 それでネットをあさってて、マスターボリュームはIMMDeviceのGetDefaultAudioEndpointで取得出来ることが分かりましたが、WAVE音量を変更する方法が不明です。 どなたか教えてください
926 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 15:38:56.47 ID:7Y/Mu4tq.net] Vista以降ミキサーの仕様が変更されててwave音量の項目自体なくなってないか?
927 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 22:54:47.64 ID:mfSiw2KQ.net] LLHOOKか何かで、ユーザーの入力は全部遮断しつつ、 SendInputやkeybd_eventやらのプログラム由来の入力は通すようにしたいのですが、 何か方法ないでしょうか? 今はHIDデバイスを無効にする事を考えてますが、あんまやりたくないです。
928 名前:デフォルトの名無しさん [2019/02/20(水) 15:53:14.16 ID:rNooXWfe.net] 盾ニか~などの合字が出力されるWin32APIってどんなのがあるの?
929 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:03:14.01 ID:P1QqcLfo.net] >>914 無いんじゃないの。
930 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:04:45.23 ID:eMhiTtf4.net] 普通に合字に対応する文字コードを文字(列)出力/描画 APIに渡すだけだと 思う。それ以上のことをやりたい場合は、自分でプログラムしたらいいよ。
931 名前:914 [2019/02/20(水) 18:12:05.06 ID:rNooXWfe.net] 元号の合字の件、以下のニュースが気になって質問したんだけど、 Win32APIが使わないなら誰がどんな用途でわざわざレジストリを開いて合字を探すのか気になった次第。 Microsoft、「KB4487044」適用で元号に不具合 - PC Watch https://pc.watch.impress.co.jp/docs/news/1170425.html
932 名前:さまよえる蟻人間 mailto:sage [2019/02/20(水) 18:13:20.05 ID:AQq/x/Lj.net] LOGFONT.lfWidth、CreateFontIndirect、SelectObject、TextOut/DrawTextを使えば半角漢字を描画できる。
933 名前:さまよえる蟻人間 mailto:sage [2019/02/20(水) 18:15:28.65 ID:AQq/x/Lj.net] 元号については、ここに詳しく書いてあるよ。 https://docs.microsoft.com/en-us/windows/desktop/intl/era-handling-for-the-japanese-calendar
934 名前:さまよえる蟻人間 mailto:sage [2019/02/20(水) 18:22:20.03 ID:AQq/x/Lj.net] 元号のAPIを追加するより、レジストリで定義する方が得策だね。事前テストも出来るし。
935 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 18:45:40.96 ID:EHsoFK41.net] >>917 盾ニか~ってただの文字コードに対応した文字 ただ、いわゆる機種依存文字なので、その文字コードを想定していない クソアプリが死ぬって話がその記事に書いてることなのでは? レジストリに記録されてるのは元号と西暦の対応で、 その情報を使いたいアプリが好きに使えばいいだけの話 APIでそこ多分見てる(見てないかも知れんが)のは GetCalendarInfoやEnumCalendarInfo系あたりじゃなかろうか 今回の件でこいつらが問題を起こすとは書いてないと思うが
936 名前:さまよえる蟻人間 mailto:sage [2019/02/20(水) 18:49:44.36 ID:jAMIqMc6.net] 新しい元号のUnicodeのコードポイントはもう決まってるらしいよ。
937 名前:914 [2019/02/20(水) 19:12:38.68 ID:rNooXWfe.net] GetDateFormatEx()で書式ggは元号に置き換わる。合字の書式はそもそもあるの、どうなの。
938 名前:デフォルトの名無しさん [2019/02/20(水) 19:45:56.26 ID:v7iPz90J.net] 森鷗外𠮟る
939 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 21:29:35.92 ID:kVQHKw0G.net] WaitForSingleObjectやWaitForMultipleObjectsってspurious wakeupがあるから使うなと言ってる先輩がいるけど 本当ですか?
940 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 21:44:37.57 ID:x13qkxfg.net] spurious wakeupがある→正しい 使うな→よりより代替手段がなければ使うしかない 代替手段があるかどうかは環境によるから先輩ちゃんに聞く
941 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 22:18:48.32 ID:JuVjm6Gn.net] https://docs.microsoft.com/en-us/windows/desktop/sync/condition-variables 条件変数のAPIではspurious wakeupsに言及がある、ただしWaitForSingleObjectなどでは言及が見つからなかった https://stackoverflow.com/questions/38757420/is-waiting-for-an-event-subject-to-spurious-wakeups 出典不明だがWaitForSingleObjectはspurious wakeupが起こらないとある WaitForMultipleObjectsExでは、bAlertableにTRUEを渡せばspurious wakeupが起こりうるらしい 先輩の情報源を知りたい
942 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 22:23:38.90 ID:qRCx8JnJ.net] 同期オブジェクトが非シグナル状態でWaitFor系関数から勝手に戻ってくることはないと断言できる 仕掛けるオブジェクトに依ると思う
943 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 22:27:18.85 ID:qRCx8JnJ.net] ただし単に寝ていたスレッドが起きるという現象自体は外部のCPU負荷調節アプリとかでResumeTheradを発行することで簡単に再現できる
944 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 23:11:25.13 ID:4O+31NpZ.net] 魔王も勇者が入って来ただけで起きるしな
945 名前:デフォルトの名無しさん [2019/02/22(金) 23:26:13.44 ID:7tzQnSDu.net] そもそも何をWaitFor系関数で待つのかってのも大きい。自作Signalオブジェクトなら問題起きないでしょ。
946 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 07:23:17.25 ID:9pAAXdf2.net] >>927 以前、2つのプロセス間で、WaitForSingleObject() を CreateEvent(), SetEvent() 系 の HANDLE で実験してみたけど、バグ的な現象は起きず、至って正常に動作し、 2つのプロセスで、お互いに、SetEvent() したり、WaitForSingleObject() で 相手を待ったりして、ハンドシェイク的な振る舞いが思ったとおりに出来ることが 確認できた。 速度も、SetEvent() した事が相手に届くまで、確か、1(μs)前後だったので、 十分速いと結論付けた。
947 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 08:40:48.30 ID:zem2FMDi.net] C++標準のwait系にはあるからいちいち確認するしなきゃいけないから面倒だよな しかも、イベントだけ使いたいのにいちいちmutexをよういしなきゃいけないし・・・
948 名前:デフォルトの名無しさん [2019/02/23(土) 11:36:21.35 ID:+DV3f+Dk.net] 都市伝説かも知れんが そもそもいつ発生するか判らない発生しないかも判らない現象を ちょっとテスト書いてみて大丈夫(キリつ
949 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 11:54:16.12 ID:apHI25Q1.net] 条件変数ならともかく、Eventなんかはspuriousで起こされても確かめようがないんじゃないのかな。
950 名前:デフォルトの名無しさん [2019/02/23(土) 16:03:56.92 ID:qOMwbnHQ.net] 同期機能は同期機能としてそのまま利用しつつ、最低限の安全性や整合性については別途確認すべきなのでは。
951 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 18:44:58.70 ID:9pAAXdf2.net] WaitForSingleObject() には、MSDN の仕様書に書かれていないような意味においての バグ的な spurious wakeup は起きないと思う。 なお、実験する限り問題ないが、絶対ないかどうかは誰にも分からない。
952 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 18:57:16.07 ID:Cx5sxFW5.net] c++標準ライブラリには堂々と書かれてるな Windowsだとc++標準ライブラリを使う理由がないな
953 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 19:07:25.29 ID:9pAAXdf2.net] 同期オブジェクトは重要。 仕様書に何も書いてないのに、もし、spurious wakeup が起きるとしたらバグ。 なお、C++ の STL ライブラリは馬鹿が作ったと思ってる。 昔ながらの C の標準ライブラリは良い出来だが、それと混同しないほうがいい。
954 名前:デフォルトの名無しさん [2019/02/23(土) 20:04:03.30 ID:qOMwbnHQ.net] C++のSTLとCライブラリでは機能が似ているところはない気がするけど? 念のため言っとくとiostreamはSTLじゃないよ。
955 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 20:24:45.58 ID:7js9m1kN.net] つーかspurious wakeupなんて存在を許してる時点で作ったそいつらはアホじゃないの そいつらのリテラシーどうなっとんのか疑うレベル
956 名前:デフォルトの名無しさん [2019/02/23(土) 20:32:05.22 ID:qOMwbnHQ.net] 汎用性のためにファイルロックを使った排他処理で実装するとそうなってしまうんじゃないの。知らんけど。
957 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 22:14:41.32 ID:apHI25Q1.net] 厳密にspurious wakeupを許さない実装は大変でパフォーマンス的にも不利だから。 というか、spurious wakeupを許すとすごく有利だというのが後から発見されたんじゃなかったかな。
958 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 02:55:03.61 ID:ZXw7vz2Z.net] っていうか、win環境ならC++標準ライブラリよりWaitFor〜を使ったほうがいいだろ std::unique_lockなんで馬鹿みたいに遅いしw
959 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 04:17:10.21 ID:N5G83Lpp.net] >>937 WaitForSingleObject()ってエラー返すことがあるよね?仕様上では。 要はちゃんとエラーハンドリングしろって話だけどさw
960 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 08:23:50.21 ID:pcDSz9Pr.net] >>943 プログラムには優先順位があって、まず、正しく動作する事が一番重要。 その次に来るのが、使いやすさか、または、速度。どちらが優先されるかは 設計思想や哲学による。その次にプログラムのサイズ。 いくら速度が速くても、やるべきことが正しく行われないならプログラムとしては 失格なんだ。
961 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 08:36:16.85 ID:fWdsplTz.net] 「sprious wakeupもありえる」というのを「正しい動作」と定義したんだから何の問題もない。
962 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 08:48:33.63 ID:pcDSz9Pr.net] それだと、使う側のプログラムが長くなるだけなので、設計思想に問題を感じる。 ライブラリ設計者の経験不足かもしれない。 速くなるといっても結局、使う側でループの中で判定して条件に合わないなら、 また繰り返し、wait するのなら、ライブラリ側でそういう風にできなかったの だろうか。
963 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:42:01.89 ID:pcDSz9Pr.net] 深く考えてないけど、以下のようにしてしまえば、速度が速いまま、 spurious wakeup が絶対に起きない wait 関数を作れるんじゃないかと 思うんだけど、どうなんだろう。 Xxxx LapperWait(Yyyy y, Zzzz z) { for (;;) { raw_wait(y, z); // spurious wakeup 有り if ( IsCond(y, z) ) { // 厳密な条件チェック return x; } } }
964 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:03:24.37 ID:9KBfjXtA.net] >>949 深く考えてから書き込みましょう。 ぼくのかんがえたさいきょうの同期実装についてはスレ違いなので、よそでやってください。
965 名前:デフォルトの名無しさん [2019/02/24(日) 14:42:49.21 ID:YwY0sV++.net] LoopyWaitでいいよもう
966 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 15:26:11.06 ID:BJ3WFlaM.net] 「sprious wakeupもありえる」のはいいが、 どのAPIも使うたびにいちいち関数仕様確認するのは面倒だな つーか関数の説明には書いてないので仕様とは言えないと思うんだが・・・初見殺し?
967 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 15:39:02.49 ID:2tRfk65D.net] >>952 初めて使うAPIでしかも同期処理なんて複雑なものは仕様を調べて使うのが当然のことだと思うぞ。
968 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:04:30.12 ID:N5G83Lpp.net] >>949 raw_wait(y, z); // spurious wakeup 有り と if ( IsCond(y, z) ) { // 厳密な条件チェック の間で条件が変わったらどうするの?
969 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:07:02.11 ID:EMRtI4X3.net] >>954 え、それはプログラミングの仕方の問題じゃないの? 元々、マルチスレッドプログラムは難しいんだけど、それと今回の 問題は別なのでは。
970 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:08:45.84 ID:N5G83Lpp.net] >>955 どうやってプログラムで回避するの? 回避できないんだったら「絶対に起きない」なんて言えないだろ。 こんなレベルで排他処理語られても...
971 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:14:47.34 ID:pcDSz9Pr.net] >>956 もともと、排他処理用のAPIは、そういう「変な問題が起きない」ように用意されて いるんだよ。「Atomic」アクセス、などと言われていて、「途中に」とか 中途半端な状態が起きない作りにしてある。それは割り込み発生を好きにOFFに できるところのシステム側(OS)でしかできない。
972 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:16:16.11 ID:pcDSz9Pr.net] なぜかIDが勝手に変わったが、949=955=957だ。
973 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:17:26.62 ID:9KBfjXtA.net] 同期オブジェクトの正確性ではなく、ユーザ定義データの保護こそが大切。目的を見失わないように。
974 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:18:28.55 ID:pcDSz9Pr.net] ちなみにオイラは、32BITマルチタスクOSを作った経験がある。
975 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:24:01.17 ID:Krr3p0wT.net] >>949 シングルスレッド脳だとそういう発想になる
976 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:34:48.90 ID:9KBfjXtA.net] たまにかかってくる間違い電話がいやだから電話は無能。そんな感じ。
977 名前:デフォルトの名無しさん [2019/02/24(日) 16:36:35.10 ID:2fcQjxFq.net] Atomicを語るならID変わらないようにしないと恥ずかしいな
978 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:41:49.67 ID:pcDSz9Pr.net] IDが変わる理由は知らん。多分、5chのシステム上の問題だと思う。
979 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:43:05.47 ID:pcDSz9Pr.net] 沢山の人で賑わっているように見せるためかな。人寄せと広告料金関連で。
980 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:46:55.09 ID:9KBfjXtA.net] コールバック形式のAPIを使うプログラマはその呼び出しタイミングをAPI側に委ねている。 何がいいたいかというと、要するにあきらめろということだ。
981 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:53:55.79 ID:N5G83Lpp.net] >>957 それが起きるからどうするという話で、 あんたが糞の役のも立たないコードを出したんじゃん。 つまり>>954 はクソだったと認めるということ?
982 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 18:01:12.16 ID:pcDSz9Pr.net] >>697 多分、あのコードで問題ないはずだ。 ちなみに、オイラは現実社会では天才と言われているよ。
983 名前:デフォルトの名無しさん [2019/02/24(日) 18:31:20.56 ID:9KBfjXtA.net] 車のバンパーは本来、ボディを保護するためにある。 そのバンパーに傷がついたりへこんだりすることを病的に嫌悪している状態。 お大事に。
984 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 18:39:12.54 ID:fWdsplTz.net] もしそのraw_wait()がP命令だとしたらその結果がspuriousのときはV命令で状態を戻さなきゃならんと思うが。 ただどっちにしてもそのIsCond()はライブラリ側では構成しようがないけどな。 あと、やっぱりspurious wakeupって条件変数特有のものじゃなかったかな。 なんかそのへんで話がずれている気がする。
985 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 18:54:16.69 ID:EMRtI4X3.net] >
986 名前:;>970 どういう状況を考えてるのか前提が分からないし、だから 「深く考えてない」 という事になってしまうのだけども。少なくとも、Win32のWaitForSingleObject() では特に問題は起きない。 [] [ここ壊れてます]
987 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 18:58:07.16 ID:D1Rqo30U.net] つ MsgWaitForMultipleObjectEx
988 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 19:23:32.11 ID:njB6xu8t.net] >>972 GetMessage相当が入ってるだけで基本WaitForと同じ動作だが何か?
989 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 22:10:09.80 ID:SGjUOn7r.net] >>925 >WaitForSingleObjectやWaitForMultipleObjectsってspurious wakeupがあるから >使うなと言ってる先輩がいるけど本当ですか? 嘘です。 同期オブジェクトを使いこなせない先輩が自分のバグを解決出来ずにこれを spurious wakeupのせいにし、 同期オブジェクトをろくに知りもしない >>926-973 みたいなやつが適当なことを 書いているだけです。
990 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 23:25:34.04 ID:N5G83Lpp.net] >>930 勇者がきてないのに目覚めてしまった魔王とか想像してほっこりした
991 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 22:30:45.76 ID:M4I6EPLO.net] >>974 ってことは、Win環境においてはC++標準ライブラリを使う理由が無いってこと?
992 名前:デフォルトの名無しさん mailto:sage [2019/02/25(月) 23:33:02.61 ID:2LN6Bs/0.net] WaitFor〜はOS制御の根幹って感じはするけど、lstrcpy〜系をAPIにする意味はよく分からん
993 名前:デフォルトの名無しさん [2019/02/26(火) 02:22:40.88 ID:K9v1e6Ic.net] 昔はCライブラリへのリンクなしでビルドする需要が割とあった。
994 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 12:16:11.37 ID:5MxkS3P7.net] >>976 Windows では、Windows API か、それをクラスにまとめた、MFC を使う。 型も、HDC とか、Windows 独特のもの C++標準ライブラリは、アルゴリズム以外は、あまり使わないだろ
995 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 12:23:22.51 ID:D7AA7sgA.net] プラットフォーム共通にしたい場合なんかに使うと思うよ。 排他処理みたいな、OSに近いしい部分はOSに近しいAPIの方がいいと思うけどお。
996 名前:デフォルトの名無しさん [2019/02/26(火) 16:48:18.20 ID:K9v1e6Ic.net] vector,list,mapなど各種コンテナ、文字列クラスbasic_string、スマートポインタクラスshared_ptr,unique_ptrは使うでしょ。 コードでのdelete, delete[] 呼び出しを減らすためにね。
997 名前:デフォルトの名無しさん [2019/02/26(火) 17:32:55.36 ID:K9v1e6Ic.net] スマートポインタクラスshared_ptr,unique_ptrは、デストラクタを細かく指定できるのでHDCやHFONTなどにも使えるよ。 すでにMFCなどにラッパークラスがすでにあるから使わないだろうけど。
998 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 20:07:38.65 ID:ZphJ05zo.net] 昔はCRT依存しない実行ファイル作る意味もあったけど、C++が普通になったら もうそこはこだわらないね。
999 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 20:15:04.12 ID:gazg2F9T.net] >>980 プラットホーム不問にしなきゃいけないような有益なプログラムを書ける人なんてほぼいないだろ boostライブラリみたいなものなら、プラットホーム固有のものを使っちゃいかないけど、あんなライブラリを書ける人なんて世界でも100人もいないだろ
1000 名前:デフォルトの名無しさん [2019/02/26(火) 20:22:51.49 ID:K9v1e6Ic.net] WindowsAPI直呼びを避ける動きは、主にゲーム業界からのニーズで発生するんだけどねぇ。
1001 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 23:03:56.44 ID:D7AA7sgA.net] >>983 CRTに脆弱性があってから分離が当たり前になった気がするなあ 分離しておかないとパッチがあたらないし
1002 名前:デフォルトの名無しさん mailto:sage [2019/02/26(火) 23:06:10.50 ID:D7AA7sgA.net] >>984 今時のシステムはWindowsなのかLinuxなのか、上の人はコストしか見ないから どっちでも行けるようにしておかないと下っ端は辛い状況になるよ。 外注に出す金があるならそんなみみっちいことは言われないわけで。
1003 名前:デフォルトの名無しさん [2019/02/26(火) 23:39:30.91 ID:K9v1e6Ic.net] >>986 ブラウン管ディスプレイのきじゃくせい(なぜか変換できない)なんてどうでもいいだろ。
1004 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 01:01:50.92 ID:QPgoOUvU.net] strsafe.h
1005 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 03:28:19.50 ID:32GlVML2.net] >>988 もしかして:ぜいじゃくせい
1006 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 07:27:37.75 ID:5GOwcvUn.net] >>986 CRTに依存しないってのはstaticでもdynamicでも使わないって意味。昔はあったんだけどね。
1007 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 07:35:30.59 ID:L5IXP2k2.net] >>990 お前すげーな、漢検でも持ってるのか? って言われたいのかなぁw
1008 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 09:32:05.81 ID:TPOAkFQ/.net] ネタをネタと
1009 名前:デフォルトの名無しさん [2019/02/27(水) 09:44:25.02 ID:TXzf+Z8H.net] 申し訳ないが、心臓再同期療法の話はスレ違いなのでよそでやってくれ。
1010 名前:デフォルトの名無しさん mailto:sage [2019/02/27(水) 15:18:35.62 ID:Gg4oALq7.net] 脆弱性という文字は脆弱性と読んでしまう脆弱性がある 次スレ mevius.5ch.net/test/read.cgi/tech/1551247748/
1011 名前:デフォルトの名無しさん mailto:sage [2019/03/01(金) 13:25:53.11 ID:wtAGrKTy.net] \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴ……!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, //三/|三|\ ,,,, ,,、,、,,, ∪ ∪ ,, , ,,,, ,,、,、,,, ,,、,、,,, ,,,,, ∧_∧ うまいモナー,,,,, 、 ,,,,,, ,,,,,,,, ,,,,, ,,, ( ´∀`)___,,,,___ ,, ∧_∧ ゲンキニ シテルカナ・・・___,, / ̄ ( つ日ヽ ∧_∧ ( ) / / (__)) (´∀` ) ( ) ∧_∧∧_∧ / マターリモナー ∧_∧∧_∧ドーゾ (日ノ ) | | | ( ´∀`) ´∀`) ( ´∀`) ´∀`) ((__) ,(_(_) (○)⊂ ) つ日⊂ ) モーナー ―(つ⊂ ) つ⊂ )―――――――――――ヽ|〃(⌒)(⌒) (⌒)(⌒) (⌒)(⌒) (⌒)(⌒)グーグー
1012 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 18:40:33.11 ID:5EsDLzeQ.net] SendMessage(WM_CLOSE);
1013 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 18:41:27.12 ID:5EsDLzeQ.net] SendMessage(WM_SYSCOMMAND, SC_CLOSE);
1014 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 18:42:26.83 ID:5EsDLzeQ.net] PostQuitMessage(5963);
1015 名前:デフォルトの名無しさん [2019/03/03(日) 18:44:07.75 ID:5EsDLzeQ.net] TerminateProcess(hProcess, 5963);
1016 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 476日 23時間 21分 7秒
1017 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています