NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: C# Stejný kód, který na jednom PC funguje a na druhém ne. Kde by mohla být chyba?

Aktivity
Avatar
David Hanč
Člen
Avatar
David Hanč:23.11.2016 23:26

Vůbec netuším, kde by mohla být chyba. Mám kód, který na mém počítači nejde, ale na jiném ano. Kód sem dám, ale v něm by chyba být neměla. Po zapnutí by se hráč (kulička) měla po stisknutí klávesy T (žádná klávesa nejde) pohybovat, ale nepohybuje. Na jiném PC ano. Stalo se to někdy někomu nebo tuší, v čem by to mohlo být ?
http://paste.ofcode.org/…XGMvfj85Uj7X

 
Odpovědět
23.11.2016 23:26
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:24.11.2016 0:04

Podle mě bude problém při detekci toho stisknutí.. Tento problém bych asi řešil tím, že bych to zkusil přes win api.. Koukni sem http://www.codeproject.com/…Hooks-in-NET

 
Nahoru Odpovědět
24.11.2016 0:04
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na David Hanč
ostrozan:24.11.2016 10:04

Když tak mně oprav - vypadá to, že spouštíš projekt ve VS a ten projekt byl stvořen někým jiným na jiném počítači.
Pak budeš muset v okně properties v událostech nastavit znova u KeyPress, nebo KeyDown nebo nevím kterou používáš handler na tu metodu "metoda"

 
Nahoru Odpovědět
24.11.2016 10:04
Avatar
David Hanč
Člen
Avatar
Odpovídá na ostrozan
David Hanč:24.11.2016 18:35

Nene, napsal jsem to sám na svém PC, ale nešlo mi to, tak jsem to poslal kamarádovi, který žádnou chybu nenašel a normálně mu to šlo spustit.

 
Nahoru Odpovědět
24.11.2016 18:35
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:24.11.2016 19:07

V první řádě bych zjistil, jestli Keydown event funguje. uprav metoda na následující:

private void metoda(object sender, EventArgs e) {
    MessageBox.Show("Stisknuta klávesa!");
    ...

a spust to. Pokud při mačkání kláves nevyskočí okno, máme problém.

Nahoru Odpovědět
24.11.2016 19:07
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovídá na Adam Ježek
Adam Ježek:24.11.2016 19:10

Ježiši. Teď na to koukam, ty to kontroluješ timerem? Na tohle je eventHandler, který zavolá funkci pokaždé, když zmáčkneš klávesu.
Ve WPF:

this.KeyDown += MainWindow_KeyDown;
//a následná funkce volaná při stisku
 private void MainWindow_KeyDown(object sender, KeyEventArgs e) {
            posX += 40;
            pictureBox1.Refresh();
        }

Teď si z hlavy nepamatuju, jak to přesně je, ale ze sender objectu se dá zjistit, která klávesa to byla. Nicméně tohle je dobrý start, ten Timer z toho vyhoď.

Jestli to děláš ve WF, tak pokud mi paměť slouží dobře, tak je to tam stejně, jen se to možná jmenuje KeyPressed. Ale google vždy poslouží.

Editováno 24.11.2016 19:12
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
24.11.2016 19:10
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
David Hanč
Člen
Avatar
Odpovídá na Adam Ježek
David Hanč:29.11.2016 19:49

Děkuji za tuto i předešlou radu. Pomohla :)

 
Nahoru Odpovědět
29.11.2016 19:49
Avatar
David Hanč
Člen
Avatar
Odpovídá na Adam Ježek
David Hanč:29.11.2016 20:15

Nejspíš sem to správně nepochopil. Kde ten tvůj kód má být teda napsaný ? V metodě ?

 
Nahoru Odpovědět
29.11.2016 20:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.