Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 2159 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 Regex anders (1)

Frage von ukodus zum Thema Batch & Shell ...

Microsoft
Microsofts Surface PC Event: Was uns erwartet (2)

Link von Frank zum Thema Microsoft ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

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

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...