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/
Win32API質問箱 Build125
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/02/27(水) 15:09:08.64ID:6ExXwgQU117デフォルトの名無しさん
2019/05/05(日) 17:57:18.06ID:3Dri8dsV118さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/05/05(日) 18:58:37.17ID:BlnSuy3y archive.2ch-ranking.net/tech/1407006123.html#97
ここにXPで動かしたいという要望があったから書き込んだのに。。。
ここにXPで動かしたいという要望があったから書き込んだのに。。。
119さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/05/05(日) 20:25:34.20ID:KHPeL5hx 凄さわかります?
120デフォルトの名無しさん
2019/05/06(月) 18:57:39.39ID:o0+2Jvom ヤバさ10000倍
121デフォルトの名無しさん
2019/05/06(月) 19:41:50.63ID:lfqhRR/k 5年前のレスなのに・・・・ヤバイ
12298
2019/05/08(水) 19:24:40.51ID:6PpqmmLA マニフェストで、uiAccess='true'とし、オレオレ証明書で署名すると、
自アプリに管理者権限がなくても、
管理者権限ありの他アプリがアクティブな時にもマウスのフックが効くようになりました。
(結果的にはスレ違いだったか?)
自アプリに管理者権限がなくても、
管理者権限ありの他アプリがアクティブな時にもマウスのフックが効くようになりました。
(結果的にはスレ違いだったか?)
123デフォルトの名無しさん
2019/05/08(水) 19:58:08.02ID:h6vLlN0g >>122
なかなかやるじゃないの
なかなかやるじゃないの
124デフォルトの名無しさん
2019/05/08(水) 22:35:29.55ID:VmC21Scz へー
125デフォルトの名無しさん
2019/05/16(木) 09:59:35.10ID:q0mRunzJ リストコントロールをLVS_OWNERDATAで仮想リストビューとして使う際、
LVS_EX_FULLROWSELECTを付けていないと、
マウスで先頭からガーっと範囲選択を広げながらスクロールさせてるときに
どんどん重くなっていくんだけど、これは防ぎようがないんですかね。
LVS_EX_FULLROWSELECTを付けるとそんなことになはならないです。
確かに、LVS_EX_FULLROWSELECTを付けてないときは、
選択範囲内のY座標に含まれるすべてのアイテムに対して、
先頭カラムの文字の長さを見なければいけないのはわかるんだけど。
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の頃か?)
改元が決まってから今年に入るまで完全放置プレイだったってのも何だかなあ
↓
その構造体の修正も、その単体パッチに含まれてるのよ
改元が決まってから今年に入るまで完全放置プレイだったってのも何だかなあ
↓
その構造体の修正も、その単体パッチに含まれてるのよ
128デフォルトの名無しさん
2019/05/16(木) 15:50:11.52ID:U2hw1vcW129デフォルトの名無しさん
2019/05/17(金) 09:22:15.27ID:WU6BNfa1 >>126
ユーザーから指摘された挙動です。
マウスで範囲選択できるリストビューというのは普通だし、
項目が多いから仮想リストにするのも別に間違ってないはずだし、
その二つを組み合わせたら駄目という暗黙ルールなんですかね。
ユーザーから指摘された挙動です。
マウスで範囲選択できるリストビューというのは普通だし、
項目が多いから仮想リストにするのも別に間違ってないはずだし、
その二つを組み合わせたら駄目という暗黙ルールなんですかね。
130デフォルトの名無しさん
2019/05/17(金) 09:46:25.79ID:LE8qq7Xv131デフォルトの名無しさん
2019/05/17(金) 11:45:00.31ID:CPhGekQ/ Edge、FirefoxなどWebブラウザのJavascriptが新元号の令和に対応してない。
なぜかIE11は令和に対応済み。
なぜかIE11は令和に対応済み。
132デフォルトの名無しさん
2019/05/23(木) 10:54:32.01ID:O47OnyW4 >>130
もちろんその操作は理解していますが、回避方法の質問ではなく、
ユーザーが範囲選択しただけで処理が極端に重くなるというのが疑問でした。
処理が遅くならないようにするためのLVS_OWNERDATAだと思ってたので。
もちろんその操作は理解していますが、回避方法の質問ではなく、
ユーザーが範囲選択しただけで処理が極端に重くなるというのが疑問でした。
処理が遅くならないようにするためのLVS_OWNERDATAだと思ってたので。
133デフォルトの名無しさん
2019/05/23(木) 12:16:50.69ID:U0EOYL7g LVN_GETDISPINFOの処理にミスはないの?
LVS_OWNERDATAとLVS_EX_FULLROWSELECTどっちも使わないときの
処理速度も遅いんなら仕様だと思うけどね
LVS_OWNERDATAとLVS_EX_FULLROWSELECTどっちも使わないときの
処理速度も遅いんなら仕様だと思うけどね
134デフォルトの名無しさん
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;
}
以下のような、連番を表示するだけの簡単なテストでも発生します。
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で無理なら他の方法でもいいので。
ディスプレイ詳細設定→
ディスプレイ1のアダプターのプロパティを表示します→
専用ビデオメモリ: 128MB
↑この値を取得したいんですけど方法分る人居ますか?
Win32APIで無理なら他の方法でもいいので。
137蟻人間 ◆T6xkBnTXz7B0
2019/06/04(火) 09:43:34.64ID:RcmlQznO138デフォルトの名無しさん
2019/06/04(火) 10:38:23.73ID:HNHYFj8Q >>137
ありがとうございます!助かりました!
ありがとうございます!助かりました!
139デフォルトの名無しさん
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になってるっぽいな
誰も指摘しないんだろうかね
戻り値voidでどうやってアイテムの数取得するんだw
マクロ関数だと全て無条件で戻り値voidになってるっぽいな
誰も指摘しないんだろうかね
140デフォルトの名無しさん
2019/06/07(金) 11:32:17.95ID:PPbCM9Wo 誰も消防車を呼んでいない精神に基づいてフィードバックしといたよ
141デフォルトの名無しさん
2019/06/07(金) 11:41:35.06ID:nJu+ZeI9 GetLastResult()
142デフォルトの名無しさん
2019/06/08(土) 19:35:27.05ID:RlSH8i12 コモンコントロールは作りもAPIも割といい加減だよ
不具合の原因がコレだったみたいなの多すぎ
不具合の原因がコレだったみたいなの多すぎ
143デフォルトの名無しさん
2019/06/09(日) 08:12:49.27ID:jumrM7iv144デフォルトの名無しさん
2019/06/09(日) 08:49:26.37ID:8KChITol >>143
何を言ってるんだ
何を言ってるんだ
145デフォルトの名無しさん
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)
マクロはintを返すように正しく定義されている。
=== CommCtrl.h ===
#define LVM_GETITEMCOUNT (LVM_FIRST + 4)
#define ListView_GetItemCount(hwnd) (int)SNDMSG((hwnd), LVM_GETITEMCOUNT, 0, 0L)
146デフォルトの名無しさん
2019/06/09(日) 11:16:09.70ID:wmlwj4f3147デフォルトの名無しさん
2019/06/09(日) 11:17:42.54ID:Ko0/a2ew148デフォルトの名無しさん
2019/06/09(日) 12:52:47.40ID:VLDoaadq >>147
???
だからドキュメントのシグネチャが間違ってるだけで「マクロの方を使えと」いう方針とやってることが違うというわけじゃねえだろ
「LVM_GETITEMCOUNTを使うしかない」とか言ってる時点で実際の定義もそうなってると勘違いしてるからなw
ちなみにmsdnのドキュメントは合ってる(https://msdn.microsoft.com/en-us/windows/desktop/bb774957)
MSも雑だしアプリ開発者の方も雑だなってだけの話
???
だからドキュメントのシグネチャが間違ってるだけで「マクロの方を使えと」いう方針とやってることが違うというわけじゃねえだろ
「LVM_GETITEMCOUNTを使うしかない」とか言ってる時点で実際の定義もそうなってると勘違いしてるからなw
ちなみにmsdnのドキュメントは合ってる(https://msdn.microsoft.com/en-us/windows/desktop/bb774957)
MSも雑だしアプリ開発者の方も雑だなってだけの話
149デフォルトの名無しさん
2019/06/09(日) 15:47:59.75ID:2sqBIYy9 雑同士の雑な殴り合い
150デフォルトの名無しさん
2019/06/09(日) 16:01:22.43ID:P23LzvOV SendMessage()でもマクロでもメンバ関数でもどれでもいいけど、「GETITEMCOUNT」で大小文字区別なしでキーワード検索できるようにしておくことが重要でしょ。
各開発環境に付属するメソッド参照だけだと追跡しきれないので結局、原始的なキーワード検索になる。
各開発環境に付属するメソッド参照だけだと追跡しきれないので結局、原始的なキーワード検索になる。
151デフォルトの名無しさん
2019/06/09(日) 16:38:58.71ID:8KChITol152デフォルトの名無しさん
2019/06/09(日) 18:30:20.13ID:jumrM7iv 教祖様に批判的な意見には無差別な敵意にかられる信者がここにはいるようだね
153デフォルトの名無しさん
2019/06/09(日) 18:55:06.29ID:8KChITol 的外れな事が批判的な意見か
154デフォルトの名無しさん
2019/06/09(日) 19:11:47.62ID:jumrM7iv >>153
ListView_GetItemCountの返却値がvoidというmsdnの公式発表を批判しているのだが
何がどう的外れとおまえさんはぬかすんだ?
typoなら訂正すべきところ、それすら行われていないんだが
おまえさんとこの自転車操業を自転車操業だから大目に見ろという論法を一般化しようってか?
ListView_GetItemCountの返却値がvoidというmsdnの公式発表を批判しているのだが
何がどう的外れとおまえさんはぬかすんだ?
typoなら訂正すべきところ、それすら行われていないんだが
おまえさんとこの自転車操業を自転車操業だから大目に見ろという論法を一般化しようってか?
155デフォルトの名無しさん
2019/06/09(日) 19:20:30.28ID:wmlwj4f3156デフォルトの名無しさん
2019/06/09(日) 19:39:45.23ID:jumrM7iv >>155
それがどう的外れなんだ? msしっかりしろと、あんたが言ったんだが
それがどう的外れなんだ? msしっかりしろと、あんたが言ったんだが
157デフォルトの名無しさん
2019/06/09(日) 20:00:24.85ID:881O2WpS 皮肉であることが俺含めて伝わっていなかったらしい
158デフォルトの名無しさん
2019/06/09(日) 20:09:15.52ID:8KChITol159デフォルトの名無しさん
2019/06/09(日) 20:24:49.88ID:2sqBIYy9 暇そうだな
160デフォルトの名無しさん
2019/06/09(日) 20:55:51.32ID:wmlwj4f3161デフォルトの名無しさん
2019/06/09(日) 22:37:10.83ID:5tHDq89F LVM系ってSendMessageで構造体のポインタ渡すマンだから
外部プロセスから弄ろうとすると面倒すぎる
外部プロセスから弄ろうとすると面倒すぎる
162デフォルトの名無しさん
2019/06/10(月) 12:33:46.13ID:g6tidy/F163デフォルトの名無しさん
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は使うな」に意味が無いと言いたいんだろ
漏れはエントロピー増やすのは反対
>>143 を擁護するつもりは無いが
>ListView_GetItemCountを使ってもSendMessageにLVM_GETITEMCOUNT
同じ機能だということも承知の上で
「LVM_GETITEMCOUNT を直で使うしかなさそうだな」→オレオレ関数を造りたいのにオレには造らせない
「ラッパー関数がある場合はSendMessageは使うなというくせに」→MS自身はSNDMSGを使ってる
論点が違うんだよ
MS自身が用意した(SendMessageを使った)ラッパー関数を使えという主張に納得するかしないかの問題
>>143 は
MS無視して(SendMessageを使った)ラッパー関数を自分で造ったら使ってもいいだろってことで
「ラッパー関数がある場合はSendMessageは使うな」に意味が無いと言いたいんだろ
漏れはエントロピー増やすのは反対
164デフォルトの名無しさん
2019/06/10(月) 13:08:37.02ID:gj8XPCJq165デフォルトの名無しさん
2019/06/10(月) 13:17:29.12ID:5kEo9ezr どっちでもいいな
voidじゃないのにvoidと書かれてるのが問題なんだから
voidじゃないのにvoidと書かれてるのが問題なんだから
166デフォルトの名無しさん
2019/06/10(月) 13:19:51.67ID:Fv0cH94V167デフォルトの名無しさん
2019/06/10(月) 13:33:14.11ID:gj8XPCJq168デフォルトの名無しさん
2019/06/10(月) 15:19:10.62ID:U3FSgHuu ここまで漏れの自演
169デフォルトの名無しさん
2019/06/10(月) 18:54:19.05ID:h2AhNEsP すごいレスが伸びてると思ったら・・・・
人と人をいがみ合わせるMSが巨悪だということで手打ちにしたらいかがだろうか
人と人をいがみ合わせるMSが巨悪だということで手打ちにしたらいかがだろうか
170デフォルトの名無しさん
2019/06/10(月) 19:18:33.98ID:Fj7bi2y1 ドキュメントが間違ってたぐらいで鬼の首取ったようにギャアギャア騒ぐことが許されるのは初心者のうちだけでしょ。
171デフォルトの名無しさん
2019/06/10(月) 19:34:39.88ID:OlE51f/u 単なる指摘に>>143が過剰反応してるだけ
172デフォルトの名無しさん
2019/06/10(月) 22:22:35.68ID:aj7K9vQb173デフォルトの名無しさん
2019/06/10(月) 22:23:29.07ID:aj7K9vQb >>162
ほんこれ
ほんこれ
174デフォルトの名無しさん
2019/06/10(月) 22:29:27.87ID:TC6Uh5Cw またエントロピーが増えてきたw
175デフォルトの名無しさん
2019/06/11(火) 09:28:10.66ID:oRHFwQ78 >>172
誰もそんな事言ってないけど?
誰もそんな事言ってないけど?
176デフォルトの名無しさん
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などでも大丈夫です。)
以上、よろしくお願いします。
VBAからIEで印刷するときにプリンター選択を自由に行いたいです。
プリンタを選択する部分は、syslistview32というクラス名で、hwndまでわかっています。
sendmessageの、LVM_GETITEMCOUNTで、プリンターの数まで取得できることを確認しました。
今は、LVM_SETITEMSTATEで、構造体とテキトーなindexをsetして、sendmessageをしたら、IEが落ちてしまうような状態です。
メモリー書き込みも考慮しなければいけないなど情報も見かけましたが、VBA半年程度しかやっていないので、OSに近い処理は何から調べたらいいのかわかりません
プリンター名が指定の文字列に該当するもののindexをsyslistview32から取得し、syslistview32の選択をそのindexにするような、VBAのコードをお教えいただくことはできないでしょう。(Cなどでも大丈夫です。)
以上、よろしくお願いします。
177デフォルトの名無しさん
2019/06/11(火) 14:27:56.01ID:Y18rXsQw LVM_GETITEMCOUNT を NG にした
残念だったな
残念だったな
178デフォルトの名無しさん
2019/06/11(火) 15:50:09.81ID:mh1wU8om とばっちりカワイソス
179デフォルトの名無しさん
2019/06/11(火) 16:15:17.11ID:DThKFJnr LVM_GETITEMCOUNTって書いとけばキチガイ一人避けれるということでしょ
180デフォルトの名無しさん
2019/06/11(火) 16:18:02.74ID:DThKFJnr181デフォルトの名無しさん
2019/06/11(火) 16:34:17.98ID:+sMFHfdj LVM_GETITEMCOUNT スレッドまたぎはNG
182デフォルトの名無しさん
2019/06/11(火) 17:55:31.55ID:b3tPk+od >>180
ありがとうございます
今はそれで運用しているのですが、デフォルトプリンターを変更しても、IEで現在立ち上げているページのプリンターの選択は変わりませんでした。(新しいタブやページなどは変わる)
ですので、デフォルトプリンターを変更した後タブを複製して、そのタブをアクティブにして、複製されていないhtmlの箇所をコピーして、印刷して、タブを閉じて、デフォルトプリンターを元に戻すような処理にしています。
プリンターを変更しないといけない処理が過去にあったりしたそうなので、その場でプリンター選択を操作できるのであれば、知りたいという感じです
ありがとうございます
今はそれで運用しているのですが、デフォルトプリンターを変更しても、IEで現在立ち上げているページのプリンターの選択は変わりませんでした。(新しいタブやページなどは変わる)
ですので、デフォルトプリンターを変更した後タブを複製して、そのタブをアクティブにして、複製されていないhtmlの箇所をコピーして、印刷して、タブを閉じて、デフォルトプリンターを元に戻すような処理にしています。
プリンターを変更しないといけない処理が過去にあったりしたそうなので、その場でプリンター選択を操作できるのであれば、知りたいという感じです
183デフォルトの名無しさん
2019/06/11(火) 18:15:49.68ID:1BO360IJ LVM_SETITEMSTATEで落ちるのはオレオレ構造体のミスとかじゃないの
184デフォルトの名無しさん
2019/06/11(火) 19:34:28.79ID:iv+iCaIJ 別プロセスからメッセージ投げるから、IEが構造体にアクセスできないってことでしょ?
VirtualAllocExでメモリ確保してそこに構造体用意しては
LVM_GETITEMCOUNT
VirtualAllocExでメモリ確保してそこに構造体用意しては
LVM_GETITEMCOUNT
185デフォルトの名無しさん
2019/06/11(火) 20:56:45.31ID:HsLA7EXf186デフォルトの名無しさん
2019/06/11(火) 21:07:50.93ID:oRHFwQ78187デフォルトの名無しさん
2019/06/11(火) 22:59:27.04ID:xU3mv9gp 意味が分からん。
ドキュメントが間違ってるだけで、マクロ関数はintで実装されてるから気にせず使えって話で合ってる?
ドキュメントが間違ってるだけで、マクロ関数はintで実装されてるから気にせず使えって話で合ってる?
188デフォルトの名無しさん
2019/06/11(火) 23:02:51.29ID:VKkOh0JU >>184
ありがとうございます。少し調べてやってみます。
ありがとうございます。少し調べてやってみます。
189デフォルトの名無しさん
2019/06/14(金) 00:21:25.69ID:TGTlo7vf WiteProcessMemoryの返り値が0になる(´・ω・`)
GetSharedMemの返り値 のアドレスが、「-1597046784」 とか返ってくる(´・ω・`)
Long型(-200万〜200万くらい)なのに(´・ω・`)
助けてください(´・ω・`)
tid = GetWindowThreadProcessId(lngSysListView32, pid)
hProc = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, _
False, pid)
lpShared1 = GetSharedMem(hProc, LenB(li))
lpShared2 = GetSharedMem(hProc, LenB(lt))
For i = 0 To maxitem - 1
li.mask = LVIF_TEXT
li.iItem = i
li.iSubItem = 0
li.lpszText = lpShared2
li.cchTextMax = LenB(lt)
lngRC = WriteProcessMemory(hProc, ByVal lpShared1, li, LenB(li), lWritten)
lngRC = WriteProcessMemory(hProc, ByVal lpShared2, lt, LenB(lt), lWritten)
Public Function GetSharedMem(ByRef hProc As Long, ByVal memSize As Long) As Long
GetSharedMem = VirtualAllocEx(ByVal hProc, ByVal 0&, ByVal memSize, MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE)
End Function
GetSharedMemの返り値 のアドレスが、「-1597046784」 とか返ってくる(´・ω・`)
Long型(-200万〜200万くらい)なのに(´・ω・`)
助けてください(´・ω・`)
tid = GetWindowThreadProcessId(lngSysListView32, pid)
hProc = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, _
False, pid)
lpShared1 = GetSharedMem(hProc, LenB(li))
lpShared2 = GetSharedMem(hProc, LenB(lt))
For i = 0 To maxitem - 1
li.mask = LVIF_TEXT
li.iItem = i
li.iSubItem = 0
li.lpszText = lpShared2
li.cchTextMax = LenB(lt)
lngRC = WriteProcessMemory(hProc, ByVal lpShared1, li, LenB(li), lWritten)
lngRC = WriteProcessMemory(hProc, ByVal lpShared2, lt, LenB(lt), lWritten)
Public Function GetSharedMem(ByRef hProc As Long, ByVal memSize As Long) As Long
GetSharedMem = VirtualAllocEx(ByVal hProc, ByVal 0&, ByVal memSize, MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE)
End Function
190デフォルトの名無しさん
2019/06/14(金) 01:18:48.45ID:udVNzUQx 176だよな・・・
GetSharedMemなんてAPIあったっけ?と思ったら、MSDNのサンプルまんま使ってるのかな?
lpShared2とかltとか変数の意味が分からん
この辺参考にして作り直したら
ttp://hongliang.seesaa.net/article/7851680.html
GetSharedMemなんてAPIあったっけ?と思ったら、MSDNのサンプルまんま使ってるのかな?
lpShared2とかltとか変数の意味が分からん
この辺参考にして作り直したら
ttp://hongliang.seesaa.net/article/7851680.html
191デフォルトの名無しさん
2019/06/14(金) 02:03:09.01ID:WbpzR08B -1597046784==0xa0cf0000、別におかしくはなさそうな
>Long型(-200万〜200万くらい)なのに(´・ω・`)
VBA(VBS?)のLongって22bitなの?
10bit勘違いしてるだけでは?
>Long型(-200万〜200万くらい)なのに(´・ω・`)
VBA(VBS?)のLongって22bitなの?
10bit勘違いしてるだけでは?
192デフォルトの名無しさん
2019/06/14(金) 07:51:56.01ID:AF2NDvCn >>190
ありがとうございます
読んで理解して再度実装してみます
今回のコードはこれを丸コピして、プリンター選択画面に対して試してみているという感じです。(プリンター名一覧を取得できるかどうか)
https://teratail.com/questions/120773
>>192
うわ、本当だ。知れて良かったです。ありがとうございます
bit反転が起きていると思って、反転させてみたら(+2 ^32?)オーバーフローが起きて、勘違いしていました
LVM_SETITEMSTATEはここを参考にして書いていました
https://stackoverflow.com/questions/12342433/i-need-to-select-an-item-of-a-syslistview32-using-sendmessage-in-c-sharp?rq=1
https://oshiete.goo.ne.jp/qa/4705094.html
今調べたらこっちのはSolvedなので参考にしてみます
https://social.msdn.microsoft.com/Forums/vstudio/en-US/f7788669-c3a9-4d80-b61b-8e26870c7cf4/select-listviewitem-using-lvmsetitemstatesolved?forum=vbgeneral
いろいろと助かります
ありがとうございます
読んで理解して再度実装してみます
今回のコードはこれを丸コピして、プリンター選択画面に対して試してみているという感じです。(プリンター名一覧を取得できるかどうか)
https://teratail.com/questions/120773
>>192
うわ、本当だ。知れて良かったです。ありがとうございます
bit反転が起きていると思って、反転させてみたら(+2 ^32?)オーバーフローが起きて、勘違いしていました
LVM_SETITEMSTATEはここを参考にして書いていました
https://stackoverflow.com/questions/12342433/i-need-to-select-an-item-of-a-syslistview32-using-sendmessage-in-c-sharp?rq=1
https://oshiete.goo.ne.jp/qa/4705094.html
今調べたらこっちのはSolvedなので参考にしてみます
https://social.msdn.microsoft.com/Forums/vstudio/en-US/f7788669-c3a9-4d80-b61b-8e26870c7cf4/select-listviewitem-using-lvmsetitemstatesolved?forum=vbgeneral
いろいろと助かります
193デフォルトの名無しさん
2019/06/14(金) 12:34:20.64ID:rNE5XrYC 馬鹿には無理
194デフォルトの名無しさん
2019/06/14(金) 12:52:57.90ID:bpAwmG5b ソフト業界でマイクロソフトは邪魔でしかない。
まともなものをよくするならいいが、悪するのがマイクロソフトで
しかも、おかしなものを直さず放置して悪化させる。
マイクロソフトは邪魔な存在でしかない。
マイクロソフトの弱点は仕様通りに作れないのは欠点は
同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
そこ弱点だし、将来性がないのもそのあたり。
Windowsの次のOSの仕組みを作ってもソフトの移植ができない。
来年か再来年あたりに出すわけだが引き継ぎできないだろうね。
昔にアーケードゲームの中途半端な移植のファミコンソフトレベルでしかない。
作っても何か違うって状態になる。
まともなものをよくするならいいが、悪するのがマイクロソフトで
しかも、おかしなものを直さず放置して悪化させる。
マイクロソフトは邪魔な存在でしかない。
マイクロソフトの弱点は仕様通りに作れないのは欠点は
同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
そこ弱点だし、将来性がないのもそのあたり。
Windowsの次のOSの仕組みを作ってもソフトの移植ができない。
来年か再来年あたりに出すわけだが引き継ぎできないだろうね。
昔にアーケードゲームの中途半端な移植のファミコンソフトレベルでしかない。
作っても何か違うって状態になる。
195デフォルトの名無しさん
2019/06/14(金) 13:22:29.13ID:FKc1iwhz196デフォルトの名無しさん
2019/06/14(金) 15:32:06.70ID:vVm8Z7bX >>194
内容はともかく、もうちょっと日本語を頑張れ。
内容はともかく、もうちょっと日本語を頑張れ。
197デフォルトの名無しさん
2019/06/14(金) 15:50:36.86ID:sZCV0u2+ >>194
>マイクロソフトの弱点は仕様通りに作れないのは欠点は
同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
この文章は日本語としておかしい。
>昔にアーケードゲームの中途半端な移植のファミコンソフトレベルでしかない。
この文章も日本語としておかしい
>マイクロソフトの弱点は仕様通りに作れないのは欠点は
同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
この文章は日本語としておかしい。
>昔にアーケードゲームの中途半端な移植のファミコンソフトレベルでしかない。
この文章も日本語としておかしい
>>194
>悪するのが
>マイクロソフトの弱点は仕様通りに作れないのは欠点は同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
>そこ弱点だし
>そのあたり
>昔に
以上、日本語としておかしい部分を抽出したので訂正するように
>悪するのが
>マイクロソフトの弱点は仕様通りに作れないのは欠点は同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
>そこ弱点だし
>そのあたり
>昔に
以上、日本語としておかしい部分を抽出したので訂正するように
199デフォルトの名無しさん
2019/06/14(金) 21:10:26.30ID:B8znrq/O 日本語おかしい奴vsあたまおかしい奴
200デフォルトの名無しさん
2019/06/14(金) 21:14:02.15ID:RsWDD4iG エイリアン対アバター並の意欲作だな
201蟻人間 ◆T6xkBnTXz7B0
2019/06/14(金) 21:14:45.86ID:lQGpZUNA あたまがぱっかーん
202デフォルトの名無しさん
2019/06/16(日) 04:09:22.45ID:HeZkFDT3 寄生獣だな
203デフォルトの名無しさん
2019/06/16(日) 15:19:28.33ID:RxcvAD6u ダメだぁ...
WriteProcessMemory がどうしても失敗する(´・ω・`)
デスクトップのsyslistview32やexplorerのDirectUIHWNDでは成功(返り値1)するんだけど、
メモ帳やIEのプリンター選択のsyslistview32や、メモ帳のEditに対しては失敗(返り値0)する
なんでー?
WriteProcessMemory がどうしても失敗する(´・ω・`)
デスクトップのsyslistview32やexplorerのDirectUIHWNDでは成功(返り値1)するんだけど、
メモ帳やIEのプリンター選択のsyslistview32や、メモ帳のEditに対しては失敗(返り値0)する
なんでー?
204デフォルトの名無しさん
2019/06/16(日) 15:34:33.84ID:RxcvAD6u Err.LastDllError の番号は998で、
メモリ ロケーションへのアクセスが無効です。
メモリ ロケーションへのアクセスが無効です。
205デフォルトの名無しさん
2019/06/16(日) 17:12:52.81ID:Z9zSyDOE WOW64
206デフォルトの名無しさん
2019/06/16(日) 20:39:35.26ID:RxcvAD6u >>205
64bit版でコンパイルしたら、32bit版のプロセスに介入することできないから難しいという感じでしょうか(´;Д;`)
64bit版のIEでも返り値は0でした...
Long型を、LongPtrにしてもダメでした...
64bit版でコンパイルしたら、32bit版のプロセスに介入することできないから難しいという感じでしょうか(´;Д;`)
64bit版のIEでも返り値は0でした...
Long型を、LongPtrにしてもダメでした...
207デフォルトの名無しさん
2019/06/17(月) 02:30:25.07ID:q7RVlLCN 32bit,x64の実行ファイル2つ作って用途に合わせて切り替えたら?
208デフォルトの名無しさん
2019/06/17(月) 11:24:55.79ID:lxO8a0KV いよいよwindowsを捨てる時が来たようだ
209デフォルトの名無しさん
2019/06/18(火) 04:17:01.07ID:fify6tPn また買えばいいよ
210デフォルトの名無しさん
2019/06/18(火) 06:23:28.70ID:3nOE2mBA プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
211デフォルトの名無しさん
2019/06/18(火) 12:45:38.38ID:1CtlGReK212デフォルトの名無しさん
2019/06/22(土) 14:06:32.16ID:DZJ/hc7X213デフォルトの名無しさん
2019/06/22(土) 14:29:13.02ID:8YBlX71B seamless ωωω
214デフォルトの名無しさん
2019/06/25(火) 16:44:22.77ID:hU5ITaEA 既存の Console に代わる Windows Terminal のプレビュー版が公開されたけど
今後コンソールアプリはどういう作りになるんだろう
既存の ConsoleAPI またはその拡張API になるのか
それともConsoleAPI は廃止されて Unix なんかと同様のエスケープシーケンスを制御する
curses ライブラリみたいのが提供されるのか
まぁオープンソースみたいだからソース見ればいいんだろうけど
今後コンソールアプリはどういう作りになるんだろう
既存の ConsoleAPI またはその拡張API になるのか
それともConsoleAPI は廃止されて Unix なんかと同様のエスケープシーケンスを制御する
curses ライブラリみたいのが提供されるのか
まぁオープンソースみたいだからソース見ればいいんだろうけど
215デフォルトの名無しさん
2019/06/25(火) 16:58:20.59ID:vGWUuZ9A 初歩的な質問ですが、64bitのプロセスにもWin32APIって使えますか?
216デフォルトの名無しさん
2019/06/25(火) 17:11:37.24ID:JYAeHTmF 使える
ただし、例えばGetWindowLongのようにポインタのビット数を決め打ちしている箇所に注意が必要
ただし、例えばGetWindowLongのようにポインタのビット数を決め打ちしている箇所に注意が必要
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
