Ich entschied sich für eine Arbeits um mein Problem lösen würde und später studieren weiter ...
Es ist so frustrierend zu sehen, wie einfach es in AutoIt und Phantom Testfahrer gemacht wird (das ist, was ich am Ende hoch mit).
Im folgenden finden Sie unter: www.houseofmyrrh.org/AnExplanation.htm wenn Admin will, es löschen ...
Im Grunde hatte ich eine „Tonne“ von Festplatten, die .dtb Dateien enthalten sind, 542 bis genau sein.
Ich weiß, das ist einfach und ich habe nur den Kern dessen, was ich getan habe, zu lösen. Diese Dateien sind in einem proprietären Format, das die Verwendung von Teradynes Software erfordert, soweit ich weiß, gibt es keine Skripting- oder Befehlszeilenmethode für die Verwendung dieser Software.
Ich bin nicht sicher, ob ich alle diese Baugruppen landete mit, aber hier ist die Liste:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Runtime.InteropServices;
Meine erste Aufgabe, alle .dtb Dateien auf der CD zu finden war und sie auf einem Arbeits Ordner, Ordnerstruktur intakt. (Da es doppelte Dateinamen in verschiedenen Ordnern gab) habe ich Beyond Compare verwendet.
Dieser Ordner wird zum Basisordner, lblDrive.txt. Es beinhaltet eigentlich den ganzen Weg.
string[] rawInput = Directory.GetFiles(lblDrive.Text, "*.dtb*", SearchOption.AllDirectories);
// lblDTBFilesFound
int dtbCount = 0;
foreach (string s in rawInput)
{
lstFilesList.Items.Add(s.ToString());
dtbCount++;
}
lblDTBFilesFound.Text = "DTB Files Found: " + dtbCount.ToString();
// erstellen Sie eine Liste aller .dtb Dateien einschließlich ihrer vollständigen Pfad. // Dateianzahl kann später verwendet werden, um sicherzustellen, dass Sie alle Dateien konvertiert haben.
Iterate durch die Liste Kopieren jeder Eintrag wrkString, die zu einer .dtb Datei
Clipboard.SetText(wrkString.Substring(0, q));
// kopieren alles, aber die
Process.Start(wrkString); // launching proprietary software
int maybe = 0;
while (maybe < 25)
{
System.Threading.Thread.Sleep(10);
maybe++;
}
Dateierweiterung in die Zwischenablage ein vollständiger Pfad ist
// geben Sie eine kleine Verzögerung ein, um sicherzustellen, dass die App gestartet wurde
var process = Process.Start("DTB_Extraction.psc");
process.WaitForExit();
• Startet phantom.exe (.psc p reviously mit Phantom.exe assoziiert manuell) • Skript führt die Maus bewegt und klickt auf die Datei zu konvertieren • Skript eine Paste aus der Zwischenablage in die Datei speichern enthält • Erzwingt eine Wartezeit, bis das Skript
if(File.Exists(wrkString.Substring(0, q) + ".csv"))
{
// Do nothing
}
else
{
lstDisp.Items.Add(wrkString.Substring(0, q) + ".csv");
}
beendet // im seltenen Fall ist etwas schief gelaufen und die CSV wurde nicht
erstellt
string[] rawInput = Directory.GetFiles(lblDrive.Text, "*.csv*", SearchOption.AllDirectories);
int dtbCount = 0;
foreach (string s in rawInput)
{
lstFilesList.Items.Add(s.ToString());
dtbCount++;
}
lblCSVFilesFound.Text = "CSV Files Found: " + dtbCount.ToString();
// erstellen sie eine Liste aller CSV-Dateien im Arbeitsverzeichnis, so kann ich durch sie durchlaufen und die Daten extrahieren ich brauchte. // Dateianzahl kann verglichen werden.
Haben Sie etwas müde? –
https://stackoverflow.com/questions/37912261/how-to-get-handle-to-a-textbox-control-inside-window-in-window-10 keine Antwort, aber kann helfen, sehen Sie sich auch Tools gebaut dafür. Ich habe das schon vor Jahren gemacht (wie vor 15 Jahren) und ich habe nur Skript-Tools benutzt, die Texte an Windows etc. senden. –
@Jack Miller Ja, ich habe Stunden damit verbracht, verschiedene Code-Beispiele auszuprobieren ... Die meisten haben sich mit dem Sprechen beschäftigt zu anderen Formen in Ihrem eigenen Projekt. – user3279899