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, 1920 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
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell: Form Window Event Minimize und Maximize (5)

Frage von SaschaRD zum Thema Batch & Shell ...

Batch & Shell
Powershell - In Textdatei suchen und ersetzen (3)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...