Win7とWin10のリモートデスクトップ接続でちょっと悩んだ
2020年1月にWindow7のサポートが切れていますが、中にはWin7でしか動かないプログラムもあり、仕方なくWin7をスタンドアロン運用している人が多いかと思います。私なんかは未だにXPを使っているぐらいです。
さて今日は、Win7とWin10のリモートデスクトップ接続でちょっと悩みました。リモートデスクトップ機能はWiin7から標準で備わっているもので、1台のPCを別のPCから遠隔で操作することができます。
結論から述べると、リモートデスクトップ接続がうまくできなかった原因は、Windowsのエディションが対応していないものだったというものです。
今日の反省も踏まえ、接続手順を以下に記載しておきます。とりあえずこの手順で見ていけば接続できるでしょう。
リモートデスクトップ接続手順
①Windowsのエディションを確認
接続する側PC と 接続される側PC でそれぞれ確認します。基本的に接続側は一般的なエディションでOKなのですが、接続される側はエディションが制限されています。
<接続する側PC>
・Windows7 Professional / Ultimate / Enterprise / Starter Home Basic / Home Premium
・Windows10 Pro/ Enterprise / Education / Home
<接続される側PC>
・Windows7 Professional / Ultimate /
・Windows10 Pro/ Enterprise / Education
②接続されるPC側でリモートデスクトップ機能をOnにする
接続されるPC側でリモート接続を許可する設定を行います。リモートデスクトップ機能を利用するためには、あらかじめ対象となるコンピューター上でこの機能を有効にして
おかなければなりません。
コントロールパネル>システムとセキュリティ>システム>設定の変更>リモート(タブ)>「このコンピュータへのリモートアシスタンス接続を許可する」にチェック
③ネットワーク設定(同一ネットワーク下にする)を確認する
僕がよくやる方法はコマンドプロンプト(CMD)からPingを実行する方法です。流れとしては以下の通りです。
・CMDから両PCからそれぞれipconfigでIPアドレスを確認
・同一ネットワークにいるのであればpingで返事が帰ってくるかどうかを確認。返事がきたならネットワーク接続はOK
・pingで返事が帰ってこないときは、イーサネットケーブルがささっているか、ホーム/社内ネットワーク/パブリックネットワーク設定を確認
・そもそも固定IPにしていて同一ネットワークにいないのであれば、IPを変更する
※Win7をスタンドアロンで使用する場合、プライベートであることを明示するために固定IPを「192.168.x.x」に設定しているイメージがあります。情報系の詳しいことは分かりません。
④リモート接続する
接続したいコンピューター名を正確に入力すれば接続できます。それでも接続できない場合は代わりにリモートコンピューターのIPアドレスを入力します。
⑤それでも接続できない
①~④の過程を経ても接続できない場合は、Windwosファイアーウォールの設定を変更することで接続が出来る場合があります。
ただ個人的にはここまでやって接続が出来ないのであれば、TeamViewerのようなフリーソフトをインストールしてあげるのが早い気がします。
【LabVIEW】大容量バイナリファイルを読み込んだらメモリがいっぱいですエラーが解決できた
少し前に、「【LabVIEW】大容量バイナリファイルを読み込んだらメモリがいっぱいですエラー」ということを書きましたが、無事に解決することができました。
前回も書いていますが、エラーの内容を振り返ってみると、大容量バイナリファイルからのデータ読み出しにおいて、一度に全てのデータをごそっと読み出しをしていたがために、1GBの連続メモリを要求していたというものです。下図がエラーを起こしていたプログラム。
大容量ファイルの読み取り部分を、生産者・消費者デザインパターンを使って、一定数毎に読み込んでいく方法をとりました。前回の「【LabVIEW】生産者・消費者デザインパターンだけは知っておくべき」は、今日の布石でした。
下図が変更後のプログラム。これ自体は生産者・消費者デザインパターンではありませんのでご注意を。
簡単にファイル読み取りのところを。
初期バージョンは「バイナリファイルから読み取る関数」のみでしたが、これを「ファイル位置を設定関数」とForループを使って、4096個ずつ読んでいくようにしました。ファイル位置をどこまで読んだかはシフトレジスタを使ってループの間保持させておきます。バイナリファイル内のデータタイプ(1byteなのか2byteデータなのか)によってファイル位置は異なりますので注意してください。あと僕の技術が足りていないところにError処理があるのですが、EOF(End Of File)に到達したときにとりあえずLoop終了にさせています。Error処理の勉強をした方が良いなと思いながら、ひとまず問題が解決できてほっとしています。よかったーーーー(*^^*)