プロが教える店舗&オフィスのセキュリティ対策術

以下ようなツールはどのプログラム言語で作るのが向いていますか?
仕事中にファイル名に日付をつけてファイルを残すことがあり、
ふとプログラミングの勉強を兼ねて、
以下のようなWindowsで使用するツールを作ってみようと考えました。


目的
一時的なバックアップ用にファイル名を変更orファイルをコピーする。

使い方
・ファイルを右クリック
・右クリック後「新規作成->フォルダ」と同じイメージで、
 「アプリ名->ファイル名を変更」 か
 「アプリ名->ファイルをコピー」
 を選択できる。

○アプリ名->ファイル名を変更 を選択した場合、
 選択したファイルの名前に_yymmddを追加した形に変更
ex.
sample.txt
  ↓
sample_100603.txt

○アプリ名->ファイルをコピー を選択した場合
 選択したファイルをコピーし、
 ファイル名を元のファイル名に_yymmddを追加した形に変更
ex.
sampleCopy.txt
  ↓
sampleCopy.txt
sampleCopy_100603.txt

---

今まで、業務でC, C++, Javaでコーディング経験はあるのですが、
Windows関数の呼び出し経験はほとんどありません。
(MFCでは少し実装したのですが・・・)

ちょっと調べた感じだと
ファイル右クリックで表示させるためのレジストリの書き換えと、
ファイル名の変更&コピー程度なので、実装はそれほどむずかしくないかなと考えています。。
皆さんであれば上記のようなツールはどの言語で実装しますか?


今回のツールとは別にスクリプト系の言語を勉強してみようかと考えて
PythonかRubyを勉強してみようか迷っていたところなので、
できれば今までやったことのない言語で作ってみたいのですが、
やはりWindowsアプリはC(++)が作りやすいのでしょうか???

A 回答 (4件)

「ファイル名を変更してコピー」のようなことをWindowsで行うのでしたらWSH(Windows Script Host)スクリプトもよいのではないでしょうか。



新たなインストールは不要で、コピースクリプトをエディタで作成し、ショートカットをSendToフォルダに置けば準備完了です。ファイルを右クリックで「送り」ます。

SendToを使わずに右クリックメニューを実現するにはコピースクリプトとは別の実装が必要ですが、WSHはレジストリ操作もできますから、それも不可能ではないように思います(すみませんが私はSendToで済ませているので実装した経験はありません)。
    • good
    • 0
この回答へのお礼

確かにVBScriptあたりで作るのもよいのかもしれませんね。
ありがとうございます。

お礼日時:2010/07/02 19:43

右クリックというのはエクスプローラ上で、ということですよね?


新規作成と同じ並びでメニューを表示させるのはシェルエクステンションとかいうのを実装しなければならなかったような気がします。これは結構面倒くさいので、私ならSendToフォルダにショートカットを作って、ショートカット先のプログラムは C で作成ですかね。
シェルエクステンションとかいうのを実装するのだったら、C++ (ATL?) かなと思います。
    • good
    • 0
この回答へのお礼

右クリックに追加、は意外と面倒なのですね。。
ありがとうございました。。

お礼日時:2010/07/02 19:33

クライアントアプリケーションを作る場合、


それを自分だけが使うのか、他人にも使ってもらうのか、
他人に使ってもらう場合、どのOS(どのWindows)を使用するのか、
どのレベルの人が使うのか(PC初心者が使うのか、同僚の開発者が使うのか)
によって使用言語の選択も変わってきます。

ある言語で作ったプログラムを他人に使ってもらう時、
その言語に応じた実行環境を他人のPC上に整えなければなりません。
例えば、
Rubyで作ったスクリプトはRubyをインストールしないと実行できませんし、
JavaはJRE(Javaランタイム環境)のインストールが必要です。
C#やVB.netの実行には.NETフレームワークが必要です。
C++でもMFCを使うならMFCランタイムライブラリが必要ですし、
Cでも標準関数を使うなら、Cランタイムライブラリが必要です。

こういった実行環境準備は、なるべく簡単で済むようにしたいところです。

MFCやCランタイムライブラリは、インストーラを作って、
その中でランタイムライブラリも自動的にインストールさせることも
可能ですが、簡単なプログラムのためにわざわざインストーラを作るのも
面倒です。

今回のケースの場合、高度な言語環境は不要そうなので、
私だったら、C言語を使ってWin32APIだけ(Cランタイムライブラリ利用無し)で作るか、
Cランタイムライブラリをスタティックリンクで利用して作ります。

こうすれば、他のPCに配布する時、実行環境の準備が不要になるからです。

もし、使用するPCがWindows VistaまたはWindows 7だけを対象に
したのでよいのであれば、これらのOSには.NETフレームワークが
最初から入っていますから、高度な言語機能や言語環境を利用する
ためにC#で作るかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございました。。

お礼日時:2010/07/02 19:28

それぞれ、フリーソフト作者が得意にしているツールがあるので、それを使用するのが普通です。


慣れないツールを使うことはバグを生むのと時間が掛かるだけですからね。

簡単な仕事なら、慣れた車を使いたいのと同じです。
    • good
    • 0
この回答へのお礼

確かにそうですね。
ありがとうございました。。

お礼日時:2010/07/02 19:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!