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, 1960 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Powershell: Form Window Event Minimize und Maximize (5)

Frage von SaschaRD zum Thema Batch & Shell ...

Windows Update
WSUS Event IDs 2008, 2008 R2, 2012 und 2012 R2 (2)

Frage von agentjoe1988 zum Thema Windows Update ...

Batch & Shell
gelöst Powershell Get-Content Inhalt filtern (1)

Frage von derhoeppi zum Thema Batch & Shell ...

Batch & Shell
gelöst PC nach einem Kopiervorgang herunterfahren - PowerShell Script? (4)

Frage von Stefan007 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (16)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...