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

Regeln in Outlook 2013 verwalten: Suchliste sortieren?

Frage Microsoft Outlook & Mail

Mitglied: LaMancha

LaMancha (Level 1) - Jetzt verbinden

30.04.2014, aktualisiert 03.05.2014, 1822 Aufrufe, 9 Kommentare, 3 Danke

Für diverse Regeln sind Suchlisten möglich. Dort hinein können Wörter hinzugefügt werden, und aus der Liste können Wörter entfernt werden:

40d3738ee5bfee4e3e8cba81c92d232e - Klicke auf das Bild, um es zu vergrößern

Wie aber kann ich bitte die Wörter in der Suchliste sortieren lassen, oder wenigstens die Reihenfolge durch Verschieben verändern? Gibt es irgendwo eine (.txt-) Datei, in der die Wörter abgelegt sind, und die man editieren kann?
Mitglied: colinardo
30.04.2014, aktualisiert um 15:07 Uhr
Hallo LaMancha,
die Regeln werden binär im MAPI-Store abgelegt und sind daher wohl eher nicht in deiner gewünschten Art und Weise bearbeitbar. Es gibt aber ein Outlook-AddIn mit dem du die Einträge in einer Textbox umsortieren kannst:
http://www.sperrysoftware.com/outlook/power-rules-manager.asp

7162690e0af6e38d6a66a9147c6f5b76 - Klicke auf das Bild, um es zu vergrößern

Grüße Uwe
Bitte warten ..
Mitglied: LaMancha
30.04.2014 um 15:30 Uhr
Hallo Uwe,

Danke für den Hinweis, mit diesem Outlook-AddIn könnte ich wohl meine Vorstellungen irgendwie realisieren. Aber der Preis von $39.95 nur dafür ist mir dann angesichts meines "Budgets" doch deutlich zu hoch. Ob es noch eine Alternative gibt?

Grüße - LaMancha
Bitte warten ..
Mitglied: colinardo
30.04.2014, aktualisiert um 21:08 Uhr
Zitat von LaMancha:
Danke für den Hinweis, mit diesem Outlook-AddIn könnte ich wohl meine Vorstellungen irgendwie realisieren. Aber der
Preis von $39.95 nur dafür ist mir dann angesichts meines "Budgets" doch deutlich zu hoch. Ob es noch eine Alternative gibt?
Wie oft musst du die den umsortieren ?? Software als Trial gezogen umsortiert, feddich
Alternative: Selber mit VBA die Regeln bearbeiten. Werde mir das mal ansehen (geht ja ab OL2007)

Grüße Uwe
Bitte warten ..
Mitglied: LaMancha
02.05.2014 um 10:20 Uhr
Zitat von colinardo:
Wie oft musst du die den umsortieren?
Hallo Uwe,

etwa 2 bis 3 mal pro Woche bekomme ich Emails mit Zeichenfolgen im Nachrichtenkopf, die ich in die "Sofort endgültig löschen"-Liste einfügen möchte.

Weil die vorhandenen ca. 300 Einträge nicht sortiert und auch nicht durchsuchbar sind, kann ich nicht einfach feststellen, ob eine ähnliche Zeichenfolge schon eingetragen ist und nur noch etwas geändert werden muss.

Wenn ich dann einen Eintrag hinzufüge, wird er am Ende der Liste angefügt, und die Sortierung, wenn es denn eine gäbe, wäre wieder kaputt und müsste entsprechend wiederholt werden. Also würde mir eine einmalige Sortierung mit einer Trial-Software nicht wirklich helfen.

Grüße - LaMancha
Bitte warten ..
Mitglied: colinardo
02.05.2014 um 10:24 Uhr
OK, habe bereits eine Lösung mit Powershell und GUI programmiert, sobald ich die Sortierung mit eingebaut habe (im Moment nur hoch und runterschieben), werde ich dir den Code hier reinstellen...

Grüße Uwe
Bitte warten ..
Mitglied: LaMancha
02.05.2014 um 13:46 Uhr
Hallo Uwe,

das hört sich sehr gut an. Über den Code werde ich mich sehr freuen - und wahrscheinlich noch manch andere(r) auch.

Grüße - LaMancha
Bitte warten ..
Mitglied: colinardo
LÖSUNG 03.05.2014, aktualisiert um 13:27 Uhr
So hier mal die Powershell-Lösung.

Wichtige Hinweise: Es sind im Moment nur Bedingungen bearbeitbar welche eine Liste von Strings akzeptieren. Da hier etliche unterschiedliche Dialoge zu implementieren wären um den kompletten Dialog nach zu bauen, habe ich es erst mal dabei gelassen; ist ja auch eigentlich Quatsch da es den Regel-Dialog ja schon in Outlook gibt. Die Ausnahmen und Aktionen sind auch noch nicht implementiert. Als direktes Outlook-Plugin wäre es ja auch besser implementiert, aber das kriegt Ihr von mir nicht kostenlos

Das ganze sieht dann so aus:

3263a089e23398b953dcbfab2c046bc7 - Klicke auf das Bild, um es zu vergrößern

Man führt das Powershell-Script aus (Outlook am besten vorher schon gestartet haben), wählt mit dem Button den gewünschten Outlook-Store (ob ein Ordner im Dialog gewählt wird ist egal), dann wählt man die gewünschte Regel, es erscheinen dann rechts die aktivierten Bedingungen (im Moment kann nur die welchen mehrere Strings zugewiesen werden können). Um die Einträge der Bedingung zu bearbeiten Doppelklick auf den Eintrag, feddich.

Viel Spaß

Grüße Uwe
01.
#region Import the Assemblies 
02.
[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null 
03.
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null 
04.
# [reflection.assembly]::loadwithpartialname("Microsoft.Office.Interop.Outlook") | Out-Null 
05.
#endregion 
06.
 
07.
# Main Form 
08.
function FormMain { 
09.
 
10.
#region Generated Form Objects 
11.
$formMain = New-Object System.Windows.Forms.Form 
12.
$label5 = New-Object System.Windows.Forms.Label 
13.
$label4 = New-Object System.Windows.Forms.Label 
14.
$label3 = New-Object System.Windows.Forms.Label 
15.
$label2 = New-Object System.Windows.Forms.Label 
16.
$label1 = New-Object System.Windows.Forms.Label 
17.
$lbActions = New-Object System.Windows.Forms.ListBox 
18.
$lbExceptions = New-Object System.Windows.Forms.ListBox 
19.
$lbConditions = New-Object System.Windows.Forms.ListBox 
20.
$lbRules = New-Object System.Windows.Forms.ListBox 
21.
$btnChooseStore = New-Object System.Windows.Forms.Button 
22.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
23.
#endregion Generated Form Objects 
24.
 
25.
# $objOL = new-Object Microsoft.Office.Interop.Outlook.ApplicationClass 
26.
$objOL = New-Object -ComObject Outlook.Application 
27.
 
28.
$Script:store = $null 
29.
$Script:rules = $null 
30.
 
31.
$handler_btnChooseStore_Click=  
32.
33.
    $Script:store = $objOL.Session.PickFolder().Store 
34.
    if ($Script:store -ne $null){ 
35.
        $Script:rules = $Script:store.GetRules() 
36.
        if ($Script:rules){ 
37.
            $lbRules.Items.Clear() 
38.
            foreach($rule in $Script:rules){ 
39.
                $lbRules.Items.Add($rule.Name) 
40.
41.
        }else{ 
42.
            [System.Windows.Forms.MessageBox]::Show("Der gewählte Store beinhaltet keine Regeln, bitte wählen Sie einen anderen Store.",[System.Windows.Forms.MessageBoxIcon]::Exclamation) 
43.
            $Script:rules = $null 
44.
45.
46.
47.
 
48.
$handler_lbRules_SelectedIndexChanged=  
49.
50.
    $lbConditions.Items.Clear() 
51.
    $Script:activeRule = $Script:rules.item($lbRules.SelectedIndex + 1) 
52.
    $Script:conditionArray = @() 
53.
    foreach($condition in $Script:activeRule.Conditions){ 
54.
        if($condition.Enabled){ 
55.
            $con = new-object PSObject -Property @{"Type"="";"Text"="";"Content"="";"class"=""} 
56.
            switch($condition.ConditionType){ 
57.
                2 { 
58.
                    $con.Type = $condition.ConditionType 
59.
                    $con.Text = "Wörter im Betreff" 
60.
                    $con.Content = $Script:activeRule.Conditions.Subject.Text 
61.
62.
                13 { 
63.
                    $con.Type = $condition.ConditionType 
64.
                    $con.Text = "Wörter im Body" 
65.
                    $con.Content = $Script:activeRule.Conditions.Body.Text 
66.
67.
                14 { 
68.
                    $con.Type = $condition.ConditionType 
69.
                    $con.Text = "Wörter im Betreff oder Body" 
70.
                    $con.Content = $Script:activeRule.Conditions.BodyOrSubject.Text 
71.
72.
                15 { 
73.
                    $con.Type = $condition.ConditionType 
74.
                    $con.Text = "Wörter in der Nachrichtenkopfzeile" 
75.
                    $con.Content = $Script:activeRule.Conditions.MessageHeader.Text 
76.
77.
                16 { 
78.
                    $con.Type = $condition.ConditionType 
79.
                    $con.Text = "Wörter in der Empfängeradresse" 
80.
                    $con.Content = $Script:activeRule.Conditions.RecipientAddress.Address 
81.
82.
                17 { 
83.
                    $con.Type = $condition.ConditionType 
84.
                    $con.Text = "Wörter in der Absenderadresse" 
85.
                    $con.Content = $Script:activeRule.Conditions.SenderAddress.Address 
86.
87.
 
88.
                default { 
89.
                    $con.Type = -100 
90.
                    $con.Text = "xxx Noch nicht implementiert" 
91.
92.
93.
            $Script:conditionArray += $con 
94.
            $lbConditions.Items.Add($con.Text) 
95.
     
96.
97.
98.
 
99.
100.
 
101.
$handler_lbConditions_DoubleClick=  
102.
103.
    if ($lbConditions.SelectedIndex -gt -1){ 
104.
        $cond = $Script:conditionArray[$lbConditions.SelectedIndex] 
105.
        switch($cond.Type){ 
106.
             
107.
            # String Arrays bearbeiten 
108.
            2 { 
109.
                $result = FormEntryEditor -items $cond.Content 
110.
                if ($result -ne $False){ 
111.
                    $Script:activeRule.Conditions.Subject.Text = $result 
112.
                    $Script:rules.Save() 
113.
114.
115.
            13 { 
116.
                $result = FormEntryEditor -items $cond.Content 
117.
                if ($result -ne $False){ 
118.
                    $Script:activeRule.Conditions.Body.Text = $result 
119.
                    $Script:rules.Save() 
120.
121.
122.
            14 { 
123.
                $result = FormEntryEditor -items $cond.Content 
124.
                if ($result -ne $False){ 
125.
                    $Script:activeRule.Conditions.BodyOrSubject.Text = $result 
126.
                    $Script:rules.Save() 
127.
128.
129.
            15 { 
130.
                $result = FormEntryEditor -items $cond.Content 
131.
                if ($result -ne $False){ 
132.
                    $Script:activeRule.Conditions.MessageHeader.Text = $result 
133.
                    $Script:rules.Save() 
134.
135.
136.
            16 { 
137.
                $result = FormEntryEditor -items $cond.Content 
138.
                if ($result -ne $False){ 
139.
                    $Script:activeRule.Conditions.RecipientAddress.Address = $result 
140.
                    $Script:rules.Save() 
141.
142.
143.
            17 { 
144.
                $result = FormEntryEditor -items $cond.Content 
145.
                if ($result -ne $False){ 
146.
                    $Script:activeRule.Conditions.SenderAddress.Address = $result 
147.
                    $Script:rules.Save() 
148.
149.
150.
            -100 { 
151.
                [System.Windows.MessageBox]::Show("Diese Bedingung wurde noch nicht implementiert!") 
152.
153.
        } # End Switch 
154.
         
155.
156.
 
157.
158.
 
159.
$handler_lbExceptions_DoubleClick=  
160.
161.
 
162.
163.
 
164.
$handler_lbActions_DoubleClick=  
165.
166.
 
167.
168.
 
169.
$OnLoadForm_StateCorrection= 
170.
{#Correct the initial state of the form to prevent the .Net maximized form issue 
171.
	$formMain.WindowState = $InitialFormWindowState 
172.
173.
 
174.
#---------------------------------------------- 
175.
#region Generated Form Code 
176.
$System_Drawing_Size = New-Object System.Drawing.Size 
177.
$System_Drawing_Size.Height = 253 
178.
$System_Drawing_Size.Width = 723 
179.
$formMain.ClientSize = $System_Drawing_Size 
180.
$formMain.DataBindings.DefaultDataSourceUpdateMode = 0 
181.
$formMain.FormBorderStyle = 3 
182.
$formMain.MaximizeBox = $False 
183.
$formMain.Name = "formMain" 
184.
$formMain.Text = "Regel Editor" 
185.
 
186.
$label5.DataBindings.DefaultDataSourceUpdateMode = 0 
187.
$label5.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",8.25,0,3,0) 
188.
$label5.ForeColor = [System.Drawing.Color]::FromArgb(255,128,128,128) 
189.
 
190.
$System_Drawing_Point = New-Object System.Drawing.Point 
191.
$System_Drawing_Point.X = 486 
192.
$System_Drawing_Point.Y = 9 
193.
$label5.Location = $System_Drawing_Point 
194.
$label5.Name = "label5" 
195.
$System_Drawing_Size = New-Object System.Drawing.Size 
196.
$System_Drawing_Size.Height = 15 
197.
$System_Drawing_Size.Width = 224 
198.
$label5.Size = $System_Drawing_Size 
199.
$label5.TabIndex = 9 
200.
$label5.Text = "Doppelklicken um Einträge zu bearbeiten" 
201.
$label5.TextAlign = 4 
202.
 
203.
$formMain.Controls.Add($label5) 
204.
 
205.
$label4.DataBindings.DefaultDataSourceUpdateMode = 0 
206.
$label4.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9.75,1,3,0) 
207.
 
208.
$System_Drawing_Point = New-Object System.Drawing.Point 
209.
$System_Drawing_Point.X = 540 
210.
$System_Drawing_Point.Y = 41 
211.
$label4.Location = $System_Drawing_Point 
212.
$label4.Name = "label4" 
213.
$System_Drawing_Size = New-Object System.Drawing.Size 
214.
$System_Drawing_Size.Height = 23 
215.
$System_Drawing_Size.Width = 170 
216.
$label4.Size = $System_Drawing_Size 
217.
$label4.TabIndex = 8 
218.
$label4.Text = "Aktionen" 
219.
$label4.TextAlign = 32 
220.
 
221.
$formMain.Controls.Add($label4) 
222.
 
223.
$label3.DataBindings.DefaultDataSourceUpdateMode = 0 
224.
$label3.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9.75,1,3,0) 
225.
 
226.
$System_Drawing_Point = New-Object System.Drawing.Point 
227.
$System_Drawing_Point.X = 364 
228.
$System_Drawing_Point.Y = 41 
229.
$label3.Location = $System_Drawing_Point 
230.
$label3.Name = "label3" 
231.
$System_Drawing_Size = New-Object System.Drawing.Size 
232.
$System_Drawing_Size.Height = 23 
233.
$System_Drawing_Size.Width = 170 
234.
$label3.Size = $System_Drawing_Size 
235.
$label3.TabIndex = 7 
236.
$label3.Text = "Ausnahmen" 
237.
$label3.TextAlign = 32 
238.
 
239.
$formMain.Controls.Add($label3) 
240.
 
241.
$label2.DataBindings.DefaultDataSourceUpdateMode = 0 
242.
$label2.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9.75,1,3,0) 
243.
 
244.
$System_Drawing_Point = New-Object System.Drawing.Point 
245.
$System_Drawing_Point.X = 188 
246.
$System_Drawing_Point.Y = 41 
247.
$label2.Location = $System_Drawing_Point 
248.
$label2.Name = "label2" 
249.
$System_Drawing_Size = New-Object System.Drawing.Size 
250.
$System_Drawing_Size.Height = 23 
251.
$System_Drawing_Size.Width = 170 
252.
$label2.Size = $System_Drawing_Size 
253.
$label2.TabIndex = 6 
254.
$label2.Text = "Bedingungen" 
255.
$label2.TextAlign = 32 
256.
 
257.
$formMain.Controls.Add($label2) 
258.
 
259.
$label1.DataBindings.DefaultDataSourceUpdateMode = 0 
260.
$label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9.75,1,3,0) 
261.
 
262.
$System_Drawing_Point = New-Object System.Drawing.Point 
263.
$System_Drawing_Point.X = 12 
264.
$System_Drawing_Point.Y = 41 
265.
$label1.Location = $System_Drawing_Point 
266.
$label1.Name = "label1" 
267.
$System_Drawing_Size = New-Object System.Drawing.Size 
268.
$System_Drawing_Size.Height = 23 
269.
$System_Drawing_Size.Width = 170 
270.
$label1.Size = $System_Drawing_Size 
271.
$label1.TabIndex = 5 
272.
$label1.Text = "Regeln" 
273.
$label1.TextAlign = 32 
274.
 
275.
$formMain.Controls.Add($label1) 
276.
 
277.
$lbActions.DataBindings.DefaultDataSourceUpdateMode = 0 
278.
$lbActions.FormattingEnabled = $True 
279.
$System_Drawing_Point = New-Object System.Drawing.Point 
280.
$System_Drawing_Point.X = 540 
281.
$System_Drawing_Point.Y = 67 
282.
$lbActions.Location = $System_Drawing_Point 
283.
$lbActions.Name = "lbActions" 
284.
$System_Drawing_Size = New-Object System.Drawing.Size 
285.
$System_Drawing_Size.Height = 173 
286.
$System_Drawing_Size.Width = 170 
287.
$lbActions.Size = $System_Drawing_Size 
288.
$lbActions.TabIndex = 4 
289.
$lbActions.add_DoubleClick($handler_lbActions_DoubleClick) 
290.
 
291.
$formMain.Controls.Add($lbActions) 
292.
 
293.
$lbExceptions.DataBindings.DefaultDataSourceUpdateMode = 0 
294.
$lbExceptions.FormattingEnabled = $True 
295.
$System_Drawing_Point = New-Object System.Drawing.Point 
296.
$System_Drawing_Point.X = 364 
297.
$System_Drawing_Point.Y = 67 
298.
$lbExceptions.Location = $System_Drawing_Point 
299.
$lbExceptions.Name = "lbExceptions" 
300.
$System_Drawing_Size = New-Object System.Drawing.Size 
301.
$System_Drawing_Size.Height = 173 
302.
$System_Drawing_Size.Width = 170 
303.
$lbExceptions.Size = $System_Drawing_Size 
304.
$lbExceptions.TabIndex = 3 
305.
$lbExceptions.add_DoubleClick($handler_lbExceptions_DoubleClick) 
306.
 
307.
$formMain.Controls.Add($lbExceptions) 
308.
 
309.
$lbConditions.DataBindings.DefaultDataSourceUpdateMode = 0 
310.
$lbConditions.FormattingEnabled = $True 
311.
$System_Drawing_Point = New-Object System.Drawing.Point 
312.
$System_Drawing_Point.X = 188 
313.
$System_Drawing_Point.Y = 67 
314.
$lbConditions.Location = $System_Drawing_Point 
315.
$lbConditions.Name = "lbConditions" 
316.
$System_Drawing_Size = New-Object System.Drawing.Size 
317.
$System_Drawing_Size.Height = 173 
318.
$System_Drawing_Size.Width = 170 
319.
$lbConditions.Size = $System_Drawing_Size 
320.
$lbConditions.TabIndex = 2 
321.
$lbConditions.add_DoubleClick($handler_lbConditions_DoubleClick) 
322.
 
323.
$formMain.Controls.Add($lbConditions) 
324.
 
325.
$lbRules.DataBindings.DefaultDataSourceUpdateMode = 0 
326.
$lbRules.FormattingEnabled = $True 
327.
$System_Drawing_Point = New-Object System.Drawing.Point 
328.
$System_Drawing_Point.X = 12 
329.
$System_Drawing_Point.Y = 67 
330.
$lbRules.Location = $System_Drawing_Point 
331.
$lbRules.Name = "lbRules" 
332.
$System_Drawing_Size = New-Object System.Drawing.Size 
333.
$System_Drawing_Size.Height = 173 
334.
$System_Drawing_Size.Width = 170 
335.
$lbRules.Size = $System_Drawing_Size 
336.
$lbRules.TabIndex = 1 
337.
$lbRules.add_SelectedIndexChanged($handler_lbRules_SelectedIndexChanged) 
338.
 
339.
$formMain.Controls.Add($lbRules) 
340.
 
341.
 
342.
$btnChooseStore.DataBindings.DefaultDataSourceUpdateMode = 0 
343.
 
344.
$System_Drawing_Point = New-Object System.Drawing.Point 
345.
$System_Drawing_Point.X = 12 
346.
$System_Drawing_Point.Y = 12 
347.
$btnChooseStore.Location = $System_Drawing_Point 
348.
$btnChooseStore.Name = "btnChooseStore" 
349.
$System_Drawing_Size = New-Object System.Drawing.Size 
350.
$System_Drawing_Size.Height = 23 
351.
$System_Drawing_Size.Width = 107 
352.
$btnChooseStore.Size = $System_Drawing_Size 
353.
$btnChooseStore.TabIndex = 0 
354.
$btnChooseStore.Text = "Store wählen" 
355.
$btnChooseStore.UseVisualStyleBackColor = $True 
356.
$btnChooseStore.add_Click($handler_btnChooseStore_Click) 
357.
 
358.
$formMain.Controls.Add($btnChooseStore) 
359.
 
360.
#endregion Generated Form Code 
361.
 
362.
#Save the initial state of the form 
363.
$InitialFormWindowState = $formMain.WindowState 
364.
#Init the OnLoad event to correct the initial state of the form 
365.
$formMain.add_Load($OnLoadForm_StateCorrection) 
366.
#Show the Form 
367.
$formMain.ShowDialog()| Out-Null 
368.
 
369.
# Garbage collection 
370.
$objOL = $null 
371.
372.
 
373.
 
374.
# -- Editor für String Arrays ---- 
375.
function FormEntryEditor { 
376.
param( 
377.
    [string[]]$items 
378.
379.
#region Generated Form Objects 
380.
$formEntryEditor = New-Object System.Windows.Forms.Form 
381.
$btnSort = New-Object System.Windows.Forms.Button 
382.
$btnToBottom = New-Object System.Windows.Forms.Button 
383.
$btnToTop = New-Object System.Windows.Forms.Button 
384.
$btnRemove = New-Object System.Windows.Forms.Button 
385.
$btnAdd = New-Object System.Windows.Forms.Button 
386.
$txtAdd = New-Object System.Windows.Forms.TextBox 
387.
$btnCancel = New-Object System.Windows.Forms.Button 
388.
$btnSave = New-Object System.Windows.Forms.Button 
389.
$btnDown = New-Object System.Windows.Forms.Button 
390.
$btnUp = New-Object System.Windows.Forms.Button 
391.
$lbItems = New-Object System.Windows.Forms.ListBox 
392.
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState 
393.
#endregion Generated Form Objects 
394.
 
395.
$handler_btnCancel_Click=  
396.
397.
    $Global:result = $false 
398.
399.
 
400.
$handler_btnDown_Click=  
401.
402.
    $lbItems.Sorted = $false 
403.
    $intSelIndex = $lbItems.SelectedIndex 
404.
    if ($intSelIndex -lt $lbItems.Items.Count -1 -and $intSelIndex -ne -1){ 
405.
        $val = $lbItems.SelectedItem 
406.
        $lbItems.Items.RemoveAt($intSelIndex) 
407.
        $lbItems.Items.Insert($intSelIndex +1,$val) 
408.
        $lbItems.SelectedIndex = $intSelIndex +1 
409.
410.
411.
 
412.
$handler_btnUp_Click=  
413.
414.
    $lbItems.Sorted = $false 
415.
    $intSelIndex = $lbItems.SelectedIndex 
416.
    if ($intSelIndex -gt 0){ 
417.
        $val = $lbItems.SelectedItem 
418.
        $lbItems.Items.RemoveAt($intSelIndex) 
419.
        $lbItems.Items.Insert($intSelIndex -1,$val) 
420.
        $lbItems.SelectedIndex = $intSelIndex -1 
421.
422.
 
423.
424.
 
425.
$handler_formEntryEditor_Load=  
426.
427.
    $lbItems.Items.AddRange($items) 
428.
429.
 
430.
$handler_btnRemove_Click=  
431.
432.
    . $removeListBoxEntry 
433.
434.
 
435.
$handler_btnAdd_Click=  
436.
437.
    if ($txtAdd.Text -ne ""){ 
438.
        $lbItems.Sorted = $false 
439.
        $intSelIndex = $lbItems.SelectedIndex 
440.
        if ($intSelIndex -eq -1){ 
441.
            $lbItems.Items.Add($txtAdd.Text) 
442.
        }else{ 
443.
            $lbItems.Items.Insert($intSelIndex,$txtAdd.Text) 
444.
445.
        $txtAdd.Text = "" 
446.
447.
448.
 
449.
$handler_formEntryEditor_FormClosed=  
450.
451.
 
452.
453.
 
454.
$handler_btnSave_Click=  
455.
456.
    $arrNewOrder = [string[]]$lbItems.Items 
457.
    $Script:result = $arrNewOrder 
458.
459.
 
460.
 
461.
$btnToBottom_OnClick=  
462.
463.
    $lbItems.Sorted = $false 
464.
    $intSelIndex = $lbItems.SelectedIndex 
465.
    if ($intSelIndex -ne -1){ 
466.
        $val = $lbItems.SelectedItem 
467.
        $lbItems.Items.RemoveAt($intSelIndex) 
468.
        $lbItems.Items.Insert($lbItems.Items.Count,$val) 
469.
        $lbItems.SelectedIndex = $lbItems.Items.Count - 1 
470.
471.
 
472.
473.
 
474.
$btnToTop_OnClick=  
475.
476.
    $lbItems.Sorted = $false 
477.
    $intSelIndex = $lbItems.SelectedIndex 
478.
    if ($intSelIndex -ne -1){ 
479.
        $val = $lbItems.SelectedItem 
480.
        $lbItems.Items.RemoveAt($intSelIndex) 
481.
        $lbItems.Items.Insert(0,$val) 
482.
        $lbItems.SelectedIndex = 0 
483.
484.
485.
 
486.
$handler_lbItems_SelectedIndexChanged=  
487.
488.
 
489.
490.
 
491.
$handler_btnSort_Click=  
492.
493.
    $lbItems.Sorted = $true 
494.
495.
 
496.
$handler_lbItems_KeyUp=  
497.
498.
    switch ($_.KeyCode){ 
499.
        "Delete" { 
500.
            . $removeListBoxEntry 
501.
502.
503.
504.
 
505.
$handler_txtAdd_KeyDown = { 
506.
    if ($_.KeyCode -eq "Enter"){. $handler_btnAdd_Click} 
507.
508.
$OnLoadForm_StateCorrection= 
509.
{#Correct the initial state of the form to prevent the .Net maximized form issue 
510.
	$formEntryEditor.WindowState = $InitialFormWindowState 
511.
512.
 
513.
$removeListBoxEntry = { 
514.
    if ($lbItems.SelectedIndex -ne -1){ 
515.
        $oldIndex = $lbItems.SelectedIndex 
516.
        $lbItems.Items.RemoveAt($lbItems.SelectedIndex) 
517.
        if ($lbItems.Items.Count -gt $oldIndex){$lbItems.SelectedIndex = $oldIndex} 
518.
519.
 
520.
521.
 
522.
#---------------------------------------------- 
523.
#region Generated Form Code 
524.
$System_Drawing_Size = New-Object System.Drawing.Size 
525.
$System_Drawing_Size.Height = 300 
526.
$System_Drawing_Size.Width = 337 
527.
$formEntryEditor.ClientSize = $System_Drawing_Size 
528.
$formEntryEditor.DataBindings.DefaultDataSourceUpdateMode = 0 
529.
$formEntryEditor.FormBorderStyle = 6 
530.
$System_Drawing_Size = New-Object System.Drawing.Size 
531.
$System_Drawing_Size.Height = 326 
532.
$System_Drawing_Size.Width = 345 
533.
$formEntryEditor.MinimumSize = $System_Drawing_Size 
534.
$formEntryEditor.Name = "formEntryEditor" 
535.
$formEntryEditor.StartPosition = 4 
536.
$formEntryEditor.ShowInTaskbar = $False 
537.
$formEntryEditor.Text = "Einträge bearbeiten" 
538.
$formEntryEditor.add_Load($handler_formEntryEditor_Load) 
539.
$formEntryEditor.add_FormClosed($handler_formEntryEditor_FormClosed) 
540.
 
541.
$btnSort.Anchor = 9 
542.
 
543.
$btnSort.DataBindings.DefaultDataSourceUpdateMode = 0 
544.
 
545.
$System_Drawing_Point = New-Object System.Drawing.Point 
546.
$System_Drawing_Point.X = 244 
547.
$System_Drawing_Point.Y = 227 
548.
$btnSort.Location = $System_Drawing_Point 
549.
$btnSort.Name = "btnSort" 
550.
$System_Drawing_Size = New-Object System.Drawing.Size 
551.
$System_Drawing_Size.Height = 23 
552.
$System_Drawing_Size.Width = 75 
553.
$btnSort.Size = $System_Drawing_Size 
554.
$btnSort.TabIndex = 11 
555.
$btnSort.Text = "A-Z" 
556.
$btnSort.UseVisualStyleBackColor = $True 
557.
$btnSort.add_Click($handler_btnSort_Click) 
558.
 
559.
$formEntryEditor.Controls.Add($btnSort) 
560.
 
561.
$btnToBottom.Anchor = 9 
562.
 
563.
$btnToBottom.DataBindings.DefaultDataSourceUpdateMode = 0 
564.
 
565.
$System_Drawing_Point = New-Object System.Drawing.Point 
566.
$System_Drawing_Point.X = 244 
567.
$System_Drawing_Point.Y = 175 
568.
$btnToBottom.Location = $System_Drawing_Point 
569.
$btnToBottom.Name = "btnToBottom" 
570.
$System_Drawing_Size = New-Object System.Drawing.Size 
571.
$System_Drawing_Size.Height = 23 
572.
$System_Drawing_Size.Width = 75 
573.
$btnToBottom.Size = $System_Drawing_Size 
574.
$btnToBottom.TabIndex = 10 
575.
$btnToBottom.Text = "Nach unten" 
576.
$btnToBottom.UseVisualStyleBackColor = $True 
577.
$btnToBottom.add_Click($btnToBottom_OnClick) 
578.
 
579.
$formEntryEditor.Controls.Add($btnToBottom) 
580.
 
581.
$btnToTop.Anchor = 9 
582.
 
583.
$btnToTop.DataBindings.DefaultDataSourceUpdateMode = 0 
584.
 
585.
$System_Drawing_Point = New-Object System.Drawing.Point 
586.
$System_Drawing_Point.X = 244 
587.
$System_Drawing_Point.Y = 88 
588.
$btnToTop.Location = $System_Drawing_Point 
589.
$btnToTop.Name = "btnToTop" 
590.
$System_Drawing_Size = New-Object System.Drawing.Size 
591.
$System_Drawing_Size.Height = 23 
592.
$System_Drawing_Size.Width = 75 
593.
$btnToTop.Size = $System_Drawing_Size 
594.
$btnToTop.TabIndex = 9 
595.
$btnToTop.Text = "Nach oben" 
596.
$btnToTop.UseVisualStyleBackColor = $True 
597.
$btnToTop.add_Click($btnToTop_OnClick) 
598.
 
599.
$formEntryEditor.Controls.Add($btnToTop) 
600.
 
601.
$btnRemove.Anchor = 9 
602.
 
603.
$btnRemove.DataBindings.DefaultDataSourceUpdateMode = 0 
604.
 
605.
$System_Drawing_Point = New-Object System.Drawing.Point 
606.
$System_Drawing_Point.X = 244 
607.
$System_Drawing_Point.Y = 39 
608.
$btnRemove.Location = $System_Drawing_Point 
609.
$btnRemove.Name = "btnRemove" 
610.
$System_Drawing_Size = New-Object System.Drawing.Size 
611.
$System_Drawing_Size.Height = 23 
612.
$System_Drawing_Size.Width = 75 
613.
$btnRemove.Size = $System_Drawing_Size 
614.
$btnRemove.TabIndex = 8 
615.
$btnRemove.Text = "Entfernen" 
616.
$btnRemove.UseVisualStyleBackColor = $True 
617.
$btnRemove.add_Click($handler_btnRemove_Click) 
618.
 
619.
$formEntryEditor.Controls.Add($btnRemove) 
620.
 
621.
$btnAdd.Anchor = 9 
622.
 
623.
$btnAdd.DataBindings.DefaultDataSourceUpdateMode = 0 
624.
 
625.
$System_Drawing_Point = New-Object System.Drawing.Point 
626.
$System_Drawing_Point.X = 244 
627.
$System_Drawing_Point.Y = 10 
628.
$btnAdd.Location = $System_Drawing_Point 
629.
$btnAdd.Name = "btnAdd" 
630.
$System_Drawing_Size = New-Object System.Drawing.Size 
631.
$System_Drawing_Size.Height = 23 
632.
$System_Drawing_Size.Width = 75 
633.
$btnAdd.Size = $System_Drawing_Size 
634.
$btnAdd.TabIndex = 7 
635.
$btnAdd.Text = "Hinzufügen" 
636.
$btnAdd.UseVisualStyleBackColor = $True 
637.
$btnAdd.add_Click($handler_btnAdd_Click) 
638.
 
639.
$formEntryEditor.Controls.Add($btnAdd) 
640.
 
641.
$txtAdd.Anchor = 13 
642.
$txtAdd.DataBindings.DefaultDataSourceUpdateMode = 0 
643.
$System_Drawing_Point = New-Object System.Drawing.Point 
644.
$System_Drawing_Point.X = 12 
645.
$System_Drawing_Point.Y = 12 
646.
$txtAdd.Location = $System_Drawing_Point 
647.
$txtAdd.Name = "txtAdd" 
648.
$System_Drawing_Size = New-Object System.Drawing.Size 
649.
$System_Drawing_Size.Height = 20 
650.
$System_Drawing_Size.Width = 226 
651.
$txtAdd.Size = $System_Drawing_Size 
652.
$txtAdd.TabIndex = 6 
653.
$txtAdd.add_KeyDown($handler_txtAdd_KeyDown) 
654.
 
655.
$formEntryEditor.Controls.Add($txtAdd) 
656.
 
657.
$btnCancel.Anchor = 10 
658.
 
659.
$btnCancel.DataBindings.DefaultDataSourceUpdateMode = 0 
660.
$btnCancel.DialogResult = 2 
661.
 
662.
$System_Drawing_Point = New-Object System.Drawing.Point 
663.
$System_Drawing_Point.X = 210 
664.
$System_Drawing_Point.Y = 265 
665.
$btnCancel.Location = $System_Drawing_Point 
666.
$btnCancel.Name = "btnCancel" 
667.
$System_Drawing_Size = New-Object System.Drawing.Size 
668.
$System_Drawing_Size.Height = 23 
669.
$System_Drawing_Size.Width = 109 
670.
$btnCancel.Size = $System_Drawing_Size 
671.
$btnCancel.TabIndex = 4 
672.
$btnCancel.Text = "Abbrechen" 
673.
$btnCancel.UseVisualStyleBackColor = $True 
674.
$btnCancel.add_Click($handler_btnCancel_Click) 
675.
 
676.
$formEntryEditor.Controls.Add($btnCancel) 
677.
 
678.
$btnSave.Anchor = 10 
679.
 
680.
$btnSave.DataBindings.DefaultDataSourceUpdateMode = 0 
681.
$btnSave.DialogResult = 1 
682.
 
683.
$System_Drawing_Point = New-Object System.Drawing.Point 
684.
$System_Drawing_Point.X = 88 
685.
$System_Drawing_Point.Y = 265 
686.
$btnSave.Location = $System_Drawing_Point 
687.
$btnSave.Name = "btnSave" 
688.
$System_Drawing_Size = New-Object System.Drawing.Size 
689.
$System_Drawing_Size.Height = 23 
690.
$System_Drawing_Size.Width = 116 
691.
$btnSave.Size = $System_Drawing_Size 
692.
$btnSave.TabIndex = 3 
693.
$btnSave.Text = "Speichern" 
694.
$btnSave.UseVisualStyleBackColor = $True 
695.
$btnSave.add_Click($handler_btnSave_Click) 
696.
 
697.
$formEntryEditor.Controls.Add($btnSave) 
698.
 
699.
$btnDown.Anchor = 9 
700.
 
701.
$btnDown.DataBindings.DefaultDataSourceUpdateMode = 0 
702.
$btnDown.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9.75,0,3,1) 
703.
 
704.
$System_Drawing_Point = New-Object System.Drawing.Point 
705.
$System_Drawing_Point.X = 244 
706.
$System_Drawing_Point.Y = 146 
707.
$btnDown.Location = $System_Drawing_Point 
708.
$btnDown.Name = "btnDown" 
709.
$System_Drawing_Size = New-Object System.Drawing.Size 
710.
$System_Drawing_Size.Height = 23 
711.
$System_Drawing_Size.Width = 75 
712.
$btnDown.Size = $System_Drawing_Size 
713.
$btnDown.TabIndex = 2 
714.
$btnDown.Text = "˅" 
715.
$btnDown.UseVisualStyleBackColor = $True 
716.
$btnDown.add_Click($handler_btnDown_Click) 
717.
 
718.
$formEntryEditor.Controls.Add($btnDown) 
719.
 
720.
$btnUp.Anchor = 9 
721.
 
722.
$btnUp.DataBindings.DefaultDataSourceUpdateMode = 0 
723.
$btnUp.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",9.75,0,3,1) 
724.
 
725.
$System_Drawing_Point = New-Object System.Drawing.Point 
726.
$System_Drawing_Point.X = 244 
727.
$System_Drawing_Point.Y = 117 
728.
$btnUp.Location = $System_Drawing_Point 
729.
$btnUp.Name = "btnUp" 
730.
$System_Drawing_Size = New-Object System.Drawing.Size 
731.
$System_Drawing_Size.Height = 23 
732.
$System_Drawing_Size.Width = 75 
733.
$btnUp.Size = $System_Drawing_Size 
734.
$btnUp.TabIndex = 1 
735.
$btnUp.Text = "˄" 
736.
$btnUp.UseVisualStyleBackColor = $True 
737.
$btnUp.add_Click($handler_btnUp_Click) 
738.
 
739.
$formEntryEditor.Controls.Add($btnUp) 
740.
 
741.
$lbItems.Anchor = 15 
742.
$lbItems.DataBindings.DefaultDataSourceUpdateMode = 0 
743.
$lbItems.FormattingEnabled = $True 
744.
$System_Drawing_Point = New-Object System.Drawing.Point 
745.
$System_Drawing_Point.X = 12 
746.
$System_Drawing_Point.Y = 38 
747.
$lbItems.Location = $System_Drawing_Point 
748.
$lbItems.Name = "lbItems" 
749.
$System_Drawing_Size = New-Object System.Drawing.Size 
750.
$System_Drawing_Size.Height = 212 
751.
$System_Drawing_Size.Width = 226 
752.
$lbItems.Size = $System_Drawing_Size 
753.
$lbItems.TabIndex = 0 
754.
$lbItems.add_SelectedIndexChanged($handler_lbItems_SelectedIndexChanged) 
755.
$lbItems.add_KeyUp($handler_lbItems_KeyUp) 
756.
 
757.
$formEntryEditor.Controls.Add($lbItems) 
758.
 
759.
#endregion Generated Form Code 
760.
 
761.
#Save the initial state of the form 
762.
$InitialFormWindowState = $formEntryEditor.WindowState 
763.
#Init the OnLoad event to correct the initial state of the form 
764.
$formEntryEditor.add_Load($OnLoadForm_StateCorrection) 
765.
#Show the Form 
766.
$formEntryEditor.ShowDialog()| Out-Null 
767.
return $Script:result 
768.
769.
 
770.
# Hauptfenster öffnen 
771.
FormMain
Bitte warten ..
Mitglied: LaMancha
03.05.2014 um 13:27 Uhr
Hallo Uwe,

ein Super-Anfang! Für meine Zwecke reicht das erstmal völlig. Verschieben und Sortieren sind eine große Hilfe. Herzlichen Dank.

Für den Fall, dass die Grundidee ausgebaut werden sollte, möchte ich schon einmal weitere Ideen für solche Funktionen erwähnen:

- Es wäre schön, die vorhandenen Einträge einzeln bearbeiten zu können (im Standard wird die Zeichenfolge beim Anklicken in das Hinzufügen-Feld kopiert und kann dann -nach einer Änderung- der Suchliste hinzugefügt werden, aber das Löschen des alten Eintrages verbleibt beim Anwender).

- Es wäre schön, wenn man alle Einträge der Suchliste markieren und a) in die Zwischenablage kopieren oder b) löschen könnte. Entsprechend müsste es möglich sein, mehrere Einträge aus der Zwischenablage hinzuzufügen.

- Es wäre schön, wenn man mehrere Zeilen markieren und dann alle markierten Zeilen "Nach oben" oder "Nach unten" verschieben könnte. Beispielsweise alle .com mit Strg+C per Hand markieren und dann als Block an den Anfang der Suchliste verschieben.

Grüße - LaMancha
Bitte warten ..
Mitglied: colinardo
03.05.2014, aktualisiert um 14:24 Uhr
klar, das kann man bis zum Exzess treiben, aber dann kann man ja auch gleich eine Textbox anstatt einer Listbox einbauen in welcher man nach Lust und Laune hantieren kann...

Da war mir meine freie Zeit dann doch zu Schade, dass
mit der Listbox so weit zu treiben... den Quellcode hast du ja jetzt, kannst also auch mal selber damit hantieren

Grüße Uwe
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Outlook & Mail
gelöst Outlook 2013 Von Feld in alten Entwürfen (2)

Frage von Xartor zum Thema Outlook & Mail ...

Microsoft Office
Aus Outlook 2013 Daten aus Tabellenfeldern in Excel übertragen (9)

Frage von ich2110 zum Thema Microsoft Office ...

Outlook & Mail
Outlook 2013 stürzt beim Senden ab (8)

Frage von ForgottenRealm zum Thema Outlook & Mail ...

Outlook & Mail
gelöst Outlook 2013 - Teilnehmer in Termin anzeigen (4)

Frage von xbast1x zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (17)

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

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...