using System; using System.Drawing; using Arp.Prova.ImageLibrary; using Arp.Prova.CsvLib; using Arp.Prova.PlayLib; using System.Windows.Forms; // CodeClass public class CodeClass { public static int CodeStart() { //--------------------スタート画面のレイアウトを変更するサンプル-------------------- //こちらのサンプルは、「スタート画面」のレイアウトをPowerShellのコマンドにて変更するサンプルです。 //【注意】 //本サンプルは、特定のレジストリを一度削除するシナリオがあります。 //その為、本サンプルを実行する際は、必ずレジストリを変更しても良い環境にて実施してください。 //また、レジストリ変更により発生した問題に関しては、責任を負うことが出来ませんので //自己の責任において行って頂けますようお願い致します。 //【事前準備】 //@.事前にご希望のスタート画面のレイアウトに変更してください。 //A.SetROBOフォルダーをCドライブ直下(C:\SetROBO)に配置します。 //B.@で変更したレイアウトの情報を出力します。 // 「スタート>Windows PowerShell>Windows PowerShell」を開き、コンソールに下記コマンドを貼り付け実行してください。 // // Export-StartLayout -UseDesktopApplicationID -Path "C:\SetROBO\layout.xml" // //C.実行後、CドライブのSetROBOフォルダー内に「layout.xml」が出力されていることを確認します。 // ※もしファイルが出力されていない場合は、PowerShellのコンソールを管理者で起動しBのコマンドを再度実行してください。 //なお、実行の際はスタート画面のレイアウトの変化を確認する為、再度レイアウトを変更してから行ってください。 //--------------------設定開始-------------------- //-LayoutPathにInportするlayout.xmlのパスを指定するコマンド string importStartLayout = @"Import-StartLayout -LayoutPath 'C:\SetROBO\layout.xml' -MountPath 'C:\'"; //HKEY_CURRENT_USER以下「{可変な値}$start.tilegrid$windows.data.curatedtilecollection.tilecollection」のレジストリキーを削除するコマンド string removeItem = @"Remove-Item 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\*$start.tilegrid$windows.data.curatedtilecollection.tilecollection' -Force -Recurse"; //WindowsのExplorerプロセスを再起動するコマンド string restartProcess = @"Get-Process Explorer | Stop-Process"; //■管理者権限でPowerShellを起動するBatを実行 PlayLib.ProcessStart(@"C:\SetROBO\RunPowerShell.bat"); //■管理者権限のPowerShell画面を待つ PlayLib.WaitWindow("管理者*", true, 10); { PlayLib.Sleep(1000); //■-LayoutPathにInportするlayout.xmlのパスを指定 Clipboard.SetText(importStartLayout); PlayLib.Window("管理者*").Input("{Ctrl_Down}v{Ctrl_Up}{Enter}"); PlayLib.Sleep(2000); //■HKEY_CURRENT_USER以下「{可変な値}$start.tilegrid$windows.data.curatedtilecollection.tilecollection」のレジストリキーを削除 Clipboard.SetText(removeItem); PlayLib.Window("管理者*").Input("{Ctrl_Down}v{Ctrl_Up}{Enter}"); PlayLib.Sleep(2000); //■WindowsのExplorerプロセスを再起動 Clipboard.SetText(restartProcess); PlayLib.Window("管理者*").Input("{Ctrl_Down}v{Ctrl_Up}{Enter}"); PlayLib.Sleep(2000); //PowerShell画面を閉じる PlayLib.Window("管理者*").Close(); } return 0; } }