みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VSexpress2010で参照を追加する

Visual Studio Express 2012 for Desktop C# で
プログラミングを学習していますが、
ウェブページからコピペしてきた多くのソースコードが
(using からソースのままなのに)ビルドできません。

おそらくソースコードがASPなどを
用いているから?だと思うのですが、
プロジェクト→新しいデータソースの追加→オブジェクト
からSystem_Windows_Formsを参照しようとしても
".NETアセンブリへの参照を追加してください"と
メッセージが出て追加できません。

そこで質問ですが、.NETアセンブリは
どうやって、どのファイル?を参照に追加すればいいのでしょうか。

プログラミングについて疎く、
文章があってるかどうか わかりませんが、よろしくお願いします。

投稿日時 - 2014-07-29 18:15:18

QNo.8697054

困ってます

質問者が選んだベストアンサー

少なくとも、そのプログラムにASPは関係ありません。

> "プロジェクト→参照の追加"からSystem.Windows.Formsを追加しようとした

具体的にどのように操作したのでしょう?

追加の画面の「.NET」から「System.Windows.Forms」を選んで追加
としましたか?何かのDLLファイルを直接指定するようなことはしていませんか?

また、そのプロジェクトはどうやって用意しましたか?
Windowsフォームプロジェクトを最初から選べば、参照も元から追加されているはずです。


> どの語を使うときusingを追加するか、とか記述規則など、本当は手順を踏んで学習していきたいのですが、
> そういったことが掲載されていて なおかつ理解できる書籍やサイトがない

VSに付属のヘルプや、MSDNのサイトがありますが。
例えば、 Point でエラーになる件ですが、 .NET Frameworksの Point を検索すると
http://msdn.microsoft.com/ja-jp/library/system.drawing.point%28v=vs.110%29.aspx
が見付かります。4.5のものは今現在は機械翻訳のもので、ちょっとあやしい日本語になっていますので英語で読むのがよいでしょう。
また、過去のバージョンの資料も読めます。例えば3.5なら
http://msdn.microsoft.com/ja-jp/library/system.drawing.point%28v=vs.90%29.aspx
です。

で、マニュアルですが、必ず次のような記述があります
> 名前空間 : System.Drawing
> アセンブリ : System.Drawing (System.Drawing.dll 内)

usingに使うのは「名前空間」です。usingで使わないなら、 System.Drawing.Point のようにして使います。
アセンブリは、参照に追加しなければならないものです。


> 当面の目標は、特定のウェブページからキーワードを拾ってExcelに出力することで、
> そのためにマウスの右クリックなどをプログラムから使いたいと思っています。

どんなことを目指しているのか、ちょっとよくわかりません。
もし、「IEの画面にマウスを移動させて右クリック→コピー」をプログラムから行いたい、ということなら、 UWSCのような自動操作用ツールを使うのが楽です。逆にC#でどこまでできるか不明です。
データが欲しいだけなら、直接ダウンロードしてHTMLを解析して必要な部分を抜き出す、という方法もあります。
これらは「ウェブスクレイピング」(あるいは単にスクレイピング)と呼ばれるものです。
http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0

投稿日時 - 2014-07-31 02:59:45

お礼

Microsoftのページは時々見ていましたが
改めて探ってみてプログラミングガイドの存在に
今更気づきました。
これなら理解できそうで、内容も豊富なので読んで勉強します。

作ろうとしていたマウスの動作は、プログラムとツールを
組み合わせて望むものができました。
ですので、質問を締め切ることにします。

おかげさまでとても助かりました。ありがとうございました。

投稿日時 - 2014-07-31 19:30:44

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

あなたは、何をするために、何をしようとしているのですか?
それがまったく不明なので、回答のしようがありません。

> ウェブページからコピペしてきた多くのソースコードが
> (using からソースのままなのに)ビルドできません。

どう「ビルドできません」なのでしょう?
エラーメッセージを読んで、何が原因なのかをはっきりさせましょう。

コピペして動いた動かない、だけでは、ただの「作業」です。
中身を確認し、理解するのが勉強です。

単純に、コピペミスで、余計な文字が入っていたり、必要な部分が切れてしまっただけかもしれません。
コピペは正しいとしても
・それ単独で動作するプログラムではない。それを呼び出す別のコードが必要
・元々のコードにミスがあるので、コピペしても動かない
・4.5用なので2010では対応していない
等々と「ビルドできない」「動かない」原因は沢山考えられ、それぞれに対策が違います。


> おそらくソースコードがASPなどを
> 用いているから?だと思うのですが

「おそらく」ではなく、ちゃんとした根拠で結論を出してください。


> プロジェクト→新しいデータソースの追加→オブジェクト

http://msdn.microsoft.com/ja-jp/library/w4dd7z6t%28v=vs.100%29.aspx

これは、データベースやその他の「データ」に接続するための方法です。
ASPとは基本的に関係ありません。
そもそもあなたの目的は「データベース等に接続する」ことですか?


ビルドに必要なライブラリが参照されていない場合は、こちらです
http://msdn.microsoft.com/ja-jp/library/wkze6zky%28v=vs.100%29.aspx
これもやたらと「追加」したらいいというものではありません。
下手に追加すると、ライブラリ同士が衝突してかえってエラーを増やしてしまうこともあります。

投稿日時 - 2014-07-30 03:22:47

補足

マウスをプログラム上の記述どおりに操作するプログラムを作ろうとしています。
そこでとりあえずマウスのX,Y座標を取得するプログラムを試しています。
コピペではなくなってしまいましたが、↓がProgram.csの全文です。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Diagnostics; //inputidle動作

namespace st6
{
public class ProcessStart
{
static void Main()
{
int X = System.Windows.Forms.Cursor.Position.X; // X 座標 の取得
     int Y = System.Windows.Forms.Cursor.Position.Y; // Y 座標 の取得

Point pos = new Point(100, 250);
System.Windows.Forms.Cursor.Position = pos; // 座標(100, 250)に設定
}
}
}


今出ているエラーは↓です。(Main中の各行について)
--------------------
型または名前空間名 'Forms' は名前空間 'System.Windows' に存在しません。アセンブリ参照が不足しています。

型または名前空間名 'Point' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
--------------------

System.Windows.Forms.を参照に加えれば前者のエラーは取り除けるのではないかと考え、
"プロジェクト→参照の追加"からSystem.Windows.Formsを追加しようとしたものの、
".NETアセンブリへの参照を追加してください"とメッセージが出て追加できないので行き詰っています。


追記:
どの語を使うときusingを追加するか、とか記述規則など、本当は手順を踏んで学習していきたいのですが、
そういったことが掲載されていて なおかつ理解できる書籍やサイトがないので、
動作するプログラムの内容を解読して理解しようとしている次第です。

当面の目標は、特定のウェブページからキーワードを拾ってExcelに出力することで、
そのためにマウスの右クリックなどをプログラムから使いたいと思っています。
もしこの目的に叶う、推奨する本やURLがありましたら教えていただけませんか。

投稿日時 - 2014-07-30 11:47:33

お礼

早速の回答ありがとうございます。
おっしゃるとおり、私の質問文は要領を得なかったようですので、
補足を入れます。

投稿日時 - 2014-07-30 11:45:57