Forum: PC-Programmierung Hilfe gesucht - wer schreibt mir ein Windows-Programm?


von schukoplex (Gast)


Lesenswert?

Hallo,

ich baue gerade für einen Freund einen Audio-Umschalter mit 
µC-Steuerung. Nun hat er den Wunsch geäussert, das Teil - ausser mit den 
Tasten am Gerät - auch vom PC (Windows) aus steuern zu können. Nun 
schaffe ich es zwar, eine Steuerung mittels ASCII-Befehlen (z.B. mittels 
einem Terminalprogramm) über eine RS232 zu ermöglichen, er hätte es 
freilich lieber "grafisch". Nur extra dafür mit Windows-Programmierung 
zu beginnen,  erscheint mir etwas zu aufwändig (ich bleibe schon bei den 
µC lieber bei Assembler!).

Daher meine Frage: wer hat Lust und Zeit, mir ein kleines Programm zu 
schreiben? Es sollte im Prinzip nur auf einen Mausklick hin 
ASCII-Befehle zum Gerät senden und die Rückmeldungen vom Gerät 
visualisieren (sinnvollerweise als Dienst im Hintergrund).

LG

von Weinga-Unity (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Hab schnell das gewünschte Programm geschrieben (Kann es selber 
vielleicht mal brauchen).

Das Programm startet als Tray-Icon Anwendung (rechts Unten bei den 
Icons; Ein Icon mit 2 Pfeilen nach oben und nach unten).

Kurz:

Einstellung erfolgt über eine INI-Datei, die man auch vom Programm aus 
bequem editieren kann. Man kann bis zu 10 Befehle definieren, die im 
Tray-Menü angezeigt werden (oder auch nicht, wenn es keinen Befehl dazu 
gibt).

Es gibt eine globale COM-Port Einstellung. Man kann aber auch je Befehl 
abweichende Einstellungen mitgeben. Das mitgeliefert Setting zeigt alle 
Möglichkeiten.

Der mit CMD=xxxx mitgegebene String wird dann über die serielle 
Schnittstelle  gesendet, wobei Leerzeichen am Anfang und am Ende 
weggetrimmt werden.

mfg Weichinger Klaus

von schukoplex (Gast)


Lesenswert?

Hallo Klaus,

ich beneide Dich! Mal eben so schnell ein Windows-Programm schreiben...!
Leider kann ich Dein Programm nicht sofort testen, da ich per Linux 
unterwegs bin; ich werde das aber so bald wie möglich tun. Von Deiner 
Beschreibung her nehme ich allerdings an, dass es im Prinzip schon mal 
das ist, was ich suche.

Würdest Du mir evtl. auch weiterhin bei diesem Projekt helfen? Ich würde 
Dir dann mal eine nähere Beschreibung zukommen lassen!

LG André

von Schnappi (Gast)


Lesenswert?

Mit welcher Entwicklungsumgebung hast du die Windows-Anwendung 
geschrieben?

von Weinga-Unity (Gast)


Lesenswert?

Delphi

von Schnappi (Gast)


Lesenswert?

Kennst du dich auch mit Eclipse (Vers. 3.1) aus? Bin gerade dabei mich 
in die Entwicklungsumgebung und vor allem Java einzuarbeiten.

Es scheint mir so, dass du irgendwie an einer Uni tätig bist. Hast du 
vielleicht eine gute Beschreibung (im pdf-Format) wie man mit Eclipse 
Anwendungen schreibt und vor allem wie man diese unter Windows 
eigenständig zum laufen bringt (Executables)?

von df311 (Gast)


Lesenswert?

java programme ohne runtime zum laufen zu bringen ist schon knifflig. es 
gibt  programme, die aus einer runtime-umgebung und dem programm ein 
executable erzeugen, allerdings sind diese 1. teuer und 2. dauert die 
erstellung ziemlich lang.
da allerdings auf fast jedem pc eine jre (laufzeitumgebung) installiert 
ist bzw. diese einfach bei sun heruntergeladen werden kann dürfte die 
verteilung von programmen kein allzu großes problem darstellen.

zum thema "wie erstellt man anwendungen mit eclipse":
ein java-tutorial besorgen, und dieses durcharbeiten - dateien 
erstellen, speichern, öffnen, ... funktioniert wie in jedem anderen 
editor auch, das programm starten kann man mit dem grünen pfeil 
("ausführen als > java-application") bzw. mit dem komischen käfer 
(debug-modus)

von Andi2doo (Gast)


Lesenswert?

Hallo habe dein Programm getestet ist echt super

Hätte eine Frage suche die Möglichkeit einen Wert der über die RS232 
schnitstelle empfangen wird irgebdwie mit Windows anzuzeigen z.B. 
Temperaturwert am besten in der Taskleiste

Leider kann ich zwar den µc Programmieren aber mit Win bin ich 
überfordert.

also meine Frage kann man dein Prog um diese funktion erweitern oder 
kennt jemand ein Prog das diese schon macht?

Habe jetzt eine Stunde gegoogelt und bin nicht fündig geworden:-(

(Bitte nich mit Hyperterminal das kann ich schon!!!!)

Danke schon im voraus

Andi

von Weinga-Unity (Gast)


Lesenswert?

Probier mal Sharpdevelop http://www.icsharpcode.net/OpenSource/SD/
Da gibts im GUI-Designer auch ein COM-Port Element, wo man relativ 
einfach die serielle Schnittstelle ansprechen kann (vergleichbar mit 
VB).

Wäre doch ein gutes Projekt, um sich in die Windows-Programmierung etwas 
einzuarbeiten.

mfg Weinga-Unity

von The one (Gast)


Lesenswert?

Kann man mit C# bzw. dem Visual Studio auch selbständig laufende 
Anwendungen schreiben oder muss man dann eine Erwiterung des Studios bei 
MS kaufen?

von Thomas B. (yahp) Benutzerseite


Lesenswert?

The one wrote:
> Kann man mit C# bzw. dem Visual Studio auch selbständig laufende
> Anwendungen schreiben oder muss man dann eine Erwiterung des Studios bei
> MS kaufen?

Hu? Das ist doch gerade die Idee. Ja, man kann!

von Weinga-Unity (Gast)


Lesenswert?

Hallo!

Also C#, VB.NET usw. schreiben Progs für die .NET Umgebung (vgl. Java). 
.NET muss halt installiert sein. Die Visual-Studios bzw. SharpDevelop 
sind ja nur IDE's zum Programmieren.

mfg Weinga-Unity

von The one (Gast)


Lesenswert?

Ich fass dass nochmal zusammen: Also was bei Java die VM ist, ist bei C# 
.NET?!

von The one (Gast)


Lesenswert?

Ja das ist korrekt. Habe gerade in Wikipedia nachgeschlagen.

von Andi2doo (Gast)


Lesenswert?

Habs mir gerade runtergeldaden und werds mal testen

Danke für den tip

ansinsten frage ich weiter !!!;-)

Andi

von Andi2doo (Gast)


Lesenswert?

Thema weiterfragen sieht auf den ersten blick sehr einfach aus 
(Baukastensystem)

Komme aber auf die schnelle nicht zurecht damit

versuche noch das mit Microhoft Visual Studio Express!!

aber warscheinlich ist es das gleich in grün!!!!

also wenn mir trotzdem einer helfen will habe mir das ganze ungefähr so 
vorgestellt

Ein Fenster mit einenm Anzeigefeld und einem text darüber z.B. 
Temperatur

es muß nichts ausgerechnet werden sondern nur der RS232 Port mit "input 
string = 10" abgefragt werden und wenn etwas kommt soll der alte wert 
gelöscht werden und der neue wert erscheinen

nochmals Danke

bin auch mit einer hilfe für sharpdevelop zufrieden!!!!

von Karl H. (kbuchegg)


Lesenswert?

Andi2doo wrote:

> es muß nichts ausgerechnet werden sondern nur der RS232 Port mit "input
> string = 10" abgefragt werden und wenn etwas kommt

Da hast du bereits deinen ersten Denkfehler.
So programmiert man nicht unter Windows. Windows ist
eventbasiert. Du fragst dort nicht ab, ob etwas über die
serielle Schnittstelle hereinkommt, sondern die serielle
Schnittstelle (bzw. die Software Komponente durch die
sie in deinem Programm repäsentiert wird) benachrichtigt dein
Programm, dass etwas hereingekommen ist. Dein Programm kann das
dann abholen.
Windows Programmierung ist nun mal Event-gesteuert. Dein Programm
setzt alles auf und wartet dann, wie die Spinne im Netz, auf
Ereignisse die auftreten und behandelt werden wollen. So ein
Ereignis kann sein: Fenster verschoben, Fenster vergrößert,
Maus Klick irgendwo, Taste gedrückt, Taste losgelassen,
aus einer Combobox etwas ausgewählt, etc. etc. Es gibt
Unmengen von Ereignissen, die auftreten können. Glücklicherweise
muss man sich um die meisten nur dann kümmern, wenn dein
Programm darauf speziell reagieren soll. Ansonsten kann man
die ignorieren.

Windows Programme die im wesentlichen stark GUI lastig
sind, lassen sich ausgezeichnet und schnell mit Visual Basic
bzw. mit C# zusammensetzen. Für beides gibt es bei MS gratis
downloads der Entwicklungsumgebungen. Und für beides gibt es
im Web massenhaft Tutorials für die ersten Schritte.

von Andreas O. (andi2doo)


Lesenswert?

Danke für Deine Info leider bringt die mich kein Stück weiter.

Mir wird wohl nichts anderes übrigbleiben als es zu lassen denn 2 
Projekte sind einfach zuviel

Wer noch eine Idee hat her damit ansonsten Danke

von Weinga-Unity (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Kurze Anleitung.
1) Du Startest Sharpdevelop
2) Datei->Neu->Projektmappe, dort Windows-Anwendung auswählen und einen 
Namen unten vergeben
3) Es wird automatisch eine MainForm angelegt. Beim Editor unten 
(Quellcode/Design) klickst du auf Design.
4) Links bei Tools kannst dann bei Components bzw. Windows-Forms die 
serielle Schnittstelle bzw. GUI-Komponenten reinziehen
5) Siehe Screenshot 1: Rechts siehst bei Eigenschaften und Events (Auf 
Blitz-Button Klicken) die Events, die die serielle Schnittstelle 
auslösen kann.
6) Doppelklick auf ReciveEvent... -> die Auszuführende Funktion wird im 
Editor geöffnet. Da schreibst dann rein, was gemacht werden soll, wenn 
Daten reinkommen. (siehe Screenshot 2) Da sieht man auch gleich, was für 
Eigenschaften und Methoden die serielle Komponente anbietet.
7) Genau so gibts Events für ButtonClick, FormLoad, TextChanged, ...

mfg Weinga-Unity

von Weinga-Unity (Gast)


Angehängte Dateien:

Lesenswert?

2. Screenshot

von The one (Gast)


Lesenswert?

Ein Beispiel für so einen "eventListener" (in Java) siehst du im 
folgenden Listing:
1
addWindowListener (new WindowAdapter() {
2
      public void windowClosing (WindowEvent event) {
3
        System.exit(0);
4
      }
5
    });

In diesem Fall wird nur das Windows-Fenster der Anwendung durch drücken 
des Beenden Buttons bendet.

von Andreas O. (andi2doo)


Lesenswert?

Soweit kann ich Dir folgen aber ich muß doch den Inhalt der Info von der 
RS232 in eine Variable bringen

und dann diese in dem Textfenster ausgeben

oder denke ich schon wieder falsch.

sorry habe warscheinlich gerade ein Brett vorm Kopf oder stehe auf der 
Leitung

Habe heute einiges ausprobirt so mit Button und Textfenster 2 werte + 
und - und so weiter das ich mich einwehnig besser auskenne aber die 
RS232 will nicht (oder das Brett ist zu groß  |:-(

von Weinga-Unity (Gast)


Lesenswert?

Allso wennst mittels Button du einen Text vom Textfeld1 in den Textfeld2 
bringen kannst, passt es schon.

Du musst natürlich auch zuerst die RS232 initialiseren (COM-Port, 
BaudRate, Open) und auch Schließen (close). Diese beiden Sachen kannst 
z.B. hinter einem Open und einem Close-Button legen.

Natürlich wird dir jetzt die RS232 nicht den fertigen Temperaturwert 
zurückliefern sonder z.B. ein Zeichen nach dem anderen oder eine ganze 
Zeile bis LineFeed(LF) und/oder CR.

Wegen Inhalt in Variable und so:
kannst ja z.B. sagen: text1.Text=rs232.readChar();  // müsste so gehen

Dann zeigt dir das Textfeld immer den letzten empfangenen Buchstaben an.

von Didi (Gast)


Lesenswert?

Ich habe ein Alix1c Board mit WinXPproSp2enu drauf.
Dieses Board hat einen Winbond W83627HF super I/O controller,
bei dem einige GPIOs ueber eine Sockelleiste zugaenglich sind.

Ich habe schon etwas mit C# und ASP.NET 2 programmiert, aber
nur Webinterfaces. Noch nie etwas Richtung Hardware.

Bis jetzt habe ich vergeblich gesucht, wie ich mit C#
diese GPIOs programmieren kann.
Ich geh mal davon aus, dass ich direkt auf eine
Address-Location gehen muss zum Lesen und Schreiben,
hab aber absolut keine Idee, wie ich sowas mit C# mache.

Bin dankbar fuer jeden schlauen Tip!    -Didi

von Maik G. (speedy)


Lesenswert?

Weinga-Unity! meld dich ma bitte via Mail bei mir! würd gern ma wissen, 
wie du das Systray geschreiben hast! überleg schon wegen ner erweiterung 
via lan und/oder USB!^^

Mail: DJ_SPEEDCAT@yahoo.de

von Ich bin Begeistert (Gast)


Lesenswert?

Lieber  Weinga-Unity

Ich würde gerne in einer anderen sache mit die Kontakt aufnehmen. Falls 
du lust hast ein Prog zu machen wäre es nett wenn dich mal melden würdet

Mail: d-p-b-d@freenet.de

Gruß

von Chris K. (chrisk86)


Lesenswert?

Der Thread ist ziemlich alt. Ich glaube nicht, dass er noch mitliest ;)

Aber wenn du willst, kannst du dich auch bei mir melden. Vielleicht kann 
ich helfen. Bin in Delphi, aber auch in C# ziemlich fit...

Chris

Edit:
Melden kann man sich bei mir via PN...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

df311 schrieb:
> java programme ohne runtime zum laufen zu bringen ist schon knifflig. es
> gibt  programme, die aus einer runtime-umgebung und dem programm ein
> executable erzeugen, allerdings sind diese 1. teuer und 2. dauert die
> erstellung ziemlich lang.
> da allerdings auf fast jedem pc eine jre (laufzeitumgebung) installiert
> ist bzw. diese einfach bei sun heruntergeladen werden kann dürfte die
> verteilung von programmen kein allzu großes problem darstellen.
JSmooth bietet einen Exewrapper der bei Bedarf automatisch eine JRE 
installiert.
Habe ich hier auch eingesezt: Beitrag "Grafikkonverter Tool für AVR/Mikrocontroller (BMP2C, BMP2ASM, BMP2BASCOM)"

von Philipp (Gast)


Lesenswert?

Hallo,
ich hätte da ne Frage.Ich interresiere mich schon lange für Computer und 
hab meine Pcs auch selber gebaut aber ich würde jetzt gerne lernen 
Programme zu schreiben!Könnte mir vielleicht jemand mal helfen zu zeigen 
wie das geht?
Ich würde mich sehr freuen :D
Denn bis jetzt hab ich nur erfahrung in Sachen "html"(hab meine website 
selber geschrieben)


Danke schon im Vorraus!!!!:D

von Karl H. (kbuchegg)


Lesenswert?

Philipp schrieb:

> Programme zu schreiben!Könnte mir vielleicht jemand mal helfen zu zeigen
> wie das geht?

Was du auf jeden Fall brauchst (egal welche Programmiersprache):
vernünftige Literatur.

Und damit meine ich ein richtiges Buch, keinen Online-Kurs.

Die meisten Einführungsbücher in eine Programmiersprache sind wie ein 
Lehrgang aufgebaut. Beginnend bei 0 wird die Sprache systematisch 
entwickelt und aufgebaut. Hüte dich vor Büchern mit 'Komplettes C in 21 
Tagen" oder "Nachschlagewerk" im Titel. Ein Nachschlagewerk ist super, 
wenn du eine Sprache schon kannst. Es gibt immer irgendwelche Details, 
die man nachschlagen muss, kein Mensch kann sich alles merken. Aber für 
den Anfang ist das nichts. Zu viele (am Anfang irrelevante) Details 
verwirren nur.

Nur mit Literatur bewaffnet sollte es im Prinzip natürlich möglich sein, 
zumindest die Grundlagen eigenständig zu erlernen. Oftmals besser, als 
wenn dir das ein menschlicher Lehrer erzählt. Der Grund: Die Bücher 
werden immer wieder und wieder Korrektur gelesen und auf sinnvollen 
Kapitelaufbau und Vollständigkeit (soweit in diesem Kapitel sinnvoll) 
durchgesehen und redigiert ehe sie in den Druck gehen. Ein menschlicher 
Lehrer tendiert dazu, gerade die Anfangsstunden mehr aus dem Stegreif zu 
halten und vergisst dabei üblicherweise vieles (ist mir auch nicht 
anders gegangen).

Allerdings kommt immer irgendwann der Punkt, an dem Dinge im Buch unklar 
sind, weitere Erläuterungen notwendig sind oder man denselben 
Sachverhalt auch mal anders erzählt benötigt um ihn zu verstehen. Da 
sind dann menschliche Gegenüber nicht zu schlagen, weil sie gezielt auf 
deine Probleme eingehen und sich an deinen Wissenstand anpassen können.

Und von da an wird sich deine Literatursammlung zunächst mal explosiv 
vermehren: wahrscheinlich werden dann Bücher über Datenstrukturen, 
Basisalgorithmen, GUI-Design und dergleichen mehr dazukommen, die als 
Gute-Nacht-Lektüre herhalten müssen. Aber bis du soweit bist, ist schon 
der erste Winter vorbei und dann können wir uns gerne nochmal darüber 
unterhalten, wies weiter gehen soll.

Wenn du am PC unter Windows programmierst, rate ich dir zunächst zu 
(schluck, hätte nie gedacht das mal zu sagen) C#.
Damit sind graphische Oberflächen schnell gemacht und das Framework ist 
umfangreich genug, dass du das nächste Jahr genügend zu erforschen hast. 
Wenn du lieber in die C oder C++ Schiene gehst, solltest du fürs erste 
einen Bogen um graphische Oberflächen machen. Diese sind nicht 
Sprachbestandteil und bei jedem System anders. Macht aber nichts, nur 
mit den Mitteln der Standardein/ausgabe bewaffnet, kann man immer noch 
jede Menge interessante Projekte abwickeln, ehe man anfängt dem Ganzen 
eine GUI überzustülpen.

von Mark B. (markbrandis)


Lesenswert?

Karl heinz Buchegger schrieb:
> Damit sind graphische Oberflächen schnell gemacht und das Framework ist
> umfangreich genug, dass du das nächste Jahr genügend zu erforschen hast.

Das gilt ebenso für C++ und Qt. :)

von Philipp (Gast)


Lesenswert?

Kannst du mir trotzdem vielleicht eine kleine einführung in das 
programmieren geben!!!!Ich würde mich sehr freuen!

Danke schon im vorraus:D

von zwieblum (Gast)


Lesenswert?

das ist süß. hast du's schon mal mit einem buch probiert?

von Karl H. (kbuchegg)


Lesenswert?

Philipp schrieb:
> Kannst du mir trotzdem vielleicht eine kleine einführung in das
> programmieren geben!!!!Ich würde mich sehr freuen!

Nein, kann ich nicht.
Ich tipp mir hier nämlich nicht über 200 Seiten die Finger blutig

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.