Laden...
M
Benutzerbeschreibung

Forenbeiträge von masmin Ingesamt 29 Beiträge

16.01.2007 - 14:46 Uhr

Ich hab versucht das lokal zum Laufen zu kriegen, aber ich bekome trotzdem diesen Fehler.

@Marius - Ich hab deine Codeergänzung im Konstruktor der Client.cs und im OnReceive-Event ausprobiert, aber bei beidem der gleiche Effekt bzw. die gleiche Fehlermeldung:
Der Remoteproxy hat keinen Channelempfänger, d.h. der Server besitzt keine registrierten Serverchannel oder die Anwendung hat keinen passenden Clientchannel, um mit dem Server zu kommunizieren.

Oder läuft diese Anwendung lokal vielleicht gar nicht?

17.09.2006 - 12:12 Uhr

@Andreas.May
das wäre super, wenn du morgen nochmal posten könntest was du rausgefunden hast

@talla
egal, ob es so benutzt werden sollte oder nicht - ich suche nunmal eine Lösung für das Problem und ich denke mal schon, dass sowas möglich ist, irgendwie. 🙂

17.09.2006 - 11:00 Uhr

Also es hat mir jetzt keine Ruhe gelassen und ich hab es nochmal mit dem Framework 1.1 ausprobiert. Es klappt dort tatsächlich mit diesem Code.
Warum funktioniert es mit dem Framework 2.0 nicht mehr?? Ich wäre immer noch sehr dankbar, wenn mir jemand ein Lösung für das Problem für das .NET FW 2.0 geben könnte.

17.09.2006 - 09:17 Uhr

Okay, das war einfach.

Um den Fehler zu beheben müßte man den Code von so

Process p = new Process();
SetParent(p.MainWindowHandle, this.Handle);
p.Start("notepad.exe.");

auf so ändern

Process p = new Process(); //unnütz an dieser Stelle
SetParent(p.MainWindowHandle, this.Handle); //wird ebenso wenig mehr gebraucht
Process.Start("notepad.exe.");

Leider gibt mir das überhaupt keinen Lösungsansatz für mein bisheriges Problem 🙁

17.09.2006 - 07:25 Uhr

Das klappt leider auch nicht.

Ich habs auch mal so probiert


Process p = new Process();
SetParent(p.MainWindowHandle, this.Handle);
p.Start("notepad.exe.");

aber da erhalte ich folgenden Fehler

Auf den statischen Member "System.Diagnostics.Process.Start(string)" kann nicht mit einem Instanzenverweis zugegriffen werden. Qualifizieren Sie ihn stattdessen mit einem Typnamen.

16.09.2006 - 20:07 Uhr

zu 1.
Doch, das geht auf jedenfall und ich hatte das auch vor Ewigkeiten auch schonmal gemacht. Der Code war irgendwie so ähnlich, nur das Framework war noch das 1.0. Jetzt hab das 2.0 laufen und ich kriegs nicht mehr hin.

zu 2.
Andersrum gehts nicht, da ja in SetParent der Process p gebraucht wird.

16.09.2006 - 18:51 Uhr

Hallo,

ich möchte gerne eine externe Anwendung in einem MDI-Fenster starten.

Bisher habe ich Folgendes probiert


[System.Runtime.InteropServices.DllImport("user32.dll")]
            static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

...

            ProcessStartInfo psi = new ProcessStartInfo("notepad.exe");
            Process p = Process.Start(psi);
            SetParent(p.MainWindowHandle, this.Handle);


Leider klappt das nicht und die Anwendung (hier Notepad) wird immernoch außerhalb meines MDI-Fensters gestartet.

Hat jemand vielleicht eine Idee was ich falsch mache oder wie man es sonst lösen könnte?

13.12.2005 - 08:46 Uhr

Warum lieferst Du die Datei nicht an den Client aus?

Ich hab's nun erstmal so umgeproggt, dass mir das PDF direkt im Browser angezeigt wird. Soll später vielleicht sogar so umgesetzt werden.

Mir kommt es nur schleierhaft vor, weil ich vorher mit einer anderen Bibliothek rumgespielt hab und ich bei dieser einwandfrei das PDF auf die Platte schreiben konnte. Hier geht das nun auf einmal nicht mehr. Ich weiß, dass mein Account und der ASPNET Account zwei unterschiedliche Paar Schuhe sind.

12.12.2005 - 13:55 Uhr

kann es sein, dass es nicht direkt am Speicherort liegt?
ich hab den Code jetzt mal so umgeändert


Document myDocument = new Document();
			PdfWriter.GetInstance(myDocument, new FileStream("C:/Chap0101.pdf", FileMode.Create));
			myDocument.Open();
			myDocument.Add(new Paragraph("Hello World"));
			myDocument.Close();

und nun kommt folgende Meldung

Der Zugriff auf den Pfad C:\Chap0101.pdf wurde verweigert.
Beschreibung: Beim Ausführen der aktuellen Webanforderung ist ein unverarbeiteter Fehler aufgetreten. Überprüfen Sie die Stapelüberwachung, um... ...den Rest kennt man ja.

Ich selbst bin als Admin angemeldet, aber braucht das ASP.NET vielleicht selbst irgendwie mehr Rechte auf dem PC? Wo kann man das nochmal freischalten? Hatte ähnliche Probs schon mit dem Zugriff auf Word von ASP.NET heraus.

12.12.2005 - 13:21 Uhr

soso, schöner Thread 🙂

will die Endlosdiskussionen hier aber gar nicht weiterführen, sondern hab 'n Prob mit iTextSharp (falls das Problem überhaupt genau daran liegt). Ich hab mal die Konsolenanwendung hier ausprobiert. Klappt soweit einwandfrei (wie zu erwarten war), allerdings hab ich in ASP.NET damit Probleme.

Wenn ich den Code der Konsolenanwendung

Document myDocument = new Document();
			PdfWriter.GetInstance(myDocument, new FileStream("Chap0101.pdf", FileMode.Create));
			myDocument.Open();
			myDocument.Add(new Paragraph("Hello World"));
			myDocument.Close();

in ein Buttonklick-Event meiner ASP.NET Anwendung einfüge, erhalte ich beim Ausführen folgenden Fehler:

Der Zugriff auf den Pfad C:\WINDOWS\system32\Chap0101.pdf wurde verweigert.
Beschreibung: Beim Ausführen der aktuellen Webanforderung ist ein unverarbeiteter Fehler aufgetreten. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

Ausnahmedetails: System.UnauthorizedAccessException: Der Zugriff auf den Pfad C:\WINDOWS\system32\Chap0101.pdf wurde verweigert.

ASP.NET darf auf die angeforderte Ressource nicht zugreifen. Gewähren Sie der ASP.NET-Prozessidentität Zugriffsrechte für die Ressource. ASP.NET hat eine Standardprozessidentität (gewöhnlich '{MACHINE}\ASPNET' unter IIS 5 bzw. Network Service unter IIS 6), die verwendet wird, wenn die Anwendung keinen Identitätswechsel ausführen kann. Wenn die Anwendung über <identity impersonate="true"/> einen Identitätswechsel ausführen kann, wird als Identität gewöhnlich der anonyme Benutzer (normalerweise IUSR_MACHINENAME) bzw. der authentifizierte Anfragebenutzer verwendet.

Um ASP.NET Schreibrechte für eine Datei zu gewähren, klicken Sie im Explorer mit der rechten Maustaste auf die Datei, wählen "Eigenschaften" und anschließend die Registerkarte "Sicherheit". Klicken Sie auf "Hinzufügen", um den entsprechenden Benutzer bzw. eine Gruppe hinzuzufügen. Markieren Sie das ASP.NET-Konto und aktivieren Sie jeweils das Kontrollkästchen für den gewünschten Zugriff.

Quellfehler:

Zeile 46: // p.createPDF();
Zeile 47: Document myDocument = new Document();
Zeile 48: PdfWriter.GetInstance(myDocument, new FileStream("Chap0101.pdf", FileMode.Create));
Zeile 49: myDocument.Open();
Zeile 50: myDocument.Add(new Paragraph("Hello World"));

Fehlt es mir hier an irgendwelchen Freigaben? Weiß jemand, wie man das beheben kann?

23.11.2005 - 09:39 Uhr

tja, da war wohl einer schneller wie ich 🙂

@Fabian
war über google ruckizucki ausfindig zu machen 😉

16.11.2005 - 22:00 Uhr

Also, das einfache Umschreiben der *.sln - Datei bringt nicht viel. VS2005 beherrscht ja das Anlegen sogenannter partial-Classes, in welchen dann der ganze InitializeComponent-Krams einer Klasse steht. In VS2003 gibt es diese Klassen noch nicht und man muß das ganze also händisch wieder anpassen.

Ansonsten war die Idee von S.H.-Teichhof wirklich gut. Bin schon recht weit voran gekommen und (zum Glück) hab ich nicht allzuviel C# 2.0 spezifisches Zeugs in meinem Code.

15.11.2005 - 22:14 Uhr

@S.H. -Teichhof

eigentlich 'ne gute Idee. Werd das morgen mal in Angriff nehmen.

@Noodles

Davor grauts mir schon. Durch VS2005 und dem Framework 2.0 kam ja auch einiges Gutes, was einem schon etwas Tipparbeit abnahm. Das wird bestimmt 'ne Tagesaufgabe.

15.11.2005 - 21:53 Uhr

nein, die Controls wurden im gleichen Thread erstellt - ich hab mir stundenlang meine Matschbirne darüber zerbrochen und hätte vor Frust ausrasten können (man kennt das ja). Deswegen hab ich's einfach mal in VS2003 probiert und da hats auf Anhieb geklappt. Außerdem merkt man durch sowas auch mal, wie langsam invoke eigentlich ist (hat ja aber nix mit VS2005 oder dem Framework 2.0 zu tun - wollt das nur mal erwähnt haben 😉 )

Hoffe, dass ich das mit der Umkonvertierung hinkrieg, wenn ich etwas Ruhe und Zeit dafür hab. Drum herum kommen werd ich wohl nicht, da ich einfach keine Alternative zu invoke gefunden hab.

Thx für die Hilfe bis hierher.

15.11.2005 - 21:46 Uhr

ok, die *.csproj muß definitv auch noch umgeändert werden. Alle Dateien unterscheiden sich prinzipiell nur vom Aufbau. Inhalte scheinen identisch zu sein, soweit ich das eben überblicken konnte.

15.11.2005 - 21:41 Uhr

also zum ersten Punkt:

ich hab in meiner Mainform 'n Panel in welches ich irgendwelche Usercontrols lade. Nun führe ich in einem Usercontrol eine Aktion aus, bei welcher ein EventHandler automatisch aufgerufen wird. In dem Eventhandler werden jetzt Aktionen ausgeführt, wie z.B. den Text eines Labels updaten oder die Balken von unterschiedlichen Progressbars (alle befinden sich in dem Usercontrol, in welchem auch die Aktionen ausgeführt werden). Hier sagt VS2005 - Cross thread Exception. Meine Elemente wie Labels usw. wurden angeblich in einem anderen Thread erstellt. Wenn ich das nun aber in VS2003 nachbaue funzt alles einwandfrei. Hab gelesen, dass dieser fehler mit dem VS2005 zusammen aufgetaucht sein soll.

Das Problem ist jetzt, wenn ich invokeRequired und invoke verwende, dass es mindestens 10mal solange dauert, da z.B. mein Eventhandler ca. 20000 aufgerufen wird und jedesmal invokeRequired ist. Also muß er jedesmal dem angeblich richtigen Thread zugeordnet werden, in welchem er sich aber eigentlich schon befindet. Hoffe du wolltest das wissen und hast es einigermaßen verstanden 😛

Nun zum 2ten Punkt: die 2005er *.sln und die 2003er *.sln sehen sich sehr ähnlich, sodass man die fix umändern kann. Das alleine brachte aber nix. Nun hab ich die *.proj.user noch umgeändert, welche sehr unterschiedlich voneinander sind. Nun sehe ich in VS2003 wenigstens schonmal das Project als Ordner im Projektmappenexplorer, allerdings ist dieser leer und VS2003 sagt immernoch, dass es das Projekt nicht öffnen kann. Vielleicht hab ich auch einfach was falsch umgeschrieben oder es muß vielleicht sogar noch mehr geändert werden?

15.11.2005 - 21:26 Uhr

also mir ist z.B. aufgefallen, dass das Framework eine Cross-Thread Exception wirft, an stellen wo es eigentlich gar keine gibt. ich hab den gleichen Sourcecode in VS 2003 unter dem Framework 1.1 getestet, nachdem ich mind. 6h davor saß und überlegt hab, wie es zu dieser Exception kommt. Nunja, Ergebnis in VS 2003 war: es gibt keinen Fehler. Das Programm lief einwandfrei. Klar, ich könnte jetzt diesen Fehler mit invoke ausbügeln, allerdings hab ich dadurch derartige Leistungseinbußen, sodass das für mich absolut inakzeptabel ist.

Ich hab das eben mal fix mit der sln-Datei getestet. Leider klappt es nicht so wirklich. VS2003 versucht das Projekt zwar zu öffnen, scheitert aber. Geändert hab ich die *.sln und die *.csproj.user.

15.11.2005 - 20:56 Uhr

Hallo,

ich hoffe ich bin damit im richtigen Forum. Also ich wollte mal wissen, ob es möglich ist ein C#-Projekt, welches mit VS 2005 Beta 2 erstellt wurde, zu VS 2003 zurück zu konvertieren!?

Mittlerweile bereue ich es schon glatt ein wenig zu voreilig mit VS 2005 gewesen zu sein. Das Framework scheint einfach noch zu buggy zu sein und ich würde liebend gerne im Framework 1.1 weiterarbeiten.

Also, hat jemand eine Idee?

11.11.2005 - 13:12 Uhr

Hi,

ich hab folgendes Problem. Ich will in Word einen Serienbrief erstellen u. ausdrucken und dies soll auf einen Button-Druck in meiner ASP.NET-Anwendung geschehen. Da ich aus C# heraus nicht ohne weiteres einen Serienbrief erstellen kann hab ich in Word ein Makro dafür aufgenommen, welches jetzt nur noch durch C# angestoßen werden müßte, aber da hakts irgendwie.

Hier mal mein bisher verwendeter Quellcode:


object path = "C:\\TestDok\\SerialTest2.doc";
object missingValue = Type.Missing;
oDoc = oWordAppl.Documents.Open(ref path, ref missingValue, 
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue);
//printSerialLetter ist der Makroname
oWordAppl.Run("printSerialLetter", ref missingValue, 
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, 
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue, ref missingValue, ref missingValue,
				ref missingValue);

Nun passiert aber gar nichts und das HTML-Dokument läd und läd und läd... und nichts passiert irgendwie weiter.

Hat einer 'ne Idee woran das liegt oder wie man das beheben könnte, sodass auch wirklich das Makro gestartet wird?

08.11.2005 - 10:58 Uhr

Ok, habs schon:

private void button1_Click(object sender, System.EventArgs e)
		{
			panel1.Controls.Clear(); //Das hat gefehlt
			panel1.Controls.Add(frm2);
			frm2.Show();
		}
08.11.2005 - 09:27 Uhr

ich hab es jetzt mal so ähnlich wie Mike_on_Tour probiert und habe einen recht merkwürdigen Effekt. Kurz zur Erklärung:
Ich hab meine MainForm mit einem Panel und 2 Buttons. Wenn ich auf den Button1 klicke soll in dem Panel die Form1 angezeigt werden. Wenn ich auf den Button2 klicke soll in dem Panel die Form2 angezeigt werden. Nun passiert aber folgendes:

Klick auf Button1 : Form1 wird angezeigt (ok)
Klick auf Button2 : Form2 wird angezeigt (ok)
Klick auf Button1 : nichts passiert
Klick auf Button2: Form1 wird angezeigt (??? hier sollte eigentlich Form2 angezeigt werden)
Klick auf Button1: Form2 wird angezeigt (wo eigentlich Form1 angezeigt werden sollte)

usw. - also genau falsch herum. Woran kann das liegen?

Hier mal der Code der Buttonklicks

private void button1_Click(object sender, System.EventArgs e)
		{
			frm1.FormBorderStyle = FormBorderStyle.None;
			frm1.WindowState = FormWindowState.Maximized;
			frm1.TopLevel = false;

			panel1.Controls.Add(frm1);
			frm1.Show();
		}

		private void button2_Click(object sender, System.EventArgs e)
		{
			frm2.FormBorderStyle = FormBorderStyle.None;
			frm2.WindowState = FormWindowState.Maximized;
			frm2.TopLevel = false;

			panel1.Controls.Add(frm2);
			frm2.Show();
		}

Eigentlich nichts dickes der Code.

EDIT: ich hab die Forms 1 und 2 jetzt mal in sofern geändert, dass sie nicht mehr von Form erben, sondern von UserControl und den Rest auch noch etwas angepaßt. Sowas wie

			frm2.FormBorderStyle = FormBorderStyle.None;
			frm2.WindowState = FormWindowState.Maximized;
			frm2.TopLevel = false;

gibts ja dann nicht mehr - also auskommentiert.

Nun gehts aber gar nicht mehr. Was muß ich da ändern?

05.11.2005 - 16:30 Uhr

Hallo salla,

was hat denn dieses "strDruckerschacht" zu sagen?

04.11.2005 - 14:20 Uhr

Hallo salla,

ich will eigentlich Folgendes. Das Worddokument wird mit Daten aus einem einem DataSet oder sonstwoher über ein Word-Template gefüllt. Alles soweit kein Problem. Anschließend soll dieses Worddokument gedruckt werden. Und hier hakts gewaltig.

Das mit dem Öffnen war nur mal so eine Option von mir, welche ich zusätzlich implementieren wollte, aber letztendlich sollen auf Button_Click die Daten ins Worddok geschrieben und ausgedruckt werden.

Auch wenn's nicht hier in den Thread gehört, aber hast du zum Drucken einen Vorschlag? Ich hab's mit der PrintOut-methode probiert, welche eigentlich den Standarddrucker nutzt, aber bekomme ständig die Fehlermeldung von ASP, dass kein Drucker installiert wäre. Angedacht war eigentlich, dass sich dem Nutzer vorher noch der PrintDialog öffnet, in welchem er den Drucker auswählen kann.

03.11.2005 - 11:06 Uhr

Um mal kurz zurück auf das eigentliche thema zu kommen. Ich hab ebenfalls den Code aus dem c-sharpcorner Beispiel verwendet, bei mir öffnet sich aber nichts, zumindest nicht sichtbar. Ich seh zwar im Taskmanager, dass eine Winword.exe von ASPNET gestartet wurde, allerdings seh ich weder Word noch mein angegebenes Dokument. Ah ja, wie schon geschrieben - ich versuch's aus 'ner ASP.NET Anwendung heraus, was allerdings vom Prinzip her identisch sein sollte.

Was mach ich da falsch?

20.10.2005 - 23:18 Uhr

Hallo herbivore,

also ich hab das Problem mit dem Flackern jetzt anders lösen können. Falls es jemanden interessiert, hier ist mal der dazugehörige Code

Hier wird das alte Form geschlossen und ein Neues geöffnet bei einem Klick auf einen der Items:


        private void nbiInbox_LinkClicked(object sender, EventArgs e)
        {

            BeginUpdate();
            frmInbox frmIn = new frmInbox();
            try
            {
                Form activeFrm = this.ActiveMdiChild;
                activeFrm.Close();
            }catch{
            }
            frmIn.MdiParent = this;
            frmIn.Show();
            EndUpdate();
        }

Hierbei kam es zwischen dem Schließen des ersten Forms und dem Öffnen des zweiten Forms immer zu diesem Flackern. Also hab ich die Methoden BeginUpdate und EndUpdate geschrieben. Hier der Code dafür:


        public void BeginUpdate()
        {
            SendMessage(new HandleRef( this, Handle ) ,WM_SETREDRAW, 0, 0 );
            LockWindowUpdate(new HandleRef(this, Handle));
        }

        public void EndUpdate()
        {
            SendMessage(new HandleRef( this, Handle ) ,WM_SETREDRAW, 1, 0 );
            LockWindowUpdate(new HandleRef(this, IntPtr.Zero));
             this.Invalidate(true);
             this.Update();
        }

         [DllImport("user32", CharSet = CharSet.Auto)]
         private static extern int SendMessage(HandleRef hWnd,
             int msg,
             int wParam,
             int lParam);

        [DllImport("user32", CharSet = CharSet.Auto)]
        private static extern int LockWindowUpdate(HandleRef hWnd);

Schon ist das Flackern verschwunden =)

19.10.2005 - 22:48 Uhr

Hallo,

ich habe ein kleines Schönheitsproblem mit dem Mdi und den Mdi-Childs. Ich habe in meinem Mdi-Container eine Navigationsbar mit diversen klickbaren Items. Wenn ich nun auf einen Item (z.B. "öffne Form1") klicke öffnet sich im Container ein Windows.Form als MdiChild (z.B. das Form1). Sobald ich auf einen anderen Item in der Navigationsbar klicke (z.B. "öffne Form2")wird dieses MdiChild (hier Form1) geschlossen und anschließend das dem Item zugeordnete Windows.Form als MdiChild geöffnet (z.B. Form2).
Nun tritt zwischen dem Schließen des ersten Childs und dem Öffnen des zweiten Childs immer so ein Flackern auf.
Wie krieg ich nun einen "sauberen" Übergang hin, ohne das man dieses unschöne Flackern sieht?

Hier mal der Code, welcher ausgeführt wird, sobald ich auf einen Item klicke


Form Child1 = this.ActiveMdiChild;
Child1.Close();
 
Child2 ch2Form = new Child2();
ch2Form.MdiParent=this;
ch2Form.Show();

Ich hab's nun auch schon so versucht, aber leider keine Änderung


Child2 ch2Form = new Child2();
Form Child1 = this.ActiveMdiChild;
Child1.Close();
ch2Form.MdiParent=this;
ch2Form.Show();

Anschließend hab ich es nochmal so versucht, dass ich zuerst alle Forms instanziere und dann mit dem jeweiligen Itemklick, die jeweiligen Forms nur auf Show() oder Hide() setz, aber auch hier bleibt dieses unschöne flackern.

Hat vielleicht jemand eine Idee, wie man das umgehen könnte?

Sehr schick wäre natürlich auch wenn man irgendwas mit Opacity machen könnte, z.B. das Form im Vordergrund wird langsam transparent und wenn es unsichtbar ist geschlossen, während das neu zu ladende Form zeitgleich unsichtbar geladen wird und langsam sichtbar wird. Ist sowas überhaupt möglich und wenn ja wie?
Das wäre natürlich die hübscheste Methode, aber mir reicht es natürlich auch, wenn ich dieses unschöne Flackern einfach wegbekomm.

Danke und Grüße
masmin

14.10.2005 - 11:50 Uhr

hm, es scheint trotzdem noch nicht zu funktionieren. Mir werden immer noch alle Links ausgegeben. Sogar die, in welchen kein "index" oder "groß" vorkommt 🤔

EDIT:

Sorry, war mein Fehler - funzt einwandfrei! 🙂

Danke herbivore

14.10.2005 - 11:36 Uhr

Hallo herbivore,

Wenn ich nun in C# diese Zeile schreibe:

strRegEx = "http://[^\s]*(index|groß)[^\s]";

dann meckert er mir die in Visual Studio sofort an, von wegen "nicht erkannte Escape-Folge".

Was hab ich da falsch?

14.10.2005 - 11:04 Uhr

Hallo,

ich habe ein kleines Problem mit RegEx, da ich davon noch sogut wie keine Ahnung habe.
Ich möchte mit Hilfe von RegEx nach bestimmten Hyperlinks suchen lassen, welche diverse Schlüsselwörter enthalten, z.b.

Link1:
http://www.test1.de/index.php?irgendwas=888&nochwas=111

Link2:
http://www.test2.de/hyper.php?neu=123&alt=456

Link3:
http://www.test3.de/trallalala.php?groß=999&klein=111

der RegEx für Hyperlinks sieht nun so aus:

http:\\s*(:question:\"(?<1>[^\"]*)\"|(?<1>\\S+))

Hiermit würde ich nun alle 3 Links ausgegeben kriegen.

Aber nun möchte ich nur nach Hyperlinks suchen, welche entweder das Wort "index" ODER das Wort "groß" enthalten. In der Ausgabe dürften dann nur Link1 und Link3 erscheinen, aber nicht Link2. Wie müßte man hierfür den RegEx verändern? Ich probier mich nun schon seit einigen Stunden dran, aber komm einfach nicht voran.

Irgendwie müßte ich doch dann ungefähr sowas mit einfügen in den RegEx, oder?
\b\index?|groß?\b

Bin für jede Hilfe dankbar.