Uruchomienie programu po naciśnięciu przycisku...

Witam Jestem początkującym programistą i bawię się programem Sharpdevelop Chciałem prosić o pomoc zaawansowanych programistów, wiem że być może jest gdzieś na forum w jakimś poście odpowiedź na moje pytanie ale ja jej nie znalazłem... więc pytam :) Utworzyłem nowy projekt w sharpdevelop w języku c++ --> Aplikacje Windows --> Formatka Aplikacje Windows W tą formatkę wrzuciłem jeden przycisk dajmy na to że tekst tego przycisku to "Uruchom" a nazwa "start" i teraz wygląda to tak: void StartClick(object sender, EventArgs e) { //jaką komendę i co muszę tu wpisać aby uruchomić zewnętrzny program np. Notepad.exe //który wiadomo gdzie się znajduje... c:\Windows\Notepad.exe } Wcześniej kombinowałem z Application.Run(); Ale to nie wypaliło, a w necie znalazłem różne rozwiązania ale jak do tej pory żadne nie zadziałało... ](*,) Błagam pomocy...

Odpowiedzi: 20

Zgniłe Jabco
Dodano
13.01.2010 22:41:11
A znasz może sposób na pobieranie kolorów z dowolnego miejsca na pulpicie i z dowolnego okna?
Cyber Phantom
Dodano
10.12.2009 19:06:17
Zaraz looknę... :mryellow:
Cyber Phantom
Dodano
09.12.2009 21:33:35
[quote]A wiesz może w jaki sposób przypisać przyciski myszy do klawiszy NumPad 1 oraz 2? [/quote] IHNFI - to z angielskiego :P odnośnie kodu - Zamiast richtextboxa spróbuj zwykłego textboxa z tym co napisałem post wcześniej.
AndrewSpec
Dodano
09.12.2009 21:24:20
Udało mi się obejść to, teraz wygląda to tak... public partial class MainForm : Form { string tmp = ""; public MainForm() { InitializeComponent(); } void Timer1Tick(object sender, EventArgs e) { if (tmp != Clipboard.GetText()) { richTextBox1.Text += "\n" + "\n" + Clipboard.GetText(); tmp = Clipboard.GetText(); } } void CmdCopyClick(object sender, EventArgs e) { string copy = richTextBox1.SelectedText; Clipboard.SetText(copy); } I działa jak by nie było... A wiesz może w jaki sposób przypisać przyciski myszy do klawiszy NumPad 1 oraz 2?
Cyber Phantom
Dodano
09.12.2009 21:13:16
OK zrobiłem to. Sprawdziłem w trakcie działania programu jakie znaki w nowej linii ma textbox. Tutaj masz już gotowe rozwiązanie jeżeli nie wpadłeś na to na co miałeś wpaść wcześniej :) [code] textBox1.Text = Clipboard.GetText() + '\r' + '\n' + textBox1.Text; [/code]
AndrewSpec
Dodano
09.12.2009 21:09:44
Na textBox-ie to nie działa... za to doskonale działa na richTextBox-ie... Problem w tym że nie można przekopiować tekstu tak jak to można było robić w textboxie.
Cyber Phantom
Dodano
09.12.2009 21:00:22
Wystarczy pomyśleć... Operator += w tym przypadku jest równoznaczny z: [code] textBox1.Text = textBox1.Text + Clipboard.GetText(); //tutaj celowo pominąłem znak nowej linii żeby to lepiej zobrazować [/code] Więc co musisz zrobić żeby działało odwrotnie? :) btw textbox z jakiegoś powodu ignoruje '\n' chociaż nie powinien, nie mam pojęcia dlaczego tak jest
AndrewSpec
Dodano
09.12.2009 20:55:02
Właśnie udało mi się zanim to przeczytałem :mryellow: Jest tylko problem z tym kodem... Znacznik '\n' zamiast opuścić tekst do następnej linijki wyświetla tylko mały kwadracik i zaraz po nim wkleja tekst ze schowka :/
Cyber Phantom
Dodano
09.12.2009 20:49:19
Musi działać... [URL=http://img15.imageshack.us/i/capturenq.png/][IMG]http://img15.imageshack.us/img15/3531/capturenq.png[/IMG][/URL]
AndrewSpec
Dodano
09.12.2009 20:46:37
Faktycznie dałem to do TimerTick Ale nigdzie indziej nie chciało to działać :/
Cyber Phantom
Dodano
09.12.2009 20:42:17
Ale gdzie wstawiłeś tą zmienną? Bo to ma duże znaczenie....wstaw ją bezpośrednio do klasy formy bo skoro to nie działa to chyba dałeś ją do timera i przy każdym 'tyknięciu' zawartość tej zmiennej jest ustawiana na "tmp" i porównywana ze schowkiem co potem niszczy resztę kodu.
AndrewSpec
Dodano
09.12.2009 20:38:43
No dobra wszystko wiem jak i co po za... zmienną globalną bo gdy robię coś takiego: string tmp = "tmp"; if (tmp != Clipboard.GetText()) { textBox1.Text += '\n' + Clipboard.GetText(); tmp = Clipboard.GetText(); } To cały czas wkleja mi w textbox-a wpis ze schowka #-o
Cyber Phantom
Dodano
09.12.2009 20:11:40
1.tmp jest zmienną globalną typu string, zadeklaruj coś takiego 2. do formy dodaj timer i ustaw jego właściwość Enabled na true 3. do eventu Tick tego timera możesz wkleić ten kod który wcześniej podałem. W sumie tyle.
AndrewSpec
Dodano
09.12.2009 18:34:05
Jakiś czas wcześniej pisałeś mi o metodzie dopisywania wpisów ze schowka do textBox-a... Możesz mi to tak rozpisać żeby to działało? if (tmp != Clipboard.GetText()) { textBox1.Text += '\n' + Clipboard.GetText(); tmp = Clipboard.GetText(); } Bo mnie nie wychodzi :/
Cyber Phantom
Dodano
09.12.2009 15:42:33
Dzięki, dzięki... :mryellow: Robię teraz taki projekcik... nie wiem czy wyjdzie :-k [code]void MainFormKeyDown (object sender, KeyEventArgs e) { int speed = trackBar1.Value; switch (e.KeyCode) { case Keys.NumPad8: //Góra Point pt0 = Cursor.Position; pt0.Y -= speed; Cursor.Position = pt0; break; case Keys.NumPad5: //Dół Point pt1 = Cursor.Position; pt1.Y += speed; Cursor.Position = pt1; break; case Keys.NumPad4: //Lewo Point pt2 = Cursor.Position; pt2.X -= speed; Cursor.Position = pt2; break; case Keys.NumPad6: //Prawo Point pt3 = Cursor.Position; pt3.X += speed; Cursor.Position = pt3; break; case Keys.NumPad1: //Lewy Przycisk Myszy break; case Keys.NumPad2: //Prawy Przycisk Myszy break; [/code] Z kodem na poruszanie sobie poradziłem... jednak nie jest on doskonały :neutral: Pracuję teraz nad akceleracją aby się zwiększała z czasem... ale nie potrafię sprawić aby NumPad 1 oraz 2 były przyciskami myszy... Pomoże ktoś? [-o<
Cyber Phantom
Dodano
08.12.2009 15:23:18
A wie ktoś może w jaki sposób wykonywać proste obliczenia za pomocą textbox-ów np. (liczba)textbox1.text (liczba)textbox2.text (suma)textbox3.text Chodzi mi o wyliczenie czasu potrzebnego na ściągnięcie pliku w oparciu o wielkość pliku oraz prędkość łącza... Da radę to zrobić w miarę prosto?
Cyber Phantom
Dodano
07.12.2009 13:24:41
  • AndrewSpec 07.12.2009 18:39:41

    [quote=Cyber Phantom]A wie ktoś może w jaki sposób wykonywać proste obliczenia za pomocą textbox-ów np. (liczba)textbox1.text (liczba)textbox2.text (suma)textbox3.text Chodzi mi o wyliczenie czasu potrzebnego na ściągnięcie pliku w oparciu o wielkość pliku oraz prędkość łącza... Da radę to zrobić w miarę prosto?[/quote] To tego musisz prze konwertować źródło z textBoxa na wymagany typ (np float), wykonać obliczenia i wyświetlić w innym textBoxie. Każdy textBox ma event OnTextChanged (albo coś w ten deseń, nie mam włączonego VS to nie widzę dokładnie) i tam wystarczy wpisać co się stanie kiedy zawartość textBox1 lub 2 ulegnie zmianie czyli w tym przypadku ma zsumować ich zawartość. [code] textBox3.Text = Convert.ToString(Convert.ToFloat(textBox1.Text) + Convert.ToFloat(textBox2.Text)); [/code] Powinno załatwić sprawę. [quote=Cyber Phantom] Bo podczas operacji zrzutu i kopiowania pliku do katalogu, okno się zawiesza i nie można nic zrobić, a gdybym chciał np. 4GB pliku kopiować no to nie wiadomo kiedy by się kopiowanie skończyło... [/quote] Nie robiłem nigdy czegoś takiego i nie mam pojęcia ;)

Dzięki... Już i tak prawie do tego doszedłem... :mryellow: A znasz może sposób na wyświetlenie ProgressBar-a z kopiowania pliku? Bo podczas operacji zrzutu i kopiowania pliku do katalogu, okno się zawiesza i nie można nic zrobić, a gdybym chciał np. 4GB pliku kopiować no to nie wiadomo kiedy by się kopiowanie skończyło...
Cyber Phantom
Dodano
29.11.2009 19:11:14
Masz rację... teraz działa jak należy :mryellow: Dla chętnych oto całość kodu na strefę zrzutu: [code]void MainFormDragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.Move; } else e.Effect = DragDropEffects.None; } void MainFormDragDrop(object sender, DragEventArgs e) { FolderBrowserEdit = new System.Windows.Forms.FolderBrowserDialog(); if ( FolderBrowserEdit.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string[] pliki = (string[])e.Data.GetData(DataFormats.FileDrop); System.IO.File.Copy(pliki[0], FolderBrowserEdit.SelectedPath + "\\plik.exe"); } }[/code] Zauważyłem że ostatnio ruszyło się towarzystwo na forum... :-k Twoja pomoc dla mnie bardzo ożywiła ruch na forum... Do tego całego projektu zrzutu dla plików Próbowałem dzisiaj cały dzień zrobić tak, aby przed wysyłaniem pobierał format pliku i nazwę i z taką ją wysyłał... Ale zamiast tego wychodzą mi Hieroglify w nazwie :-k #-o
Cyber Phantom
Dodano
28.11.2009 23:32:20
  • AndrewSpec 29.11.2009 14:25:23

    [quote=Cyber Phantom] Próbowałem dzisiaj cały dzień zrobić tak, aby przed wysyłaniem pobierał format pliku i nazwę i z taką ją wysyłał... Ale zamiast tego wychodzą mi Hieroglify w nazwie :-k #-o [/quote] To jest bardzo proste do zrobienia ale żebyś się czegoś nauczył to nie podam Ci całego kodu tylko podpowiem - Każdy string ma w sobie metody do jego obróbki (w tym przypadku chodzi mi o pliki[indeks].Metoda() ). Do wykonania tego zadania potrzebujesz Substring czyli takie coś, co wycina wyznaczony fragment ze stringa na podstawie indeksu pierwszego znaku i długości całego łańcucha jaki ma być wycięty oraz LastIndexOf czyli takie coś, co zwraca indeks ostatniego wystąpienia danego znaku w całym ciągu. Do czego to jest potrzebne? Przed samą nazwą pliku zawsze wystąpi \ dlatego trzeba określić indeks tego znaku. Zatem do dzieła! EDIT: literówka...

Już wiem jak to zrobić, do DragEnter wpisujesz coś takiego: [code] if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.Move; } else e.Effect = DragDropEffects.None; [/code] i dzieki temu w DragDrop powinno działać jak należy :) Pliku nie kopiuje bo w FolderBrowserEdit.SelectedPath masz tylko ścieżkę do katalogu ale bez nazwy pliku więc możesz np dokleić nazwę: [code] FolderBrowserEdit.SelectedPath + "\\plik.exe"; [/code] albo jakimś automatem, który ze źródła wyciągnie samą nazwę. Masz pełną dowolność :)
AndrewSpec
Dodano
28.11.2009 15:28:28
Cyber Phantom
Dodano:
14.11.2009 21:35:58
Komentarzy:
20
Strona 1 / 2