ich muss eine Möglichkeit schaffen Daten einer Desktop-Anwendung an eine App und wieder zurück zu senden. Die App wird voraussichtlich nativ in Java für Android geschrieben.
Nach meiner Recherche wäre ein WCF-REST-Service wohl die einfachste Variante dies zu realisieren. Stimmt das, oder gibt es noch andere/modernere/bessere Möglichkeiten um den Datenaustausch zu realisieren?
Irgendwie war ich beim Testen und Recherchieren auf die Klasse BluetoothLEDevice fixiert, weil ich irgendwo gelesen hatte dass man die auch in die Desktop-Anwendungen einbinden kann.
Jetzt wo ich die Doku nochmal gelesen habe ist klar warum das nicht funktioniert...
ich muss Daten von einem Bluetooth-LE-Gerät in einer Desktop-Anwendung (keine App) empfangen und auswerten. Ich verwende dafür Windows 8.1 und Visual Studio 2015.
Microsoft bietet ab Windows 8 (wohl für Apps) entsprechende APIs an. Die Klassen die ich benötige sind im Namespace Windows.Devices.Bluetooth zu finden.
Mit der Hilfe dieses Threads (Cannot Register Windows.Devices.Bluetooth) konnte ich den Namespace Windows.Devices.* in meinem Projekt verfügbar machen. Die TargetPlatformVersion habe ich auf 8.1 geändert. In dem Namespace enthalten ist auch der Namespace Windows.Devices.Bluetooth. Dieser Namespace enthält die Klasse BluetoothLEDevice, die ich benötige.
Den Namespace Windows.Devices.Bluetooth sehe ich, leider enthält dieser in meinem Projekt aber nicht die Klasse BluetoothLEDevice.
Nach einer halben Ewigkeit googlen - ohne Lösung - hoffe ich, dass Ihr mir evtl. einen Tip geben könnt wie ich in meiner Desktop-Anwendung an die Klasse BluetoothLEDevice komme.
Du könntest dafür auch in das Windows-Ereignisprotokoll schreiben und die Ereignisse entsprechend auswerten. Tools um auf bestimmte Ereignisse bestimmter Dienste zu reagieren gibt es im Netz.
Du musst alle Controls in dem TableLayoutPanel durchlaufen, die Koordinaten der einzelnen Controls auslesen, in eine geordnete Form (sortiert nach row & column) bringen und dann das ganze in das PDF übertragen (genauso wie Du es mit dem GridView machst).
So kannst Du alle Controls in dem TableLayoutPanel durchlaufen und die Koordinaten ermitteln:
Vor ewigen Zeiten habe ich das in einem Taschenrechner mal mit dem ScriptControl von Microsoft gelöst, welches die Berechnung der eingegebenen Daten übernommen hat:
Was denn für ein Array? Du fragtest nach einem Weg "die Zellen einfach mit der Maus auszuwählen, so dass die Datenauswahl genau wie bei "normalen" Excelfunktionen funktioniert."
Genau das macht die Funktion InputBox:
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Visible = true;
Workbook wbook = excelApp.Workbooks.Add();
Range auswahl = excelApp.InputBox("Bitte wählen Sie die Zellen aus",
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 8);
Am besten postest Du etwas mehr Code und schreibst nochmal genau an welcher Stelle Du nicht weiterkommst.
Mich hat ehrlichgesagt gewundert, dass überhaupt irgendwer geantwortet hat. Der Eingangspost ist dank fehlender Formatierung ziemlich schlecht zu lesen.
@rasswet:
Auch wenn Deine Zeit knapp ist wirst Du nicht drumherum kommen Dich mit den Grundlagen von c# zu beschäftigen. Das man von unbekannten Begriffen und Funktionalitäten erschlagen wird ist normal und da muss jeder Anfänger durch.
Poste doch einfach mal Deinen bisherigen Code und formuliere Deine Frage/Aufgabenstellung nochmal klar und deutlich, dann ist sicher auch jemand bereit Dir zu helfen.
Darum jetzt die Frage an euch:
Wie viele Standard-Tools setzt ihr in euren Unternehme ein, und wie viele Tools habt ihr selbst Programmiert (obwohl es nicht eure Kernkompetenz ist), weil ihr meint das es euer Tool noch nicht gibt, ihr es besser machen, oder die kommerzielle Alternative einfach viel zu teuer wäre?
Ich vertrete bei mir im Unternehmen den Standpunkt, dass man das Rad nicht selbst neu erfinden muss wenn es passende Standardsoftware gibt. Warum sollte man beispielsweise ein Ticketsystem selbst entwickeln und warten, wenn es fertige Systeme gibt? Warum sollte man sich neben dem Tagesgeschäft auch noch damit belasten? Ich bleibe lieber bei unserer Kernkompetenz: Entwicklung und Wartung unserer branchenspezifischer Lösungen.
Weiteres Beispiel:
Wir haben einen großen Kunden (mit mehreren tausend Filialen in Deutschland, also entsprechend große IT-Abteilung) der einige Tools von uns entwickeln lässt weil er sicherstellen möchte, dass das Know-How für die Tools nicht verloren geht wenn ein Entwickler seiner IT-Abteilung das Unternehmen verlässt.
Wenn MySQL nicht eingebettet wird und man den MySQL-Connector nicht verwendet, darf man MySQL zusammen mit der eigenen kommerziellen Software kostenlos einsetzen (sprich die Community Edition).
Ganz wichtig ist, dass man den MySQL-Connector von Oracle nicht zum Aufbauen der Datenbankverbindung verwendet (auch nicht mit der DbProviderFactory). Für den MySQL-Connector gibt es alternativen von Drittherstellern, die sogar kostengünstig sind.
Diese Infos habe ich im letzten Jahr vom Oracle-Support erhalten. Ich brauchte diese für ein Projekt bei dem der Kunde auf MySQL bestand.
Ich würde auch List & Label empfehlen, denn List & Label hat zwei ganz große Vorteile:
1.) Deutsche Firma und deutscher Support welcher zügig reagiert. Bei Crystal Reports (SAP) sitzt der Support im Ausland. Ich habe in den letzten Jahren schon mehrere Supportcases bei SAP eröffnen müssen und durchweg schlechte Erfahrungen gemacht. Momentan warten wir mal wieder seit 6 Wochen auf die Bearbeitung eines Cases.
2.) Du musst nur die Entwicklerlizenz (natürlich pro Entwickler) kaufen. Den Designer zum Bearbeiten der Reports kannst Du einfach in Dein Programm integrieren und allen Benutzern kostenlos zur Verfügung stellen.
Hallo Community,
Gibt es eine Möglichkeit sich auslesen zu lassen wer alles das Programm nutzt? Aus dem Netzwerk heraus?
Falls das Programm auf einem Windowsserver liegt kannst Du (oder ein Admin) das einfach auf dem Server direkt nachschauen:
Per RDP auf den Server verbinden -> Systemsteuerung -> Verwaltung -> Computerverwaltung -> Computerverwaltung -> System -> Freigegebene Ordner -> Geöffnete Dateien
Du hast schon den richtigen Ansatz. Du musst, wie LaTino es beschrieben hat, das Click-Event Deiner dynamisch erzeugten Buttons abonnieren und verabeiten.
Das könnte z. B. so aussehen:
private void btnAddButton_Click(object sender, EventArgs e)
{
this.AddButtonWithDir();
}
private void AddButtonWithDir()
{
using (FolderBrowserDialog dialog = new FolderBrowserDialog())
{
DialogResult result = dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
Button dynamicbutton = new Button();
dynamicbutton.Tag = dialog.SelectedPath;
DirectoryInfo dirinfo = new DirectoryInfo(dialog.SelectedPath);
dynamicbutton.Text = dirinfo.Name;
pnlPanel1.Controls.Add(dynamicbutton);
dynamicbutton.Click += dynamicbutton_Click;
}
}
}
private void dynamicbutton_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
if (btn != null && btn.Tag is string)
{
string pfad = (string)btn.Tag;
// mache irgendwas mit dem pfad
}
}