Anfänger: Programm steht wenn der Desktop gesperrt wird

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

woifferl

Betreff: Anfänger: Programm steht wenn der Desktop gesperrt wird

BeitragMo, Okt 05, 2009 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,

ich habe keine Ahnung von Blitz3D und soll ein Programm von einem Kollegen (hat die Firma verlassen) weiterführen bzw. ändern.
Das Programm ist relativ simple: eine Laufschrift soll über den Desktop (Taskplaner) laufen und der User muss es mit einem Rechtsklick wegklicken.
Das Problem ist aber wenn die Laufschrift aktiviert wird wenn der Desktop gesperrt ist, passiert nichts und das Programm hängt in der Taskleiste!

Könnt Ihr mir helfen????

Hier die Source:

Code: [AUSKLAPPEN]
InitDesktopBuffer()

SeedRnd MilliSecs()

Type txt
   Field txt$
End Type

file=ReadFile("text.txt")  ;Datei zeilenweise Einlesen
While Not Eof(file)
   txt.txt=New txt
   txt\txt=ReadLine(file)
   count=count+1
Wend
CloseFile file

Local SM_CXFIXEDFRAME=7
Local SM_CYFIXEDFRAME=8
Local SM_CYCAPTION=4
Local SM_CXSCREEN=0
Local SM_CYSCREEN=1
hWnd_width=GetSystemMetrics(SM_CXSCREEN) ;Bildschirmbreite
hWnd_height=GetSystemMetrics(SM_CYSCREEN) ;Bildschirmhöhe

Graphics hWnd_width,hWnd_height,0,2 ;Größe einstellen

pos_x=-GetSystemMetrics(SM_CXFIXEDFRAME)
pos_y=-GetSystemMetrics(SM_CYFIXEDFRAME)-GetSystemMetrics(SM_CYCAPTION)
SetWindowPos(SystemProperty("ApphWnd"),0,pos_x,pos_y,0,0,5) ;Fenster oben links entfernen <>

img=CreateImage(GraphicsWidth(),GraphicsHeight()) ;Funktion von Desktopbuffer
GrabDesktop(ImageBuffer(img),0,0,GraphicsWidth(),GraphicsHeight(),0,0)

timer=CreateTimer(60)

ShowWindow(SystemProperty("ApphWnd"),1)

j=Rand(1,count) ;Text durch Zufall auswählen
For txt=Each txt
   i=i+1
   If i=j Then Exit
Next

x=GraphicsWidth()

;SetFont LoadFont(<Schriftart>,<Größe>,<Status>)
SetFont LoadFont("Arial",90,1)
;Color R,G,B
Color 255,0,0

SetBuffer BackBuffer()
Repeat
   WaitTimer(timer)
   Cls
   
   
   DrawImage img,0,0 ;Hintergrund beibehalten
   
   Text x,GraphicsHeight()/2,txt\txt,0,1  ;Text "laufen" lassen
   
   x=x-3
   If x<-StringWidth(txt\txt) Then x=GraphicsWidth() ;repeat Text
   
   Flip 0
Until MouseHit(2)
End




Vielen Dank im Voraus.

cu
Woifferl
 

woifferl

Betreff: hat jemand eine Idee???

BeitragMo, Okt 12, 2009 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
was passiert wenn der Desktop gesperrt, dass das Programm hängt

ozzi789

BeitragMo, Okt 12, 2009 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Programm wird angehalten
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

woifferl

BeitragMo, Okt 12, 2009 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
kann man es automatisch weiterlaufen oder fortsetzen lassen????

DANKE

Midimaster

BeitragDi, Okt 13, 2009 2:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich werde nicht ganz schlau aus Deiner Beschreibung.

wie meinst Du das mit "...wenn die Laufschrift aktiviert wird wenn der Desktop gesperrt ist..." Meinst Du mit "gesperrt" ,das der Bildschirmschon drin ist, oder die Anmeldung zu sehen ist? Aber wie willst Du in diesem Moment irgendetwas aktivieren können? Das versteht ich nicht.

Beschreib mal genau, was das Programm machen soll, wenn ein User klickt. Worauf soll es dann anschließend warten und wie oder wann wieder loslegen?
 

woifferl

BeitragDi, Okt 13, 2009 7:23
Antworten mit Zitat
Benutzer-Profile anzeigen
zu einer bestimmten Zeit (Taskplaner) wird am Desktop eine Laufschrift (Hinweis) gestartet. Das Problem ist wenn nun der PC gesperrt ist/wird (sprich er steht am Anmeldeschirm - Bildschirmschoner mit Kennwortschutz) hängt das Programm ==> man sieht nur in der Taskliste das Programm und sonst nirgends. Es popt auch nicht mehr hoch wenn man es anklickt!
 

Eisbaer

BeitragDi, Okt 13, 2009 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, für mich hat das Programm keinen logischen Sinn,

Denke eher das du ein Fun Programm bastelst, mit dem man Kollegen nerfen oder Erschrecken kann.

Daher keine Hilfe zu deinem Problem.
Eigene Webseite:

http://www.eisbaer-studios.de
 

woifferl

BeitragMi, Okt 14, 2009 7:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Eisbaer,
das ist kein Fun-Prog .. das wird bei uns in der Firma so gewünscht .. es soll einfach auf ein bestimmtes Sicherheitsbewusstsein anstossen!
Habe ich noch eine Chance das in Blitzbasic zu realisieren!

Danke

cu
Woifferl

ozzi789

BeitragMi, Okt 14, 2009 13:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du mal ne Exe uploaden? Sodass ich es rekonstruieren kann

Bringen wir schon hin Wink


Edit:
InitDesktopBuffer()
wird ja in der DLL von ChristianK verwendet, diese braucht Writepixel /Readpixel, und darum kann es sein das ein Buffer verloren (beim Abmelden) geht und das Programm so abkakt.

Benütz BufferDirty auf deinen Imagebuffer


mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

woifferl

BeitragDo, Okt 15, 2009 7:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ozzi789,

habe dir eine Mail geschickt bzw. hier der Link:

http://www.gmx.de/mc/oZpAq5Tyb...wc4HwJNrpw

Zugangscode: basic

Danke

cu
Woifferl

ozzi789

BeitragDo, Okt 15, 2009 9:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Da ich nicht weis auch welcher dll getsystemmetrics usw kommt, habe ich befehle ersetzt, habe zwar nicht den Rand weggebracht, aber mit

Code: [AUSKLAPPEN]
BufferDirty(BackBuffer())

SetBuffer BackBuffer()

hat das Programm funktioniert, probiers mal bei dir und lass mich wissen Wink


achja und nächstesmal mach dir nicht so viel arbeit und uploade es im Archiev vom BBP oder unter www.file-upload.net o.ä Smile

mfg
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

woifferl

BeitragDo, Okt 15, 2009 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ozzi789,

da ich mehr oder weniger "NULL" Anhnung habe, könntest du mir deinen Code zukommen lassen bzw. brauche ich ja für die Funktion BufferDirty auch wieder eine DLL ==> Funktion nicht gefunden!!!!!

In Verwendung habe ich die Desktopbuffer.dll und die user32.dll

Hast du eine Ahnung ob das Programm auch unter NT 4.0 läuft?


VIELEN DANK

cu
Woifferl

ozzi789

BeitragDo, Okt 15, 2009 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Bufferdirty ist in B3D enthalten, eventuell musst du auf Blitzbasic.com das neuste Update runterladen!
Das Programm sollte unter NT 4.0 laufen, probier es am besten einfach mal


mfg ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

BladeRunner

Moderator

BeitragDo, Okt 15, 2009 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Bufferdirty ist erst in den neusten Blitzversionen enthalten, Du wirst also updaten müssen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group