1:#!/usr/bin/perl
2:$| = 1; &main_usr_setting; &main_sys_setting; &main_html_output; exit;
3:
4:
5:
6:
7:
8:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9:sub main_usr_setting {
10:#-------------------------------------------------------------------------------------------------------------------------------------------------------
11:open(DATA, "<data.dat");
12:@xp_array = <DATA>;
13:close (DATA);
14:$max_num_of_xp_array = @xp_array;
15:unshift(@xp_array, 'dummy');
16:for ( $i=1; $i<=$max_num_of_xp_array; $i++ ) {
17: $xp_array[$i] =~ s/\r$|\n$//g;
18: @data_line = split(/,/, $xp_array[$i]);
19: $cnt[$i] = $data_line[0];
20: $cmd[$i] = $data_line[1];
21:}
22:
23:
24:
25:$bat_alive_days = 2;
26:
27:$main_dir = 'xp';
28:$main_url = 'http://cres4.com/'.$main_dir.'/';
29:$down_dir = 'download';
30:
31:$button = '設定ファイルを受け取るページへ';
32:$button_in_downloader = '設定ファイルをダウンロード';
33:
34:$title = 'WindowsXP SuperTune';
35:$title_in_downloader = $title . ' > '.$button_in_downloader;
36:
37:
38:
39:$go_home_base_1 = "<div class=menu><br>";
40:$go_home_base_2 = '</div>' . "\r\n\r\n" .
41: '<hr>';
42:$go_home = $go_home_base_1 . $title . $go_home_base_2;
43:$go_home_in_downloader = $go_home_base_1 . "<a href=$main_url>$title</a>" . $go_home_base_2;
44:
45:
46:
47:$footer = <<"here_input_document";
48:<hr>
49:
50:<a href=http://cres4.com/>http://cres4.com/</a><br> 
51:here_input_document
52:
53:
54:
55:$no_link_setting_num = join('|', (91, 90));
56:
57:
58:
59:$title_tr = <<"here_input_document";
60:<tr><td colspan=2 bgcolor=eeeeee>
61:
62:<table cellpadding=3 cellspacing=0 border=0><tr><td>
63:WindowXPを高速化するための設定ファイルを提供しています。
64:このページで設定を選び、次のページで設定ファイルをダウンロードして下さい。
65:設定ファイルの保存場所は問いません。
66:USBメモリなども含めどこに保存しても機能\します。
67:設定ファイルをダブルクリックして、パソ\コンを再起動すれば設定有効です。
68:設定の取り消しにはXPの再インストールが必要です。
69:設定ファイルはレジストリ編集等DOSコマンド記述のバッチファイルです。
70:このページはPerlで書きました(<a href=perl.html>プログラムの現物</a>)。<a href=http://cres4.com/>CRES4</a>
71:</td></tr></table>
72:
73:</td></tr>
74:here_input_document
75:
76:
77:
78:$text_value = "";
79:$check_all = <<"here_input_document";
80:<tr>
81:
82:<td align=center>
83:<script type="text/Javascript">
84:<!--
85:document.write("全<br><input type='checkbox' name='chkmax' onclick='fnc_all_click(this)'>");
86:// -->
87:</script>
88:<noscript>
89: 
90:</noscript>
91:</td>
92:
93:<td bgcolor=eeeeee>
94:設定番号を指定(例:1 2 3、と半角スペースで区切る)<br>
95:<input type="text" name="t" size="30" maxlength="300" value="$text_value">
96:</td>
97:
98:</tr>
99:here_input_document
100:#-------------------------------------------------------------------------------------------------------------------------------------------------------
101:}
102:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
103:
104:
105:
106:
107:
108:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
109:sub pc_print {
110:#-------------------------------------------------------------------------------------------------------------------------------------------------------
111:&print_script;
112:
113:
114:
115:
116:
117:print <<"here_input_document";
118:</head>
119:<body><center>
120:
121:$go_home
122:
123:<form method="post" action="$main_url" name="form_name">
124:<input type="submit" value="$button"><br><br>
125:
126:<table cellpadding=3 cellspacing=0 border=1>
127:$title_tr
128:$check_all
129:here_input_document
130:
131:
132:
133:
134:
135:#▼ループはじめ▼
136:for ( $i=$max_num_of_xp_array; $i>0; $i-- ) {
137: @i = split( / & /, $cmd[$i] );
138: @cmd_lines = @i;
139:
140: #$abandoned_lines = @i - 2;
141: #if ( $i =~ /$no_link_setting_num/ ) {
142: # @cmd_lines = ($i[0], "略(実際の設定ファイルでは、ここにあるべき$abandoned_lines個のコマンドが、省略されないで、ちゃんと含まれます)", $i[-1]);
143: #}
144: #else {
145: # @cmd_lines = @i;
146: #}
147:
148: $last_cmd_lines = @cmd_lines;
149: for ( $ii=0; $ii<=$last_cmd_lines; $ii++ ) {
150: undef($d1); undef($d2); undef(@key); undef(@kr); undef($no_r_TC);
151: $cmd_lines[$ii] =~ s/"HKCU/"HKEY_CURRENT_USER/;
152: $cmd_lines[$ii] =~ s/"HKLM/"HKEY_LOCAL_MACHINE/;
153: $cmd_lines[$ii] =~ s/"HKCR/"HKEY_CLASSES_ROOT/;
154: $cmd_lines[$ii] =~ s/"HKU/"HKEY_USERS/;
155: $cmd_lines[$ii] =~ s/"HKCC/"HKEY_CURRENT_CONFIG/;
156: if ( $cmd_lines[$ii] =~
157: m/
158: reg\
159: ([a-zA-Z]+)
160: \ "
161: ([a-zA-Z0-9\ _{}\-\.\\]*?)
162: ([a-zA-Z0-9\ _{}\-\.]*?)
163: (\\*)
164: ([a-zA-Z0-9\ _{}\-\.]+)
165: \\
166: ([a-zA-Z0-9\ _{}\-\.]+)
167: "
168: (\s?\/?[a-zA-Z]*\s?)
169: ("?[a-zA-Z0-9\ _{}\-\.]*"?)
170: (.*\s?)
171: \/f
172: /x ) {
173:
174: $key[1] = $1; $key[2] = $2; $key[3] = $3; $key[4] = $4; $key[5] = $5; $key[6] = $6; $key[7] = $7; $key[8] = $8; $key[9] = $9;
175:
176: if ( $key[3] ) { $kr[3] = $key[3]; $kr[3] =~ s/ /+/g; $kr[3] = '+%22'.$kr[3].'%22'; }
177: $kr[5] = $key[5]; $kr[5] =~ s/ /+/g; $kr[5] = '+%22'.$kr[5].'%22';
178: if ( $key[5] !~ m/Time Zones|Country List/i ) { $kr[6] = $key[6]; $kr[6] =~ s/ /+/g; $kr[6] = '+%22'.$kr[6].'%22'; } else { $no_r_TC = 1;}
179: if ( $key[8] ) { $key[8] =~ s/^"(.+)"$/$1/; $kr[8] = $key[8]; $kr[8] =~ s/ /+/g; $kr[8] = '+%22'.$kr[8].'%22'; $d1 = '"'; $d2 = '"'; }
180:
181: $g1 = '<a href=http://www.google.co.jp/search?hl=ja&q=Windows+XP'.
182: $kr[3].
183: $kr[5].
184: $kr[6].
185: $kr[8].
186: '&lr=lang_ja target="_blank">';
187: $g2 = '</a>';
188:
189:
190: if ( $no_r_TC ) {
191: $cmd_lines[$ii] =
192: 'reg '.$key[1].' "'.$key[2].$g1.$key[3].$g2.$key[4].$g1.$key[5].$g2.'\\'.$key[6].'"'.$key[7].$d1.$g1.$key[8].$g2.$d2.$key[9].'/f';
193: }
194: else {
195: $cmd_lines[$ii] =
196: 'reg '.$key[1].' "'.$key[2].$g1.$key[3].$g2.$key[4].$g1.$key[5].$g2.'\\'.$g1.$key[6].$g2.'"'.$key[7].$d1.$g1.$key[8].$g2.$d2.$key[9].'/f';
197: }
198: }
199: }
200: $cmd = join('<br>', @cmd_lines);
201: $cmd =~ s/([0-9A-Za-z<>])\\([0-9A-Za-z<>])/$1 \\ $2/g;
202:
203: $cnt = $cnt[$i];
204: $cnt =~ s/([0-9A-Za-z<>])\\([0-9A-Za-z<>])/$1 \\ $2/g;
205: $cnt =~ s/※/<font color=666666>※/g;
206:
207:print <<"here_input_document";
208:
209:<tr>
210:<td align=center><input type="checkbox" name="c" value="$i" onclick="fnc_mbr_click(this)"></td>
211:<td align=left>$i:$cnt<br><font color=cccccc>$cmd</font></td>
212:</tr>
213:
214:here_input_document
215:}
216:#▲ループおわり▲
217:
218:
219:
220:
221:
222:print <<"here_input_document";
223:</table>
224:
225:<br>
226:<input type="submit" value="$button"><br><br>
227:</form>
228:
229:$footer
230:here_input_document
231:#-------------------------------------------------------------------------------------------------------------------------------------------------------
232:}
233:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
234:
235:
236:
237:
238:
239:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
240:sub downloader {
241:#-------------------------------------------------------------------------------------------------------------------------------------------------------
242:print <<"here_input_document";
243:</head>
244:<body><center>
245:
246:$go_home_in_downloader
247:
248:<form action="$bat_url">
249:<input type="submit" value="$button_in_downloader"><br><br>
250:
251:<table cellpadding=3 cellspacing=0 width=100% border=1>
252:<tr><td align=center colspan=3 bgcolor=eeeeee>設定ファイルの概要</td></tr>
253:<tr><td>設定番号</td> <td>@checked</td> <td>左記 $num_of_checked 個の「設定内容」を下で確認してください。</td></tr>
254:<tr><td>制作日時</td> <td>$bat_time_info</td> <td>この設定ファイルを制作した日時。</td></tr>
255:<tr><td>ランダムID</td> <td>$rand_id</td> <td>別の設定ファイルとファイル名が重複しない様、乱数で選んだ英数40字。</td></tr>
256:<tr><td>ファイル名</td> <td>$bat_name</td> <td>日時(百万分の1秒単位)とID(4962無量大数通り※詳細頁末)を含む。</td></tr>
257:<tr><td>ファイルサイズ</td> <td>$bat_sizeバイト</td> <td>「設定ファイルの記述内容」の総文字数でもあります。</td></tr>
258:</table>
259:<br><br><br>
260:here_input_document
261:
262:
263:
264:
265:
266:print <<"here_input_document";
267:<table cellpadding=3 cellspacing=0 width=100% border=1>
268:<tr><td align=center bgcolor=eeeeee>設定内容</td></tr>
269:here_input_document
270:
271:#▼ループはじめ▼
272:for ( $i=0; $i<=$num_of_checked-1; $i++ ) {
273:$cnt_line = $cnt[$checked[$i]];
274:$cnt_line =~ s/<.+?>//g;
275:$cnt_line =~ s/※/<br><font color=666666>※/g;
276:
277:print <<"here_input_document";
278:<tr><td>$checked[$i]:$cnt_line</td></tr>
279:here_input_document
280:}
281:#▲ループおわり▲
282:
283:print <<"here_input_document";
284:</table>
285:<br><br><br>
286:here_input_document
287:
288:
289:
290:
291:
292:print <<"here_input_document";
293:<table cellpadding=3 cellspacing=0 width=100% border=1>
294:<tr><td align=center bgcolor=eeeeee>設定ファイルの記述内容</td></tr>
295:<tr><td><ol>
296:here_input_document
297:
298:open (DATA, "$bat_target" );
299:#▼ループはじめ▼
300:while ( $bat_line = <DATA> ) {
301:$bat_line =~ s/\r$|\n$//g;
302:$bat_line =~ s/<.+?>//g;
303:
304:
305:if ( $bat_line =~ m/^echo ■/ ) { $bat_line =~ s/ / /g; }
306:
307:print "<li>$bat_line</li>";
308:}
309:#▲ループおわり▲
310:close (DATA);
311:
312:print <<"here_input_document";
313:</ol></td></tr>
314:<tr><td bgcolor=eeeeee>
315:設定ファイルをダウンロードしたくない人:この半角換算$bat_size字をテキストファイルで保存し、拡張子「.txt」→「.bat」に変更すれば、
316:今回の設定ファイルと全く同様に機能\します。
317:</td></tr>
318:</table>
319:here_input_document
320:
321:
322:
323:
324:
325:print <<"here_input_document";
326:<br>
327:<input type="submit" value="$button_in_downloader"><br><br>
328:</form>
329:
330:<div align=left>
331:※ランダムIDの組合せは、62の40乗で(「小文字26字+大文字26字+数字10字=合計62字」の40桁で)、<br>
332:三桁区切りなら、「496、212、362、459、367、066、914、366、580、195、701、544、604、991、251、555、593、230、875、525、121、862、270、976」通りです。<br>
333:四桁区切りなら、「4962無量大数(むりょうたいすう) 1236不可思議(ふかしぎ) 2459那由他(なゆた) 3670阿僧祇(あそうぎ) 6691恒河沙(ごうがしゃ) 4366極(ごく)
334:5801載(さい) 9570正(せい) 1544澗(かん) 6049溝(こう) 9125穰(じょう) 1555禾予\(し) 5932垓(がい) 3087京(けい) 5525兆1218億6227万0976」通りです。
335:</div>
336:<br>
337:
338:$footer
339:here_input_document
340:#-------------------------------------------------------------------------------------------------------------------------------------------------------
341:}
342:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
343:
344:
345:
346:
347:
348:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
349:sub main_html_output {
350:#-------------------------------------------------------------------------------------------------------------------------------------------------------
351:print <<"here_input_document";
352:Content-Type:text/html
353:Pragma: no-cache
354:Cache-Control: no-cache
355:Expires: Thu, 01 Dec 1994 16:00:00 GMT
356:
357:<html lang="ja">
358:
359:<head>
360:<title>$head_title</title>
361:<link rel="stylesheet" type="text/css" href="../for_mobile.css">
362:<meta name=robots content=noarchive,nosnippet>
363:<meta http-equiv="pragma" content="no-cache">
364:<meta http-equiv="cache-control" content="no-cache">
365:<meta http-equiv="expires" content="thu, 01 dec 1994 16:00:00 gmt">
366:<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
367:here_input_document
368:
369:$kt_pattern = join('|', ('docomo','kddi','softbank','vodafone','j-phone','ezweb','ido','jig','transcoder'));
370:if ( $ENV{'HTTP_USER_AGENT'} =~ m/$kt_pattern/i ) {
371: &kt_print;
372: }
373:elsif ( $pushed ) {
374: &downloader;
375: }
376:else {
377: &pc_print;
378: }
379:
380:print <<'here_input_document';
381:</center></body></html>
382:here_input_document
383:#-------------------------------------------------------------------------------------------------------------------------------------------------------
384:}
385:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
386:
387:
388:
389:
390:
391:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
392:sub kt_print {
393:#-------------------------------------------------------------------------------------------------------------------------------------------------------
394:print <<"here_input_document";
395:</head>
396:<body><center>
397:<br>
398:$title<br><br>
399:<table cellpadding=0 cellspacing=0 border=1>
400:here_input_document
401:
402:
403:
404:
405:
406:#▼ループはじめ▼
407:for ( $i=$max_num_of_xp_array; $i>0; $i-- ) {
408:$cnt[$i] =~ s/<.+?>//g;
409:
410:print <<"here_input_document";
411:<tr>
412:<td align=right nowrap>$i</td>
413:<td>$cnt[$i]</td>
414:</tr>
415:here_input_document
416:}
417:#▲ループおわり▲
418:
419:
420:
421:
422:
423:print <<'here_input_document';
424:</table>
425:<br>
426:<a href=http://cres4.com/>HOME</a>
427:here_input_document
428:#-------------------------------------------------------------------------------------------------------------------------------------------------------
429:}
430:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
431:
432:
433:
434:
435:
436:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
437:sub main_sys_setting {
438:#-------------------------------------------------------------------------------------------------------------------------------------------------------
439:read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
440:
441:$buffer =~ s/^chkmax=on&//;
442:$buffer =~ s/^t=//;
443:
444:@checked = split(/&c=/, $buffer);
445:
446:@texted = split(/\+/, shift(@checked));
447:for ( $i=0; $i<@texted; $i++ ) {
448: if ( ( $texted[$i] =~ m/\D/ ) || ( $texted[$i] < 1 ) || ( $max_num_of_xp_array < $texted[$i] ) ) { splice(@texted, $i, 1); $i--; }
449: }
450:
451:unshift(@checked, @texted);
452:@checked = grep(!$tmp{$_}++, @checked);
453:@checked = sort {$b <=> $a} @checked;
454:
455:if ( @checked ) {
456: $head_title = $title_in_downloader;
457: $pushed = 'yes';
458: &make_bat;
459: }
460:else {
461: $head_title = $title;
462: &bat_killer;
463: }
464:#-------------------------------------------------------------------------------------------------------------------------------------------------------
465:}
466:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
467:
468:
469:
470:
471:
472:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
473:sub bat_killer {
474:#-------------------------------------------------------------------------------------------------------------------------------------------------------
475:if ( -d "$down_dir" ) {
476: @bat_exist = glob("${down_dir}/*.*");
477: $bat_alive_seconds = $bat_alive_days * 24 * 60 * 60;
478: $length_down_dir = length($down_dir);
479:
480: ($sec, $min, $hour, $day, $mon, $year) = (localtime(time()))[0,1,2,3,4,5];
481: $year -= 100;
482: $mon += 1;
483: $a1 = $year * 12 * 30 * 24 * 60 * 30;
484: $a2 = $mon * 30 * 24 * 60 * 60;
485: $a3 = $day * 24 * 60 * 60;
486: $a4 = $hour * 60 * 60;
487: $a5 = $min * 60;
488: $a6 = $sec ;
489: $a_total = $a1 + $a2 + $a3 + $a4 + $a5 + $a6;
490:
491: for ( $i=0; $i<@bat_exist; $i++ ) {
492: $b1 = substr($bat_exist[$i], ($length_down_dir + 4), 2) * 12 * 30 * 24 * 60 * 30;
493: $b2 = substr($bat_exist[$i], ($length_down_dir + 6), 2) * 30 * 24 * 60 * 60;
494: $b3 = substr($bat_exist[$i], ($length_down_dir + 8), 2) * 24 * 60 * 60;
495: $b4 = substr($bat_exist[$i], ($length_down_dir + 11), 2) * 60 * 60;
496: $b5 = substr($bat_exist[$i], ($length_down_dir + 13), 2) * 60;
497: $b6 = substr($bat_exist[$i], ($length_down_dir + 15), 2) ;
498: $b_total = $b1 + $b2 + $b3 + $b4 + $b5 + $b6;
499:
500: if ( $a_total - $b_total > $bat_alive_seconds ) { unlink("$bat_exist[$i]"); }
501: }
502:}
503:#-------------------------------------------------------------------------------------------------------------------------------------------------------
504:}
505:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
506:
507:
508:
509:
510:
511:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
512:sub make_bat {
513:#-------------------------------------------------------------------------------------------------------------------------------------------------------
514:$rand_id = rand_generator(40,'a-zA-Z0-9');
515:
516:sub rand_generator{
517:$str_len = shift;
518:$char_type = shift;
519:
520:@chars;
521:push @chars, ('a'..'z') if $char_type =~ /a-z/;
522:push @chars, ('A'..'Z') if $char_type =~ /A-Z/;
523:push @chars, (0..9) if $char_type =~ /0-9/;
524:
525:$rand_str = '';
526:$rand_str .= $chars[int(rand($#chars+1))] for (1..$str_len);
527:
528:return $rand_str;
529:}
530:
531:use Time::HiRes qw(gettimeofday);
532:($i, $microsec) = gettimeofday;
533:
534:($sec, $min, $hour, $day, $mon, $year) = (localtime(time()))[0,1,2,3,4,5];
535:
536:$time = sprintf("%02d%02d%02d_%02d%02d%02d_%06d", $year-100,$mon+1,$day,$hour,$min,$sec,$microsec);
537:
538:$bat_time_info = sprintf("%02d年%02d月%02d日%02d時%02d分%02d秒%06dマイクロ秒", $year+1900,$mon+1,$day,$hour,$min,$sec,$microsec);
539:
540:$bat_name_no_kaku = 'XP-'.$time.'-'.$rand_id;
541:
542:$bat_name = $bat_name_no_kaku.'.bat';
543:
544:
545:
546:
547:
548:$num_of_checked = @checked;
549:
550:$new_num_of_checked = '〜 '.$num_of_checked.' 個の設定終了 〜';
551:
552:$bat_comment =
553:(' ' x ((72 - length($new_num_of_checked)) % 2)) .
554:(' ' x int((72 - length($new_num_of_checked)) / 2)) .
555: $new_num_of_checked .
556:(' ' x int((72 - length($new_num_of_checked)) / 2)) .
557:'';
558:
559:$checked_for_bat = join(" ", @checked);
560:
561:$bat = '@echo off'."\r\n\r\n";
562:$bat .= 'REM 設定番号:'.$checked_for_bat."\r\n\r\n";
563:
564:#▼ループはじめ▼
565:for ( $i=0; $i<@checked; $i++ ) {
566:$cnt_line = $cnt[$checked[$i]];
567:$cnt_line =~ s/<.+?>//g;
568:
569:$bat .= 'echo '.$checked[$i].':'.$cnt_line."\r\n";
570:
571:$cmd[$checked[$i]] =~ s/ & /\r\n/g;
572:$bat .= $cmd[$checked[$i]]."\r\n";
573:
574:$bat .= 'echo ------------------------------------------------------------------------------'."\r\n\r\n";
575:
576:}
577:#▲ループおわり▲
578:
579:$bat .=
580: 'echo;'."\r\n".
581: 'echo ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■'."\r\n".
582: 'echo ■ ■'."\r\n".
583: 'echo ■ ■'."\r\n".
584: 'echo ■ WindowsXP SuperTune ■'."\r\n".
585: 'echo ■' .$bat_comment. '■'."\r\n".
586: 'echo ■ ■'."\r\n".
587: 'echo ■ ■'."\r\n".
588: 'echo ■ 以下の操作をして下さい。 ■'."\r\n".
589: 'echo ■ 1:ウィンドウ右上「閉じる(×)」ボタンでこの窓を消す ■'."\r\n".
590: 'echo ■ 2:パソコン再起動=終了処理中に全設定が本登録されます ■'."\r\n".
591: 'echo ■ ■'."\r\n".
592: 'echo ■ ■'."\r\n".
593: 'echo ■ ■'."\r\n".
594: 'echo ■ 制作日時:'.$bat_time_info. ' ■'."\r\n".
595: 'echo ■ ランダムID:'.$rand_id. ' ■'."\r\n".
596: 'echo ■ ■'."\r\n".
597: 'echo ■ ■'."\r\n".
598: 'echo ■ ■'."\r\n".
599: 'echo ■ CRES4 ■'."\r\n".
600: 'echo ■ http://cres4.com/ ■'."\r\n".
601: 'echo ■ ■'."\r\n".
602: 'echo ■ ■'."\r\n".
603: 'echo ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■'."\r\n".
604: "\r\n".
605: 'pause'.
606: '';
607:
608:mkdir "$down_dir", 0701;
609:
610:$bat_target = $down_dir.'/'.$bat_name;
611:open (DATA, ">$bat_target" );
612:print DATA $bat;
613:close (DATA);
614:chmod 0704, "$bat_target";
615:
616:$bat_size = -s "$down_dir/$bat_name";
617:$bat_url = "http://cres4.com/$main_dir/$down_dir/$bat_name";
618:#-------------------------------------------------------------------------------------------------------------------------------------------------------
619:}
620:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
621:
622:
623:
624:
625:
626:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
627:sub print_script {
628:#-------------------------------------------------------------------------------------------------------------------------------------------------------
629:print <<'here_input_document';
630:<script language="JavaScript">
631:<!--
632:function fnc_all_click(objAll){
633: for(var i=0;i<document.form_name.length;i++){
634: if(document.form_name[i].type=="checkbox"){
635: document.form_name[i].checked = objAll.checked;
636: }
637: }
638:}
639:function fnc_mbr_click(objMbr){
640: if(objMbr.checked == false){
641: document.form_name.chkmax.checked = false;
642: return;
643: }
644: for(var i=0;i<document.form_name.length;i++){
645: if(document.form_name[i].type=="checkbox"){
646: if(document.form_name[i].checked==false
647: &&
648: document.form_name[i].name!="chkmax"){
649: return;
650: }
651: }
652: }
653: document.form_name.chkmax.checked = true;
654:}
655://-->
656:</script>
657:here_input_document
658:#-------------------------------------------------------------------------------------------------------------------------------------------------------
659:}
660:#///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////