Windows fragen welche Progs. gerade laufen ?????

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

dominik

Betreff: Windows fragen welche Progs. gerade laufen ?????

BeitragSo, Mai 09, 2004 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Altes Problem:

also mein prog soll in eine datei schreiben wie lange es gelaufen ist. das hier ist ein kleiner auschnitt davon. aber jetzt wird in jedem durchlauf eine neue zeile in die datei geschreiben, aber am ende soll ja nur eine einzigste zeile/zahl mit der zeit drinne steht dazu muss ich die vorherigen löschen aber in der online hilfe kann ich dazu keinen befehl finden.
Code: [AUSKLAPPEN]
Repeat
Cls
Text 0, 20, "Bisher vergange Zeit:"
gesamtzeit$ = MilliSecs() - anfangszeit
gesamtzeit$ = Mid$(gesamtzeit$,1,4)
Text 0, 40, "sec. " + gesamtzeit$
WriteLine datei1, gesamtzeit$
Flip
Until KeyDown(1)
  • Zuletzt bearbeitet von dominik am So, Mai 09, 2004 21:55, insgesamt 3-mal bearbeitet

Holzchopf

Meisterpacker

BeitragSo, Mai 09, 2004 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
SeekFile datei1, 0

Dann wird die bestehende Zeile überschrieben...
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

dominik

BeitragSo, Mai 09, 2004 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
aha danke, ich dacht damit kann man die position der datei selber verändern.

Hubsi

BeitragSo, Mai 09, 2004 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein ständiger Dateizugriff während der Laufzeit empfiehlt sich nicht. Besser die Zeit zu Beginn des Programms einmal in eine Variable speichern und beim Beenden das Ergebnis von MilliSecs()-startzeit speichern.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

dominik

BeitragSo, Mai 09, 2004 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Neues Problem:

ja eigentlich schon nur soll das prog in den autostart ordner und möglichst im hintergrund laufen. der benutzer soll des garnet finden des halb wird auch net ordnugsgemäß beendet sondern mittendrinn einfach abgebrochen. darum muss es die daten bei jedem durchlauf speichern.

wird nen kleiner aufpasser für meine computer wenn ich auf abschlussfahrt fahre werd ich den gleich mal testen. des prog schreib auf wann es gestartet wird und wie lang es läut damit ich weiß wann wielang jemand an meinenm pc rum spielt *gg*. mal scheuen wie weit ich des noch ausbauen kann ob man da vll noch irgentwie mit einbauen kann welche progs gestartet wurden. müsste doch vill über den Tastk Manager rauszubekommen sein der legt seine infos doch sicher auch irgentwo in dateien ab.

wenn jemand weiß wie man des mit dem prog im hinter grund laufen lassen macht, oder wie man die laufenden progs rausbekommt wär ich ihm sehr dankbar.

wenns funtz wäre wirklich geil***** Very Happy

dominik

BeitragMo, Mai 10, 2004 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
weiß niemand wo der Task Manager im Windoof ordner ist und wo der seine dateine ablegt?

oder hat sonst jemand nen idee wie des gehen könnte?

D2006

Administrator

BeitragMo, Mai 10, 2004 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
mit der WinAPI kriegst du das hin.

Code von mir (unoptimiert und für B+):
Code: [AUSKLAPPEN]


win = CreateWindow("Test",10,10,500,400,Desktop(),7)
list = CreateListBox(0,0,490,390,win)

hWnd = GetDesktopWindow()

tit$ = get_title$(hWnd)

Dim tasks(500)
ttt=0
hWnd = CallDLL("User32.dll","GetActiveWindow") ; eigene Fenster ID herausfinden
hWnd = GetWindow(hWnd,2) ; nächste task id herausfinden (anhand der alten)

Repeat
t$=get_title$(hWnd) ; Titel zur Task ID herausfinden
If t$<>"" Then
 AddGadgetItem list,t$ ; zur liste hinzufügen
 tasks(ttt)=hWnd ; fenster id merken
 ttt=ttt+1
EndIf
hWnd = GetWindow(hWnd,2) ; nächste task id herausfinden (anhand der alten)
Until hWnd=0

Repeat

WaitEvent(10)
Select EventID()
      Case $401
      If EventSource()=list Then BringWindowToTop( tasks(SelectedGadgetItem(list))):ShowWindow( tasks(SelectedGadgetItem(list)),3 ) ; angeklicktes Fenster fokussieren
      Case $803
      End
End Select         
         
   

Until KeyHit(1)


Function get_title$(hWnd)
   
   style = GetWindowLong(hWnd,-16)
    style = style And ($10000000 Or $800000)
   

   result = GetWindowTextLength(hWnd)+1  ;Titellänge des fensters
   title=CreateBank(result) ;Bank für Pointer erstellen
   
   result = GetWindowText(hWnd,title,result) ;Bank beschreiben lassen
   
   t$=""
   For j=0 To BankSize(title)-1 ;Titel ausgeben
      t$=t$+Chr$(PeekByte(title,j))
   Next
   
   FreeBank title
   If t$<>"" And style = ($10000000 Or $800000) Then Return t$

End Function


user32.decls hat Folgendes geschrieben:

.lib "user32.dll"

GetDesktopWindow%():"GetDesktopWindow"
GetWindowTextLength%(hWnd%):"GetWindowTextLengthA"
GetWindowText%(hWnd%,bank*,cch%):"GetWindowTextA"
GetWindow%(hWnd%,wCmd%):"GetWindow"
GetWindowLong%(hWnd%,wIndx%):"GetWindowLongA"
GetParent%(hWnd%):"GetParent"
BringWindowToTop%(hWnd%):"BringWindowToTop"
IsWindow%(hWnd%):"IsWindow"
IsWindowVisible%(hWnd%):"IsWindowVisible"
CloseWindow%(hWnd%):"CloseWindow"
ShowWindow%(hWnd%,wCmd%):"ShowWindow"


die DECLS hab ich von mir einfach rüberkopiert. Hab kaum Zeit sry

MfG

Markus2

BeitragMo, Mai 10, 2004 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Um heraus zu finden welche Programme gestartet wurden
kannste auch die Dateiendung EXE auf dein Programm umlenken
und das startet dann wieder die richtige EXE mit den Parametern
die es selbst bekommen hat . Nur so ne Idee .
Dafür mußte aber in der Registry rumspielen aber die kann man ja
vorher sichern Wink
Kann man auch mit anderen Dateiendungen machen aber dann
gehts nur beim direkten öffnen mit doppelklick .

dominik

BeitragMo, Mai 10, 2004 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
@ D2006: danke schonmal. hab zwar im mom nur die 2D Demo werd mir aber in der nächsten Zeit (1 - 2 Wochen) die B+ Vollversion kaufen. kann werd ichs mal testen und dir wieder beischeid sagen.

@Markus2: Du meinst man soll anstatt der Exe nur ne verknüpfung auf den desktop legen und die Richtigen Progs alle in einen ordner die dann wieder von BB aufgerufen werden?
Is logisch aber wie kann mir die verknüpfungen übergeben? wie merke ich welches proggestartet wurde? Und ich kann ja nicht nur die Exe dateine verschieben sondern muss ja alle dateien u um Proggehören auch mit verschieben weil sonst nix mehr geht. da is vom prinzip her glaub ihc des andere besser. trotzdem danke.
Außerdem auch unauffälliger Very Happy

PS: erklär des mit dem Parameter übergeben mal.

Markus2

BeitragMo, Mai 10, 2004 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein , anders .
Haste mal nen Blick in die Registry geworfen ? (regedit)
Unter HKEY_CLASSES_ROOT\exefile\shell\open\command
Dort könnte man auch nen BB Programm eintragen was wieder
ein Programm startet .
Jedes mal wenn das BB Prog. gestartet wird kann man ein Log schreiben .
Parameter bekommt man in Blitz in CommandLine$()
In den Verknüpfungen kann man das auch so machen das da
ne EXE vorgeschaltet wird aber bitte kommt jetzt NICHT auf krumme
Gedanken !

Alle Laufenden Programm heraus zu finden geht auch
aber dazu habe ich nur ein Source in VB6 und der nutzt viels APIs .

dominik

BeitragDo, Mai 13, 2004 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
@ D2006: du hast da nen fehler im prog. und zwar rufst du
Code: [AUSKLAPPEN]
hWnd = GetDesktopWindow()

auf aber die function gibts garnet.

genauso wie mit Code: [AUSKLAPPEN]
hWnd = GetWindow(hWnd,2)

D2006

Administrator

BeitragDo, Mai 13, 2004 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
doch die gibt, musst nur die decls in den Userlibs Ordner setzen.
Vorraussetzung hierfür ist allerdings B+ oder B3D.

MfG

dominik

BeitragDo, Mai 13, 2004 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hab ich und ha b die decl auch in des ordner kopiert und User32.dll gennant. funtz aber trotzdem net.
 

Edlothiol

BeitragDo, Mai 13, 2004 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst sie user32.decls nennen Rolling Eyes

dominik

BeitragDo, Mai 13, 2004 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
"function getwindow not found" was heißt des? ich hab BB+ erst seit gestern.

kanns sein das nicht alle bb versionnen die gleichen befehle haebn? oder die befehle andere namen habe.

dominik

BeitragFr, Mai 14, 2004 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
und was heißt invalid blitz 2d bufferhandle ???
 

Dreamora

BeitragFr, Mai 14, 2004 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
was heisst nicht alle BB versionen die gleichen befehle?
Ausser BB+ hat garkeines getwindow

Kann es sein dass du nicht geupdated hast?

und invalid blitz3d bufferhandle -> ich vermute mal du machst ein "setbuffer ..." auf etwas was garnicht existiert

dominik

BeitragFr, Mai 14, 2004 15:00
Antworten mit Zitat
Benutzer-Profile anzeigen
wie kann man setbuffer auf was machen?
ich kenn nur aus B2D
Code: [AUSKLAPPEN]
setbuffer Backbuffer()
repeat
flip
until ...


angeblich soll text ja noch ganznormal wie in B2D functionieren. bei mir tuts des aber net. da kommt immer "invalid B2D Buffer handle"

dominik

BeitragMo, Mai 17, 2004 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
also kann mir hier keinr sagen wie des mit dem text in BB+ funtzt?
ich find die hilfe, bei BB+, auch nich grade sehr aufschlussreich.

acxh und was haißt "invalid blitz 2d bufferhandle"?????

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group