痔になりやすい生活習慣とは?

可能か不可能か教えてください!!
すごく困っています。

VB6.0を使用し、書き込み画面なるものを作成し、そのフォーム上に『DVD-R書き込み』ボタンなるものを設け、これを押すと、ローカルのカレントディレクトリに格納されているTXT形式のデータを『DVD』メディアに焼ける書き込みソフトを作成しようとしているのですが、VB6.0で可能でしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (5件)

フリーのライティングソフト、ディスクメディエーター呉葉がインストールされているなら、



Private Sub Command1_Click()
  Dim mastering As Object
  Set mastering = CreateObject("KUREHA.Mastering")
  With mastering
    Call .ClearTrack
    Call .InitISOFS(&H11)
    On Error Resume Next
    Call .AddFile("C:\*.txt")
    If (Err.Number <> 0) Then
      Call MsgBox(Err.Description, vbCritical)
    End If
    On Error GoTo 0
    On Error Resume Next
    Call .StartBurn("D:")
    If (Err.Number <> 0) Then
      Call MsgBox(Err.Description, vbCritical)
    End If
    On Error GoTo 0
  End With
  Set mastering = Nothing
End Sub

みたいな感じで書き込めます。
    • good
    • 0

SDKに関して。

最低限、下記のページに書いてある事が理解出来ないと。

[参考]猫でもわかるプログラミング Windows SDK編
http://www.kumei.ne.jp/c_lang/index_sdk.html

当たり前の事ですが、IMAPIを直に使う気なら、CとVBの両方が判っていないと無理ですよ。

>書き込みソフトにおいて、『FILE2CD.EXE』以外で、いいフリーソフト等があれば

FILE2CD.EXEでは、何が不足でしょうか?

UNIXの知識がおありで、cygwinでのコンパイルも厭わないなら、他にもありますが、そちらの方が宜しいでしょうか?

ご自身のプログラムレベルと、作ろうとしている物のレベルは把握できているでしょうか?
    • good
    • 0

CDへの書き込み部分を自力で実装するならIMAPIに含まれる関数群を使って、と言う事になりますね。



プラットフォームSDKと言うのはWindows向けソフトをVC++で開発する場合のWindowsAPI関数群になります。
それらの関数仕様を見て、何を渡せば何が返って来るのか、何をするための物なのか、が理解出来ないと駄目ですね。

自力でのCD書き込みは無理だと思いますので、FILE2CD.EXE等のコマンドラインで動作する書き込みソフトをVBから呼び出して使うのが妥協点だと思います。

FILE2CD.EXEはCDRWINの"Golden Hawk Technology"社が提供しているフリーウェアです。

[参考]FILE2CD.EXE(コマンドライン用)
http://www.goldenhawk.com/freeware.htm

この回答への補足

回答ありがとうございます。

>>プラットフォームSDKと言うのはWindows向けソフトをVC++で開発する場合のWindowsAPI関数群になります。
それらの関数仕様を見て、何を渡せば何が返って来るのか、何をするための物なのか、が理解出来ないと駄目ですね。

・参考になるサイト等がありましたら、教えて下さい。

>>自力でのCD書き込みは無理だと思いますので、FILE2CD.EXE等のコマンドラインで動作する書き込みソフトをVBから呼び出して使うのが妥協点だと思います。

・コマンドラインで動作する、書き込みソフトにおいて、『FILE2CD.EXE』以外で、いいフリーソフト等があれば教えてください。

補足日時:2008/09/04 01:16
    • good
    • 0

余談ですが…


フリーソフトウェアの世界だと、開発しやすい言語でフロントエンドとして実装し
Cなどで書かれた既存のツールを呼び出したりすることが盛んですね。

Windowsの場合は同様のアプローチができないことは多いと思いますが
同様のソフトを実現している人がいるなら、複雑な仕組みを多数の人が
個別に実装するよりも、共同利用するほうがバグ出しや改良の面でも有利です。
    • good
    • 0

可能かどうかと言う意味でなら、可能です。


それを実現出来るだけの技量が貴方にあれば、ですが。

IMAPI等を駆使すれば可能でしょうが、かなり高度な知識が必要になりますよ?
最低限VB6.0からWindowsAPIを使えてて、プラットフォームSDKの内容が理解出来ないと先ず無理です。
なおかつ、C向けに書かれたAPIの宣言をVB6.0で使えるように変換出来るだけの知識もなければ・・・

この回答への補足

回答ありがとうございます。

>>IMAPI等を駆使すれば可能でしょうが、かなり高度な知識が必要になりますよ?
・「IMAPI」を調べた結果、アプリケーションからCD-R/CD-RWに対して イメージの書き込みをサポートする機能とのことですが、これを使用 するかたちになるのでしょうか?

>>最低限VB6.0からWindowsAPIを使えてて、プラットフォームSDKの内容が理解出来ないと先ず無理です。
・さっぱり分からないので、詳しく教えてください。

>>なおかつ、C向けに書かれたAPIの宣言をVB6.0で使えるように変換出来るだけの知識もなければ・・・
・C向けに書かれたAPIの宣言とありますが、宣言文を変換させるためにはどうすればいいのでしょうか?

補足日時:2008/09/02 19:36
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qコマンドライン(バッチ)でDVDに書き込みたい

現在、日々発生する顧客データをバッチ(xcopy)でバックアップしていますが、HDDの容量がすぐ一杯になってしまうため、バッチでDVDにデータを書き込む方法がないか探しております。
本来であればファイルサーバに保存したいところなのですが、セキュリティ上スタンドアロンの運用しか許されておりません。

アルバイト従業員も端末を操作するので、確実にバックアップが行われるよう、シャットダウンスクリプトで行う予定です。

処理のイメージとしては
C:\DATAに保存されるデータを

D:\backup(HDD)に移動し

E:\backup(DVD)に書き込む
といった感じで考えています。

お詳しい方がいらっしゃいましたら、このようなことが可能かどうか、お教え頂けますでしょうか。
よろしくお願いします。

Aベストアンサー

> ・・・このようなことが可能かどうか、・・・

可能です。
「C:\DATAに保存」は出来ているということですので
一例として
「D:\backup(HDD)に移動」は
xcopyでD:\backupにコピーして
C:\DATAを削除すれば移動完了です。

「DVDに書き込む」は定番のフリーソフトimgburnを使用して書き込めばOKです。
下記サイト参照。
ImgBurnを他のソフトと連動させる方法(バッチ処理)
http://imgburn.nnn2.com/?p=81
なお、imgburnでなくてもコマンドラインで実行できるDVD書き込みソフトであれば何でも構いません。
マイクロソフトの AIKツールでも可能です。(imgburnなどに比べて面倒なだけです)
http://www.microsoft.com/ja-jp/download/details.aspx?id=5753

QCreateFile関数によるCD/DVDへの書込み方法を教えて下さい

VCプログラムで、操作履歴情報を出力先ドライブを選択してファイルに保存する機能を作成しています。(OS:Windows-XP)
CD-ROM(RW)ドライブを選択すると、以下のエラーになってしまうのですが、
正しい引数または別の方法を教えて頂けませんでしょうか。
◆エラー
ERROR_INVALID_FUNCTION(0x00000001)「ファンクションが間違っています。」
◆引数
handle = CreateFile( "\\\\.\\E:\\HISmmdd.TXT",// ファイル名
GENERIC_WRITE,// アクセスモード
FILE_SHARE_WRITE,// 共有モード
NULL,// セキュリティ記述子
CREATE_ALWAYS,// 作成方法
FILE_FLAG_WRITE_THROUGH,// ファイル属性
NULL// テンプレートファイルのハンドル
) ;

以上、宜しくお願い致します!

Aベストアンサー

CD/DVDは、通常のAPI関数では書き込み出来ません。

CD/DVDへの書き込みは「IMAPI(Windows Image Mastering API)」と言う、専用のAPIを使用する必要があります。

CreateFileなど、通常のAPI関数では、書き込む事は出来ません。

また、ネットワーク共有で共有された他のPCのCD/DVDドライブは、IMAPIを使用しても書き込む事は出来ません。IMAPIで書き込み出来るのは「自分自身のCD/DVDドライブだけ」です。

どうやら、質問者さんは「ネットワークごしにCD-R/DVD-Rに書き込もうとしている」ので、現状では「何をどうやっても不可能」です。

唯一の方法は
・CD-R/DVD-Rを搭載したPCに、監視用の常駐プログラムを常駐させる
・ネットワーク共有で別のPCから特定のフォルダに、書き込みたいファイルを置く
・何らかの方法で、別のPCから常駐プログラムに「書き込み」の指令を送る
・常駐プログラムから、IMAPIを使ってファイルをCD-R/DVD-Rに書き込むプログラムを起動する
・起動された書き込みプログラムは、特定のフォルダに置かれたファイルを書き込みし、書き込みが終了したら、書き終わったファイルを特定のフォルダから削除して後始末する
という方法です。

CD/DVDは、通常のAPI関数では書き込み出来ません。

CD/DVDへの書き込みは「IMAPI(Windows Image Mastering API)」と言う、専用のAPIを使用する必要があります。

CreateFileなど、通常のAPI関数では、書き込む事は出来ません。

また、ネットワーク共有で共有された他のPCのCD/DVDドライブは、IMAPIを使用しても書き込む事は出来ません。IMAPIで書き込み出来るのは「自分自身のCD/DVDドライブだけ」です。

どうやら、質問者さんは「ネットワークごしにCD-R/DVD-Rに書き込もうとしている」ので、現状で...続きを読む

QVB6(SP5)にて、DVD-RまたはCD-Rへの書込み

VB6(SP5)にて、DVD-RまたはCD-Rへの書込みを行おうとしています。
書込みを行いたい使用OSはWindows2000です。
開発環境のOSもWindows2000です。

OSがWindowsXPでしたら、なんとか書き込む方法を見つけたのですが、Windows2000からでは不可能でした。

いろいろと調べてはいるのですが、これといった方法が見つかりません。
わかる方がいらっしゃいましたら御教授ください。

また、DVD-Rに書き込むのか、CD-Rに書き込むかは、合計ファイルの容量によって変更したいと考えています。

よろしくお願いします。

Aベストアンサー

cdrecordを焼き込み機能として使ってVBでラッパープログラムでも
組む。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QTextBoxでEnterキーを押すと、にあるButtonを押したのと同じ効果を出す方法

VB初心者です。
まだ、はじめたばかりなので、上手く質問を説明できませんが、よろしくお願いします。

環境はVisualBasic .net 2003です。

フォームにテキストボックス(TextBox)とボタン(Button)があります。
テキストボックス内でEnterキーを押すと、ボタン(Button)を押したのと同様の効果をだしたいのですが。
VC++6.0だと、SendMessage(WM_COMMAND , .....
のようなやり方でできたはずですが・・・
---------------------------
テキストボックスのコード
Private Sub txtTest_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtTest.KeyDown
If (e.KeyCode = Keys.Enter) Then
'★★★ここでどういうコードを書いてよいかわかりません。
End If
End Sub
----------------------------
ボタンを押したときのイベントハンドラ
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
    ボタンを押したら、このイベントハンドラを呼び出したい。
    もしくは、間接的に呼び出したい。
-------
どなたか、やり方をご存知の方がいらっしゃいましたら、よろしくお願いします。

VB初心者です。
まだ、はじめたばかりなので、上手く質問を説明できませんが、よろしくお願いします。

環境はVisualBasic .net 2003です。

フォームにテキストボックス(TextBox)とボタン(Button)があります。
テキストボックス内でEnterキーを押すと、ボタン(Button)を押したのと同様の効果をだしたいのですが。
VC++6.0だと、SendMessage(WM_COMMAND , .....
のようなやり方でできたはずですが・・・
---------------------------
テキストボックスのコード
Private Sub txtTest_KeyDown(ByVal ...続きを読む

Aベストアンサー

>SendMessage(WM_COMMAND
とは、多少意味合いが異なりますが。。。

btnTest.PerformClick()
と行うと、btnTestオブジェクトと関連付いたイベントハンドラが起動します。
http://okwave.jp/kotaeru.php3?q=1688744


また、エンターキーの動きに限るのであれば、フォームのAcceptButtonプロパティを利用すると、コーディングが不要です。ついでにエスケープにも動作を持たせたいのであれば、CancelButtonプロパティを利用するといいです。



どうしてもCと全く同様に、イベントを起こすのであれば、Cと同じ手続きでAPIで起こせばよいと思います。
http://okwave.jp/kotaeru.php3?q=199357


Public Class Form1
  Inherits System.Windows.Forms.Form

  Private Declare Auto Function SendMessage Lib "user32" ( _
    ByVal hWnd As Integer, _
    ByVal wMsg As Integer, _
    ByVal wParam As Integer, _
    ByVal lParam As Integer _
  ) As Integer
  Private Declare Auto Function GetDlgCtrlID Lib "user32" ( _
    ByVal hWnd As Integer _
  ) As Integer

  Private Const WM_COMMAND As Integer = &H111
  Private Const BN_CLICKED As Integer = &H0

#Region " Windows フォーム デザイナで生成されたコード "
#End Region

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    btnTest.PerformClick()
    SendMessage( _
      Me.Handle.ToInt32, _
      WM_COMMAND, _
      BN_CLICKED * GetDlgCtrlID(btnTest.Handle.ToInt32) * &H10000, _
      btnTest.Handle.ToInt32 _
    )
  End Sub
End Class

>SendMessage(WM_COMMAND
とは、多少意味合いが異なりますが。。。

btnTest.PerformClick()
と行うと、btnTestオブジェクトと関連付いたイベントハンドラが起動します。
http://okwave.jp/kotaeru.php3?q=1688744


また、エンターキーの動きに限るのであれば、フォームのAcceptButtonプロパティを利用すると、コーディングが不要です。ついでにエスケープにも動作を持たせたいのであれば、CancelButtonプロパティを利用するといいです。



どうしてもCと全く同様に、イベントを起こすのであれば、...続きを読む

QWindows7でformatコマンドを使う

windows7でコマンドプロンプトを起動して、formatコマンドを使って
DVD-RAMをサイレントでフォーマットしたく、以下のコマンドを実行したのですが
「現在のボリュームラベルを入力してください」と入力要請されます。
このボリューム名の入力を行なわせない(無視する)オプションは無いのでしょうか?

[条件]
(1) クイックフォーマット指定。
(2) ファイルシステムはFAT32
(3) ボリューム名を指定

format D: /Q /FS:FAT32 /V:ボリューム

宜しくお願いします。

Aベストアンサー

NO.2の補足です。
diskpartコマンドでscriptを使ってください。
次のようにしてみてください。
任意に応用してください。
1.format.txtというファイルをメモ帳で作成する。
内容は次の4行です。

select disk 0
select volume f
format fs=ntfs label="myvolume" quick
exit

2.コマンドプロンプト「管理者として実行」diskpartを実行する。
diskpart /s format.txt

実行結果は添付画像参照。
script内容で処理されますので、途中では何も入力する必要はありません。
---scriptの説明
1行目:disk 番号を適切に指定してください。
2行目:ドライブ番号を適切に指定してください。
3行目:label名を任意に設定してください。
4行目:exitは処理命令です。

Q「データベースまたはオブジェクトは読み取り専用なので、更新できません」エラーについて

フィールドに数式セットをしようとして以下のように書きましたが
「データベースまたはオブジェクトは読み取り専用なので、更新できません」との
エラーが出ます。アクセスは初心者なので宜しくお願いします。

Dim db As DAO.Database
Dim rst As DAO.Recordset

Set db = CurrentDb
Set rst = db.OpenRecordset("Q02_5_見込み案件数") Q02_5_見込み案件数はクエリ
With rst
Do Until .EOF
.Edit     →ここで上記のエラーが発生します。
!件数 = !件数 * Me.SP予測掛け率
.Update
.MoveNext
Loop
.Close
End With

Aベストアンサー

クエリというのはSQL文をわかりやすく表示したものです。 (ので、クエリでできないものをSQLであればできるという可能性は少ないのですが、クエリというのはGUIですから、何を具体的にやっているのかなどを文章で説明するのは非常に困難ですので、ドキュメント化しにくいという欠点があります。 また、将来的に他のデータベースに変更する際など、手間がかかるのも問題です。)

データベース上ではテーブルの個々のデータの更新はできますが、クエリなどで集計したものや計算したものについては、テーブル上のどのレコードのどの値を変えるかがわからないため更新することができないのが普通です。

質問者様がやりたいことがはっきり見えていないので、正しい回答になるかがよくわからいのですが、
・件数というのがレコード数なら、集計する前のクエリで掛け率を表示する列を作りそれを合計させる
・件数というのが個々のレコードに入っている何らかの値なら、補正件数みたいな列を作りそこに件数と予想掛け率を掛けた値を入れて置き集計させる
などの方法が思いつきます。


人気Q&Aランキング