c#


Making a transparent/Click-throughable VB.net form clickable with a toggle


So I was working on a transparent add-on VB.net program that will be clickable only if you click shift. E.g. It will just stay there but clicks will go through it unless I hold shift f.e
I saw this and tested the codes,
VB.net Click through form
However I tried to change some controls but none are able to give me a kind of "toggle". Any clue of what I can fix for it?
Answers in C# are welcome as well as I can program C# instead if it is not do-able in VB
Edit: Code I have been trying to use is this
Imports System.Runtime.InteropServices
Public Class Form1
Private InitialStyle As Integer
Dim PercentVisible As Decimal
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
InitialStyle = GetWindowLong(Me.Handle, -20)
PercentVisible = 0.8
SetWindowLong(Me.Handle, -20, InitialStyle Or &H80000 Or &H20)
SetLayeredWindowAttributes(Me.Handle, 0, 255 * PercentVisible, &H2)
Me.BackColor = Color.Red
Me.TopMost = True
End Sub
<DllImport("user32.dll", EntryPoint:="GetWindowLong")> Public Shared Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer
End Function
<DllImport("user32.dll", EntryPoint:="SetWindowLong")> Public Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
End Function
<DllImport("user32.dll", EntryPoint:="SetLayeredWindowAttributes")> Public Shared Function SetLayeredWindowAttributes(ByVal hWnd As IntPtr, ByVal crKey As Integer, ByVal alpha As Byte, ByVal dwFlags As Integer) As Boolean
End Function
End Class
I found the color to make all the difference; afaik this is a legacy bug/feature we can make use of.
Here is a minimal example:
public Form1()
{
InitializeComponent();
BackColor = Color.FromArgb(123,234,34);
TransparencyKey = BackColor;
Text = "Click Me!";
KeyPreview = true;
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Shift)
{
BackColor = Color.Fuchsia;
TransparencyKey = BackColor;
Text = "Click Through!";
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
BackColor = Color.FromArgb(123,234,34);
TransparencyKey = BackColor;
Text = "Click Me!";
}

Related Links

UWP StreamSocket App closes after connection
Update Duplicated Items In list View
UI thread blocks my window, How to change that? [closed]
c# optional parameters in constructor [duplicate]
Show object in front of the player always
deserializing JSON object with nested fields, results
How do I create FIX partyID group?
Find User Outside of ActionResult Methods
How to handle LongPressed event of a Zebble view or control
Printing PDF lables to a Zebra printer (420d)
Serialize JSON using DataAnnotation to apply decimal formatting rules
Function in update is called only once
Xamarin Studio Community Test Recoder
C# WPF DataGrid: DataGridComboxBoxColumn Binding ItemsSource failed
Apache Ignite SQL query composed primary key NET
Logging exception in WebAPI

Categories

HOME
repository
grizzly
azure-active-directory
system-calls
sip
customization
watson-iot
ubuntu-14.04
sitemap
android-webview
select2
velocity
sha1
ringcentral
airbnb
turn.js
bug-reporting
fastboot
screen-scraping
infinite-loop
devexpress-mvc
handle
gulp-jshint
typeorm
meteor-accounts
foxpro
epub
kofax
outlook-2010
word-wrap
icu
google-chrome-console
quartz
irr
peerjs
amazon-fire-tv
qtwebkit
emacs24
dcom
appcmd
jcifs
openpgp.js
r-commander
zedgraph
blackberry-webworks
consolidation
dimensionality-reduction
vga
patching
sbt-proguard
nslocalizedstring
sqldataadapter
producer-consumer
om
jsoncpp
gcc-warning
jad
attiny
alpha-beta-pruning
cordova-3
api-eveonline
indic
enquire.js
xps
infor-eam
azure-pack
latex-suite
mysql2
nsautoreleasepool
auctex
vline
zepto
qt5.1
pdf-reader
socketasynceventargs
datejs
virtual-printer
flexbuilder
windows-xp-embedded
qvariant
n2
quazip
nstoolbar
jquery-attributes
miniport
managed-code

Resources

Encrypt Message