PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual basic Virtuelle Maus erstellen??



stani
11.03.2010, 19:29
Hallo,ich hab mir mal vorgenommen etwas zu programmieren im Bereich Windows aufbau etc.

Und zwar möchte ich erstmal anfangen sowas wie Windows zu programmieren(natürlich nicht so schwere sachen).
Dazu will ich einfach erstmal ein Fentser erstellen mit Frame und eine Maus.

D.h ich möchte wenn ich den PC starte halt ein Fenster öffnen wo ich eine Maus hab.Dazu mah ich auch später eine Boot Datei.

Wenn ich das hab steigere ich mih etwas und mach was anderes dazu.

Kann mir einer sagen wie ich das mit der Maus hinbekommen soll??

Man braucht denk ich mal eine dll Datei die bei Windows dabei war um die Maus überhaupt zu Kunfigurieren.

Mfg Stani

shedepe
11.03.2010, 21:15
Was meinst du mit Maus....einfach Mauszeiger oder die Abbildung einer Maus die man bewegen kann und sich dabei ein Mauszeiger bewegt ?

Willst du das ganze mit VB oder VB.Net programmieren ?

stani
11.03.2010, 21:24
Es soll sich halt wie bei Windows die Maus bewegen ohne abbildung oder so.Ich programmiere zur Zeit mit Visual Baisc 6.0 Professional.

Es soll ja halt nicht in Windows laufen sondern bei Booten starten.Deshalb ist das ja schwierig.

jo_robot
11.03.2010, 21:28
du willst dein eigenes betriebsystem programmieren?
--> vergiss es :) sorry.

weil wenn du mit VB was machst, erstellst du ja "exe" dateien welche nur unter windows laufen.

Jaecko
11.03.2010, 22:48
Wenn du da wirklich ein eigenes OS bauen willst, musst du im Prinzip die gesamte PC-Hardware selbst abfragen/managen; alle Kommunikationswege etc. Und einfach mal ne .dll einbinden, damit die Maus geht, is nicht.
Schon daher, da .dll eine Windows-"Erfindung" ist.

Wo das ganze etwas einfacher (aber im Endeffekt nicht so effizient/flexibel) geht: nen AVR nehmen, Grafik-LCD hin, Maus hin und da ein "OS" schreiben. Geht durch die Einfachheit der AVRs einfacher als auf ner x86-Maschine.

Ls4
12.03.2010, 00:26
Visual Basic ist dafür auch gänzlich ungeeignet. Da wirst du dich eher an Assembler, c und C++ ranwagen müssen. dll ist auch Windows spezifisch. Boot datei ebenfalls so ne Sache. Ich würde mir den Aufwand nicht geben. Sowas programmiert doch heute keiner mehr

Gruß Tim

Lemonsquash
12.03.2010, 10:16
@Ls4: Wenn sowas heute keiner mehr programmiert, woher kommen die entsprechenden Preboot-Rescue-Tools etc. dann?

@stani: Trotzdem muss auch ich dir sagen: Mit VB? --> Vergiss es!
Was in die ähnliche Richtung geht, und du evtl. eine gewisse Erfolgschance hast: Linux from Scratch mit deinem selbsterstellten Programm dazu im entsprechenden Runlevel.

Aber selbst da gilt: Um Assembler bzw. wenigstens C wirst du nicht rumkommen.

Grüße,
Lemon

Ls4
12.03.2010, 13:07
Hi Lemon,

du hast recht für solche Tools braucht man das tatsächlich noch, aber ich denke da wird auch nciht from the scratch angefangen ;)
Das wäre ja reiner Wahnsinn immer wieder von 0 zu beginnen

Gruß Tim

oberallgeier
12.03.2010, 13:33
Hi stani,

Hallo,ich hab mir mal vorgenommen etwas zu programmieren im Bereich Windows aufbau etc ... ein Fenster öffnen ... eine Maus ...Probier doch mal so etwas Ähnliches wie das mousometer. (http://www.svenbader.de/software_download_mousometer_mausometer.htm) Da schließt Du eine ziemlich nahe Bekanntschaft mit der Maus und kannst Dich schon mal mit den Schnittstellen vertraut machen. Dann vielleicht mal einen Record von einer Festplatte lesen (aber nimm dazu bitte bitte eine physikalisch getrennte - nicht die Standard-Rechner-Platte) - und einen schreiben. Und wenn Du dann noch immer Lust hast - dann weißt Du den weiteren Weg sowieso schon ganz alleine.

.:markus:.
12.03.2010, 13:59
Hallo, was ganz eigenständiges ist mit VB alleine nicht möglich. Du erstest mit VB ja keinen Asembler Code welcher von der MAschiene auuführen ist, sondern du erstellst einen Code welcher erst durch einen Interpreter übersetzt wird( VB Runtime).
Ich will deine Wünsche aber dennoch nicht zunicht machen mit VB ein OS zu schreiben:

Zuerst einmal mach dich schlau wie C# funktioniert VB6 ist mehr als out of date!!!! -> Das ist eine vollständig objektorientierte Sprache. Es gibt zwar auch VB.net ist auh sehr mächtig und absolut nicht mit VB6 zu vergleichen aber für deine Anwendung nicht zu brauchen.

Wenn du die Grundzüge mit dem dotnet Framwork kennen gelernt hast schaust du dir "Singularity" an mit Hilfe dieses Compilers kanst du vollwertige(!) Betriebssysteme schreiben, die dafür benötigte Sprache nennt sich Spec# und ist sehr stark an die Syntax von C# angelehnt bzw. aus dieser endstanden.

stani
12.03.2010, 15:15
Ihr seit echt nett hier...:D

Also ok ich hab jetzt auch verstanden ,dass das ein sehr hocher aufwand währe.Ich hab mir schon gedacht das ihr das schreibt,da ich dan erstmal die ganzen exe,dll ...Daten konfigurieren muss und das geht ja nicht leicht.

Das mit VB muss ich ja irgendwie zustimmen(hab daran garnicht gedacht).

Naja ich werde einfach irgendwas andere probieren und mich einfach steigern.

Eigendlich hab ich mit der Maus angefangen,da das ja irgendwie die grundvoraussetzung ist.

EDIT:Wie funktioniert das eigendlich mit dos??Man kann ja in Windows so ne Dos startdiskette oder cd erstellen,die dan gebootet wird und man hat halt eine arbeisfläche.Die Diskette hab ich auch mal gemacht sind nur 700Kb und ich denk mal nicht,dass da sehr viel dabeiist oder??



Mfg stani

dremler
12.03.2010, 16:18
DOS ist auch ein Betriebssystem....

Wenn du denkst das es nicht so schwer ist dann schreibe uns doch mal wie du anfangen willst?


Sry...aber du erzählst Unsinn...such dir was einfaches.


Das ist etwas so als würde ich sagen, ich brauche ein Programm für eine Rakete. Ich programmiere in VB. Wer kann mir helfen-> Aussichtslos!

Jaecko
12.03.2010, 16:29
Nur anhand der Grösse des Endprodukts kann man nicht sagen, wie viel Aufwand dessen Erstellung ist. Meistens ist es so, dass der Quellcode dazu grösser ist als das, was am Schluss rauskommt.
Und schon allein mal 700kB schreiben dauert schon ne weile.
Annahme: typische alte DOS-Seite mit 62 Zeilen und jeweils 80 Zeichen pro Zeile. Dann sind das da schon mal 145 Seiten komplett(!) vollgeschrieben.

Das zeigt aber dann die Erfahrung. Wenn du mehr mit Programmierung machst, wirst du irgendwann sehen, dass man sogar für nur 2 kB mehrere Tage/Wochen brauchen kann, wenns auf max. Effizienz und Platzausnutzung ankommt.

Rabenauge
12.03.2010, 18:36
Wobei man hinzufügen sollte, dass die "nur" 700 Kb bereits reiner Maschinencode sind!
Vorm Compilieren kann das locker das Zehnfache sein. ;)

Was DOS angeht, besorg dir doch mal eines und schau es dir an, es gibt entsprechende Systeme noch, du wirst erschrecken, wie wenige Funktionen man da hat (ich kenne noch Computer, bei denen an eine Maus nicht einmal zu denken war).
Alleine der Weg von der Mausbewegung auf den Bildschirm ist schon interessant, wenn man sich damit mal befasst, wie das überhaupt funktioniert, und liefert einen guten Einblick in das, was du da vor hast.
Nicht wirklich das, womit man anfangen sollte, schon, auch nur ein gezieltes Zeichen auf nen Bildschirm zu bekommen, ist nicht ganz ohne.

stani
12.03.2010, 20:13
Ich bin gerade etwas frustriert.Hab mir mal dieses Singulary runtergeladen und geguckt.
Das sind schon bei einer Datei 1.2Millionen Zeilen!!!!!(natürlich nicht bei jeder)

Aber alles sowas überhaupt in assembler sprache zu schreiben.

Mir ist sachon bewusst welchen Aufwand derPc hat eine Maus zu bewegen.Das sind zich Schritte und ......

Aber eins versteh ich bei diesem Singulary nicht.Wenn ich das brenne und booten lasse steht oben ABCD und das wars.Aber wenn ich das mit Virtual PC 2007 aufmache(istz auch eine Datei dazu dabei)hab ich so ne Art cmd mit Blauem Hintergrund und der lädt erstma alle daten aber man kann da nicht viel machen.Da steht dan Singulary> und ich denk mal manb kann da befehle eingeben.

Kann man den irgendwie ein boot machwen,dass erstmal nur schrift kommt und dan vielleicht ein button hinzufügen etc.... ??

Währe eine kleine Spielerei mit schrift und sowas.Den mit Singulary weiß ich jetzt nicht wie man ein betriebssystem machen soll.

stani
12.03.2010, 21:20
Ich setz mal gerade alles zurück.Hab ein Tutorial gesehen wie man mit assembler selbst ein kleines betriebssystem erstellen kann> http://www.tutorials.de/forum/programming-tutorials/20706-ein-eigenes-kleines-betriebssystem.html

Da braucht man son programm namens Netwide Assembler (NASM).

Ich hab das auch bei sourefrog gesehen und runtergeladen aber irgendwie geht da einfach eingabeaufforderung an mit C:/Programme/NASM und das wars.

Weiß jemand wie das geht oder wo man das noch sao runterladen kann??

vklaffehn
12.03.2010, 21:29
Moin!
Steht doch alles da : Codedatei ezeugen (... diesen code nennen wir kernel.asm und speichern ihn irgendwo...) und damit : nasm –f bin –o kernel.bin kernel.asm erzeugt man dann binärcode.
Eingabeaufforderung heißt so, weil sie einen auffordert, was einzugeben :-)

MfG
Volker

stani
13.03.2010, 09:32
... hab post gelöscht

stani
13.03.2010, 19:02
So hab mich etwas umgeschaut und etwas Assembler gelernt.Die ganzen Register und ein paar Befehle weiß ich jetzt zwar schon,aber muss auf jedenfall noch weiter lernen.

Jetzt noch meine Frage:

Wie soll man C++ sprache miteinbeziehen.

Ich weiß das der Kernel in Asm geschrieben sein muss aber was dan??Wie kann der PC dan überhaupt eine c++ datei aufrufen,wenn das ein neues Format ist.Ich könnte mir denken,dass man die C++ daten vielleicht auch in .bin Daten umwandeln müsste oder so.
Das verstäh ich gerade nicht(mit dem neuen Format verstehhen können z.b .dll oder .exe....)


Danke Voraus O:)


Mfg stani

Ls4
13.03.2010, 20:30
hi Stani,

ich habe den Eindruck du hast das noch nicht so ganz verstanden.
Die Formate werden in einem Betriebssystem interpretiert. Das kannst du dir vorstellen wie PDFs. Wenn du den Acrobat Reader noch nicht hast kannst du keine PDFs öffnen. Genauso verhält es sich bei C++ Files. Wenn du wirklich von 0 anfängst und einen ASM Kernel hast brauchst du um c++ Files einzubinden erstmal einen C++ Compiler, den du dann auch schreiben musst.

Und nochmal. Du hast kein Windows, also keine .dll und keine .exe das gibt es nicht. die Formate die du verwenden kannst musst du erstmal interpretierbar machen auf deinem System.

Ohne dir zu nahe treten zu wollen: ich denke dein Wissen reicht für so ein Unterfangen noch nicht aus. Du stellst dir die Sache viel zu einfach vor. Das was du möchtest ist alleine kaum zu bewältigen. Auch die ersten Versionen von Windows, die nciht viel mehr konnten, als das was du möchtest wurden nicht alleine sondern von einem Team (mindestens 2 Personen) entwickelt. Und das in Vollzeit

Viele Grüße,

Tim

shedepe
13.03.2010, 20:32
Du hast das ganze noch nicht wirklich verstanden hab ich den Eindruck,
wenn das ganze in maschienen code übesetzt wird, sollte es keinen Unterschied machen ob man zuvor Assembler oder C++ verwendet hat.



damit : nasm –f bin –o kernel.bin kernel.asm erzeugt man dann binärcode.


Die "formate", also die Dateiendungen teilen Windows nur mit um was für eine Art Datei es sich handelt, da du jedoch ein kleins OS selber schreiben willst sind die Dateiendungen vollkommen nebensächlich.

EDIT: Da war Tim doch etwas schneller

stani
13.03.2010, 21:42
ihr versteht das auch jetzt etws falsch.Mir ist schon klar,wie schwer es ist sowas zu machen und ich setll mir das sicherlich nicht leicht vor.Nur ich kann mich nicht so gut ausdrücken...:D

Also das mit den Formaten hab ich garnicht gesagt??!Ich hab gefragt wie man das machen soll mit dem C++ Compiler,also wie man das schaft,dass man auch c++ Daten erstellen kann,da ich persönlich assembleretwas kompliziert finde.

Ls4
14.03.2010, 03:33
das ist aber genau der Punkt. Ich fange mal ganz von vorne an.
Alles was du prorammierst wird irgendwie übersetzt.
Der Computer selbst arbeitet nur mit 1 und 0. Wenn du ein Programm in ASM schreibst wird das auch in 1 und 0 übersetzt. Das erledigt der Compiler, der zusätzlich noch andere Dinge wie Optimierungen tut.
Wenn du für dein BS nun Programme schreibst. Sei es nun in C, Java, Basic oder was auch immer brauchst du einen Compiler, der deinen Code für die Zielplattform kompiliert.
Wenn du zum Beispiel mit Visual C++ für Windows Programme schreibst und du sie kompilierst erhälst du eine .exe die auf Windows ausgeführt werden kann. Du hast sie für Windows kompiliert.
Wenn du mit C++ aber für deine Plattform Programme schreiben willst brauchst du einen Compiler der für deine Zielplattform kompiliert. Den gibt es nicht, also musst du den zuerst schreiben. Prinzipiell ist es aber auch möglich mit C maschinencode zu erstellen. Du brauchst eben eine anderen Compiler. Der Ansatz ist dann aber wieder ein wenig anders. Les dich doch einfach noch ein wenig rein, oder Programmier ein wenig c++ beschäftige dich mit Linken, Compilieren etc. dann wird das sicher etwas klarer

Gruß Tim

stani
14.03.2010, 12:03
Das war auch meine Frage ,wie man z.b ein C++ Compiler schreiben soll.

Oder kann man auch einfach die C++ daten dan in .bin daten umformen,damit man nur reine Binärdaten hat.

Ich versuch mal mit C++ zu progen und das dan durch NASM zu .bin convertieren.

Ich kann leider gerade nichts mehr ausprobieren,da mein anderer PC mit den ganzen Daten durch ein Diskettenlaufwerk nicht mehr funzt und ich muss mir Windows nochmal installieren... ](*,)

Sorry ich hab da ein paar Sachen übersehen...

Mfg Stani

shedepe
14.03.2010, 12:22
Kleiner Vorschlag,
Beschäftige dich erst mal mit C / C++ Programmierung unter Windows, eventuell auch Assembler. Kauf dir ein Buch über die Architektur von Computern, arbeit das durch. Und dann solltest du dir selbst ein Bild drüber machen können.

Ls4
14.03.2010, 13:04
Hi Stani,

du kannst c++ dateien nicht einfach in Binärdateien übersetzen. Dafür brauchst du einen Compiler. Entweder du beginnst mit einem Compiler der wirklich Maschinencode erzeugt und geeignet ist für die Aufgabe, oder du musst den Compiler selber Programmieren.

Wenn du dich dazu informieren möchtest heißt die entsprechende Disziplin Compilerbau. Ich will dich nicht entmutigen, aber in meinem Informatikstudium hatte ich 2 Semester Theoretische Informatik und 2 Semester Technishce Informatik als Grundlage und jeweils 1 Semester in Betriebssysteme und Compilerbau...
Danach ist man weit entfernt davon ein Betriebssystem oder einen COmpiler einfach so runterschreiben zu können.
Allein ein C++ Compiler der entpsprechend flott funktioniert und ordentlichen Funktionsumfang bietet ist ein Projekt für das man gut und gerne 1- mehrere Jahre braucht.
Ich denke nicht, dass dein Vorhaben mit deinen Vorkenntnissen von Erfolg geprägt sein wird. Dafür fehlen, so wie ich das einschätzen kann einfach die Notwendigen Grundlagen. wie shedepe schon schreibt. Um wirklich überhaupt anfangen zu können solltest du extrem fit in C++ und nciht nur in C++ sondern auch in C sein. Assembler sollte man auch mehr als nur ein bisschen beherrschen. Die entsprechende Rechnerarchitektur die du verstanden haben solltest ist die von-Neumann-Architektur.

Ansonsten sehe ich weiterhin keine Chance das als Privatmann auch mit viel Wissen flott durchzuziehen wenn man nicht in Vollzeit daran sitzt.
Die Sache mit dem SIngularity ließt sich doch nicht so schlecht.
Du schreibst zwar, dass dir das zu viel Code ist, aber sei sicher: es wird wird noch viel mehr wenn du von 0 anfängst. Und außerdem um ein vielfaches komplizierter und anspruchsvoller.

Viele Grüße Tim