記録

画面キャプチャのフリーソフトに目からウロコ、自作してみた。

画面キャプチャのフリーソフトに目からウロコ、自分も自作してみた。 作った経緯は、会社で画面キャプチャのフリーソフトを 教えてもらったのがキッカケです。 こんなのあるだ、凄く便利、おそらく自分が自作した モノより安定して動くと思います。 (なんか自分でも作れそうという思いにかられ作りました。) ちなみに自分の画面保存のフリーソフトは Windows10でしか動作を検証していません。 あと、動かないという方はソースコードを公開しますので 自分で作り直してください。 本当はもっと良いものを作りたかったのですが・・・ 透過する処理(this.TransparencyKey)を追加するとマウスイベントが うまく制御できなかったので、手っ取り早い対応で 乗り切ったのですが・・・。 直したい気持ちが強いです(無駄多し)。 ダウンロードはこちらから→zip358.com/tool/gamen.zip トイウコトデC#でのソースコードを貼っときます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 画面キャプチャ
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //透明を指定する
            this.TransparencyKey = this.BackColor;
        }
        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
        }
        private void jPGToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width-16, this.Height-66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength>0){
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X+8, this.Location.Y+58), new Point(0, 0), bm.Size);
            // JPGで保存
            bm.Save(strMyDoc + "\\" + dname + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".jpg」の名前で保存しました");
        }
        private void pNGToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width - 16, this.Height - 66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength > 0)
            {
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X + 8, this.Location.Y + 58), new Point(0, 0), bm.Size);
            // PNGで保存
            bm.Save(strMyDoc + "\\" + dname + ".png", System.Drawing.Imaging.ImageFormat.Png);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".png」の名前で保存しました");
        }
        private void bMPToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width - 16, this.Height - 66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength > 0)
            {
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X + 8, this.Location.Y + 58), new Point(0, 0), bm.Size);
            // BMPで保存
            bm.Save(strMyDoc + "\\" + dname + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".bmp」の名前で保存しました");
        }
        private void gifToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strMyDoc;
            string dname;
            // 画像のサイズを指定し、Bitmapオブジェクトのインスタンスを作成
            Bitmap bm = new Bitmap(this.Width - 16, this.Height - 66);
            // Graphicsオブジェクトのインスタンスを作成
            Graphics gr = Graphics.FromImage(bm);
            strMyDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            DateTime dt = DateTime.Now;
            dname = dt.ToString("yyyy-MM-dd-HH_mm_ss");
            if (toolStripTextBox1.TextLength > 0)
            {
                dname = toolStripTextBox1.Text;
            }
            gr.CopyFromScreen(new Point(this.Location.X + 8, this.Location.Y + 58), new Point(0, 0), bm.Size);
            // gifで保存
            bm.Save(strMyDoc + "\\" + dname + ".gif", System.Drawing.Imaging.ImageFormat.Gif);
            gr.Dispose();
            MessageBox.Show("ドキュメントに「" + dname + ".gif」の名前で保存しました");
        }
        private void toolStripTextBox1_Click(object sender, EventArgs e)
        {
        }
    }
}
   

活動支援よろしくお願いします

トランプキャンペーンのボットがアクセスしてくる。前のページ

チームラボ猪子寿之氏の事を凡人が語る。次のページ

関連記事

  1. 記録

    公言したことを途中で辞める理由⇒反省の記事!?

    おはようございます、今日の朝は一段と寒さを感じる朝ですね😣さ…

  2. close up photo of water drops

    記録

    デスクツアーをYOUTUBEで見るのが好きです。あんなデスクにしたいよね!!

    おはようございます。こういうデスクツアーものを見ているとポチ…

  3. 記録

    一時間に一回だけAPIを実行するPHPのオブジェクトファイル

    あるユーザーが公開しているプログラミングを参考にしてオブジェク…

  4. 記録

    中国では顔パス支払いが出来るそうですね。

    中国では顔パス支払いが出来るそうですが、日本では未だにキャッシ…

  5. 記録

    PHPでバインドするこれでSQLの脆弱性が!?

    上記の画像では脆弱性がある。PHPでバインドするこれでSQLの脆…

2016年11月
 123456
78910111213
14151617181920
21222324252627
282930  

カテゴリー

PAGE TOP