Top-Themen

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

Cursor Focus mal da - mal nicht

Mitglied: Peterz

Peterz (Level 1) - Jetzt verbinden

23.11.2017 um 10:12 Uhr, 867 Aufrufe, 7 Kommentare

Hallo,
ich habe ein Powershell Script, welches mir AD-Benutzer anlegt. Die Eingabe von Benutzernamen erfolgt durch eine TextBox, wobei auf dem ersten Eingabefeld (hier Vorname) der Cursor Focus liegt (ist blau markiert).

Jetzt mein Problem.

Startet man das Script innerhalb von PowerShell ISE, ist der Cursor Focus gesetzt.
Öffnet man nur Powershell und navigiert zum Script und starte das Script, ist der der Cursor Focus auch gesetzt.
Starte ich das Script mit einem Doppelklick, startet das Script aber es ist kein Cursor Focus auf dem ersten Eingabefeld.

Woran kann es liegen, dass sich das Script in Abhängigkeit der Startart anders verhält?

Gruß
Peter
Mitglied: 134464
23.11.2017, aktualisiert um 10:39 Uhr
ist der der Cursor Focus auch gesetzt.
Einen Cursor Focus gibt es nicht, ein Feld/Button/Steuerelement kann den Fokus haben oder nicht, kein Cursor!
Woran kann es liegen, dass sich das Script in Abhängigkeit der Startart anders verhält?
Es kennt keiner dein Skript!
Starte ich das Script mit einem Doppelklick
Wie das? Hast du es als EXE kompiliert, oder die Explorer Dateierweiterungsaktion angepasst damit ein Doppelklick das Skript startet? Wenn ja wie sieht deine Befehlszeile aus?

Eine Powershell-Konsole und eine GUI sind zwei paar Schuhe, blende die Powershell-Konsole via WIN32API vorher aus.
Bitte warten ..
Mitglied: Peterz
23.11.2017 um 11:19 Uhr
Einen Cursor Focus gibt es nicht, ein Feld/Button/Steuerelement kann den Fokus haben oder nicht, kein Cursor!
Ok, ok, ich habe versucht es "bildlich" darzustellen.

Starte ich das Script mit einem Doppelklick
Ich habe die Explorer Dateierweiterungsaktion angepasst.

blende die Powershell-Konsole via WIN32API vorher aus.
Wie kann ich mit der Win32Api die Konsole ausblenden?

Ich kenn nur den Befehl.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden & "PfadScript\Script.ps1"
Rufe ich das Script so auf, erscheint auch kein Focus.

Den Focus erzeuge ich mit dem Befehl: "$objForm.Add_Shown({$objForm.Activate(); $objVornameBox.focus()})"
Bitte warten ..
Mitglied: colinardo
23.11.2017, aktualisiert um 11:23 Uhr
Servus Peter,
Ich kenn nur den Befehl.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden & "PfadScript\Script.ps1"
Das ist dein Problem , lass das weg.
Setze folgendes an den Anfang deines Skripts
01.
$showWindowAsync = Add-Type –memberDefinition @" 
02.
[DllImport("user32.dll")] 
03.
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); 
04.
"@ -name "Win32ShowWindowAsync" -namespace Win32Functions –passThru
05.
[void]$showWindowAsync::ShowWindowAsync((Get-Process –id $pid).MainWindowHandle, 0) 
Grüße Uwe
Bitte warten ..
Mitglied: Peterz
23.11.2017 um 11:43 Uhr
Setze folgendes an den Anfang deines Skripts
Das hat leider keinen Erfolg gebracht.

Beim Starten des Scripts mittels Doppelklick wird immer noch kein Focus gesetzt, starte ich das Script aus der Powershell direkt, ist der Focus da.
Müssen vielleicht beim Starten per Doppelklick noch Frameworks oder Module geladen werden?
Bitte warten ..
Mitglied: 134464
23.11.2017, aktualisiert um 11:58 Uhr
Welches OS?
Hier geht das problemlos. Win10 als auch Win7.
Wie sieht deine Modifikation per Doppelklick aus.

Meinst du vielleicht das das ganze Fenster nicht aktiv ist??
Bitte warten ..
Mitglied: colinardo
23.11.2017, aktualisiert um 13:11 Uhr
Zitat von 134464:
Hier geht das problemlos. Win10 als auch Win7.
Kann ich bestätigen
Meinst du vielleicht das das ganze Fenster nicht aktiv ist??
Wenn das der Fall sein sollte, funkt dir da eine andere Anwendung rein.

In dem Fall sollte das hier helfen
01.
$showWindowAsync = Add-Type –memberDefinition @" 
02.
[DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
03.
[DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd);
04.
 
05.
"@ -name "Win32ShowWindowAsync" -namespace Win32Functions –passThru
06.
[void]$showWindowAsync::ShowWindowAsync((Get-Process –id $pid).MainWindowHandle, 0) 
07.

08.
#Generated Form Function
09.
function GenerateForm {
10.

11.
#region Import the Assemblies
12.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
13.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null
14.
#endregion
15.

16.
#region Generated Form Objects
17.
$objForm = New-Object System.Windows.Forms.Form
18.
$label2 = New-Object System.Windows.Forms.Label
19.
$label1 = New-Object System.Windows.Forms.Label
20.
$objNachnameBox = New-Object System.Windows.Forms.TextBox
21.
$objVornameBox = New-Object System.Windows.Forms.TextBox
22.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
23.
#endregion Generated Form Objects
24.
$OnLoadForm_StateCorrection=
25.
{#Correct the initial state of the form to prevent the .Net maximized form issue
26.
	$objForm.WindowState = $InitialFormWindowState
27.
}
28.

29.
#----------------------------------------------
30.
#region Generated Form Code
31.
$System_Drawing_Size = New-Object System.Drawing.Size
32.
$System_Drawing_Size.Height = 85
33.
$System_Drawing_Size.Width = 224
34.
$objForm.ClientSize = $System_Drawing_Size
35.
$objForm.DataBindings.DefaultDataSourceUpdateMode = 0
36.
$objForm.Name = "objForm"
37.
$objForm.Text = "Demo"
38.
$objForm.add_Load({
39.
    $objVornameBox.Focus()
40.
    $objVornameBox.SelectAll()
41.
})
42.
$objForm.add_Shown({
43.
    [void]$showWindowAsync::SetForegroundWindow($objForm.Handle) 
44.
    $objVornameBox.Focus()
45.
    $objVornameBox.SelectAll()
46.
})
47.
$label2.DataBindings.DefaultDataSourceUpdateMode = 0
48.

49.
$System_Drawing_Point = New-Object System.Drawing.Point
50.
$System_Drawing_Point.X = 3
51.
$System_Drawing_Point.Y = 38
52.
$label2.Location = $System_Drawing_Point
53.
$label2.Name = "label2"
54.
$System_Drawing_Size = New-Object System.Drawing.Size
55.
$System_Drawing_Size.Height = 23
56.
$System_Drawing_Size.Width = 72
57.
$label2.Size = $System_Drawing_Size
58.
$label2.TabIndex = 3
59.
$label2.Text = "Nachname"
60.

61.
$objForm.Controls.Add($label2)
62.

63.
$label1.DataBindings.DefaultDataSourceUpdateMode = 0
64.

65.
$System_Drawing_Point = New-Object System.Drawing.Point
66.
$System_Drawing_Point.X = 3
67.
$System_Drawing_Point.Y = 15
68.
$label1.Location = $System_Drawing_Point
69.
$label1.Name = "label1"
70.
$System_Drawing_Size = New-Object System.Drawing.Size
71.
$System_Drawing_Size.Height = 23
72.
$System_Drawing_Size.Width = 52
73.
$label1.Size = $System_Drawing_Size
74.
$label1.TabIndex = 2
75.
$label1.Text = "Vorname"
76.

77.
$objForm.Controls.Add($label1)
78.

79.
$objNachnameBox.DataBindings.DefaultDataSourceUpdateMode = 0
80.
$System_Drawing_Point = New-Object System.Drawing.Point
81.
$System_Drawing_Point.X = 81
82.
$System_Drawing_Point.Y = 38
83.
$objNachnameBox.Location = $System_Drawing_Point
84.
$objNachnameBox.Name = "objNachnameBox"
85.
$System_Drawing_Size = New-Object System.Drawing.Size
86.
$System_Drawing_Size.Height = 20
87.
$System_Drawing_Size.Width = 100
88.
$objNachnameBox.Size = $System_Drawing_Size
89.
$objNachnameBox.TabIndex = 1
90.

91.
$objForm.Controls.Add($objNachnameBox)
92.

93.
$objVornameBox.DataBindings.DefaultDataSourceUpdateMode = 0
94.
$System_Drawing_Point = New-Object System.Drawing.Point
95.
$System_Drawing_Point.X = 81
96.
$System_Drawing_Point.Y = 12
97.
$objVornameBox.Location = $System_Drawing_Point
98.
$objVornameBox.Name = "objVornameBox"
99.
$System_Drawing_Size = New-Object System.Drawing.Size
100.
$System_Drawing_Size.Height = 20
101.
$System_Drawing_Size.Width = 100
102.
$objVornameBox.Size = $System_Drawing_Size
103.
$objVornameBox.TabIndex = 0
104.
$objVornameBox.Text = "Max"
105.

106.
$objForm.Controls.Add($objVornameBox)
107.

108.
#endregion Generated Form Code
109.

110.
#Save the initial state of the form
111.
$InitialFormWindowState = $objForm.WindowState
112.
#Init the OnLoad event to correct the initial state of the form
113.
$objForm.add_Load($OnLoadForm_StateCorrection)
114.
#Show the Form
115.
$objForm.ShowDialog()| Out-Null
116.

117.
} #End Function
118.

119.
#Call the Function
120.
GenerateForm
Bitte warten ..
Mitglied: Peterz
23.11.2017 um 13:06 Uhr
Welches OS?
Windows Server 2012R2

Meinst du vielleicht das das ganze Fenster nicht aktiv ist??
Nein. Das Script ruft eine Eingabebox mit vier Feldern auf, bei dem das erste Eingabefeld markiert sein soll, damit ich nicht mit der Maus erst hineinklicken muss.

Starte ich das Script mit einem Doppelklick oder mit dem Explorer Kontextmenü "Öffnen mit - Windows Powershell" wird das erste Eingabefeld nicht markiert/kein Focus drauf.

Starte ich zuerst Powershell und navigiere (cd\pfad\..) zu dem Script und starte es aus Powershell heraus, dann ist das erste Eingabefeld markiert und ich muss nicht mit der Maus erst hineinklicken.

Das verwundert mich, da es ja das gleiche Script ist.
Wenn es bei euch aber immer funktioniert, egal wie ein Script aufgerufen wird, dann muss es wahrscheinlich an meiner Umgebung liegen.
Mal sehen ob ich noch etwas herausbekommen kann.
Bitte warten ..
Ähnliche Inhalte
Windows Server
Server 2012 - Cursor verschwindet
Frage von Milchmann89Windows Server

Guten Tag, ich habe ein eher seltsame Phänomen bei einer RDP Verbindung auf einen 2012er Server. Es wird ganz ...

iOS
IOS hat nen Cursor!
Tipp von CriemoiOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Mac OS X

MacOSX 10.11.5, Win2012 Server, RDP Session - Focus Verlust

gelöst Frage von MadMaikMac OS X4 Kommentare

Ich bin mir nicht sicher in welches Thema dieser Beitrag am besten passt, aber unter Apple MacOS ist er ...

Pascal und Delphi

Blinkenden Cursor (von Tastatureingabe) ausschalten

Frage von KriegstreiberPascal und Delphi1 Kommentar

Servus Leute, Ich habe ein Script was mir mehrere Ergebnisse in Checkboxen anzeigt. Die Box sieht wie folgt aus: ...

Neue Wissensbeiträge
Off Topic
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 1 TagOff Topic3 Kommentare

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Windows 10
Windows 10 Mai 2019 Update (Version 1903) ist da
Information von kgborn vor 1 TagWindows 105 Kommentare

Nur ein kurzer Infosplitter: Microsoft hat die Nacht (21. Mai 2019) das Funktionsupdate auf Windows 10 Version 1903 freigegeben. ...

E-Mail

Newsletter: Unread News - IT News in Byte Länge

Tipp von franktaylor vor 2 TagenE-Mail11 Kommentare

Hallo, würde gerne auf einen Newsletter hinweisen, den ich heute per Zufall gefunden und mit euch gerne teilen möchte: ...

Outlook & Mail

Outlook 2016 stürzt ab, wenn man ein (at)- Zeichen im Text einer neuen E-Mail schreibt

Tipp von Enriqe vor 2 TagenOutlook & Mail4 Kommentare

Bei uns in der Firma häuften sich die Fälle, bei denen sich Outlook kommentarlos verabschiedet, wenn man ein - ...

Heiß diskutierte Inhalte
Hyper-V
Novell virtualisieren
Frage von spoboeHyper-V21 Kommentare

Hallo zusammen, ich habe absolut keine Ahnung von Novell, aber wir haben hier ein ganz altes Schätzchen (vermutlich Novell ...

Windows Server
Ungewollte IP Änderung am DC sorgt für Probleme
Frage von thomas-99Windows Server19 Kommentare

Hallo Zusammen, wir haben ein kleines Netz mit 5 verschiedenen VMs (DC, AD, Fileserver, Exchange, TK Anlage - alle ...

Netzwerkmanagement
Gateprotect Firewall - Internetseiten werden teilw. nicht geladen
Frage von KivasFNetzwerkmanagement16 Kommentare

Morgen Zusammen, ich habe ein Problem mit einer Gateprotect Firewall welches mir echt Kopfschmerzen bereitet. Die Firewall hängt an ...

Router & Routing
HP 2920 als Router konfigurieren. Bitte um Unterstützung
gelöst Frage von suedi123Router & Routing16 Kommentare

Liebe Forumsmitglieder, ich habe hier ein Problem, bei welchem ich nicht weiterkomme, weil ich mich zu wenig mit der ...