CreatePrinterメソッドの仕様について

HOME › フォーラム › 旧サポート掲示板 › CreatePrinterメソッドの仕様について

  • このトピックは空です。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #662
    HogeHoge
    ゲスト

    お世話になっております。
    WR3.1、WinXpHE、VB6です。

    CreatePrinterメソッドの仕様についてお尋ねします。
    同じネットワーク上にプリンタが3台(仮にA、B、C)接
    続されており、PC1にはこのうちAとBのぶんのみのプリ
    ンタが認識(ドライバインストール)されています。
    別なPC2ではA~Cすべて認識されております。

    PC2の方でPrinterNameメソッドでプリンタCの名称文字列
    を取得して、共有フォルダ上にあるINIファイルに書き込みま
    す。

    PC1から上記INIファイルのプリンタC名称文字列を取得し
    CreatePrinterメソッドの引数として渡して同メソッドをコー
    ルした場合の正しい動作としてはオートメーションエラーが
    発生するという認識でいいのでしょうか?

    #663
    伊藤@ソフトウィング
    ゲスト

    日頃より弊社製品をご利用いただきまして、誠にありがとうございます。

    弊社にてCreatePrinterメソッドにプリンタと認識されない不正な値を引数として実行しました所、プリンタオブジェクトは作成されませんでしたが、オートメーションエラーが発生する事はありませんでした。

    お手数をお掛けして申し訳御座いませんが、具体的にどのようなプリンタ名を設定した際に、オートメーションエラーが発生したのかご連絡を頂けませんでしょうか。

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

    #664
    HogeHoge
    ゲスト

    お世話になっております。

    >お手数をお掛けして申し訳御座いませんが、具体的にどの>ようなプリンタ名を設定した際に、オートメーションエラ>ーが発生したのかご連絡を頂けませんでしょうか。

    オートメーションエラーが発生したのは
    CreatePrinterメソッドにプリンタ名として
    “NEC MultiWriter2350/2350N”
    を渡したときです。

    実は、客先ではオートメーションエラーが発生せず「通常
    使うプリンタ」として設定してあるプリンタに出力されま
    した。
    この時CreatePrinterメソッドに渡したプリンタ名は
    “NEC MultiWriter2360/2360N” (5ではなく6)
    です。出力されたプリンタは
    “NEC MultiWriter8200N”です。

    CreatePrinterメソッドに渡したプリンタ名が異なるとは
    いえ、動作としては2種類の違いが確認できましたので
    どのような仕様なのか知りたく、もともとの質問となりま
    した。

    #665
    伊藤@ソフトウィング
    ゲスト

    日頃より弊社製品をご利用いただきまして、誠にありがとうございます。

    設定プリンタ名をご連絡頂きましてありがとうございました。

    先日お答えしました内容に誤りが御座いまして訂正させていただきます。
    CreatePrinterメソッドに不正なプリンタ名を指定した際の処理ですが、先日”オートメーションエラーが発生する事はありませんでした。”とお答えしましたが、オートメーションエラーは発生します。
    不正なプリンタ名を指定した場合、プリンタオブジェクトが作成されずにオートメーションエラーが発生する事が正しい処理となります。
    ご迷惑をお掛けして申し訳御座いませんでした。

    通常使用するプリンタで印刷が行われた件についてですが、CreatePrinterメソッドでは引数に空白を設定する事で通常使用するプリンタにてプリンタオブジェクトが作成されます。
    タイミングによって空白が設定されるような事はないかご確認頂けませんでしょうか?

    又、空白が設定されていないにも関わらず通常使用するプリンタで印刷が行われている場合、こちらは調査する必要が御座いますが現状の回避方法としては以下の方法が考えられます。

    INIファイルからプリンタ名を取得した際に直接CreatePrinterを行うのではなく、そのプリンタがシステム上に存在するか(インストールされているか)予め確認する方法が御座います。
    PrinterDevicesプロパティとPrinterNameメソッドを組み合わせる事で、システムに存在するプリンタを列挙する事が可能ですので、存在しなかった場合の処理を用意して頂ければ回避する事が可能と考えられます。
    こちらの処理のサンプルはヘルプを参照して頂くか、WingReportのインストール先に御座いますSample-VB-VB6-Sample2を参照して下さい。

    以上、お手数をお掛けして申し訳御座いませんが宜しくお願い致します。

    #666
    HogeHoge
    ゲスト

    お世話になっております。

    >不正なプリンタ名を指定した場合、プリンタオブジェクト
    >が作成されずにオートメーションエラーが発生する事が正
    >しい処理となります。

    お報せありがとうございます。これが知りたかったのです。

    >通常使用するプリンタで印刷が行われた件についてですが、
    >CreatePrinterメソッドでは引数に空白を設定する事で通
    >常使用するプリンタにてプリンタオブジェクトが作成され
    >ます。
    >タイミングによって空白が設定されるような事はないかご確
    >認頂けませんでしょうか?

    空白が設定されていました。ですのでくだんの現象も納得
    です。

    >又、空白が設定されていないにも関わらず通常使用するプリ
    >ンタで印刷が行われている場合、こちらは調査する必要が御
    >座いますが現状の回避方法としては以下の方法が考えられま
    >す。

    こちらも有益なお報せ、ありがとうございました。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。