Windowsprogrammierung

  • Ich schäme(:lachen3) mich fast die folgende Frage zu stellen:


    In welcher Programmiersprache werden heutzutage Windows-Anwendungen entwickelt?


    Ich muss ein kleines Tool basteln.
    Folgende Anforderungen bestehen an das Tool:
    [list=1]
    [*]Auswertung von Parametern
    [*]Aufruf weiterer Anwendungen
    [*]Lese-/Schreibzugriff auf die Festplatte unter Berücksichtigung von NTFS-Berechtigungen
    [*]Lese-/Schreibzugriff auf die Registry (Auslesen/Speichern der eigenen Konfiguration)
    [*]Exception-Handling
    [*]Kompilierung zu EXE-Datei
    [/list=1]


    Das sind eigentlich alles keine großen Sachen.
    Exception-Handling will ich nur verwenden um Berechtigungsprobleme sinnvoll abzufangen.
    Nur der Zugriff auf die Registry ist, wie ich finde die größere Schwierigkeit.
    Zugriff auf's Dateisystem wird auch nur benötigt um Konfigurationsdateien aus dem Anwendungsverzeichnis des jeweiligen Users auszulesen.

  • Zitat

    Originally posted by Thovan
    In welcher Programmiersprache werden heutzutage Windows-Anwendungen entwickelt?


    Such dir eine aus :) Was magst du denn am liebsten?


    Ich bevorzuge Pascal, am liebsten Delphi (evtl. gibts irgendwo ne alte "für Privat Free" Version, die Quelltexte und Datenbankmodule brauchst du ja nicht). Alles schön einfach und die GUI Sachen erledigen sich von selber.
    Und das fertige Programm ist ne simple EXE die ohne Runtimekram auf jeder Windows Version läuft.


    Und deine Wünsche lassen sich mit den normalen Windows API Aufrufen erledigen. Ist nichts besonderes dabei. Sollte mit jeder Entwicklungsumgebung einfach zu erledigen sein.


    cu

  • streamdev-Server: ASRock J3160, MLD 5.5 testing, Mystique SaTiX-S2 V3 Dual + DuoFlex S2, 8GB, 60GB System,

    streamdev-Client 1: NUC6CAYS (Intel HD Graphics 500), MLD 5.5 testing, One For All URC 7960,

    streamdev-Client 2: NUC6CAYH (Intel HD Graphics 500), MLD 5.5 testing, One For All URC 7960,

    Media-Server: Synology DS215j

    AV-Geräte: Hisense H65MEC5550, Dali Zensor 5 AX, Teufel S6000SW


  • mein Favorit wäre AutoIt
    recht leicht erlernbare Scriptsprache (vergleichbar mit VBS)
    umsonst, als EXE geht auch


    Damit werden zwar keine Wimdowsanwendungen im üblichen Sinne mit programmiert, aber für das was Du damit vorhast reicht es sicher....


    Für alles was ich damit vorhabe hat es bis dato immer gereicht... :ghost

    Software: gen2vdr V3 ( Beta8 ) / gen2vdr V2
    Hardware: Intel 5200EE - 5N7A-VM - Scythe Shuriken - BeQuiet(Netzteil) - X10-USB Remote
    SMT 7020S & P3@900 - Testsystem mit FF und X10-USB Remote
    Links für Neueinsteiger


    "Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

    Einmal editiert, zuletzt von Mr.N!ce ()

  • Zitat

    Original von Keine_Ahnung
    Ich bevorzuge Pascal, am liebsten Delphi (evtl. gibts irgendwo ne alte "für Privat Free" Version, die Quelltexte und Datenbankmodule brauchst du ja nicht). Alles schön einfach und die GUI Sachen erledigen sich von selber.
    Und das fertige Programm ist ne simple EXE die ohne Runtimekram auf jeder Windows Version läuft.


    Wie wärs mit dem frei verfügbaren TurboDelphi..

  • Moin!


    Richtig Spaß bringt es mit C#, Voraussetzung ist dann nur ein installiertes .Net-Framework (ist bei Vista z.B. standardmäßig dabei). Bzgl. Oberfläche ist WPF (ab .Net 3, besser 3.5SP1) einfach genial. Visual Studio Express gibt's auch kostenlos für C# und ist eine wirklich gute IDE.


    Wenn du sonst noch nie Windows-GUI-Programmierung gemacht hast, halte dich von C/C++ und Win32-API/MFC fern, das willst du wirklich nicht mehr lernen...


    Letztendlich hängt es aber auch stark von deinen Vorkenntnissen und Ehrgeiz ab, Neues zu lernen. :)


    mini.

  • also ich selbst nutze C++ im zusammenhang mit GTKmm aufgrund der Lizenzen halt perfekt für mich und auch sonst sehr schöne Technologie, da man das Layout mittels XML-Datei aufbauen & steuern kann.


    Aber für 1-2-3 Anwendungen ohne komplexe, große Oberflächen würde ich auch



    C# (.NET-Framework erforderlich)
    Delphi (Standalone)
    VB6 (VB6-Runtime häufig erforderlich)


    oder eben auf die "Konsolensprachen"


    wie
    Pascal, VBS, C / C++



    JAVA würde ich eher nicht empfehlen, obwohl es zwar alle Bedingungen erfüllt ist die Gui sehr schwer zu realisieren und auch der Zugriff auf Systemressourcen ist nicht so einfach wie bei den anderen Sprachen.

    HD-VDR (Wohnzimmer)
    HW: Zotac IONITX-F-E, 160GB SSD 2.5" & 320GB HDD 2,5", 2x1GB, Cine S2
    SW: yaVDR 0.6
    VDR:
    HW: SMT-7020S, 160GB Seagate 2.5"
    SW: zen2mms 1.1


  • Zitat

    Originally posted by mini73
    Wenn du sonst noch nie Windows-GUI-Programmierung gemacht hast, halte dich von C/C++ und Win32-API/MFC fern, das willst du wirklich nicht mehr lernen...


    Kommt ja auf die GUI an. Für nen Eingabefeld und zwei Buttons kommt man da gut hin. Muss ja nicht immer gleich alles mit animierten Buttons und Skins sein ;)
    Und oft auch gerne vergessen, Kommandozeilen Programme gehen auch unter Windows ;)


    Dann aber lieber mit Pascal als mit C++ ;)


    cu

  • Zitat

    Original von jensa
    JAVA würde ich eher nicht empfehlen, obwohl es zwar alle Bedingungen erfüllt ist die Gui sehr schwer zu realisieren und auch der Zugriff auf Systemressourcen ist nicht so einfach wie bei den anderen Sprachen.


    letzteres Ja, ist aber wesentlich besser geworden. Gerade unter Windows gibt es inzwischen sehr gute und einfache Schnittstellen. Aber zum ersten Punkt muss ich kontra geben. Java ist richtig, richtig einfach für GUIs. Mit NetBeans sogar noch einfacher. Der Quelltext ist sogar relativ "sinnvoll". Da hab ich mit Delphi damals ganz andere Erfahrungen gemacht.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Zitat

    Original von methodus
    Da hab ich mit Delphi damals ganz andere Erfahrungen gemacht.


    ??? <- Was gibt es da nicht zu verstehen. Die Oberfläche ist denkbar einfach und die Hilfe-Funktion ist die Beste die ich je gesehn hab.

  • Nunja der Code ist sehr verständlich,
    jedoch die Organisation der Elemente auf einer Oberfläche gestaltet sich im Vergleich zu C# oder Delphi schwerer.


    Jedoch halt deutlich schwieriger als die "reinen" Windowssprachen (C#, Delphi, VB)

    HD-VDR (Wohnzimmer)
    HW: Zotac IONITX-F-E, 160GB SSD 2.5" & 320GB HDD 2,5", 2x1GB, Cine S2
    SW: yaVDR 0.6
    VDR:
    HW: SMT-7020S, 160GB Seagate 2.5"
    SW: zen2mms 1.1


  • Zitat

    Original von wirbel


    ??? <- Was gibt es da nicht zu verstehen. Die Oberfläche ist denkbar einfach und die Hilfe-Funktion ist die Beste die ich je gesehn hab.


    Den Code, den Delphi (V. 6, danach hab ich nicht weiter mit Delphi gearbeitet... bin zu sehr C-Syntax gewohnt) ausgespuckt hat. Viele Dinge waren einfach nur aufgebläht und unstrukturiert.


    Zum GUIs erstellen ist Delphi schon schön, habe ich ja auch gar nicht bezweifelt und die Sache mit dem Code kann inzwischen wesentlich besser sein. Aber naja, man fährt sich in seinen Sprachen irgendwie fest.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Scheint mir eher ein *Verständnisproblem*, aber sicher jeder bevorzugt bestimmte Sprachen. :)

  • Moin!


    Zitat

    Original von Keine_Ahnung


    Kommt ja auf die GUI an. Für nen Eingabefeld und zwei Buttons kommt man da gut hin. Muss ja nicht immer gleich alles mit animierten Buttons und Skins sein ;)


    Aber wehe, der Benutzer benutzt z.B. große Schriftarten oder komische Auflösungen oder oder oder... .Net3/3.5 mit XAML und ein bisschen C# im "Code Behind" ist um Längen lesbarer.
    Ich schlag mich jetzt schon seit über 10 Jahren mit der Win32-API herum, und es macht einem immer mal wieder Striche durch die Rechnung, weil hier mal ein Handle verloren geht oder da ein Thread etwas macht, was er eigentlich nicht machen können dürfte, es aber nicht abgefangen wird usw...
    Mit WPF kriegst du vorher schon eine Exception, den Dispatcher kann man wunderbar mit kleinen anonymen Methoden füttern, das Design von Oberflächen kann man ohne Größenangaben in einer XML-Datei (XAML) erledigen und es passt immer. Dann noch ein paar Datenfelder über DataBinding verknüpft und das war's. Und noch tausend andere Dinge, die einem das .Net-Framework leichter macht (z.B. Threadpool, Process usw.).


    Wenn man neu anfängt zu lernen, sollte man auch auf was aktuellem starten, Win32-API ist einfach out.


    Aber nichts für ungut, es kommt letztendlich sowieso auf das Problem an, lösen kann man es in jeder Sprache/Umgebung. ;)


    Nur mal eine Idee: Was soll das Programm können? Jeder, der will, kann dann ja mit seiner Lieblingsumgebung eine Lösung erarbeiten und dann vergleichen wir einfach mal bzw. Thovan sagt dann, was ihm am Besten gefällt. ;)


    mini.

  • Zitat

    Original von mini73
    Nur mal eine Idee: Was soll das Programm können? Jeder, der will, kann dann ja mit seiner Lieblingsumgebung eine Lösung erarbeiten und dann vergleichen wir einfach mal bzw. Thovan sagt dann, was ihm am Besten gefällt. ;)


    Nix da!


    Ich mache meine Arbeit selbst! :unsch


    Trotzdem eine nette Idee.


    Im Prinzip ist das Programm ziemlich easy:
    Es soll nur den 1. Parameter seine Aufrufes auswerten und dann ein bestimtes Programm starten in Abhängigkeit von dessen Wert.


    Ich habe das heute per 10-Zeiler in Java erledigt, aber als JAR-Datei lässt sich das nicht so wie benötigt in Windows einbinden und als EXE-Datei kompilieren - Dagegen streubt sich bei mir alles.


    Der 10-Zeiler ist noch sehr Ausbau-bedürftig: Konfigurationsdateien/Registry einlesen, eine GUI zur Konfiguration, Profile für verschiedene Parameter-Möglichkeiten - das "Drumherum" wird umfangreicher, als die eigentliche Aufgabe des Programms.


    Und das "Drumherum" ist auch mein Grund dafür, da Ganze nicht einfach mit einem Script erledigen zu lassen.


    Ich Danke euch für eure Tipps - ich schau mit erstmal eure Vorschläge an, aber ich denke es wird in Richtung "C irgendwas" gehen.

  • das was Du vorhast hoert sich ja noch recht überschaubar an.
    Warum ich AutoIt erwähnt hatte:
    leichter Zugriff diverse Systeminfos, Registry Ini Filemanagment DB usw.
    Ich muss zugeben das ich eigentlich nicht so der Programmierer bin,
    besser mich aber regelmässig und ich nutze ich um an meinen Arbeitsplatz
    Tests zu automatisieren(nicht nur durchklicken sondern mit Feedback :) )
    Es kann durchaus mehr als man ihm zutraut, besonders
    nett finde ich den humanen Installationsumfang < 50 MB incl. Tools für GUI-Design
    und die Möglichkeit eigenständige Exe Files zu erzeugen (wo man zur Not noch dlls ini etc einpacken kann)


    Wie gesagt ist nix für High Performance aber extrem funktionell. :lol2
    Hier mal die Hilfe kannst ja mal überfliegen ob das geht was Du Dir vorstellst.

    Software: gen2vdr V3 ( Beta8 ) / gen2vdr V2
    Hardware: Intel 5200EE - 5N7A-VM - Scythe Shuriken - BeQuiet(Netzteil) - X10-USB Remote
    SMT 7020S & P3@900 - Testsystem mit FF und X10-USB Remote
    Links für Neueinsteiger


    "Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

    Einmal editiert, zuletzt von Mr.N!ce ()

  • Zitat

    Lese-/Schreibzugriff auf die Festplatte unter Berücksichtigung von NTFS-Berechtigungen


    Kann AutoIt NTFS-Berechtigungen auslesen?

    streamdev-Server: ASRock J3160, MLD 5.5 testing, Mystique SaTiX-S2 V3 Dual + DuoFlex S2, 8GB, 60GB System,

    streamdev-Client 1: NUC6CAYS (Intel HD Graphics 500), MLD 5.5 testing, One For All URC 7960,

    streamdev-Client 2: NUC6CAYH (Intel HD Graphics 500), MLD 5.5 testing, One For All URC 7960,

    Media-Server: Synology DS215j

    AV-Geräte: Hisense H65MEC5550, Dali Zensor 5 AX, Teufel S6000SW


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!