[過去ログ] Win32API質問箱 Build125 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
161: 2019/06/09(日)22:37 ID:5tHDq89F(1) AAS
LVM系ってSendMessageで構造体のポインタ渡すマンだから
外部プロセスから弄ろうとすると面倒すぎる
162(1): 2019/06/10(月)12:33 ID:g6tidy/F(1) AAS
>>154
MSのいつもの言い訳「仕様です」
つまりvoidのtypoは仕様だ
163(1): 2019/06/10(月)12:42 ID:5kEo9ezr(1/2) AAS
>>158
>>143 を擁護するつもりは無いが
>ListView_GetItemCountを使ってもSendMessageにLVM_GETITEMCOUNT
同じ機能だということも承知の上で
「LVM_GETITEMCOUNT を直で使うしかなさそうだな」→オレオレ関数を造りたいのにオレには造らせない
「ラッパー関数がある場合はSendMessageは使うなというくせに」→MS自身はSNDMSGを使ってる
論点が違うんだよ
MS自身が用意した(SendMessageを使った)ラッパー関数を使えという主張に納得するかしないかの問題
>>143 は
MS無視して(SendMessageを使った)ラッパー関数を自分で造ったら使ってもいいだろってことで
省2
164(1): 2019/06/10(月)13:08 ID:gj8XPCJq(1/2) AAS
>>163
>>143じゃないならそのエスパーもややこしくしてるだけやん?
論点もそっちがズレてるような
というか「MS自身が用意した(SendMessageを使った)ラッパー関数」とか言ってるし
他人のふりした>>143か、>>147もそうだったのか、とすら思える
どっちが>>143の意図だったにせよ的外れなのには変わりないけどな
165: 2019/06/10(月)13:17 ID:5kEo9ezr(2/2) AAS
どっちでもいいな
voidじゃないのにvoidと書かれてるのが問題なんだから
166(1): 2019/06/10(月)13:19 ID:Fv0cH94V(1) AAS
>>164 が >>143 である可能性も否定できない
167: 2019/06/10(月)13:33 ID:gj8XPCJq(2/2) AAS
自分で自分を否定するのか
そして>>166が>>143である可能性も
でいいのかな
168: 2019/06/10(月)15:19 ID:U3FSgHuu(1) AAS
ここまで漏れの自演
169: 2019/06/10(月)18:54 ID:h2AhNEsP(1) AAS
すごいレスが伸びてると思ったら・・・・
人と人をいがみ合わせるMSが巨悪だということで手打ちにしたらいかがだろうか
170: 2019/06/10(月)19:18 ID:Fj7bi2y1(1) AAS
ドキュメントが間違ってたぐらいで鬼の首取ったようにギャアギャア騒ぐことが許されるのは初心者のうちだけでしょ。
171: 2019/06/10(月)19:34 ID:OlE51f/u(1) AAS
単なる指摘に>>143が過剰反応してるだけ
172(1): 2019/06/10(月)22:22 ID:aj7K9vQb(1/2) AAS
>>158
何だおまえさん、MSKKの社員がここでどうたらぬかしてるとでもぬかすのか?
だったら、それを公式見解と断る必要があるんだが
173: 2019/06/10(月)22:23 ID:aj7K9vQb(2/2) AAS
>>162
ほんこれ
174: 2019/06/10(月)22:29 ID:TC6Uh5Cw(1) AAS
またエントロピーが増えてきたw
175(1): 2019/06/11(火)09:28 ID:oRHFwQ78(1/2) AAS
>>172
誰もそんな事言ってないけど?
176(1): 2019/06/11(火)14:20 ID:lbh69FdF(1) AAS
初心者質問です。
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 ID:Y18rXsQw(1) AAS
LVM_GETITEMCOUNT を NG にした
残念だったな
178: 2019/06/11(火)15:50 ID:mh1wU8om(1) AAS
とばっちりカワイソス
179: 2019/06/11(火)16:15 ID:DThKFJnr(1/2) AAS
LVM_GETITEMCOUNTって書いとけばキチガイ一人避けれるということでしょ
180(1): 2019/06/11(火)16:18 ID:DThKFJnr(2/2) AAS
>>176
デフォルトのプリンタを取得して保存しとく
デフォルトのプリンタ変更する
IEで印刷開始
デフォルトのプリンタもとに戻す
こんなんじゃだめなのか?
181: 2019/06/11(火)16:34 ID:+sMFHfdj(1) AAS
LVM_GETITEMCOUNT スレッドまたぎはNG
182: 2019/06/11(火)17:55 ID:b3tPk+od(1) AAS
>>180
ありがとうございます
今はそれで運用しているのですが、デフォルトプリンターを変更しても、IEで現在立ち上げているページのプリンターの選択は変わりませんでした。(新しいタブやページなどは変わる)
ですので、デフォルトプリンターを変更した後タブを複製して、そのタブをアクティブにして、複製されていないhtmlの箇所をコピーして、印刷して、タブを閉じて、デフォルトプリンターを元に戻すような処理にしています。
プリンターを変更しないといけない処理が過去にあったりしたそうなので、その場でプリンター選択を操作できるのであれば、知りたいという感じです
183: 2019/06/11(火)18:15 ID:1BO360IJ(1) AAS
LVM_SETITEMSTATEで落ちるのはオレオレ構造体のミスとかじゃないの
184(1): 2019/06/11(火)19:34 ID:iv+iCaIJ(1) AAS
別プロセスからメッセージ投げるから、IEが構造体にアクセスできないってことでしょ?
VirtualAllocExでメモリ確保してそこに構造体用意しては
LVM_GETITEMCOUNT
185(1): 2019/06/11(火)20:56 ID:HsLA7EXf(1) AAS
>>175
じゃあ何のために158みたいな戯れ言をぬかしたんだ?
アホだからか? それともバカだからか?
186: 2019/06/11(火)21:07 ID:oRHFwQ78(2/2) AAS
>>185
なんで>>158から社員が出てくるんだよ
理解できていないのは>>143って事だぞ
全く同じって事が(>>143には)理解できていないから>>143みたいな発言になるんだろ
って事だぞ
187: 2019/06/11(火)22:59 ID:xU3mv9gp(1) AAS
意味が分からん。
ドキュメントが間違ってるだけで、マクロ関数はintで実装されてるから気にせず使えって話で合ってる?
188: [Sage] 2019/06/11(火)23:02 ID:VKkOh0JU(1) AAS
>>184
ありがとうございます。少し調べてやってみます。
189: 2019/06/14(金)00:21 ID:TGTlo7vf(1) AAS
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))
省11
190(1): 2019/06/14(金)01:18 ID:udVNzUQx(1) AAS
176だよな・・・
GetSharedMemなんてAPIあったっけ?と思ったら、MSDNのサンプルまんま使ってるのかな?
lpShared2とかltとか変数の意味が分からん
この辺参考にして作り直したら
外部リンク[html]:hongliang.seesaa.net
191: 2019/06/14(金)02:03 ID:WbpzR08B(1) AAS
-1597046784==0xa0cf0000、別におかしくはなさそうな
>Long型(-200万〜200万くらい)なのに(´・ω・`)
VBA(VBS?)のLongって22bitなの?
10bit勘違いしてるだけでは?
192(1): 2019/06/14(金)07:51 ID:AF2NDvCn(1) AAS
>>190
ありがとうございます
読んで理解して再度実装してみます
今回のコードはこれを丸コピして、プリンター選択画面に対して試してみているという感じです。(プリンター名一覧を取得できるかどうか)
外部リンク:teratail.com
>>192
うわ、本当だ。知れて良かったです。ありがとうございます
bit反転が起きていると思って、反転させてみたら(+2 ^32?)オーバーフローが起きて、勘違いしていました
LVM_SETITEMSTATEはここを参考にして書いていました
外部リンク:stackoverflow.com
省4
193: 2019/06/14(金)12:34 ID:rNE5XrYC(1) AAS
馬鹿には無理
194(4): 2019/06/14(金)12:52 ID:bpAwmG5b(1) AAS
ソフト業界でマイクロソフトは邪魔でしかない。
まともなものをよくするならいいが、悪するのがマイクロソフトで
しかも、おかしなものを直さず放置して悪化させる。
マイクロソフトは邪魔な存在でしかない。
マイクロソフトの弱点は仕様通りに作れないのは欠点は
同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
そこ弱点だし、将来性がないのもそのあたり。
Windowsの次のOSの仕組みを作ってもソフトの移植ができない。
来年か再来年あたりに出すわけだが引き継ぎできないだろうね。
昔にアーケードゲームの中途半端な移植のファミコンソフトレベルでしかない。
省1
195: 2019/06/14(金)13:22 ID:FKc1iwhz(1) AAS
>>194
突然どうした?
この朝鮮臭い駄文は窓板きっての汚物キチガイマカーのコピペと見受けるが
196: 2019/06/14(金)15:32 ID:vVm8Z7bX(1) AAS
>>194
内容はともかく、もうちょっと日本語を頑張れ。
197: 2019/06/14(金)15:50 ID:sZCV0u2+(1) AAS
>>194
>マイクロソフトの弱点は仕様通りに作れないのは欠点は
同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
この文章は日本語としておかしい。
>昔にアーケードゲームの中途半端な移植のファミコンソフトレベルでしかない。
この文章も日本語としておかしい
198: ◆QZaw55cn4c 2019/06/14(金)18:48 ID:FySvhFYo(1) AAS
>>194
>悪するのが
>マイクロソフトの弱点は仕様通りに作れないのは欠点は同時に自社のソフトをWindows以外のデバイスへ移植できないことも意味する。
>そこ弱点だし
>そのあたり
>昔に
以上、日本語としておかしい部分を抽出したので訂正するように
199: 2019/06/14(金)21:10 ID:B8znrq/O(1) AAS
日本語おかしい奴vsあたまおかしい奴
200: 2019/06/14(金)21:14 ID:RsWDD4iG(1) AAS
エイリアン対アバター並の意欲作だな
201: 蟻人間 ◆T6xkBnTXz7B0 2019/06/14(金)21:14 ID:lQGpZUNA(1) AAS
あたまがぱっかーん
202: 2019/06/16(日)04:09 ID:HeZkFDT3(1) AAS
寄生獣だな
203: 2019/06/16(日)15:19 ID:RxcvAD6u(1/3) AAS
ダメだぁ...
WriteProcessMemory がどうしても失敗する(´・ω・`)
デスクトップのsyslistview32やexplorerのDirectUIHWNDでは成功(返り値1)するんだけど、
メモ帳やIEのプリンター選択のsyslistview32や、メモ帳のEditに対しては失敗(返り値0)する
なんでー?
204: 2019/06/16(日)15:34 ID:RxcvAD6u(2/3) AAS
Err.LastDllError の番号は998で、
メモリ ロケーションへのアクセスが無効です。
205(1): 2019/06/16(日)17:12 ID:Z9zSyDOE(1) AAS
WOW64
206(1): [Sage] 2019/06/16(日)20:39 ID:RxcvAD6u(3/3) AAS
>>205
64bit版でコンパイルしたら、32bit版のプロセスに介入することできないから難しいという感じでしょうか(´;Д;`)
64bit版のIEでも返り値は0でした...
Long型を、LongPtrにしてもダメでした...
207: 2019/06/17(月)02:30 ID:q7RVlLCN(1) AAS
32bit,x64の実行ファイル2つ作って用途に合わせて切り替えたら?
208: 2019/06/17(月)11:24 ID:lxO8a0KV(1) AAS
いよいよwindowsを捨てる時が来たようだ
209: 2019/06/18(火)04:17 ID:fify6tPn(1) AAS
また買えばいいよ
210: 2019/06/18(火)06:23 ID:3nOE2mBA(1) AAS
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
2chスレ:tech
142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID外部リンク:qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
211: 2019/06/18(火)12:45 ID:1CtlGReK(1) AAS
堂々の一位
外部リンク[html]:hissi.org
212: 2019/06/22(土)14:06 ID:DZJ/hc7X(1) AAS
>>206
自分は一旦それで絶望して
32bitアプリ用のラッパー作って呼んでる
32bit資産使ってる人はみんなこうじゃないかな
213: 2019/06/22(土)14:29 ID:8YBlX71B(1) AAS
seamless ωωω
214: 2019/06/25(火)16:44 ID:hU5ITaEA(1) AAS
既存の Console に代わる Windows Terminal のプレビュー版が公開されたけど
今後コンソールアプリはどういう作りになるんだろう
既存の ConsoleAPI またはその拡張API になるのか
それともConsoleAPI は廃止されて Unix なんかと同様のエスケープシーケンスを制御する
curses ライブラリみたいのが提供されるのか
まぁオープンソースみたいだからソース見ればいいんだろうけど
215(1): 2019/06/25(火)16:58 ID:vGWUuZ9A(1/2) AAS
初歩的な質問ですが、64bitのプロセスにもWin32APIって使えますか?
216: 2019/06/25(火)17:11 ID:JYAeHTmF(1) AAS
使える
ただし、例えばGetWindowLongのようにポインタのビット数を決め打ちしている箇所に注意が必要
217: 蟻人間 ◆T6xkBnTXz7B0 2019/06/25(火)17:11 ID:CrMrKXln(1) AAS
>>215
Win64APIではWoW64というシステムがWin32からWin64への互換性レイヤーになる。
218: 2019/06/25(火)17:35 ID:XhZtJiMw(1) AAS
32bit OS の場合
System32 = 32bit 用 DLL (Win32API)
64bit OS の場合
System32 = 64bit 用 DLL (64bitWin32API)
SysWOW64 = 32bit 用 DLL (32bitWin32API)
219: 2019/06/25(火)17:37 ID:vGWUuZ9A(2/2) AAS
ありがとうございます
これで気にせず昔の情報あされます
220: 2019/07/10(水)12:39 ID:LrFGCWwq(1/2) AAS
SysListView32のリストビューで、縦スクロールバーが表示されている状態で、
アイテムをクリックして選択し、すぐにホイールを回してそのアイテムを画面外に出すと、
一定時間後にそのアイテムが表示される位置まで飛んでしまいます。
選択されていないアイテムよりも、すでに選択されているアイテムをクリックした方が、
ホイールを回すまでの時間が多少長くてもその現象が起きます。
これWindows自体のバグでしょうか。
内部のタイマー処理でも絡んでいるのでしょうか。
221: 2019/07/10(水)12:47 ID:+uFplCdI(1) AAS
君が発見出来るような程度のバグなら
既に誰かが発見して治してるよ
222(1): 2019/07/10(水)12:50 ID:z7915HRG(1) AAS
ホイールは3rdパーティーのマウスドライバや常駐もので
余計にメッセージ飛ばしたりすることあるから厄介
223: 2019/07/10(水)13:04 ID:GamN/JFp(1) AAS
Win10の一年位前のビルドでSysListView32がスクロールバーを出してる状態でドラッグすると
画面右端にカーソルがすっ飛ぶバグがあったな
SysListView32使ってるアプリは多いからこれは一般ユーザーもすぐに気付い
224: 2019/07/10(水)13:14 ID:LrFGCWwq(2/2) AAS
>>222
ホイールでなくスクロールバーのドラッグでも起きました。
操作が難しくなりますが、アイテムをクリックして選択し、
すぐにスクロールバーをドラッグしてそのアイテムを画面外に出すと、やはり同じ現象が起きます。
225(1): 2019/07/11(木)10:11 ID:Bpzge626(1/2) AAS
全然関係なくて申し訳ないが
シングルクリックとダブルクリックの判定って結構難しいよな
クリックのメッセージが飛んできても
シングルクリックのつもりなのか
ダブルクリックの一回目のクリックのつもりなのか
その時点では判断が付かない
なのでダブルクリックの二回目のクリックが飛んで来るかどうか
少し時間をおいてみるしかない
この間にユーザーが何か操作すると
226(1): 2019/07/11(木)10:24 ID:BSTUJEPb(1/2) AAS
>>225
っWM_LBUTTONDBLCLK
227: 2019/07/11(木)10:24 ID:dt9f58xR(1/2) AAS
アホ発見
228: 2019/07/11(木)10:27 ID:xJ4m2V3T(1) AAS
かわいい
229(1): 2019/07/11(木)10:32 ID:Bpzge626(2/2) AAS
>>226
WM_LBUTTONDBLCLKが飛んで来たらダブルクリック
でも飛んでこないかもしれない(つまりシングルクリック)という事だよ
飛んでくるかどうかは少し待ってみないとわからない
エクスプローラでファイルの名前の変更するとき
少し待たされるあの動作
タイマー使ってWM_LBUTTONDBLCLKが来るか少し待ってみるっていう
でもこの魔の時間にユーザーが操作することがあって
例えばホイール回したりスクロールバー触ったり
230(1): 2019/07/11(木)10:50 ID:BSTUJEPb(2/2) AAS
>>229
コンパネでダブルクリックの間隔を調節できるから
そのへんはユーザーに責任転嫁できる
231: 2019/07/11(木)10:56 ID:dt9f58xR(2/2) AAS
ダブルクリックはシングルボタンのAppleから持ち込まれた悪臭
232: 2019/07/11(木)11:57 ID:6Wf0CyIx(1) AAS
>>230
と思うじゃん
233: 2019/07/11(木)23:57 ID:QGiOPnup(1) AAS
飛んでくるまでいつまで待てばいいですか
少しっていつですか
234(1): 2019/07/12(金)00:14 ID:B1Jsh2gD(1) AAS
あれ?シングルクリックってダブルクリックになったら、マージされてダブルクリックで処理されると思っていた。
235: 2019/07/12(金)06:48 ID:dXXCmuDP(1) AAS
GetDoubleClickTimeでググれ
236: 2019/07/12(金)10:36 ID:ueORW37F(1) AAS
>>234
マージされるのは二回目のクリック
今言ってるのは一回目のクリックをどう扱うかという話
この一回目のクリックは
シングルクリックのつもりなのか
ダブルクリックの一回目なのか
コンピュータには知る由もない
237: 2019/07/12(金)12:00 ID:Y/iKed6k(1) AAS
なんでここまで説明しないと分からんのだろ
特にハイコンテクストって訳でもないのに
238: 2019/07/12(金)12:24 ID:gSsTJBIy(1) AAS
誰が誰に対して?
1回目の誰が2回目の誰に対してマージされて処理されるのか?
おやすみ
239: 2019/07/12(金)12:53 ID:nIUn02wm(1) AAS
GetCursorPosでポインターの場所、GetKeyStateでマウスボタンが押されてるか離されてるか
取得できるから、あとは時間測って適当にクリックとダブルクリック、ドラッグを判別する
SwapMouseButtonで右利き左利きとか、GetDoubleClickTimeでダブルクリック判定する時間とか
そんなのを設定できるようにしとけば完璧
これがおまえらが一番納得する方法だろwww
240: 2019/07/12(金)17:04 ID:Uu5c0ODM(1) AAS
自信満々で嘘書くな迷惑
241: 2019/07/13(土)05:00 ID:5W75r4eA(1) AAS
クリック動作はダブルクリックの直前に発生しても致命的にならないものであればいんでない?
クリック 選択
ダブルクリック 実行
これを逆にするようなら難しくなるだけかと
242: 2019/08/04(日)16:34 ID:78/vdzUN(1) AAS
QueryPerformanceFrequencyが10000000を返してくるようになってた
将来はQPCは常に100ナノ秒単位で表しますよってなっていくんだろうか
今回たまたま自分の環境がそうなってしまっただけなんだろうか
243: 蟻人間 ◆T6xkBnTXz7B0 2019/08/04(日)21:08 ID:QRYqe1Xw(1) AAS
外部リンク:katahiromz.web.fc2.com
Win32の人、使ってみてね。便利だよ。
244: 2019/08/05(月)13:40 ID:NOA3rn3w(1) AAS
グロ中尉
245(1): 2019/08/07(水)11:59 ID:6nD1xIcw(1/2) AAS
現在、AddFontResourceとRemoveFontResourceを使って
プログラムからフォントを登録して使っています。
でもこの方法だと、RemoveFontResourceを呼んでも
システムを再起動しないと登録されたままになってしまいます。
その間はフォントファイルも削除できないです。
どうにかプログラム使用時だけフォントを有効にする方法はないでしょうか?
プログラム終了すれば登録されたフォントも登録解除されるような方法がいいです。
246(1): 2019/08/07(水)12:59 ID:u0NlqDQ2(1) AAS
>>245
ドキュメントを読むとWM_FONTCHANGEをブロードキャストする必要があるらしいけどやってる?
もしくはAddFontResourceExでFR_PRIVATEを指定すると
> When the process terminates, the system will remove all fonts installed by the process with the AddFontResourceEx function
とあるからそれに頼るのもありかも
247: 2019/08/07(水)13:05 ID:6nD1xIcw(2/2) AAS
>>246
AddFontResourceExでFR_PRIVATE指定でもしかするといけるかもしれませんね!
試してみます。ありがとうございます。
248: 2019/09/05(木)10:39 ID:qYKhXOia(1/4) AAS
質問させてください。
日本語の Windows10 で、Windows Explorer のアドレスバーに
日本語で「デスクトップ」とだけ入力してエンターキーを押すとデスクトップに移動できます。
他にも、「ドキュメント」「ピクチャ」「ダウンロード」「3D オブジェクト」「OneDrive」など
いくつかの単語が特定のフォルダーと関連付けられていますが、
この対応をプログラムで調べる方法はありますでしょうか。
例えば SHGetFileInfo を使えばデスクトップのフルパスから
「デスクトップ」という日本語の display name を得ることはできますが、
SHGetFileInfo では上記のような関連付けの有無は判定できませんし、
そもそもフルパスから日本語名を得るのではなくその逆をしたいので、
省3
249(1): 2019/09/05(木)10:44 ID:Cn2xW5Dx(1/2) AAS
内部で対応表持たせるしかないだろ
250(1): 蟻人間 ◆T6xkBnTXz7B0 2019/09/05(木)11:22 ID:sYiofqED(1) AAS
SHGetLocalizedNameという関数が日本語パス名を返すみたいだが、逆はない。
SHGetSpecialFolderLocation/SHGetSpecialFolderPathで特殊フォルダのパス名を取得し、
SHGetLocalizedNameで日本語パス名を取得する。
それで対応表を作るといいだろう。
251(1): 2019/09/05(木)11:23 ID:A2EHupI7(1/2) AAS
それは対応表作るにしても結構苦労するよ
例えば俺のWin10のユーザフォルダの中を見ると
同じフォルダ内にドキュメント、と、ピクチャ、が二つずつあったりする
ディスプレイネームが同じでITEMIDLISTが違うアイテムが
同一フォルダに複数存在してたりする環境もあるって事
俺の場合は片方はOneDriveでもう一つはローカル用
同じ名前で同じフォルダ
だから単にドキュメントといってもどっちの事か分からんwwwという事態に
苦労するよ、それ
252(1): 2019/09/05(木)11:28 ID:A2EHupI7(2/2) AAS
てか、同じ名前のアイテムを同一フォルダに突っ込むWindowsが糞仕様なんだけど
普通に使う分にもどっちがどっちか分からんでムカつく
OneDriveの方は「ドキュメント(OneDrive)」とか区別付く名前にしとけよ
それかOneDriveっていうフォルダ掘ってその下に配置しろよ
同じ名前のアイテムが同じフォルダにあると混乱することぐらい分かるだろ糞
253: 2019/09/05(木)12:28 ID:ug+Xr8Ig(1) AAS
独り言はチラ裏へ
254(1): 2019/09/05(木)12:29 ID:Cn2xW5Dx(2/2) AAS
アクセス履歴見ながら対応表を順次変更すりゃいい
そういうのはアイデア次第でどうとでもなる
255: 2019/09/05(木)12:30 ID:qYKhXOia(2/4) AAS
>>249
レスどうもありがとうございます。
他の方のレスを拝見してみても、やっぱりなかなか難しそうですね。
>>250
大変有用な情報どうもありがとうございます。この方針が一番現実的そうですね。
SHGetSpecialFolderLocation/SHGetSpecialFolderPath は
CSIDL しか受け付けなくて、「3D オブジェクト」のように CSIDL がないフォルダもあるので、
CSIDL の代わりに GUID が使える SHGetKnownFolderIDList を使おうと思います。
ただいずれにしても、どのフォルダの CSIDL/GUID を指定するかは
プログラムの段階で決めないという認識で正しいでしょうか?
省10
256(1): 2019/09/05(木)12:39 ID:qYKhXOia(3/4) AAS
>>252 >>254
レスどうもありがとうございます。
確かに Windows のフォルダ階層の仕組みは少し分かりにくいところがありますが、
今回の件についてはその問題はあまり関係なくて、
ちょっと誤解を与えてしまっている気がするので改めてやりたいことを説明させていただきます。
エクスプローラでは、今どのフォルダを開いているかにかかわらず、
アドレスバーに単に「デスクトップ」とだけ入力してエンターキーを押せばデスクトップに移動できます。
つまり、エクスプローラーの中では「デスクトップ」という単一の単語とデスクトップのフルパスとが
対応付けられているということになります。そして私は、この対応表を取得したいと考えております。
257: 2019/09/05(木)13:04 ID:REbzCKHr(1/2) AAS
質問です。
ファイルに関連付けされている実行ファイルパスを取得するのに
FindExecutable()やAssocQueryString()を使っているのですが、
一部関連付けが取得できません。
どうやら関連付け先の実行ファイルの種類がWindowsパッケージ(デスクトップ)版と
ストアアプリ版とでは動作が異なるらしく、パッケージ版は上記APIで取得できる
ようですがストアアプリ版は取得できないようです。
仕方がないのでレジストリを直接たどる方法を模索しているのですが、
パッケージ版は分かるのですがストアアプリ版がよく分りません。
自分で調べた限りでは、HKCR\{拡張子}\OpenWithProgidsのREG_NONE型の{名前}
省2
258: 2019/09/05(木)13:05 ID:REbzCKHr(2/2) AAS
(つづき)
実際に.pdfがedgeに関連付けられていて上記APIでは取得できない環境
においてレジストリをたどると
\HKCR\.pdf\OpenWithProgids
のREG_NONE型の名前「AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723」を元に
\HKCR\AppXd4nrz8ff68srnhf9t5a8sbjyar1cr723\Application
のApplicationNameまではたどり着きました。
しかしこれに設定されている文字列が
@{Microsoft.MicrosoftEdge_44.18362.329.0_neutral__8wekyb3d8bbwe?ms-resource://Microsoft.MicrosoftEdge/Resources/AppName}
となっています。
省3
259(1): 2019/09/05(木)13:11 ID:d3q2zCXJ(1/2) AAS
>>256
試しにmspaintと入力してエンター押したらペイントが起動しない?
と言う事は入力が日本語ならC:\Users\<ユーザー名>\この中の対応するフォルダを開く
とか内部でやってるんじゃないかな
英語の場合はLoadLibraryと同じように
Explorer.exeと同じディレクトリ
Explorer.exeのカレントディレクトリ
システムディレクトリ
Windowsディレクトリ
環境変数のPATHに指定されてるディレクトリ
省1
260: 2019/09/05(木)13:14 ID:d3q2zCXJ(2/2) AAS
英語とか日本語とか関係なかったねw
上下前次1-新書関写板覧索設栞歴
あと 742 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s