Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

10/31/2012 10:58 she was 8#601
Quote:
Originally Posted by Achat View Post
Wie kann ich herausfinden, ob das Maus-Rad nach oben oder unten bewegt wurde?

MfG
MouseWheel()
10/31/2012 11:25 KDeluxe#602
Quote:
Originally Posted by Achat View Post
Wie kann ich herausfinden, ob das Maus-Rad nach oben oder unten bewegt wurde?

MfG
Wenn du das nur für deine GUI herausfinden möchtest kannst du dafür auf [Only registered and activated users can see links. Click Here To Register...] zurückgreifen.

Hier mal ein Beispiel:
Code:
#include <WindowsConstants.au3>

$GUI = GUICreate("")
GUISetState()

GUIRegisterMsg($WM_MOUSEWHEEL, "WM_MOUSEWHEEL")

Do
	Sleep(10)
Until GUIGetMsg() == -3

Func WM_MOUSEWHEEL($hWnd, $uMsg, $wParam, $lParam)
;~ 	If $hWnd == $GUI Then
		If BitShift($wParam, 16) == 120 Then
			MsgBox(0, "", "UP")
		Else
			MsgBox(0, "", "DOWN")
		EndIf
;~ 	EndIf
EndFunc
Quote:
Originally Posted by she was 8 View Post
MouseWheel()
Dadurch würde sich das Mausrad "drehen".
10/31/2012 13:59 ExChill#603

So, Problem gelöst.

Nochmal der Code:

PHP Code:
Global $aProcess ProcessList()
Global 
$apRAM[$aProcess[0][0]][2]

For 
$j 1 To $aProcess[0][0]
    
$apRAM[$j 1][0] = $aProcess[$j][1]
    
$aRAM ProcessGetStats($aProcess[$j][1])

    If 
IsArray ($aRAMThen
        $apRAM
[$j 1][1] = $aRAM[0]
    Else
        
$apRAM[$j -1][1] = 0
    
EndIf
Next
For $i 0 To UBound($aProcess)-1
    $processlistitem 
GUICtrlCreateListViewItem($aProcess[$i][0] & "|" $aProcess[$i][1] & "|" $apRAM$processlist)
Next 
Wie füge ich in der vorletzten Zeile das $apRAM richtig in das ListViewItem ein?

So wie es jetzt ist, kommt nichts raus und wenn ich z.B. $apRAM[$i][0] einsetze bekomme ich den Fehler
Quote:
Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$processlistitem = GUICtrlCreateListViewItem($aProcess[$i][0] & "|" & $aProcess[$i][1] & "|" & $apRAM[$i][0], $processlist)
$processlistitem = GUICtrlCreateListViewItem($aProcess[$i][0] & "|" & $aProcess[$i][1] & "|" & ^ ERROR
11/01/2012 05:49 Achat#604
Quote:
Originally Posted by KDeluxe View Post
Wenn du das nur für deine GUI herausfinden möchtest kannst du dafür auf [Only registered and activated users can see links. Click Here To Register...] zurückgreifen.
Danke. Ich möchte das aber auch außerhalb meines Programms herausfinden.
Wichtig ist mir dabei auch, ob das Mausrad nach oben oder unten gedreht wurde.

MfG
11/01/2012 16:28 KDeluxe#605
Quote:
Originally Posted by ExChill View Post

So, Problem gelöst.

Nochmal der Code:

PHP Code:
Global $aProcess ProcessList()
Global 
$apRAM[$aProcess[0][0]][2]

For 
$j 1 To $aProcess[0][0]
    
$apRAM[$j 1][0] = $aProcess[$j][1]
    
$aRAM ProcessGetStats($aProcess[$j][1])

    If 
IsArray ($aRAMThen
        $apRAM
[$j 1][1] = $aRAM[0]
    Else
        
$apRAM[$j -1][1] = 0
    
EndIf
Next
For $i 0 To UBound($aProcess)-1
    $processlistitem 
GUICtrlCreateListViewItem($aProcess[$i][0] & "|" $aProcess[$i][1] & "|" $apRAM$processlist)
Next 
Wie füge ich in der vorletzten Zeile das $apRAM richtig in das ListViewItem ein?

So wie es jetzt ist, kommt nichts raus und wenn ich z.B. $apRAM[$i][0] einsetze bekomme ich den Fehler
Den Fehler hast du selbst verursacht, indem du mein Script kopiert hast und es falsch geändert hast.
Wie schon gesagt ist die Verwendung von UBound hier überhaupt nicht nötig, außerdem beginnt das erste verwertbare Element der Prozessliste bei 1 und nicht bei 0. Eine 2. Schleife ist überhaupt nicht notwendig, das kann auch direkt in der ersten Schleife hinzugefügt werden, das ist wesentlich performanter. Verwende es wie bei der Wertzuweisung. Die Auslagerung in ein Array ist aber sinnlose Speicherverschwendung, da du die Daten sowieso im ListView anzeigst.

Code:
$GUI = GUICreate("", 200, 200)
$ListView = GUICtrlCreateListView("Process|ID|Memory", 0, 0, 200, 200)
GUISetState()

$aProcess = ProcessList()
Dim $ListViewItem[$aProcess[0][0]]

For $i = 1 To $aProcess[0][0]
	$RAM = 0
	$aRAM = ProcessGetStats($aProcess[$i][1])
	If IsArray($aRAM) Then $RAM = $aRAM[0]

	$ListViewItem[$i - 1] = GUICtrlCreateListViewItem($aProcess[$i][0] & "|" & $aProcess[$i][1] & "|" & $RAM, $ListView)
Next

Do
	Sleep(10)
Until GUIGetMsg() == -3
Quote:
Originally Posted by Achat View Post
Danke. Ich möchte das aber auch außerhalb meines Programms herausfinden.
Wichtig ist mir dabei auch, ob das Mausrad nach oben oder unten gedreht wurde.

MfG
Dafür wäre ein globaler Hook nötig. Ich habe es in C++ umgesetzt, wenn du der Meinung bist, dass du es in AutoIt umsetzen kannst, kann ich dir das Project geben. Ob das Mausrad nach oben oder nach unten bewegt wurde habe ich bei meinem Script aber auch schon beachtet.
11/01/2012 16:52 -STORM-#606
[Only registered and activated users can see links. Click Here To Register...]
Oder einfach die UDF benutzen:
[Only registered and activated users can see links. Click Here To Register...]
11/03/2012 00:06 ExChill#607
Vielen Dank nochmal KDeluxe :)

Nächste Frage: Kann man irgendwie einen AdBlock Filter in eingebetteten Fenstern aktivieren (_IECreateEmbedded)?
11/03/2012 13:01 Der-Eddy#608
Nach Objekten suchen welche Werbung sind im Quelltext und entfernen lassen
Eine fertige Funktion dazu wäre mir nicht bekannt
11/03/2012 15:39 Benjihz#609
Ich wollte mal fragen wie man eine Datei in Autoit von einem Ftp runterladen kann.
11/03/2012 17:34 Achat#610
[Only registered and activated users can see links. Click Here To Register...]

MfG
11/03/2012 21:56 Lumi#611
Ich habe eine Skype UDP und diese enthält viele Funktionen.
Ich habe eine Frage zu einer Funktion und zwar diese hier:
Quote:
_Skype_ChatGetAll
Das hier ist der Code von der UDP:

Könnte mir jemand erklären, was diese Funktion macht?
Ich bräuchte nämlich eine Funktion, welche alle Kontakte die gleichen Nachrichten schickt, was man in einer Edit Box selber schreiben kann.
Da ich aus der Funktion "ChatGetAll" heraus gelesen habe, dachte ich, mit dieser Funktion kann man die Nachricht an alle Kontakte versenden und deswegen bräuchte ich eure Bestätigung.
Wenn dies der Fall ist, würde ich über eine Anleitung zu dieser Funktion freuen, wie man zum Beispiel diese Funktion mit einer Edit Box und einem Button machen kann.
11/04/2012 00:34 ExChill#612
Quote:
Originally Posted by Der-Eddy View Post
Nach Objekten suchen welche Werbung sind im Quelltext und entfernen lassen
Eine fertige Funktion dazu wäre mir nicht bekannt
Das könnte schwer werden :D
Die beiden HTML-Codes sind folgende:
HTML Code:
<embed src="http://www.own3d.tv/livestream/user" type="application/x-shockwave-flash" allowfullscreen="true" width="738" height="415" wmode="transparent"></embed>
HTML Code:
<object type="application/x-shockwave-flash" height="415" width="738" id="live_embed_player_flash" data="http://de.twitch.tv/widgets/live_embed_player.swf?channel=user" bgcolor="#000000"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="allowNetworking" value="all" /><param name="movie" value="http://de.twitch.tv/widgets/live_embed_player.swf" /><param name="flashvars" value="hostname=de.twitch.tv&channel=user&auto_play=false&start_volume=25" />
Ich wüsste nicht wo da die Werbung sein soll :P

MfG ExChill
11/04/2012 14:48 Benjihz#613
Quote:
Originally Posted by Lumi' View Post
Ich habe eine Skype UDP und diese enthält viele Funktionen.
Ich habe eine Frage zu einer Funktion und zwar diese hier:


Das hier ist der Code von der UDP:

Könnte mir jemand erklären, was diese Funktion macht?
Ich bräuchte nämlich eine Funktion, welche alle Kontakte die gleichen Nachrichten schickt, was man in einer Edit Box selber schreiben kann.
Da ich aus der Funktion "ChatGetAll" heraus gelesen habe, dachte ich, mit dieser Funktion kann man die Nachricht an alle Kontakte versenden und deswegen bräuchte ich eure Bestätigung.
Wenn dies der Fall ist, würde ich über eine Anleitung zu dieser Funktion freuen, wie man zum Beispiel diese Funktion mit einer Edit Box und einem Button machen kann.

Wird mit einer UDP verschiedene Befehle zu AutoIT hinzugefügt ? Weil dann hätte ich die frag eob man diese Skype UDP irgendwo runterladen kann, könnte ide nämlich sehr gut gebrauchen.. xD
11/04/2012 15:08 mo.tennis#614
hi, ich hab ma wieder ein paar fragen. :d
1. Wie kann ich in einer listview eine art abfrage machen, ob ein listviewitem geklickt...bzw markiert wurde.
also :
if item0 clicked then ....
Endif

so ungefähr :D

2. Wie kann ich in einer listview eine spalte von einem item ändern, ohne dass ich die ganze zeile neu schreiben muss :d sondern nur die stelle neu schreibe die ich geändert haben will :D
3. Ich hätte da allgemein noch ein paar fragen zu listviews..also wenn sich jmd speziell mit listviews auskennt kann er sich gerne bei mir melden :D
11/04/2012 15:47 KDeluxe#615
2. steht in der Hilfe zu GUICtrlSetData():
Quote:
For ListView, ListViewItem controls :
To update a specific column just forget about the others ie "||update" to update 3rd column.
If "update" is empty the column/subitem will be erased. For example "|" will erase the second column/subitem, "" will erase the first.
Ein Beispiel findest du in der Hilfe zu GUICtrlCreateListViewItem():
Code:
GUICtrlSetData($item3, "||COL33")

Ob ein ListViewItem markiert wurde kannst du mit _GUICtrlListView_GetSelectionMark() prüfen.

Um ein Klick zu überprüfen wäre es besser mit "[Only registered and activated users can see links. Click Here To Register...]" und "[Only registered and activated users can see links. Click Here To Register...]" bzw. "[Only registered and activated users can see links. Click Here To Register...]" zu arbeiten. Einfach mal googlen, wirst schon was finden.