Hi,
ich muss ein bissl weiter ausholen, um mein Anliegen verständlich zu machen:
Mit dem Windows Clipboard, kann man bequem Daten aus einer Anwendung in eine andere Anwendung übertragen.
Daran stört mich aber, dass der Inhalt des Clipboards nicht "von selbst" verschwindet ... sondern im dümmsten Fall bis zum Shutdown erhalten bleibt. Wenn man sensitive Daten eingestellt hat, dann fallen die im Handumdrehen einem Hacker in die Hand ... denn wenn die zum Zug kommen, dann prüfen die meist sofort, was im Clipboard steht !
Die Idee ist ein "volatile Clipboard" ... also ein Verfahren, dass dafür sorgt, dass sich der Inhalt des Clipboards nach sagen wir mal drei Sekunden verflüchtig.
Wenn man das Clipboard mit Button-Click oder Feld-DoubleClick befüllt, dann ist das sehr einfach mit einem Delete Timer zu regeln. HIer ein Sample:
So far so good !
Aber oft befülle ich das Clipboard mit der Tasten Kombination
Jetzt würde ich gern dafür sorgen, dass auch in diesen Fällen mein Delete-Timer zuschlägt. MIt anderen Worten, wie bringe ich
Ich habe zunächst an GetAsyncKeyState gedacht:
Aber diese Funktion müsste ich ja mit einem Button Click aufrufen ... und dann kann ich gleich den Timer selber starten, ohne den Umweg über GetAsyncKeyState .
Ich suche also eine Möglichkeit DIREKT auf
Ich hoffe, ich habe mein nicht so ganz triviales Anliegen verständlich machen können.
LG
Peter
ich muss ein bissl weiter ausholen, um mein Anliegen verständlich zu machen:
Mit dem Windows Clipboard, kann man bequem Daten aus einer Anwendung in eine andere Anwendung übertragen.
Daran stört mich aber, dass der Inhalt des Clipboards nicht "von selbst" verschwindet ... sondern im dümmsten Fall bis zum Shutdown erhalten bleibt. Wenn man sensitive Daten eingestellt hat, dann fallen die im Handumdrehen einem Hacker in die Hand ... denn wenn die zum Zug kommen, dann prüfen die meist sofort, was im Clipboard steht !
Die Idee ist ein "volatile Clipboard" ... also ein Verfahren, dass dafür sorgt, dass sich der Inhalt des Clipboards nach sagen wir mal drei Sekunden verflüchtig.
Wenn man das Clipboard mit Button-Click oder Feld-DoubleClick befüllt, dann ist das sehr einfach mit einem Delete Timer zu regeln. HIer ein Sample:
VB.NET-Quellcode
- Public Class Form1
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Timer1.Interval = 3000 'Autoclear delay is 3 seconds
- TextBox1.Text = "hello baby" 'Insert test content
- Label1.Text = "" 'Initialize message field
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- ClipboardSet(TextBox1.Text) 'Set clipboard using button
- End Sub
- Private Sub TextBox1_DoubleClick(sender As Object, e As EventArgs) Handles TextBox1.DoubleClick
- ClipboardSet(TextBox1.Text) 'Set clipboard using double click
- End Sub
- Private Sub ClipboardSet(strText As String)
- Timer1.Enabled = False 'Stop autoclear timer
- Clipboard.SetText(strText) 'Fill clipboard
- Label1.Text = "OK, Clipboard set."
- Timer1.Enabled = True 'Start autoclear timer
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- Timer1.Enabled = False 'Stop autoclear timer
- Dim strClipboard As String = Clipboard.GetText() 'Get clipboard
- Clipboard.Clear() 'Remove text from clipboard
- If strClipboard.Trim = "" Then 'Display message
- Label1.Text = "*** Clipboard is empty."
- Else
- Label1.Text = "OK, clipboard retrieved."
- MessageBox.Show(strClipboard)
- End If
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- Timer1.Enabled = False 'Stop autoclear timer
- Label1.Text = "Clipboard autocleared."
- Clipboard.Clear() 'Remove text from clipboard
- End Sub
- End Class
So far so good !
Aber oft befülle ich das Clipboard mit der Tasten Kombination
CTRL-C
Jetzt würde ich gern dafür sorgen, dass auch in diesen Fällen mein Delete-Timer zuschlägt. MIt anderen Worten, wie bringe ich
CTRL-C
dazu, nicht nur das Clipboard mit dem ausgewählten Text zu befüllen, sondern auch noch den Befehl Timer1.Enabled = True
abzusetzen. Ich habe zunächst an GetAsyncKeyState gedacht:
Aber diese Funktion müsste ich ja mit einem Button Click aufrufen ... und dann kann ich gleich den Timer selber starten, ohne den Umweg über GetAsyncKeyState .
Ich suche also eine Möglichkeit DIREKT auf
CTRL-C
zu reagieren. Ich hoffe, ich habe mein nicht so ganz triviales Anliegen verständlich machen können.
LG
Peter
Dieser Beitrag wurde bereits 15 mal editiert, zuletzt von „Peter329“ ()