2012年12月28日金曜日
Windows Rubyでgem install jsonを実行するとエラーになる
Windows Rubyでgem install jsonを実行するとエラーになる
Please login or register to vote for this post.
(click on this box to dismiss)
1) Download Ruby 1.9.3-p0
2) Download DevKit file from http://rubyinstaller.org/downloads (DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe)
3) Extract DevKit to path C:\Ruby193\DevKit
4) cd C:\Ruby193\DevKit
5) ruby dk.rb init
6) ruby dk.rb review
7) ruby dk.rb install
2012年12月7日金曜日
.net 書式
標準の日時書式指定文字列
以下に、標準の日時書式指定文字列で使用できる書式指定子を表にまとめます。書式指定子 | 名前 | 説明 | 例 (ja-JP) | 例 (en-US) |
---|---|---|---|---|
d | 短い形式の日付パターン | ToShortDateStringメソッドと同じ | 2002/05/12 | 5/12/2002 |
D | 長い形式の日付パターン | ToLongDateStringメソッドと同じ | 2002年5月12日 | Friday, May 12, 2002 |
t | 短い形式の時刻パターン | ToShortTimeStringメソッドと同じ | 20:30 | 8:30 PM |
T | 長い形式の時刻パターン | ToLongTimeStringメソッドと同じ | 20:30:15 | 8:30:15 PM |
f | 完全な日付と時刻のパターン (短い形式の時刻) | D と t を空白で区切って組み合わせる | 2002年5月12日 20:30 | Friday, May 12, 2002 8:30 PM |
F | 完全な日付と時刻のパターン (長い形式の時刻) | D と T を空白で区切って組み合わせる | 2002年5月12日 20:30:15 | Friday, May 12, 2002 8:30:15 PM |
g | 一般の日付と時刻のパターン (短い形式の時刻) | d と t を空白で区切って組み合わせる | 2002/05/12 20:30 | 5/12/2002 8:30 PM |
G | 一般の日付と時刻のパターン (長い形式の時刻) | d と T を空白で区切って組み合わせる | 2002/05/12 20:30:15 | 5/12/2002 8:30:15 PM |
Y または y | 年月パターン | 2002年5月 | May, 2002 | |
m または M | 月日パターン | 5月12日 | May 12 | |
r または R | RFC1123 パターン | RFC1123に準拠しており、カルチャに依存しない | Sun, 12 May 2002 20:30:15 GMT | Sun, 12 May 2002 20:30:15 GMT |
O または o | ラウンド トリップする日付と時刻のパターン | ISO 8601に準拠しており、カルチャに依存しない .NET Framework 2.0以降でサポート |
2002-05-12T20:30:15.1230000 | 2002-05-12T20:30:15.1230000 |
s | 並べ替え可能な日付と時刻のパターン (ISO 8601 準拠) | ISO 8601に準拠しており、カルチャに依存しない | 2002-05-12T20:30:15 | 2002-05-12T20:30:15 |
u | 並べ替え可能な日付と時刻のパターン (世界時刻) | カルチャに依存しない ToUniversalTimeメソッドなどで世界協定時刻 (UTC) に変換してからこの書式を使う |
2002-05-12 20:30:15Z | 2002-05-12 20:30:15Z |
U | 完全な日付と時刻のパターン (世界時刻) | F と同じ書式だが、こちらは UTC 変換される DateTimeOffset 型ではサポートしない |
2002年5月12日 11:30:15 | Sunday, May 12, 2002 11:30:15 AM |
その他の 1 文字 | (未定義の指定子) | FormatException をスローする |
補足:標準の日時書式指定文字列は、以下に紹介するカスタム日時書式指定文字列のエイリアスです。つまり、標準の日時書式指定文字列を使うということは、
そのエイリアスのカスタム日時書式指定文字列を使うことと同じです。どのようなカスタム日時書式指定文字列が使われるかは、カルチャによって変わる場合と
変わらない場合があります。カルチャによって変わる場合は、エイリアスとなるカスタム日時書式指定文字列は
CultureInfo.DateTimeFormatプロパティに定義されています。具体的には、「標準の日付と時刻の書式指定文字列」をご覧ください。
カスタム日時書式指定文字列
以下に、カスタム日時書式指定文字列で使用できる書式指定子を表にまとめます。書式指定子 | 説明 | 補足 | 例 (ja-JP) | 例 (en-US) |
---|---|---|---|---|
g, gg (任意の数の g 指定子を追加可能) | 年代または紀元 | 西暦 | A.D. | |
y | 年の下1桁または2桁 (0~99) | 1桁の時でも左側に0が入らない | 2 | 2 |
yy | 年の下2桁 (00~99) | 1桁の時は左側に0が入る | 02 | 02 |
yyy | 年の下3桁以上 | 3桁未満の時は左側に0が入る .NET Framework 2.0以降でサポート |
2002 | 2002 |
yyyy | 年の下4桁 | 4桁未満の時は左側に0が入る | 2002 | 2002 |
yyyyy (任意の数の y 指定子を追加可能) | 年の下5桁 | 5桁未満の時は左側に0が入る .NET Framework 2.0以降でサポート |
02002 | 02002 |
M | 月 (1~12) | 1桁の時でも左側に0が入らない | 5 | 5 |
MM | 月 (01~12) | 1桁の時は左側に0が入る | 05 | 05 |
MMM | 月の省略名 | 5 | May | |
MMMM | 月の完全な名前 | 5月 | May | |
d | 日にち (1~31) | 1桁の日にちでも左側に0が入らない | 12 | 12 |
dd | 日にち (01~31) | 1桁の時は左側に0が入る | 12 | 12 |
ddd | 曜日の省略名 | 日 | Sun | |
dddd (任意の数の d 指定子を追加可能) | 曜日の完全な名前 | 日曜日 | Sunday | |
t | AM/PMの最初の文字 | カルチャが"ja-JP"の時は午前も午後も「午」になるため、役に立たない | 午 | P |
tt, tt (任意の数の t 指定子を追加可能) | AM/PM | 午後 | PM | |
H | 時間 (0~23) | 1桁の時でも左側に0が入らない | 20 | 20 |
HH, HH (任意の数の H 指定子を追加可能) | 時間 (00~23) | 1桁の時は左側に0が入る | 20 | 20 |
h | 時間 (1~12) | 午前と午後は区別できない 1桁の時でも左側に0が入らない |
8 | 8 |
hh, hh (任意の数の h 指定子を追加可能) | 時間 (01~12) | 午前と午後は区別できない 1桁の時は左側に0が入る |
08 | 08 |
m | 分 (0~59) | 1桁の時でも左側に0が入らない | 30 | 30 |
mm, mm (任意の数の m 指定子を追加可能) | 分 (00~59) | 1桁の時は左側に0が入る | 30 | 30 |
s | 秒 (0~59) | 1桁の時でも左側に0が入らない | 15 | 15 |
ss, ss (任意の数の s 指定子を追加可能) | 秒 (00~59) | 1桁の時は左側に0が入る | 15 | 15 |
f | 1/10秒 | 0 の時は"0"となる(以下の ff... も f の数だけ 0 を表示) | 1 | 1 |
ff | 1/100秒 | 12 | 12 | |
fff | 1/1000秒 | 123 | 123 | |
ffff | 1/10000秒 | 1230 | 1230 | |
fffff | 1/100000秒 | 12300 | 12300 | |
ffffff | 1/1000000秒 | 123000 | 123000 | |
fffffff | 1/10000000秒 | 1230000 | 1230000 | |
F | 1/10秒 | 0 の時は何も表示しない(以下の FF... も同じ) | 1 | 1 |
FF | 1/100秒 | 左側に 0 があっても表示しない(以下の FFF... も同じ) | 12 | 12 |
FFF | 1/1000秒 | 123 | 123 | |
FFFF | 1/10000秒 | 123 | 123 | |
FFFFF | 1/100000秒 | 123 | 123 | |
FFFFFF | 1/1000000秒 | 123 | 123 | |
FFFFFFF | 1/10000000秒 | 123 | 123 | |
K | タイム ゾーン情報 | DateTimeの場合は、Kindプロパティの値によって定義が異なる。Localなら「zzz」に相当。Utcなら「Z」。Unspecifiedなら空文字。 DateTimeOffsetの場合は、「zz」に相当。 .NET Framework 2.0以降でサポート |
||
z | UTCを基準とするオフセット(時間単位) | DateTimeの場合は、OSのローカルタイムゾーンのUTCを基準とした符号付きオフセット(時間単位) DateTimeOffsetの場合は、DateTimeOffset値の、UTCを基準とするオフセット(時間単位) 1桁の時でも左側に0が入らない |
+9 | +9 |
zz | UTCを基準とするオフセット(時間単位) | z と同じだが、1桁の時は左側に0が入る | +09 | +09 |
zzz, zzz (任意の数の z 指定子を追加可能) | UTCを基準とするオフセット(時間および分単位) | zz と同じだが、時間および分単位 | +09:00 | +09:00 |
: / |
区切り記号 | カルチャによって変わる | : | : |
'string' "string" |
文字列リテラル | シングルクォートまたはダブルクオートで囲まれた文字列はそのまま表示される | ||
%c | カスタム書式指定子を単独で使用する | カスタム日時書式指定文字列を単独で使っても標準の日時書式指定文字列とならないようにする 例えば、"%d"とすれば日にちの書式となる |
||
\c | エスケープ文字 | 書式指定子をエスケープする | ||
その他の文字 | その他の文字はそのまま表示される |
2012年12月6日木曜日
Native Client. Debugging With Visual Studio
Native Client. Debugging With Visual Studio
Native Clientが、Visual Studio でdebug出来るようになっていた。
eclipseでdebugはあったが、今年の10月に、Visual Studio で出来るようになっていた。
Silverlight、Flex(Adobe AIR)など、RIAが停滞しているので、ちょっと評価してみようかな。
https://developers.google.com/native-client/dev/devguide/devcycle/vs-addin
Native Clientが、Visual Studio でdebug出来るようになっていた。
eclipseでdebugはあったが、今年の10月に、Visual Studio で出来るようになっていた。
Silverlight、Flex(Adobe AIR)など、RIAが停滞しているので、ちょっと評価してみようかな。
https://developers.google.com/native-client/dev/devguide/devcycle/vs-addin
Telerik onClientの指定は注意が必要
Telerik Control Problem.
Telerik ControlでonClient~のClient APIを指定する場合注意が必要
通常は、JavaScriptの関数指定は、カッコ()が必要だが
Telerik Controlはカッコ()が不要だった。
カッコ()を付けると、ASP:のControlが非表示、Telerik Controlも動作しない。
上記により、多分 JavaScript側でエラーがある、動作しないと思われる。
しかも、このエラーは動作時に発生して、エラー表示もされない。
2012/12/06追記
RadButtonに関して
AutoPostBack="false"
上記設定を行うとJavaScriptが正しく動作した。
Telerik ControlでonClient~のClient APIを指定する場合注意が必要
通常は、JavaScriptの関数指定は、カッコ()が必要だが
Telerik Controlはカッコ()が不要だった。
カッコ()を付けると、ASP:のControlが非表示、Telerik Controlも動作しない。
上記により、多分 JavaScript側でエラーがある、動作しないと思われる。
しかも、このエラーは動作時に発生して、エラー表示もされない。
2012/12/06追記
RadButtonに関して
AutoPostBack="false"
上記設定を行うとJavaScriptが正しく動作した。
2012年12月5日水曜日
Telerik RadWindows problem
Telerik RadWindows problem.
button attribute set is onClientClick="ShowNewForm; return false;";
<Script>
founction ShowNewForm() {
window.radopen("aPage.html", "RadWindows1");
}
</script>
赤字になっている部分を設定しないとRadWindowが表示後、直ぐに画面から消えてしまう。
半日悩んだよ。
http://stackoverflow.com/questions/6087935/radwindow-proplem
それと、Telerik ControlのJavaScriptの指定が重なり、とほほ状態だった。
http://nobukoshi802.blogspot.jp/2012/12/telerik-onclient.html
button attribute set is onClientClick="ShowNewForm; return false;";
<Script>
founction ShowNewForm() {
window.radopen("aPage.html", "RadWindows1");
}
</script>
赤字になっている部分を設定しないとRadWindowが表示後、直ぐに画面から消えてしまう。
半日悩んだよ。
http://stackoverflow.com/questions/6087935/radwindow-proplem
それと、Telerik ControlのJavaScriptの指定が重なり、とほほ状態だった。
http://nobukoshi802.blogspot.jp/2012/12/telerik-onclient.html
2012年11月19日月曜日
2012年11月15日木曜日
動作中のプロセスにキー入力をするフォームアプリケーション
動作中のプロセスにキー入力をするフォームアプリケーション
.NETで他のプロセスにキー入力をする必要があったので、その方法について.NETを前提で調べました。結果、MSDNと@ITとかそこらを調べるだけでなんとかなりました。
プロセス一覧の取得
System.Diagnostics.Process.GetProcesses()でProcessインスタンスの配列が手に入ります。 Process.IdだとかProcess.MainWindowHandleなどをつかってプロセスの情報にアクセスし操作します。キーストロークの入力
System.Windows.Forms.SendKeys.Send(string)で、アクティブなプロセスにキー入力をできます。プロセスをアクティブにするためWIN32APIのSetForegroundWindowを使いました。
参考:MSDN http://msdn.microsoft.com/ja-jp/library/system.windows.forms.sendkeys(v=vs.80).aspx
流れ
プログラムの流れは、という感じの流れでプログラムを作りました。上の画像では、chromeに「Ctrl+t Ctrl+k エ イ プ リ ル フ ー ル (エンターキー)」を入力して、「エイプリルフール」という文字列でgoogle検索させようとしています。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.Runtime.InteropServices; // setforegraoundwindow namespace SendKeyType { public partial class Form1 : Form { public Form1() { InitializeComponent(); } // http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html [DllImport("user32.dll")] private static extern bool SetForegroundWindow(IntPtr hWnd); private void button2_Click(object sender, EventArgs e) { // 選択しているプロセスをアクティブ int pid = int.Parse(comboBox1.SelectedValue.ToString()); Process p = Process.GetProcessById(pid); SetForegroundWindow(p.MainWindowHandle); // キーストロークを送信 SendKeys.Send(textBox1.Text); } private void button3_Click(object sender, EventArgs e) { // プロセス一覧を更新 comboBox1.DataSource = ProcessTable(); comboBox1.ValueMember = "PID"; comboBox1.DisplayMember = "NAME"; } private DataTable ProcessTable() { // プロセスのリストを取得 // http://d.hatena.ne.jp/tomoemon/20080430/p2 Process[] ps = Process.GetProcesses(); Array.Sort(ps, new ProcComparator()); DataTable table = new DataTable(); table.Columns.Add("PID"); table.Columns.Add("NAME"); foreach (Process p in ps) { DataRow row = table.NewRow(); row.SetField<int>("PID", p.Id); row.SetField<string>("NAME", p.ProcessName + " - " + p.MainWindowTitle); table.Rows.Add(row); } table.AcceptChanges(); return table; } // ..... } // プロセス名でソート ... for Array.Sort public class ProcComparator : IComparer<Process> { public int Compare(Process p, Process q) { return p.ProcessName.CompareTo(q.ProcessName); } }
元ネタ
http://d.hatena.ne.jp/yatt/20110402/1301731512
COM to Keyborad
COMポートからキーボードへ変換するソフト
http://park19.wakwak.com/~gadget_factory/factory/comkey/index.html
QRCodeを読んで受注入力の保管をお願いされたが
入力画面でPFKeyの入力が必要になった。
QRCodeでは、文字、数字はOKだが、PFKeyはNGだった。
1万から2万くらいで変換ソフトはあるが、フリーが無かったので探していたら
上記のソフトを見つけました。
http://park19.wakwak.com/~gadget_factory/factory/comkey/index.html
QRCodeを読んで受注入力の保管をお願いされたが
入力画面でPFKeyの入力が必要になった。
QRCodeでは、文字、数字はOKだが、PFKeyはNGだった。
1万から2万くらいで変換ソフトはあるが、フリーが無かったので探していたら
上記のソフトを見つけました。
QRCode Library
.NET QRCode Library
Code Project
http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library
QRコードで入力受注入力を補完することが出来るかも。
Code Project
http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library
QRコードで入力受注入力を補完することが出来るかも。
2012年11月14日水曜日
2012年11月9日金曜日
2012年11月7日水曜日
JBolt 起動時にアプリを有効にする方法
JBolt 起動時にアプリを有効にする方法
JBoltサービスを起動してもアプリは無効になっている場合
1.OSサービスで、iBoltサービスを起動にする。
JBoltサービスを起動してもアプリは無効になっている場合
1.OSサービスで、iBoltサービスを起動にする。
2.iBol tアプリをr e-buil dする
3.mgrb .iniに、 アプリ起動の ecfを指定 する
MAGIC Broker に、起動した いアプリの記 述があれば
起動時にアプ リを起動させ る。
3.mgrb
MAGIC Broker
起動時にアプ
2012年11月5日月曜日
【Visual Studio C#】[Windows サービスでバッチファイル起動]
Windows サービスの作成手順
1.「Windows サービス」プロジェクトの作成
2.「Windows サービス」プロジェクトへの「インストーラの追加」
3.「Windows サービス」のインストール/デバック
1.「Windows サービス」プロジェクトの作成
(1)「Microsoft Visual Studio 2008」を起動
(2)「ファイル」-「新規作成」-「プロジェクト」を実行
(3)「Visual c#」-「Windows」-「Windows サービス」を選択して「OK」をクリック
(4)「ツールボックス」の下の方の空いている場所でマウス右クリックして「アイテムの選択」を実行
(5)「.Net Framework コンポーネント」の名前=「Timer」、名前空間=「System.Timers.Timer」をチェックして「OK」をクリック
↑のコンポーネントでないとTimerの「Elapsed」イベントが発生しない....
(6)「System.Timers.Timer」を「Service1.cs」へドラッグ&ドロップ
(7)「Timer1」のプロパティを確認
「Enabled」を「False」に設定
「Interval」を適当に設定(設定はミリ秒)
(8)「Timer1」をダブルクリック....「Service1.cs」のコードを以下のように編集
public partial class Service1 : ServiceBase
{
// バッチファイルパス
private const string sBatPath = "c:\hoge.bat";
// 実行間隔(....new TimeSpan(時, 分, 秒))
private readonly TimeSpan tsExecuteInterval = new TimeSpan(24, 0, 0);
// 実行日時....初期値:本日(yyyy/MM/dd)+時間(hh:mm:ss)....バッチ実行完了時に実行間隔を加算して次回実行日時とする
private DateTime dtExecuteDateTime =
DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:30:00");
protected override void OnStart(string[] args)
{
// デバック(「ツール」-「プロセスにアタッチ」)開始操作する間スリープさせる....これがあるとOnStartのでバックが可能....
System.Threading.Thread.Sleep(20000);
// タイマ開始
timer1.Enabled = true;
}
protected override void OnStop()
{
// タイマ停止
timer1.Enabled = false;
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (DateTime.Now > dtExecuteDateTime)
{
// ProcessStartInfoを使用
System.Diagnostics.ProcessStartInfo processStartInfo =
new System.Diagnostics.ProcessStartInfo();
// ComSpecのパスを取得
processStartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
// 出力を読取可能
processStartInfo.RedirectStandardInput = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.UseShellExecute = false;
// ウィンドウを表示しない
processStartInfo.CreateNoWindow = true;
// コマンドラインを指定("/c"は実行後閉じるために必要)
processStartInfo.Arguments = @"/c " + sBatPath;
// バッチファイル起動
System.Diagnostics.Process process = System.Diagnostics.Process.Start(processStartInfo);
// 出力を読み取る
string sResults = process.StandardOutput.ReadToEnd();
// WaitForExitはReadToEndの後である必要がある(親プロセス、子プロセスでブロック防止のため)
process.WaitForExit();
// 出力結果を表示
Console.WriteLine(sResults);
// 実行日時に実行間隔を加算して次回実行日時とする
dtExecuteDateTime = DateTime.Parse(dtExecuteDateTime.Add(tsExecuteInterval).ToString());
}
}
}
2.「Windows サービス」プロジェクトへの「インストーラの追加」
(1)「Service1.cs」の「デザイン」画面をマウス右クリックして「インストーラの追加」を実行
(2)「ServiceInstaller1」のプロパティを確認
「Description」:サービス一覧画面に表示する説明
「DisplayName」:サービス一覧画面に表示する名前
「ServiceName」:サービスの識別名....とりあえずサービスのクラス名と合わせる方がよさげ
「StartType」 :インストール直後の「スタートアップの種類」....とりあえず「Manual」に設定
(3)「ServiceProcessInstaller1」のプロパティを確認
「Account」 :サービスの実行アカウント....「LocalSystem」に設定
3.「Windows サービス」のインストール/デバック
(1)(Windows)\Microsoft.NET\Framework\(バージョン)\installutil.exeを使用してインストール
>installutil.exe (サービスプログラム名).exe
アンインストール
>installutil.exe /u (サービスプログラム名).exe
(2)「コントロールパネル」-「管理ツール」-「サービス」を実行して(サービスプログラム)を開始する
(3)「ツール」-「プロセスにアタッチ」を実行
「すべてのユーザからのプロセスを表示する」をチェックする
「すべてのセッションのプロセスを表示する」をチェックする
「(サービスプログラム名).exe」を選択して「アタッチ」をクリックする
元ネタ:
http://ameblo.jp/dakishimetai-com/entry-10494391310.html
1.「Windows サービス」プロジェクトの作成
2.「Windows サービス」プロジェクトへの「インストーラの追加」
3.「Windows サービス」のインストール/デバック
1.「Windows サービス」プロジェクトの作成
(1)「Microsoft Visual Studio 2008」を起動
(2)「ファイル」-「新規作成」-「プロジェクト」を実行
(3)「Visual c#」-「Windows」-「Windows サービス」を選択して「OK」をクリック
(4)「ツールボックス」の下の方の空いている場所でマウス右クリックして「アイテムの選択」を実行
(5)「.Net Framework コンポーネント」の名前=「Timer」、名前空間=「System.Timers.Timer」をチェックして「OK」をクリック
↑のコンポーネントでないとTimerの「Elapsed」イベントが発生しない....
(6)「System.Timers.Timer」を「Service1.cs」へドラッグ&ドロップ
(7)「Timer1」のプロパティを確認
「Enabled」を「False」に設定
「Interval」を適当に設定(設定はミリ秒)
(8)「Timer1」をダブルクリック....「Service1.cs」のコードを以下のように編集
public partial class Service1 : ServiceBase
{
// バッチファイルパス
private const string sBatPath = "c:\hoge.bat";
// 実行間隔(....new TimeSpan(時, 分, 秒))
private readonly TimeSpan tsExecuteInterval = new TimeSpan(24, 0, 0);
// 実行日時....初期値:本日(yyyy/MM/dd)+時間(hh:mm:ss)....バッチ実行完了時に実行間隔を加算して次回実行日時とする
private DateTime dtExecuteDateTime =
DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:30:00");
protected override void OnStart(string[] args)
{
// デバック(「ツール」-「プロセスにアタッチ」)開始操作する間スリープさせる....これがあるとOnStartのでバックが可能....
System.Threading.Thread.Sleep(20000);
// タイマ開始
timer1.Enabled = true;
}
protected override void OnStop()
{
// タイマ停止
timer1.Enabled = false;
}
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (DateTime.Now > dtExecuteDateTime)
{
// ProcessStartInfoを使用
System.Diagnostics.ProcessStartInfo processStartInfo =
new System.Diagnostics.ProcessStartInfo();
// ComSpecのパスを取得
processStartInfo.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
// 出力を読取可能
processStartInfo.RedirectStandardInput = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.UseShellExecute = false;
// ウィンドウを表示しない
processStartInfo.CreateNoWindow = true;
// コマンドラインを指定("/c"は実行後閉じるために必要)
processStartInfo.Arguments = @"/c " + sBatPath;
// バッチファイル起動
System.Diagnostics.Process process = System.Diagnostics.Process.Start(processStartInfo);
// 出力を読み取る
string sResults = process.StandardOutput.ReadToEnd();
// WaitForExitはReadToEndの後である必要がある(親プロセス、子プロセスでブロック防止のため)
process.WaitForExit();
// 出力結果を表示
Console.WriteLine(sResults);
// 実行日時に実行間隔を加算して次回実行日時とする
dtExecuteDateTime = DateTime.Parse(dtExecuteDateTime.Add(tsExecuteInterval).ToString());
}
}
}
2.「Windows サービス」プロジェクトへの「インストーラの追加」
(1)「Service1.cs」の「デザイン」画面をマウス右クリックして「インストーラの追加」を実行
(2)「ServiceInstaller1」のプロパティを確認
「Description」:サービス一覧画面に表示する説明
「DisplayName」:サービス一覧画面に表示する名前
「ServiceName」:サービスの識別名....とりあえずサービスのクラス名と合わせる方がよさげ
「StartType」 :インストール直後の「スタートアップの種類」....とりあえず「Manual」に設定
(3)「ServiceProcessInstaller1」のプロパティを確認
「Account」 :サービスの実行アカウント....「LocalSystem」に設定
3.「Windows サービス」のインストール/デバック
(1)(Windows)\Microsoft.NET\Framework\(バージョン)\installutil.exeを使用してインストール
>installutil.exe (サービスプログラム名).exe
アンインストール
>installutil.exe /u (サービスプログラム名).exe
(2)「コントロールパネル」-「管理ツール」-「サービス」を実行して(サービスプログラム)を開始する
(3)「ツール」-「プロセスにアタッチ」を実行
「すべてのユーザからのプロセスを表示する」をチェックする
「すべてのセッションのプロセスを表示する」をチェックする
「(サービスプログラム名).exe」を選択して「アタッチ」をクリックする
元ネタ:
http://ameblo.jp/dakishimetai-com/entry-10494391310.html
2012年11月2日金曜日
FireFox Windows認証を有効にする
Windows環境において統合Windows認証を利用したイントラネットサイトを開く場合
IEでは自動で認証が通るが、Firefoxではダイヤログボックスが出てきて
ユーザー名、パスワードを入力する必要がある。
Firefoxでもこの統合Windows認証には対応しており、次の設定により自動化を有効に出来る。
1.ロケーションバーに”about:config"と入力し、Enterキーを押す。
2.'network.automatic-ntlm-auth.trusted-uris'
'network.negotiate-auth.delegation-uris'
'network.negotiate-auth.trusted-uris' を探し
それぞれダブルクリックして、統合Windows認証を行っているサイトのURL(例:http://aaaa.local.com)を入力す る。
以上でIEと同様に自動で統合認証が行われる。
IEでは自動で認証が通るが、Firefoxではダイヤログボックスが出てきて
ユーザー名、パスワードを入力する必要がある。
Firefoxでもこの統合Windows認証には対応しており、次の設定により自動化を有効に出来る。
1.ロケーションバーに”about:config"と入力し、Enterキーを押す。
2.'network.automatic-ntlm-auth.trusted-uris'
'network.negotiate-auth.delegation-uris'
'network.negotiate-auth.trusted-uris' を探し
それぞれダブルクリックして、統合Windows認証を行っているサイトのURL(例:http://aaaa.local.com)を入力す る。
以上でIEと同様に自動で統合認証が行われる。
2012年11月1日木曜日
2012年10月23日火曜日
Word FileFormat構造体
FileFormat
WdSaveFormatクラス | ||
---|---|---|
定数 | 値 | 内容 |
wdFormatDocument | 0 | 現在のフォーマット(既定値) |
wdFormatTemplate | 1 | テンプレート |
wdFormatText | 2 | テキスト |
wdFormatTextLineBreaks | 3 | - |
wdFormatDOSText | 4 | DOC用テキスト |
wdFormatDOSTextLineBreaks | 5 | - |
wdFormatRTF | 6 | リッチテキスト |
wdFormatUnicodeText | 7 | - |
wdFormatEncodedText | 7 | - |
wdFormatHTML | 8 | Htmlフォーマット |
2012年10月16日火曜日
Telerik ComboBoxが動作しない
Telerik ComboBoxが動作しない
最初はTelerikのCDNのせいだと思い、Web.ConfigでDisableにする
次はのJQueryCDNのせいだと思い、これもDisableにした。
それでもIE10ではうまく動作しなかったので、もしやIP6のせいかなと
推論して、IP6のアダプタをDisableにすると、あっさり動作する。
IP6は当分無効で良いかな。
最初はTelerikのCDNのせいだと思い、Web.ConfigでDisableにする
次はのJQueryCDNのせいだと思い、これもDisableにした。
それでもIE10ではうまく動作しなかったので、もしやIP6のせいかなと
推論して、IP6のアダプタをDisableにすると、あっさり動作する。
IP6は当分無効で良いかな。
2012年10月12日金曜日
Content Delivery Network
Content Developver Network
インターネットから開発者向けコンテンツ(ライブラリ)を取得するようだが
JQueryなどを使うと、http://ajax.aspnetcdn.com/ を見るようになるようだ。
JQuery 1.8からそうなったみたいで、古いJQueryを使うとアクセスしない。
Telerikのコンポーネントを最新にすると、お客さんの実行環境では動作しない現象が
発生した。
TelerikもCDNを持っていて、Web.Configで明示的にDisableにしないと
ネットワークに付加がかかるそうです。
お客さんのネットワーク管理者から注意を受けました。
web.configの設定方法
<add key="Telerik.ScriptManager.TelerikCdn" value="Disabled"/>
<add key="Telerik.StyleSheetManager.TelerikCdn" value="Disabled"/>
<asp:ScriptManager ID="ScriptManager1" EnableCdn="true" Runat="Server" />
それとScriptManagerに、EnableCdn="False"を明示的に追加
インターネットから開発者向けコンテンツ(ライブラリ)を取得するようだが
JQueryなどを使うと、http://ajax.aspnetcdn.com/ を見るようになるようだ。
JQuery 1.8からそうなったみたいで、古いJQueryを使うとアクセスしない。
Telerikのコンポーネントを最新にすると、お客さんの実行環境では動作しない現象が
発生した。
TelerikもCDNを持っていて、Web.Configで明示的にDisableにしないと
ネットワークに付加がかかるそうです。
お客さんのネットワーク管理者から注意を受けました。
web.configの設定方法
<add key="Telerik.ScriptManager.TelerikCdn" value="Disabled"/>
<add key="Telerik.StyleSheetManager.TelerikCdn" value="Disabled"/>
<asp:ScriptManager ID="ScriptManager1" EnableCdn="true" Runat="Server" />
それとScriptManagerに、EnableCdn="False"を明示的に追加
2012年10月11日木曜日
html5 table cellpadding
HTML v4.01
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
HTML5
<table border="0" style="width:100%; height:40px; padding:0; border-collapse:collapse">
メモ
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
HTML5
<table border="0" style="width:100%; height:40px; padding:0; border-collapse:collapse">
メモ
2012年10月5日金曜日
EPPlus Shape
EPPlusでShapeの制御を行った。
Excelのオブジェクトに対して名称を設定すればプログラムで値を流し込める。
セルでも良いけど、オブジェクトの方が自由に設定出来るので、ちょっと便利
四角(shape)にテキストを流し込む例
ExcelShape txtReceiveDate = (ExcelShape)worksheet.Drawings.FirstOrDefault(a => a.Name.Trim() == "txtReceiveDate");
ExcelShape txtCompleteDate = (ExcelShape)worksheet.Drawings.FirstOrDefault(a => a.Name.Trim() == "txtCompleteDate");
if (txtReceiveDate != null && vReceiveDate != null) {
txtReceiveDate.Text = vReceiveDate.Value.ToString("yyyy.MMM.dd");
}
EPPlus 3.0にて確認しました。
Excelのオブジェクトに対して名称を設定すればプログラムで値を流し込める。
セルでも良いけど、オブジェクトの方が自由に設定出来るので、ちょっと便利
四角(shape)にテキストを流し込む例
ExcelShape txtReceiveDate = (ExcelShape)worksheet.Drawings.FirstOrDefault(a => a.Name.Trim() == "txtReceiveDate");
ExcelShape txtCompleteDate = (ExcelShape)worksheet.Drawings.FirstOrDefault(a => a.Name.Trim() == "txtCompleteDate");
if (txtReceiveDate != null && vReceiveDate != null) {
txtReceiveDate.Text = vReceiveDate.Value.ToString("yyyy.MMM.dd");
}
EPPlus 3.0にて確認しました。
2012年10月1日月曜日
2012年9月29日土曜日
XenApp6.0でライセンスエラーが発生する
XenApp6.0でライセンスエラーが発生する
現象として、Citrix ライセンスサーバが見つかりません。と表示される。
Windows イベント ビューワーを見ると、あたかもWindowsターミナルライセンスが無いから
Cittixライセンスマネージャがコケたような感じだ。
ライセンスは使用人数分購入しているので、疚しいことは無い。
何でだろう~思いつつ、Widdowsターミナルサーバライセンスを再アクティブ化するが
その後、ICA接続と、RDP接続 さえもNGになる。
OSおよび、XenApp6.0の最新パッチをすべて適用
Citrix Licenseサーバを最新の再インストールしたら、正常動作するようになった。
現象として、Citrix ライセンスサーバが見つかりません。と表示される。
Windows イベント ビューワーを見ると、あたかもWindowsターミナルライセンスが無いから
Cittixライセンスマネージャがコケたような感じだ。
ライセンスは使用人数分購入しているので、疚しいことは無い。
何でだろう~思いつつ、Widdowsターミナルサーバライセンスを再アクティブ化するが
その後、ICA接続と、RDP接続 さえもNGになる。
OSおよび、XenApp6.0の最新パッチをすべて適用
Citrix Licenseサーバを最新の再インストールしたら、正常動作するようになった。
ASP.NET MVC Packageで最新のJQueryをInstall
ASP.NET MVC4を利用しようとしたが、使用するJQueryのVersionが1.7.1で
現在1.8.2から比べると、ちょっと古い。
VisualStudioからツール -> ライブラリパッケージマネージャ -> パッケージマネージャコンソールを
指定する。
PM> のコマンドラインが表示されるので
Install-Package JQuery
上記を入力後、Enter Keyを押すと、最新のJQueryがインストールされました。
2012年9月27日木曜日
RedMine 2.1.0の設定画面でコケる
RedMine 2.1.0の管理 -> 設定 の画面に移動すると、コケた。
redmine 2.0.3旧バージョンだと、正常動作する。
databaseのmigrationが失敗したのかと思い、新規でredmine 2.1.0を構築するが
管理者の言語を英語から日本語にすると、管理 -> 設定に移動すると
エラーになるみたい。
表示言語を英語にすると正常動作する。
面倒なので、管理者の表示言語を英語で運用
redmine 2.0.3旧バージョンだと、正常動作する。
databaseのmigrationが失敗したのかと思い、新規でredmine 2.1.0を構築するが
管理者の言語を英語から日本語にすると、管理 -> 設定に移動すると
エラーになるみたい。
表示言語を英語にすると正常動作する。
面倒なので、管理者の表示言語を英語で運用
2012年9月19日水曜日
FriendlyUrls – ASP.NET Webフォームのために
FriendlyUrlsは、開発者がWebフォームアプリケーションで簡単にきれいなURLを使うことができるASP.NETの新機能である。これはまた、同じプロジェクトでMVCのようにモバイルとデスクトップのビュー両方を簡単に管理できる。Scott Hanselman氏は、詳細を説明した。
このパッケージをどう使う?単にnugetパッケージをプロジェクトに追加して、routes.EnableFriendlyUrls()を呼び出 すだけで、あなたの作った/Foo.aspxが/Fooルートでアクセスできるようになる!また、ページにさらに情報を渡すためにUrlセグメントを使っ て渡す(/Foo/bar/34)ことができ、Foo.aspxページで、Request.GetFriendlyUrlSegments()メソッドを 使うことでそれを取り出すことができる。
さらにエキサイティングな機能をScott氏は紹介した -
FriendlyUrlsはまだアルファであり、主に開発者からさらにフィードバックを引き出すために公開されている。これは、.NET 4.5と.NET 4.0の両方で動作するため、既存の.NET 4アプリケーションで動作させることができる。
元ネタ
http://www.infoq.com/jp/news/2012/09/friendlyurls
このパッケージをどう使う?単にnugetパッケージをプロジェクトに追加して、routes.EnableFriendlyUrls()を呼び出 すだけで、あなたの作った/Foo.aspxが/Fooルートでアクセスできるようになる!また、ページにさらに情報を渡すためにUrlセグメントを使っ て渡す(/Foo/bar/34)ことができ、Foo.aspxページで、Request.GetFriendlyUrlSegments()メソッドを 使うことでそれを取り出すことができる。
さらにエキサイティングな機能をScott氏は紹介した -
- モバイルデバイスからリクエストがあった時は、自動的にモバイル用のビューに切り替わる
- WebFormsFriendlyResolverクラスを拡張して、振る舞いをカスタマイズすることができる – たとえば、デバイスに応じたハンドリングなど
FriendlyUrlsはまだアルファであり、主に開発者からさらにフィードバックを引き出すために公開されている。これは、.NET 4.5と.NET 4.0の両方で動作するため、既存の.NET 4アプリケーションで動作させることができる。
元ネタ
http://www.infoq.com/jp/news/2012/09/friendlyurls
2012年9月18日火曜日
linqでMAX値を取得する方法
// ラムダ式の場合
var vMax = db.ExpendableParts.OrderByDescending(x => x.LineNo).FirstOrDefault(s => s.Spec == rh.Power && s.ModelNo.Trim() == vModelNo.Trim());
2012年9月14日金曜日
.net 4.0からctl00_の名称が無い
ASP.NETの .NET3.5 でWeb Formアプリケーションを作成していたのを
.NEt4.0にUPすることになった。
大丈夫だろ~と高をくくったら、JavaScriptでコケた。
どうも、.NET3.5では、コントロール名の前に自動設定されていた、名称ctl00_が
.NET4.0では無くなっている!
Stack Over Flow
ClientIDMode
.NET4.0から、ClientIDModeという設定が必要らしい。
面倒だから、JavaScriptで参照しているIDから、ctl00_を全部削除した。
.NEt4.0にUPすることになった。
大丈夫だろ~と高をくくったら、JavaScriptでコケた。
どうも、.NET3.5では、コントロール名の前に自動設定されていた、名称ctl00_が
.NET4.0では無くなっている!
Stack Over Flow
ClientIDMode
.NET4.0から、ClientIDModeという設定が必要らしい。
面倒だから、JavaScriptで参照しているIDから、ctl00_を全部削除した。
Windows8のスタートアップ
Windows8のStartup
ボリューム(C:)
└ProgramData
└Microsoft
└Windows
└スタートメニュー
└プログラム
└スタートアップ
ボリューム(C:)
└ProgramData
└Microsoft
└Windows
└スタートメニュー
└プログラム
└スタートアップ
2012年9月13日木曜日
vmdk to vhd
vmwareの仮想ファイル(vmdk)を、hyper-vのvhd形式にするようになった。
Windows8からHyper-vが利用出来るようになったので
仮想化は、 Hyper-vを利用する。
vmplayerを利用していたのは、Windows7のVirtualPCは64bitOSを仮想化出来なかったから。
探したら、HNCというソフトが仮想化ファイルを変換してくれるそうな。
Windows8からHyper-vが利用出来るようになったので
仮想化は、 Hyper-vを利用する。
vmplayerを利用していたのは、Windows7のVirtualPCは64bitOSを仮想化出来なかったから。
探したら、HNCというソフトが仮想化ファイルを変換してくれるそうな。
2012年9月12日水曜日
NPOI
NPOI
POIのC#版
EPPlusでExcel2007形式を作成したが
POIでも作成出来るそうな。
今度は、Wordで作成する必要があったので、NPOIでWordを扱うようにする。
NPOI
POIのC#版
EPPlusでExcel2007形式を作成したが
POIでも作成出来るそうな。
今度は、Wordで作成する必要があったので、NPOIでWordを扱うようにする。
NPOI
POIコンポーネント一覧
コンポーネント | 対応アプリケーション |
POIFS | OLE2 Filesystem |
HPSF | OLE2 Property Sets |
HSSF / XSSF | Excel(拡張子XLS/XLSX) |
HSLF / XSLF | PowerPoint(拡張子PPT/PPTS) |
HWPF / XWPF | Word(拡張子DOC/DOCX) |
HDGF | Visio(拡張子VSD) |
HPBF | Publisher(拡張子PUB) |
HSMF | Outlook(拡張子MSG) |
OpenXML4J | OOXML |
MAGICってMVCだった
最近、ASP.NETでMVCモデルのプログラミングを行う必要があった。
※モバイル対応なので。
よく考えたら、dbMAGICもMVCモデルになっている。
プログラム修正時に3つのタブ
Model: データ
View:フォーム
Controller:レコード後処理
うーむ、イスラエル人って、やっぱすごいなぁ~
※モバイル対応なので。
よく考えたら、dbMAGICもMVCモデルになっている。
プログラム修正時に3つのタブ
Model: データ
View:フォーム
Controller:レコード後処理
うーむ、イスラエル人って、やっぱすごいなぁ~
2012年9月10日月曜日
Windows8でライセンス認証(プロダクトキーの変更)ができない
Windows8でライセンス認証(プロダクトキーの変更)ができない
Windows8でライセンス認証(プロダクトキーの変更)ができない先日、こちら↑で投稿した記事(ライセンス認証ができない)の理由がわかりました。
TechNetサブスクリプションのWindows8 Enterpriseのプロダクトキーに起因していました。(MSDNも同様)
「KMSライセンス認証が使用されず、KMSサーバーが存在しない場合、プロダクトキーをMAKに変更する必要があります。」
↑を変更するコマンドが、「slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx」
参考→http://support.microsoft.com/kb/929826/ja
2012年8月28日火曜日
Word文書をOpenXMLで操作
Word文書をOpenXMLで操作する方法
CodePlexのWord Content Control ToolKitを利用する。
http://dbe.codeplex.com/
また、Word2010のリボン上にDeveloper(開発)を表示するには
CodePlexのWord Content Control ToolKitを利用する。
http://dbe.codeplex.com/
また、Word2010のリボン上にDeveloper(開発)を表示するには
登録:
投稿 (Atom)