@@ -5451,7 +5451,7 @@ internal static bool OCR_GJcool_AutoRecognizeVertical(string downloadImgFullName
5451
5451
#endregion
5452
5452
5453
5453
5454
- if (ActiveForm1.TopMost) ActiveForm1.TopMost = false;
5454
+ ActiveForm1.TopMost = false;
5455
5455
//點數(算力值、算力配额)不足逕用「快速體驗」執行
5456
5456
if (!OCR_GJcool_AccountChanged && waitGJcoolPoint || (!OCR_GJcool_AccountChanged && waitGJcoolPoint && DateTime.Now.Subtract(gjCoolPointLess150When) < gjCoolPointEnoughTimespan))
5457
5457
{
@@ -5792,7 +5792,7 @@ internal static bool OCR_GJcool_AutoRecognizeVertical(string downloadImgFullName
5792
5792
//Thread.Sleep(3200);
5793
5793
//等待「選擇檔案」控制項出現,最多等timeSpanSecs秒;
5794
5794
//為免tab鍵數不同,而須手動操作,以免表單遮住畫面:
5795
- if (ActiveForm1.TopMost) ActiveForm1.TopMost = false;
5795
+ ActiveForm1.TopMost = false;
5796
5796
Clipboard.Clear();
5797
5797
DateTime begin = DateTime.Now; const int timeSpanSecs = 30;
5798
5798
TimeSpan timeSpan = new TimeSpan();
@@ -8057,6 +8057,24 @@ string standardizedText(ref string text)
8057
8057
return true;
8058
8058
}
8059
8059
/// <summary>
8060
+ /// 改變CTP圖文對照網址的 Page 參數以供翻頁
8061
+ /// 20240920 Copilot大菩薩:更改 URL 参数以翻页:https://sl.bing.net/jZV8afaj85Q
8062
+ /// </summary>
8063
+ /// <param name="url">要改變的網址</param>
8064
+ /// <param name="newPageNumber">Page參數要成的數值</param>
8065
+ /// <returns>傳回改動後的網址</returns>
8066
+ public static string ChangePageParameter(string url, int newPageNumber)
8067
+ {
8068
+ var uri = new Uri(url);
8069
+ var query = System.Web.HttpUtility.ParseQueryString(uri.Query);
8070
+ query.Set("page", newPageNumber.ToString());
8071
+ var uriBuilder = new UriBuilder(uri)
8072
+ {
8073
+ Query = query.ToString()
8074
+ };
8075
+ return uriBuilder.ToString();
8076
+ }
8077
+ /// <summary>
8060
8078
/// 作為「《漢籍全文資料庫》檢索易學關鍵字」的欲檢索關鍵字瀏覽清單索引(已檢索瀏覽之位置)記錄用。在textBox2中輸入「lx」(list index clear(x=叉=清除))以歸零
8061
8079
/// </summary>
8062
8080
internal static int ListIndex_Hanchi_SearchingKeywordsYijing = 0;
@@ -8072,12 +8090,91 @@ internal static bool Hanchi_CTP_SearchingKeywordsYijing()
8072
8090
{
8073
8091
if (driver == null) return true;
8074
8092
8075
- string title;
8093
+ string title = null;
8094
+
8095
+ #region 檢查title creedit_with_Copilot大菩薩: C# 比對字串中的特定子字串: https://sl.bing.net/dy0lfJJXE72
8096
+ //檢查title 如果不包含指定的條件,則傳回false
8097
+ bool checkTitle(string titleToCheck)
8098
+ {
8099
+ string pattern = "漢籍全文|中國哲學書電子化計劃|Chinese Text Project";
8100
+ return Regex.IsMatch(title, pattern);
8101
+ //string[] keywords = { "漢籍全文", "中國哲學書電子化計劃", "Chinese Text Project" };
8102
+ //var foundKeywords = keywords.Where(keyword => title.Contains(keyword));
8103
+ }
8104
+
8105
+ void forEachTabChectTitle()
8106
+ {
8107
+ //《漢籍全文資料庫》網頁介面
8108
+ foreach (var item in driver.WindowHandles)
8109
+ {
8110
+ driver.SwitchTo().Window(item);
8111
+ try
8112
+ {
8113
+ if (driver.Title.Contains("漢籍全文")) break;
8114
+ }
8115
+ catch (Exception exx)
8116
+ {
8117
+ switch (exx.HResult)
8118
+ {
8119
+ case -2146233088:
8120
+ if (exx.Message.StartsWith("unknown error\nfrom no such execution context:"))//unknown error
8121
+ //from no such execution context: frame does not have execution context
8122
+ // (Session info: chrome = 128.0.6613.138)
8123
+ continue;
8124
+ break;
8125
+ default:
8126
+ Console.WriteLine(exx.HResult + exx.Message);
8127
+ Form1.MessageBoxShowOKExclamationDefaultDesktopOnly(exx.HResult + exx.Message);
8128
+ break;
8129
+ }
8130
+ }
8131
+ }
8132
+ if (!driver.Title.Contains("漢籍全文"))
8133
+ {
8134
+ title = string.Empty;
8135
+ foreach (var item in driver.WindowHandles)
8136
+ {
8137
+ try
8138
+ {
8139
+ if (driver.SwitchTo().Window(item).Url.StartsWith("https://ctext.org/wiki.pl?if="))//https://ctext.org/wiki.pl?if=gb&res=、https://ctext.org/wiki.pl?if=en&res=
8140
+ { title = driver.Title; break; }
8141
+ }
8142
+ catch (Exception exx)
8143
+ {
8144
+ switch (exx.HResult)
8145
+ {
8146
+ case -2146233088:
8147
+ if (exx.Message.StartsWith("unknown error\nfrom no such execution context:"))//unknown error
8148
+ //from no such execution context: frame does not have execution context
8149
+ // (Session info: chrome = 128.0.6613.138)
8150
+ continue;
8151
+ break;
8152
+ default:
8153
+ Console.WriteLine(exx.HResult + exx.Message);
8154
+ Form1.MessageBoxShowOKExclamationDefaultDesktopOnly(exx.HResult + exx.Message);
8155
+ break;
8156
+ }
8157
+ }
8158
+
8159
+ }
8160
+ }
8161
+ }
8162
+
8163
+ #endregion
8164
+
8165
+
8166
+
8076
8167
try
8077
8168
{
8078
8169
//不要切到Chrome瀏覽器!可以在等結果的時候做別的工作。20240915
8079
8170
//driver.SwitchTo().Window(driver.CurrentWindowHandle);
8080
8171
title = driver.Title;//避免誤關出錯
8172
+ if (!checkTitle(title)) forEachTabChectTitle();
8173
+ if (title.IsNullOrEmpty())
8174
+ {
8175
+ Form1.MessageBoxShowOKExclamationDefaultDesktopOnly("請開啟《漢籍全文資料庫》網頁檢索介面,再開始操作");
8176
+ return true;
8177
+ }
8081
8178
}
8082
8179
catch (Exception ex)
8083
8180
{
@@ -8096,65 +8193,11 @@ internal static bool Hanchi_CTP_SearchingKeywordsYijing()
8096
8193
}
8097
8194
break;
8098
8195
default:
8099
-
8100
- //《漢籍全文資料庫》網頁介面
8101
- foreach (var item in driver.WindowHandles)
8196
+ forEachTabChectTitle();
8197
+ if (title.IsNullOrEmpty())
8102
8198
{
8103
- driver.SwitchTo().Window(item);
8104
- try
8105
- {
8106
- if (driver.Title.Contains("漢籍全文")) break;
8107
- }
8108
- catch (Exception exx)
8109
- {
8110
- switch (exx.HResult)
8111
- {
8112
- case -2146233088:
8113
- if (exx.Message.StartsWith("unknown error\nfrom no such execution context:"))//unknown error
8114
- //from no such execution context: frame does not have execution context
8115
- // (Session info: chrome = 128.0.6613.138)
8116
- continue;
8117
- break;
8118
- default:
8119
- Console.WriteLine(exx.HResult + exx.Message);
8120
- Form1.MessageBoxShowOKExclamationDefaultDesktopOnly(exx.HResult + exx.Message);
8121
- break;
8122
- }
8123
- }
8124
- }
8125
- if (!driver.Title.Contains("漢籍全文"))
8126
- {
8127
- title = string.Empty;
8128
- foreach (var item in driver.WindowHandles)
8129
- {
8130
- try
8131
- {
8132
- if (driver.SwitchTo().Window(item).Url.StartsWith("https://ctext.org/wiki.pl?if="))//https://ctext.org/wiki.pl?if=gb&res=、https://ctext.org/wiki.pl?if=en&res=
8133
- { title = driver.Title; break; }
8134
- }
8135
- catch (Exception exx)
8136
- {
8137
- switch (exx.HResult)
8138
- {
8139
- case -2146233088:
8140
- if (exx.Message.StartsWith("unknown error\nfrom no such execution context:"))//unknown error
8141
- //from no such execution context: frame does not have execution context
8142
- // (Session info: chrome = 128.0.6613.138)
8143
- continue;
8144
- break;
8145
- default:
8146
- Console.WriteLine(exx.HResult + exx.Message);
8147
- Form1.MessageBoxShowOKExclamationDefaultDesktopOnly(exx.HResult + exx.Message);
8148
- break;
8149
- }
8150
- }
8151
-
8152
- }
8153
- if (title == string.Empty)
8154
- {
8155
- Form1.MessageBoxShowOKExclamationDefaultDesktopOnly("請開啟《漢籍全文資料庫》網頁檢索介面,再開始操作");
8156
- return true;
8157
- }
8199
+ Form1.MessageBoxShowOKExclamationDefaultDesktopOnly("請開啟《漢籍全文資料庫》網頁檢索介面,再開始操作");
8200
+ return true;
8158
8201
}
8159
8202
break;
8160
8203
}
@@ -8166,9 +8209,9 @@ internal static bool Hanchi_CTP_SearchingKeywordsYijing()
8166
8209
"咸恆","老陰", "老陽", "少陰", "少陽","十翼","四象","兩儀",
8167
8210
"无妄", "彖", "象曰", "象傳", "象日", "象云","小象", "筮",
8168
8211
"初九","九二","九三","九四","九五","上九","初六","六二","六三","六四","六五","上六","用九","用六", "繇辭","繇詞",
8169
- "隨時之義","庖有魚","包有魚","精義入神","豶豕","童牛","承之羞","雷在天上","錫馬", "蕃庶","晝日","三接","懲忿","窒欲","敬以直內","義以方外","迷後得主","利西南","品物咸章","天下大行","益動而", "日進無疆","頻巽","豚魚","頻復", "懲窒","閑邪","存誠","乾乾","悔吝","憧憧", "類萬物","柔順利貞","比之匪人","貞厲","履貞","履道坦坦","貞吉","悔亡","時義","健順", "內健而外順", "內健外順", "外順而內健", "外順內健","敦復","直方","開物成務","窮神知化", "夕惕","惕若","研幾極深","極深研幾","一陰一陽","允升","木上有水","勞民勸相","索而得","我有好爵","言有序","有聖人之道四","長子帥師","弟子輿尸","無悶","日用而不知","之道鮮","原始反終", "寂然不動", "感而遂通","朋從", "朋盍", "容民畜眾","有過則改","見善則遷",
8212
+ "隨時之義","庖有魚","包有魚","精義入神","豶豕","童牛","承之羞","雷在天上","錫馬", "蕃庶","晝日","三接","懲忿","窒欲","敬以直內","義以方外","迷後得主","利西南","品物咸章","天下大行","益動而", "日進無疆","頻巽","豚魚","頻復", "懲窒","閑邪","存誠","乾乾","悔吝","憧憧", "類萬物","柔順利貞","比之匪人","貞厲","履貞","履道坦坦","貞吉","悔亡","時義","健順", "內健而外順", "內健外順", "外順而內健", "外順內健","敦復","直方","開物成務","窮神知化", "夕惕","惕若","研幾極深","極深研幾","一陰一陽","允升","木上有水","勞民勸相","索而得","我有好爵","言有序","有聖人之道四","長子帥師","弟子輿尸","無悶","日用而不知","之道鮮","原始反終", "寂然不動", "感而遂通","朋從", "朋盍", "容民畜眾","有過則改","見善則遷","養正","養賢","知臨","臨大君", "默而成之","黙而成之","不言而信", "存乎德行","通天下之志","履正", "繼之者善", "仁者見之", "知者見之", "智者見之",
8170
8213
"象義",
8171
- "伏羲","伏𦏁","庖𦏁","宓𦏁","伏犧","庖犧"};
8214
+ "伏羲","伏𦏁","庖羲"," 庖𦏁","宓𦏁","宓羲","宓犧 ","伏犧","庖犧"};
8172
8215
8173
8216
//異體字處理(只用在《中國哲學書電子化計劃》,因為《漢籍全文資料庫》已俱。)
8174
8217
if (title.EndsWith("中國哲學書電子化計劃") || title.EndsWith("Chinese Text Project"))
@@ -8261,23 +8304,27 @@ internal static bool Hanchi_CTP_SearchingKeywordsYijing()
8261
8304
driver.Navigate().Back();
8262
8305
returnValue = false;
8263
8306
}
8264
- else//有結果 -中國哲學書電子化計劃
8307
+ else//檢索有結果 -中國哲學書電子化計劃
8265
8308
{
8266
8309
returnValue = true; Clipboard.SetText(keyword); ActiveForm1.KeyinTextmodeSwitcher();
8267
8310
//有文本的文字框
8268
8311
//Thread.Sleep(800);
8312
+ ActiveForm1.TopMost = false;
8313
+ driver.SwitchTo().Window(driver.CurrentWindowHandle);
8269
8314
if (new StringInfo(keyword).LengthInTextElements > 1)
8270
8315
FindPageAndPaste2Find(driver, keyword);
8271
8316
else
8272
8317
HighlightKeywords(keyword);
8273
8318
}//ActiveForm1.HideToNICo(); }
8274
8319
8275
8320
}
8276
- else//有結果 -中國哲學書電子化計劃
8321
+ else//檢索有結果 -中國哲學書電子化計劃
8277
8322
{
8278
8323
returnValue = true; Clipboard.SetText(keyword); ActiveForm1.KeyinTextmodeSwitcher();
8279
8324
//有文本的文字框
8280
8325
//Thread.Sleep(800);
8326
+ ActiveForm1.TopMost = false;
8327
+ driver.SwitchTo().Window(driver.CurrentWindowHandle);
8281
8328
if (new StringInfo(keyword).LengthInTextElements > 1)
8282
8329
FindPageAndPaste2Find(driver, keyword);
8283
8330
else
0 commit comments