2014年11月27日


Seesaa が『この広告は1年以上更新がないブログに表示されております。』という広告を表示しています。

新規投稿でないと対象にならないようです。info.seesaa.net をドメイン内検索をしても、該当するものは無いので突然の仕様変更かもしれません。

ブックマークレット : Googleのドメイン内検索を任意のページで実行




ソースを表示して、一番下までスクロールすると、以下のような記述があります。
<p style="margin:0;padding:0;font-size:10px;color:#DDD;">この広告は1年以上更新がないブログに表示されております。</p>
</div>
<script type="text/javascript">
//<![CDATA[
document.getElementById('seesaa-bnr-close').addEventListener('click', function(){ document.getElementById('seesaa-bnr').style.display = 'none'; });
//]]>
</script>
<script type="text/javascript">
var url = document.URL;
document.write("<img src='http://d3mgo879eugsjh.cloudfront.net/t.gif?url=" + encodeURIComponent(url) + "' />");
</script>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<script type="text/javascript">
var nend_params = {"media":3,"site":3,"spot":57750,"type":2,"oriented":1,"sp":0};
</script>
<script type="text/javascript" src="http://js1.nend.net/js/nendAdLoader.js"></script>
<script type="text/javascript" src="http://t.seesaa.net/analytics-seesaa-net.js?v=20141014&tid=UA-53911882-1"></script>



posted by at 2014-11-27 23:16 | Comment(0) | クライアント/サーバー | このブログの読者になる | 更新情報をチェックする

Cron の代替え : VBScript でタイマー処理

同一スクリプトで、別々の処理は一応可能のようですが、厳密には非同期では無く一つの処理を実行中は他の処理は待たされるようなので、本来の非同期処理が必要な場合は、外部アプリケーション(スクリプト)を呼び出す形にして下さい。

Windows には、昔から「スケジューラ」というサービスがあり、Cron と同じ事が可能です。しかし、Windows 純正で、URL を呼び出すとなると、それなりに知識も必要ですし、そもそもWindows のスケジューラは、非常に解りにくい不便なしろもので、できればあまり使用したく無いです。

そこで、VBScript のみを使って簡単なスケジューラを作り、そこからさらに VBScript で任意の URL を呼び出します。

10秒毎の非同期別スレッド処理のサンプル
' このセクションは、cscript.exe で処理を強制させるものです
str = WScript.FullName
str = Right( str, 11 )
str = Ucase( str )
if str <> "CSCRIPT.EXE" then
	str = WScript.ScriptFullName
	Set WshShell = CreateObject( "WScript.Shell" )
	Call WshShell.Run( "cmd.exe /c cscript.exe """ & str & """ & pause", 3 )
	WScript.Quit
end if

Dim Disp : Disp = True	' False にすると、秒単位の表示はしなくなります
Set WshShell = WScript.CreateObject("WScript.Shell")

Set SINK = WScript.CreateObject("WbemScripting.SWbemSink","SINK_")
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
objWMIService.ExecNotificationQueryAsync _
 SINK, _
 "SELECT * FROM  __InstanceModificationEvent " & _
 "WHERE TargetInstance ISA 'Win32_LocalTime'"

Wscript.Echo "非同期別スレッドタイマー処理を開始します"
str = WScript.FullName
str = Right( str, 11 )
str = Ucase( str )
if str = "CSCRIPT.EXE" then
	' Cscript.exe で、CTRL+C で終わらせる
	Do
		WScript.Sleep 10000
	Loop
end if

' この処理は、毎秒非同期のスレッドから呼び出されます
Sub SINK_OnObjectReady(objLatestEvent, objAsyncContext)

	' 10秒毎の非同期別スレッド処理
	if objLatestEvent.TargetInstance.Second MOD 10 = 0 then
		' ここが 10秒毎に呼び出されます
		WshShell.Run( "wscript httpget.vbs http://xxxxx.jp/xxxxx.php" )
	end if

	if Disp then
		' 秒単位に呼び出されるこのルーチンで毎回表示
		Wscript.Echo "Time: " & _
			objLatestEvent.TargetInstance.Hour & ":" & _
			objLatestEvent.TargetInstance.Minute & ":" & _
			objLatestEvent.TargetInstance.Second
	end if
End Sub



httpget.vbs
if Wscript.Arguments.Count = 0 then
	Wscript.Echo "httpget url [savepath]"
	Wscript.Quit
end if

' ダウンロード用のオブジェクト
Set objSrvHTTP = Wscript.CreateObject("Msxml2.ServerXMLHTTP")

' 第1引数は URL
strUrl = Wscript.Arguments(0)
if Wscript.Arguments.Count = 1 then
	' 第2引数が無い場合は、URL の最後の部分
	' ( カレントにダウンロード )
	aData = Split(strUrl,"/")
	strFile = aData(Ubound(aData))
else
	' 第2引数がある場合はそれをローカルファイルとする
	strFile = Wscript.Arguments(1)
end if

' ダウンロード要求
on error resume next
Call objSrvHTTP.Open("GET", strUrl, False )
if Err.Number <> 0 then
'	Wscript.Echo Err.Description
	Wscript.Quit
end if
objSrvHTTP.Send
if Err.Number <> 0 then
	' おそらくサーバーの指定が間違っている
'	Wscript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

if objSrvHTTP.status = 404 then
'	Wscript.Echo "URL が正しくありません(404)"
	Wscript.Quit
end if

' バイナリデータ保存用オブジェクト
Set Stream = Wscript.CreateObject("ADODB.Stream")
Stream.Open
Stream.Type = 1	' バイナリ
' 戻されたバイナリをファイルとしてストリームに書き込み
Stream.Write objSrvHTTP.responseBody
' ファイルとして保存
Stream.SaveToFile strFile, 2
Stream.Close



関連する記事

VBScript : 30秒後のイベント処理
VBScript : 10秒毎に処理を実行する( 時刻指定も可能 )
VBScript : スクリプトを終了しないようにする



posted by at 2014-11-27 23:09 | Comment(0) | VBScript | このブログの読者になる | 更新情報をチェックする

2014年07月03日


Facebox v1.3 の正しい設置方法と使用方法









▼ href の画像を表示します


▼ href に他の id を指定してその内容を表示します


▼ url で指定されたテキストの内容を HTML として表示します
(但し、クリックした後2秒後に閉じます)


▼ ajax で読み込んだ内容を表示します
ダウンロード

Facebox 1.3

自分のサイトにアップロード

1) facebox.js
2) facebox.css
3) closelabel.png
4) loading.gif

ファイルをアップロードできるブログであればブログでも可能です。(Google ドライブを使うと簡単です)

アップロードする前に、facebox.js 内の closelabel.png と loading.gif の URL を直接 http から記述しておけば、実行するページからプログラムで変更する必要がなくなります。

facebook.js の変更部分(URLを3つ)
$.extend($.facebox, {
  settings: {
    opacity      : 0.2,
    overlay      : true,
    loadingImage : 'https://googledrive.com/host/0B9Jymqpro6gSVlB5Wm52U29wTlE/facebox13/loading.gif',
    closeImage   : 'https://googledrive.com/host/0B9Jymqpro6gSVlB5Wm52U29wTlE/facebox13/closelabel.png',
    imageTypes   : [ 'png', 'jpg', 'jpeg', 'gif' ],
    faceboxHtml  : '\
  <div id="facebox" style="display:none;"> \
    <div class="popup"> \
      <div class="content"> \
      </div> \
      <a href="#" class="close"><img src="https://googledrive.com/host/0B9Jymqpro6gSVlB5Wm52U29wTlE/facebox13/closelabel.png" title="close" class="close_image" /></a> \
    </div> \
  </div>'
  },

※ プログラムからは以下のようにして変更します
$.facebox.settings.closeImage = '/images/facebox/closelabel.png'
$.facebox.settings.loadingImage = '/images/facebox/loading.gif'

または、

jQuery(document).ready(function($) {
	$('a[rel*=facebox]').facebox({
		loadingImage : 'images/loading.gif',
		closeImage   : 'images/closelabel.png'
	})
})


j設置

jQuery が必要ですが、google がホスティングしているものを使います。

あるいは、jQuery をダウンロードして設置して下さい。

このサンプルでは、外部ファイルとして image_001.txt と、message_001.txt を使っています。その為、実行する URL と 同一ドメインである必要がありますが、Google Drive を使うと他ドメインからでも読み出せる設定に Google 側が設定しています
( access-control-allow-origin:* を返してくれる )

image_001.txt
message_001.txt

rel="文字列" で、文字列は自由に設定可能で、facebox の初期処理で指定します
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
</head>
<body>

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script type=text/javascript src="https://googledrive.com/host/0B9Jymqpro6gSVlB5Wm52U29wTlE/facebox13/facebox.js"></script>
<link type="text/css" rel="stylesheet" href="https://googledrive.com/host/0B9Jymqpro6gSVlB5Wm52U29wTlE/facebox13/facebox.css">

<script	type="text/javascript">
// jQuery の画面準備完了時のイベント
$(function(){
	// rel 属性で対象を決定しています( ここでは、my_image が含まれるもの )
	$('a[rel*=my_image]').facebox()

	// イベント登録
	$(document).bind('beforeReveal.facebox', 
	function(){
		console.log("実行直前");
	});

});
</script>


<div>▼ href の画像を表示します</div>
<a href="http://lh6.ggpht.com/_IzfbcNjqGuE/S1jkKM952HI/AAAAAAAAAPU/CheJ6YkRGPM/s720/b15architecture_exteriors014.jpg" rel="my_image1"><img  src="http://lh6.ggpht.com/_IzfbcNjqGuE/S1jkKM952HI/AAAAAAAAAPU/CheJ6YkRGPM/s128/b15architecture_exteriors014.jpg" style='border-width:0px;'></a>


<br><br>

<div>▼ href に他の id を指定してその内容を表示します</div>
<a href="#my_div" rel="my_image2"><img src="http://lh3.ggpht.com/_IzfbcNjqGuE/S1j75KHGTZI/AAAAAAAAARg/l_d3g2d4fb0/s128/b17diederik015.jpg" style='border-width:0px;'></a>
<div id="my_div" style='display:none'><t5>divの中にタイトルと画像をセットして、display:none を指定しています</t5><img  src="http://lh3.ggpht.com/_IzfbcNjqGuE/S1j75KHGTZI/AAAAAAAAARg/l_d3g2d4fb0/s720/b17diederik015.jpg" style='border-width:1px;'></div>

<br><br>

<div>
▼ url で指定されたテキストの内容を HTML として表示します
<br>
(但し、クリックした後2秒後に閉じます)
</div>
<a href="https://googledrive.com/host/0B9Jymqpro6gSVlB5Wm52U29wTlE/facebox13/image_001.txt" rel="my_image3"><img src="http://lh3.ggpht.com/_IzfbcNjqGuE/S1js9TWpzrI/AAAAAAAAAP0/OG-rkSIkyIQ/s128/b7architecture_exteriors045.jpg" style='border-width:0px;' onclick='setTimeout(function(){$(document).trigger("close.facebox")},2000)'></a>

<br><br>

<div>▼ ajax で読み込んだ内容を表示します</div>
<input type="button" value="メッセージ" onclick="$.facebox({ ajax: 'https://googledrive.com/host/0B9Jymqpro6gSVlB5Wm52U29wTlE/facebox13/message_001.txt' })">

</body>
</html>
関連する記事

lightbox.js の正しい設置方法


posted by at 2014-07-03 02:33 | Comment(0) | 小ネタ | このブログの読者になる | 更新情報をチェックする

2013年11月01日


Google Chroem の自分用テーマを超簡単に作成する方法

環境準備

とにかく、元となるようなテーマをインストールします。( 後でいろいろ変更すれば良いです )

インストールされたテーマデータを複写

『C:\Users\ユーザ名\AppData\Local\Google\Chrome\User Data\Default\Extensions』

に移動して、タイムスタンプよりインストールされたばかりのフォルダに入ります。



必要なのは、images フォルダ全てと、manifest.json です。これらをどこか好きなフォルダにコピーします。

テーマ用背景画像を images フォルダにコピー

jpg でも png でもどちらでもかまいません。そのファイル名を manifest.json の中の theme_ntp_background の値として変更します。
      "images": {
         "theme_button_background": "images/theme_button_background.png",
         "theme_frame": "images/theme_frame.png",
         "theme_frame_inactive": "images/theme_frame_inactive.png",
         "theme_frame_incognito": "images/theme_frame_incognito.png",
         "theme_ntp_background": "images/UrbanFuture4_1.jpg",
         "theme_tab_background": "images/theme_tab_background.png",
         "theme_tab_background_incognito": "images/theme_tab_background_incognito.png",
         "theme_tab_background_v": "images/theme_tab_background_v.png",
         "theme_toolbar": "images/theme_toolbar.png",
         "theme_window_control_background": "images/theme_window_control_background.png"
      },

他はとりあえずそのままにしておいて、他のファイルは自分用のパッケージを作成してからゆっくり変更して下さい。

manifest.json の変更

インストール済みの manifest.json には必要無い部分が含まれているので、以下のようなエントリのみにします( manifest_version が無い場合は追加して下さい )
{
   "manifest_version": 2,
   "name": "DAZ3D / sworc",
   "theme": {
      "colors": {
         "bookmark_text": [ 232, 232, 232 ],
         "button_background": [ 255, 9, 9 ],
         "control_background": [ 70, 0, 0 ],
         "frame": [ 4, 4, 4 ],
         "frame_inactive": [ 4, 4, 4 ],
         "frame_incognito": [ 4, 4, 4 ],
         "frame_incognito_inactive": [ 0, 0, 0 ],
         "ntp_background": [ 0, 0, 0 ],
         "ntp_header": [ 70, 0, 0 ],
         "ntp_link": [ 255, 9, 9 ],
         "ntp_link_underline": [ 255, 9, 9 ],
         "ntp_section": [ 70, 0, 0 ],
         "ntp_section_link": [ 255, 9, 9 ],
         "ntp_section_link_underline": [ 255, 9, 9 ],
         "ntp_section_text": [ 186, 186, 186 ],
         "ntp_text": [ 186, 186, 186 ],
         "tab_background_text": [ 4, 4, 4 ],
         "tab_text": [ 232, 232, 232 ],
         "toolbar": [ 56, 56, 56 ]
      },
      "images": {
         "theme_button_background": "images/theme_button_background.png",
         "theme_frame": "images/theme_frame.png",
         "theme_frame_inactive": "images/theme_frame_inactive.png",
         "theme_frame_incognito": "images/theme_frame_incognito.png",
         "theme_ntp_background": "images/UrbanFuture4_1.jpg",
         "theme_tab_background": "images/theme_tab_background.png",
         "theme_tab_background_incognito": "images/theme_tab_background_incognito.png",
         "theme_tab_background_v": "images/theme_tab_background_v.png",
         "theme_toolbar": "images/theme_toolbar.png",
         "theme_window_control_background": "images/theme_window_control_background.png"
      },
      "properties": {
         "ntp_background_alignment": "center",
         "ntp_background_repeat": "no-repeat",
         "ntp_logo_alternate": 1
      },
      "tints": {
         "background_tab": [ -1.0, 0.5, 0.75 ],
         "buttons": [ 1.0, 0.0, 1.0 ],
         "frame": [ -1.0, -1.0, -1.0 ],
         "frame_inactive": [ -1.0, -1.0, 0.75 ],
         "frame_incognito": [ -1.0, 0.2, 0.35 ],
         "frame_incognito_inactive": [ -1.0, 0.3, 0.6 ]
      }
   },
   "version": "1.0"
}

パッケージ作成とインストール

Google Chrome の chrome://extensions/ を開いて、デベロッパーモードをチェックして、拡張機能のパッケージ化で、パッケージを作成します。出来上がったパッケージは、拡張子が crx になります。出来上がったら、Google Chrome にドラッグ & ドロップするとインストール完了です。

細かいチューニング方法

オプションの詳細(英文)で細かい設定をチェックして、現在インストール済みのオプションを変更して状況を確かめます。

変更するには、Google Chrome を終了させて『C:\Users\ユーザ名\AppData\Local\Google\Chrome\User Data\Default\Preferences』を開いて manifest.json の内容がコピーされた部分を変更します。インストール先の manifest.json は変更しても状態は変化しません。Preferences の内容を変更したら、インストール先の Cached Theme.pak を削除して Google Chrome を起動すると変更されているばすです。(Cached Theme.pak は、Google Chrome 起動毎に作成されるので、この処理を繰り返して完成させます)

全ての変更が終わったら、パッケージ用の manifest.json に内容をコピーして再度パッケージ化すれば、オリジナルのテーマパッケージが完成します。





posted by at 2013-11-01 01:05 | Comment(0) | Google | このブログの読者になる | 更新情報をチェックする

2013年07月11日


Twitter(API1.1) の投稿に関して、VS2010、VS2012、Android、VBScript、PHP の言語でサンプルを作成しました

posted by at 2013-07-11 21:22 | Comment(0) | HTTP | このブログの読者になる | 更新情報をチェックする