using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Windows;
namespace LauncherKun
{
/// <summary>
/// Window1.xaml の相互作用ロジック
/// </summary>
public partial class Window1 : Window
{
const string UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
const string PathEditor = @"C:\Program Files\sakura\sakura.exe"; //Sakura
public Window1()
{
InitializeComponent();
}
private void btnC01_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"slnのフルパス");
}
private void btnC02_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"slnのフルパス");
}
private void btnC03_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"exeのフルパス");
}
private void btnC04_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"slnのフルパス");
}
private void btnC06_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"slnのフルパス");
}
private void btnC08_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"slnのフルパス");
}
private void btnD01_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"exeのフルパス");
}
private void btnWinScp_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"WinScpの設定のテキストファイルのフルパス");
}
private void btnClipBasic_Click(object sender, RoutedEventArgs e)
{
// クリップボートのURLを取得
string TargetURL = GetClipboard();
// http:// 、 https:// の両方とも無い場合は補完
if (TargetURL.StartsWith("http://") == false
&& TargetURL.StartsWith("https://") == false) {
TargetURL = "http://" + TargetURL;
}
var Ins_Z01_DriveIDPassFromDomain = new _Z01_DriveUserPassFromDomain(TargetURL);
string BasicUser = Ins_Z01_DriveIDPassFromDomain.GetUser();
string BasicPass = Ins_Z01_DriveIDPassFromDomain.GetPass();
string AddStr = string.Format("{0}:{1}@", BasicUser, BasicPass);
// Basic認証を付与
TargetURL = Regex.Replace(TargetURL, @"(?<=^https?://)", AddStr);
// クリップボートにURLを設定
//Clipboard.SetDataObject(TargetURL, true);
Clipboard.SetText(TargetURL);
this.Close();
}
private void btnCSharpTool_Click(object sender, RoutedEventArgs e)
{
ExecProcess(@"C#のツール集のフルパス");
}
private void btnEnd_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
// exeやslnのフルパスを引数として、プロセスを起動する
private void ExecProcess(string pFileFullPath)
{
var InsProcessStartInfo = new System.Diagnostics.ProcessStartInfo();
InsProcessStartInfo.FileName = pFileFullPath;
InsProcessStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
System.Diagnostics.Process.Start(InsProcessStartInfo);
this.Close();
}
// クリップボートのURLを返す
static string GetClipboard()
{
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
return iData.GetData(DataFormats.Text).ToString();
return "";
}
// クリップボートのJSファイルURLを開く
private void btnJSFileRead_Click(object sender, RoutedEventArgs e)
{
string TargetURL = GetClipboard();
// view-source: スキームは削除
if (TargetURL.StartsWith("view-source:")) {
TargetURL = TargetURL.Replace("view-source:", "");
}
string[] HtmlLineDataArr = GetTargetURLHtmlLineDataArr(TargetURL);
// テキストファイルに保存
string FileName = DateTime.Now.ToString("yyyy年MM月dd日HH時mm分ss秒") + ".js";
string SaveFullPath = System.IO.Path.Combine(getWorkFolder(), FileName);
System.IO.File.WriteAllLines(SaveFullPath, HtmlLineDataArr);
// テキストファイルを開く
var InsProcessStartInfo = new System.Diagnostics.ProcessStartInfo();
InsProcessStartInfo.FileName = PathEditor;
InsProcessStartInfo.Arguments = SaveFullPath;
InsProcessStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized;
System.Diagnostics.Process.Start(InsProcessStartInfo);
this.Close();
}
// 調査対象のhtmlの行ごとのstring型の配列を返す
static string[] GetTargetURLHtmlLineDataArr(string pTargetURL)
{
var WillReturn = new List<string>();
try {
var wc = new System.Net.WebClient();
wc.Headers.Add("user-agent", UserAgent);
var Ins_Z01_DriveIDPassFromDomain = new _Z01_DriveUserPassFromDomain(pTargetURL);
string BasicUser = Ins_Z01_DriveIDPassFromDomain.GetUser();
string BasicPass = Ins_Z01_DriveIDPassFromDomain.GetPass();
var namePassword = string.Format("{0}:{1}", BasicUser, BasicPass);
var chars = System.Text.Encoding.ASCII.GetBytes(namePassword);
var base64 = Convert.ToBase64String(chars);
wc.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + base64;
System.IO.Stream st = wc.OpenRead(pTargetURL);
var sr = new System.IO.StreamReader(st);
string Line;
while ((Line = sr.ReadLine()) != null) {
WillReturn.Add(Line);
}
sr.Close(); wc.Dispose();
}
catch (Exception e) {
Console.WriteLine(e.Message);
}
return WillReturn.ToArray();
}
// Dドライブが無かったらCドライブを使う
static private string getWorkFolder()
{
return System.IO.Directory.Exists(@"D:\WorkFile\") ? @"D:\WorkFile\" : @"C:\WorkFile\";
}
}
}