[ 新規に投稿する ]

Hidemarnet Explorer with FTPS V4.50No.38637
秀まるお2 さん 21/01/08 13:55 [ コメントを投稿する ]
   まだ正式にホームページ上で公開という訳では無いんですが、Hidemarnet Explorer with FTPSのVersion 4.50をアップロードだけしました。以下のURLからダウンロードできます。

   https://hide.maruo.co.jp/software/bin/hmexs450_signed.exe

 修正点ですが、まず、Dropboxへのログイン(アクセスキーの取得)が最近出来なくなってました。DropboxへのOAuth認証時にWebBrowserコントロールでアクセスすると、それはつまりInternet Explorer相当でアクセスすることになって、それが最近拒否されるようになってしまってました。

 仕方が無いので外部のブラウザでログインして、取得されたキー(code)をコピペしてもらう方式にしました。

 さらに、Dropbox側の仕様変更の関係で、OAuth認証の方式が変更になりまして、現状の方式では今後アセス不可になるということで、新しい方式に変更しています。

 もう1つ、実はだいぶ前からOneDriveへのアクセスもうまくいかなくなってたようです。OneDriveへアクセスするのに「Windows Live SDK」ってのを使ってアクセスしてたんですが、その方式が廃止になってたようです。代わりにMicrosoft Graph APIを使わないといけなくなってました。

 その新しい方式で作り直しました。

 今まで特にユーザーさんから不具合報告が無かったということは、OneDriveにアクセスされてるユーザーさんがほとんど居なかったのかもしれませんけども・・・。(悲しいお知らせ)

 とりあえず、一回β版として出そうかと思いつつも、そういう状況(ユーザーさんがゼロに近い?)だとあまり意味が無いので、いきなり正式版にします。がしかし、念のためもしかしてテストしてくれる人もいるかもしれいので、アップロードだけ先にしてみました。

 もし良かったら使ってみていただけると助かります。
[ ]
RE:38637 Hidemarnet Explorer with FTPS V4.50No.38640
h-tom さん 21/01/08 21:11 [ コメントを投稿する ]
  h-tom です。

> まだ正式にホームページ上で公開という訳では無いんですが、Hidemarnet Explorer 
>with FTPSのVersion 4.50をアップロードだけしました。以下のURLからダウンロード
>できます。
<省略>
> もし良かったら使ってみていただけると助かります。

OneDrive を試してみましたが、サーバーの設定でOneDriveの接続テスト中に、アプリケーションエラーになります。
1)「サーバーの設定」→「新規」
2)「サーバータイプ」を「Microsoft OneDriveのアカウント」を選ぶ。
3)メールアドレス入れて「キー取得」を押すと「アプリケーション登録」のダイアログが表示される。
4)OneDriveにアクセスして、Hidemarnet Explorerのアクセスを許可
5)アプリケーションエラーで停止。
(で、どうにもならなくてタスクマネージャ使って秀丸エディタ本体毎ごと終了)

OneDrive側へのアプリケーション登録は正常に終了していて、確認のメールとレジストリ(SK.Live\Account)にAccessToken等は記録されてました。

サーバーの設定は記録されていないので、もう一度やってみましたが、同じくOneDriveの接続テスト中にアプリケーションエラーになります。
(System.ArgumentException: 同一のキーを含む項目が既に追加されています。)

レジストリ削除して、やり直した方がいいのでしょうか?
[ ]
RE:38640 Hidemarnet Explorer with FTPS V4.50No.38641
秀まるお2 さん 21/01/08 22:59 [ コメントを投稿する ]
   テストありがとうございます。&、エラーでお手数かけてすみません。

 一応、僕の所ではそのエラーは出てないくて、改めて連絡いただいた手順でキー取得からやりなおしてみたんですが、大丈夫そうです。

   (System.ArgumentException: 同一のキーを含む項目が既に追加されています。

 ってことだと、たぶんソースコード中のDictionaryって型の変数を使ってる処理のどこかなんだろうと思うんですが、エラーメッセージの中に何かソースコード中の場所を知らせてくれるような内容とか出てなかったでしょうか。もし出てたら教えて欲しいです。

 あと、「ファイル・Web・Hidemarnet Explorerの設定」から「その他」ページの「エラーログを記録する」として出てくる「sk.lib.err」ファイルの一番最後付近の内容も出来たら教えて欲しいです。

 普通に成功した場合だと、

2021/01/08 22:55:14 SK:IsAccess:Start(True):0
2021/01/08 22:55:14 SK:IsAccess2:0
2021/01/08 22:55:14 SK:IsAccess3:16
2021/01/08 22:55:19 SK:IsAccess4:5234
2021/01/08 22:55:22 SK:IsAccess5:8234
2021/01/08 22:55:23 SK:IsAccess6:9031
2021/01/08 22:55:23 SK:GetRootID:Start:0
2021/01/08 22:55:23 SK:GetRootID2:15
2021/01/08 22:55:23 SK:GetRootID3:15
2021/01/08 22:55:23 SK:GetRootID5:15
2021/01/08 22:55:23 GetContentV450 URL=https://graph.microsoft.com/v1.0/me/drive/root
2021/01/08 22:55:23 GetContentV450 Result={"@odata.context":.......
2021/01/08 22:55:23 SK:GetRootID6:484
2021/01/08 22:55:23 SK:GetRootID7:500
2021/01/08 22:55:23 SK:IsAccess:End:9547


 みたいな内容になるんですが、果たしてどこまで進んで落ちてるのか分かると、それが解決のヒントになります。もし良かったらそれもお願いします。

 とりあえず、僕の方では例外の出そうな処理(Dictionaryの処理)を探してみます。
[ ]
RE:38641 Hidemarnet Explorer with FTPS V4.50No.38642
秀まるお2 さん 21/01/08 23:18 [ コメントを投稿する ]
   再現には至ってないですが、たぶん、

    SK:GetRootID6

 までは成功してて、その次の「GetRootID7」が出る前に例外が起きてるのかなぁと思います。

 Graph APIから返ってきてるJSON型式文字列の解釈の処理で失敗するとそこで例外が起きるみたいでした。

 JSONの解釈の処理は、既存の処理でとりあえず動いてるのはそのままにしてたんですが、そもそも的に型式がだいぶ変わってるはずなので、全面的に直さないとダメなんだろうと思います。その辺修正させていただきます。

 少々時間かけて直してテストもしようと思います。お手数かけてすみません。
[ ]
RE:38641 Hidemarnet Explorer with FTPS V4.50No.38643
h-tom さん 21/01/08 23:49 [ コメントを投稿する ]
  h-tom です。

> ってことだと、たぶんソースコード中のDictionaryって型の変数を使ってる処理の
>どこかなんだろうと思うんですが、エラーメッセージの中に何かソースコード中の場
>所を知らせてくれるような内容とか出てなかったでしょうか。もし出てたら教えて欲
>しいです。
************** 例外テキスト **************
System.ArgumentException: 同一のキーを含む項目が既に追加されています。
   場所 System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   場所 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   場所 System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   場所 sk.live.MainCode.SetJSONParam(String JSON, Boolean& MultiFlg)
   場所 sk.live.SkyDrive.GetRootID()
   場所 sk.live.SkyDrive.IsAccess(Boolean SetOAuthFlg)
   場所 hmnetex.FTPProWin.AuthNowButton_Click(Object sender, EventArgs e)
   場所 System.Windows.Forms.Control.OnClick(EventArgs e)
   場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   場所 System.Windows.Forms.Control.WndProc(Message& m)
   場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   場所 System.Windows.Forms.Button.WndProc(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** 読み込まれたアセンブリ **************

> あと、「ファイル・Web・Hidemarnet Explorerの設定」から「その他」ページの
>「エラーログを記録する」として出てくる「sk.lib.err」ファイルの一番最後付近の
>内容も出来たら教えて欲しいです。
2021/01/08 23:18:35 SK:IsAccess:Start(True):0
2021/01/08 23:18:35 SK:IsAccess2:0
2021/01/08 23:18:35 SK:IsAccess3:0
2021/01/08 23:18:39 SK:IsAccess4:4390
2021/01/08 23:18:40 SK:IsAccess5:5469
2021/01/08 23:18:41 SK:IsAccess6:6328
2021/01/08 23:18:41 SK:GetRootID:Start:0
2021/01/08 23:18:41 SK:GetRootID2:0
2021/01/08 23:18:41 SK:GetRootID3:0
2021/01/08 23:18:41 SK:GetRootID5:0
2021/01/08 23:18:41 GetContentV450 URL=https://graph.microsoft.com/v1.0/me/drive/root
2021/01/08 23:18:42 GetContentV450 Result={"@odata.context": 〜 省略 〜
2021/01/08 23:18:42 SK:GetRootID6:781

> までは成功してて、その次の「GetRootID7」が出る前に例外が起きてるのかなぁと思います。
そのようです。
[ ]
RE:38643 Hidemarnet Explorer with FTPS V4.50No.38648
秀まるお2 さん 21/01/12 11:54 [ コメントを投稿する ]
   問題の箇所の修正と、その他似たような処理が無いかのチェックもしてまたアップロードさせていただきました。

https://hide.maruo.co.jp/software/bin/hmexs451_signed.exe

 すみませんがこれで1回動作確認お願いしたいです。

 Graph APIから返ってくるJSON型式データの解析は全部Newtsonsoft.Jsonライブラリを使うようにした上で、例外もちゃんとキャッチして落ちないように修正してみました。

 もしかしてこれでもダメでしたら、エラーログの中に出てきてる

2021/01/08 23:18:42 GetContentV450 Result={"@odata.context": 〜 省略 〜

 の所を全部か、せめて形式的に同じ物を教えていただければ再現できるかと思います。

 たとえば

 "id":"xxxxx"

 みたいに中身は伏せ字にしていただくとかで教えて欲しいです。

 ちなみに僕の所だとこんな風なデータになります。これだとそもそも最初に連絡いただいた例外も発生しないのですが。

2021/01/10 10:23:35 GetContentV450 URL=https://graph.microsoft.com/v1.0/me/drive/root
2021/01/10 10:23:36 GetContentV450 Result={"@odata.context":"https://....","createdDateTime":"2012-03-16T09:24:26.527Z","cTag":"xxxxxx","eTag":"xxxxxx","id":"xxxxxx","lastModifiedDateTime":"2021-01-07T09:47:03.933Z","name":"root","size":1402092,"webUrl":"https://....","createdBy":{"user":{"displayName":"xxxxx","id":"xxxxx"}},"lastModifiedBy":{"user":{"displayName":"xxxxx","id":"xxxxx"}},"parentReference":{"driveId":"xxxxx","driveType":"personal"},"fileSystemInfo":{"createdDateTime":"2012-03-16T09:24:26.526Z","lastModifiedDateTime":"2012-03-16T09:24:28.287Z"},"folder":{"childCount":9,"view":{"viewType":"thumbnails","sortBy":"name","sortOrder":"ascending"}},"root":{}}


 よろしくお願いします。
[ ]
RE:38648 Hidemarnet Explorer with FTPS V4.50No.38651
h-tom さん 21/01/12 19:46 [ コメントを投稿する ]
  h-tom です。

> 問題の箇所の修正と、その他似たような処理が無いかのチェックもしてまたアップ
>ロードさせていただきました。
>
>https://hide.maruo.co.jp/software/bin/hmexs451_signed.exe
>
> すみませんがこれで1回動作確認お願いしたいです。
V4.51でクラッシュすることはなくなりました。
別のPCで、最初からOneDriveを設定し接続した場合でも問題ありません。

ただ、Hidemarnet Explorer/秀丸エディタ本体のどちらの問題かわかりませんが、
OneDrive上のファイルをダウンロードし開くと、以下のダイアログが表示されます。
(秀丸エディタ Ver.8.96β9 x64)

---------------------------
秀丸エディタ
---------------------------
Input file must be a full path name.
---------------------------
OK   
---------------------------

「FTPで開く」-> OneDriveに接続しファイルを選択 -> 「ファイルの転送処理中」のダイアログが表示 -> ファイル内容が表示されると同時に、上記ダイアログが出てくる。
filenameキーワードは「ftp://skydrive.live.com/選択したファイル名」になってます。
[ ]
RE:38651 Hidemarnet Explorer with FTPS V4.50No.38655
秀まるお2 さん 21/01/13 08:58 [ コメントを投稿する ]
   動作確認ありがとうございます。

 「FTPで開く」の後に出てくるメッセージですが、その内容のメッセージ文字列をソースコードから検索したんですが、Hidemarnet Explorer with FTPSからも秀丸エディタからも見つからないようなので、たぶん自動起動用に指定してるマクロがあって、それが出してるんじゃないかという気がします。

 常駐秀丸エディタのメニューの一番下に「マクロ中断!」が出てるならマクロが出してるんだと思います。

 とりあえずの動作確認にご協力お願いしただけなので、マクロがエラーメッセージを出してるのなら問題無い(マクロも直さなくていい)と思います。
[ ]
RE:38655 Hidemarnet Explorer with FTPS V4.50No.38657
h-tom さん 21/01/13 20:15 [ コメントを投稿する ]
  h-tom です。

> 動作確認ありがとうございます。
>
> 「FTPで開く」の後に出てくるメッセージですが、その内容のメッセージ文字列を
>ソースコードから検索したんですが、Hidemarnet Explorer with FTPSからも秀丸エデ
>ィタからも見つからないようなので、たぶん自動起動用に指定してるマクロがあって、
>それが出してるんじゃないかという気がします。
確認ました。
自動起動マクロを止めたら出なくなったのでマクロですね。
マクロファイルにgrepかけても出ないと思ったらDLL側でした。

ということで、Hidemarnet Explorer with FTPS は問題なしです。
[ ]
RE:38657 Hidemarnet Explorer with FTPS V4.50No.38658
秀まるお2 さん 21/01/14 08:53 [ コメントを投稿する ]
   毎度確認ありがとうございます。ぼちぼちV4.52ってことでアップロードさせていただきます。
[ ]

[ 新規に投稿する ]