| |
|
|
GDL | Hallo,
ich stehe mit meinem Modellbahnprogramm noch vor 2 Hürden die ich nicht hinbekomme.
Wenn nach der Installation das Proggi durch das Installprogramm aufgerufen wird, soll die Verknüpfung von Startmenue.exe in den Startordner. Hier ist nun das Problem dess Erstellen einer registrierten Verknüpfung und wie heist der Startup Ordner unter Windows in allen WinVersionen.
Und ein letztes mir unüberwindbares Anwenderhinderniss ist die Umschaltung der Bildschirmauflösung, die wirklich keine Hardwaredefekte erzeugt.
Es ist echt nicht zu glauben, vor was für Probleme man gestellt wird, wenn ein Proggi von der breiten Masse nutzbar sein soll.
Servus Georg |
|
|
| |
|
|
|
| zu 1. Welches Installprogramm nutzt Du denn? Dort einfach in der Doku blättern. zu 2. Hardwaredefekte? [...] |
|
|
| |
|
|
|
| Nachtrag: Die absolut einfachste Variante zum Anlegen eines Links ist eine .url Datei - im Format einer INI. Natürlich nur wenn Du nicht gleich einen Shortcut (.lnk) anlegen willst.
Schreibe in eine Datei namens meinProgramm.url folgende Zeilen:
[InternetShortcut] URL=c:meinprogrammprogramm.exe
und schon ist es ein brauchbarer Link (wenn auch mit falschem Icon) |
|
|
| |
|
|
|
GDL | @iF
Danke für die Hinweise. Werde den Code von deinem Link testen.
Nach langen Suchen, fand ich den unter Snippet gesaugten Code wieder, der mir vor langer Zeit bei einem anderen Prog Schwierigkeiten machte. KompilierenMarkierenSeparieren $H Windows.ph
$H Structs.ph
$H Messages.ph
$H Commctrl.ph
$H Shellapi.ph
Declare Bbpsettings$,Hsettings$,Wsettings$,X&
Declare Dev#,Static&,Cb&,Dummy$,Ok&,Change&,Ende&,Gc&,F$
Proc Getcurrentsettings
Georg Declare Retstring$,C$,Whx$,Why$,Co$
C$ = Str$(~Getdevicecaps(~Getdc(0),~Bitspixel))
Whx$ = Str$(~Getdevicecaps(~Getdc(0),~Horzres))
Why$ = Str$(~Getdevicecaps(~Getdc(0),~Vertres))
If C$ = 4
Co$ = 16 Farben
Elseif C$ = 8
Co$ = 256 Farben
Elseif C$ = 16
Co$ = HightColor
Elseif C$ = 32
Co$ = TrueColor
Endif
Retstring$ = Whx$ + * + Why$ + - + Co$
Return Retstring$
Endproc
Proc Enumdisplay
Declare F$,Dd$
While ~Enumdisplaysettings(0,X&,Dev#)
If Long(Dev#,104) = 4
F$ = 16 Farben
Elseif Long(Dev#,104) = 8
F$ = 256 Farben
Elseif Long(Dev#,104) = 16
F$ = HightColor
Elseif Long(Dev#,104) = 32
F$ = TrueColor
Endif
Bbpsettings$ = Bbpsettings$ + Str$(Long(Dev#,104))+|
Hsettings$ = Hsettings$ + Str$(Long(Dev#,108))+|
Wsettings$ = Wsettings$ + Str$(Long(Dev#,112))+|
Dd$ = Str$(Long(Dev#,108)) + * + Str$(Long(Dev#,112)) + - + F$
Addchoice(Cb&,Dd$)
Inc X&
Wend
Endproc
Windowstyle 20
Windowtitle Display-Changer
Window 10,10-250,150
Cls ~Getsyscolor(~Color_btnface)
Setdialogfont ~Getstockobject(~Default_gui_font)
Dummy$ = Getcurrentsettings()
Static& = Create(TEXT,%Hwnd,Current Settings : +Dummy$,10,10,300,24)
Cb& = ~Createwindowex($200,COMBOBOX,,~Ws_child | ~Ws_visible | ~Cbs_dropdown | ~Ws_vscroll ,10,40,220,300,%Hwnd,100,%Hinstance,0)
Sendmessage(Cb&,~Wm_setfont,~Getstockobject(~Default_gui_font),1)
Ok& = Create(BUTTON,%Hwnd,Ende,10,70,80,24)
Change& = Create(BUTTON,%Hwnd,Change,150,70,80,24)
Dim Dev#,156
Enumdisplay()
Sendmessage(Cb&,~Cb_setcursel,Sendmessage(Cb&,~Cb_findstring,0,Addr(Dummy$)),0)
Whilenot Ende&
Waitinput
If Getfocus(Change&)
Setfocus(%Hwnd)
Gc& = Sendmessage(Cb&,~Cb_getcursel,0,0)
Long Dev#,40 = ~Dm_pelsheight | ~Dm_pelswidth | ~Dm_bitsperpel
Long Dev#,104 = Val(Substr$(Bbpsettings$,Gc&+1,|))
Long Dev#,108 = Val(Substr$(Hsettings$,Gc&+1,|))
Long Dev#,112 = Val(Substr$(Wsettings$,Gc&+1,|))
If Gettext$(Cb&) <> Mid$(Gettext$(Static&),20,100)
If ~Changedisplaysettings(Dev#,~Cds_updateregistry) = ~Disp_change_restart
If Long(Dev#,104) = 4
F$ = 16 Farben
Elseif Long(Dev#,104) = 8
F$ = 256 Farben
Elseif Long(Dev#,104) = 16
F$ = HightColor
Elseif Long(Dev#,104) = 32
F$ = TrueColor
Endif
Settext Static&,Current Settings : + Str$(Long(Dev#,108)) + * + Str$(Long(Dev#,112)) + - + F$
External(setupapi.dll,SetupPromptReboot,0,0,0)
Else
Settext Static&,Current Settings : +Getcurrentsettings()
Endif
Else
Messagebox(Auflösung muss nicht geändert werden,Meldung,0)
Endif
Elseif Getfocus(Ok&)
Dispose Dev#
Ende& = 1
Endif
Endwhile
End
Mit diesem Code ging es bei 3 meiner Rechner gut, beim 4ten gabs dann bunte Streifen am Monitor und ein helles Pfeifen.So schnell habe ich dann noch nie den Resetknopf gedrückt.
Zu dem Shortcut: Dies heist, wenn mein Proggi nen Schortcut beim ersten Aufruf anlegt, wird mein Proggi dann anschliessend bei jedem Windowsstart automatisch gestartet?
Servus Georg |
|
|
| |
|
|
|
Jörg Sellmeyer | Hallo Georg, Damit funktioniert es zumindest von W95 bis XP: KompilierenMarkierenSeparieren Vista könnte ja mal einfach jemand bestätigen oder verneinen, dann wissen wir wieder mehr. Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 20.08.2007 ▲ |
|
|
|
|
Rolf Koch | Unter Vista bekomme ich korrekt den Eintrag zurückgeliefert. |
|
|
| |
|
|
|
| @Georg: Wirst halt ne Auflösung eingestellt haben die der Monitor nicht brachte - gleich kaputt sollte aber auch ein Monitor davon nicht gehen - sei denn es ist ne Uraltkiste die aber genauso gut an Altersschwäche dahinvegetieren könnte. Einen alten Monitor würde ich eh nicht zu sehr mit Auflösungsänderungen quälen. |
|
|
| |
|
|
|
Frank Abbing | |
|
| |
|
|
|
GDL | Hallo iF,
ich weis ja nicht welche Grafikkarten, bzw. Monitore an den Kisten hängen.Und das es ältere bis Steinzeitkisten sind ;davon kann man ausgehen. Man müsste irgendwie ermitteln können was die Kiste kann.
Servus Georg |
|
|
| |
|
|
|
| Die Proc Enumdisplay tut genau dies. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
GDL | Irgendwie kann es aber nicht gehen, da mein Code ja alle Möglichkeiten anscheinend abfrägt und trotzdem pfeifts mit Streifenbild. Stelle ich aber die Schrift von grosse Schriften auf kleine Schriften und die Zeilenfrequenz manuell um gehts. Irgendwie haut das ganze nicht hin.
Servus Georg |
|
|
| |
|
|