メガソフト トップサポートSTARFAXシリーズ > STARFAX OCXフォーラム
STARFAX OCXフォーラム
[フォーラムトップ]
一括表示

Windows2000がフリーズします。回避策などないでしょうか? - SASAKI 2003/11/26(Wed) 15:49 No.1360
STARFAXのOCXでテキスト、EXCEL、WORDの文章を連続してFAX
送信するプログラムを作っています。

連続して、100回前後(一定ではなく200回近くの時もある)以下の
FAX送信処理を繰り返すと、Windowsがフリーズしたり、黒い画面
(突然画面が黒くなって、画面上のあちこちに白い点が表示されて
 いる状態で止まる)
になったりします。
CTRL+ALT+DELすら効かない状態になります。
 <処理の流れ>
  (1)送信用TIFFファイルを作成
   ・テキスト、WORD、EXCELからTIFFファイルを作成
   ・上記2,3種類のTIFFをまとめて1つのTIFFファイルを作成
  (2)1つにまとめたTIFFファイルを指定してFAX送信
50回程度の繰り返しでは問題なく動きます。
動作環境は以下のとおりです
STARFAX2000 2.05
  Windows2000 SP2
  VB6.0 SP5
PCが悪いかと思い、他のPCに環境を作っても、同じようになります。

回避策、処理上の問題点などわかる方、助けていただきたいです。
よろしくお願いします。

作成したプログラムの抜粋を以下に書きます。
細かくログを出力してみたところ、「←←← ここの辺りで止まる」と
書いてある行で止まっているようでした。
(3箇所ありますが、そのうちのどこかで、場所は一定していません。)
STARFAXのプリンタドライバで、TIFFファイルを作成しているところ
です。

SFax_PrinterName = FAXCTL.GetPrnName(0)
:
:
'プリンタをSTARFAXのプリンタへ設定
Set Printer = SFAX_Printer

'基本的には、Tmp_TifFile にテキスト、EXCEL、WORDなどからTIFF
'形式で出力
'FAX送信用に1つのファイルにする必要があるため、
'SFFILE.TiffToTiff()を使ってoutPathファイルへ1つのファイルに
'マージする処理を行っています。

RetVal = FAXCTL.SetupPrinter(Tmp_TifFile, "")
If RetVal = SFWER_SUCCESS Then
Printer.Font.Size = 14
Printer.ScaleLeft = -500 'テキスト出力位置を右に移動
Printer.Print FAXText ←←← ここの辺りで止まる
Printer.EndDoc

'送信用TIFFファイルを作成
'outPath がFAX送信用のTIFFファイル

sTiffPage = SFFILE.GetTiffPage(Tmp_TifFile)
For i = 1 To sTiffPage
RetVal = SFFILE.TiffToTiff(Tmp_TifFile, i, outPath)
If RetVal <> SFFI_SUCCESS Then
GoTo SFWError
End If
Next i
Do While (FAXCTL.TerminatePrinter <> 0)
DoEvents
Loop

:
:

'EXCEL出力部分

Set Exl_APP = CreateObject("Excel.Application")

RetVal = FAXCTL.SetupPrinter(Tmp_TifFile, "")
If RetVal = SFWER_SUCCESS Then
With Exl_APP
.Workbooks.Open FileName:=PrintFile
.DisplayAlerts = False
End With
Exl_APP.Sheets.PrintOut _ '改行されるため次の行へ継続
ActivePrinter:=UsePrinterPort ←←← ここの辺りで止まる
Exl_APP.Workbooks.Close

Do While (FAXCTL.TerminatePrinter <> 0)
DoEvents
Loop

:
:

'WORD出力部分
Set Wrd_APP = CreateObject("Word.Application")
RetVal = FAXCTL.SetupPrinter(Tmp_TifFile, "")
If RetVal = SFWER_SUCCESS Then
With Wrd_APP
.Visible = False
.Documents.Open FileName:=PrintFilePath
.DisplayAlerts = False
End With

Wrd_APP.PrintOut Background:=False ←←← ここの辺りで止まる
Wrd_APP.ActiveDocument.Close

Do While (FAXCTL.TerminatePrinter <> 0)
DoEvents
Loop

Wrd_APP.Quit
Set Wrd_APP = Nothing

:
:

'上記Tiffファイルの合成 生成したTIFFファイルの数だけ繰り返し
For J = 1 To FileCount
Tmp_TifFile = DATA_PATH & "\" & J & "-WorkTiff.tif"
sTiffPage = SFFILE.GetTiffPage(Tmp_TifFile)
For i = 1 To sTiffPage
RetVal = SFFILE.TiffToTiff(Tmp_TifFile, i, outPath)
If RetVal <> SFFI_SUCCESS Then
GoTo SFWError
End If
Next i
Next J

Rem FAX送信
RetVal = FAXCTL.FaxSend(FaxHeadder, outPath, FaxNo, "")

:
:

上記の処理の繰り返し

Re: Windows2000がフリーズします。回避策などないでしょうか? - とおりすがり 2004/02/04(Wed) 13:32 No.1371
↓これでなおるのとちゃいますか?
-----------------------------------------------------
http://www.megasoft.co.jp/update/sf2k/203to206.html
NT系プリンタドライバの修正。
EXELで繰り返し印刷をした場合アクセス違反がおこる事がある問題に対応しました。
ドキュメント名に不適切文字が含まれていた場合 ”_”変換する機能を追加しました。
-----------------------------------------------------

Re: Windows2000がフリーズします。回避策などないでしょうか? - ダイスラー 2003/12/11(Thu) 19:55 No.1362
STARFAX2000は安定性が悪いみたいです。
私のとこも使ってますが、OSがフリーズすることはありませんが、
STARFAX2000自体が固まることが多いです。

Re: Windows2000がフリーズします。回避策などないでしょうか? - はあ 2003/12/06(Sat) 23:46 No.1361
STARFAX2002以降にしてみたらどうですか?
2002からずいぶんかわりましたので。

Re^2: Windows2000がフリーズします。回避策などないでしょうか? - SASAKI 2003/12/30(Tue) 11:44 No.1365
ダイスラー さん、 はあ さん レスありがとうございます。
(一緒のレスですみません。)
> STARFAX2000は安定性が悪いみたいです。
> STARFAX2000自体が固まることが多いです。
> STARFAX2002以降にしてみたらどうですか?
> 2002からずいぶんかわりましたので。
↑↑そうですか・・・ プログラム的な方法での解決策って、ないで
しょうか?

新しい製品に、機能的に欲しいものがあるから購入するとういのなら
考えたいのですが、STARFAX2000だと途中で動かなくなるから、新しい
STARFAX2002 を 追加で買って試してみると言うのは、ちょっと怖い
気がします。 同じ現象になるかもしれないですし。

こういうコーディングをするとうまく動かなかったから、これはやめて
おいた方がいいとか、ないでしょうか?


※メガソフトさん、何か回避策とか、少なくともこれはやらないで欲し
 いとか、情報をお持ちではないですか?
 匿名でも良いので、教えていただきたいです・・・・・・・