こんばんは
以下は、HTAアプリケーションのbody部にマウスカーソルを乗せると、テキスト上の選択してある文字列をクリップボードに送り、そのデータをテキストボックス内に送ることを意図したスクリプトです。
しかし、テキストを選択した状態でonmouseoverイベントを発生させても1回目はNull、2回目は選択した文字列がテキストボックスにセットされ、これが交互に繰り返されます。
当方のWindows7でも、仕事先のXPの環境でも同様の現象が発生します。
Nullがランダムに発生するのであれば、コピーが失敗しているのだなと分かるのですが、規則的に交互に繰り返される理由がわかりません。
どなたか、原因と解決法をご存知のかたがいらっしゃいましたら、教えていただきたいです。
(※7でClipコマンドが使えるのは知っております)
--------------------sample.hta----------------------
<html>
<head>
<script type="text/vbscript">
Sub window_onload
resizeTo 200,200
End Sub
Sub Sample
Set sh = CreateObject("Wscript.Shell")
sh.sendkeys "^c"
Clp = ClipboardData.GetData("text")
text1.value = Clp
Set sh = Nothing
ClipboardData.ClearData
End sub
</script>
</head>
<body onmouseover="Sample">
<input type="text" id="text1">
</body>
<html>
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは。
ちょっとだけ、以下のように変えてみました。
でも、そのコードは、コピーに失敗はしていないし、コードそのものは問題ないのでは?
それと、その、ClipboardData.ClearData というのは必要なのですか?
空のClp を、そのまま表示すれば、null になりますね。
null は、Variant型の何もない状態のものです。もし、空のClpでも、""(長さ0の文字列)ぐらい入れれば、Text1 は、見かけの空白にはなります。
それと、Dim Clp の変数の宣言を、外に出して、Clpを空にしないようにしてみました。つまり、何もしなければ、そのまま残るということです。
なお、実際のご要望とは違ってしまったら、ご容赦ください。その場合、「解決法」の意図する所を、誤解しているはずです。
'//
Dim Clp
Sub window_onload
resizeTo 200,200
End Sub
Sub Sample
With CreateObject("Wscript.Shell")
.Sendkeys "^c"
End With
Clp = ClipboardData.GetData("text")
If IsNull(Clp)=False Then
text1.Value = Clp
'ClipboardData.ClearData
End If
End sub
'///
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスかラベル上の...
-
WORd VBA 文章を単語に分解する
-
【VBS】クリップボード操作につ...
-
ExcelのVBAで文章にある複数の...
-
XMLファイルのattribute値がう...
-
sublimit textっていうエディタ...
-
Rubyにおける正規表現(一致し...
-
VB.NETでのイベントの途中終了
-
C#のループでtextboxに値を入れ...
-
エクセルVBAでテキストボッ...
-
C言語のサフィックスについて
-
他のフォームから別のフォーム...
-
subsequentとnextの違いってな...
-
VBAでcallで呼び出したsubを終...
-
チェックボックスを操作できな...
-
タイムアウトする仕組みを作りたい
-
String型の値にスラッシュをつ...
-
Excel ユーザーフォームで計算 ...
-
VB
-
VBAで入力数値について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sublimit textっていうエディタ...
-
ExcelのVBAで文章にある複数の...
-
テキストボックスかラベル上の...
-
【VBS】クリップボード操作につ...
-
RichTextBoxで指定行の色を自動...
-
vba 日本語以外を抽出について
-
文字列を配列に…。
-
Pythonのre.split()の正規表現...
-
VBスクリプトでファイルのコピ...
-
VB6.0 sp5]テキストボックスと...
-
文字列を日付型情報として計算...
-
XMLファイルのattribute値がう...
-
VBScript、ClipboardDataオブジ...
-
[VB6] SQLの作成について
-
Visual Basicについてお聞きし...
-
表の文字の均等割りについて
-
perlによるxmlファイルの取得
-
Googleシート「A1」でなくて「A...
-
HTMLのデータ読み取り
-
サンプルプログラムをコンパイ...
おすすめ情報