Win32API質問箱 Build125

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/02/27(水) 15:09:08.64ID:6ExXwgQU
Win32APIについての質問はこちらへどうぞ。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
 英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

■過去スレ
Win32API質問箱 Build124
http://mevius.5ch.net/test/read.cgi/tech/1510395780/
Win32API質問箱 Build123
http://mevius.2ch.net/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.net/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.net/test/read.cgi/tech/1428570962/

■関連スレ
Visual Studio 2019
http://mevius.5ch.net/test/read.cgi/tech/1548765663/
Visual Studio 2017 Part6
http://mevius.5ch.net/test/read.cgi/tech/1528645068/
【C++】 DirectX初心者質問スレ Part41 【C】
http://mevius.5ch.net/test/read.cgi/tech/1521786252/
83デフォルトの名無しさん
垢版 |
2019/04/25(木) 21:22:22.93ID:OZvMAFB5
EnumDateFormatsExEx() で取得できる書式を使っても、GetDateFormatEx()では「西暦」を含む文字列は出力されない。
となるとMozilla Thunderbirdは書式に含まれるggを独自に「西暦」という文字列に置換していると予想できる。
84デフォルトの名無しさん
垢版 |
2019/04/25(木) 22:18:02.14ID:jqthfa4A
>>83
紀元前を意識してるんだっけ?

Windowsがそんな昔を想定して作られているとは思えぬ。
2019/04/25(木) 23:33:13.95ID:ts61mY/0
キリスト再臨を意識してるんだろう
2019/04/25(木) 23:33:38.87ID:jZ4+eHeJ
>>82
アホか、元号について調べてから出直してこいよ
ちなみに西暦は紀元な
2019/04/26(金) 00:58:40.96ID:vOVYhDJF
>>84
さすがにグレゴリウス暦だろうなあ
88デフォルトの名無しさん
垢版 |
2019/04/26(金) 06:15:41.35ID:RL3aG5HG
SYSTEMTIME structure
https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-systemtime
The year. The valid values for this member are 1601 through 30827.
89デフォルトの名無しさん
垢版 |
2019/04/26(金) 14:04:32.85ID:LLMkwGoL
>>86
西暦はそういう年号なんだよ。まともに調べてものを言えよ!
2019/04/26(金) 14:36:49.17ID:W8c6vXCR
>>89
元号と年号の区別もつかないアホは黙っとけw
2019/04/26(金) 15:04:24.87ID:7UckC18L
ほんとアホばっかw
西暦xxxx年って書き方は普通だよ

平成は元号であり年号でもある
西暦は年号だけど元号ではない
>>81は「年号表示」という訳にしとくのがいい
92デフォルトの名無しさん
垢版 |
2019/04/26(金) 19:32:27.95ID:RL3aG5HG
60 名前:名無しさん@1周年[sage] 投稿日:2019/04/26(金) 17:07:27.22 ID:ZP74hWkE0
access2016は対応済みだな、表示をgee/mm/ddにしてH31/05/01と入力するとR01/05/01と変換してくれる。
ちなみに2007だとR01/05/01と入力するとご丁寧にもH31/05/01と変換してくれるw
そこまでやるならきちんと対応しろと言いたい。
2019/04/26(金) 19:46:10.67ID:wYSD0glh
大規模開発の時に役立つ

・モジュール間の結合を下げて、作業分担・デバック・例外処理の範囲を明確化できる
・継承の型指定で、質がピンキリなプログラマーたちの実装を縛れる
・オブジェクト指向の思想は直感的でわかりやすいから、頭の弱いPGにも理解させやすい

特にプログラマーの質が低い時は、javaを使わないと大規模開発できない
94デフォルトの名無しさん
垢版 |
2019/04/26(金) 19:46:49.95ID:pk1a8vBU
>>92
まだ改元された訳じゃないからそれで正しい

5/1 以降は動作が変わるはず
2019/04/26(金) 20:04:46.99ID:vOVYhDJF
>>92
運転免許の表記がH35だが、勝手にRに変えられても困る
2019/04/26(金) 20:07:40.50ID:QuMKW8xW
S64年からH1年 と書くようになった時、たぶんあまり違和感を感じなかったと思うが
R1年ってなんか妙だな

R1とか書かれたら国一と勘違いしそう
2019/04/26(金) 20:48:26.22ID:/RLYU0hs
令和18年にR18ネタが大量発生する予感
98デフォルトの名無しさん
垢版 |
2019/04/26(金) 21:06:12.68ID:rqrZnamv
自作アプリで、他アプリがアクティブなときでもマウスイベントを監視するために、
SetWindowsHookEx(WH_MOUSE_LL, HookProc, hmod, 0);
とすると、確かにHookProcが呼ばれますが、
アクティブな他アプリが管理者特権あり(タスクマネージャとか)だと呼ばれません。

その場合でも、自作アプリが管理者特権ありで実行されていれば、
ちゃんとHookProcが呼ばれます。

自作アプリを管理者特権なしの通常の実行時でも、
タスクマネージャとかがアクティブなときのマウスイベントを監視するには
どうすればいいのでしょうか?

フリーソフトのX-Mouse Button Controlとか、StrokesPlusとか、
ではできているようなので、なにかしら方法はあると思うのですが。

(win10, 64bit)
2019/04/26(金) 23:16:56.39ID:vOVYhDJF
自分より上位の権限で動作してるプログラムの動作を盗めちゃったら
特権の意味がないじゃん
2019/04/27(土) 01:51:35.35ID:yvp3RQsi
そういう場合setupでSYSTEMで動くサービスをこっそり仕込んどくんだよ
2019/04/27(土) 17:05:51.62ID:WooJ2l2s
フックを仕込むプロセスを管理者権限で起動すればいいだけでは
2019/04/27(土) 18:26:23.20ID:6JD570yx
こっそり悪いことをしたいのに、それでは困るんです!!
詳しい人だけレスしてください!!
10398
垢版 |
2019/04/27(土) 19:02:31.25ID:FkFh7/lX
マウスジェスチャツールの類って、
管理者権限アプリがアクティブな時は動作しません、
ってわけにはいかず、
実際、例示したソフトは管理者権限なくても
ちゃんと動作してて、これって一体どうやって実現してるんだろう?
という純粋な興味と、
できれば管理者権限はあまり濫用したくないのと。
2019/04/27(土) 19:08:42.81ID:yvp3RQsi
たとえばUACの画面でも動いてるってことは管理者特権で動いてるってことだよ
2019/04/28(日) 04:58:00.18ID:j843ApD7
>>100だよね
2019/04/28(日) 16:27:22.99ID:iQtWq0Ma
>>103
すでに試しているかもしれないけど、同じようにキーフックとマウスフックする
プログラムで試したら、同じようにタスクマネージャがアクティブウィンドウに
なっていると反応しなくなったので、アプリ自体を管理者権限で起動したら
動作するようになったよ

なので、手作業で管理者権限で実行しなくてもうまく動作するアプリは内部で
権限の取得を行っているんだと思うけど

試していないので分からないけど「"windows10" "管理者権限" 取得 api」
あたりでぐぐるとヒントあるかも
107デフォルトの名無しさん
垢版 |
2019/05/02(木) 19:34:03.04ID:vshP5qNq
エディタボックスの EM_GETFILELINE について教えろ下さい。
2019/05/02(木) 22:27:42.89ID:XhxUsVCI
指定したファイル(または論理)行のテキストを取得します(テキストの折り返し区切り文字は無視されます)。このマクロを使用するか、EM_GETFILELINEメッセージを明示的に送信することができます。
109デフォルトの名無しさん
垢版 |
2019/05/04(土) 14:13:39.47ID:mtwbaS1U
改元を契機に、OSの日付表示を「和暦」にすることをお勧めしたい。
エクスプローラで日付に曜日をつけられるのは「和暦」だけ。
ファイル一覧の更新日時に曜日が表示されていると便利だよ。
2019/05/04(土) 21:51:14.91ID:a8KzjyU7
パソコン初心者スレで言ってろよw
曜日が欲しいのにないなら自分で表示すればいいだろ
111デフォルトの名無しさん
垢版 |
2019/05/04(土) 22:24:07.50ID:mtwbaS1U
そもそも日付設定を西暦にすると短い書式で曜日表示できないWindows10の仕様は不便だと思うけど、どうよ?
2019/05/04(土) 23:01:24.11ID:mp9Fg+WJ
タスクバーは非表示にしてるからそいつに頼ることがない
2019/05/05(日) 00:10:59.90ID:QZI32h5J
>>111
設定→時刻と言語→地域→日付、時刻、地域の追加設定→日付、時刻、または数値の形式の変更→追加の設定→日付タブ→短い形式をyyyy/MM/dd '('ddd')'にする
114デフォルトの名無しさん
垢版 |
2019/05/05(日) 15:39:35.92ID:vTdWYBgo
合紫盾ニ比べて
令和の合字は横幅が広く作られているようだ
バグ出るソフト多数
2019/05/05(日) 15:56:15.83ID:HdQlTZxY
その程度で誤動作するようなソフトはもとからバグまみれなんじゃないか?
2019/05/05(日) 17:33:49.39ID:BlnSuy3y
これすごいよ。試してみてね。

【ソフト名】vista2xp
【URL】http://github.com/katahiromz/vista2xp
【説明】Vista/7/10向けのアプリをXP向けアプリに変換できるかもしれないソフト
2019/05/05(日) 17:57:18.06ID:3Dri8dsV
>>116
最近気にも留めてかなかったけど
とうとうスパム業者のレベルにまで落ちぶれたんだな片山
2019/05/05(日) 18:58:37.17ID:BlnSuy3y
archive.2ch-ranking.net/tech/1407006123.html#97

ここにXPで動かしたいという要望があったから書き込んだのに。。。
2019/05/05(日) 20:25:34.20ID:KHPeL5hx
凄さわかります?
120デフォルトの名無しさん
垢版 |
2019/05/06(月) 18:57:39.39ID:o0+2Jvom
ヤバさ10000倍
2019/05/06(月) 19:41:50.63ID:lfqhRR/k
5年前のレスなのに・・・・ヤバイ
12298
垢版 |
2019/05/08(水) 19:24:40.51ID:6PpqmmLA
マニフェストで、uiAccess='true'とし、オレオレ証明書で署名すると、
自アプリに管理者権限がなくても、
管理者権限ありの他アプリがアクティブな時にもマウスのフックが効くようになりました。
(結果的にはスレ違いだったか?)
2019/05/08(水) 19:58:08.02ID:h6vLlN0g
>>122
なかなかやるじゃないの
2019/05/08(水) 22:35:29.55ID:VmC21Scz
へー
2019/05/16(木) 09:59:35.10ID:q0mRunzJ
リストコントロールをLVS_OWNERDATAで仮想リストビューとして使う際、
LVS_EX_FULLROWSELECTを付けていないと、
マウスで先頭からガーっと範囲選択を広げながらスクロールさせてるときに
どんどん重くなっていくんだけど、これは防ぎようがないんですかね。
LVS_EX_FULLROWSELECTを付けるとそんなことになはならないです。

確かに、LVS_EX_FULLROWSELECTを付けてないときは、
選択範囲内のY座標に含まれるすべてのアイテムに対して、
先頭カラムの文字の長さを見なければいけないのはわかるんだけど。
126デフォルトの名無しさん
垢版 |
2019/05/16(木) 11:56:46.64ID:Ox4fjiQE
やり方かえろ
そんなインターフェースが万一速くなってもだれも喜ばない
127デフォルトの名無しさん
垢版 |
2019/05/16(木) 14:14:30.40ID:ehYc/git
元号の構造体が「明治、大正、昭和、平成」の4択しか無かったとかいうアホな仕様もアホかも知れないが(Windows31の頃か?)
改元が決まってから今年に入るまで完全放置プレイだったってのも何だかなあ

その構造体の修正も、その単体パッチに含まれてるのよ
2019/05/16(木) 15:50:11.52ID:U2hw1vcW
>>125
完全に横で関係ない話だけど、仮想リストビューって名称が取っつきにくくて分かりにくいと思ってた。
LVS_OWNERDATAって名前付けてくれてマジありがとうだった思い出。
2019/05/17(金) 09:22:15.27ID:WU6BNfa1
>>126
ユーザーから指摘された挙動です。
マウスで範囲選択できるリストビューというのは普通だし、
項目が多いから仮想リストにするのも別に間違ってないはずだし、
その二つを組み合わせたら駄目という暗黙ルールなんですかね。
2019/05/17(金) 09:46:25.79ID:LE8qq7Xv
>>129
2個目〜5個目を選択するとして
2個目を選択した状態で5個目をShift+クリックじゃダメなん?
131デフォルトの名無しさん
垢版 |
2019/05/17(金) 11:45:00.31ID:CPhGekQ/
Edge、FirefoxなどWebブラウザのJavascriptが新元号の令和に対応してない。
なぜかIE11は令和に対応済み。
2019/05/23(木) 10:54:32.01ID:O47OnyW4
>>130
もちろんその操作は理解していますが、回避方法の質問ではなく、
ユーザーが範囲選択しただけで処理が極端に重くなるというのが疑問でした。
処理が遅くならないようにするためのLVS_OWNERDATAだと思ってたので。
2019/05/23(木) 12:16:50.69ID:U0EOYL7g
LVN_GETDISPINFOの処理にミスはないの?
LVS_OWNERDATAとLVS_EX_FULLROWSELECTどっちも使わないときの
処理速度も遅いんなら仕様だと思うけどね
2019/05/28(火) 12:39:31.20ID:V7/pYf2g
>>133
以下のような、連番を表示するだけの簡単なテストでも発生します。
MFCのコードだけど、結局はAPIなので原理は同じはず。

IDC_LIST1もIDC_LIST2も、ダイアログエディタ上で置いたリストコントロールで、
リスト関連のスタイルはLVS_OWNERDATAを付けただけ。

IDC_LIST1のほうはマウスで選択範囲を広げていくとどんどん遅くなります。
LVS_EX_FULLROWSELECTを付けたIDC_LIST2のほうは全く遅くなりません。

m_list1.SetExtendedStyle(m_list1.GetExtendedStyle() | LVS_EX_DOUBLEBUFFER);
m_list1.InsertColumn(0, _T("カラム"), LVCFMT_LEFT, 100);
m_list1.SetItemCountEx(10000);

m_list2.SetExtendedStyle(m_list2.GetExtendedStyle() | LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT);
m_list2.InsertColumn(0, _T("カラム"), LVCFMT_LEFT, 100);
m_list2.SetItemCountEx(10000);

LVN_GETDISPINFOハンドラ
{
  NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);
  LVITEM* pItem = &pDispInfo->item;
  if (pItem->mask & LVIF_TEXT) {
    CString strItem;
    strItem.Format(_T("%d"), pItem->iItem);
    _tcsncpy_s(pItem->pszText, pItem->cchTextMax, strItem, _TRUNCATE);
  }
  *pResult = 0;
}
135デフォルトの名無しさん
垢版 |
2019/05/28(火) 12:51:33.37ID:EOiH5L82
マンコが臭い
136デフォルトの名無しさん
垢版 |
2019/06/04(火) 08:10:51.94ID:HNHYFj8Q
デスクトップで右クリメニューの「ディスプレイ設定」→
ディスプレイ詳細設定→
ディスプレイ1のアダプターのプロパティを表示します→
専用ビデオメモリ: 128MB
↑この値を取得したいんですけど方法分る人居ますか?

Win32APIで無理なら他の方法でもいいので。
2019/06/04(火) 09:43:34.64ID:RcmlQznO
https://code.msdn.microsoft.com/DirectX-Video-Memory-ee7d8319/sourcecode?fileId=92531&;pathId=2014969931
2019/06/04(火) 10:38:23.73ID:HNHYFj8Q
>>137
ありがとうございます!助かりました!
2019/06/07(金) 09:56:48.90ID:DnFV7L+4
https://docs.microsoft.com/en-us/windows/desktop/api/commctrl/nf-commctrl-listview_getitemcount

戻り値voidでどうやってアイテムの数取得するんだw

マクロ関数だと全て無条件で戻り値voidになってるっぽいな
誰も指摘しないんだろうかね
2019/06/07(金) 11:32:17.95ID:PPbCM9Wo
誰も消防車を呼んでいない精神に基づいてフィードバックしといたよ
141デフォルトの名無しさん
垢版 |
2019/06/07(金) 11:41:35.06ID:nJu+ZeI9
GetLastResult()
2019/06/08(土) 19:35:27.05ID:RlSH8i12
コモンコントロールは作りもAPIも割といい加減だよ
不具合の原因がコレだったみたいなの多すぎ
2019/06/09(日) 08:12:49.27ID:jumrM7iv
>>139
LVM_GETITEMCOUNT を直で使うしかなさそうだな
ラッパー関数がある場合はSendMessageは使うなというくせに無茶ぬかす連中だ
2019/06/09(日) 08:49:26.37ID:8KChITol
>>143
何を言ってるんだ
2019/06/09(日) 09:13:16.09ID:SyILEOwA
ドキュメントが間違っているだけ。
マクロはintを返すように正しく定義されている。

=== CommCtrl.h ===
#define LVM_GETITEMCOUNT (LVM_FIRST + 4)
#define ListView_GetItemCount(hwnd) (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, 0L)
2019/06/09(日) 11:16:09.70ID:wmlwj4f3
>>139
> マクロ関数だと全て無条件で戻り値voidになってるっぽいな
何かで自動生成してるんじゃね
IDEなら>>145の様に内容確認するのも容易だからたいした問題じゃないわな
まあMSしっかりしろよとは思うが
147デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:17:42.54ID:Ko0/a2ew
>ラッパー関数がある場合はSendMessageは使うなというくせに

言ってることとやってる事が違うっていう意味かと

>>144
アスペか
2019/06/09(日) 12:52:47.40ID:VLDoaadq
>>147
???

だからドキュメントのシグネチャが間違ってるだけで「マクロの方を使えと」いう方針とやってることが違うというわけじゃねえだろ
「LVM_GETITEMCOUNTを使うしかない」とか言ってる時点で実際の定義もそうなってると勘違いしてるからなw

ちなみにmsdnのドキュメントは合ってる(https://msdn.microsoft.com/en-us/windows/desktop/bb774957

MSも雑だしアプリ開発者の方も雑だなってだけの話
2019/06/09(日) 15:47:59.75ID:2sqBIYy9
雑同士の雑な殴り合い
150デフォルトの名無しさん
垢版 |
2019/06/09(日) 16:01:22.43ID:P23LzvOV
SendMessage()でもマクロでもメンバ関数でもどれでもいいけど、「GETITEMCOUNT」で大小文字区別なしでキーワード検索できるようにしておくことが重要でしょ。
各開発環境に付属するメソッド参照だけだと追跡しきれないので結局、原始的なキーワード検索になる。
2019/06/09(日) 16:38:58.71ID:8KChITol
>>147
> 直で使うしかなさそう
> ラッパー関数
何を言ってるんだ
2019/06/09(日) 18:30:20.13ID:jumrM7iv
教祖様に批判的な意見には無差別な敵意にかられる信者がここにはいるようだね
2019/06/09(日) 18:55:06.29ID:8KChITol
的外れな事が批判的な意見か
2019/06/09(日) 19:11:47.62ID:jumrM7iv
>>153
ListView_GetItemCountの返却値がvoidというmsdnの公式発表を批判しているのだが
何がどう的外れとおまえさんはぬかすんだ?

typoなら訂正すべきところ、それすら行われていないんだが
おまえさんとこの自転車操業を自転車操業だから大目に見ろという論法を一般化しようってか?
2019/06/09(日) 19:20:30.28ID:wmlwj4f3
横からだけど…
> 何がどう的外れとおまえさんはぬかすんだ?
>>143 > LVM_GETITEMCOUNT を直で使うしかなさそうだな
2019/06/09(日) 19:39:45.23ID:jumrM7iv
>>155
それがどう的外れなんだ? msしっかりしろと、あんたが言ったんだが
2019/06/09(日) 20:00:24.85ID:881O2WpS
皮肉であることが俺含めて伝わっていなかったらしい
2019/06/09(日) 20:09:15.52ID:8KChITol
>>154
だから引用してるやん

> LVM_GETITEMCOUNT を直で使うしかなさそうだな
> ラッパー関数がある場合はSendMessageは使うなというくせに

ListView_GetItemCountを使ってもSendMessageにLVM_GETITEMCOUNTを指定しても
全く同じって事が理解できていないから>>143みたいな発言になるんだろ
2019/06/09(日) 20:24:49.88ID:2sqBIYy9
暇そうだな
2019/06/09(日) 20:55:51.32ID:wmlwj4f3
>>156
ドキュメントの話と実際の実装の話の区別もついてないから指摘されてる
>>148がはっきり書いてるだろ
皮肉だと言い訳するならそれでもいいけどw
2019/06/09(日) 22:37:10.83ID:5tHDq89F
LVM系ってSendMessageで構造体のポインタ渡すマンだから
外部プロセスから弄ろうとすると面倒すぎる
162デフォルトの名無しさん
垢版 |
2019/06/10(月) 12:33:46.13ID:g6tidy/F
>>154
MSのいつもの言い訳「仕様です」

つまりvoidのtypoは仕様だ
163デフォルトの名無しさん
垢版 |
2019/06/10(月) 12:42:02.76ID:5kEo9ezr
>>158
>>143 を擁護するつもりは無いが
>ListView_GetItemCountを使ってもSendMessageにLVM_GETITEMCOUNT
同じ機能だということも承知の上で

「LVM_GETITEMCOUNT を直で使うしかなさそうだな」→オレオレ関数を造りたいのにオレには造らせない
「ラッパー関数がある場合はSendMessageは使うなというくせに」→MS自身はSNDMSGを使ってる

論点が違うんだよ
MS自身が用意した(SendMessageを使った)ラッパー関数を使えという主張に納得するかしないかの問題

>>143
MS無視して(SendMessageを使った)ラッパー関数を自分で造ったら使ってもいいだろってことで
「ラッパー関数がある場合はSendMessageは使うな」に意味が無いと言いたいんだろ

漏れはエントロピー増やすのは反対
2019/06/10(月) 13:08:37.02ID:gj8XPCJq
>>163
>>143じゃないならそのエスパーもややこしくしてるだけやん?
論点もそっちがズレてるような
というか「MS自身が用意した(SendMessageを使った)ラッパー関数」とか言ってるし
他人のふりした>>143か、>>147もそうだったのか、とすら思える

どっちが>>143の意図だったにせよ的外れなのには変わりないけどな
165デフォルトの名無しさん
垢版 |
2019/06/10(月) 13:17:29.12ID:5kEo9ezr
どっちでもいいな
voidじゃないのにvoidと書かれてるのが問題なんだから
2019/06/10(月) 13:19:51.67ID:Fv0cH94V
>>164>>143 である可能性も否定できない
2019/06/10(月) 13:33:14.11ID:gj8XPCJq
自分で自分を否定するのか

そして>>166>>143である可能性も
でいいのかな
2019/06/10(月) 15:19:10.62ID:U3FSgHuu
ここまで漏れの自演
2019/06/10(月) 18:54:19.05ID:h2AhNEsP
すごいレスが伸びてると思ったら・・・・

人と人をいがみ合わせるMSが巨悪だということで手打ちにしたらいかがだろうか
170デフォルトの名無しさん
垢版 |
2019/06/10(月) 19:18:33.98ID:Fj7bi2y1
ドキュメントが間違ってたぐらいで鬼の首取ったようにギャアギャア騒ぐことが許されるのは初心者のうちだけでしょ。
2019/06/10(月) 19:34:39.88ID:OlE51f/u
単なる指摘に>>143が過剰反応してるだけ
2019/06/10(月) 22:22:35.68ID:aj7K9vQb
>>158
何だおまえさん、MSKKの社員がここでどうたらぬかしてるとでもぬかすのか?
だったら、それを公式見解と断る必要があるんだが
2019/06/10(月) 22:23:29.07ID:aj7K9vQb
>>162
ほんこれ
2019/06/10(月) 22:29:27.87ID:TC6Uh5Cw
またエントロピーが増えてきたw
2019/06/11(火) 09:28:10.66ID:oRHFwQ78
>>172
誰もそんな事言ってないけど?
2019/06/11(火) 14:20:31.55ID:lbh69FdF
初心者質問です。
VBAからIEで印刷するときにプリンター選択を自由に行いたいです。

プリンタを選択する部分は、syslistview32というクラス名で、hwndまでわかっています。
sendmessageの、LVM_GETITEMCOUNTで、プリンターの数まで取得できることを確認しました。
今は、LVM_SETITEMSTATEで、構造体とテキトーなindexをsetして、sendmessageをしたら、IEが落ちてしまうような状態です。

メモリー書き込みも考慮しなければいけないなど情報も見かけましたが、VBA半年程度しかやっていないので、OSに近い処理は何から調べたらいいのかわかりません

プリンター名が指定の文字列に該当するもののindexをsyslistview32から取得し、syslistview32の選択をそのindexにするような、VBAのコードをお教えいただくことはできないでしょう。(Cなどでも大丈夫です。)

以上、よろしくお願いします。
2019/06/11(火) 14:27:56.01ID:Y18rXsQw
LVM_GETITEMCOUNT を NG にした
残念だったな
2019/06/11(火) 15:50:09.81ID:mh1wU8om
とばっちりカワイソス
2019/06/11(火) 16:15:17.11ID:DThKFJnr
LVM_GETITEMCOUNTって書いとけばキチガイ一人避けれるということでしょ
2019/06/11(火) 16:18:02.74ID:DThKFJnr
>>176
デフォルトのプリンタを取得して保存しとく
デフォルトのプリンタ変更する
IEで印刷開始
デフォルトのプリンタもとに戻す

こんなんじゃだめなのか?
2019/06/11(火) 16:34:17.98ID:+sMFHfdj
LVM_GETITEMCOUNT スレッドまたぎはNG
2019/06/11(火) 17:55:31.55ID:b3tPk+od
>>180
ありがとうございます
今はそれで運用しているのですが、デフォルトプリンターを変更しても、IEで現在立ち上げているページのプリンターの選択は変わりませんでした。(新しいタブやページなどは変わる)

ですので、デフォルトプリンターを変更した後タブを複製して、そのタブをアクティブにして、複製されていないhtmlの箇所をコピーして、印刷して、タブを閉じて、デフォルトプリンターを元に戻すような処理にしています。

プリンターを変更しないといけない処理が過去にあったりしたそうなので、その場でプリンター選択を操作できるのであれば、知りたいという感じです
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況