イーサネットで接続されたWindows2000端末を2台用意して、以下の処理を行おうとしています。 端末(1)…画面をハードコピーしbmp形式で保存するアプリケーション(自作)を入れておく。 端末(2)…telnetでマシン(1)にアクセスし、端末(1)の画面ハードコピーアプリケーションを起動する。この処理を行った際、どうもtelnet経由で接続して端末(1)のアプリを起動すると、BitBlt()でエラーとなり上手く動作してくれません。(telnetせず、端末(1)で起動する分には問題なく動作するのですが…。)画面のハードコピーするアプリケーションでは、Win32APIのCreateDC,CreateCompatibleBitmap,CreateCompatibleDC,SelectObject,BitBlt,GetObject,WriteFileを順番に呼び出し、デバイスコンテキストからbitmapイメージを作成しようとしています。telnetで接続した際のみエラーになる原因、またはこの現象の回避方法をご存知の方、いらっしゃいましたら、ご教示いただけますでしょうか??よろしくお願い致します…。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:alcus No.1

回答回数85ベストアンサー獲得回数0

ポイント20pt

http://www.forest.impress.co.jp/library/vnc.html

窓の社 - ソフトライブラリURLを変更いたしました

こういったソフトの利用ではどうでしょう。

id:yusa

VNCを使用する事も考えたのですが、キャプチャした画像のbmpファイルをGZIPで圧縮してtelnet接続している端末に転送するだけの処理なんです。

リアルタイムにデータを転送するわけではないので…。

お答え有難う御座いました。

2003/02/08 09:19:43
id:watal No.2

回答回数130ベストアンサー獲得回数0

ポイント20pt

http://www.sm.rim.or.jp/~shishido/hdcdisp.html

ディスプレイのデバイスコンテキスト

Win32API素人なので、全然間違っているかもしれませんが…

telnetせずに端末1で起動する場合は、コマンドプロンプトから起動して確認してますよね?

まず、端末1でlocalhostにTELNETして(SFUのtelnetサーバ使ってますよね)、そこで正常に取得できるか試してみると、問題の切り分けになるかもしれません。

また、デバイスコンテキストのハンドルが、ちゃんと端末1のDISPLAYから、端末1のファイルへの出力になってるかどうか、とか明示できるところはあるのでしょうか(素人判断ですみません)?

Bitbltの説明です。

GetlastError文を使ってデバグできると書いてあります。

id:yusa

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

>端末1で起動する場合は、コマンドプロンプトから起動して確認してますよね?

そうですね。本来はMKS ToolKit(C++ではない)で

作成した物なのですが、C++上で同様の事を行っても

現象は変わらないので、make環境の違いに依る物では

無いようです。

localhostにtelnetの件とGetLastErrorは未だ

試していないので、早速確認してみます♪

これで原因が特定ができれば問題解決なんですが…。

2003/02/10 09:39:25
id:net_surounin No.3

回答回数99ベストアンサー獲得回数9

ポイント20pt

http://www.mix.ne.jp/commandline.html

コマンドライン版 telnet の接続例

最近、win32 の世界から遠のいているので、外していたらごめんなさい。

socket の 転送モードは どうなっていますか。バイナリモードにちゃんと設定してみると言うのは如何でしょうか。

id:yusa

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

残念ながら、socketは使用していないのです。

exe自体は単純にデスクトップの画像を取得して、

それをbmpファイルに落とすだけなので…。

リモートで起動したときだけ、CreateDCで取得した

ハンドルが毎回同じ値になっており、GetLastError

で詳細を取得すると、『ハンドルが無効』と言われて

しまって…。

ほかにも情報ありましたら、よろしくお願いします。

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

2003/02/12 09:58:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません