iPhoneの動画の撮影日時をexiftoolで編集する。
海外でiPhoneで撮影した動画の撮影日時がずれてたのでその変更方法。
写真のEXIF情報はLightroomなどで変更すれば問題ないが動画は出来なかった。動画のEXIFはexiftoolを使えば変更できる。
今回は3時間分、撮影時間を戻したいので以下のコマンド。
"exiftool(-k).exe" -overwrite_original -alldates-="03:00" *.MOV
"Create Date"と"Modify Date"は変更されたが、目的であったAmazon Fire TV Stickのスライドショーに反映するには"MediaCreateDate"と"MediaModifyDate"も変更する必要があった。
以下のコマンドで無事反映された。
"exiftool(-k).exe" -overwrite_original -MediaCreateDate-="03:00" -MediaModifyDate-="03:00" *.MOV
Visual Studio 2012をインストール後、Excel 2002が終了できない
問題
Window 7 Pro(32bit)にVisual Studio 2012をインストールすると、Excel 2002が終了出来なくなった!
ウィンドウの右上の[x]ボタンやメニューの「ファイル」→「終了」を選んでも終了出来ない。なおタスクマネージャーから強制終了は出来る。
原因
調べてみるとVisual Studioの「Team Foundation Office Add-in」の「TFSOfficeAdd-in.dll」がエラーを起こしている。
以下イベントビューアーの内容
障害が発生しているアプリケーション名: EXCEL.EXE、バージョン: 10.0.6871.0、タイム スタンプ: 0x4daf71c5
障害が発生しているモジュール名: TFSOfficeAdd-in.dll、バージョン: 11.0.61030.0、タイム スタンプ: 0x5270a9cd
例外コード: 0xc0000005
障害オフセット: 0x00020450
障害が発生しているプロセス ID: 0x1658
障害が発生しているアプリケーションの開始時刻: 0x01cf1d834f62f269
障害が発生しているアプリケーション パス: C:\Program Files\Microsoft Office\Office10\EXCEL.EXE
障害が発生しているモジュール パス: C:\Program Files\Common Files\Microsoft Shared\Team Foundation Server\11.0\x86\TFSOfficeAdd-in.dll
解消方法
使うとは思えない機能なのでレジストリから登録を外せば問題解消した!!
cd "C:\Program Files\Common Files\Microsoft Shared\Team Foundation Server\11.0\x86"
regsvr32 /u TFSOfficeAdd-in.dll
ASP.NET: 動的にサーバーコントロールを追加、イベントハンドラを登録、引数を指定
ASP.NET(C#)で動的に複数のサーバーコントロールを追加して、ボタンクリックのイベントハンドラを登録しそれに引数で値を渡す。
やりたい事:
//ページロード
protected void Page_Load(object sender, EventArgs e){
//リンクボタンを動的に複数追加
for(int i=0; i<10; i++){
LinkButton LBtn = new LinkButton();
LBtn.Text = "リンクボタン" + i.ToString();
//イベントハンドラに渡す引数を指定
LBtn.CommandArgument = i.ToString();
//イベントハンドラの登録
LBtn.Command += this.LBtn_Click;
//リンクボタンの追加
this.Page.Controls.Add(LBtn);
}
}//動的に作成されたリンクボタンに登録するイベントハンドラ
protected void LBtn_Click(object sender, CommandEventArgs e){
Response.Write(e.CommandArgument.ToString());
}
SQL Serverのストアドのソースを検索する。
information_schema.routinesのROUTINE_NAMEがストアド名、ROUTINE_DEFINITIONがストアドのソース
SELECT ROUTINE_NAME, ROUTINE_DEFINITION
FROM information_schema.routines
WHERE ROUTINE_DEFINITION LIKE '%キーワード%'
ORDER BY ROUTINE_NAME
- 追記
上記のROUTINE_DEFINITIONはnvarchar(4000)のデータ型なのでソースの中身を全て検索できない。
そのため以下のほうが確実(ビューのソールも検索される)
SELECT *
FROM sys.sql_modules
WHERE definition LIKE '%キーワード%'
ストアドのみのソース検索は以下のように
SELECT
b.name
,a.definition
,b.create_date
,b.modify_date
FROM sys.sql_modules a
INNER JOIN sys.objects b
ON a.object_id = b.object_id AND b.type='P'
WHERE
definition like '%キーワード%'
SQL Serverで文字列日付にスラッシュを追加する。
SQL Server 2008で文字列の日付('yyyyMMdd')を('yyyy/MM/dd')にフォーマット変更する。
SELECT CONVERT(varchar(10), CONVERT(datetime, '20120612'), 111)
結果
2012/06/12
GridViewのCellで長い文字列の場合Wrap出来ない。
ASP.NETのGridViewコントロールにスペースを含まない長い文字列があるとWrapされない。
asdfadsfsdalkfjdsljflskjdflkajsdkf;jadskfjdlkfjlsdkjflakdjfsdfldkadskjflsdkjfldsjflsdajflsdkjflsdkjflsdjfljdslfjdslfjadlskjffhalskhf
そこでCellにCSSの"WORD-BREAK:BREAK-ALL"を追加してあげる。
e.Row.Cells[4].Attributes.Add("style", "WORD-BREAK:BREAK-ALL");
すると以下のようにうまくWrapされる。
asdfadsfsdalkfjdsljflskjdflkajsdkf;jadskfjdlkfjlsdkjflakdjfsdf
ldkadskjflsdkjfldsjflsdajflsdkjflsdkjflsdjfljdslfjdslfjadlskjffhalskhf
IE8、9、Chrome19では動作確認済。笑
ASP.NETでTraceListenerでログをファイル出力する
ASP.NET/VB2008でアプリケーションログを出力するためTextWriterTraceListenerを使用する。
- Windows XP Pro SP3
- IIS 5.1
- ASP.NET 2.0.50727
- .NET Framework 3.5 SP1
- Visual Basic 2008
compilerOptions="/d:Trace=true"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
warningLevel="4">
Imports Microsoft.VisualBasic
Imports System.Diagnostics
Imports System.IONamespace LogTest
'Singleton Log Class:
Public Class Log'Singleton log object
Private Shared myLog As Log
Private Shared strLogPath As String'Log level constant
Public Shared ReadOnly LOG_LVL_INFO As String = "I"
Public Shared ReadOnly LOG_LVL_WARN As String = "W"
Public Shared ReadOnly LOG_LVL_ERR As String = "E"'*******************
'Private Constructor
'*******************
Private Sub New()
'Set log directory
strLogPath = String.Format("{0}\\{1}.log", ConfigurationManager.AppSettings("DirLog"), DateTime.Now.ToString("yyyyMM"))
End Sub'*******************
'Static Write Method
'*******************
Public Shared Sub Write(ByVal msg As Object, ByVal strLogLevel As String)'Create an object if not instantiated
If myLog Is Nothing Then
myLog = New Log()
End IfDim strLogLine As String
Dim strTimestamp As String
Dim strBranch As StringstrTimestamp = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:fff")
strLogLine = strTimestamp + " " + strLogLevel + " " + msg.ToString()Using myFile As Stream = File.Open(strLogPath, FileMode.Append)
Trace.Listeners.Add(New TextWriterTraceListener(myFile))
Trace.WriteLine(strLogLine)
Trace.Flush()
Trace.Listeners.Clear()End Using
End SubEnd Class
End Namespace
Imports LogTestPublic Class LogTestPage : Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Log.Write("ログ書き込み: 情報", Log.LOG_LVL_INFO)
Log.Write("ログ書き込み: 警告", Log.LOG_LVL_WARN)
Log.Write("ログ書き込み: エラー", Log.LOG_LVL_ERR)
End SubEnd Class