SQLの窓

2019年01月10日


IE11 で VBScript のクラスを使用して Excel(Excel.Application) の処理を検証

通常の「インターネット」では行いません。「信頼済みサイト」でのみ ActiveX を実行可能にしてから対象ページを登録して、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして「運用ルール」がきちんと決められ、システム管理者が居られると言う前提で通常は利用されます。

▼ 以下、前提となる設定




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります

以下ソースコード
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=10">
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script language="VBScript">

Const xlMaximized = -4137

Function Creata_Excel_Book() 

	Dim ExcelPath : ExcelPath = "c:\temp\test.xlsx"

	' 処理前の確認
	alert("OK")
	console.log( "OK" )

	' オブジェクト
	Dim MyExcel

	' オブジェクト作成
	Set MyExcel = new CExcel

	' 空の Book 作成 / 引数にパスが指定されているので、
	' そのパスで上書き保存する
	Set Workbook = MyExcel.Create( ExcelPath )

	' セルにデータをセット
	Workbook.ActiveSheet.Cells(2, 1) = "IE11+Excelです"

	' 変更内容を上書き
	Workbook.Save

	' オブジェクト情報の表示
	console.dir( MyExcel )
	console.dir( Workbook )

	' Excel オブジェクトの終了
	MyExcel.Quit

	' Windows アプリケーションとして開く
	MyExcel.Load( ExcelPath )

	' 解放
	Set MyExcel = Nothing

End Function

Class CExcel

	Public App
	Public WshShell
	Public ErrDescription
	Private WorkBook
	Public CurBook

' ************************************************
' インスタンスが作成されたときの処理
' ************************************************
	Private Sub Class_Initialize()

		Call InitSetting()
		console.log( "Class_Initialize" )

	End Sub

' ************************************************
' インスタンスが終了したときの処理
' ( Set インタンス変数 = Nothing で発生 )
' ************************************************
	Private Sub Class_Terminate()

		Call Quit()
		console.log( "Class_Terminate" )

	End Sub

' ************************************************
' 初期処理
' ************************************************
	Public Default Function InitSetting()

		if IsEmpty( App ) then
			Set App = CreateObject("Excel.Application")
		end if 
		if IsEmpty( WshShell ) then
			Set WshShell = CreateObject("WScript.Shell")
		end if 

		' ユーザーに入力を促すメッセージを表示させないようにする
		App.DisplayAlerts = False

		Set CurBook = Nothing

	end function

' ************************************************
' 終了
' ************************************************
	Public Function Quit()

		If not IsEmpty( App ) Then
			For Each Workbook In App.Workbooks
				' 全てのブックを保存した事にする
				WorkBook.Saved = True
			Next
			App.Quit
			Set App = Nothing
			App = Empty
			Set CurBook = Nothing
		End If

	End Function

' ************************************************
' 表示・非表示
' ************************************************
	Public Property Let Visible( bFlg )
		App.Visible = bFlg
	End Property 
	Public Property Get Visible
		Visible = App.Visible
	End Property

' ************************************************
' 開く
' ************************************************
	Public Function Open( strPath )

		on error resume next
		Set Open = App.Workbooks.Open(strPath)
		if Err.Number <> 0 then
			Set Open = Nothing
			ErrDescription = Err.Description
			Exit Function
		end if
		on error goto 0
		Set CurBook = Open

		' アクティブなウィンドウを最大化
		App.ActiveWindow.WindowState = xlMaximized

	End Function

' ************************************************
' 新規ブック作成
' ************************************************
	Public Function Create( strPath )

		Dim nBooks

		App.Workbooks.Add
		nBooks = App.Workbooks.Count

		' 戻り値セット
		Set Create = App.Workbooks( nBooks )

		' 処理
		Set CurBook = Create
		CurBook.Activate

		' アクティブなウィンドウを最大化
		App.ActiveWindow.WindowState = xlMaximized

		if strPath <> "" then
			on error resume next
			CurBook.SaveAs( strPath )
			if Err.Number <> 0 then
				MsgBox( Err.Description )
				Exit Function
			end if
			on error goto 0
		end if

	End Function

' ************************************************
' 閉じる
' ************************************************
	Public Function Close( MyBook )

		if IsObject( MyBook ) then
			MyBook.Saved = True
			MyBook.Close
			Set MyBook = Nothing
			MyBook = Empty
		else
			if CurBook is Nothing then
			else
				CurBook.Saved = True
				CurBook.Close
				Set CurBook = Nothing
			end if
		end if

	End Function

' ******************************************************
' 上書き保存
' ******************************************************
	Function Save( MyBook )

		if IsObject( MyBook ) then
			MyBook.Save
		else
			CurBook.Save
		end if

	End Function

' ******************************************************
' 名前を付けて保存
' ******************************************************
	Function SaveAs( MyBook, strPath )

		if IsObject( MyBook ) then
			MyBook.SaveAs strPath
		else
			CurBook.SaveAs strPath
		end if

	End Function

' ******************************************************
' 通常アプリケーションとして開く
' ******************************************************
	Function Load( strPath )

		if not IsEmpty( App ) then
			MsgBox( "Excel をロードする前に、Quitを実行して下さい   " )
			Exit Function
		end if

		Call WshShell.Run( _
			"RunDLL32.EXE shell32.dll,ShellExec_RunDLL " & _
			strPath _
		)

	End Function

End Class

</script>
</head>
<body>

<input type="button" value="実行" onclick="Call Creata_Excel_Book()" language="VBScript">

</body>
</html>





【IEの最新記事】
posted by lightbox at 2019-01-10 16:03 | IE | このブログの読者になる | 更新情報をチェックする

IE 専用 : 「信頼済みサイト」でのみ行う、WEBページのデータの Excel への転送



通常の「インターネット」では行いません。「信頼済みサイト」でのみ ActiveX を実行可能にしてから対象ページを登録して、WEB ページのデータを Excel のブックに転送して保存します。

業務アプリケーションとして「運用ルール」がきちんと決められ、システム管理者が居られると言う前提で通常は利用されます。

▼ 以下、前提となる設定




画像では、「localhost」ですが、イントラネットですと、単純にサーバー名になります

以下ソースコード
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=10">
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script language="VBScript">

Dim WSH
Dim ExcelApp

' ******************************************************
' Excel 実行
' ******************************************************
Function LoadExcel(strPath)

	If Not IsObject(WSH) Then
		Set WSH = CreateObject("WScript.Shell")
	End If

	Call WSH.Run( "RunDLL32.EXE shell32.dll,ShellExec_RunDLL " & _
		strPath )

End Function

' ******************************************************
' Excel 処理
' ******************************************************
Function ExcelAction()

	' 読み込む Excel のパス
	Dim FilePath : FilePath = "C:\temp\Book1.xlsx"
	' 書き込む Excel のパス
	Dim FilePathResult : FilePathResult = "C:\temp\Book1_result.xlsx"

	' Excel.Application
	Dim ExcelApp
	' ブック
	Dim MyBook
	' シート
	Dim Sheet

	Set ExcelApp = CreateObject("Excel.Application")

	' 表示状態にする( 非表示にしても良いが、
	' 処理が長い場合は表示しておいたほうが良い
	ExcelApp.Visible = True
	' 確認ダイアログを出さない
	ExcelApp.DisplayAlerts = False

	' ブックを読み込む
	Set MyBook = ExcelApp.Workbooks.Open(FilePath)

	' 対象シート
	Set Sheet = MyBook.Sheets("Sheet1")

	' セルにデータをセット
	Dim tbl,rows,I,cols

	' テーブルオブジェクトを取得
	' ※ VB で配列は、() で参照する
	Set tbl = document.getElementsByTagName("table")(0)

	' 行のコレクション
	Set rows = tbl.getElementsByTagName("tr")

	' th は読み飛ばすので、1 から開始
	For I = 1 to ( rows.length - 1 )
		' 列のコレクション
		Set cols = rows(I).getElementsByTagName("td")
		For J = 0 to ( cols.length - 1 )
			if J = 0 or J = 3 then
				' 数字データを文字列としてセルにセットする
				Sheet.Cells(I+5, J+1) = "'" & cols(J).innerText
			else
				Sheet.Cells(I+5, J+1) = cols(J).innerText
			end if
		Next
	Next

	' 上書き保存
	MyBook.SaveAs FilePathResult

	' Excel を終了
	ExcelApp.Quit

	' Excel 解放
	Set ExcelApp = Nothing

	' 保存したブックを Excel で実行
	Call LoadExcel( FilePathResult )

End Function

</script>
</head>
<body>
<input type="button" value="Excel起動" language="VBScript" onclick='Call ExcelAction()'>

<style>
#lboxtable * {
	font-family: 'メイリオ','MS Pゴシック';
	font-size: 12px;
}
#lboxtable table {
	border-collapse: collapse;
	border: solid #000000 1px;
	background-color: #ffffff;
}
#lboxtable td{
	padding: 5px;
	border: solid #000000 1px;
	white-space: nowrap;
}
#lboxtable th {
	padding: 5px;
	border: solid #000000 1px;
	background-color: silver;
	white-space: nowrap;
}
</style>
<div id="lboxtable">
	<table>
		<tr>
			<th>社員コード</th>
			<th>氏名</th>
			<th>フリガナ</th>
			<th>所属</th>
			<th>性別</th>
			<th>給与</th>
		</tr>
		<tr>
			<td>0001</td>
			<td>浦岡 友也</td>
			<td>ウラオカ トモヤ</td>
			<td>0003</td>
			<td>0</td>
			<td>270000</td></tr>
			<tr>
			<td>0002</td>
			<td>山村 洋代</td>
			<td>ヤマムラ ヒロヨ</td>
			<td>0003</td>
			<td>1</td>
			<td>300000</td></tr>
			<tr>
			<td>0003</td>
			<td>多岡 冬行</td>
			<td>タオカ フユユキ</td>
			<td>0002</td>
			<td>0</td>
			<td>250000</td></tr>
			<tr>
			<td>0004</td>
			<td>高田 冬美</td>
			<td>タカタ フユミ</td>
			<td>0003</td>
			<td>1</td>
			<td>250000</td>
		</tr>
	</table>
</div>

</body>
</html>

IE 専用なので、スクリプトは VBScript を使用しています。Windows のオブジェクトなので、VBScript で使うほうがいろいろ都合が良く、VB や VBA の情報が参考にできます

⭐ 元になるブックは、C:\temp\Book1.xlsx としていますが、場所に制限はありません
⭐ 転送後、別のブックに保存してから、再度 Excel を普通に呼び出して開いています
⭐ 元になるブックを書式として完成させておいて、データのみ転送するのが本来の方法です
⭐ Excel に対する操作はもっといろいろ可能です





タグ:VBScript excle IE
posted by lightbox at 2019-01-10 14:34 | IE | このブログの読者になる | 更新情報をチェックする

2019年01月09日


VBScript のコードを書いた HTML を IEのツールメニューにアドオンする



IE拡張メニューとほぼ近いものですが、現在表示されているページ全体に対して「何かをする」という機能に合っています。
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{7D4A0D6B-9722-4106-8D10-6E3684F04594}]
"CLSID"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"MenuText"="テストメニュー"
"MenuStatusBar"="ステータスバーに表示される文字列"
"Script"="C:\\TEMP\\menuex_location.html"



(HKEY_CURRENT_USER にするとユーザ単位です)
<SCRIPT language="VBScript">

	on error resume next
	' *************************************************
	' URLの表示
	' *************************************************
	str = external.menuArguments.document.URL
	if Err.Number <> 0 then
		str = "URL を取得できませんでした"
	else
		' 取得できたらクリップボードにセット
		Call window.clipboardData.setData("Text",str)
	end if
	on error goto 0

	alert(str)

</SCRIPT>

これはあくまでサンプルなので、レジストリをインポートした後、C:\TEMP\menuex_location.html を作成して上記 VBScript のコードを書き込む必要があります

※ 7D4A0D6B-9722-4106-8D10-6E3684F04594 は、任意のGUID なので、WSH : GUID取得 で個別に作成します

※ 以下のコマンドを実行するとクリップボードに GUID を取得できます
cmd /c echo Set TypeLib=CreateObject("Scriptlet.TypeLib"):Wscript.echo TypeLib.Guid>%temp%\_.vbs&cscript.exe /NOLOGO %temp%\_.vbs | clip

Adding Menu Items にこれらの設定に関する仕様があります(英文)

Exec エントリを使用すると実行ファイルを使用可能です 


▼ アドオンの管理で確認できます





posted by lightbox at 2019-01-09 16:34 | IE | このブログの読者になる | 更新情報をチェックする

デスクトップのコンピュータアイコンにメニューを追加する

※ Windows の大きなアップデートで消える可能性はありますが、自分の好きなコマンドでカスタマイズできるので便利です。

▼ Windows10


▼ インストールするレジストリのキー
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

現状ではおそらくレジストリの該当場所の所有者が TrustedInstaller となっており、Administrators グループに権限が無いと思います。

いったん所有者を Administrators グループ に変更してから、Administrators グループ にアクセス権限を与えます。その後にレジストリのインポートを行って下さい。


アクセス許可を選択して表示されたダイアログの詳細設定ボタンをクリックして、表示された『shell のセキュリティの詳細設定』というダイアログの先頭にある『変更リンク』で所有者を変更します。

Administrators に変更した後、アクセス許可で Administrators にフルコントロールを設定します。


▼ 解凍後の内容 ▼ README
************************************************************
コンピュータアイコンメニュー設定レジストリデータ

■ 事前準備

	インストール場所を開く.bat をエクスプローラからダブル
	クリックしてレジストリエディタを起動し、選択されている
	キーの所有者を自分が所属する Administrators グループに
	変更して、Administrators にフルコントロールを設定します

■ インストール

	computer_menu をエクスプローラからタブルクリック
	してインポートして下さい

■ アンインストール

	uninstall_computer_menu をエクスプローラからタブル
	クリックして下さい


■ 登録された場所でレジストリエディタを開く
	インストール場所を開く.bat をエクスプローラからタブ
	ルクリックして下さい

■著作権その他

このプログラムはフリーです。どうぞ自由に御使用ください。
著作権は作者である私(lightbox)が保有しています。
また、本ソフトを運用した結果については、作者は一切責任を
負えせんのでご了承ください。
************************************************************
computer_menu.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\001]
@="   サービス"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\001\command]
@=hex(2):6d,00,6d,00,63,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,00,53,00,79,\
  00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,\
  73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,65,00,72,00,76,00,69,00,63,\
  00,65,00,73,00,2e,00,6d,00,73,00,63,00,22,00,20,00,2f,00,73,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\002]
@="   システム情報"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\002\command]
@=hex(2):22,00,25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,\
  00,65,00,73,00,25,00,5c,00,43,00,6f,00,6d,00,6d,00,6f,00,6e,00,20,00,46,00,\
  69,00,6c,00,65,00,73,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,\
  00,74,00,20,00,53,00,68,00,61,00,72,00,65,00,64,00,5c,00,4d,00,53,00,49,00,\
  6e,00,66,00,6f,00,5c,00,6d,00,73,00,69,00,6e,00,66,00,6f,00,33,00,32,00,2e,\
  00,65,00,78,00,65,00,22,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\003]
@="   プログラムと機能"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\003\command]
@="RunDLL32.EXE shell32.dll,Control_RunDLL appwiz.cpl"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\004]
@="   ODBC アドミニストレータ"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\004\command]
@="RunDLL32.EXE shell32.dll,Control_RunDLL odbccp32.cpl"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\005]
@="   レジストリエディタ"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\005\command]
@="regedit.exe"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\006]
@="   コマンドプロンプト"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\006\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00,\
  64,00,2e,00,65,00,78,00,65,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\007]
@="   UAC"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\007\command]
@=hex(2):55,00,73,00,65,00,72,00,41,00,63,00,63,00,6f,00,75,00,6e,00,74,00,43,\
  00,6f,00,6e,00,74,00,72,00,6f,00,6c,00,53,00,65,00,74,00,74,00,69,00,6e,00,\
  67,00,73,00,2e,00,65,00,78,00,65,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\008]
@="   イベント ビューアー"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\008\command]
@=hex(2):6d,00,6d,00,63,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,00,77,00,69,\
  00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,\
  33,00,32,00,5c,00,65,00,76,00,65,00,6e,00,74,00,76,00,77,00,72,00,2e,00,6d,\
  00,73,00,63,00,22,00,20,00,2f,00,73,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\009]
@="   ユーザーアカウント"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\009\command]
@="rundll32.exe netplwiz.dll,UsersRunDll"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\010]
@="   環境変数"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\010\command]
@="rundll32.exe sysdm.cpl,EditEnvironmentVariables"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\011]
@="   HOSTS"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\011\command]
@=hex(2):63,00,6d,00,64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,63,00,20,00,70,\
  00,6f,00,77,00,65,00,72,00,73,00,68,00,65,00,6c,00,6c,00,20,00,2d,00,4e,00,\
  6f,00,50,00,72,00,6f,00,66,00,69,00,6c,00,65,00,20,00,2d,00,45,00,78,00,65,\
  00,63,00,75,00,74,00,69,00,6f,00,6e,00,50,00,6f,00,6c,00,69,00,63,00,79,00,\
  20,00,75,00,6e,00,72,00,65,00,73,00,74,00,72,00,69,00,63,00,74,00,65,00,64,\
  00,20,00,2d,00,57,00,69,00,6e,00,64,00,6f,00,77,00,53,00,74,00,79,00,6c,00,\
  65,00,20,00,68,00,69,00,64,00,64,00,65,00,6e,00,20,00,2d,00,43,00,6f,00,6d,\
  00,6d,00,61,00,6e,00,64,00,20,00,22,00,73,00,74,00,61,00,72,00,74,00,20,00,\
  6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,2e,00,65,00,78,00,65,00,20,00,25,\
  00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,\
  73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,72,00,69,00,76,\
  00,65,00,72,00,73,00,5c,00,65,00,74,00,63,00,5c,00,68,00,6f,00,73,00,74,00,\
  73,00,20,00,2d,00,76,00,65,00,72,00,62,00,20,00,72,00,75,00,6e,00,61,00,73,\
  00,22,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\012]
@="   フォルダオプション"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\012\command]
@="RUNDLL32.EXE shell32.dll,Options_RunDLL 7"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\013]
@="   タスク スケジューラ"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\013\command]
@=hex(2):6d,00,6d,00,63,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,00,77,00,69,\
  00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,\
  33,00,32,00,5c,00,74,00,61,00,73,00,6b,00,73,00,63,00,68,00,64,00,2e,00,6d,\
  00,73,00,63,00,22,00,20,00,2f,00,73,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\014]
@="   ローカル グループ ポリシーエディタ"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\014\command]
@=hex(2):6d,00,6d,00,63,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,00,53,00,79,\
  00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,\
  73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,67,00,70,00,65,00,64,00,69,00,74,\
  00,2e,00,6d,00,73,00,63,00,22,00,00,00

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\015]
@="   リモートデスクトップ"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\015\command]
@="mstsc.exe"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\016]
@="   Windows Update"

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\016\command]
@="control.exe /name Microsoft.WindowsUpdate"


▼ インストール場所






posted by lightbox at 2019-01-09 11:39 | Windows | このブログの読者になる | 更新情報をチェックする

2019年01月08日


Explorer.exe コマンドライン 引数(オプション)

Explorer.exe [/n],[/e] [(,)/root,[object]] [/select,[object]]

/n
表示枠が 1 つの新しいウィンドウを開き,デフォルトの場所 (通常Cドライブ)を表示する.(explorer.exe /n :フォルダツリーが付かない,explorer.exe /n,/e :フォルダツリーが付く).通常は,Windowsがインストールされているドライブのルートが表示され,ウィンドウが既に開いている場合は,別のウィンドウを開く.

/e
Windows エクスプローラをデフォルトの表示設定(フォルダツリーもつく)で新しいウィンドウを開く. ","に続いて,表示したいフォルダを書かなければ,標準でCドライブが表示される.

/root,[オブジェクト] 
オブジェクトに指定した所をrootのように見せて表示する.この場合,オブジェクトのフォルダより上位のフォルダを表示しないので,そこには移れない. オブジェクトの所を半角スペースのみにすると,デスクトップがルートになる.

/select,[オブジェクト]
ウィンドウに,指定したフォルダ,ファイル,またはアプリケーションが選択された状態で表示する.

※ Microsoft からは消失しているし、ネット上で見つけたのも geocities なので消失予定なので持って来ました。
▼ 消失
support.microsoft.com/en-us/help/314853


デフォルトの表示設定で開く
Explorer /e,%USERPROFILE%


ファイルを選択して開く
Explorer /e,/select,%SystemRoot%\notepad.exe





タグ:引数
posted by lightbox at 2019-01-08 19:34 | Windows | このブログの読者になる | 更新情報をチェックする

WordPress の リダイレクト用のコードを作成する PHP / パーマリンクが数字だけだったので、投稿名を追加してから

記事数が40記事程度で少なかったので、パーマリンク設定を

/%year%%monthnum%%day%-%post_id%.html

から

/%postname%-%year%%monthnum%%day%-%post_id%.html

に変更して、タイトルを Google で翻訳してパーマリンクを編集してから以下のコードで .htaccess 用のリダイレクトコードを作成しました

参考 : How to Get a List of All WordPress Post URLs
<?php

include "wp-load.php";

// posts_per_page=-1 は全件
//$query_result = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');

// 通常記事のみ
$query_result = new WP_Query('post_type=post&posts_per_page=-1&post_status=publish');
$all_posts = $query_result->posts;

header('Content-type:text/plain');

foreach($all_posts as $post) {

	switch ($post->post_type) {

		// 関係の無いエントリ
		case 'revision':
		case 'nav_menu_item':
			break;

		// 固定ページ
		case 'page':
			$permalink = get_page_link($post->ID);
			break;

		// 通常記事
		case 'post':
			$permalink = get_permalink($post->ID);
			break;

		// 添付ファイル
		case 'attachment':
			$permalink = get_attachment_link($post->ID);
			break;

		// 独自投稿タイプ / その他
		default:
			$permalink = get_post_permalink($post->ID);
			break;
	}

	$pattern = '/https:\/\/.+-(\d+)-(\d+).html/';

	$replacement = 'Redirect 301 /lightbox/$1-$2.html';

	print "\n" . preg_replace($pattern, $replacement, $permalink) . " " . $permalink;
}
?>




posted by lightbox at 2019-01-08 19:07 | WEBサービス | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり