GitHub Copilot Chat 使ってみた

GitHub Copilot Chatが使えるようになったので実験。

VSCodeの場合

・GitHub Copilotを登録(既に登録済)
・Visual Studio Code Insidersをインストール
https://code.visualstudio.com/insiders/
・拡張機能GitHub Copilot Nightlyをインストール

拡張機能からGitHubにログインした後、サイドパネルにチャットが表示される。

Visual Studioの場合

・Visual Studioを最新版にアップデート
・拡張機能Visual Studio Extension for GitHub Copilot Previewをインストール
・Visual StudioからGitHubのアカウントにログイン
・表示>GitHub Copilot チャット

***

・日本語に対応している。質問/回答も日本語。
・ChatGPTと同じで、プログラミング以外の質問もできる。
まったくプログラミングに関連しない話題はNG。
・反応速度は、Bing、ChatGPT(無料)より断然早い。

試しにVBAでPOST+PHPで受け取るコードを書いてもらってみた。

***

ChatGPTも同じだけど、ちょっと複雑な(ループや条件分岐が複雑になるような)内容だと思った通りのコードを生成させるのは難しい。

逆に上から素直に処理するようなコードの場合、思った通りになることが多いので、かなりの省力化になりそう。

ChatGPTの場合(VSCode)

ChatGPTのアカウントを作成し、APIキーを取得しておく。

ChatGPT – Genie AI
をインストールしChange API Keyから登録。

 

 

PowerShell ユーザー名、IPアドレスをメールする

 

VBA 請求期間を計算

マスタの締日、現在の日付から請求期間、支払予定日を計算。

 

VBA モジュールエクスポート

 

Power Automate Desktop サインインできない

Power Automate Desktop を使って見ようと思ってインストールしてみたが、サインインしようとメールアドレスを入力すると、
メッセージ = Invalid cloudType value: Invalid
パラメーター名:cloudType
エラー = System.ArgumentException
全文 = System.ArgumentException: Invalid cloudType value: Invalid
パラメーター名:cloudType
というエラーがでる。

どうもメールアドレスに問題があるようなので、
・test@gmail.comでサインイン
(エラーが出ず次の画面に進む)
・パスワードを忘れた場合をクリック
・キャンセルをクリック
ここまではサインイン情報はtest@gmail.comになっていたが、これで自分のメールアドレスに切り替わるので、パスワードを入力すれば完了。

C# 画像表示(縦横比固定+タイマー更新)

LAN経由で現場のディスプレイに資料を表示させておくアイデアの検証用。

何かしらのスクリプトで資料のファイルを自動で開く方法も考えたけど、資料を準備する側が画像に変換する手間をかけれるならプログラムが簡単で済む。

 

 

 

 

Windows BitLocker無効化

新しいノートPC(HP)の設定をしていたらBitLockerが有効化されていた。
特に持ち歩く訳でもないし、KB5012170のような不具合もあるので無効化しておく。有効化すると(HDDだと特に)パフォーマンスが低下するという理由もある。

・無効化
control>BitLockerドライブの暗号化>BitLockerを無効化する
※数十分かかるので注意

・回復キーのバックアップする場合
control>BitLockerドライブの暗号化>回復キーのバックアップから保存できる。
Microsoftアカウントでログインしている場合、
Web>Microsoftアカウント>デバイス
からも確認できる。

・仕組み
BitLockerはTPMを利用しストレージを暗号化している。TPMはハードウェアの一部として鍵を生成している。

・注意
リカバリ、CMOS、BIOS、ドライブのクローンなどでBitLockerを有効化してあると不具合が出やすい。

Microsoftアカウントでログインしていると、BitLockerが自動で有効化されることがある。

もしPIN認証を複数回失敗しTMPロックアウトしたら
Win+R>tpm.msc>TPMをクリア

Windows パス色々 メモ

・IEブックマーク

%userprofile%\Favorites

・Edge(従来)ブックマーク

%userprofile%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\120712-0049\

%userprofile%\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\MicrosoftEdge\User\Default\Favorites

・Edge(Chromium)ブックマーク

%userprofile%\AppData\Local\Microsoft\Edge\User Data\Default
Bookmarks
Bookmarks.bak

・スタートメニュー

C:\ProgramData\Microsoft\Windows\Start Menu\Programs
%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

・Chrome拡張機能

%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Extensions

・VBA証明書

C:\Program Files\Microsoft Office\root\Office16\SELFCERT.EXE

certmgr.msc>個人>証明書
inetcpl.cpl>コンテンツ>証明書

Windows アカウントから管理者権限がなくなる+PINが削除できない

Microsoftと紐づいているxxxというアカウントで、
netplwiz>xxx>プロパティ>ユーザー名

を変更してみたら、ユーザーアカウント制御で「はい」が出てこなくなった。
(このアプリがデバイスに変更を加えることを許可しますか?)
control userpasswords
で確認してみたらxxxアカウントから管理者権限がなくなっていた。
(この操作を他のPCでも実行してみたら問題なかったのでエラーっぽい挙動)
他のユーザーがなかったので詰んでしまった。

まずローカルアカウントへ切り替えてみたがダメだった。
設定>アカウント>ユーザー情報>
ローカルアカウントのサインインに切り替える。

セーフモード(Shift+再起動)で起動、Administratorでサインインし、
cmd>net user yyy /add
を実行しyyyでサインイン。
netplwiz>xxx>プロパティ>グループメンバーシップ
からxxxを管理者に変更。パスワードも変わってしまっていたので、
netplwiz>xxx>パスワードのリセット
を実行。yyyをサインアウトしxxxでサインインし、
netplwiz>yyy>削除
※今回は深く考えずyyyを作成したけど、Administratorを有効化しても解決できたかもしれない。

xxxをMicrosoftと紐づける。
設定>アカウント>サインイン

PINが再度設定されたのでPINを削除しようとしたら、
この暗証番号(PIN)は組織のリソースでは使用できません。修正するには、ここをタップまたはクリックしてください。
となってしまった。

設定>アカウント>職場または学校へのアクセス>zzz>このアカウントの接続を切断する>切断
を実行。
設定>アカウント>PIN>削除

どうやら、以前Office365を Business Standardで契約していたとき、Windowsのアカウント(xxx)とOfficeのアカウント(zzz)が違っていたの原因っぽい。ただ、今回の症状が発生するまでは問題なくPINを削除してあったので詳細は不明。

OLE DB プロバイダー 登録解除(削除)

・対象のCLSIDを調べる

(New-Object data.oledb.oledbenumerator).getElements() | Where-Object{$_.sources_description -match “ole\s?db”} | Format-List sources_name, sources_description, sources_clsid
にて確認できる。

※32bitを確認したい場合、
%systemroot%\syswow64\windowspowershell\v1.0\powershell.exe
のPowerShellを起動する。

※CLSIDは
dee35070-506b-11cf-b1aa-00aa00b8de95
のような感じになる。

※.UDLの空ファイルを作成し、クリックでもOLE DBは確認できる。CLSIDは調べられないが、接続テストも可能。

・レジストリのキー削除

レジストリエディターを起動(regedit)
HKEY_LOCAL_MACHINE
以下でCLSIDを検索する。

HKEY_LOCAL_MACHINE\[WOW6432Node]\CLSID\xxx
見つかった該当のキーを削除する。※32bitの場合WOW6432Node

そのままでは削除できないため、
右クリック>アクセス許可>詳細設定
所有者を自分に変更。
右クリック>アクセス許可>追加
自分を追加しフルコントロールへ。

サブキーそれぞれ実施が必要。

これで削除完了。

***

・OLE DBの実体(dllファイル)のパスを調べる場合

HKEY_LOCAL_MACHINE\[WOW6432Node]\CLSID\xxx\InprocServer32
以下にdllのパスが入っている。

COMコンポーネント一覧、登録解除

・COM一覧
Get-WmiObject Win32_ClassicCOMClassSetting
Get-WmiObject Win32_ClassicCOMClass

・DCOM一覧
Get-WmiObject Win32_DCOMApplication

・登録解除
regsvr32 /u “C:\Windows\SysWOW64\xxx.dll”
※32bitの場合
C:\Windows\SysWOW64\regsvr32 /u “C:\Windows\SysWOW64\xxx.dll”