VBA Seleniumの操作

SeleniumWrapper Type Libraryの参照設定を追加する。

Linux コマンド

 less

-N
ナンバリング

-F
画面に収まれば自動終了

-R
カラー表示

-X
終了時画面クリアしない

-S
折り返し無し

-s
空白まとめる

-p xxx
文字反転

-O xxx.txt
パイプのみ、閲覧後ファイル保存

less起動後

q
終了

Shift+f (Ctrl+cで通常モード)
自動更新

g, G
先頭、末尾へ移動

j, k
一行の上下

f, b / w, z
一ページの上下

& xxx
xxxのみ表示
&で絞りんこんでShift+fで更新も可能。

/
検索(nで移動)

-S
折り返し無し。(移動は←, →)

テキスト関連

tr -f \r
Win改行を除く

nkf -wd ファイル名
改行をLinux文字コードをUTF-8

nkf -wd –overwrite ファイル名
そのまま上書き

nkf –guess ファイル名
文字コード判定

hexdump -c xxx
改行コード調べる

sed -e “s/,/\n/g”
カンマを改行へ

 apt-get/apt-cache

apt-get update (apt update)
キャッシュの更新

apt-get upgrade (apt upgrade)
ソフトバージョンアップ

(apt upgradeでは新しいパッケージもインストールされる)

apt-get dist-upgrade (apt full-upgrade)
ディストリビューションのアップ

apt-get remove xxx (apt remove)
ソフトの削除

apt-get purge xxx
(apt-get –purge remove xxx)
設定ファイル残らないソフトの削除。

apt-get –purge autoremove
使っていないパッケージ削除(設定ファイルも)

apt-get autoclean
使っていないアーカイブ削除
(キャッシュされているけどインストールしていない.deb)

do-release-upgrade
OSのアップデート

dpkg -l (apt list –installed)
パッケージの一覧

dpkg -L パッケージ
インストールしたファイル一覧

起動関係

shutdown -h now
終了

shutdown -r now
再起動

プロセス関係

ps aux | grep httpd
プロセスのユーザを確認する。

ps -aux | grep apache
これでプロセス名を確認して
kill xxx
でプロセス終了。

pgrep -l apache
でプロセス番号を探すこともできる。

pkill プロセス名
で複数のプロセスを終了することもできる。

find

ドットはカレントディレクトリから全てのサブディレクトリ
find . -name “*.php”

開始ディレクトリを指定することもできる
find /var

lsと同じように表示
find . -name “*.php” -ls

一括変更
find . -type f | xargs chmod 604
find . -type d | xargs chmod 705

SCP

scp ./example.tar user@210.123.45.67:/home/user/
example.tarを210.123.45.67に転送。

scp -r ./test username@example.net:/home/username
testディレクトリをexample.netに転送。

秘密鍵を使う場合、
scp -i 秘密鍵 コピーしたいファイルパス 受取先パス

その他

/etc/init.d/networking restart
IPアドレスが消えた場合。

cd –
戻る

ctrl + u
入力中を消す

xxx &
ジョブをバックグラウンドへ

jobs
ジョブ一覧

kill %1
ジョブを消す

source .bashrc
bashの設定変更後

サイズを調べる

df -h
デバイスのサイズ

du -h /var/
特定フォルダ以下のサイズ(階層指定の場合 du -h –max-depth=1 / )

screen

起動
screen

一覧
screen -ls

デタッチ
Ctrl+a, d

アタッチ
screen -r id

終了
Ctrl+a, \

シェル作成
Ctrl+a, c

シェル一覧
Ctrl+a, w
Ctrl+a, “(ダブルクオーテーション)

シェル移動
Ctrl+a, 1~

シェルを閉じる(screen自体は生きてる)
Ctrl+a, k

ウィンドウ分割
Ctrl+a, |(バーティカルバー)
Ctrl+a, S

ウィンドウ移動
Ctrl+a, tab

ウィンドウ分割終了
Ctrl+a, Q(その他全ての領域)
Ctrl+a, X(現在の領域)

Windows 不具合関連

ここでは、動作を軽くする、不具合対策、共有設定など混ざっている。

リモートなどでセーフモード再起動する場合

shutdown /r /t 0
r:再起動
s:シャットダウン

UEFI設定・BIOS起動

shutdown /r /fw /t 0
あるいは、
スタートメニュー>設定>更新とセキュリティ>回復>今すぐ再起動>トラブルシューティング>詳細オプション>UEFIファームウェアの設定>再起動

Windows 自動で再起動してしまう

可能性は低いが、一度キーボードが故障していて起動しないこともあった。

グループポリシーエディター

gpedit.msc

HOMEの場合、手動で有効化できる。

今回Win11にしてバージョンが変わっていたので、%SystemRoot%\servicing\Packages\
を検索してみるとバージョンが変わっていた。

バッチでインストールする場合

イベントビューワー

eventvwr
エラーがでていないか目を通す。

ファイルシステム

sfc /scannow
dism /online /cleanup-image /restorehealth 

SFCとDISMの違い

デフラグ

dfrgui
で起動、あるいは、
ドライブ右クリック>ツール>最適化

コマンド(SSD)の場合、
defrag c:  /L
(Win10ならSSDもOK)

過去、HDDのPCで小さなファイルを大量に更新する環境で不調になったときはデフラグで解決したことがある。

エラーチェック

(Win7)chkdsk /f
(Win10)chkdsk /scan
あるいは、
ドライブ右クリック>ツール>エラーチェック

もし、オフラインを要求されたら
chkdsk /spotfix
それでもだめなら
chkdsk /f
を実行する。

クリーンアップ

cleanmgr
あるいは、
ドライブ右クリック>全般>ディスクのクリーンアップ

ccleaner等のツールを使ってもOK。
過去、レジスリトリのクリーンで不調になったことがある。逆にレジストリのクリーンで効果を実感したことはない。

高速スタートアップの無効化

無効化しておくことが多い。

powercfg.cpl>電源ボタンの動作を選択する>現在利用可能ではない設定を変更します
高速スタートアップを有効にする
のチェックを外す。
(ハイブリットスリープが無効の場合は表示されない)

・ハイブリットスリープの無効化
powercfg /h off

・電源の状態
powercfg /a

・休止状態とスリープ

休止状態:HDD(hiberfil.sys)に保存する。
スリープ:メモリに保存する。
ハイブリットスリープ:メモリとHDDの両方に保存する。

暗号化

HDDの場合、暗号化で遅くなる場合あり。

control>Bitlockerドライブ暗号化>Bitlockerを無効にする
Win10設定>更新とセキュリティ>デバイスの暗号化>オフにする

プロセッサ優先度

powercfg.cpl

更新プログラムの確認

(win7)wuapp>更新履歴の表示
(win10)設定>更新とセキュリティ>更新の履歴を表示する

スタートアップ停止

taskmgr>スタートアップ
shell:startup
shell:common startup

またはccleaner等

(Win10)設定>プライバシ>バックグランドアプリ

不要機能停止

optionalfeatures

Dcom Launcher暴走

dcomcnfg>コンポーネントサービス>コンピューター>マイコンピューター>右クリックプロパティ>既定のプロパティ
このコンピュータ上で分散COMを有効にする
のチェックを外す。

不要サービス停止

msconfigや、services.mscから手動でも停止可能。
無闇に止めると動かない機能もあるので注意

Windows 不要サービス停止

不要タスク停止

Windows タスクスケジューラ

インターネットエクスプローラー

設定をリセットする。
履歴を削除する。
終了時に履歴を消す。

視覚効果・仮想メモリ

sysdm.cpl>詳細設定>パフォーマンスオプション
視覚効果はパフォーマンスを優先し最低限のみ残す

詳細設定>仮想メモリ
をシステム管理サイズへ。

メモリが十分な場合、ページングファイルなし

Windows Defender

(Win7)control>Windows Defender

自動スキャンとリアルタイムを止める。

インデックス停止

control>インデックスオプション

メンテナンス実施

(Win10)control>セキュリティとメンテナンス>メンテナンス
メンテナンスの開始を実行する。

ちなみに、自動メンテナンスは、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance
MaintenanceDisabled=1
で無効化となり、その場合は手動でも実行できない。

ここの作業と、
・システム パフォーマンス測定(WinSAT)
・保守タスク(トラブルシューティング)
は関係ない。

保守タスク実施(トラブルシューティング)

control>トラブルシューティング>システムとセキュリティ
保守タスクを実行する

ネットワークカード

Windows NIC関連

ネットワークプロファイル変更方法

Win10設定>ネットワークとインターネット>状態>接続プロパティの変更
必要なら、プライベートに。

共有が切れる場合

ncpa.cpl>右クリックプロパティ>構成>電源の管理
電力の節約のため … のチェック外す。

ネットワーク探索が有効にできない
(ネットワークに表示されない)

昔はNetBIOS over TCP/IPのみだったが、現在は
名前解決:LLMNR (Link Local Multicast Name Resolution)
一覧:WSD (Web Service on Devices)
一覧:SSDP (Simple Service Discovery Protocol) ルーター等
一覧:UPnP
など複数存在する。

ちなみに、LLTDプロトコルは過去ネットワークマップを作成しており、探索に利用されていない模様。同様にLLDPプロトコルも探索に利用されていない模様。

・ネットワーク探索

control>ネットワークと共有センター>共有の詳細設定>プライベート>ネットワーク探索
ネットワーク探索
を有効にする。必要ならその他の項目も変更。

・SMB1.0

NetBIOSで認識する古いNAS等は
optionalfeatures
から、SMB1.0が有効かどうか確認。

Windows SMB1.0無効化

・ファイアーウォール

firewall.cpl>詳細設定

Netlogon サービスをチェック、ファイルの共有などチェック。

・サービス

services.msc
から、
Function Discovery Resource Publication (WSD)
Function Discovery Provider Host (WSD)
SSDP Discovery (SSDP)

UPnP Device Host (UPnP) / Universal Plug and Play

Network Connections
DNS Client
あたりを様子を見ながら有効化

nbtstat -A <IPアドレス>
にて表示されないPC対象に実行するとすぐに表示される場合もある。

このとき..__MSBROWSE__.と表示されるPCはマスターブラウザといってネットワークに表示される情報を管理しているPCであり、net viewで一覧を取得するときにも利用されている。マスターブラウザはサービスのComputer Browserで有効化できる。

***

タスクトレイを再構築

reg delete “HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify” /f /v IconStreams

reg delete “HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify” /f /v PastIconsStream

reg delete “HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify” /f /v PromotedIconCache

explorer.exe を再起動。

WindowsUpdate・SoftwareDistribution関連

%SystemRoot%\SoftwareDistribution
フォルダをセキュリティソフトの監視対象から外す

アップデートで上手くいかない場合は、wuauserv等を止めてSoftwareDistributionをクリアする。

アイコンキャッシュ削除

(Win7)del /ah  %userprofile%\AppData\Local\IconCache.db
一度消して再起動する。または、
ie4uinit.exe -show

(Win10)del %userprofile%\AppData\Local\Microsoft\Windows\Explorer\iconcache_*.db

サムネイルキャッシュ削除

del %userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_*.db

フォントキャッシュ削除

del %windir%\System32\FNTCACHE.DAT
del %windir%\ServiceProfiles\LocalService\AppData\Local\FontCache\*FontCache*.dat

CSCキャッシュ削除

cmdから実行後に再起動すると1度だけ実行(削除)される。

cmd /c reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\CSC\Parameters /v FormatDatabase /t REG_DWORD /d 1 /f

SMBキャッシュ無効化

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
ここに下記のキーが存在しなければcmdから実行。

cmd /c reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters /v DirectoryCacheLifetime /t REG_DWORD /d 0 /f

cmd /c reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters /v FileInfoCacheLifetime /t REG_DWORD /d 0 /f

cmd /c reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters /v FileNotFoundCacheLifetime /t REG_DWORD /d 0 /f

***

NASにあるファイルを数人で交互に編集したりする環境での不具合にはこれがかなり有効だった。

SMBキャッシュとCSCキャッシュの違い

・CSCキャッシュ

https://docs.microsoft.com/en-us/troubleshoot/windows-client/networking/access-offline-files-file-server-removed-from-network

HOMEでは使えないオフラインファイルの機能。

無効化する場合
control>同期センター>オフラインファイルの管理
または、
gpedit.msc>コンピューターの構成>管理用テンプレート>ネットワーク>オフラインファイル>オフラインファイルの機能の使用を許可または禁止する
から設定する。

・SMBキャッシュ(SMB2 Client Redirector Caches)

http://technet.microsoft.com/ja-jp/library/ff686200(WS.10).aspx

DirectoryCacheLifetime:ディレクトリ情報の保持期間
FileInfoCacheLifetime:ファイル情報の保持期間
FileNotFoundCacheLifetime:File Not Found情報の保持期間

・SMB関連コマンド

接続しているプロトコルのバージョンを調べる
PS>Get-SmbConnection
Dialectの部分

設定情報
PS>Get-SmbClientConfiguration

パフォーマンスカウンタリセット

lodctr /R

Perflibエラーがある場合

Excel

Excel 不具合関連

プリンタ

・ジョブ確認用のショートカットを作成

control>デバイスとプリンター
から該当プリンタをドラッグすれば作成される。

・ジョブ削除、一時停止解除(オフラインは解除できない)

net stop spooler
del %systemroot%\system32\spool\printers\*.shd
del %systemroot%\system32\spool\printers\*.spl
net start spooler
cscript C:\Windows\System32\Printing_Admin_Scripts\ja-JP\prnqctl.vbs -p “DocuCentre-V C2263” -m

その他

・ドライバー更新
ディスプレイとネットワーク関連を先ず最新にする。この2つで不調が解決することも多い。

・Flash
もう必要性もないのでFlashに関連するものは全てアンインストールする。

・ハードウェアアクセラレータ
過去、富士通製(法人向け事務用)のPC数台が異常に重くなったことがあって、ドライバー類を最新にしてもダメで、ハードウェアアクセラレータ類を止めることで改善した。(問題がない場合は無効化しない)

・0バイトファイル

削除しようとすると、この項目は見つかりませんでした、と表示される。
原因は不正な名前(ファイル名の末尾に空白が入っている)だった。
del “\\?\c:\\xxx ”
にて削除できる。

バッチファイル

 

FFmpeg メモ

オプションについて

・コーデック

-c(-codec)
は-vcodecと-acodecをまとめてという意味で、
それぞれ指定する場合、
-vcode -acode
または、
-c:v -c:a
と指定する。

ストリームについて

ffmpeg -i xxx
でファイルを読み込むとストリームが表示される。

Stream #0:0
0番目(読み込まれた順)ファイルのストリーム0番という意味。

0:v
は0番目ファイルの映像全て、
0:a
は0番目ファイルの音声全てと書くこともできる。

インターレース

インターレース方式(NTSC)と、プログレッシブ方式
(720pなどのpはプログレッシブの略)
インターレースは走査線が一本おきになる。

・NTSC
30フレーム/525走査線
アメリカ、日本など

・PAL
25フレーム/625走査線
欧州、中国など

・1度の走査の画をフィールドと呼び1フレーム2フィールド
60i:インターレースで60フィールド(30フレーム)/秒
24p:プログレッシブで24フレーム/秒

***

プログレッシブ動画でも縞ノイズは消える。

-vf yadif=1:-1:0
のように指定する。

・モード

0:フレームごとに1フレーム(既定)
1:フィールドごとに1フレーム
2:0 + 空間インターレースチェックをスキップ
3:1 + 空間インターレースチェックをスキップ

・フィールドタイプ
0:上のフィールドが最初
1:下のフィールドが最初
-1:自動検出(既定)

・フレーム指定
0:すべてのフレーム(既定)
1:インターレースとしてマークされたフレームのみ

サンプル

・分割されたVOBファイルを結合する(FFmpegとは関係ない)
copy /b VTS_01_1.VOB + VTS_01_2.VOB o.vob

・VOBファイルをMP4に変換
インターレース解除、ビットレート指定
ffmpeg -i o.vob -b:v 2000k -c:v libx264 -c:a libmp3lame -b:a 256k -ar 44100 -vf yadif=1:-1:0 o.mp4

品質そこそこなら、ビットレート2000k指定で問題ないが、
もしビットレート指定、ビットレート最大値を指定する場合、
ffmpeg -i o.vob -b:v 4000k  -maxrate 8000k -c:v libx264 -c:a libmp3lame -b:a 256k -ar 44100 -vf yadif=1:-1:0 o.mp4

・DVDに書き込む用の動画を作成
ffmpeg -i i.mp4 -target ntsc-dvd o.mpg

・スケール変更(アスペクト比維持)
ffmpeg -i i.mp4 -vf scale=1280:-1 o.mp4
ffmpeg -i i.mp4 -vf scale=720:-1 o.mp4

・部分的に切り出す
ffmpeg -ss スタート ポジション -i i.mp4 -t 切り出す長さ o.mp4

開始

終了

ffmpeg -ss 0 -i i.mp4 -t 0 -c copy o.mp4

ss無、t有:最初から指定時間まで。
ss有、t無:指定時間から最後まで。
単位を省略すると秒となり、hh:mm:ssでも指定できる。

・ファイルサイズを落とす
ffmpeg -i i.mp4 -vcodec libx264 -b:v 1000k -acodec libmp3lame -ab 192k o.mp4

フレームレート、オーディオサンプルレートまで指定
ffmpeg -i i.mp4 -r 24 -vcodec h264_nvenc -b:v 3500k -acodec libmp3lame -ab 128 -ar 44100 o.mp4
※h264_nvenc(GeForce)

・mp3に変換
ffmpeg -i i.mp4 -acodec libmp3lame -ab 256k o.mp3

・mp4の連結(ワンライナー)

カレントディレクトリにある指定した拡張子(*.mp4の部分)のファイルの一覧をi.txtに書き込み、そのファイルを元に結合、処理後i.txtを削除している。

(for %f in (*.mp4) do echo file %f >> i.txt) && ffmpeg -f concat -i i.txt -c:v libx264 o.mp4 && del i.txt

・結合
ffmpeg -i m.mp4 -i a.mp4 -c copy -map 0:v -map 1:a o.mp4
ストリーム指定が不要の場合、
ffmpeg -i i.mp4 -i i.mp3 -c copy o.mp4
でも可能。

・静止画とmp3の結合
ffmpeg -f image2 -loop 1 -r 24 -i i.jpg -i i.mp3 -vcodec libx264 -shortest o.mp4

・指定秒数でサムネイル
ffmpeg -ss 10 -i i.mp4 -vframes 1 -f image2 o.jpg

・m3u8を保存
ffmpeg -protocol_whitelist “file,http,https,tcp,tls” -i i.m3u8 -movflags faststart -c copy -bsf:a aac_adtstoasc o.mp4

・指定領域の切抜き
ffmpeg -i i.mp4 -vf crop=W:H:L:T o.mp4

・指定領域の塗りつぶし
ffmpeg -i i.mp4 -vf fillborders=left=0:right=0:top=130:bottom=0:mode=fixed:color=black o.mp4

・ノーマライズ①
ffmpeg -i i.mp4 -vn -af volumedetect -f null null
で最大dB(max_volume)を確認し、
ffmpeg -i i.mp4 -af volume=6dB -c:v copy -c:a aac o.mp4
volumeでマイナス分プラスする。

・ノーマライズ②
ffmpeg -i i.mp4 -af dynaudnorm -c:v copy o.mp4
ゲインのかかり具合を自動で調整してくれる。

・ファイル結合時の音ズレ修正

音ズレをチェックする場合VLCが便利。(ツール>トラックの同期化)
ここでは-0.8s(音を映像に対して先行させる)で合うことを確認。
ffmpeg -i i.mp4 -itsoffset -0.8 -i i.mp3 -c copy o.mp4

・一つファイル内で音ズレ修正
ffmpeg -i i.flv -itsoffset -0.5 -i i.flv -c copy -map 0:v -map 1:a o.mp4

・コントラスト、彩度、明度
ffmpeg -y -i i.mkv -vf “eq=contrast=1:brightness=0:saturation=1” o.mp4
https://ffmpeg.org/ffmpeg-filters.html#eq

・カレントディレクトリのmkvをmp4へ+エンコード(ファイルサイズを落とす)
バッチ版

・カレントディレクトリのエンコード(ファイルサイズを落とす)
PowerShell版

 

C# FFmpegにコマンド投げる①

カット

コンバート

C# Listをソート

C# Excel操作①

 

C# 登録したフォルダのテキストファイルから特定の用語をチェック

VBA 複数のシートを結合

複数のシートを結合後に、特定の列が空白、0、数値以外の行を削除する。

Google Apps Script 定期的にメール送信

特定のフォルダに写真が存在するとその写真を共有設定にしてそのURLを記述したメールを、スプレッドシートに記述されたメールアドレスに送信する。写真が存在するかどうかのチェックは定期的に実行される。

スクリプトファイルを作成して以下を記述、スプレッドシートを作成して送信したいメールアドレスを複数記述する。トリガーで定期的に実行したい時間間隔を設定。