C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[15]: 認識できないプログラムが・を消したい


(過去ログ 15 を表示中)

[トピック内 20 記事 (1 - 20 表示)]  << 0 >>

■4915 / inTopicNo.1)  認識できないプログラムが・を消したい
  
□投稿者/ 774RR (20回)-(2007/06/28(Thu) 18:08:51)

分類:[C/C++] 

ようやくウチもVistaのテストマシンをゲットしましま。
それで今までに作ったプログラムの動作検証をしているところです。

ウチで作った、あるプログラムを単体で起動すると
認識できないプログラムがこのコンピュータへのアクセスを要求しています
ダイアログが出ます。
関連付け変更を行うコードが入っているので出るのは当然なんだけど
XP以前では関連付けを行う/Vista では行わないようにして、
警告ダイアログが出ないように直したいと思っておるところです。

でも
VS2005SP1 を管理者権限で起動しデバッガを使うと何も言ってこないし
VS2005SP1 を管理者権限なしで起動するとデバッグできないし
単体起動のときと挙動が異なるのでちょっぴり困っておりまする。

Q1.Vista はプログラム中の何を見てこのダイアログを出してるのですか
Q2.こーいう場合のデバッグ Tips みたいなのありますか

Target : Vista/XP/2000/Me/98SE すべて
開発環境 : もともと VC++6SP6 で開発 Vista 用に VS2005SP1(with Update for Vista) に移行
98SE 用には同一ソースコードを VC++6SP6 に戻してコンパイル予定
開発言語 : VC++ Native Application (with MFC, MBCS)
引用返信 編集キー/
■4918 / inTopicNo.2)  Re[1]: 認識できないプログラムが・を消したい
□投稿者/ とっちゃん (158回)-(2007/06/28(Thu) 18:57:42)
とっちゃん さんの Web サイト
No4915 (774RR さん) に返信

画面がブラックアウトして見慣れないダイアログがでてくるということでしょうか?

であるならば UAC(User Account Control:ユーザアカウント制御) について調査してみることをお勧めします。

ちゃんと探せば、全部の答えがわかるはずです。
この先も開発を続ける限りずっと付き合っていくことになる問題なので今の時点できっちりと調べ上げておくことをお勧めします。


引用返信 編集キー/
■4929 / inTopicNo.3)  Re[2]: 認識できないプログラムが・を消したい
□投稿者/ ちゃっぴ (41回)-(2007/06/29(Fri) 00:12:00)
ちゃっぴ さんの Web サイト
お手軽にどこで引っかかっているか確認するには、Standard User Analyzer が利用できるかも?

Microsoft Application Compatibility Toolkit 5.0
http://www.microsoft.com/downloads/details.aspx?FamilyID=24da89e9-b581-47b0-b45e-492dd6da2971&DisplayLang=en
引用返信 編集キー/
■4962 / inTopicNo.4)  Re[3]: 認識できないプログラムが・を消したい
□投稿者/ 774RR (21回)-(2007/06/29(Fri) 14:33:23)
UAC は要するに管理者にも管理者権限が無いって話ですよね。その辺はOKのつもり。
俺が探していたのはまさにちゃっぴさんの Analyzer のようです。
急ぎの仕事が複数同時に入ってきたので今試してる時間がありません。
# なぜ重なるぅうぇ
来週また試して返事したいと思います
引用返信 編集キー/
■5086 / inTopicNo.5)  Re[4]: 認識できないプログラムが・を消したい
□投稿者/ 774RR (22回)-(2007/07/04(Wed) 09:53:11)
自己レス。
1.VS2005 の project template で作った MFC Application 雛形を
そのままコンパイルしただけでも UAC が嫌がるということがわかった。
2.同じく雛形そのままでも嫌がらないものもあることがわかった ???
3.俺のプログラムで HKLM を触らなくしても UAC が嫌がることがわかった。
4.MFC App 雛形だけであっても MFC 内部で NTAUTHORITY\SYSTEM にアクセスしてる
(User Analyzer がエラー報告する)
と、ここまでは検証結果。以下は妄想。

どうやらバイナリファイル名に setup とか update とか入っていると UAC が嫌がるみたい?
xyzsetup.exe とか fooupdate.exe とか。

まだ別件が終わらないのでこれが本当かどうかは未検証。

引用返信 編集キー/
■5088 / inTopicNo.6)  Re[5]: 認識できないプログラムが・を消したい
□投稿者/ ちゃっぴ (45回)-(2007/07/04(Wed) 10:28:26)
ちゃっぴ さんの Web サイト
> どうやらバイナリファイル名に setup とか update とか入っていると UAC が嫌がるみたい?
> xyzsetup.exe とか fooupdate.exe とか。

Installer の自動検出機能と shild icon の自動表示機能http://blogs.wankuma.com/tyappi/archive/2007/06/23/81848.aspx
引用返信 編集キー/
■5097 / inTopicNo.7)  Re[6]: 認識できないプログラムが・を消したい
□投稿者/ 774RR (23回)-(2007/07/04(Wed) 12:19:38)
な、なんだってー AA (r

そーいや詳細表示しかしてなかったから気づかなかったけど、大きいアイコン表示したら
オラの作った **update.exe の右下には見慣れない四色アイコンがっ!
# これが昇格アイコンか

mv **update.exe foo.exe しても4色アイコンは消えないので、どうやら実ファイル名ではなく
リソース中の InternalName か OriginalFileName か、どちらかを見てるっぽい。
# しかもこいつはファイルのプロパティでは編集できない

さてどうすっかなー。
オラ作の USB Device の Firmware 更新キットなんで **update.exe って名前をつけたんだけど
別に Windows の中の人のファイルは触らないんだけどなー。
installer 自動検出されてほしくないんだが...
manifest ファイルか何かに書いておけば自動検出禁止にできるかな?
引用返信 編集キー/
■5117 / inTopicNo.8)  Re[7]: 認識できないプログラムが・を消したい
□投稿者/ Jitta (366回)-(2007/07/04(Wed) 19:29:54)
No5097 (774RR さん) に返信
> mv **update.exe foo.exe しても4色アイコンは消えないので、どうやら実ファイル名ではなく
> リソース中の InternalName か OriginalFileName か、どちらかを見てるっぽい。

一度実行したらキャッシュされるんだな。他のディレクトリへコピーしてみたりして。


> installer 自動検出されてほしくないんだが...
> manifest ファイルか何かに書いておけば自動検出禁止にできるかな?

オイラのブログに書いてあったりするんだな。ちゃっぴさんも書いてるし。

お茶でも淹れて、一度落ち着いてみるといいかもね。
引用返信 編集キー/
■5249 / inTopicNo.9)  Re[8]: 認識できないプログラムが・を消したい
□投稿者/ 774RR (24回)-(2007/07/09(Mon) 10:35:18)
お茶飲んできました。

> 一度実行したらキャッシュされるんだな。他のディレクトリへコピーしてみたりして。
やっぱりリソース名見てるみたい。
根拠:W2K の VS6 上で、MFC App プロジェクトの設定を
リソース OriginalFileName=xyupdate.exe
出力ファイル名 xytest.exe
として作ったファイルを Recovery 直後の Vista で実行しても UAC が文句言うので。

客先の UAC の設定を変えるのはNG
manifest の追加をするには開発環境を vc++6 から vs2005 に切り替える必要が有るけど、
VS2005 で作り直すと Win98/Me などでは新しい MFC DLL が必要になる=要インストーラ再デバッグ
ということで結局のところ
VC++6/MFC4.2 で作り、出力ファイル名を変更する (**update → **upload) ことにしますた。

解決済み
引用返信 編集キー/
■5250 / inTopicNo.10)  Re[9]: 認識できないプログラムが・を消したい
□投稿者/ Blue (316回)-(2007/07/09(Mon) 11:05:46)
> manifest の追加をするには開発環境を vc++6 から vs2005 に切り替える必要が有るけど
そうなんですか?
manifestファイルを外付けにするなら単なるテキストファイルなので問題ないと思いますが。
(VC6でもリソースとして埋め込むことも出来るはずだったかと。)
解決済み
引用返信 編集キー/
■5263 / inTopicNo.11)  Re[10]: 認識できないプログラムが・を消したい
□投稿者/ とっちゃん (162回)-(2007/07/09(Mon) 13:36:14)
とっちゃん さんの Web サイト
No5250 (Blue さん) に返信
>>manifest の追加をするには開発環境を vc++6 から vs2005 に切り替える必要が有るけど
> そうなんですか?
> manifestファイルを外付けにするなら単なるテキストファイルなので問題ないと思いますが。
> (VC6でもリソースとして埋め込むことも出来るはずだったかと。)

VC7.0(7.1は不明)までは、リンカがきちんと理解できていないので、正しいバイナリになりません。<v3 manifest
なので、mt.exe を使って後付けする必要があります。

もともと、出来合い品にくっつけるためのものですが、v3 manifest は外付が優先されないので
この方法じゃないと昇格制御はできません。

mt.exe は、.NET Framework 2.0 のSDKあるいは、PlatformSDK(いつのものから利用できるか不明)やWindowsSDK についてます。
もちろん、VS2005 のものでもOKです。

うちはこの方法で、VS2002(Native C++)のモジュールに v3 manifest つけてます。

解決済み
引用返信 編集キー/
■5296 / inTopicNo.12)  Re[11]: 認識できないプログラムが・を消したい
□投稿者/ Blue (317回)-(2007/07/10(Tue) 01:12:10)
すみませんが、ちょっとmanifestに関して知識が不足しているようで、
よろしかったらご教授ください。

>もともと、出来合い品にくっつけるためのものですが、v3 manifest は外付が優先されないので
>この方法じゃないと昇格制御はできません。
外付けにするのは普通にNGなんでしょうか?
うちはVista以外の場合にmanifestを意識させたくないとの理由で外付けファイルにする予定なんですが、
それだと正しく動かないってことでしょうか?
(となると、2つモジュールが必要になる?)
引用返信 編集キー/
■5304 / inTopicNo.13)  Re[12]: 認識できないプログラムが・を消したい
□投稿者/ Jitta (368回)-(2007/07/10(Tue) 11:48:35)
No5296 (Blue さん) に返信
> すみませんが、ちょっとmanifestに関して知識が不足しているようで、
> よろしかったらご教授ください。
>
> >もともと、出来合い品にくっつけるためのものですが、v3 manifest は外付が優先されないので
> >この方法じゃないと昇格制御はできません。
> 外付けにするのは普通にNGなんでしょうか?
> うちはVista以外の場合にmanifestを意識させたくないとの理由で外付けファイルにする予定なんですが、
> それだと正しく動かないってことでしょうか?
> (となると、2つモジュールが必要になる?)

意識させたくないなら、埋め込んだ方が見えないので、意識しないと思います。
意識する人がちがう?

外にあると言うことは改編可能でもあるわけで、この意味でも埋め込みを勧めます。
引用返信 編集キー/
■5305 / inTopicNo.14)  Re[11]: 認識できないプログラムが・を消したい
□投稿者/ Jitta (369回)-(2007/07/10(Tue) 11:55:41)
No5263 (とっちゃん さん) に返信
> ■No5250 (Blue さん) に返信
> >>manifest の追加をするには開発環境を vc++6 から vs2005 に切り替える必要が有るけど
>>そうなんですか?
>>manifestファイルを外付けにするなら単なるテキストファイルなので問題ないと思いますが。
>>(VC6でもリソースとして埋め込むことも出来るはずだったかと。)
>
> VC7.0(7.1は不明)までは、リンカがきちんと理解できていないので、正しいバイナリになりません。<v3 manifest

すみません、正しいバイナリにならず、どの様な場合に、どの様な事が発生しますか?
今、7.1でやってますが、特におかしいと感じないので、検証のため、教えてください。
引用返信 編集キー/
■5308 / inTopicNo.15)  Re[13]: 認識できないプログラムが・を消したい
□投稿者/ Blue (318回)-(2007/07/10(Tue) 12:01:37)
No5304 (Jitta さん) に返信
> 意識させたくないなら、埋め込んだ方が見えないので、意識しないと思います。
> 意識する人がちがう?
意識させるといういみは、Vistaのみmanifestを適応させたい。
それ以外はそんなもの使われなくても組み込まないようにしたいということです。
引用返信 編集キー/
■5310 / inTopicNo.16)  Re[12]: 認識できないプログラムが・を消したい
□投稿者/ とっちゃん (163回)-(2007/07/10(Tue) 12:15:59)
とっちゃん さんの Web サイト
No5296 (Blue さん) に返信

> 外付けにするのは普通にNGなんでしょうか?
> うちはVista以外の場合にmanifestを意識させたくないとの理由で外付けファイルにする予定なんですが、
> それだと正しく動かないってことでしょうか?
> (となると、2つモジュールが必要になる?)

いえ、v1/v3 に限らず manifest を外に置くか埋め込むかは、本来開発者が選択していいことには
なっているので、どちらでもよいといえばどちらでもよいとも言えます。

が、出た当初より、既存の製品のバイナリを「変えずに」VisualStyle などに対応するために
外付けもサポートするとされていますので、本質的には埋め込むのが正しい在り方であり、
外付けは、一時的なものであるという風に考えるべきものです。

サポートされるようになってすでに5年以上、この間ずっと変わりなく提供されているモジュールも
あるでしょうけど、実際にはそれは例外といってもいいくらいごくわずかなものなので、
ほとんどのアプリは、manifest の存在を知りつつ変更を加え続けているはずです。
#開発者が知らないのは単にサボってるだけですので、それは論外

95/NT4 では試していませんが、manifest を埋め込んでいることで誤動作するということは
過去のOS(98/SE/ME/2000)でも発生していません。また、v3 を埋め込んで XP が誤動作する
ということも今のところ確認できていません(すッピンだと発生するとかはあるかもしれませんが...w)

manifest ファイルは、.NET でいうところの厳密名をつけたモジュールのリンク情報(v1)でもあるので
本来は埋め込んであってしかるべき情報というよりも、リンク情報としてあるべきはずのものといえます。

.NET ではメタデータという形で保持していますが、Native PEフォーマットにはそんなものがないので
リソースとして保持させることにより、追加情報を持てるようにしたというように考えるべきでしょう。

なので、本質的には、埋め込んであってしかるべきものというスタンスで考えるべきだと思いますよ。

特に意識させたくないのであれば、既定で COMCTL32.DLL 6.0 の参照と、AsInvoker を指定した
manifest を用意しておき、ビルドオプションでおまじないでやっとけ!でOKだとw

引用返信 編集キー/
■5312 / inTopicNo.17)  Re[12]: 認識できないプログラムが・を消したい
□投稿者/ とっちゃん (164回)-(2007/07/10(Tue) 12:25:01)
とっちゃん さんの Web サイト
No5305 (Jitta さん) に返信
>
> すみません、正しいバイナリにならず、どの様な場合に、どの様な事が発生しますか?
> 今、7.1でやってますが、特におかしいと感じないので、検証のため、教えてください。

7.0(VS2002のNativeC++)では、リソースとしては埋め込まれますが(ビルド後にリソースを参照して確認)
v3 があっても Vista が認識してくれませんでした。
なので、mt.exe をビルド終了後のコマンドで実行しています。

VS2003(7.1)はうちでは利用していないため、確認していません。

引用返信 編集キー/
■5314 / inTopicNo.18)  Re[13]: 認識できないプログラムが・を消したい
□投稿者/ Blue (319回)-(2007/07/10(Tue) 12:45:13)
回答ありがとうございます。

事業部の方針が、
>意識させるといういみは、Vistaのみmanifestを適応させたい。
>それ以外はそんなもの使われなくても組み込まないようにしたいということです。
とのことらしいので、外付けがNGでないのであれば、このままでいきます。(埋め込まない)

引用返信 編集キー/
■5317 / inTopicNo.19)  Re[14]: 認識できないプログラムが・を消したい
□投稿者/ 中博俊 (1113回)-(2007/07/10(Tue) 13:12:52)
中博俊 さんの Web サイト
>とっちゃんねたに食いつき
真偽はきっちり調べてないけど、v3マニフェストを埋め込んだexeをXPで稼働させると暴走する場合がある。というKBでてます。
KBはどっかで調べて。おいらのブログで取り上げたから。
んで解決策はXML名前空間とプレフィックスをきっちりつけるということだけです。

>じったさんねたに食いつき
>外にあるということは改変可能でもあるわけで
中にあっても同じじゃん。署名が消えるでもしてくれりゃ別だけど・・・
引用返信 編集キー/
■5319 / inTopicNo.20)  Re[15]: 認識できないプログラムが・を消したい
 
□投稿者/ とっちゃん (165回)-(2007/07/10(Tue) 13:35:42)
とっちゃん さんの Web サイト
No5317 (中博俊 さん) に返信
> >とっちゃんねたに食いつき
> 真偽はきっちり調べてないけど、v3マニフェストを埋め込んだexeをXPで稼働させると暴走する場合がある。というKBでてます。
> KBはどっかで調べて。おいらのブログで取り上げたから。
> んで解決策はXML名前空間とプレフィックスをきっちりつけるということだけです。
>
あ、じゃぁ動かなかったのはそれが原因かも...
Vistaで認識できないことには先に進まないってんで、その時はXPでは動作確認すらしてないし...(^^;


> >じったさんねたに食いつき
> >外にあるということは改変可能でもあるわけで
> 中にあっても同じじゃん。署名が消えるでもしてくれりゃ別だけど・・・
署名付けてれば、改ざんで引っ掛かるんでは?

つけてなければ意味ないですけど、素人じゃ変更できないから多少はましw
外付けは、素人でも変更できてしまう(最悪、いなくなってアボーン...w)ので、すごく危険。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -