SQLの窓 イラストAC フリー素材

2009年04月04日

Windowsで、メモ帳さえあればできる画像一括ダウンロードスクリプト

ほぼ、完成しているソースコードはこちらへどうぞ。

手書きブログ用カスタムパレットツールの為に作って実装済みのものです。
ちょっと慣れればだれでもできます。これでも解ると思いますが、プログラマ
として目覚めると、インターネット上でかなり特殊な事が、いともかんたんにできてしまいます(笑)

冗談はさておき。

やれ、スクリプトだ、プログラムだと言っても、JavaScript と基本変わりません。
そもそも「プロマミング言語に必要な要素」というのはわりとしれています。
 

1) 変数定義( 保存場所 )
2) 代入( 保存場所の変更 )
3) 繰り返し処理
4) 既存機能の呼び出し
5) 条件分岐


この5つあれば良いです。みんな同じです。 

で、この処理のキモは、4) で、これがあるおかげで出来ていますので、
プログラマとしてはたいした事はやっていません。
 

Set objSrvHTTP = Wscript.CreateObject("MSXML2.XMLHTTP") 
Set Stream = Wscript.CreateObject("ADODB.Stream") 
Set IEDocument = Wscript.CreateObject( "InternetExplorer.Application" ) 
Set Fso = CreateObject( "Scripting.FileSystemObject" ) 

しかも、このうちダウンロードに必要なのは、上の二つです。 
IEDocument は、HTML 内の IMG を探す為の入り口ですし、基本 JavaScript  でやってる事を
するだけ、Fso は、単に、スクリプトが存在しているフォルダのフルパスを取得する為
に使っていますが、今回に関しては別の方法でも取得できます。

 

on error resume next 
Call objSrvHTTP.Open("GET", strUrl, False ) 
if Err.Number <> 0 then 
	Wscript.Echo Err.Description 
	Wscript.Quit 
end if 
on error goto 0 
 
objSrvHTTP.Send 

ダウンロード部分なんかこれだけです。
objSrvHTTP.Send でうまく行ったら、objSrvHTTP.responseBody 
にデータが格納されるので、変数定義すらいりません。
そのまま、  Stream 使って、ディスクに保存します。

つまり、1つのファイルで URL が解っておれば、ここで目的は達成して終わりです。
注意しないといけないのは、あまり大きなファイルはやめたほうがいいです。
3メガぐらいまでにしましょう。( 推奨は 1メガまで )

ですから、画像のダウンロードなら特に問題は起きないはずです。
このプログラムでは、必要な画像の URL のリストをダウンロードしたHTML
の情報から加工して作成して、ループ処理で繰り返しダウンロードしています。

プログラミング的に気をつけるのは、このような連続処理では
間に休憩を入れてやっておくという事です。
( Wscript.Sleep 10 )

根拠はさすがに技術的になるので・・・

また機会があれば。



欲しい画像の URL が解っている場合、HTML に IMG タグを書いて
ブラウザで表示させれば、ブラウザが全部キャッシュというディスクのある場所
にダウンロードしてくれて表示します。

そのキャッシュからコピーするか、ブラウザを右クリックして保存するかしたとしても、
それはダウンロード済みの自分の PC 上のファイルの処理です。

つまり、このスクリプトはブラウザがやっている処理の不要な部分を全てはしょってる
だけなので、決してダウンロードそのものは早くないです。ふつうに、ブラウザがかかる
時間とおなじだけ必要です。

 

posted by at 2009-04-04 18:52 | 資料 | このブログの読者になる | 更新情報をチェックする

2009年03月31日

MicrosoftExcel2007のドキュメント

業務で Excel.Application を使うのに、久しぶりに Microsoft のドキュメントを
見に行ったら、以前リンクしていた場所は、Office XP で、ひどいマニュアルです。
殆ど何も解りません。

で、時代も変わったし・・・と、ツリーをたどると、Office 2007 があったので
探してみると、「かなりまともな」オブジェクトリファレンスが存在しました( もちろん英文のみですが )

これは、いいです。
いままで、マクロ作成機能でVBAコード作成させて
勘で作ってたのが嘘のようです(笑)


でも、日本語無いんですよね・・・
で、今からこないだ見つけた、リアルタイム単語翻訳(Firefox)を試してみます。





posted by at 2009-03-31 16:50 | 資料 | このブログの読者になる | 更新情報をチェックする

2009年03月30日

【警告!!】さくらのレンタルサーバのOSバージョンアップでいろいろ起こります

サーバ毎なので時期はそれぞれですが、ログインした時に SSL のダイアログが出るように
なっていたら、変更されています。特別な事をしていなかったら、問題無いですが、sakura を
借りている時点で、かなりのユーザが注意する必要があると思います。

まず、最も重要なのが、拡張子が HTML、HTM のファイルを CGI の PHP で実行する
ように設定している人は全てサーバーエラーになると思います。
( 結局 /usr/local/bin/php-cgi をコピーしなおせば OK )

>:/usr/local/bin/phpがCLI版PHP(CLI SAPI)へと変更されています。
>お客さまで用意されているPHPスクリプト自体の修正は必要と
>しませんが、CRONやメールの転送機能が利用できなくなるという
>問い合わせがサポートへ寄せられています。
>今後コマンドラインで使用するPHPは、カレントディレクトリを
>変更する記述としていただきますようお願いいたします。  
それと同時に TELNET が利用できなくなってるので、SSH 用のソフトが必要です。
http://support.sakura.ad.jp/support/manual/rs/tech_ssh.shtml

他にも以下のような状況が変更されています。



    OS      FreeBSD 6.1 → 7.1

    Perl    Perl 5.8.8 → 5.8.9
            http://cpansearch.perl.org/src/NWCLARK/perl-5.8.9/Changes

    Python  Python 2.4.5 → 2.5.2
            http://www.python.org/download/releases/2.5.2/NEWS.txt

    シェルログイン
            TELNET の提供を終了します。

    受信メールアカウント
            「ユーザ名.○○○.sakura.ne.jp」形式の廃止

さらに、MySQL5.1 が使えるようになるのですが、その為には
現在の4.0を全て削除する必要があるのでやめたほうが良いでしょう。
どうしても、5.1のステキな機能を使いたい場合は、別のアカウントで借りたほうが良いです。

あと、共有SSLが使えますが、あわてる必要も無いでしょう。
必要になったときに使ってみましょう。


 

 

posted by at 2009-03-30 15:13 | 資料 | このブログの読者になる | 更新情報をチェックする

2009年03月17日

サーバ側の責任者が開発時のローカル固定環境だけIFRAMEのクロスドメインを可能にする方法

ローカルでWEB開発している時に、既に実稼働しているサーバのページを
IFRAME で参照し、サーバー側のページのオブジェクトを利用したい場合がありますが、
通常ではクロスドメイン間のセキュリティ制限によってエラーとなります。

これを回避する方法として、document.domain がありますが、必ず参照される側で
書き込んでいないと動作しません。ただ、これをやってしまうと、他のどこからでもクロスドメイン
のセキュリティ制限を回避できてしまうので、問題はありますが、イントラネットでは
こういう設定をしておくと開発にとっては便利ではあります。


↓サーバー側

<SCRIPT type="text/javascript"> 
document.domain = document.domain;
</SCRIPT>



↓ローカル側

<script type="text/javascript">
document.domain = "サーバーのドメイン";
</script>


↓HOSTS ファイル

127.0.0.1 app.サーバードメイン



ローカルでは、app.サーバードメイン でアクセスします。

最終的にはローカルのアプリケーションはサーバへアップロードします。
HOSTS を使った一時的な手法ですので、知っておいて損は無い
と思いますが、HOSTS を元に戻すのを忘れない事が重要です。

責任者に隠れて勝手にやっちゃダメですけど。



 

 

 

posted by at 2009-03-17 14:53 | 資料 | このブログの読者になる | 更新情報をチェックする

2009年03月16日

マウスをクリックをした事にする

↓バッチビルド環境のダウンロード
http://winofsql.jp/download/TegakiMouse_src.lzh


これはそもそも、キーボード用でよく使ってたのですが、手書きブログでは
Flash に不思議なマウスコマンドが仕込まれてまして、

「左クリックしながら右クリックする」

という、気持ち悪いもの。
で、その動作をアプリに組み込んでデスクトップにショートカット作って、
ショートカットキーを登録して、Flash の上ショートカットキーを押すと・・・・


ソースコードはいたって簡単。


// *********************************************************
// 手書きブログ専用
// 直線を引く準備をマウスにさせる
// *********************************************************
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <tchar.h>

#define MOUSE_ACTION 4

// *********************************************************
// Windows アプリケーションとしてのエントリポイント
// Link.exe で /SUBSYSTEM:WINDOWS がデフォルトで
// 指定される事になります
// *********************************************************
int APIENTRY _tWinMain(
	HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	LPTSTR lpCmdLine,
	int nCmdShow
)
{
	// ---------------------------------------------------------------

	INPUT inmouse[MOUSE_ACTION];
	MOUSEINPUT mi[MOUSE_ACTION];

	// しばらく待つ
	Sleep(500);

	memset( mi, 0x00, sizeof( MOUSEINPUT ) * MOUSE_ACTION );

	// マウスの処理順序を作成
	mi[0].dwFlags = MOUSEEVENTF_LEFTDOWN;
	mi[1].dwFlags = MOUSEEVENTF_RIGHTDOWN;
	mi[2].dwFlags = MOUSEEVENTF_LEFTUP;
	mi[3].dwFlags = MOUSEEVENTF_RIGHTUP;

	int i;

	for( i = 0; i < MOUSE_ACTION; i++ ) {
		inmouse[i].type = INPUT_MOUSE;
		inmouse[i].mi = mi[i];
	}

	// マウスの送信
	int ret;
	ret = SendInput( MOUSE_ACTION, inmouse, sizeof( INPUT ) );

	return 0;
}


以下 Microsoft ドキュメント

INPUT 構造体
MOUSEINPUT 構造体

↓キー入力を扱ったコードは
http://winofsql.jp/sh/html/send_ctrlkey.htm

↑を使って、Google の翻訳を Windows 上のクリツプボード
使えるところではどこでも翻訳できるようにしたのが
こちら => どこでも Google 翻訳


このマウス操作は、いろいろできるはずで、手書きブログの Flash の上で
勝手に正確な多角形を描かす事ができるはずですが・・・・

それやっちゃ、怒られそうです。


 
posted by at 2009-03-16 15:40 | 資料 | このブログの読者になる | 更新情報をチェックする

2009年03月15日

リンク切れチェックと.htaccess

以前、この maglog のリンク切れチェックをやった時に、

Website Explorer
Web_exp


というソフトにお世話になりましたが、あれから重宝しています。
使い方もいろいろ覚えて、ノウハウもありますが、今日は自分の
メインサイトのチェックするのに、ページが多すぎてラチがあかないので
ディレクトリ単位で気長にやっていこうと思ったのですが・・・

ハタと、ディレクトリ以下を見渡すリンクなんか無いぞ?

というわけで、sakura ですが .htaccess をそのディレクトリに設定したのですが、
話は簡単に終わらないものです

↓続きを読む

Title_0315





posted by at 2009-03-15 21:10 | 資料 | このブログの読者になる | 更新情報をチェックする

2009年03月02日

最後に写真プリントしたのはいつだっただろう・・・

P1000478

地元のセブンイレブンでデシカメをプリントできると聞いて試してみました。

基本コピー機なので、まず30円入れて、タッチパネルで順番にすすめていくと、
データを入れるスロットが開いて、通常のデジカメ用のSDカードなので、右端にセット。

スクロールで写真選んで、(タッチすると選択されるので左下に解除処理)
とりあえず試しなので2回に分けて時刻表と去年の春に撮った燕の子供をプリント。

コピー機の右下にある専用出口から裏向きで出できました。

正直ふつうの写真(あたりまえか)なのでびっくりしてしまいました。
生の写真手に取ったのは十数年ぶりですし。

大昔、うちの親父がDPEの機械買って自分の会社の店頭部分の目玉
していた時期があり、私もメンテナンスや焼付けオペレータを少しだけ
手伝った事があるのですが(二十数年前)、時代の進歩って凄いですね。
専門的な話ですが、写植って今どうなってんでしょ。

で、↓な専用封筒に入れて持ち帰りました。
P1000474  

絵を描く時の資料用に使ってみようと思ってます。
デジタルデータだと、一度にいろいろな資料を見れないので。



※ セブンイレブンのマルチコピーでできること



posted by at 2009-03-02 16:03 | 資料 | このブログの読者になる | 更新情報をチェックする

2008年12月19日

感情アイコン〜Emotion〜

探してみると、案外無い。
でもまあ一つみつけたんでそれでいいか・・・ってかんじ

( 以下にある通り、商用でないソフトや、商用でないWEB 上で自由に使っていいとあります。 )


You can use this icons for non-commercial software, forums, websites/blogs/ etc.
Give full credit to sniffels on deviantART !!!


       

大 -> http://sniffels.deviantart.com/art/Friendly-fire-57492084
小 -> http://sniffels.deviantart.com/art/Lil-Joemoes-collection-55436619








posted by at 2008-12-19 00:00 | 資料 | このブログの読者になる | 更新情報をチェックする

2008年12月18日

Flash貼るとFlashVarsが削除されるんですが・・・

プロフィールに貼ったらそうなったので、どこでもそうなるでしょう。

仕方無いので自分のサイトに、Flash だけ貼った HTML を作って、
IFRAME で埋め込みました。

ついでなんで、画像でメールアドレス作って( スパム対策 )
Flash の下に張ると、間が間延びしていたので、position:absolute で位置調整
したら、Flash の下に画像が回りこんでしまいました。

で、embed に、wmode="transparent" を追加して対処。
なんかもう IE は、embed あったら、OBJECT 要素見てないようですが・・・(詳細不明)

↓Flash が手前に来ている例




ところが・・・

wmode="transparent" ( つまり透過 ) を使うと IE でポップアップブロック喰らいます。
透過で?

意味解りません。

自分の環境は、開発にしか使わないのでポップアップブロックは根本的に解除しているので
最初気づかなかったんですが、IE7 による通常 PC によるブラウジングテストをたまにやります。

すると・・・。


で、透過をやめて、DIV の overflow:hidden 使って位置調整したら、

Firefox だけ動作しません。

他全部 OK なのに( IE、Opera、Google )


仕方無いので、JavaScript でクロスブラウジングしました。

詳細は↓
http://winofsql.jp/VA003334/JScript081217165650.htm


posted by at 2008-12-18 00:00 | 資料 | このブログの読者になる | 更新情報をチェックする

2008年12月14日

サイトごとダウンロード(JavaScriptのlocationは無理)

Getleft
※ 現在のダウンロードページ

単純に「技術的な興味」でやりましたが・・

getleft というソフトで Adobe® Flex™ 3 リファレンスガイド をダウンロード してみました。

230 メガもありました・・・
adobe のサイト運営を観察してて、かなり不安なんで今のうちに取っておこうと
真剣に思いましたので 結論として、良いものです。自分が作ったサイトでも、リンクされない余計なものは残りますから、これでやれば余計なファイルは収集されないし、ダウンロードしても、基本は http で読まれる事を想定しているので、技術者向けかもしれません
posted by at 2008-12-14 00:00 | 資料 | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します