Windows system >> Windowsの知識 >  >> Windows 7システムチュートリアル >> Win7システムの基本 >> Windows 7ソフトウェア開発の例:UAC、システムバージョン、権限

Windows 7ソフトウェア開発の例:UAC、システムバージョン、権限

  
        

Win7のドローリングのクールな機能を見て、抱きしめたくて仕方がありませんか。その新しい機能を取り入れるためには、私たちのソフトウェアはそれと結婚しなければなりません - それはWin7の下でうまく働きます。個々の開発者によって開発された中小規模のソフトウェアで、機能は比較的単純で、システムへの近さの程度は一般的に低いですWin7の必要な通常の操作のいくつかの要素を追加することはOKです!

Win7と結婚するために必要な条件

システムバージョンの検出とインストールパスの選択の要素をソフトウェアに追加する必要があります。

必須条件1:検出システムのバージョン

運用の初期段階では、ソフトウェアはオペレーティングシステムの種類とバージョン番号を判別し、オペレーティングシステムの種類に応じて特定のコードを実行する必要があります。異なるコードが実行される可能性があります。それはオペレーティングシステムのバージョンの障害によって決定されるため、ほとんどのソフトウェアはWin7の下で正しく動作しません。

バージョン検出エラーが発生すると、多くのソフトウェアでエラーが発生しますが、ソフトウェアイメージをダブルクリックしても何も反映されない、またはダイアログボックスが表示されることがあります。 「バージョンを更新する」が、実際にはコンピュータにWin7がインストールされています。

必要条件2:ユーザー権限に合わせる

Win7はデフォルトでは管理者以外のアカウントで実行されており、権限は比較的小さいです。現在のユーザーの場合、ソフトウェアインストールプログラムは、プログラムファイル、Windowsインストールディレクトリ、およびシステムディスクを含むレジストリにデータを書き込みます(ソフトウェアは実行時にシステムフォルダまたはレジストリにユーザーデータを保存することがあります)。アクセス許可が十分ではなく、ソフトウェアがWin7を正常に起動できません。

ちょっとした知識:UACはWindowsユーザーのデフォルトの権限を減らす方法で、ユーザーにセキュリティをもたらします。ある程度の範囲でウイルス攻撃を含む可能性があります - ウイルス対策ソフトウェアをオフにして開始ウイルスプロセスをコピーして配布し、オンラインゲームクライアントを投入し、キーボード操作を監視してパスワードを盗み取ります。

たとえば、データは正常に保存されたように見えますが、場所が書き込まれたとき、またはログアウトが別のWindowsユーザーに切り替えられたときに保存されたデータが見つかりません。この種の問題の根本的な原因はWin7のUACメカニズムです。これはWindowsユーザーのデフォルトのアクセス権を減らし、一般的な操作でシステム設定とシステム保護フォルダを変更することを不可能にします。

ヒント:ソフトウェアがシステムのいくつかの機能を組み合わせたい場合は、対応するAPIを呼び出す必要があります。ソフトウェアを実行するには適切なAPI呼び出しが非常に重要ですので、次号以降のWin7クール関数から始めて、正しく呼び出す方法を紹介します。 Win7の最新のAPI、Win7のユニークなタスクバー、ジャンプリスト、アイコンオーバーレイ、プログレスバー、プログレッシブタブとサムネイルツールネイル(Thumbnail Toolbar)......

"wedding"に必要な要素

私たちのソフトウェアはWin7とうまく結婚し、次の要素がソフトウェアに追加されるはずです。

1.コード検出オペレーティングシステムのバージョン番号

ソフトウェアにオペレーティングシステムがWin7または2008 Serverであるかどうかを判断するためのコードを追加します。

C#

if( Environment.OSVersion.Version> new Version(5、1)){MessageBox.Show( "Windows 7またはWindows 2008 Server"、 "オペレーティングシステム"、
MessageBoxButtons.OK、MessageBoxIcon.Error); BR> return;
}

2.システムディスク以外のディスクにデータを保存しようとします。

ソフトウェアデフォルトではシステムディスクにインストールしないソフトウェアのインストールパスを書くときは、このことを考慮してください。さらに、ソフトウェアの読み取りおよび書き込みレジストリを変更するためのコードを追加する必要があります。データを保存するノードとしてHKEY_CURRENT_USER \\ Softwareの下のキー値を使用します。

static void Main(string [] args)
{
var registryKey = Registry.CurrentUser.CreateSubKey(<ソフトウェア> \\ test ");
registryKey.SetValue(" name "、" zswang ");
registryKey = Registry.CurrentUser.OpenSubKey( @ "Software \\ test");
Console.WriteLine(string.Format( "{0} = {1} \\ r \\ n"、<名前>、registryKey.GetValue( "name"))))プログラムの実行権限を向上させる

ユーザーが管理者としてシステムにアクセスし、システムディスクにソフトウェアをインストールする場合は、次の手順を実行します。どうですか?ユーザー権限の権限を決定する必要がある、単純な解決策はマニフェストファイルを追加することです。実行ファイルで、実行ファイルと同じ名前で拡張子が.manifestのファイルを探し、次のコードを入力します。

<?XML version = "1.0" encoding = "UTF-8" standalone = "yes"?<アセンブリXMLns = "urn:schemas-microsoft-com:asm.v1" manifestVersion = "1.0">
< assemblyIdentity version = "1.0.0.0"
processorArchitecture = "X86" name = "test" type = "win32" /> >ア​​プリケーションの説明< /description>
< - >アプリケーションのセキュリティ要件 - < trustInfo XMLns = "urn:schemas-microsoft-com:asm.v2">< security><要求された特権><><;> requestedExecutionLevel
level = "requireAdministrator"
uiAccess = "false" />;
< /requestedPrivileges>;
< /security>
< /trustInfo>
< /assembly>
zh-CN"],null,[1],zh-TW"]]]

Copyright © Windowsの知識 All Rights Reserved