Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von blackdns
Thema: (tief) geschachteltes XmlDocument mit weniger/einfacherem/übersichtlicherem Code enumerieren
Am im Forum: Datentechnologien

Danke jungs :)

Eine xsd habe ich leider nicht, auf das Tool war ich auch schon gestoßen ;)

@abt: vielen Dank auch dir, werde deine Lösung später mal ausprobieren und ggf. auf dich zurück kommen!!

Thema: (tief) geschachteltes XmlDocument mit weniger/einfacherem/übersichtlicherem Code enumerieren
Am im Forum: Datentechnologien

Hallo zusammen,

habe ein wenig Probleme damit zu verstehen, wie genau die Enumeration von XMLs in .NET von statten geht, und denke, dass ich den folgenden Code deutlich simpler gestalten können MÜSSTE!

Vielleicht kann mir jemand einen Fingerzeig geben.

Vielen Dank im Voraus.

Code:

XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(settings);
foreach (XmlNode node in xmldoc.GetElementsByTagName("DialogFields"))
{
	foreach (XmlNode innerNode in node)
	{
		if (sListField.FileCabinetField != null && innerNode.Attributes["name"].Value == sListField.FileCabinetField.DatabaseName)
		{
			foreach (XmlNode innerinnerNode in innerNode.ChildNodes)
			{
				if (innerinnerNode.Name == "FieldEntry")
				{
					foreach (XmlNode innerinnerinnerNode in innerinnerNode)
					{
						if (innerinnerinnerNode.Name == "FixedText" && innerinnerinnerNode.Attributes["isFixedEntry"].Value == "true")
						{
							string minValue = innerinnerinnerNode.ChildNodes[0].InnerText;
							string maxValue = innerinnerinnerNode.ChildNodes[1].InnerText;

							if (minValue != String.Empty)
							{
								if (maxValue != String.Empty)
									searchCommand.AddCriterion(sListField.FileCabinetField, minValue, maxValue);
								else
									searchCommand.AddCriterion(sListField.FileCabinetField, minValue);
							}
						}
					}
				}
			}
		}
	}
}

XML:
<?xml version="1.0" encoding="UTF-8"?>
<SearchDialog fID="1" fGuid="a4f2d397-3d53-433b-9334-e4e7cd7e8ab2" guid="9a540537-d3aa-490d-953b-266a61184999" name="Testfirma" default="false" usage="NormalClients" version="5.1.0.1">
   <Properties resultListGuid="844f9be5-fc15-4b18-8d2f-06444d1dbca2">
      <LogicalOperators show="true" defaultOperator="AND" />
   </Properties>
   <DialogFields>
      <DialogField name="COMPANY" visible="true" orderNumber="1" guid="0f5d3b6a-5013-44f7-a7f3-bf40c1b198e6">
         <FieldLabel>
            <Name>Firma</Name>
         </FieldLabel>
         <FieldEntry allowExtendedSearch="false">
            <AddWildcards>false</AddWildcards>
            <FixedText lock="false" enabled="true" isFixedEntry="true" predefinedEntry="EMPTY" type="Both">
               <Min>
                  <TextVar length="-1">TESTFIRMA</TextVar>
               </Min>
               <Max>
                  <Text20 />
               </Max>
            </FixedText>
            <MaskGuid>00000000-0000-0000-0000-000000000000</MaskGuid>
            <ExtSelectLists>
               <ExtSelectList guid="00000000-0000-0000-0000-000000000000" isDWInternalSelectList="true">Standard Auswahlliste</ExtSelectList>
            </ExtSelectLists>
         </FieldEntry>
      </DialogField>
      <DialogField name="CONTACT" visible="true" orderNumber="2" guid="a53e1135-83f5-440b-89fd-113d3fef7998">
         <FieldLabel>
            <Name>Kontakt</Name>
         </FieldLabel>
         <FieldEntry allowExtendedSearch="false">
            <AddWildcards>false</AddWildcards>
            <FixedText lock="false" enabled="false" isFixedEntry="false" predefinedEntry="CURRENTDATE" type="Both">
               <Min>
                  <TextVar length="-1" />
               </Min>
               <Max>
                  <Text20 />
               </Max>
            </FixedText>
            <MaskGuid>00000000-0000-0000-0000-000000000000</MaskGuid>
            <ExtSelectLists>
               <ExtSelectList guid="00000000-0000-0000-0000-000000000000" isDWInternalSelectList="true">Standard Auswahlliste</ExtSelectList>
            </ExtSelectLists>
         </FieldEntry>
      </DialogField>
   </DialogFields>
</SearchDialog>

Thema: SendKeys() und Adobe Reader Problem
Am im Forum: GUI: Windows-Forms

nicht schlimm :)

habe jetzt aber herausgefunden, dass der "Geschützte Modus" des Adobe Readers (vgl. Anhang) mir einen Strich durch die Rechnung gemacht hat!
der scheint offenbar dafür zu sorgen, dass die tastatureingaben nicht ankommen.

falls es jmd programmatisch deaktivieren möchte:

Registry.SetValue("HKEY_CURRENT_USER\\Software\\Adobe\\Acrobat Reader\\11.0\\Privileged", "bProtectedMode", "0")

Thema: SendKeys() und Adobe Reader Problem
Am im Forum: GUI: Windows-Forms

hallo karill,

diese software scheint nur für mobile endgeräte zu sein?! meine software ist desktop-basiert.

hallo lennart,

die rechner sind auf den ersten blick alle "identisch"
windows 7 sp1 64bit, adobe reader 11 (latest), aktuellstes .net framework (4.5) und vollständig durch-gepatcht

welche anderen faktoren könnten eine rolle spielen?

es handelt sich hier um ein wpf-projekt basierend auf .net 4.5, wenn ich es richtig verstehe, sollte die anwendung entsprechend auf einem pc, der eine ältere version von .net benutzt, garnicht starten - eine wie oben erläuterte arbeitsweise ist kein indiz für einen versionskonflikt der .net-versionen, ist das korrekt?

Thema: SendKeys() und Adobe Reader Problem
Am im Forum: GUI: Windows-Forms

hallo,

wenn ich deine anpassung vornehme, funktioniert es an keinem rechner mehr.

ich habe noch eine 2. variante gefunden (http://inputsimulator.codeplex.com/), bei dieser tritt der identische "fehler" auf, wie bei der bisher verwendeten, an den selben computern funktioniert es weiterhin, und an den anderen funktioniert es nach wie vor nicht, das problem kann also nach meinem verständnis nicht an der vorgehensweise liegen, sondern es muss ein problem außerhalb der software vorliegen.

Thema: SendKeys() und Adobe Reader Problem
Am im Forum: GUI: Windows-Forms

Hallo zusammen,

ich habe eine Anwendung, die an den geöffneten Adobe Reader die Tastenkombination zum Einblenden der erweiterten Suche sendet.

Bei vielen Rechnern funktioniert das auch ohne Probleme, bei einigen jedoch wird der Prozess zwar gestartet, die "Tastatureingabe" hingegen scheint nicht ausgeführt zu werden.

Der Code ist wie folgt:

Process prc = Process.Start(prcInfo);
SetForegroundWindow(prc.MainWindowHandle);
prc.WaitForInputIdle();
SendKeys.SendWait("^+F");
SendKeys.SendWait(txt_Searchvalue.Text);
SendKeys.SendWait("~");
prc.WaitForExit();

Hat jemand einmal etwas ähnliches gehabt oder vielleicht eine Idee, woran es liegen könnte? Es erscheint auch keine Fehlermeldung oder etwas ähnliches, es wird lediglich kein Suchfenster geöffnet.

Vielen Dank im Voraus.

Thema: [erledigt] Adobe Reader parameterisierter Zugriff auf Suchfunktion
Am im Forum: Rund um die Programmierung

hallo warlord_xan,

das war mein erster versuch, die erkennungsquote war allerdings weit unter 50% von der die der reader leisten konnte, daher fiel das leider raus.

Thema: [erledigt] Adobe Reader parameterisierter Zugriff auf Suchfunktion
Am im Forum: Rund um die Programmierung

auf die idee war ich nicht gekommen, problem "gelöst" :D

dankeschön ;)

Thema: [erledigt] Adobe Reader parameterisierter Zugriff auf Suchfunktion
Am im Forum: Rund um die Programmierung

dort habe ich schon 2 threads laufen (1 mal im englischen bereich - und nach dem es mir geraten wurde - noch einen im deutschsprachigen)

den support habe ich schon telefonisch kontaktiert, daraufhin wurde mir per mail ein link zu den adobe-foren gesendet mit der bitte mich dorthin zu wenden ... thanks

naja scheint wirklich ein aufwändigeres problem zu sein .... :(

Thema: [erledigt] Adobe Reader parameterisierter Zugriff auf Suchfunktion
Am im Forum: Rund um die Programmierung

hallo,

kannst du mir sagen wo die output-datei erstellt werden sollte? kann sie nicht finden.

die batch datei enthält jetzt lediglich ein

cmd /U

am anfang.

edit:

sorry offenbar die funktion falsch verstanden.

c:\>"c:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /A search=au€ergew÷hnlich c:\martinsmarkt.pdf

das ist das ergebnis von "außergewöhnlich"

wie gehts von hier weiter? muss ich das encoding der cmd in irgendeiner weise anpassen?

falls ja bitte ein kleines point-towards - bin diesbezüglich noch sehr frisch hinter den ohren (web-dev)

Thema: [erledigt] Adobe Reader parameterisierter Zugriff auf Suchfunktion
Am im Forum: Rund um die Programmierung

Hallo zusammen,

mein Problem besteht darin, dass ich über den parameterisierten Aufruf der Suchfunktion des Adobe Readers nicht in der Lage bin, nach einem Wort zu suchen, das ein ß enthält.

Ein Beispiel wäre folgendes:

Wir nutzen das folgende PDF-Dokument

martinsmarkt.pdf

Wenn wir dieses Dokument im Root unseres C-Laufwerkes ablegen, und folgenden Befehl in die CMD füttern, sollte der Adobe Reader nach dem Wort außergewöhnlich suchen:

C:\Users\username>cd c:\

c:\>"c:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /A search=außergewöhnlich c:\martinsmarkt.pdf

Was aber passiert ist:

Die Suche wird durchgeführt und sucht nach "auergewhnlich" da die Umlaute verschluckt werden.

Das ä,ö,ü ist keine große Geschichte, da man es einfach durch a,o,u ersetzen kann und der Reader automatisch versteht, dass auch nach Umlauten gesucht werden soll.
Das ß hingegen kann ich nicht durch "ss" oder "s" ersetzen.

Hat irgendjemand Abhilfe zu diesem Problem? Das Adobe Forum kann mir offenbar nicht weiterhelfen.

Ich verstehe dies nicht als Encoding-Problem, falls ich falsch liege, bitte korrigiert mich.

Über all dem liegt bereits eine WPF-Anwendung, die ja aber nicht direkt mit dem Problem in Verbindung steht.