Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell Mousedown Event

Frage Entwicklung Batch & Shell

Mitglied: SaschaRD

SaschaRD (Level 1) - Jetzt verbinden

03.06.2014 um 10:37 Uhr, 2221 Aufrufe, 2 Kommentare, 1 Danke

Hallo zusammen,

kennt jemand das Pendat zu diesem Code?:
01.
Private Sub Installer_MouseDown(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDown 
02.
  If (e.Button = Windows.Forms.MouseButtons.Left) Then 
03.
    Me.Capture = False 
04.
    Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero)) 
05.
  Else : End If 
06.
End Sub
Suche dieselbe Funktion in Powershell (der o.g. Code ist VB).
01.
$mainForm_MouseDown = [System.Windows.Forms.MouseEventHandler] { 
02.
  if (condition) {	 
03.
  }
Soweit bin ich schon einmal =)

Mit dem VB-Code von oben kann man das Fenster bei einem Mousedown bewegen.

Gruß, Sascha
Mitglied: colinardo
LÖSUNG 03.06.2014, aktualisiert um 15:43 Uhr
Hallo Sascha,
kannst du so machen:
01.
$mainForm.add_MouseDown({ 
02.
  if ($_.Button -eq [System.Windows.Forms.MouseButtons]::Left){ 
03.
        $script:mousedown = $true 
04.
        $script:m_offset = new-Object System.Drawing.Point 
05.
        $script:m_offset.X = $mainForm.PointToScreen($_.Location).X - $mainForm.Location.X 
06.
        $script:m_offset.Y = $mainForm.PointToScreen($_.Location).Y - $mainForm.Location.Y 
07.
08.
}) 
09.
$mainForm.add_MouseUp({ 
10.
  if ($_.Button -eq [System.Windows.Forms.MouseButtons]::Left){ 
11.
        $script:mousedown = $false 
12.
13.
}) 
14.
 
15.
$mainForm.add_MouseMove({ 
16.
    if($script:mousedown){ 
17.
        $p = new-Object System.Drawing.Point 
18.
        $p.X = [System.Windows.Forms.Cursor]::Position.X - $script:m_offset.X 
19.
        $p.Y = [System.Windows.Forms.Cursor]::Position.Y - $script:m_offset.Y 
20.
        $mainForm.Location = $p 
21.
22.
})
hier noch ein komplettes Beispiel, bei dem man die Form bewegen kann wenn man die Maus irgendwo auf der Form gedrückt hält:
(Für den Fall das dir der Zusammenhang fehlt)

01.
function GenerateForm { 
02.
#region Import the Assemblies 
03.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
04.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
05.
#endregion 
06.
 
07.
#region Generated Form Objects 
08.
$form1 = New-Object System.Windows.Forms.Form 
09.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
10.
#endregion Generated Form Objects 
11.
 
12.
$OnLoadForm_StateCorrection= 
13.
{#Correct the initial state of the form to prevent the .Net maximized form issue 
14.
	$form1.WindowState = $InitialFormWindowState 
15.
16.
 
17.
#---------------------------------------------- 
18.
#region Generated Form Code 
19.
$System_Drawing_Size = New-Object System.Drawing.Size 
20.
$System_Drawing_Size.Height = 272 
21.
$System_Drawing_Size.Width = 292 
22.
$form1.ClientSize = $System_Drawing_Size 
23.
$form1.DataBindings.DefaultDataSourceUpdateMode = 0 
24.
$form1.Name = "form1" 
25.
$form1.Text = "Testform" 
26.
$form1.add_MouseDown({ 
27.
  if ($_.Button -eq [System.Windows.Forms.MouseButtons]::Left){ 
28.
        $script:mousedown = $true 
29.
        $script:m_offset = new-Object System.Drawing.Point 
30.
        $script:m_offset.X = $form1.PointToScreen($_.Location).X - $form1.Location.X 
31.
        $script:m_offset.Y = $form1.PointToScreen($_.Location).Y - $form1.Location.Y 
32.
33.
}) 
34.
$form1.add_MouseUp({ 
35.
  if ($_.Button -eq [System.Windows.Forms.MouseButtons]::Left){ 
36.
        $script:mousedown = $false 
37.
38.
}) 
39.
 
40.
$form1.add_MouseMove({ 
41.
    if($script:mousedown){ 
42.
        $p = new-Object System.Drawing.Point 
43.
        $p.X = [System.Windows.Forms.Cursor]::Position.X - $script:m_offset.X 
44.
        $p.Y = [System.Windows.Forms.Cursor]::Position.Y - $script:m_offset.Y 
45.
        $form1.Location = $p 
46.
47.
}) 
48.
#endregion Generated Form Code 
49.
 
50.
#Save the initial state of the form 
51.
$InitialFormWindowState = $form1.WindowState 
52.
#Init the OnLoad event to correct the initial state of the form 
53.
$form1.add_Load($OnLoadForm_StateCorrection) 
54.
 
55.
 
56.
#Show the Form 
57.
$form1.ShowDialog()| Out-Null 
58.
 
59.
} #End Function 
60.
 
61.
GenerateForm
Grüße Uwe
Bitte warten ..
Mitglied: SaschaRD
03.06.2014 um 15:44 Uhr
Hallo Uwe,

auf einen Beitrag deinerseits habe ich gehofft =)

Dein Code funktioniert einwandfrei.

Vielen Dank und schönen Abend.

Gruß, Sascha
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell-Abfrage "Die 10 meisten fehlgeschlagenen Events" (2)

Frage von KMP1988 zum Thema Batch & Shell ...

Entwicklung
gelöst Powershell Charting (2)

Frage von MaximusPrime zum Thema Entwicklung ...

Batch & Shell
gelöst PowerShell Exchange (6)

Frage von Emptyman zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Regex anders (1)

Frage von ukodus zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

(1)

Information von BassFishFox zum Thema Datenschutz ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
gelöst 802.1X-Authentifizierung (17)

Frage von Alex29 zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Proxy Server Settings Cloud + EWS (16)

Frage von SomebodyToLove zum Thema Exchange Server ...