• お知らせ
  • コラム
  • サイトマップ
株式会社アーツテック
“難しい”を“簡単”に変える技術で、新マーケットの創造 株式会社アーツテック
開発会社として、技術の利用の仕方や可能性、
営業・設計といったそれぞれのビジネスシーンで重要なことや経験談、
これから社会に出る方々へのアドバイスなどを現場の社員がお話しします。
  
コラムの更新は随時行っていきます。
  • Home
  • Services
  • Solution
  • Company
  • Recruit
  • Contact

ちょっと楽に・・・

ちょっと楽に・・・

10年ほど前のちょっと懐かしいプログラムをみつけました。
エコは気にしつつも、印刷した書類が必要な機会があります。それも複数あると結構面倒な作業なんですよね。

コラムを書くにあたり、何かネタがないかと探していたら、10年近く前に作成した懐かしいソースが見つかりましたので紹介したいと思います。

当時、大量のファイルをたびたび印刷する必要があり、ファイルを開く、印刷をする、印刷が終わったらまたファイルを開く・・・を繰り返すのがとても面倒なため、なにか良い方法はないかと思い、自分で作ることにしました。
機能としては非常に単純で、30分もあれば作成できる簡単なプログラムです。

準備

このプログラムではShellExecuteというWindowsのAPIを使用します。APIとはApplication Program Interfaceの略で、簡単にいうとOSが用意している関数のことです。もしこのAPIが無い場合は、プログラムがファイルに関連付けられているアプリケーションを探し、そのアプリケーションで開く必要がありますが、このAPIを使うと1行で処理が可能です。

このShellExecuteというAPIを使うと、テキストファイル(*.txt)を「メモ帳」で開いたり、画像ファイル(*.bmp)を「ペイント」で開くなど、ファイルの拡張子に関連付けられたアプリケーションで、ファイルを実行することができます。また、引数をかえることにより、関連付けられたアプリケーションで印刷を行うことができます。今回のアプリケーションでは、この機能を使い、ファイルの拡張子によって、関連付けられたアプリケーションからの印刷を実現しています。

プログラミング

このプログラムは、元BorlandのDelphiという言語を使って作成しています。
まずはフォームにボタン、ドライブコンボボックス、ディレクトリ一覧、ファイル一覧のコンポーネントを配置し、ドライブ、ディレクトリ、ファイルの一覧が連動するように設定します。

次に印刷の機能の実装部分ですが、以下がボタンのClickイベントにソースになります。

var
  i: integer;
begin
  for i := 0 to FileListBox.Items.Count - 1 do begin
   ShellExecute(Handle,'PRINT',pchar(FileListBox.Items.Strings[i]),'','',SW_SHOW);
  end;
end;

ファイルの一覧分だけループを回し、ShellExecuteを呼ぶだけのシンプルなソースですが、これだけでまとめて印刷の機能が実現できています。これ以外のソースは一切ありません。自分用に作成したため、使い勝手はまったく考えていませんが・・・

また、ファイルを開くのと同じようにファイル名にURLを指定すると、指定したURLが関連付けられたブラウザーで起動することもできます。

ShellExecute(Handle,'PRINT','http://www.artstech.co.jp','','',SW_SHOW);

最後に

非常に簡単なプログラムではありますが、このプログラムを使うことにより、ひたすらファイルを開き、印刷を行う単純作業から開放されます。仕事としてプログラムを書いていると楽しいことよりつらいことの方が多いこともありますが、本来プログラムというのは如何に楽をするかを考える、とても楽しいことだと思っています。

プログラムに興味のある方は、なにか身の回りの便利なツールから作ってみてはいかがでしょうか。

開発部:14年目
事業内容
システム開発
カードビジネス事業
品質管理
iPhoneアプリケーション開発
アーツテックについて
会社概要
会社沿革
アクセス
アーツテックはこんな会社です
新卒採用
中途採用
ページの先頭へ戻る
  • ホーム
  • このサイトについて
  • プライバシーポリシー
  • お問い合わせ

  株式会社アーツテック 〒141-0021 東京都品川区上大崎1-1-17 LSビル8階 TEL:03-5449-7511
Copyright(C) 2010 Artstech Inc. All Rights Reserved.