Skypeのチャットの履歴についての質問です。

現在は自宅と外出先で利用していて、外出先ではノートPCが主です。
それぞれのPCに残っている履歴を合体させて両方のPCからいつでも見られる状態にしようとフォルダを見たところ、フォルダ名やファイル名が重複していて困っています。
どのようにすれば履歴を合体させ、双方のPCから同じ内容を見られるようにできるでしょうか?
両方ともOSはWindowsXPで、近々1台はWindows7に変更する予定です。
どうかよろしくお願い致します。

回答の条件
  • URL必須
  • 1人3回まで
  • 13歳以上
  • 登録:2010/06/22 11:47:48
  • 終了:2010/06/23 16:51:40

ベストアンサー

id:gday No.2

gday回答回数383ベストアンサー獲得回数712010/06/22 16:27:39

ポイント40pt

コメント欄が開いていないので回答で。

以降、必要があればコメント欄を開けて頂ければいいかと思います。


目的が、どちらのパソコンでもそれぞれの過去のチャットの履歴を読むことができれば良いのであればそれぞれのチャット履歴をファイルに書き出してしまうという方法も考えられます。

英語のサイトですが、以下のものを見つけました。


Merge two Skype chat archive

http://superuser.com/questions/99614/merge-two-skype-chat-archiv...

If you're using Skype 4.x, here's a tutorial how to Save Skype chat history. The output will be TXT files which you then can merge.

Skype4.xを使っているならSave Skype chat historyを使えばテキストに履歴を落とせるよ、という話です。


Save Skype chat history

http://itarato.blogspot.com/2009/01/save-skype-chat-history.html

ここに書いてある下記のソースをそのままファイルにしてchat.vbsなどのファイル名にします。

' Define global variables
Dim oFSO, chat_file, folder_to_save
' Directory where You want to save history (you can modify it)
' Now it is relative, so it will be created where Your *.vbs script runs
folder_to_save = "SkypeChatHistory"
line_count = 0

' Create FSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
set_next_free_dir()

' Connect to Skype API via COM
Set oSkype = WScript.CreateObject("Skype4COM.Skype", "Skype_")
' Open skype, if it is not running
If Not oSkype.Client.IsRunning Then
oSkype.Client.Start()
End If

WScript.Echo "Skype history will be saved. Found " & oSkype.Chats.Count & " chat group."

' Iterate chats
For Each oChat In oSkype.Chats
names = ""
' First name is You, so it is unnecessary to keep
no_1st_flag = TRUE
For Each oUser In oChat.Members
 If no_1st_flag Then
  no_1st_flag = FALSE
 Else
     names = names & "_" & oUser.FullName
 End If
Next
get_file("chat" & names & ".txt")
chat_file.WriteLine(vbNewLine & "==== CHAT HYSTORY (" & Replace(names, "_", "") & ") ====" & vbNewLine)
line_count = line_count + oChat.Messages.Count
For Each oMsg In oChat.Messages
 ' Fix by Vadim Kravchenko
 On Error Resume Next
 chat_file.WriteLine(oMsg.FromDisplayName & " (" & oMsg.Timestamp & "): " & oMsg.Body)
Next
chat_file.Close
Next

WScript.Echo "Backup was finished (" & line_count & " line saved). You can find your chats in: ./" & folder_to_save

' Garbage collection
SET chat_file = NOTHING
SET folder_to_save = NOTHING
SET oFSO = NOTHING
SET oSkype = NOTHING

' Access to a file given by name
Sub get_file(file_name)
' Parameter fix by: rommeech
Set chat_file = oFSO.OpenTextFile(folder_to_save & "/" & file_name, 8, True, -1)
End Sub

' Find an appropriate directory the logs to save, however, to avoid collision with former dirs
Sub set_next_free_dir()
If oFSO.FolderExists(folder_to_save) Then
ext = 1
While oFSO.FolderExists(folder_to_save & "_" & ext) And ext < 100
    ext = ext + 1
Wend
 folder_to_save = folder_to_save & "_" & ext
End If
oFSO.CreateFolder(folder_to_save)
End Sub

できたファイルをデスクトップに置いてダブルクリックして走らせると、デスクトップ上にSkypeChatHistoryというフォルダができて、その中にチャット履歴をチャットの相手ごとのテキストにして書き出してくれます。

私はWindows7でSkype4.2の環境で試してみましたがうまくチャット履歴をテキストに取り出せました。

テキストデータですのであとの加工は色々な方法でできると思います。


それから詳しく見てないですが、以下のツールも便利そうです。

http://www.g-recorder.com/

id:aqua-marine

再び、どうもありがとうございます。

Skype画面で開けないのは残念ですが、確実に残せるのであれば助かります。

とりあえず1台で試してみようと思います。

gday様

遅くなりましたが試してみたところ、無事テキストデータとして保存することができました。

どうもありがとうございました。

又、機会がありましたら、どうかよろしくお願い致します。

2010/06/23 16:49:39

その他の回答(1件)

id:gday No.1

gday回答回数383ベストアンサー獲得回数712010/06/22 13:33:03

ポイント30pt

今までの履歴に付いては無意味ですが、以下の方法を使うことで履歴の同期をとって使うことができます。


Portable Skypeを使う

http://kengo.preston-net.com/archives/002415.shtml

http://portableapps.com/node/246

Skype用のUSBメモリを自宅と外出先で使うという方法です。


さらにUSBメモリの代わりにDropBoxなどのファイル同期サービスを併用することでUSBメモリも無しで履歴の同期がとれるようになります。


DropboxにSkype4.0環境を

http://d.hatena.ne.jp/ma2tech/20090210/p1

id:aqua-marine

早速のご回答、どうもありがとうございます。

今後使う場合には便利そうですね。

今までの履歴も生かしたいのですが、検索してもなかなか見つかりません。

引き続き、どうかよろしくお願い致します。

2010/06/22 15:18:59
id:gday No.2

gday回答回数383ベストアンサー獲得回数712010/06/22 16:27:39ここでベストアンサー

ポイント40pt

コメント欄が開いていないので回答で。

以降、必要があればコメント欄を開けて頂ければいいかと思います。


目的が、どちらのパソコンでもそれぞれの過去のチャットの履歴を読むことができれば良いのであればそれぞれのチャット履歴をファイルに書き出してしまうという方法も考えられます。

英語のサイトですが、以下のものを見つけました。


Merge two Skype chat archive

http://superuser.com/questions/99614/merge-two-skype-chat-archiv...

If you're using Skype 4.x, here's a tutorial how to Save Skype chat history. The output will be TXT files which you then can merge.

Skype4.xを使っているならSave Skype chat historyを使えばテキストに履歴を落とせるよ、という話です。


Save Skype chat history

http://itarato.blogspot.com/2009/01/save-skype-chat-history.html

ここに書いてある下記のソースをそのままファイルにしてchat.vbsなどのファイル名にします。

' Define global variables
Dim oFSO, chat_file, folder_to_save
' Directory where You want to save history (you can modify it)
' Now it is relative, so it will be created where Your *.vbs script runs
folder_to_save = "SkypeChatHistory"
line_count = 0

' Create FSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
set_next_free_dir()

' Connect to Skype API via COM
Set oSkype = WScript.CreateObject("Skype4COM.Skype", "Skype_")
' Open skype, if it is not running
If Not oSkype.Client.IsRunning Then
oSkype.Client.Start()
End If

WScript.Echo "Skype history will be saved. Found " & oSkype.Chats.Count & " chat group."

' Iterate chats
For Each oChat In oSkype.Chats
names = ""
' First name is You, so it is unnecessary to keep
no_1st_flag = TRUE
For Each oUser In oChat.Members
 If no_1st_flag Then
  no_1st_flag = FALSE
 Else
     names = names & "_" & oUser.FullName
 End If
Next
get_file("chat" & names & ".txt")
chat_file.WriteLine(vbNewLine & "==== CHAT HYSTORY (" & Replace(names, "_", "") & ") ====" & vbNewLine)
line_count = line_count + oChat.Messages.Count
For Each oMsg In oChat.Messages
 ' Fix by Vadim Kravchenko
 On Error Resume Next
 chat_file.WriteLine(oMsg.FromDisplayName & " (" & oMsg.Timestamp & "): " & oMsg.Body)
Next
chat_file.Close
Next

WScript.Echo "Backup was finished (" & line_count & " line saved). You can find your chats in: ./" & folder_to_save

' Garbage collection
SET chat_file = NOTHING
SET folder_to_save = NOTHING
SET oFSO = NOTHING
SET oSkype = NOTHING

' Access to a file given by name
Sub get_file(file_name)
' Parameter fix by: rommeech
Set chat_file = oFSO.OpenTextFile(folder_to_save & "/" & file_name, 8, True, -1)
End Sub

' Find an appropriate directory the logs to save, however, to avoid collision with former dirs
Sub set_next_free_dir()
If oFSO.FolderExists(folder_to_save) Then
ext = 1
While oFSO.FolderExists(folder_to_save & "_" & ext) And ext < 100
    ext = ext + 1
Wend
 folder_to_save = folder_to_save & "_" & ext
End If
oFSO.CreateFolder(folder_to_save)
End Sub

できたファイルをデスクトップに置いてダブルクリックして走らせると、デスクトップ上にSkypeChatHistoryというフォルダができて、その中にチャット履歴をチャットの相手ごとのテキストにして書き出してくれます。

私はWindows7でSkype4.2の環境で試してみましたがうまくチャット履歴をテキストに取り出せました。

テキストデータですのであとの加工は色々な方法でできると思います。


それから詳しく見てないですが、以下のツールも便利そうです。

http://www.g-recorder.com/

id:aqua-marine

再び、どうもありがとうございます。

Skype画面で開けないのは残念ですが、確実に残せるのであれば助かります。

とりあえず1台で試してみようと思います。

gday様

遅くなりましたが試してみたところ、無事テキストデータとして保存することができました。

どうもありがとうございました。

又、機会がありましたら、どうかよろしくお願い致します。

2010/06/23 16:49:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません