ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
デスクトップにオリジナルアイコンを登録してカスタマイズする為の手順
日時: 2013/05/02 00:30
名前: lightbox



拡張子:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace
上記レジストリキーに、CLSID を登録する事によって、シェルにアイコンを認識させる事ができます。 CLSID そのものの登録は、HKEY_CLASSES_ROOT\CLSID に登録しますが、CLSID そのものは以下のプログラムで 取得した ID を使用します( 毎回違う ID を取得できるので、一つを決定して下さい ) http://winofsql.jp/wsf/getGuid.wsf 作成した CLSID の下に DefaultIcon キーを作成して、使用するアイコンの名前と場所を指定します。 ( ここでは、例として Shell32.dll を使用します ) 以下は、テストしたレジストリ構成
拡張子:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{C73A1C91-1AC3-416C-8AEE-56B26891B1E3}]
@="てすと"

[HKEY_CLASSES_ROOT\CLSID\{C73A1C91-1AC3-416C-8AEE-56B26891B1E3}\DefaultIcon]
@="%SystemRoot%\\system32\\SHELL32.dll,1"

メンテナンス

既存アイコンの利用 ( No.1 )
日時: 2007/05/07 20:26
名前: lightbox


日時: 2007/05/07 20:26
名前: lightbox
アイコンファイル( *.ico ) を直接指定しても良いですが、
.exe .dll .cpl 等のプログラムに保存されているリソースをインデックス番号で指定できます。
内容は、適当にショートカットを作成して「アイコンの変更」で調べます



このアーティクルの参照用URLをクリップボードにコピー メンテナンス
名称変更可能にする ( No.2 )
日時: 2007/05/08 21:14
名前: lightbox
拡張子:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{C9C868E6-BCD1-4D3E-8F8D-334F09BDE657}\ShellFolder]
"Attributes"=dword:00000010

FlagValue
SFGAO_FOLDER0x20000000
SFGAO_HASSUBFOLDER0x80000000
SFGAO_CANDELETE0x00000020
SFGAO_CANRENAME0x00000010
SFGAO_HASPROPSHEET0x00000040
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
指定した位置でレジストリエディタを開く ( No.3 )
日時: 2014/10/04 12:18
名前: lightbox
開きたい位置を Regedit\LastKey に書き込んで、
既に regedit が起動されている場合は終了させてから再度 regedit を実行します

拡張子:
' 引数のチェック
if WScript.Arguments.Count = 1 then
	strParam = WScript.Arguments(0)
end if
strParam = Trim( strParam )
' 無ければ、クリップボード
if strParam = "" then
	' クリップボード用
	' ※ HTA 等では直接 window.clipboardData より実行
	' ※ するように書き換える必要があります
	Set objIE = CreateObject("InternetExplorer.Application")
	objIE.Navigate("about:blank")
	Do While objIE.Busy
		' 100 ミリ秒
		Wscript.Sleep 100
	Loop
	strParam = objIE.document.parentWindow.clipboardData.GetData( "Text" ) & ""
	objIE.Quit
end if
strParam = Trim( strParam )
' 無ければ入力
if strParam = "" then
	strParam = InputBox("開く対象となるレジストリーのキーを入力して下さい")
end if
if strParam = "" then
	Wscript.Quit
end if

' レジストリ書き込み用
Set WshShell = CreateObject( "WScript.Shell" )
' WMI用
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

' レジストリエディタが最後に開いていたキーの登録を行います
strPath = "Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\LastKey"
if GetOSVersion() >= 6 then
	strRegPath = "コンピュータ\" & strParam
else
	strRegPath = "マイ コンピュータ\" & strParam
end if

' 既に regedit が実行中の場合はいったん終了させます
Set colProcessList = objWMIService.ExecQuery _ 
	("Select * from Win32_Process Where Name = 'regedit.exe'") 
For Each objProcess in colProcessList
	' 最後のウインドウの位置とサイズを保存する為の終わらせ方
	WshShell.AppActivate("レジストリ エディタ")
	Wscript.Sleep(500)
	WshShell.SendKeys ("%{F4}")
	Wscript.Sleep(500)
	' 上記終わらせ方が失敗した時の強制終了
	on error resume next
	objProcess.Terminate() 
	on error goto 0
Next 

WshShell.RegWrite "HKCU\" & strPath, strRegPath, "REG_SZ"

' レジストリエディタを起動します
Call WshShell.Run( "regedit.exe" )
' レジストリエディタが終わるまで待つ場合は以下のようにします
' Call WshShell.Run( "regedit.exe", , True )

REM **********************************************************
REM OS バージョンの取得
REM **********************************************************
Function GetOSVersion()

	Dim colTarget,str,aData,I,nTarget

	Set colTarget = objWMIService.ExecQuery( _
		 "select Version from Win32_OperatingSystem" _
	)
	For Each objRow in colTarget
		str = objRow.Version
	Next

	aData = Split( str, "." )
	For I = 0 to Ubound( aData )
		if I > 1 then
			Exit For
		end if
		if I > 0 then
			nTarget = nTarget & "."
		end if
		nTarget = nTarget & aData(I)
	Next

	GetOSVersion = CDbl( nTarget )

End Function


実行例
拡張子:
regedit.wsf HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
【レジストリ直接編集】コマンドを実装する ( No.4 )
日時: 2007/05/09 21:05
名前: lightbox


以下のレジストリ登録で実装されますが、要するに Shell キー の下に、
任意のコマンドキーと、command キー を作成する事によって、好きなだけ
実行メニューを登録できます。

以下の例では、%環境変数% を展開させる為に REG_EXPAND_SZ になっていますが、
そうでなければ、REG_SZ で登録します。
( REG_EXPAND_SZ は、レジストリファイルよりインポートしないと作成できない ) 

拡張子:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{C73A1C91-1AC3-416C-8AEE-56B26891B1E3}\shell]

[HKEY_CLASSES_ROOT\CLSID\{C73A1C91-1AC3-416C-8AEE-56B26891B1E3}\shell\directedit]
@="【レジストリ直接編集】"

[HKEY_CLASSES_ROOT\CLSID\{C73A1C91-1AC3-416C-8AEE-56B26891B1E3}\shell\directedit\command]
@=hex(2):77,00,73,00,63,00,72,00,69,00,70,00,74,00,2e,00,65,00,78,00,65,00,20,\
  00,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,5c,00,6c,00,61,00,79,00,6c,00,61,00,43,00,6c,00,61,\
  00,73,00,73,00,5c,00,6c,00,61,00,75,00,6e,00,63,00,68,00,5c,00,72,00,65,00,\
  67,00,65,00,64,00,69,00,74,00,2e,00,77,00,73,00,66,00,22,00,20,00,48,00,4b,\
  00,45,00,59,00,5f,00,43,00,4c,00,41,00,53,00,53,00,45,00,53,00,5f,00,52,00,\
  4f,00,4f,00,54,00,5c,00,43,00,4c,00,53,00,49,00,44,00,5c,00,7b,00,43,00,37,\
  00,33,00,41,00,31,00,43,00,39,00,31,00,2d,00,31,00,41,00,43,00,33,00,2d,00,\
  34,00,31,00,36,00,43,00,2d,00,38,00,41,00,45,00,45,00,2d,00,35,00,36,00,42,\
  00,32,00,36,00,38,00,39,00,31,00,42,00,31,00,45,00,33,00,7d,00,5c,00,73,00,\
  68,00,65,00,6c,00,6c,00,00,00

このアーティクルの参照用URLをクリップボードにコピー メンテナンス
コントロールパネルに登録する ( No.5 )
日時: 2007/05/12 19:47
名前: lightbox


レジストリにあるコントロールパネルのネームスペースに CLSID を登録します

拡張子:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{C73A1C91-1AC3-416C-8AEE-56B26891B1E3}]
@="てすと"

このアーティクルの参照用URLをクリップボードにコピー メンテナンス