Erstelltes Programm läuft nicht überall

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

Ja was soll man dazu noch sagen. Bei dem Typ wo es die ganze Zeit nicht ging gehts jetzt. Ich schicks dir jetzt.
Da konnte ich dir ja eigtl. nun doch nicht helfen. Ich frage mich warum das so unterschiedlich auf jeden PC ist.

Erstellt habe ich es hier mit PureBasic v5.30 unter Win7 64 bit.

und unter win7 32bit läufts auch.

Dann liegt es definitiv am Überwachen der Tastatur.
Zuletzt geändert von udg am 09.05.2016 21:57, insgesamt 1-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von northstarex »

ich kenne das nur zu genüge... von damals da wo man noch direkt in 6502 oder Z80 gecodet hat... ^^
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

Getestet auf Laptop:
[22:22:06] WhiteWolf: the intro or what you call it optionscreen runs fast then after pressing 2 winua starts amiga emu it takes a long time about a minute that the game starts
[22:22:55] inc @ A5 Recordings: this is normal. glad to know. so it works fine. if you press "1" the game starts in fullscreen.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von Sicro »

Möglicherweise drücken deine Kollegen auf die "falsche" 1- und 2-Taste (Ziffernblock).
Fragst du auch beide Varianten, wie nachfolgend gezeigt, ab?

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenWindow(0, 0, 0, 100, 100, "")
OpenWindowedScreen(WindowID(0), 0, 0, 100, 100)
Repeat
  Event = WindowEvent()
  
  ExamineKeyboard()
  If KeyboardReleased(#PB_Key_1) Or KeyboardReleased(#PB_Key_Pad1)
    Debug "1 wurde gedrückt"
  EndIf
  If KeyboardReleased(#PB_Key_2) Or KeyboardReleased(#PB_Key_Pad2)
    Debug "2 wurde gedrückt"
  EndIf
  
Until Event = #PB_Event_CloseWindow
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

hm. gute Frage

Kurioser Weise gingen auf meinen 2 PCs alle Tastaturabfragen. egal welchen KeyAbfrageCode ich da verwendet habe. Das es solche unterschiede zu anderen PCs macht war mir nicht klar.

ich habe nach sehr langem hin und her nun diesen Code auf PCs zum laufen bekommen wo es vorher anders nicht ging:

Code: Alles auswählen

...
Repeat
  Event = WindowEvent()
  EventGadget = EventGadget()

  ExamineKeyboard()

If GetAsyncKeyState_(#VK_1); Taste "1" 
...
bezieht sich natürlich nur auf die normalen Ziffern.
ich sollte deinen code mal einbinden.

Hast Du das Tool mal bei Dir gestest? Läufts da?
Zuletzt geändert von udg am 13.05.2016 03:25, insgesamt 1-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von northstarex »

jo... das mit den Tastenblock hatte ich hier auch schon im Gedanken, aber das war es auch net.
Mein Tool läuft ja soweit... ich werde das wohl beide Tools kreuzen... Das mit der Font ist zwar weiterhin auch ein Mirakel, aber da gehen andere Möglichkeiten, so wie ich das gesehen hatte.
Bild
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Erstelltes Programm läuft nicht überall

Beitrag von Sicro »

udg hat geschrieben:

Code: Alles auswählen

[...]
ExamineKeyboard()

If GetAsyncKeyState_(#VK_1); Taste "1" 
[...]
Wenn du keine Tastaturabfragen mit den PB-Funktionen durchführst, brauchst du das ExamineKeyboard() nicht mehr.
Deine GetAsyncKeyState-Abfrage ist falsch. Richtig ist:

Code: Alles auswählen

If GetAsyncKeyState_(#VK_1) & 1
[...]
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Erstelltes Programm läuft nicht überall

Beitrag von udg »

Sicro hat geschrieben:
udg hat geschrieben:

Code: Alles auswählen

[...]

Deine GetAsyncKeyState-Abfrage ist falsch. Richtig ist:[code]If GetAsyncKeyState_(#VK_1) & 1
[...]
Danke für den Hinweis. Kurioserweise hat es trotzdem funktioniert auch ohne: "& 1"

aber das Problem ist immer noch nicht vom Tisch.

Bei meinen inzwischen 3 PCs (Laptop noch ausgekramt) funtkioniert es, auch bei anderen Bekannten, bei "northstarex" nicht. Wie soll man da eine Fehlersuche starten?
Habe in die IF Schleife einen Messagerequester reingemacht, damit man auch Visuell sieht: "Ah da wurde Taste 1 oder 2 gedrückt" aber noch nicht mal der MessageRequester wird bei ihm angezeigt.
Bei mir natürlich auf den PCs alles fein wie es soll.

Keine Chance.
So lange alles bei mir läuft kann ich es nicht nachvollziehen.

Schade um die Arbeit :S vor allem kann es ja nicht falsch sein was ich mache, denn es läuft.
Auch nachdem ich Deine Tastaturabfrage eingebaut habe, statt der meinen, lief es bei ihm nicht. Hier alles wunderbar.

Kein Ahnung.
Zuletzt geändert von udg am 13.05.2016 03:25, insgesamt 1-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Erstelltes Programm läuft nicht überall

Beitrag von ts-soft »

udg hat geschrieben:Schade um die Arbeit :S vor allem kann es ja nicht falsch sein was ich mache, denn es läuft.
Schön wenn Deine Tests positiv verlaufen sind, das hat aber nichts damit zu tun. Es muss auch als richtig Dokumentiert sein, ansonsten
sind es mehr oder weniger Zufälle!

Mit Try & Error kann man kein fehlerfreies Programm erstellen, Wissen ist wichtiger!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
silbersurfer
Beiträge: 175
Registriert: 06.07.2014 12:21

Re: Erstelltes Programm läuft nicht überall

Beitrag von silbersurfer »

@udg
Hast Du das Tool mal bei Dir gestest? Läufts da?
http://www.filedropper.com/andererinkeycode
bei mir lauft deine Tastatur abfrage auch nicht, und das hat jetzt nichts mehr mit Direktx zu tun
Ich denke es liegt daran wie Du deine Events verarbeitetest

Als test habe Ich drei Varianten ausprobiert und alle laufen so wie Sie sollen

1.

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenWindow(0, 0, 0, 100, 100, "")
OpenWindowedScreen(WindowID(0), 0, 0, 100, 100)
Repeat
  Event = WaitWindowEvent()
 
  ExamineKeyboard()
  If KeyboardReleased(#PB_Key_1) Or KeyboardReleased(#PB_Key_Pad1)
    Debug "1 wurde gedrückt"
  EndIf
  
  If KeyboardReleased(#PB_Key_2) Or KeyboardReleased(#PB_Key_Pad2)
    Debug "2 wurde gedrückt"
  EndIf
 
Until Event = #PB_Event_CloseWindow
2.

Code: Alles auswählen

InitSprite()
OpenWindow(0, 0, 0, 100, 100, "")
OpenWindowedScreen(WindowID(0), 0, 0, 100, 100)
Repeat
  Event = WaitWindowEvent()

  If GetAsyncKeyState_(#VK_1) & 1 Or GetAsyncKeyState_(#VK_NUMPAD1) & 1
    Debug "1 wurde gedrückt"
  EndIf 
  
  If GetAsyncKeyState_(#VK_2) & 1 Or GetAsyncKeyState_(#VK_NUMPAD2) & 1
    Debug "2 wurde gedrückt"
  EndIf
 
Until Event = #PB_Event_CloseWindow
3.

Code: Alles auswählen

InitSprite()
OpenWindow(0, 0, 0, 100, 100, "")
OpenWindowedScreen(WindowID(0), 0, 0, 100, 100)


AddKeyboardShortcut(0,#PB_Shortcut_1, 1001)
AddKeyboardShortcut(0,#PB_Shortcut_2, 1002)
AddKeyboardShortcut(0,#PB_Shortcut_Pad1, 1003)
AddKeyboardShortcut(0,#PB_Shortcut_Pad2, 1004)

Repeat
  Event = WaitWindowEvent()

  Select event
    Case #PB_Event_Menu
      Select EventMenu()
        Case 1001,1003
           Debug "1 wurde gedrückt"
        Case 1002,1004 
           Debug "2 wurde gedrückt"
      EndSelect    
  EndSelect    
 
Until Event = #PB_Event_CloseWindow
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.70 LTS / Aktuelles Projekt PureCommander
Antworten