楽天アフィリエイト

ラベル C# の投稿を表示しています。 すべての投稿を表示
ラベル C# の投稿を表示しています。 すべての投稿を表示

2017年4月28日金曜日

「このプログラムは正しくインストールされなかった可能性があります」

作成したソフト(WPF)でWindows7にインストールした際に
「このプログラムは正しくインストールされなかった可能性があります」
メッセージが表示される問題について

問題は
UAC環境下でexeの名称に「install」や「setup」が含まれる
マニフェストに 7 互換指定が記述されていないと
いろいろあるんですが詳細は下記参照
DSAS開発者の部屋 

一番原因として多いのは名称に「install」,「setup」が含まれるとかかな
今回作成したソフトも「setup」が含まれていましたが
名称は変更できないという理由でマニフェストに7の互換情報と権限昇格を
記述する方法で対応しました。

■対応方法(VS2010にて実施)
1.プロジェクトに新しい項目を追加(右クリック-追加-新しい項目)
2.「アプリケーション マニフェスト ファイル」を選択(app.manifest)
3.以下の記述を変更して権限昇格
<requestedexecutionlevel level="asInvoker" uiaccess="false" />

<requestedexecutionlevel level="requireAdministrator" uiaccess="false" />
これで管理者権限で実行となる
上記の管理者権限は変更しなくても下記の互換情報さえ登録すれば
問題のメッセージがでなくなった。

4.以下のコメントをはずしてアプリケーションの互換情報を登録
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440111f93a}"/>

一応確認としてプロジェクトのプロパティで
アプリケーションタブのマニフェスト項目にapp.manifesutとなっていることを確認

これで問題のメッセージは表示されなくなりました。


2016年12月12日月曜日

WPF XAML側でボタンをクリック時に非活性

WPFの処理でボタンを連続でクリックした際に,
(クリックイベントで別の画面が開く処理)
開いた画面を閉じたら,再度同じ画面が開くようになっていた。

色々,連続実行されない処理を施してみたものの
・ボタンクリック時にイベントを破棄
⇒コマンドで実行されているため,クリック時イベント前に処理される?
・イベント時にフラグ使用し,フラグで処理判断
⇒イベント中でなくイベント後に再度イベントが発生
これでは解決できず


結果,XAMLでクリックした瞬間に非活性にし
押せなくしようと考えて下記のようにし,解決できました。
<!-- リソース部分 --> <grid .resources=""> <storyboard x:key="testStoryBord"> <objectanimationusingkeyframes storyboard.targetproperty="(Button.IsEnabled)"> <discreteobjectkeyframe keytime="0"> <discreteobjectkeyframe.value> <system:boolean>False</system:boolean> </discreteobjectkeyframe.value> </discreteobjectkeyframe> <discreteobjectkeyframe keytime="0:0:1"> <discreteobjectkeyframe.value> <system:boolean>True</system:boolean> </discreteobjectkeyframe.value> </discreteobjectkeyframe> </objectanimationusingkeyframes> </storyboard> </grid> <!-- ボタン部分 --> <button> &#12288;&#12288;<button triggers> <eventtrigger routedevent="Button.Click"> <beginstoryboard storyboard="{StaticResource testStoryBord}" /> &#12288;&#12288; </eventtrigger> &#12288;&#12288;</button triggers> </button>

2015年8月5日水曜日

C# WPF 画面表示後に処理

C#のWPFでLoadedイベントを使い,処理を行うようにしていたのですが

画面描画がされないまま処理されていました。


Windows FrormsのShownイベントみたいなものがあったのでメモ


「ContentRendered」イベント
ウィンドウの描画が終わった後に呼び出されるイベント

これで描画後に処理が行えるようになる。