どうもこの記号、UnicodeのU+2212の、「ASCIIの半角ハイフンとも
U+FF0Dの全角ハイフンとも違う、似て非なる記号」という
非常にややこしい代物のようですね。
対処法としては、
・hspextのclipgetではなく、以下のサイトの「クリップボード操作モジュール」を
導入し、clipgetの代わりにClipB_GetTextを使う。
https://menyukko.ifdef.jp/cauldron/hmclipboard.html
・その上で、このモジュールの「#deffunc ClipB_GetText var t」から始まる
ブロックを以下のように改造する。
#deffunc ClipB_GetText var t
t = ""
//CF_UNICODETEXT=13
IsClipboardFormatAvailable 13 : if stat == 0 : return ; テキストはない
OpenClipboard hwnd ; クリップボード開く
if stat {
GetClipboardData 13 : ib = stat ; グローバルメモリのハンドル取得
GlobalSize ib : ib(1) = stat ; メモリサイズ
GlobalLock ib : ib(2) = stat ; メモリロック
dupptr dp , ib(2) , ib(1) , 2
sdim temp,ib(1) : memcpy temp,dp,ib(1),0,0
repeat ib(1)/2
get=wpeek(temp,cnt*2)
if get=0x2212 : wpoke temp,cnt*2,0x002D //0x2212を0x002D(半角ハイフン)に置き換え
loop
t = cnvwtos(temp) ; データを手に入れた!
dim temp
GlobalUnlock ib ; メモリアンロック
CloseClipboard ; クリップボードを閉じる
}
return
これでどうでしょうか?