Autor Beitrag
dlt
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 09.11.10 11:02 
Hallo Forum!

wie kann ich unter C# einen hyperlink auf eine Textmarke erstellen?

mit:
ausblenden C#-Quelltext
1:
2:
string s = System.Windows.Forms.Application.StartupPath + "\\Hilfe\\hilfe.html#Fehlermeldungen";
System.Diagnostics.Process.Start(s);

funktioniert es leider nicht auf die vorhandene Textmarke"Fehlermeldungen" zu springen,
hab leider nichts passendes gefunden...

Danke!!
Thomas
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Di 09.11.10 17:18 
Hallo,

also, für den Internet-Explorer (getestet mit IE8) klappt es auf diese Art:
ausblenden C#-Quelltext
1:
Process.Start("iexplore.exe""file://C:/Temp/anker.htm#kapitel2");					
Aber der Firefox schluckt das nicht so richtig. Da wird der Anker auch nicht mitgegeben!?
Wie es sich mit anderen Browsern verhält, kann ich nicht sagen.

LG, Marko
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 09.11.10 18:45 
user profile icondlt hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
1:
2:
string s = System.Windows.Forms.Application.StartupPath + "\\Hilfe\\hilfe.html#Fehlermeldungen";
System.Diagnostics.Process.Start(s);

Woher soll Windows denn wissen, dass der Teil nach der Raute nicht mehr zum Dateinamen gehört? Es ist ja schließlich auch erlaubt, eine Datei namens 2hilfe.html#Fehlermeldungen" zu erstellen. Das heißt, dass Windows nach der Datei inklusive Hash sucht und daher natürlich nichts findet.

user profile iconTrashkid2000 hat folgendes geschrieben Zum zitierten Posting springen:
Aber der Firefox schluckt das nicht so richtig. Da wird der Anker auch nicht mitgegeben!?

Firefox (4.0b6) macht's genauso wie Windows: Es wird nach der Datei inklusive dem Teil nach der Raute gesucht und nichts gefunden.

So, und das eigentliche Problem ist, dass du einen Slash vergessen hast, user profile iconTrashkid2000. Dann funktioniert lustigerweise alles wieder:

ausblenden C#-Quelltext
1:
Process.Start("iexplore.exe""file:///C:/Temp/anker.htm#kapitel2");					
dlt Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 09.11.10 22:46 
Danke!

D.h. es ist nicht möglich?
was mich ziemlich irritiert ist die Tatsache dass der Explorer richtig startet
die Adresse mit ...#Textmerke im Adressfenster erscheint
aber das Dokument nicht auf der Textmarke steht sondern knapp unter dem Anfang.
Wenn ich im Explorer anschliessend auf refresh klicke steht das Dokument auf der richtigen Stelle!!

hat irgendjemand einen Lösungsvorschlag?

das dedizierte angeben des WIN-Explorers im process-befehl wie von euch beschrieben macht keinen unterschied

Danke
Thomas
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 10.11.10 21:20 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Dann funktioniert lustigerweise alles wieder:

user profile icondlt hat folgendes geschrieben Zum zitierten Posting springen:
D.h. es ist nicht möglich?

Doch...

Ich hab nochmal ein bisschen rumgespielt und im Internet gesucht, und siehe da - ich bin über Google wieder in der Entwickler-Ecke gelandet, und zwar in Shellexecute unter Windows 7 - URL mit Sprunganker. Du kannst den Code dort einfach in C# umschreiben, das dürfte kein Problem sein.

Wenn Windows 7 nicht so wichtig ist geht es viel einfacher:

ausblenden C#-Quelltext
1:
Process.Start("\"file:///D|/test.html#h2\"");					

Öffnet die Datei im Standardbrowser. Getestet mit Firefox, Opera und Safari als Standardbrowser, alle drei funktionieren. Der Internet Explorer schafft's aber leider aus irgendeinem Grund nicht und zeigt den Anker nichtmal in der Adressleiste an. Wenn der Internet Explorer also wichtig ist, musst du wohl auf die komplziertere Version aus dem Delphi-Forum zurückgreifen.

Für diesen Beitrag haben gedankt: dlt
dlt Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 11.11.10 21:54 
Danke! werds versuchen