Man könnte natürlich auch die Path-UDF bemühen, wäre aber zu einfach. ![]()
Beiträge von BugFix
-
-
Du kannst mal versuchen, statt des absoluten Programmpfades das Makro für "Programme" zu verwenden.
-
1. Wie bekomme ich einen Screenshot vom Desktop Hintergrund - ohne Icons und Fenster usw.
Wozu davon einen Screenshot? Das ist dein Wallpaper. Der Speicherort steht in der Registry:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General -- WallpaperSource
Das ist auch das gerade aktuelle Wallpaper wenn du die Slideshow-Funktion nutzt.Pffff.. der Andy war einen Hauch schneller.

-
Da solltest du dich mal bei den AutoIt Developern beschweren, für die ist ein CD/DVD kein REMOVABLE Device wie aus der Hilfe zu ersehen.
Ausnahmsweise sind die Devs da unschuldig.
Das ist Windows-intern so geregelt: https://msdn.microsoft.com/de-de/library/…(v=vs.110).aspx -
Was aber ist "TraceLines"?
Öffne mal SciTE, drück "Strg+1" und schau bei der Tools-Auswahl. Dort findest du die integrierten Tools zum Einbinden in dein "Extras"-Menü von SciTE. -
Telefonanlagen mit in den Kommunikationsweg eintzubinden
Ja, werde da ruhig konkret und führe Bsp.-Hardware an. Z.B. sowas: http://www.amazon.de/Alarm-Alarmmod…r/dp/B008JTQQDE -
und es ist ein DVD Laufwerk vorhanden
tz, tz - und seit wann ist das ein Wechseldatenträger? Das ist dann Typ "CDROM". Wenn du nicht weißt, was es für ein Laufwerk ist, frage nach "ALL". Mein Skript funktioniert auch damit, weil es dann mit allen Laufwerken auf Existenz der Datei prüft. -
Was bedeutet z.B. GUIRegisterMsg( 0x0400, "___TCP_OnAccept" ). Also was bringt hier die 0x0400
Da kannst du in der Hilfe unter <Appendix> <Windows Message Codes> nachsehen.
0x0400 = WM_USER -
Also ich kann leider nichts konkretes zu deinem Problem beitragen. Das Problem ist, dass ich das komplett im Kopf durchspielen muss ohne das System zu kennen und ohne testen zu können. Und erst die Doku lesen ist mir dann jetzt doch etwas to much.
-
Mir ist auf Anhieb niemand bekannt, der das Tool nutzt. Im Allgemeinen kommt man sehr gut mit DebugToConsole/MsgBox oder TraceLines aus.
Ich habe das Tool vor langer Zeit mal probiert, war aber gar nicht von begeistert. Für kleine Skripte braucht man es nicht und bei großen Skripten kannst du Kaffe trinken gehen bis es läuft. -
Achso, hatte ich vergessen zu schreiben: Du musst zu den Systempfaden den Pfad der Filterinstallation hinzufügen.
Sollte genau wie bei mir dann: "C:\Program Files\Adobe\Adobe PDF iFilter 11 for 64-bit platforms\bin" sein.
Um den Pfad hinzuzufügen:
- <Win + Pause>
- "Erweiterte Systemeinstellungen"
- "Umgebungsvariablen" >> "Systemvariablen" >> "Path" markieren >> "Bearbeiten"
- hinter letztem Eintrag ein ';' und dann den Pfad
- <OK>
- NeustartWenn du jetzt einen Begriff im Suchfeld des Dateiexplorers eingibst, wird danach auch im Text von PDF gesucht und die Ergebnisse wie gewohnt aufgelistet.
-
"Label" ist kein Ordner, sondern die Bezeichnung des Datenträgers.
[autoit]
Gehe besser so vor, da ist es egal, wie der Datenträger heisst.$aDrives = DriveGetDrive("REMOVABLE")
[/autoit][autoit][/autoit][autoit]
$sPath = "Handbuch/1_deckbl.pdf"
$fPathExists = FalseFor $i = 1 To $aDrives[0]
[/autoit][autoit][/autoit][autoit]
$sPathExecute = $aDrives[$i] & '\' & $sPath
If FileExists($sPathExecute) Then
$fPathExists = True
ExitLoop
EndIf
NextIf $fPathExists Then
[/autoit]
ShellExecute($sPathExecute)
Else
MsgBox(0, 'FEHLER', 'Datei nicht auf Datenträger vorhanden.')
EndIf -
Hast du ein 32-bit oder 64-bit System?
Bei einem 32-bit System reicht es doch den Adobe Reader zu installieren, dann wird automatisch der PDF-Filter für die Datei-Indizierung installiert. Und dann kannst du ganz normal mit der Suche im Explorer Text innerhalb von PDF suchen.
Für 64-bit Systeme war dieser Filter nicht in Adobe enthalten. Er wurde später als einzelnes Paket nachgereicht. Das hat übrigens den Vorteil, dass man Adobe-Reader nicht installieren muss, es reicht der Filter. Download: PDFFilter64Setup.msi
Ich mag den Adobe-Reader gar nicht. Hunderte MB groß, schneckenlangsam. Ich nehme PDF-XChange Viewer. Der bietet auch intern die Suche in mehreren Dateien an. -
Das was ich brauche ist dann eher doch was in Richtung GUIRegisterMsg()
Es geht ja darum wenn eine Antwort von Tinkerforge mittels TCP kommt, das dann eine Funktion ausgelöst wird.
Nun, genau das ist eigentlich der Sinn von Callbacks.
Du denkst an ein Polling (AdlibRegister oder Ähnliches) um zu Prüfen, ob eine Nachricht vorhanden ist. Das übernimmt doch die Callback-Funktion. Das Auslöseereignis zum Start der Funktion ist, dass Nachrichten auflaufen.
Mal grob skizziert:
- Endlosschleife
- TCPRecv wartet auf Input
- wird etwas empfangen, sammelst du den Eingang (falls mehr als das ausgehandelte Limit übertragen wird)
- zum Ende der aktuellen Sendung liefert TCPRecv @error
- jetzt kannst du die empfangenen Daten zur Verarbeitung an die Callback-Funktion übergeben
- hinterher kehrst du aus dieser Funktion wieder in die Endlosschleife zurück um auf weitere Sendungen zu wartenProbier mal, ob du das hinbekommst. Danach hast du das Prinzip auch sicher verstanden und nie wieder Probleme damit

EDIT: Oops, jetzt hatte ich deinen Spoiler gar nicht gelesen - ich schaue es mir nochmal genauer an.
-
Ein bischen Überlegung hilft.

Du gehst alle Laufwerke durch.
Du kannst den Typ des angesteckten Laufwerks abfragen.
Dann prüfst du ob auf Drive X, Typ Wechseldatenträger, die Datei "xy.pdf" existiert. Wenn ja: ShellExecute -
aber da fehlt der Link.
Häää? - Du sollst dich bitte mal bemühen einen Blick in die AutoIt-Hilfe zu diesen Begriffen zu werfen. :wacko: -
Bei solch einfach strukturierten Dateien kannst du durchaus auch auf anderem Weg abfragen:
[autoit]#include <String.au3>
[/autoit][autoit][/autoit][autoit]$itemID = 1016930891607
[/autoit][autoit][/autoit][autoit]
$aMatch = _StringBetween($s, '<row itemID="' & $itemID & '"', '</row>')
$aSet = _StringBetween($aMatch[0], '<rowset', '</rowset>')
$aResult = StringRegExp($aSet[0], 'typeID="(\d+)" quantity="(\d+)"', 3)For $i = 0 To UBound($aResult) -2 Step 2
[/autoit]
ConsoleWrite('ID' & @TAB & $aResult[$i] & @TAB & 'Menge' & @TAB & $aResult[$i+1] & @CRLF)
Next -
Machst du mit "Negative Look Behind"
Pattern: '(?<!\\)"'
-
nach einem 5stelligen Text suchen
Ich vermute, du meinst 5 stelligem Dateinamen?
Mit FileListToArray kannst du dir die PDF eines Ordners in ein Array lesen.
Das Array gehst du in einer Schleife durch und prüfst ob der Dateiname mit deiner Bedingung übereinstimmt.
Bei Übereinstimmung kannst du gleich mit ShellExecuteWait die PDF öffnen (nicht vergessen den Pfad mit anzugeben, das Array enthält nur die Dateinamen). Erst wenn du die PDF geschlossen hast, wird dann nach der nächsten gesucht.
Du kannst dir natürlich auch alle gefundenen Treffer in die Konsole ausgeben lassen oder in eine Datei schreiben - was immer du willst. -
Da ich berufsbedingt in Kliniken fast zu Hause bin
kann ich YaeroxXO's Bedenken bezüglich des Datentransfers beruhigen: In Kliniken existiert ein gut gesichertes Intranet, Patientendaten gelangen da nicht nach aussen.
Somit bin ich auch schon beim nächsten Punkt: Die Krankenhaus-Management-Systeme, die ich bisher kennengelernt habe, bieten die gewünschte Funktionalität i.A. bereits. Man muss sie nur aktivieren. Ggfl. einfach mal beim Softwareanbieter nachfragen.[OT]
Hast du schon nen Job für die Zeit, wenn du fertig bist? Bei uns ist noch Bedarf im Aussendienst. (leider verliefen meine Anfragen an den Medizintechnik Fachschulen bisher immer im Sande, ihr Jungs scheint wohl schon zu Studienbeginn mit Traumjobs versorgt zu werden, dass keiner auf Anfragen aus der mittelständischen Wirtschaft reagiert.
)
[/OT]