Kioskmodus
Moderator: Moderatoren
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Kioskmodus
Hallo Leute,
ich soll mein Programm so ändern, dass die "dummen" User in der Produktion nichts anderes benutzen dürfen, ausser meines Programmes: also so was änliches wie "Kioskmodus" einstellen.
Weisst jemand, ob so was mit XBase geht?
PS. Die Workstations haben zur Zeit MiniPCs (Lufter- und Plattenlos) mit Windows 98.
ich soll mein Programm so ändern, dass die "dummen" User in der Produktion nichts anderes benutzen dürfen, ausser meines Programmes: also so was änliches wie "Kioskmodus" einstellen.
Weisst jemand, ob so was mit XBase geht?
PS. Die Workstations haben zur Zeit MiniPCs (Lufter- und Plattenlos) mit Windows 98.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Andreas,
bei Windows 98 gibt es doch schon die registry, oder (ist schon sooo lange her... ?
Trage einfach Deine Anwendung als shell ein (statt der explorer. exe) - mehr ist nicht nötig (natürlich mußt Du dann in Deinem Programm auch die Möglichkeit bieten, den PC herunterzufahren -> API-Call).
Viele Grüße,
Martin
bei Windows 98 gibt es doch schon die registry, oder (ist schon sooo lange her... ?
Trage einfach Deine Anwendung als shell ein (statt der explorer. exe) - mehr ist nicht nötig (natürlich mußt Du dann in Deinem Programm auch die Möglichkeit bieten, den PC herunterzufahren -> API-Call).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Andreas.
Ja, das ist GUI, und es ist so gemacht, daß es auch per Touchscreen bedient werden kann - riesige Buttons und 36-Punkt-Schrift. Allerdings handelt es sich dabei um ein einziges Fenster, was aber unproblematisch ist, da man diese Systematik auch auf Child-Windows anwenden kann.
@Martin: Das mit dem Registry-Eintrag für den Explorer dürfte unter XP nicht mehr funzen.
Ja, das ist GUI, und es ist so gemacht, daß es auch per Touchscreen bedient werden kann - riesige Buttons und 36-Punkt-Schrift. Allerdings handelt es sich dabei um ein einziges Fenster, was aber unproblematisch ist, da man diese Systematik auch auf Child-Windows anwenden kann.
@Martin: Das mit dem Registry-Eintrag für den Explorer dürfte unter XP nicht mehr funzen.
Herzlich,
Tom
Tom
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Hallo Tom,Tom hat geschrieben:Hallo, Andreas.
Ja, das ist GUI, und es ist so gemacht, daß es auch per Touchscreen bedient werden kann - riesige Buttons und 36-Punkt-Schrift. Allerdings handelt es sich dabei um ein einziges Fenster, was aber unproblematisch ist, da man diese Systematik auch auf Child-Windows anwenden kann.
bei den Child-Fenstern ist es mir erstmal egal. Ein Touchscreen benutzen wir nicht. Hast du auch die Windows-Leiste damit überdeckt? Wie hast du das Fenster zu sowas gebracht? Kannst es verraten?
Es wäre vielleicht denkbar, beide Variante gleichzeit zu verwenden.
Wie kann man den die Shell-Variante bei Windows XP lösen?
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Sicher, dass es unter XP nicht geht?
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Andreas.
Die Taskleiste sollte so eingestellt sein, daß sie nicht automatisch verschwindet, also gefixt ist. Dann bekommt man über die API-Funktion SystemParametersInfoA die komplette Bildschirmgröße (weil AppDeskTop():CurrentSize() immer nur den freien Workspace zurückliefert):
Aufruf:
(Der Code ist teilweise aus einer Zusatzbibliothek von eXpress++ geklaut; ich hoffe, niemand meiert mich bei Roger an. )
Wenn ich dann Höhe und Breite meines Fensters mit den Rückgabewerten von GetWorkArea() so besetze:
, dann habe ich den kompletten Bildschirm, und auch die Taskleiste ist überdeckt. Jetzt muß ich nur noch dafür sorgen, daß Alt-Tab und Strg-Alt-Entf keine Reaktionen erzeugen, das ist ein bißchen komplizierter, aber auch am besten über die Registry zu erreichen.
Die Taskleiste sollte so eingestellt sein, daß sie nicht automatisch verschwindet, also gefixt ist. Dann bekommt man über die API-Funktion SystemParametersInfoA die komplette Bildschirmgröße (weil AppDeskTop():CurrentSize() immer nur den freien Workspace zurückliefert):
Code: Alles auswählen
DLLFUNCTION SystemParametersInfoA( nAction, nParam1, @Param2, nWinIni ) ;
USING STDCALL FROM USER32.DLL
Code: Alles auswählen
#define SPI_GETWORKAREA 48
#define SPIF_SENDWININICHANGE 0x0002
#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
FUNCTION GetWorkArea()
LOCAL cBuffer := SPACE(16)
LOCAL aRet := ARRAY(4)
SystemParametersInfoA( SPI_GETWORKAREA, 0, @cBuffer, SPIF_SENDCHANGE )
aRet[1] := BIN2U( SUBSTR( cBuffer, 1,4 ))
aRet[2] := BIN2U( SUBSTR( cBuffer, 5,4 ))
aRet[3] := BIN2U( SUBSTR( cBuffer, 9,4 ))
aRet[4] := BIN2U( SUBSTR( cBuffer, 13,4 ))
RETURN aRet
Wenn ich dann Höhe und Breite meines Fensters mit den Rückgabewerten von GetWorkArea() so besetze:
Code: Alles auswählen
aWorkArea := GetWorkArea()
nHeight := aWorkArea[4] - aWorkArea[2]
nWidth := aWorkArea[3] - aWorkArea[1]
Herzlich,
Tom
Tom
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
So,
das ließ mir keine Ruhe - ich habe mal gegoogelt und es geht auch unter 2000 und XP!
Dies sind die Schlüssel in der registry (je nachdem, ob für einen einzelnen User oder Systemweit):
User Key: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
System Key: [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
Value Name: Shell
Data Type: REG_SZ (String Value)
Value Data: Filename of Replacement Shell
Viele Grüße,
Martin
das ließ mir keine Ruhe - ich habe mal gegoogelt und es geht auch unter 2000 und XP!
Dies sind die Schlüssel in der registry (je nachdem, ob für einen einzelnen User oder Systemweit):
User Key: [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
System Key: [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
Value Name: Shell
Data Type: REG_SZ (String Value)
Value Data: Filename of Replacement Shell
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
@Tom
Es funktioniert irgendwie komisch. Ich musste die Höhe um 28 Punkte vergrössern, damit es wirklich das ganze Bildschirm abdeckt.
Aber Trotzdem:
Mit dem Ausschalten von Tiltebar und Setzen unter XBase 1.9 von alwaysOnTop := .t. ist es schon was. Damit bringt ALT-TAB nichts.
@Martin
Ich habe es mit Shell in System.ini unter Win 98 ausprobiert. Funktioniert gut. Unter XP kann ich es erstmal nicht ausprobieren.
Es funktioniert irgendwie komisch. Ich musste die Höhe um 28 Punkte vergrössern, damit es wirklich das ganze Bildschirm abdeckt.
Aber Trotzdem:
Mit dem Ausschalten von Tiltebar und Setzen unter XBase 1.9 von alwaysOnTop := .t. ist es schon was. Damit bringt ALT-TAB nichts.
@Martin
Ich habe es mit Shell in System.ini unter Win 98 ausprobiert. Funktioniert gut. Unter XP kann ich es erstmal nicht ausprobieren.
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Martin,
hast Du es nur gegoogelt, oder auch selbst nachgesehen?
Der User Key ist bei mir nicht so drin. Ich habe dort keinen Eintrag System.
Ich benutze XP
hast Du es nur gegoogelt, oder auch selbst nachgesehen?
Der User Key ist bei mir nicht so drin. Ich habe dort keinen Eintrag System.
Ich benutze XP
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
ich auch und bei mir ist er auch nicht drin.
Aber wo ist das Problem? Erzeuge ihn einfach.
Der unter System gilt für das System allgemein, der unter dem jeweiligen User nur für den entsprechenden User. Wenn dort nichts angegeben ist, dann gelten die Standardwerte (also das unter System - sollte zumindest so sein).
Viele Grüße,
Martin
ich auch und bei mir ist er auch nicht drin.
Aber wo ist das Problem? Erzeuge ihn einfach.
Der unter System gilt für das System allgemein, der unter dem jeweiligen User nur für den entsprechenden User. Wenn dort nichts angegeben ist, dann gelten die Standardwerte (also das unter System - sollte zumindest so sein).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
So,
habe noch mal gegoogelt - und damit geht es:
Registry - wie gehabt, aber jetzt:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon
Dort den shell-Eintrag von explorer.exe in xbase++proggie.exe ändern!
(Natürlich kann man die alte Shell noch über Strg-Alt-Entf -> Anwendungen -> neuer Task -> explorer.exe starten - aber das lässt sich über die entsprechenden policies für den jeweiligen User einfach sperren)
Viele Grüße,
Martin
habe noch mal gegoogelt - und damit geht es:
Registry - wie gehabt, aber jetzt:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon
Dort den shell-Eintrag von explorer.exe in xbase++proggie.exe ändern!
(Natürlich kann man die alte Shell noch über Strg-Alt-Entf -> Anwendungen -> neuer Task -> explorer.exe starten - aber das lässt sich über die entsprechenden policies für den jeweiligen User einfach sperren)
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Kioskmodus
hi,
[Options]
BootMulti=0
BootGUI=1
Network=0
BootWarn=0
BootKeys=0
BootDelay=0
BootMenuDelay=0
Logo=1
in die PROGMAN.INI :
[Restrictions]
NoRun=1
NoClose=1
NoSaveSettings=1
NoFileMenu=1
EditLevel=4
in die SYSTEM.INI :
SHELL=C:\XBASE\myPROGMAN.EXE
und zum Schluss noch den TASKMAN.EXE umbennen/löschen
gruss by OHR
Jimmy
unter Windows 98 in die MSDOS.SYS :andreas hat geschrieben: ...also so was änliches wie "Kioskmodus" einstellen.
Weisst jemand, ob so was mit XBase geht?
PS. Die Workstations haben zur Zeit MiniPCs (Lufter- und Plattenlos) mit Windows 98.
[Options]
BootMulti=0
BootGUI=1
Network=0
BootWarn=0
BootKeys=0
BootDelay=0
BootMenuDelay=0
Logo=1
in die PROGMAN.INI :
[Restrictions]
NoRun=1
NoClose=1
NoSaveSettings=1
NoFileMenu=1
EditLevel=4
in die SYSTEM.INI :
SHELL=C:\XBASE\myPROGMAN.EXE
und zum Schluss noch den TASKMAN.EXE umbennen/löschen
gruss by OHR
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi,
ich habe mich nicht näher mit der Registry beschäftigt, weil ich eh nichts eintrage, was ein Programm betreffen würde. Es ist allgemein bekannt, das die Registry dazu da ist sich aufzublähen und dann das System langsam zu machen. Also lasse ich soweit es geht die Finger davon.
ich habe mich nicht näher mit der Registry beschäftigt, weil ich eh nichts eintrage, was ein Programm betreffen würde. Es ist allgemein bekannt, das die Registry dazu da ist sich aufzublähen und dann das System langsam zu machen. Also lasse ich soweit es geht die Finger davon.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Manfred,
nur keine Panik! Wenn man weiß was man tut dann kann man ruhig an der Registry arbeiten. Und die hier angegebenen Änderungen sind alle "ungefährlich".
Hatte Thomas Braun nicht eine Funktion, um die Registry zu manipulieren? Das könnte man doch ausnutzen für eine Initialisierungs-Routine, um beim ersten Start oder bei Bedarf die notwendigen Änderungen sicher, unabhängig vom User, schreiben zu können.
Jan
nur keine Panik! Wenn man weiß was man tut dann kann man ruhig an der Registry arbeiten. Und die hier angegebenen Änderungen sind alle "ungefährlich".
Hatte Thomas Braun nicht eine Funktion, um die Registry zu manipulieren? Das könnte man doch ausnutzen für eine Initialisierungs-Routine, um beim ersten Start oder bei Bedarf die notwendigen Änderungen sicher, unabhängig vom User, schreiben zu können.
Jan
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Jan,
Du hast Recht. Wenn man weiß was man tut, dann kann man auch Flugzeuge und U-Boote bauen....
Du hast Recht. Wenn man weiß was man tut, dann kann man auch Flugzeuge und U-Boote bauen....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Hallo Tom,Tom hat geschrieben:Hallo, Andreas.
Die Taskleiste sollte so eingestellt sein, daß sie nicht automatisch verschwindet, also gefixt ist. Dann bekommt man über die API-Funktion SystemParametersInfoA die komplette Bildschirmgröße (weil AppDeskTop():CurrentSize() immer nur den freien Workspace zurückliefert):
es ist ganz umgekehrt, wei ich es rausgefunden habe:
- SystemParametersInfoA liefert die Grösse des Freien Workspaces,
- AppDeskTop():CurrentSize() - liefert volle Bildschiermgrösse, wo ich dann die zus. Vergrösserung um 28 Punkte nicht mehr brauche.
Hier ist meine Lösung:
Code: Alles auswählen
IF lKioskModus
aWorkArea := AppDeskTop():CurrentSize()
Hauptfenster:alwaysOnTop := .t.
Hauptfenster:titleBar := .f.
Hauptfenster:minsize := aWorkArea
Hauptfenster:maxsize := aWorkArea
Hauptfenster:configure(,,{0,0}, aWorkArea )
ENDIF