<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>技術情報ブログ</title>
	<atom:link href="http://tecblog.oarts.jp/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://tecblog.oarts.jp</link>
	<description>Posted by Oriental Arts</description>
	<lastBuildDate>Wed, 26 Sep 2012 03:11:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ACMSまとめメモ</title>
		<link>http://tecblog.oarts.jp/?p=48</link>
		<comments>http://tecblog.oarts.jp/?p=48#comments</comments>
		<pubDate>Wed, 26 Sep 2012 03:11:25 +0000</pubDate>
		<dc:creator>oaito</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[ACMS]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=48</guid>
		<description><![CDATA[ACMSの調査した結果のメモです。
誤り等を見つけたらお知らせください。
1.ACMS B2B
　・企業内外のアプリケーション／システムをシームレスに統合するACMS E2X に対し、
　　企業間連携機能に特化したB2Bサーバ（ACMS E2Xへのスケールアップも容易）
　・Javaによりプラットフォームフリー(Webコンテナで動作)
　・１ファイル送受信、複数ファイルの一括送受信、同報送信／一斉受信等が可能
　・バッチ、シェル、ユーザ作成プログラムおよびＪＯＢ等の実行が可能
　・ジョブ実行制御
　　1) データ交換（AnyTranと同等機能）と連動したジョブ実行制御
2) EDIに必要なデータ編集機能を標準提供
3) GUI画面によるジョブ定義
　　4）受信完了時の業務アプリーケーションとの連携
　　5) 送達通知による業務アプリーケーションとの連携
　 6) 通信終了（正常／異常）に業務アプリケーションの実行が可能
　 7) 運用スケジューリング
　・運用監視ツールとの連携
　・サポート通信プロトコル
　　1) 全銀
　　2) ＪＣＡ
　　3) 全銀TCP/IP
　　4) INET-Z
　　5) ＦＴＰ手順
　　6) HTTP手順
　　7) RosettaNet
　　8) Chem eStandards
　　9) ebXML MS(ECALGA)
　　10) ebXML MS 3.0(JEITA)
　　11) ebXML MS(流通BMS)
　　12) ebXML MS(NACCS)
　　13) EDIINT AS2
　　14) JX手順
　　15) BACREX手順
　　16) メールEDI
　　17) ACMS WebAgent
　　18) ACMS Web/deTradeⅡ
　・内部連携機能サポートアダプタ
　　1) SAP R/3EDIｱﾀﾞﾌﾟﾀ
　　2) SAP R/3JCOｱﾀﾞﾌﾟﾀ
　　3) MQｱﾀﾞﾌﾟﾀ
　　4) RDB連携機能
　　5) FAX連携
　・ブラウザ操作の自動化、ファイル転送型のWeb-EDIサイト構築（ACMS WebAgent同等、ACMS Web/deTradeⅡ）
2.ACMS E2X
・拡張企業モデルの統合データ・エクスチェンジ・ソリューション
　・企業内外のアプリケーション／システムをシームレスに統合
　・B2BソリューションとEAIソリューションの連携から統合
　・ACMS B2Bに以下の機能が追加されている
　　1) ミッションクリティカルな要件にも対応。 一部のサーバに障害が発生しても、
　　　 残りのサーバが自動縮退運転
2) 全てのサーバを一台で監視できる統合運用が可能
3.ACMS [...]]]></description>
			<content:encoded><![CDATA[<p>ACMSの調査した結果のメモです。<br />
誤り等を見つけたらお知らせください。</p>
<p>1.ACMS B2B<br />
　・企業内外のアプリケーション／システムをシームレスに統合するACMS E2X に対し、<br />
　　企業間連携機能に特化したB2Bサーバ（ACMS E2Xへのスケールアップも容易）<br />
　・Javaによりプラットフォームフリー(Webコンテナで動作)<br />
　・１ファイル送受信、複数ファイルの一括送受信、同報送信／一斉受信等が可能<br />
　・バッチ、シェル、ユーザ作成プログラムおよびＪＯＢ等の実行が可能<br />
　・ジョブ実行制御<br />
　　1) データ交換（AnyTranと同等機能）と連動したジョブ実行制御<br />
2) EDIに必要なデータ編集機能を標準提供<br />
3) GUI画面によるジョブ定義<br />
　　4）受信完了時の業務アプリーケーションとの連携<br />
　　5) 送達通知による業務アプリーケーションとの連携<br />
　 6) 通信終了（正常／異常）に業務アプリケーションの実行が可能<br />
　 7) 運用スケジューリング<br />
　・運用監視ツールとの連携<br />
　・サポート通信プロトコル<br />
　　1) 全銀<br />
　　2) ＪＣＡ<br />
　　3) 全銀TCP/IP<br />
　　4) INET-Z<br />
　　5) ＦＴＰ手順<br />
　　6) HTTP手順<br />
　　7) RosettaNet<br />
　　8) Chem eStandards<br />
　　9) ebXML MS(ECALGA)<br />
　　10) ebXML MS 3.0(JEITA)<br />
　　11) ebXML MS(流通BMS)<br />
　　12) ebXML MS(NACCS)<br />
　　13) EDIINT AS2<br />
　　14) JX手順<br />
　　15) BACREX手順<br />
　　16) メールEDI<br />
　　17) ACMS WebAgent<br />
　　18) ACMS Web/deTradeⅡ<br />
　・内部連携機能サポートアダプタ<br />
　　1) SAP R/3EDIｱﾀﾞﾌﾟﾀ<br />
　　2) SAP R/3JCOｱﾀﾞﾌﾟﾀ<br />
　　3) MQｱﾀﾞﾌﾟﾀ<br />
　　4) RDB連携機能<br />
　　5) FAX連携<br />
　・ブラウザ操作の自動化、ファイル転送型のWeb-EDIサイト構築（ACMS WebAgent同等、ACMS Web/deTradeⅡ）</p>
<p>2.ACMS E2X<br />
・拡張企業モデルの統合データ・エクスチェンジ・ソリューション<br />
　・企業内外のアプリケーション／システムをシームレスに統合<br />
　・B2BソリューションとEAIソリューションの連携から統合<br />
　・ACMS B2Bに以下の機能が追加されている<br />
　　1) ミッションクリティカルな要件にも対応。 一部のサーバに障害が発生しても、<br />
　　　 残りのサーバが自動縮退運転<br />
2) 全てのサーバを一台で監視できる統合運用が可能</p>
<p>3.ACMS Lite Neo<br />
　・中小規模システム向けのEDIクライアント・ソフトウェア<br />
　　　　　・全銀TCP/IP手順(パソコン手順)、JX手順クライアント<br />
　・通信と各種アプリケーションを組合せて、業務フローの構築が可能<br />
　・フロー毎の運用カレンダーによる定期的なデータ交換が可能<br />
　・フォーマット変換（AnyTranと同等機能）<br />
　・.NET Framework 3.5 SP1で動作<br />
　<br />
4.ACMS/WS<br />
　・WindowsベースのPOS端末やEDIシステムなどに、全銀TCP/P手順（※拡張Z手順準拠）による<br />
　　データ交換機能を実装するファイル転送ツール<br />
　・ACMS E2X、ACMS B2B等とのファイルの送受信<br />
　・集配信用のAPIを提供</p>
<p>5.ACMS WebAgent<br />
　・Web-EDIでの人によるブラウザ操作の手間を省き、運用コストを削減するツール<br />
　　取引先サイトへの接続からログイン、取引データの受け渡しなど、Web-EDIでの<br />
　　一連のブラウザ操作を自動化。基幹システムとの連携も自動化が可能<br />
　・ECMAスクリプトを元にブラウザ（Internet Explorer）を起動・制御し、操作を自動実行<br />
　・ECMAスクリプトはScript Studio（オプション製品）で作成<br />
　・対応するデータ交換の形態<br />
　　1) ファイル交換型<br />
・ファイルのダウンロード／アップロードにより取引データを交換する形態<br />
2) 伝票表示型<br />
・基幹システムなどからデータを取引先画面に埋め込む形態<br />
　（インタラクティブにデータ入力を必要とする場合）<br />
・取引先画面から必要とする取引データを抽出する形態</p>
<p>6.AnyTran<br />
　・汎用（Any to Any）フォーマット変換ツール<br />
　・サポートフォーマット<br />
　　1) UN/EDIFACT（JEDICOS,JAMA等）<br />
　　2) CII（EIAJ,JTRN,HWSW,JPCA等）<br />
　　3) XML（RosettaNet,cXML,流通BMS等）<br />
　　4) フラットファイル<br />
　　5) 固定長（JD-NET,E-VANなど）<br />
　　6) 可変長（CSVなど）<br />
　　7) SAP R/3 IDoc<br />
　　8) X.12<br />
　　9) データベース(SQLServer、Oracle、DB2、MySQL、Symfoware)<br />
　・構成<br />
　　　　　　1) 変換定義ツール（AnyMapper/動作環境:Windows）<br />
　　　 Windows ベースのGUIを利用したフォーマット変換定義（マッピング）ツール<br />
　　　 a.変換定義<br />
　　　　・入力フォーマット定義<br />
　　　　・出力フォーマット定義<br />
・入出力項目の対応付け<br />
　　　 b.定義シンタックス・チェック<br />
c.変換テスト<br />
2) 変換エンジン（AnyTranR/動作環境:JavaVM）<br />
a.変換定義に従ったフォーマット変換機能</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=48</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GAE環境での文字コードの扱い</title>
		<link>http://tecblog.oarts.jp/?p=35</link>
		<comments>http://tecblog.oarts.jp/?p=35#comments</comments>
		<pubDate>Mon, 25 Jan 2010 03:18:49 +0000</pubDate>
		<dc:creator>oakita</dc:creator>
				<category><![CDATA[GAE/j]]></category>
		<category><![CDATA[クラウド]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=35</guid>
		<description><![CDATA[Stringクラスの漢字などの内容をbyteとして取り出そうとすると
普通はデフォルト文字コードで取出しが出来るのですが、GAE環境では何故かデフォルトは無いらしく（クラウド環境なので&#8230;）常にエンコードを指定しなければ
３ｆ３ｆ３ｆ３ｆ等の文字になります、
しかも入りも出も両方必要です。
]]></description>
			<content:encoded><![CDATA[<p>Stringクラスの漢字などの内容をbyteとして取り出そうとすると</p>
<p>普通はデフォルト文字コードで取出しが出来るのですが、GAE環境では何故かデフォルトは無いらしく（クラウド環境なので&#8230;）常にエンコードを指定しなければ</p>
<p>３ｆ３ｆ３ｆ３ｆ等の文字になります、</p>
<p>しかも入りも出も両方必要です。</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=35</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GAE/j パッケージの変更</title>
		<link>http://tecblog.oarts.jp/?p=32</link>
		<comments>http://tecblog.oarts.jp/?p=32#comments</comments>
		<pubDate>Tue, 12 Jan 2010 09:24:58 +0000</pubDate>
		<dc:creator>oakita</dc:creator>
				<category><![CDATA[GAE/j]]></category>
		<category><![CDATA[クラウド]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=32</guid>
		<description><![CDATA[GAE/j 環境でクラスのパッケージを変更してアップロードするとExceptionが発生します。
AppVersionHandlerMap何かこのクラスが怪しいそうだけど
何をしているのか判らないので&#8230;
GAEの環境では決してクラスのパッケージ変更をしないほうが
良いみたいです、何故か、パッケージを変更すると動作しなくなる為
Exceptionで以下のクラスが出現したら、パッケージ構成を元に戻しましょう。
 com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
 以上
]]></description>
			<content:encoded><![CDATA[<p>GAE/j 環境でクラスのパッケージを変更してアップロードするとExceptionが発生します。</p>
<p>AppVersionHandlerMap何かこのクラスが怪しいそうだけど</p>
<p>何をしているのか判らないので&#8230;</p>
<p>GAEの環境では決してクラスのパッケージ変更をしないほうが<br />
良いみたいです、何故か、パッケージを変更すると動作しなくなる為<br />
Exceptionで以下のクラスが出現したら、パッケージ構成を元に戻しましょう。<br />
 com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle</p>
<p> 以上</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GAE/j datastore-indexes.xml について</title>
		<link>http://tecblog.oarts.jp/?p=29</link>
		<comments>http://tecblog.oarts.jp/?p=29#comments</comments>
		<pubDate>Tue, 12 Jan 2010 02:41:26 +0000</pubDate>
		<dc:creator>oakita</dc:creator>
				<category><![CDATA[GAE/j]]></category>
		<category><![CDATA[クラウド]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=29</guid>
		<description><![CDATA[datastore-indexes.xml について
日本語と英語のマニュアルで違いがあります。
日本語マニュアルではdatastore-indexes.xmlの中身が
以下のようになっていて開発環境では成功しますが
クラウド環境ではアップロード時に失敗します。
日本語マニュアル、一部抜粋
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
&#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&#62;
&#60;datastore-indexes
  xmlns=&#8221;http://appengine.google.com/ns/datastore-indexes/1.0&#8221;
  autoGenerate=&#8221;true&#8221;&#62;
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
英語マニュアル、一部抜粋
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
&#60;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&#62;
&#60;datastore-indexes
  autoGenerate=&#8221;true&#8221;&#62;
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 
英語のマニュアルを見ざるを得ないみたいですね～～
以上
]]></description>
			<content:encoded><![CDATA[<p>datastore-indexes.xml について<br />
日本語と英語のマニュアルで違いがあります。</p>
<p>日本語マニュアルではdatastore-indexes.xmlの中身が<br />
以下のようになっていて開発環境では成功しますが<br />
クラウド環境ではアップロード時に失敗します。</p>
<p>日本語マニュアル、一部抜粋<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<!--l version="1.0" encoding="utf-8-->&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;datastore-indexes<br />
  xmlns=&#8221;<a href="http://appengine.google.com/ns/datastore-indexes/1.0">http://appengine.google.com/ns/datastore-indexes/1.0</a>&#8221;<br />
  autoGenerate=&#8221;true&#8221;&gt;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>英語マニュアル、一部抜粋<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;datastore-indexes<br />
  autoGenerate=&#8221;true&#8221;&gt;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; <br />
英語のマニュアルを見ざるを得ないみたいですね～～</p>
<p>以上</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=29</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>java byte配列コピー２</title>
		<link>http://tecblog.oarts.jp/?p=24</link>
		<comments>http://tecblog.oarts.jp/?p=24#comments</comments>
		<pubDate>Thu, 24 Dec 2009 06:47:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[言語]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=24</guid>
		<description><![CDATA[Systemに何故かcopyメソッドが存在？
System.arraycopy(src, 0, dst, count, len);
]]></description>
			<content:encoded><![CDATA[<p>Systemに何故かcopyメソッドが存在？</p>
<p>System.arraycopy(src, 0, dst, count, len);</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>java byte配列のコピー</title>
		<link>http://tecblog.oarts.jp/?p=13</link>
		<comments>http://tecblog.oarts.jp/?p=13#comments</comments>
		<pubDate>Wed, 23 Dec 2009 17:50:15 +0000</pubDate>
		<dc:creator>oakita</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[言語]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=13</guid>
		<description><![CDATA[FileInputStream fis=null;
  try {
   fis = new FileInputStream(fileName);
 
   int count = 0;
   int len;
   byte [] src = new byte[1024];
   try {
 while ((len = fis.read(dst, count, len )) != 0) {  // 読み込み
  count+=len;
 }
   } catch (IOException e) {
    e.printStackTrace();
   }
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }finally{
   try {
    if(fis != null) {
     fis.close();
    }
   [...]]]></description>
			<content:encoded><![CDATA[<p>FileInputStream fis=null;<br />
  try {<br />
   fis = new FileInputStream(fileName);<br />
 <br />
   int count = 0;<br />
   int len;<br />
   byte [] src = new byte[1024];<br />
   try {</p>
<p> while ((len = fis.read(dst, count, len )) != 0) {  // 読み込み<br />
  count+=len;<br />
 }<br />
   } catch (IOException e) {<br />
    e.printStackTrace();<br />
   }<br />
  } catch (FileNotFoundException e) {<br />
   e.printStackTrace();<br />
  }finally{<br />
   try {<br />
    if(fis != null) {<br />
     fis.close();<br />
    }<br />
   } catch (IOException e) {<br />
    e.printStackTrace();<br />
   }<br />
  }</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=13</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VB.NET2005でプリンターの設定</title>
		<link>http://tecblog.oarts.jp/?p=10</link>
		<comments>http://tecblog.oarts.jp/?p=10#comments</comments>
		<pubDate>Wed, 23 Dec 2009 17:49:16 +0000</pubDate>
		<dc:creator>oakita</dc:creator>
				<category><![CDATA[．ＮＥＴ]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=10</guid>
		<description><![CDATA[ 
 
 
Imports System.Drawing.Printing
Imports System.Runtime.InteropServices
Imports System.ComponentModel
Public Class PrnDrvClass
    &#8216; Constants for DEVMODE
    Dim CCHFORMNAME As Integer = 32
    Dim CCHDEVICENAME As Integer = 32
    &#8216; Constants for PRINTER_DEFAULTS.DesiredAccess
    Dim PRINTER_ACCESS_ADMINISTER As Integer = &#38;H4
    Dim PRINTER_ACCESS_USE As Integer = &#38;H8
    Dim STANDARD_RIGHTS_REQUIRED As Integer = &#38;HF0000
    Dim PRINTER_ALL_ACCESS As Integer = (STANDARD_RIGHTS_REQUIRED Or _
      PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
    [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p> </p>
<p> <br />
Imports System.Drawing.Printing<br />
Imports System.Runtime.InteropServices<br />
Imports System.ComponentModel</p>
<p>Public Class PrnDrvClass</p>
<p>    &#8216; Constants for DEVMODE<br />
    Dim CCHFORMNAME As Integer = 32<br />
    Dim CCHDEVICENAME As Integer = 32</p>
<p>    &#8216; Constants for PRINTER_DEFAULTS.DesiredAccess<br />
    Dim PRINTER_ACCESS_ADMINISTER As Integer = &amp;H4<br />
    Dim PRINTER_ACCESS_USE As Integer = &amp;H8<br />
    Dim STANDARD_RIGHTS_REQUIRED As Integer = &amp;HF0000<br />
    Dim PRINTER_ALL_ACCESS As Integer = (STANDARD_RIGHTS_REQUIRED Or _<br />
      PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)</p>
<p>    &#8216; Constants for DocumentProperties() call<br />
    Dim DM_MODIFY As Integer = 8<br />
    &#8216;  Dim DM_IN_BUFFER As Integer = DM_MODIFY<br />
    Dim DM_COPY As Integer = 2<br />
    &#8216; Dim DM_OUT_BUFFER As Integer = DM_COPY</p>
<p>    &#8216; Custom constants for this sample&#8217;s SelectForm function<br />
    Dim FORM_NOT_SELECTED As Integer = 0<br />
    Dim FORM_SELECTED As Integer = 1<br />
    Dim FORM_ADDED As Integer = 2</p>
<p>    &#8216; ユーザー定義の用紙を示す定数の宣言<br />
    Dim FORM_USER As Int32 = &amp;H0&amp;</p>
<p>    &#8216;/* orientation selections */<br />
    Dim DMORIENT_PORTRAIT As Short = 1<br />
    Dim DMORIENT_LANDSCAPE As Short = 2</p>
<p>    Dim DMPAPER_USER As Integer = 256<br />
    &#8216;/* field selection bits */</p>
<p>    &#8216;    Dim DM_ORIENTATION As Integer = &amp;H1&amp;<br />
    Dim DM_FORMNAME As Integer = &amp;H10000<br />
    Dim DM_ORIENTATION As Integer = &amp;H1<br />
    Dim DM_PAPERSIZE As Integer = &amp;H2<br />
    Dim DM_PAPERLENGTH As Integer = &amp;H4<br />
    Dim DM_PAPERWIDTH As Integer = &amp;H8<br />
    Dim DM_SCALE As Integer = &amp;H10<br />
    Dim DM_DEFAULTSOURCE As Integer = &amp;H200<br />
    Dim DMPAPER_A3 As Short = 8 &#8216; /* A3 297 x 420 mm                    */<br />
    Dim DMPAPER_A4 As Short = 9  &#8216;/* A4 210 x 297 mm                    */<br />
    Dim DMPAPER_A4SMALL As Short = 10  &#8216;/* A4 Small 210 x 297 mm              */<br />
    Dim DMPAPER_A5 As Short = 11  &#8216;/* A5 148 x 210 mm                    */<br />
    Dim DMPAPER_B4 As Short = 12  &#8216;/* B4 (JIS) 250 x 354                 */<br />
    Dim DMPAPER_B5 As Short = 13  &#8216;/* B5 (JIS) 182 x 257 mm              */</p>
<p>    &#8216;DocumentProperties Use<br />
    Private Const DM_OUT_BUFFER As Short = 2<br />
    Private Const DM_PROMPT As Short = 4<br />
    Private Const DM_IN_PROMPT As Short = DM_PROMPT<br />
    Private Const DM_IN_BUFFER As Short = 8</p>
<p>    &#8216;幅と高さを定義する構造体の宣言<br />
    &lt;StructLayout(LayoutKind.Sequential)&gt; _<br />
    Public Structure SIZEL<br />
        Public cx As Int32<br />
        Public cy As Int32<br />
    End Structure</p>
<p>    &#8216;矩形を定義する構造体の宣言<br />
    &lt;StructLayout(LayoutKind.Sequential)&gt; _<br />
    Public Structure RECTL<br />
        Public left As Int32<br />
        Public top As Int32<br />
        Public right As Int32<br />
        Public bottom As Int32<br />
    End Structure</p>
<p>    Public Structure PRINTER_DEFAULTS<br />
        &#8216;      Dim pDatatype As String<br />
        &#8216;      Dim pDevMode As IntPtr    &#8216; DEVMODE<br />
        &#8216;      Dim DesiredAccess As Long<br />
        Dim pDatatype As IntPtr<br />
        Dim pDevMode As IntPtr    &#8216; DEVMODE<br />
        Dim DesiredAccess As Long<br />
    End Structure</p>
<p>    &#8216;FORM_INFO_1 (用紙情報を定義する構造体)<br />
    &lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)&gt; _<br />
    Public Structure FORM_INFO_1<br />
        &lt;MarshalAs(UnmanagedType.I4)&gt; Public Flags As Int32<br />
        &lt;MarshalAs(UnmanagedType.LPTStr)&gt; Public pName As String<br />
        Public Size As SIZEL<br />
        Public ImageableArea As RECTL<br />
    End Structure</p>
<p>    &lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)&gt; _<br />
    Public Structure PRINTER_INFO_2<br />
        Public pServerName As String<br />
        Public pPrinterName As String<br />
        Public pShareName As String<br />
        Public pPortName As String<br />
        Public pDriverName As String<br />
        Public pComment As String<br />
        Public pLocation As String<br />
        Public pDevMode As IntPtr<br />
        Public pSepFile As String<br />
        Public pPrintProcessor As String<br />
        Public pDatatype As String<br />
        Public pParameters As String<br />
        Public pSecurityDescriptor As IntPtr<br />
        Public Attributes As System.UInt32<br />
        Public Priority As System.UInt32<br />
        Public DefaultPriority As System.UInt32<br />
        Public StartTime As System.UInt32<br />
        Public UntilTime As System.UInt32<br />
        Public Status As System.UInt32<br />
        Public cJobs As System.UInt32<br />
        Public AveragePPM As System.UInt32<br />
    End Structure<br />
    &lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)&gt; _<br />
     Public Class DEVMODE<br />
        &lt;MarshalAs(UnmanagedType.ByValTStr, sizeconst:=&amp;H20)&gt; _<br />
        Public dmDeviceName As String<br />
        Public dmSpecVersion As Short<br />
        Public dmDriverVersion As Short<br />
        Public dmSize As Short<br />
        Public dmDriverExtra As Short<br />
        Public dmFields As Integer<br />
        Public dmOrientation As Short<br />
        Public dmPaperSize As Short<br />
        Public dmPaperLength As Short<br />
        Public dmPaperWidth As Short<br />
        Public dmScale As Short<br />
        Public dmCopies As Short<br />
        Public dmDefaultSource As Short<br />
        Public dmPrintQuality As Short<br />
        Public dmColor As Short<br />
        Public dmDuplex As Short<br />
        Public dmYResolution As Short<br />
        Public dmTTOption As Short<br />
        Public dmCollate As Short<br />
        &lt;MarshalAs(UnmanagedType.ByValTStr, SizeConst:=&amp;H20)&gt; _<br />
        Public dmFormName As String<br />
        Public dmLogPixels As Short<br />
        Public dmBitsPerPel As Integer<br />
        Public dmPelsWidth As Integer<br />
        Public dmPelsHeight As Integer<br />
        Public dmDisplayFlags As Integer<br />
        Public dmDisplayFrequency As Integer<br />
        Public dmICMMethod As Integer<br />
        Public dmICMIntent As Integer<br />
        Public dmMediaType As Integer<br />
        Public dmDitherType As Integer<br />
        Public dmICCManufacturer As Integer<br />
        Public dmICCModel As Integer<br />
        Public dmPanningWidth As Integer<br />
        Public dmPanningHeight As Integer<br />
        Public Overrides Function ToString() As String<br />
            Return String.Concat(New Object() {&#8221;[DEVMODE: dmDeviceName=", Me.dmDeviceName, ", dmSpecVersion=", Me.dmSpecVersion, ", dmDriverVersion=", Me.dmDriverVersion, ", dmSize=", Me.dmSize, ", dmDriverExtra=", Me.dmDriverExtra, ", dmFields=", Me.dmFields, ", dmOrientation=", Me.dmOrientation, ", dmPaperSize=", Me.dmPaperSize, ", dmPaperLength=", Me.dmPaperLength, ", dmPaperWidth=", Me.dmPaperWidth, ", dmScale=", Me.dmScale, ", dmCopies=", Me.dmCopies, ", dmDefaultSource=", Me.dmDefaultSource, ", dmPrintQuality=", Me.dmPrintQuality, ", dmColor=", Me.dmColor, ", dmDuplex=", Me.dmDuplex, ", dmYResolution=", Me.dmYResolution, ", dmTTOption=", Me.dmTTOption, ", dmCollate=", Me.dmCollate, ", dmFormName=", Me.dmFormName, ", dmLogPixels=", Me.dmLogPixels, ", dmBitsPerPel=", Me.dmBitsPerPel, ", dmPelsWidth=", Me.dmPelsWidth, ", dmPelsHeight=", Me.dmPelsHeight, ", dmDisplayFlags=", Me.dmDisplayFlags, ", dmDisplayFrequency=", Me.dmDisplayFrequency, ", dmICMMethod=", Me.dmICMMethod, ", dmICMIntent=", Me.dmICMIntent, ", dmMediaType=", Me.dmMediaType, ", dmDitherType=", Me.dmDitherType, ", dmICCManufacturer=", Me.dmICCManufacturer, ", dmICCModel=", Me.dmICCModel, ", dmPanningWidth=", Me.dmPanningWidth, ", dmPanningHeight=", Me.dmPanningHeight, "]&#8220;})<br />
        End Function<br />
    End Class<br />
    &#8216;================================================================<br />
    &#8216; <br />
    &#8216;<br />
    &#8216;<br />
    &#8216;================================================================</p>
<p>    &#8216;Win32API</p>
<p>    Private Declare Auto Function DocumentProperties Lib &#8220;winspool.drv&#8221; ( _<br />
        ByVal hwnd As IntPtr, _<br />
        ByVal hPrinter As IntPtr, _<br />
        &lt;MarshalAs(UnmanagedType.LPTStr)&gt; ByVal pDeviceNameg As String, _<br />
        ByVal pDevModeOutput As IntPtr, _<br />
        ByVal pDevModeInput As IntPtr, _<br />
        ByVal fMode As Integer) As Int32</p>
<p>    Private Declare Auto Function GlobalLock Lib &#8220;kernel32&#8243; (ByVal hmem As IntPtr) As IntPtr<br />
    Private Declare Auto Function GlobalFree Lib &#8220;kernel32&#8243; (ByVal hmem As IntPtr) As Int32<br />
    Private Declare Auto Function GlobalUnlock Lib &#8220;kernel32&#8243; (ByVal hMem As IntPtr) As Int32<br />
    Private Declare Auto Function OpenPrinter Lib &#8220;winspool.drv&#8221; ( _<br />
        &lt;MarshalAs(UnmanagedType.LPTStr)&gt; ByVal pPrinterName As String, _<br />
        ByRef phPrinter As IntPtr, _<br />
        ByRef pDefault As PRINTER_DEFAULTS) As Int32</p>
<p>    Private Declare Auto Function ClosePrinter Lib &#8220;winspool.drv&#8221; (ByVal hPrinter As IntPtr) As Int32</p>
<p>    Private Declare Auto Function SetPrinter Lib &#8220;winspool.drv&#8221; ( _<br />
        ByVal hPrinter As IntPtr, _<br />
        ByVal Level As Integer, _<br />
        ByVal pForm As IntPtr, _<br />
        ByVal Command As Integer) As Boolean<br />
    Private Declare Auto Function GetPrinter Lib &#8220;winspool.drv&#8221; ( _<br />
    ByVal hPrinter As IntPtr, ByVal dwLevel As Integer, _<br />
      ByVal pPrinter As IntPtr, ByVal cbBuf As Integer, _<br />
      ByRef pcbNeeded As Integer) As Boolean<br />
    Private Declare Auto Function AddForm Lib &#8220;winspool.drv&#8221; ( _<br />
        ByVal hPrinter As IntPtr, _<br />
        ByVal Level As Integer, _<br />
        ByVal pForm As IntPtr) As Integer</p>
<p>    Private Declare Auto Function DeleteForm Lib &#8220;winspool.drv&#8221; (ByVal hPrinter As IntPtr, _<br />
    &lt;MarshalAs(UnmanagedType.LPTStr)&gt; ByVal pName As String) As Integer<br />
    &#8216;================================================================<br />
    &#8216; プリンター設定を指定された用紙サイズと名前で追加し<br />
    &#8216; デフォルト設定する<br />
    &#8216;<br />
    &#8216;　パラメータ<br />
    &#8216;　hwnd         ：Wndハンドルを指定する<br />
    &#8216;　printerName  ：設定したいプリンター名（コントロールパネルで設定済みのもの）<br />
    &#8216;　paper        ：用紙名称　好きな名前を付ける、削除する際に必要<br />
    &#8216;　width        ：用紙幅<br />
    &#8216;　height       ：用紙高さ<br />
    &#8216;<br />
    &#8216;　戻り値　なし<br />
    &#8216;<br />
    &#8216;<br />
    &#8216;================================================================<br />
    Public Sub addPaper(ByVal hwnd As IntPtr, ByVal printerName As String, _<br />
         ByVal paper As String, ByVal width As Integer, ByVal height As Integer)<br />
        Dim ret As Integer<br />
        Dim hPrinter As IntPtr<br />
        Dim FormInfo1Level As Integer = 1<br />
        Dim FormInfo1 As FORM_INFO_1<br />
        Dim prtFormInfo1 As IntPtr<br />
        Dim pDevMode As DEVMODE<br />
        Dim _PrinterName As String = printerName</p>
<p>        Dim pd As New PRINTER_DEFAULTS<br />
        Dim pPrinterDef As IntPtr = IntPtr.Zero</p>
<p>        Dim pi2 As PRINTER_INFO_2<br />
        Dim pPrinterInfo As IntPtr = IntPtr.Zero<br />
        Try</p>
<p>            pd.DesiredAccess = PRINTER_ALL_ACCESS</p>
<p>            &#8216; プリンタのハンドルを取得<br />
            ret = OpenPrinter(printerName, hPrinter, pd)<br />
            If ret = 0 Or hPrinter.Equals(IntPtr.Zero) Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
                Return<br />
            End If<br />
            With FormInfo1<br />
                &#8216; 特性にユーザー定義を指定<br />
                .Flags = FORM_USER<br />
                &#8216; 用紙名を指定<br />
                .pName = paper<br />
                &#8216; 幅と高さを指定<br />
                .Size.cx = width<br />
                .Size.cy = height<br />
                &#8216;印刷範囲を指定()<br />
                .ImageableArea.left = 50<br />
                .ImageableArea.top = 50<br />
                .ImageableArea.right = width &#8211; 50<br />
                .ImageableArea.bottom = height &#8211; 50<br />
            End With</p>
<p>            prtFormInfo1 = Marshal.AllocHGlobal(Marshal.SizeOf(GetType(FORM_INFO_1)))</p>
<p>            Marshal.StructureToPtr(FormInfo1, prtFormInfo1, True)</p>
<p>            &#8216; 用紙情報を追加<br />
            ret = AddForm(hPrinter, FormInfo1Level, prtFormInfo1)</p>
<p>            Dim Struct1 As FORM_INFO_1<br />
            Struct1 = CType(Marshal.PtrToStructure(prtFormInfo1, GetType(FORM_INFO_1)), FORM_INFO_1)</p>
<p>            &#8216;=========================================</p>
<p>            &#8216;必要なバイト数を取得する<br />
            Dim needed As Integer<br />
            GetPrinter(hPrinter, 2, IntPtr.Zero, 0, needed)<br />
            If needed &lt;= 0 Then<br />
                Throw New Exception(&#8221;失敗しました。&#8221;)<br />
            End If</p>
<p>            Debug.Print(&#8221;needed=&#8221; &amp; needed)</p>
<p>            &#8216;メモリを割り当てる<br />
            pPrinterInfo = Marshal.AllocHGlobal(needed)</p>
<p>            &#8216;            Dim globalDevIn As IntPtr = GlobalLock(PtrDMIn)</p>
<p>            &#8216;プリンタ情報を取得する<br />
            Dim temp As Integer<br />
            If Not GetPrinter(hPrinter, 2, pPrinterInfo, needed, temp) Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If</p>
<p>            Debug.Print(&#8221;temp=&#8221; &amp; temp)</p>
<p>            &#8216;PRINTER_INFO_2型にマーシャリングする<br />
            pi2 = CType(Marshal.PtrToStructure( _<br />
                pPrinterInfo, GetType(PRINTER_INFO_2)), PRINTER_INFO_2)<br />
            &#8216; 構造体とポインターの変換 pi2.pDevMode<br />
            pDevMode = CType(Marshal.PtrToStructure(pi2.pDevMode, _<br />
                GetType(DEVMODE)), DEVMODE)<br />
            Debug.Print(&#8221;変更前＝&#8221; &amp; pDevMode.dmFormName)<br />
            Debug.Print(&#8221;変更前dmPaperWidth＝&#8221; &amp; pDevMode.dmPaperWidth)<br />
            Debug.Print(&#8221;変更前dmPaperLength＝&#8221; &amp; pDevMode.dmPaperLength)<br />
            pDevMode.dmFormName = paper &amp; Chr(0)   &#8216; Must be NULL terminated!</p>
<p>            &#8216; Set the dmFields bit flag to indicate what you are changing.<br />
            pDevMode.dmFields = DM_FORMNAME</p>
<p>            Debug.Print(&#8221;変更後＝&#8221; &amp; pDevMode.dmFormName)<br />
            Debug.Print(&#8221;変更後dmPaperWidth＝&#8221; &amp; pDevMode.dmPaperWidth)<br />
            Debug.Print(&#8221;変更後dmPaperLength＝&#8221; &amp; pDevMode.dmPaperLength)</p>
<p>            Marshal.StructureToPtr(pDevMode, pi2.pDevMode, False)</p>
<p>            ret = DocumentProperties(hwnd, hPrinter, _PrinterName, pi2.pDevMode, _<br />
                pi2.pDevMode, DM_IN_BUFFER Or DM_OUT_BUFFER)</p>
<p>            Marshal.StructureToPtr(pi2, pPrinterInfo, False)</p>
<p>            &#8216;/* プリンタ情報のアップデート */<br />
            Dim b As Boolean = SetPrinter(hPrinter, 2, pPrinterInfo, 0)<br />
            If b = True Then<br />
                MsgBox(&#8221;プリンタードライバーの設定。&#8221;)<br />
            Else<br />
                Debug.Print(&#8221;err=&#8221; &amp; Marshal.GetLastWin32Error())</p>
<p>                &#8216;     Dim LangOptions As Long<br />
                &#8216;     LangOptions = &amp;H0<br />
                &#8216;     Dim buffer As String<br />
                &#8216;     buffer = Space(256)<br />
                &#8216;     lngReturn = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&amp;, Err.LastDllError, LangOptions, buffer, Len(buffer), 0&amp;)<br />
                &#8216;     MsgBox(&#8221;Could not set printer: &#8221; &amp; buffer)</p>
<p>                MsgBox(Marshal.GetLastWin32Error())<br />
                &#8216;             Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If</p>
<p> </p>
<p>            If ret &lt;= 0 Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If</p>
<p>        Catch ex As Exception<br />
            MessageBox.Show(ex.Message, &#8220;エラー&#8221;)</p>
<p>        Finally</p>
<p>            &#8216;後始末をする<br />
            Marshal.FreeHGlobal(pPrinterInfo)</p>
<p>            If Not hPrinter.Equals(IntPtr.Zero) Then<br />
                ClosePrinter(hPrinter)<br />
            End If<br />
            &#8216;        Marshal.FreeHGlobal(prtFormInfo1)</p>
<p>        End Try<br />
    End Sub<br />
    &#8216;================================================================<br />
    &#8216;ユーザー定義サイズ用紙削除<br />
    &#8216;<br />
    &#8216;　パラメータ<br />
    &#8216;　printerName  ：設定したいプリンター名（コントロールパネルで設定済みのもの）<br />
    &#8216;　paper        ：用紙名称　好きな名前を付ける、削除する際に必要<br />
    &#8216;<br />
    &#8216;　戻り値　なし<br />
    &#8216;<br />
    &#8216;<br />
    &#8216;================================================================<br />
    Public Sub DeletePaperForm(ByVal printerName As String, ByVal paper As String)<br />
        Dim ret As Integer<br />
        Dim hPrinter As IntPtr<br />
        Dim pd As New PRINTER_DEFAULTS</p>
<p>        pd.DesiredAccess = PRINTER_ALL_ACCESS</p>
<p>        Try<br />
            &#8216; プリンタのハンドルを取得<br />
            ret = OpenPrinter(printerName, hPrinter, pd)<br />
            If ret = 0 Or hPrinter.Equals(IntPtr.Zero) Then<br />
                Return<br />
            End If</p>
<p>            &#8216;　用紙の削除<br />
            ret = DeleteForm(hPrinter, paper)</p>
<p>            If ret &lt;= 0 Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If<br />
            MsgBox(&#8221;delete sucess&#8221;)<br />
        Catch ex As Exception<br />
            MessageBox.Show(ex.Message, &#8220;エラー&#8221;)<br />
        Finally<br />
            If Not hPrinter.Equals(IntPtr.Zero) Then<br />
                ClosePrinter(hPrinter)<br />
            End If<br />
        End Try<br />
    End Sub</p>
<p>End Class</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=10</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apache　仮想ホストの設定</title>
		<link>http://tecblog.oarts.jp/?p=3</link>
		<comments>http://tecblog.oarts.jp/?p=3#comments</comments>
		<pubDate>Tue, 08 Dec 2009 07:05:05 +0000</pubDate>
		<dc:creator>oakita</dc:creator>
				<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=3</guid>
		<description><![CDATA[apache2.2.3-22.el5.centos.2で仮想ホストの設定です
Windows版ではhttpd.confからincludeする設定になっていますが
Linux版では何故か古いままです、これってCentOS４．３のデフォルトで入っているapacheの設定が更新されないのかもしれません。
以下はhttp.conf の抜粋
~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#
NameVirtualHost *:80　　＜－この行はコメントを解除します
#
# NOTE: NameVirtualHost cannot be used without a port specifier
# (e.g. :80) if mod_ssl is being used, due to the nature of the
# SSL protocol.
#
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#&#60;VirtualHost *:80&#62;
#    ServerAdmin webmaster@dummy-host.example.com
#    [...]]]></description>
			<content:encoded><![CDATA[<p>apache2.2.3-22.el5.centos.2で仮想ホストの設定です</p>
<p>Windows版ではhttpd.confからincludeする設定になっていますが</p>
<p>Linux版では何故か古いままです、これってCentOS４．３のデフォルトで入っているapacheの設定が更新されないのかもしれません。</p>
<p>以下はhttp.conf の抜粋<br />
~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
#<br />
#<br />
NameVirtualHost *:80　　＜－この行はコメントを解除します<br />
#<br />
# NOTE: NameVirtualHost cannot be used without a port specifier<br />
# (e.g. :80) if mod_ssl is being used, due to the nature of the<br />
# SSL protocol.<br />
#</p>
<p>#<br />
# VirtualHost example:<br />
# Almost any Apache directive may go into a VirtualHost container.<br />
# The first VirtualHost section is used for requests without a known<br />
# server name.<br />
#<br />
#&lt;VirtualHost *:80&gt;<br />
#    ServerAdmin <a href="mailto:webmaster@dummy-host.example.com">webmaster@dummy-host.example.com</a><br />
#    DocumentRoot /www/docs/dummy-host.example.com<br />
#    ServerName dummy-host.example.com<br />
#    ErrorLog logs/dummy-host.example.com-error_log<br />
#    CustomLog logs/dummy-host.example.com-access_log common<br />
#&lt;/VirtualHost&gt;<br />
#</p>
<p>以下の行はオリジナルのものをコピーしてコメントを削除します<br />
&lt;VirtualHost *:80&gt;<br />
    ServerAdmin <a href="mailto:info@oarts.jp">admin@oarts.jp</a><br />
    DocumentRoot /var/www/blog<br />
    ServerName blog.oarts.jp<br />
    ErrorLog logs/error.log<br />
    CustomLog logs/access.log common<br />
&lt;/VirtualHost&gt;<br />
#<br />
#</p>
<p>以下はデフォルトのコンテンツを追加したものです。<br />
&lt;VirtualHost *:80&gt;<br />
ServerAdmin <a href="mailto:info@oarts.jp">admin@oarts.jp</a><br />
    DocumentRoot /var/www/html<br />
    ServerName <a href="http://www.oarts.jp">www.oarts.jp</a><br />
    ErrorLog logs/error.log<br />
    CustomLog logs/access.log common<br />
&lt;/VirtualHost&gt;<br />
~~~~~~~~~~~~~~~~~~~~~~~~~~</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=3</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
