カテゴリー
PC ゆっくりMovieMaker

【RPA】ExcelVBAでゆっくりムービーメーカー4を自動化【ゆっくり解説】

β68より、ゆっくりムービーメーカー4の機能として台本ファイルの読み込みが実装されました。
よって、β68以降ではそちらの機能を使うことをおすすめします。
ゆっくりMovieMaker4 β68 (v3.9.9.168)の更新履歴

動画の中で使っているExcelVBAマクロ
うp主が現状使ってる最終版をアップロードしてます。
Yukkuri4
Windows10+Office2013で動作確認。

タイトルバーの名前でアプリを特定してますので、バージョンアップにより名前が変更されたらソースを修正する必要があります。
例)Public Const C_アプリ名 = “ゆっくりMovieMaker v3.9.9.133 β33”

2023/01/07 キャラ変更ボタンの対応
2021/09/28 変数がオーバーフローすることの修正
2021/07/17 表情変更の処理見直し。Num lockが外れることの対応
2021/07/06 表情のファイル名をチェックするようにした
2021/06/24 セリフ入力欄がリッチテキスト形式になったことによる変更
2021/05/03 タイムラインの縮尺変更を追加
2021/04/30 C_アプリ名修正。FindFirst,FindALLが失敗した時の判定を追加

注意
エクセルファイルを保存したときに、以下のようなメッセージがうざく出る場合があります。

メニューでファイルを開いたところにブックの検査というのがありますので、

「これらの情報をファイルに保存できるようにする」をクリックしてください

マクロを動かす時は「追加してシーク」にしてください。しないとエラーになります。

マクロ実行時にExcelがクラッシュしてしまう事象が発生してます。
こちらの記事もご一読ください。
YMM4セリフ入力マクロが落ちる

YMM4セリフ入力マクロが落ちるの対処

カテゴリー
PC ゆっくりMovieMaker

ゆっくりMovieMaker3入力を自動化するExcelVBAマクロ【ゆっくり解説】

サンプルマクロ
200行まで実行出来ます
Yukkuri3rev02

注意
エクセルファイルを保存したときに、以下のようなメッセージがうざく出る場合があります。

メニューでファイルを開いたところにブックの検査というのがありますので、

「これらの情報をファイルに保存できるようにする」をクリックしてください

参照設定

カテゴリー
PC ゆっくりMovieMaker

PowerShellでゆっくりムービーメーカー3のセリフ・表情を一発入力

Book1PowerShellでゆっくりムービーメーカー3のセリフ・表情を一発入力するスクリプトを作ってみた。

チャンネル登録をお願いします。
https://www.youtube.com/channel/UCplPgEYD8YLU_s4Lez4INJw?sub_confirmation=1

PowerShellスクリプト yukkuri.ps1

#Import-Module C:\Temp\UIAutomation.dll
Import-Module ..\UIAutomation.dll


$script:current_char = 0
$UIAChildrenScope = [System.Windows.Automation.TreeScope]::Children
$UIATrue          = [System.Windows.Automation.Condition]::TrueCondition



#タイムラインとアイテム編集は表示オンになってる前提
$mainWindow  = Get-UiaWindow -Class 'Window' -Name 'ゆっくりMovieMaker v3.4.8.1 (x0.47)' 
$win_timeline = $mainWindow.FindAll($UIAChildrenScope, $UIATrue) | Where-Object {$_.Current.Name -like "タイムライン*"}
$win_itemedit = $mainWindow.FindAll($UIAChildrenScope, $UIATrue) | Where-Object {$_.Current.Name -like "アイテム編集"}

#キャラを変えるためのCTRL+上下矢印キー押下の関数
function char_up {
 	$win_timeline.Keyboard.KeyDown([WindowsInput.Native.VirtualKeyCode]::CONTROL) | Out-Null; 
	$win_timeline.Keyboard.KeyPress([WindowsInput.Native.VirtualKeyCode]::UP) | Out-Null;   
	$win_timeline.Keyboard.KeyUp([WindowsInput.Native.VirtualKeyCode]::CONTROL) | Out-Null; 
}

function char_down {
 	$win_timeline.Keyboard.KeyDown([WindowsInput.Native.VirtualKeyCode]::CONTROL) | Out-Null; 
	$win_timeline.Keyboard.KeyPress([WindowsInput.Native.VirtualKeyCode]::DOWN) | Out-Null;   
	$win_timeline.Keyboard.KeyUp([WindowsInput.Native.VirtualKeyCode]::CONTROL) | Out-Null; 
}

#タイムラインを進めるスペースキー押下の関数
function ywait($x) {
	$win_timeline.Keyboard.KeyPress([WindowsInput.Native.VirtualKeyCode]::SPACE) | Out-Null;
	Start-Sleep -m $x
	$win_timeline.Keyboard.KeyPress([WindowsInput.Native.VirtualKeyCode]::SPACE) | Out-Null;
}

# セリフにaを入れて消す。
# これをやらないとアイテム編集でキャラクターの設定が出来ない
char_up;char_up;char_up;char_up
$window = $win_timeline | Get-UiaEdit -AutomationId 'SerifuTB' -Class 'TextBox'
$window.Keyboard.TypeText("a")
$win_timeline | Get-UiaButton -Class 'Button' -Name '追加' | Invoke-UiaTabItemClick | Out-Null  | Invoke-UiaTabItemClick | Out-Null
$win_timeline.Keyboard.KeyPress([WindowsInput.Native.VirtualKeyCode]::DELETE) | Out-Null;   

#表情を変えるために処理
$char_parts = $win_itemedit|Get-UiaCustom -AutomationId 'this' -Class 'ItemEditor' | `
Get-UiaPane -Class 'ScrollViewer' | `
Get-UiaGroup -AutomationId 'FaceSetEx' -Class 'Expander' -Name 'キャラ素材 / パーツ'  | `
Get-UiaCustom -AutomationId 'this' -Class 'CheckTextboxSlider' | `
Get-UiaEdit -AutomationId 'DetTextbox' -Class 'TextBox'
function yparts($p0,$p1,$p2,$p3,$p4,$p5,$p6) {
               #顔 眉 目 口 体 他 後
               $char_parts[0].Value = $p0
               $char_parts[1].Value = $p1
               $char_parts[2].Value = $p2
               $char_parts[3].Value = $p3
               $char_parts[4].Value = $p4
               $char_parts[5].Value = $p5
               $char_parts[6].Value = $p6
}

#キャラのアクションの処理
$char_actions = $win_itemedit|Get-UiaCustom -AutomationId 'this' -Class 'ItemEditor' | `
Get-UiaPane -Class 'ScrollViewer' | `
Get-UiaGroup -AutomationId 'FaceSetEx2' -Class 'Expander' -Name 'キャラ素材 / アクション'  | `
Get-UiaCustom -AutomationId 'this' -Class 'CheckTextboxSlider' | `
Get-UiaEdit -AutomationId 'DetTextbox' -Class 'TextBox'
function yactions($a0,$a1,$a2,$a3,$a4) {
               #顔 眉 目 口 体 他 後
               $char_actions[0].Value = $a0
               $char_actions[1].Value = $a1
               $char_actions[2].Value = $a2
               $char_actions[3].Value = $a3
               $char_actions[4].Value = $a4

}
function change_char($x) {
		"current_char:  $script:current_char   -> $x"
	if ( $x -ne $script:current_char ) {
		
		if ($x -gt $script:current_char) {
			"cnange d"
			for ($i=0; $i -lt $x-$script:current_char; $i++){
				char_down
				"d"
			}
		} else {
			"cnange u"
			for ($i=0; $i -lt $script:current_char-$x; $i++){
				char_up
				"u"
			}
		}
		$script:current_char=$x
	
	
	}

}

#セリフ入力の関数
function yspeak($c,$p0,$p1,$p2,$p3,$p4,$p5,$p6,$a0,$a1,$a2,$a3,$a4,$x) {
	change_char($c)
	$window = $win_timeline | Get-UiaEdit -AutomationId 'SerifuTB' -Class 'TextBox'
	$window.Keyboard.TypeText($x)
	Start-Sleep -m 300

	$win_timeline | Get-UiaButton -Class 'Button' -Name '追加' | Invoke-UiaTabItemClick | Out-Null  | Invoke-UiaTabItemClick | Out-Null

	Start-Sleep -m 500
	yparts $p0 $p1 $p2 $p3 $p4 $p5 $p6
	yactions $a0 $a1 $a2 $a3 $a4
	ywait(100)
	Start-Sleep -m 300
}

######  ここからセリフ ########
#yspeak キャラ  顔 眉 目 口 体 他 後 高 速 間 ク 震 "セリフ"


yspeak 0 3 0 0 0 0 0 0 15 15 0.15 20 0  "みなさんこんにちは、ゆっくり霊夢です"
yspeak 1 3 0 0 0 0 0 0 15 15 0.15 20 0  "ゆっくり魔理沙だぜ"
yspeak 2 3 0 0 0 0 0 0 15 15 0.15 20 0  "ゲストのゆっくり妖夢です。"
ywait 200 
yspeak 0 3 0 0 0 0 0 0 15 15 0.15 20 0  "以前UWSCでゆっくりムービーメーカー3のセリフ入力を自動化したけど、"
yspeak 0 3 0 0 0 0 0 0 15 15 0.15 20 0  "UIAutomationとPowerShellでもやってみたよ。"
ywait 200 
yspeak 1 3 0 0 0 0 0 0 15 15 0.15 20 0  "なんでまたムービーメーカー3で。"

###
# 省略
###
ywait 200 
yspeak 0 3 0 0 0 0 0 0 15 15 0.15 20 0  "それでは"
yspeak 0 3 0 0 0 0 0 0 15 15 0.15 20 0  "本日のご視聴ありがとうございました。"
yspeak 1 3 0 0 0 0 0 0 15 15 0.15 20 0  "本日のご視聴ありがとうございました。"
yspeak 2 3 0 0 0 0 0 0 15 15 0.15 20 0  "本日のご視聴ありがとうございました。"






exit




# 覚え書き
#$mainWindow.FindAll($UIAChildrenScope, $UIATrue)  | % {$_.current}  | select name, ControlType , ClassName, LocalizedControlType




エクセルで作った補助ツール
Book1

カテゴリー
PC クラウド

VBAでシフトJISファイルをEBCDICに変換する

VBAでシフトJISファイルをEBCDICに変換する必要があり、
ネットを探すと「VBS/シフトJISファイルをEBCDICに変換する」ていうページがあったので、
それを参考にVBAにしてみた。

VBS/シフトJISファイルをEBCDICに変換する
http://wikis.sakura.ne.jp/tipi/?VBS/%A5%B7%A5%D5%A5%C8JIS%A5%D5%A5%A1%A5%A4%A5%EB%A4%F2EBCDIC%A4%CB%CA%D1%B4%B9%A4%B9%A4%EB

読み込むファイルは固定長のシフトJISの1バイト文字だけのファイル。
その内容をEBCDICにして改行コードを削除して出力します。

Sub test()
    
    '【参照設定】Microsoft ActiveX Data Objects 6.1 Library にすること
    
    Dim oFileStream As ADODB.Stream
    Dim b_data() As Byte
    
    'ファイル名
    input_file = "data1.TXT"
    output_file = "data2.TXT"

    '変換テーブル読み込み
    xlatTable = ASCII_To_EBCDIC_Table()
    On Error GoTo Err


    '入力ファイルのオープン
    Set oFileStream1 = New ADODB.Stream        'ADODB.Stream生成
    oFileStream1.Type = adTypeText             'Textモード
    oFileStream1.Charset = "Shift_JIS"         '文字コード(Shift_JIS,UTF-8 ,Unicodeなど)
    oFileStream1.Open                          'Streamのオープン
    oFileStream1.LoadFromFile (input_file)
    
     '出力ファイルのオープン
    Set oFileStream2 = New ADODB.Stream        'ADODB.Stream生成
    oFileStream2.Type = adTypeBinary           'Binary  モード
    oFileStream2.Open                          'Streamのオープン
    
    'ファイルの終りまでループ
    Do While Not (oFileStream1.EOS)
        '1行読み込み(readText(adReadAll):すべて読み込み)
        x_line = oFileStream1.ReadText(adReadLine)

        ReDim b_data(Len(x_line) - 1) As Byte
        For i = 0 To Len(x_line) - 1
            codeConv = Mid(xlatTable, (Asc(Mid(x_line, i + 1, 1)) * 2) + 1, 2)
            'Debug.Print i & ":" & Hex(Asc(Mid(x_line, i + 1, 1))) & " " & codeConv & " " & Val("&H" + codeConv)
            b_data(i) = Val("&H" + codeConv)
        Next

        oFileStream2.Write b_data   '内容を書き込む'
        

    Loop
    
    oFileStream1.Close
    Set oFileStream1 = Nothing

    oFileStream2.SaveToFile output_file, 2 '2:adSaveCreateOverWrite
    oFileStream2.Close
    Set oFileStream = Nothing

    Exit Sub

Err:
    Set oFileStream = Nothing
    
    'エラー内容
    MsgBox (Err.Description)

End Sub


Function ASCII_To_EBCDIC_Table()
'
' Returns the following table as a string for use by the Translate
' function to translate an ASCII-ISO/ANSI string to an EBCDIC string.
'
' (Hitachi EBCDIK)
'   0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
' 0 00 01 02 03 37 2D 2E 2F 16 05 15 0B 0C 0D 0E 0F :016    :----------------:
' 1 10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F :032    :----------------:
' 2 40 4F 7F 7B E0 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61 :048    : !"#$%&'()*+,-./:
' 3 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F :064    :0123456789:;<=>?:
' 4 7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6 :080    :@ABCDEFGHIJKLMNO:
' 5 D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 4A 5B 5A 5F 6D :096    :PQRSTUVWXYZ[\]^_:
' 6 79 59 62 63 64 65 66 67 68 69 70 71 72 73 74 75 :112    :~abcdefghijklmno:
' 7 76 77 78 80 8B 9B 9C A0 AB B0 B1 C0 6A D0 A1 07 :128    :pqrstuvwxyz{|}~ :
' 8 20 21 22 23 24 25 06 17 28 29 2A 2B 2C 09 0A 1B :133    :----------------:
' 9 30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E E1 :160    :----------------:
' A 57 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 :176    : 。「」、・ヲァィゥェォャュョッ:
' B 58 81 82 83 84 85 86 87 88 89 8A 8C 8D 8E 8F 90 :192    :ーアイウエオカキクケコサシスセソ:
' C 91 92 93 94 95 96 97 98 99 9A 9D 9E 9F A2 A3 A4 :208    :タチツテトナニヌネノハヒフヘホマ:
' D A5 A6 A7 A8 A9 AA AC AD AE AF BA BB BC BD BE BF :224    :ミムメモヤユヨラリルレロワン゙゚:
' E B2 B3 B4 B5 B6 B7 B8 B9 CA CB CC CD CE CF DA DB :240    :----------------:
' F DC DD DE DF EA EB EC ED EE EF FA FB FC FD FE FF :256    :----------------:
'
'   ASCII_To_EBCDIC_Table = _
'   "00010203372D2E2F1605150B0C0D0E0F101112133C3D322618193F271C1D1E1F" & _
'   "404F7F7BE06C507D4D5D5C4E6B604B61F0F1F2F3F4F5F6F7F8F97A5E4C7E6E6F" & _
'   "7CC1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E94A5B5A5F6D" & _
'   "79596263646566676869707172737475767778808B9B9CA0ABB0B1C06AD0A107" & _
'   "202122232425061728292A2B2C090A1B30311A333435360838393A3B04143EE1" & _
'   "57414243444546474849515253545556588182838485868788898A8C8D8E8F90" & _
'   "9192939495969798999A9D9E9FA2A3A4A5A6A7A8A9AAACADAEAFBABBBCBDBEBF" & _
'   "B2B3B4B5B6B7B8B9CACBCCCDCECFDADBDCDDDEDFEAEBECEDEEEFFAFBFCFDFEFF"

'(Fujitsu EBCDIC)
'   0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
' 0 00 01 02 03 37 2D 2E 2F 16 05 15 0B 0C 0D 0E 0F :016    :----------------:
' 1 10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F :032    :----------------:
' 2 40 4F 7F 7B E0 6C B6 B7 4D 5D 5C 4E 6B 60 4B 61 :048    : !"#$%&'()*+,-./:
' 3 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F :064    :0123456789:;<=>?:
' 4 7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6 :080    :@ABCDEFGHIJKLMNO:
' 5 D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 4A 5B 5A 5F 6D :096    :PQRSTUVWXYZ[\]^_:
' 6 79 7D B4 63 64 65 66 67 68 69 70 71 72 73 74 75 :112    :~abcdefghijklmno:
' 7 76 77 78 50 8B 9B 9C A0 AB B0 B1 C0 6A D0 A1 07 :128    :pqrstuvwxyz{|}~ :
' 8 20 21 22 23 24 25 06 17 28 29 2A 2B 2C 09 0A 1B :133    :----------------:
' 9 30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E E1 :160    :----------------:
' A 57 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 :176    : 。「」、・ヲァィゥェォャュョッ:
' B 58 81 82 83 84 85 86 87 88 89 8A 8C 8D 8E 8F 90 :192    :ーアイウエオカキクケコサシスセソ:
' C 91 92 93 94 95 96 97 98 99 9A 9D 9E 9F A2 A3 A4 :208    :タチツテトナニヌネノハヒフヘホマ:
' D A5 A6 A7 A8 A9 AA AC AD AE AF BA BB BC BD BE BF :224    :ミムメモヤユヨラリルレロワン゙゚:
' E B2 B3 B4 B5 B6 B7 B8 B9 CA CB CC CD CE CF DA DB :240    :----------------:
' F DC DD DE DF EA EB EC ED EE EF FA FB FC FD FE FF :256    :----------------:
'
'    0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F
    ASCII_To_EBCDIC_Table = _
    "00010203372D2E2F1605150B0C0D0E0F101112133C3D322618193F271C1D1E1F" & _
    "404F7F7BE06CB6B74D5D5C4E6B604B61F0F1F2F3F4F5F6F7F8F97A5E4C7E6E6F" & _
    "7CC1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E94A5B5A5F6D" & _
    "797DB463646566676869707172737475767778508B9B9CA0ABB0B1C06AD0A107" & _
    "202122232425061728292A2B2C090A1B30311A333435360838393A3B04143EE1" & _
    "57414243444546474849515253545556588182838485868788898A8C8D8E8F90" & _
    "9192939495969798999A9D9E9FA2A3A4A5A6A7A8A9AAACADAEAFBABBBCBDBEBF" & _
    "B2B3B4B5B6B7B8B9CACBCCCDCECFDADBDCDDDEDFEAEBECEDEEEFFAFBFCFDFEFF"
'相違点
'   (Hitachi) (Fujitsu)
' & 50        B6
' ' 7D        B7
' a 59        7D
' b 62        B4
' s 80        50

End Function



カテゴリー
PC

CLIP STUDIOで正三角形格子を描いてみる

CLIP STUDIOで正三角形格子を描いてみる
CLIP STUDIOにはオートアクションていうのがあって手続きを自動でやってくれる機能があるけど
複雑なことができないので、UWSCでやってみた。

PUBLIC wait_sec=0.1  
PUBLIC h_center=549
PUBLIC d=100
//キャンバスエリア 縦120-975
PUBLIC num_line=INT((975-120)/d)

ID=GETID("CLIP STUDIO PAINT")
CTRLWIN(ID, MAX)
MOUSEORG(ID,1)
ACW(ID)

ROTE60

SCKEY(ID,VK_ALT,VK_V);sleep(1); KBD(VK_F)  //フィッテング
SCKEY(ID,VK_ALT,VK_V);sleep(1); KBD(VK_F)  //フィッテング 念の為もう一回

KBD(VK_P)  // PENモード
KBD(VK_U)  //図形モード

DRAW_LINE
ROTE60
DRAW_LINE
ROTE60
DRAW_LINE

CTRLWIN(ID, NORMAL)

PROCEDURE DRAW_LINE
	for y=h_center - d * num_line/2 to h_center + d * num_line/2 step d
		BTN(LEFT,DOWN,270,y)
		BTN(LEFT,UP,1600,y)
		SLEEP(wait_sec)
	next
FEND
PROCEDURE ROTE60
	for i=1 to 12
		KBD(VK_OEM_7)  //日本語キーボードの^
		SLEEP(wait_sec)
	next
FEND

キャンバスの中心に線を描かないとずれてしまうけど、見た目にはわからない。

 

カテゴリー
PC

UWSCを使ってCLIP STUDIO PROでPNG一括書き出し

CLIP STUDIO PROでLINEのスタンプを作ってみたんだが、最終的にPNGファイルにする必要があり、
CLIP STUDIO PROには一括出力の機能がないので、UWSCでやらせてみた。

id=getid("CLIP STUDIO PAINT")

FOR i=1 to 20

	//ファイル名作成
	str = FORMAT(i, 2) // 2桁の文字列に変換
	str = REPLACE(str, " ", "0")+".clip"
	//PRINT str

	//Fileを開く
	sckey(id,VK_CTRL,VK_O)
	SLEEP(1)
	id2=getid("開く")
	sendstr(id2,str)
	sckey(id2,VK_ALT,VK_O)
	SLEEP(1)

	//画像を統合して書き出し
	fukidasi( "画像を統合して書き出し" )
	sckey(id,VK_ALT,VK_F)		// ALT+F
	KBD(VK_R)			// R
	KBD(VK_R)			// R
	KBD(VK_RIGHT)			// →
	KBD(VK_P)			// P
	SLEEP(1)
	id2=getid("画像を統合して書き出し",,0.5)
	sckey(id2,VK_ALT,VK_S)		// ALT+S
	SLEEP(1)
	
	//上書き確認のダイアログ
	fukidasi( "名前を付けて保存の確認")
	id2=getid("名前を付けて保存の確認",,0.5)
	IF id2>0 THEN sckey(id2,VK_Y)	// Y
	SLEEP(1)
	KBD(VK_ENTER)			// Enter
	
	//書き出しプレビュー
	fukidasi( "書き出しプレビュー")
	id2=getid("書き出しプレビュー",,0.5)
	IF id2>0 THEN KBD(VK_ENTER)	// Enter
	SLEEP(2)
	
	//ファイルを閉じる
	sckey(id,VK_ALT,VK_F)
	SLEEP(1)
	KBD(VK_C)
	SLEEP(1)
NEXT

まあキー操作を真似てるだけなので、異常系には全く弱い。
キー入力をする時にsckeyを使ったりKBDを使ったりするのは、そうじゃないと動かなかったため。普通はsckeyだけで動くんですがね・・・。

動かした動画が下記の感じになります。

カテゴリー
PC

スマホをペンタブ化させるアプリ「VirtualTablet」をインストールしてみた

PCでちょっとした絵を書くことになり、流石にマウスやトラックボールだと使いづらいので何かないかと探したら、スマホをペンタブ化させるアプリがあるようだ。

下記のページがそれ。

VirtualTablet - SUNNYSIDESOFT
http://www.sunnysidesoft.com/ja/virtualtablet/

紹介文より引用
VirtualTablet はスタイラスペン入力をサポートするタブレット機械 (サムスンスレート 7,アーティブ , MS SurfaceあるいはGalaxy Note など)から送信されたペン入力を無線に繋がっている PCに転送する事が出来るアプリケーションです。転送されたペン入力は PCで実際デジタイザを利用する時と同様に自由に絵を描いたり、書いたりする事ができます。
つまり、実際デジタイザーハードウェアを購入する必要なく、ユーザがペン入力をサポートしているタブレット機械をお持ちであれば、それを PCで仮想のデジタイザーとして認識する機能を持っています。
タブレットとPCをWiFiや Bluetoothを利用して簡単に無線に繋げる事ができます。 VirtualTabletサーバープログラムをPCに実行してタブレットデバイスでVirtualTabletアプリケーションを起動すると、高い価格の Wacom タブレット入力装置と変わらなく、利用できます。

使い方は簡単で、PC側にサーバーソフトとスマホ側にクライアントを入れるだけ。
もちろんワコムとかの専門デバイスと違って使い勝手は劣るだろうが、マウスしかない状態よりはずっといい。

 

カテゴリー
PC

弥生会計の新規インストールでSQL server2017をインストールしてみた

弥生会計19にはSQLserver2014 Express 32bit版がバンドルされてて、通常の手順だとこれがインストールされる。
マシンも64bitだし最新のSQL Server 2017 Expressをインストールしてみた。
Microsoft SQL Server 2017 Express

公式ページには

YAYOI インスタンスの作成(SQL Server 2016)
https://support.yayoi-kk.co.jp/faq_Subcontents.html?page_id=25316

弥生会計のインストーラだと下記オプションでインストールされるから

"D:\Runtime\MSSQL2014EESP2\SQLEXPR_x86_JPN.exe" /QS /ACTION=Install /FEATURES=SQLEngine /INSTALLSQLDATADIR="C:\Program Files (x86)\Microsoft SQL Server" 
/INSTANCENAME=YAYOI /SAPWD="Admin0123456789" /SECURITYMODE=SQL /TCPENABLED=1 /NPENABLED=1 /SQLSVCSTARTUPTYPE=Automatic /BROWSERSVCSTARTUPTYPE=Automatic 
/SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /SQLSYSADMINACCOUNTS="NT AUTHORITY\SYSTEM" /SQLCOLLATION=Japanese_CI_AS /HIDECONSOLE /IAcceptSQLServerLicenseTerms

MSから拾ってきたSQLServer2017-SSEI-Expr.exeを実行してダウンロードを選び、ダウンロードにSQLEXPR_x64_JPN.exeがきてるから、下記にオプションで起動。

C:\Users\admin>C:\Users\admin\Downloads\SQLEXPR_x64_JPN.exe /ACTION=Install /FEATURES=SQLEngine  /INSTANCENAME=YAYOI 
/SAPWD="Admin0123456789" /SECURITYMODE=SQL /TCPENABLED=1 /NPENABLED=1 /SQLSVCSTARTUPTYPE=Automatic /BROWSERSVCSTARTUPTYPE=Automatic 
/SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /SQLSYSADMINACCOUNTS="NT AUTHORITY\SYSTEM" /SQLCOLLATION=Japanese_CI_AS /HIDECONSOLE /IAcceptSQLServerLicenseTerms
カテゴリー
AWS

AWS CLIでEC2のWindowsにコマンド実行

ssmてのを使うと、aws cliでWindowsにコマンドが打てることがわかった。
EC2のWindowsにはすでにssmエージェントが入っているので、それをAWSのSSMの画面のクイックスタートでインスタンスを認識させる。

操作する側のローカルのPCにはAWS CLIに追加してSession Manager Pluginもインストールが必要。
(オプション) AWS CLI 用の Session Manager Plugin をインストールする
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html

ipconfigを実行してみる

C:\>aws ssm send-command --instance-ids "i-00a25be4c15f09999" --document-name "AWS-RunPowerShellScript" --parameters commands=ipconfig --query "Command.CommandId" --output text
59cd40d6-d8ec-47ea-aed3-83e0751c9999

コマンドIDが返って来て、それの結果を見てみると

C:\>aws ssm list-command-invocations --command-id "59cd40d6-d8ec-47ea-aed3-83e0751c9999" --details --query "CommandInvocations[*].CommandPlugins[*].Output[]" --output text

Windows IP Configuration


Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : ap-northeast-1.compute.internal
   Link-local IPv6 Address . . . . . : fe80::3826:5177:9d6b:eb91%6
   IPv4 Address. . . . . . . . . . . : 172.31.45.26
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . : 172.31.32.1

EC2上でipconfigを叩いた結果が見れる

カテゴリー
AWS

Amazon EC2 Windows2019 インスタンスの壁紙の変更

Amazon(AWS) EC2 Windows2019 インスタンスを起動させると壁紙にインスタンス情報が表示されるのだが、Windowsの個人用設定から壁紙を変更したらインスタンス情報が現れなくなってしまった。
ググってみるとEC2Configで設定すればoff/onができるて書いてあるけど、2016以降はEC2Launchというものになっていて、こいつはインスタンスを初期化するときの設定で、単に壁紙を変えたいていうこととは違う。
さらに調べるとこんなページがヒットした。

amazon ec2 - EC2上のWindows 2016+のカスタム壁紙
https://tutorialmore.com/questions-154488.htm

それによると、どうやらマシンをログインしたときに壁紙にインスタンス情報を載せてそれに置き換えるスクリプトが流れるみたい。
大元の壁紙はC:\Users\Administrator\AppData\Local\Ec2Wallpaper.jpg(これはAdministratorでの例)で、このファイルを好きな壁紙のファイルに上書きしてみて、そのスクリプトの処理を走らせればいい。

どんなスクリプトが流れるんだろうと調べてみると、
C:\ProgramData\Amazon\EC2-Windows\Launch\Module\ScriptsにSet-Wallpaper.ps1てのがあって、
中身を見るとインスタンス情報を書き込む処理が書いてあって、これをいじれば書き込む内容とかもいじれるのではてことで、文字の大きさと色を変えてみることにした。
変更前

        $fontSize = 12

        Write-Log "Rendering instance information on wallpaper"

        $width = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width
        $height = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height

        $textfont = New-object System.Drawing.Font($fontStyle, $fontSize, [System.Drawing.FontStyle]::Regular)
        $textBrush = New-Object Drawing.SolidBrush ([System.Drawing.Color]::White)

変更後

        $fontSize = 14  <---

        Write-Log "Rendering instance information on wallpaper"

        $width = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width
        $height = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height

        $textfont = New-object System.Drawing.Font($fontStyle, $fontSize, [System.Drawing.FontStyle]::Bold)  <---
        $textBrush = New-Object Drawing.SolidBrush ([System.Drawing.Color]::midnightblue) <---

これでログオフして入り直せば変更されるけど、以下のようにpowershellスクリプトを流してやれば、すぐ変更された。
powershell窓から以下のコマンドを投入。

PS C:\Users\Administrator> Import-Module "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1";
PS C:\Users\Administrator> Set-Wallpaper

その結果が冒頭の画像です。
この方法が正しいのかはわからんけど、あまりにも情報がないし、AWSのマシンで壁紙を気にする人なんていないのかね?